用椭圆曲线作为非对称加密算法

时间:2008-11-21

  除了RSA和DSA这两种的非对称加密算法之外,在智能卡领域还有第3种类型的加密方法被用于数字签名和密钥交换,它是基于椭圆曲线EC(Elliptic Curves)的。

  1985年,Victor Miller和Neal Koblitz各自独立地提出了用椭圆曲线构造非对称加密算法的建议。椭圆曲线的特性非常适合于这种应用,在接着的数年中,开发了基于这些建议的实用的加密系统。一般而言,它们通常被称做差错校正码FCC(Elliptic Curve Cryptosystems)。

  椭圆曲线都是在有限的三维空间内满足方程式y2=x3+ax+b的光滑曲线族,没有奇异点。这就是说,例如,4a2+27b2≠0。在密码学的领域内,采用了有限空间GE(P),GF(2n)和GF(Pn),式中p是一个素数而而是大于1的正整数。

  基于椭圆曲线的加密系统的数学关系是比较困难的,因此,你可以参阅Alfr·ed Menezes关于这一课题的书[Menezes 93]。非常全面的IEEE 1363公开密钥加密标准和ISO/IEC 15946标准系列涉及到了椭圆曲线,也提供了关于椭圆曲线和其他非对称加密技术的纲要。

  立足于椭圆曲线的非对称加密系统的好处是比起例如RSA来所需的计算容量要小得多,而在同等的加密强度时密钥长度要显然短得多。例如,攻破有160位密钥的FCC所需的计算量大约与有1629位的RSA算法的相同。对于有320位密钥的ECC,比照此计算尺度,则相应于有5 120位的RSA系统。这样强的加密强度和相对较短的密钥长度正是FCC系统为什么能在智能卡领域立足的理由。

  今天智能卡微控制器的算术处理部件一般都支持ECC,这就是说可以使用比较高的计算速度。像RSA算法一样,密钥长度是非对称加密算法的一个重要特性。

  足以令人感兴趣地是立是于椭圆曲线加密系统所需计算量是如此之小,使得它们可以不用协运算器而在微控制器中实现。用一个6805 CPU(SC28),ECC的实现大约需要ROM或EEPROM的4KB的程序代码,加上约90字节的RAM。产生一个135位的签名在5MHz时钟时约需185ms,参见表1所示。一个RSA签名的算法在智能卡上所需时间大体可与此相当。

  表1  作为密钥长度的立足于椭圆曲线的加密算法计算时间举例
  (这些值有明显的改变,因为它们依赖于密钥的位结构)

  反对在非对称加密算法领域中使用椭圆曲线的一个论点是它们被看作是密码学世界内的比较新的发现,即使它们已经被知道有些时间了,毫无疑问,它还需要一些时间,才能使FCC系统的应用在密码学者和智能卡应用的设计者之间成为老生常谈。尽管和所有其他非对称技术相比,立足于椭圆曲线的密码系统提供了每位的安全水平。

  欢迎转载,信息来源维库电子市场网(www.dzsc.com


  
上一篇:实际的FIFO存储器
下一篇:智能卡中填补数据

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料