前言:本站为你精心整理了数字签名解密技术管理范文,希望能为你的创作提供参考价值,我们的客服老师可以帮助你提供个性化的参考范文,欢迎咨询。
[摘要]本文在分析了现行数字签名(PKI)的缺陷的基础上,提出基于椭圆曲线的数字签名加解密技术的数字签名体制。该方案是基于椭圆曲线离散对数问题的难解性,大大增强了攻击难度和提高了签名的效率,极大地提高了数字签名体制的安全性。
[关键词]数字签名用户密钥椭圆曲线公钥密码离散对数
一、引言
数字签名用于鉴定签名人的身份以及对一项电子数据内容的认可。它还能验证出文件的原文在传输过程中有无变动,确保传输电子文件的完整性、真实性和不可抵赖性。随着计算机网络的飞速发展和迅速普及,数字签名系统密钥的安全性和数字签名的有效性,一直是国内外研究人员的研究热点。现行数字签名的加解密技术绝大多数采用的是20世纪80年代由美国学者提出的公钥基础设施(PKI)。PKI是一种利用非对称密码算法(RSA算法,即公开密钥算法)原理和技术来实现的。然而近年来的研究表明,512位模长的RSA已经被攻破,为了保证安全性。RSA不得不采用更长的密钥,这将降低RSA系统的运行速度。椭圆曲线密码系统(ECC)比RSA等其他公钥加密系统能提供更好的加密强度、更快的执行速度和更小的密钥长度。这些性能使得椭圆曲线密码系统能用较小的开销和时延实现较高的安全性,特别能满足在带宽、计算能力或存储能力等受限的各种特殊应用场合。基于椭圆曲线的数字签名已成为目前数字签名技术的研究热点。本文对基于椭圆曲线的数字签名加解密实现技术进行研究。
二、基于椭圆曲线的数字签名加解密技术简介
基于椭圆曲线的数字签名加解密技术是建立在有限域上的椭圆曲线基础上。所谓有限域Fq上的椭圆曲线是在仿射平面A2k上满足Weierastrass方程的平滑曲线:y2+a1xy+a3y=x3+a2x2+a4x+a6
也就是该方程的解及无穷远点O的集合,其中ai∈Fq(i=1,2,3,…,6)。把该椭圆曲线表示为E,椭圆曲线上的所有点组成一个Abel群,用#E(Fq)来表示。椭圆曲线密码系统就建立在这个有限群上。有限域Fq上的椭圆曲线的点的加法法则是:
已知椭圆曲线E上的两点P、Q,其中P=(xP,yP),Q=(xQ,yQ),且P≠-Q,设λ是P、Q所确定的直线的斜率,当P≠Q时,有;当P=Q时,有,令R=P+Q=(xP+Q,yP+Q),可知R也是椭圆曲线E上的点,其中有
这时点P的逆-P=(xP,-yP)。
三、椭圆曲线的数字签名加解密算法实现
1.系统的建立和密钥生成
(1)系统的建立
选取一个基域Fq,在Fq上随机寻找一条阶含有大素数因子的随机椭圆曲线E及E上阶为素数n的基点G=(xG,yG),a,b是椭圆曲线E的参数。则我们已经建立了椭圆曲线公钥密码系统,系统参数为(Fq,G,n,a,b)。
(2)密钥的生成
系统建成后,每个用户各自产生自己的密钥:
①用户A随机选取一个整数d,其中1≤d≤n-1;
②然后计算:Q=dG,如果Q是无穷远点或G,则需重新选择d;
③将d作为私钥保存,Q作为公开密钥公开。
2.数字签名的加密过程
假设用户B要把数字签名信息m发送给用户A,则用户B首先将信息原文用哈希算法求得数字摘要,然后进行如下操作:
(1)用户B找出A的公钥Q,然后随机选取一个整数k,其中1≤k≤n-1,计算P=kG=(x1,y1);
(2)计算:kQ=(x2,y2);
(3)计算:c=mx2;
(4)最后把生成的数字签名(P,c)发送给用户A。
3.数字签名的解密过程
当用户A收到B发送来的数字签名(P,c)后,用自己的私钥d进行如下解密操作:
(1)用户A计算:dP=(x2,y2),因为dP=d(kG)=dkG=k(dG)=kQ=(x2,y2);
(2)然后计算:m=cx-12;从而恢复出数字签名信息m。
四、椭圆曲线的数字签名加解密算法分析
椭圆曲线公钥密码是基于椭圆曲线离散对数问题的难解性,即在有限域Fq上,已知P、Q在椭圆曲线E上的有理点,要寻找一个d∈Fq,使得Q=dP,这是很难解的。从上面算法可知,在解密过程中,要求出x2-1,必须知道x2,而要知道x2,必须知道dP,或者必须知道kQ,而知道G、Q、P,要求出用户A的私钥d或随机整数k,这相当于求解椭圆曲线离散对数问题,就现有的计算技术和能力来说,如果椭圆曲线公钥密码系统中的椭圆曲线是随机选取的,而且它的阶包含有大素数因子,那么这是一个很难的问题。也就是必须求逆运算,这是一个很费时和复杂的过程。
五、结语
该方案的签名过程比EC-DSA或EC-ElGamal少计算一次有限域元素的逆,而在Fq中求元素的逆需要使用EEA,该算法的执行时间比模乘算法快80多倍,而签名过程需要的时间比模乘快700多倍,因此该协议在签名速度上将比EC-DSA或EC-ElGamal协议快大约10%,在密钥生成部分该协议比EC-DSA和EC-Schnorr要简单。如果协议双方用户都严格履行协议,并且协议中随机数和散列算法都是理想的,即使攻击者获得某个时期的密钥并试图伪造数字签名信息m,由于C=mx2,攻击者不知道x2,因此也不能计算出C。该方案较之文献中的方案增强了安全性,在有效性方面也得到了进一步保证,因此具有一定的理论价值和广泛的应用前景。
参考文献:
[1]J.Silverman.TheArithmeticofEllipitcCurves[M].GTM106,Springer-Verlag,NewYork,1986
[2]周玉结冯登国:公开密钥密码算法及其快速实现[M].国防工业出版社,2002
[3]白国强周涛陈宏毅:一类适合普通PC机实现的安全椭圆曲线[J].密码学进展2000,125-130
[4]D.Johnson,A.Menezes.TheellipticcurvedigitalsiguaturealgorithmECDSA[R].TechnicalreportCORR99-31.Canada:DeptofC&O,UniversityofWaterloo,1999