智能卡的对称加密算法
发布时间:2008/11/22 0:00:00 访问次数:621
对称密码术算法立足于执行加密和解密使用同一个秘密密钥的基础之上——因而被称为“对称的”,其工作原理如图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年做了改进,在一段短期内
对称密码术算法立足于执行加密和解密使用同一个秘密密钥的基础之上——因而被称为“对称的”,其工作原理如图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年做了改进,在一段短期内
上一篇:智能卡的密码学