智能卡的对称加密算法

时间:2008-11-21

  对称密码术算法立足于执行加密和解密使用同一个秘密密钥的基础之上——因而被称为“对称的”,其工作原理如图1所示。的和广泛使用的这种类型算法的代表是数据加密算法DEA(Data Encryption Algorithm)o它是IBM在1977年联合NBS(US National Bureau dStandards)而开发的,并作为US FIPS 46标准发表。叙述DEA的标准经常被称为数据加密标准DES(Data Encryption Standard)。因此,数据加密算法DEA也经常(但并不完全正确)被叫做DES。

  图1  对称加密算法,加密和解密数据的工作原理(DES是这类
  加密算法的典型例子)

  由于这些算法是按照Kerckhoff原理建立起来的,它们的出版不会影响任何安全性。然而,即使在今天并不是所有的开发准则都已为人所知,这就导致了有关可能的攻击方法和可能的“陷门”(trap door)的设定。到目前为止所有试图在此基础上攻破算法的企图都失败了。

  在DES的设计中结合了两条重要的加密算法原则,它们是由C.Shannon首先提出的混乱和扩散的原则,混乱原则说明密文统计特性对明文统计特性的影响方式是如此之复杂,使得攻击者不能从中得到任何好处;第2条原则是扩散,说明明文和密钥中的每一位将影响密文中尽可能多的位数。

  对称字组加密算法的DES并不扩展密文,这就是说明文和密文字组的大小是一样的。字组大小为6位(8字节),它也是密钥的长度,实际上其中只有56位是真正使用的密钥,其工作过程如图2所示。

  图2  在加密操作中DES算法的工作原理

  密钥含有8个奇偶校验位,它减小了可用的密钥空间。“位的密钥依次由左(msb)向右(lsb)编号。位8,16,24,…,“为奇偶位,总是奇校验。由于校验位,密钥空间为卢。这就是说可能有7.2×1016个密钥。乍看起来,有着72 057 594 037 927 936个密钥的密钥空间是很大了,但密钥空间的大小实际上是DES①的主要特点。随着现代计算机处理能力的稳定增长,这样大小的密钥空间被认为是处于安全加密算法的下限。如果有明文ˉ密文对可用,而密钥空间这样大小,就很容易对所有可能的密钥进行试验。

  如果在终端和智能卡之间窃听通信而获得了一个明文-密文对,则可对明文用所有可能的密钥来加密以实施强力攻击。正确的密钥可由比较所有的密文结果与先前得到的密文来断定,这个过程很容易并行执行,每一个并行的处理器仅仅试验分配给它的一小部分密钥空间。一个抽样的计算就能说明这样的强力攻击所需要的时间。目前,快可用的DES元件需要64ns的时间来完成一个字组的加密。②如果有10 000个计算模块并行汇集在一起,每个能独立试验密钥空间的一小部分,又假定平均要搜索一半的密钥空间以找到正确的密钥,我们可以算得处理时间如下:

  在1993年,Michael Wiener发表了关于百万美元计算机的计划,它可以在7小时内对给定的明文-密文对,进行所有DES密钥试验[Wiener 93]。使用DES的问题是随着时间的进展,它的密钥空间变得太小了,所以新的应用几乎毫无例外地都采用了3重DES算法。

  深入研究DES的准确实现已超出了本书的范围,而且也没有必要去理解这些材料。如果需要更详细的信息,请参阅Π"出版的46,Carl Meyer[Meyer 82]或Bruce Schneier[Schneier 96]。然而,这里有一个重要的情况,DES被设计来作为一个易于构造成硬件的加密算法。遗憾地是,虽然第1个样片已处于测试阶段,目前尚没有智能卡微控制器能用的DES硬件模块。因此,在智能卡中目前只能用软件来实现。这就表明,即使是高度优化的汇编代码也要占去大约1KB,而其计算速度也比较慢。

  智能卡中的典型加密和解密的处理时间和PC机以及硬件集成电路的比较均列在表1中,对于真正的实现,这些数字是可以改变的。它们仅仅计人了DES对8字节字组的纯粹加密或解密处理的时间,并假定所有寄存器都已在事先加载。

  表1  典型的DES处理时间(8宇节字组)

  DES算法的密钥可用一个随机数发生器来产生,产生-个8①字节的随机数,而后按4个弱密钥和12个半弱密钥检查,如果没有和这些易于攻破的密钥相配,计算其奇偶位后所得就是DES密钥。

  除DES之外,还有许多其他的对称加密算法,作为一个代表的例子,这里我们仅考虑国际加密算法IDE;气(International Data Encryption Algorithm),它是由Xuejia h和James L,Massey所开发,在1990年作为建议加密标准PES(Proposed Encryption Standatrd)而发表的。1991年做了改进,在一段短期内改进的版本被称为改进了的建议加密标准IPES(Improved Proposed EncryptionStandard),现在普遍地称之为IDEA,这个算法的开发原则和内部构造已经全部发表了,满足了Kerckhoff原理。然而,就像RSA那样,mEA受到了的限制。

  IDEA和DES一样,是面向字组的加密算法,也采用了8字节的明文和密文字组。和DES不同,密钥长度为16字节(2×8字节)。这就提供了较大的密钥空间,其大小为2128≈3.4×1038,用通常的十进位记数法,IDEA的可能的密钥数准确地等于:340 282 366 920 938 463 463374 607 431 768 211 456。

  就像刚才所说,由于其构造IDEA除扩充了密钥的长度外和DES是相容的。它也和3重DES系统相容,后者所用密钥为2×56位长,这意味着改变所用算法并不影响密钥长度和输人输出的数据字组。当然,这里所说的相容并不意味着DES加密的数据可以用IDEA来解密。一般而言,IDEA被认为是一个很好的加密算法,它已经是不受版权保护的程序,以相当有效的保密PGP( Pretty Good Privacy)的形式从Philip Zimmermann那里广泛传播开了,它用于数据的安全传送。

  只有很少的智能卡实现了IDEA程序所需存储量约为1 000字节。典型的加密和解密的计算时间要比DES略少一些。然而,在开发IDEA时,假定计算是用16位处理器执行的。由于智能卡通常仍使用8位处理器,和DES比起来速度方面的好处并没有预期的那么大。表2列举了对一个8字节字组的IDEA操作的采样值,假定采用了前面计算的密钥。

  表2  典型的IDEA处理时间(8字节字组)

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


  
上一篇:氧传感器检测
下一篇:智能卡的面向字组加密算法的工作模式

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

相关技术资料