椭圆曲线加密算法在身份认证及软件注册中的实现

来源:南粤论文中心 作者:李美满‘,朱文球1, 发表于:2010-04-26 09:07  点击:
【关健词】椭圆曲线;加密;有限域;身份认证;软件注册
摘 要:在简要介绍了椭圆曲线及椭圆曲线密码体制的基础上,重点讨论了通过椭圆曲线数字签名来实现 身份认证,分析了身份认证的关键算法,实现了利用e(a,易)椭圆曲线进行软件注册,同时给出了FPGA硬件实 现的方案,提出了椭圆曲线加密算法将逐步取代RSA算法并成为未来密码技术发展的方向。

身份认证机制是数据库加密系统安全性的第一道 防线,一旦被攻破,系统的所有安伞措施将形同虚设。 在传统情况下,一般采用RSA算法解决数据的安伞问 题.但RSA存在密钥过长,运算速度慢等问题,与RSA 密码体制相比,椭圆曲线密码体制具有安全性高、密 钥量小和灵活性好等显著优点‘1.210

1    椭圆曲线公钥密码体制

椭圆曲线加密法(ECC)是一种公钥加密技术,它 以椭圆曲线理论为基础,利用椭圆曲线等式的性质来 产生密钥。普通的椭圆曲线是连续的,并不适合用于
加密;必须把椭圆曲线变成离散的点才能用于加密。
把椭圆曲线拓展到任意域上,特别是特定的有限域上 (有限个元素组成的域),则椭圆曲线在有限域上变成 离散的点。将椭圆曲线中的加法运算与离散对数中的 模乘运算相对应,将椭圆曲线中的乘法运算与离散对 数中的模幂运算相对应,就可以建立基于椭圆曲线的 对应的密码体制。
1.1   有限域上F.的椭圆曲线 F。表示q个元素的有限域,令q>3是1个素数,
a,b∈只,满足4a3+27b2≠0,由参数a,b定义只上一
个椭圆曲线方程y2=x3+ax+b(mod曰),定义曲线参数
7'_(g,a,b,G,n,|}1),其中:qt≠l(mod  n),lst<20;
G为基点; n为基点G的阶,n为素数; h是椭圆曲线上所有点的个数m与n相除的整
数部分,h<M;
q≠n×h。
椭圆曲线方程的所有正整数解(X,Y)连同1个 称为无穷远的点(记为0)所组成的集合记为E(F。), 设P∈E(只),若P周期很大,即P+P+⋯+P=D(共有 n个P相加)成立的最小正整数n,若n不存在,则P 是无限阶的。事实上,在有限域上定义的椭圆曲线上
所有点的阶n都是存在的,并且0∈E(F,一定有某o) 个正整数m,使得Q=mp=P+P+⋯+P(共有m个P相加), 可以转换为m=log。Q。
以只)对点的“+”运算形成1个Abel群,相关它的 离散对数问题是很难处理的,即Q=mp(或re=log。Q), 其中Q,P为椭圆曲线在E(,口)上的点,m小于点P的 阶。不难发现,给定m和P,根据加法法则计算Q很 容易;但给定Q和P,求m相对困难。这是椭圆曲线 加密算法采用的难题,也即它的离散对数问题‘3q1。
1.2    椭圆曲线加密算法优点及加密流程 椭圆曲线加密算法的最大优点是不存在计算椭圆
曲线有理点群的离散对数问题的指数算法,这就意味
着在同等安伞的前提下,椭圆曲线密码体制可以选择 更小的参数。例如160位椭圆曲线密钥就相当于1     024 位RSA密钥,而224位ECC则与2048位RSA、DSA具 有相同的安全强度,同时ECC把实数域|:的乘法运算、 指数运算等映射成椭圆曲线上的加法运算,无论是用 硬件实现还是软件实现,椭圆曲线加密算法都比其它 公钥密码体系计算量小、处理速度快、占用的存储空 间小、加密后的数据包小、带宽要求低、实现成本更 低。因而,ECC在身份认证及软件注册中将会有广泛 的应用前景。椭圆曲线加密流程如图1所示。
(屯,尺。),其中R。=du•G。,将R。公开;
2)U建立1个Hash函数H。,一般采用SHA(Secure Hash Algorithm,安伞散列算法),函数值的长度为 hashlen个字节,通过CA的验证后将其公开;
3)U建立1个KDF( key derivation  function 从共享秘密数据中提取出对称加密所需的密钥,一般 利用第2)步的Hash函数,通过CA验证将其公开;
4)U建立1个对称加密机制ENC。,密钥定义为 enckey,长度为enckeylen个字节,一般采用3DES或 DES,通过CA验证将其公开;
5)U建立密钥协商机制(key agreement scheme, KAS),一般采用标准Diffie—Hellman机制或带因子的 Diffie—Hellman机制,并将其公开;
6)按照上述步骤,用户y也建立属于自己的相关 信息,除私有密钥d。。外,其余全部公开。
2.2   加密及签名过程
假设用户U需要将明文信息肘加密并签名后传输 到用户y,则具体过程如下:
1)u获取y所有公开的信息,并通过CA验证其 合法性;
2)根据y的椭圆曲线参数兀,建立1个I临时密钥 对(七l,尺1),其中Rl=七l’G,,kl E瓦;
3)根据KAS计算共享点R。若KAS为SDHP,则
R=k。•R,;若KAS为CDHP则R=hv.kl•R一这是椭圆 曲线上的点(尺。,尺。)。取R。作为共享秘密数据skd;
4)根据y的KDF,,和enckeylen从skd中计算出对 称密钥enckey;
5)根据y的ENC。用enckey将欲发送的明文信 息肘加密成EM;
6)根据U本身的椭圆曲线参数L,建立另一个临 时密钥对(如,R2),其中R2=K2•瓯,这是椭圆曲线上的 点(吃,R2y);
7)计算,.=Rz。(mod n)。注意:若r=0,则返回步骤
 
二进制明文L塑
椭明豁文点 的怦
加密钥

解密钥
椭圆曲线卜.的L』

椭圆曲线上的
明文点

传输或 存储

椭圆曲线£的
6)重新取1个(岛,R,);
8)根据u本身建立的Hash函数日。,计算日= Hash(RIIEM),若[1092“]>8(hashlen),则令e=h;否则取 日的左边[1092"】位日’,令e=H’;
9)计算船k。1(P+r•d.)(mod n),若S=0,则返回步
 
薏(解密后豁)
P 明文点(解密后)l解密

密文点

骤6);
 
圈1   椭圆曲线加密流程图
ng.1 Flow chart of elliptic  curve encryption

2   基于椭圆曲线密码体制的系统身 份认证技术
2.1    认证前期准备工作
1)用户u向认证机构CA申请1张数字证书,并 根据椭圆曲线的参数瓦=(g,a,b,G,n,^)建立1个密钥对
万方数据
10)输出W兰(r,s)IIR.IIEM到亿
2.3解密及验证过程
y收到w后先验证是否是由u发送,检查数据的 完整性,再根据u的参数将EM还原成明文肘,具体 过程如下:
1)y获取u的所有公开信息,并通过CA验证其 合法性;
2)按照2.2中步骤7)、8)的方法,计算出e;

3)计算Ul=e•5-1(mod  n),∽=,.•s-1(mod   n);
4)计算R,=(尺h,尺3,)=UG。+u:R。由2.2中步骤9) s---乞。1(P+,•d.)(mod疗)可知:S-1=如(外r•吨)-1(rood n)。若 W在传输过程中保持完整,则(责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)

顶一下
(1)
100%
踩一下
(0)
0%


版权声明:因本文均来自于网络,如果有版权方面侵犯,请及时联系本站删除.