自从公钥密码体制被提出以来,出现了许多公钥密码方案 如RSA、ELGamal密码体制、背包算法和ECC、XTR、NTRU等。
下面就介绍一下各种密码体制的优缺点,并进行比较。
2RSA
在Diffie和 Hellman提出公钥系统观点以后,1977年麻省理工大学的Rivest、Shamir和Adleman提出了第一个比较完善的公钥密码算法,即 RSA算法[2]。
RSA系统是公钥系统的最具有典型意义的方法,大多数使用公钥密码进行加密和数字签名的产品和标准使用的都是RSA算法。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现在已经二十多年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价,即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NP问题。
RSA的缺点主要有:(1)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。(2)分组长度太大,为保证安全性,至少也要600bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级,且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化[6]。
3Merkle-Hellman背包加密体制
背包问题的描述很简单,给定一堆物品,条件质量不同,能否将这些物品中的一部分放入一个背包中使之等于一个给定的质量?
3.1Merkle-Hellman背包加密算法
假设B加密一个信息m给A,A解密。
(1)B如下进行加密:
获得A的公钥(a1,a2,…,an);将信息m表示成长度为n的二进制串,m=m1m2…mn;计算整数c=m1a1+m2a2+…mnan;将密文c发送给A。
(2)为从c中恢复出明文m,A执行:
计算d=W-1cmodM;通过解超递增的子集和问题,求出整数r1,r2,…rn(ri∈{1,1})使得d=r1b1+r2b2+…rnbn;信息比特是m1=rπ(i)(i=1,2,…,n) [2]。
3.2Merkle-Hellman背包加密算法的不安全性
目前已有一个攻击基本的Merkle-Hellman体制的多项式时间的算法。给出一个公开的背包集,该算法寻找一个整数对(U',M'),满足U'/M'接近于U/M(其中W和M是私钥部分U=W-1modM)且满足整数b1r=U'aimodm(1≤i≤n)组成一个超递增序列,该序列可以被敌方用来代替b1,b2,…bn来解密信息[2]。
4椭圆曲线密码体制
4.1椭圆曲线密码体制基本原理
椭圆曲线上离散对数问题ECDLP定义如下[1]::给定素数p和椭圆曲线E,对Q=kP,在已知p,Q的情况下求出小于p的正整数k。可以证明由k和p计算Q比较容易,而由Q和P计算k则比较困难。ECDLP是比整数因子分解问题IFP和离散对数问题DLP难得多的数学难题。基于该难题,Neal Koblitz和Victor Miller在1885年分别提出了椭圆曲线密码系统ECC。ECC 既可以用于数据加密,也可以用于数字签名。将椭圆曲线中的加法运算与离散对数中的模乘运算相对应,将椭圆曲线中的乘法运算与离散对数中的模幂运算相对应,我们就可以建立基于椭圆曲线的对应的密码体制。
4.2椭圆曲线密码体制的优点
椭圆曲线密码体制的安全性基于椭圆曲线点群上离散对数问题的难解性。假设离散对数问题基于有限群的阶中的最大素因子是 ,则目前最好的求解方法Pollard-ρ方法的时间复杂度是相对于RSA的亚指数时间复杂度,依靠指数时间算法求解的ECC要更难求解,抗攻击性更强。椭圆曲线群由“元素”和“组合规则”来构造。用这些群来构造密码算法的优点是:在安全强度相同情况下,密钥长度最短,算法速度最快,存储空间更小,效率更高却没有减少密码分析的分析量[3]。
相同计算资源条件下,在RSA中可通过选取较小的公钥的方法提高加密和签名验证的速度,使其在这一方面与ECC有可比性,然而在解密和签名方面ECC要远比RSA快得多。因此ECC总的速度比RSA要快得多,同时ECC系统的密钥生成速度比RSA快百倍以上。所以在相同条件下,ECC有更高的加密性能。
在相同安全强度下,ECC密码比RSA密码的密钥尺寸及系统参数小得多,即ECC密码所需的存储空间要小得多,传输所需的带宽要求更低,功耗更小,硬件实现更加容易[4]。
5结束语
比较以上几种公钥密码体制,椭圆曲线密码体制的理论和标准化逐渐成熟,短密钥和高安全性的优势明显,同时可以实现公钥体制密码交换加解密以及数字签名的所有功能,前景广阔。椭圆曲线所具有的深刻而丰富的数学构造,值得我们进一步挖掘研究,进一步更新椭圆曲线密码体制的理论以及技术。
参考文献:
[1] 周玉洁,冯登国.公开密钥密码算法及其快速实现[M].北京:国防工业出版社,2002:188-226.
[2] 王育民,刘建伟.通信网的安全—理论与技术[M].西安:西安电子科技大学出版社,1998.
[3] 孙玲芳,靳伟.椭圆曲线密码体制的应用及研究[J].价值工程,2010,197-198.
[4] 蔡晓秋,张建中.基于椭圆曲线的多银行电子现金系统[J].计算机应用究,2007,(24),134-136.
[5] 郭艾侠.椭圆曲线密码体制与智能卡[J].贵州工业大学学报,2003,(3),63-65.
[6] 李晓辉.公钥密码体制与RSA算法[J].福建电脑,2009,2:47-51.