1、第四章 现代常规的分组加密算法主要考察较为流行的最重要的几个对称密钥的分组密码算法。这些算法都是自 DES公布之后,人们了解 DES的弱点越来越深入的情况下给出的。给出的方式有两种,一种是对 DES进行复合,强化它的抗攻击能力;另一种是开辟新的方法,即象 DES那样加解密速度快,又具有抗差分攻击和其他方式攻击的能力。我们主要考察如下三种加密算法 1.Triple DES 2.IDEA 3.RC5 其他一些较实用的算法,自己看书了解,如Blowfish, CAST, 以及 RC2。1 TRIPLE DES DES算法设计的优点是很多的。如何加强 DES的安全性是一个世纪感兴趣的问题。 Quisq
2、uater等曾建议采用长达 768 bits密钥的方案。由于已经证明 DES不能成为群 , 见K.W.Campbell and M.J.WienerProof that DES is not a groupIn Advances in Cryptology Crpto92.Springer Verlag, New York,1993.于是多重 DES, 尤其是三重 DES还在普遍使用。( 1)二重 DES(Double DES) 给定明文 P和两个加秘密钥 k1和 k2, 采用 DES对 P进行加密 E, 有密文 C=EK2(EK1(P) 对 C进行解密 D, 有明文 P=DK1(DK2(C)
3、E EP X CK2K1加密图D DK2 K1C X P解密图对于二重 DES的加密,所用密钥的长度为 562=112 bits这样是否真正能增强 DES的强度呢?问题在于下式能否成立:EK2(EK1(P) =EK3(P) (4.1)DES是一个从集合 A到集合 A的一个映射。其中:映射 DES事实上可视为对 A的一个作用,作用方式为置换。所有可能的置换数为 ( 264)!。然而, DES对每一个不同的密钥只决定唯一的映射。而密钥数 256107, (4.1)式不能成立。 关于 DES不是群的详细证明见上面给的文献。 注 : 二重 DES很难抵挡住 中间相遇攻击法 ( Meet-in-the-
4、Middle Attack)E EP CX由 C=EK2(EK1(P)从图中可见X=EK1(P)=DK2(C)K1 K2D DC PXK1 K2加密解密若给出一个已知的明密文对( P,C)做:对 256个所有密钥 K1做对明文 P的加密,得到一张密钥对应于密文 X的一张表;类似地对256个所有可能的密钥 K2做对密文 C的解密,得到相应的 “明文 ”X。 做成一张 X与 K2的对应表。比较两个表就会得到真正使用的密钥对 K1,K2。对二重 DES的中间相遇攻击的分析 已知,给定一个明文 P, 经二重 DES加密有 264个可能的密文。而二重 DES所用密钥的长度应是 112 bits,所以选择
5、密钥有 2112个可能性。于是对给定明文 P加密成密文有 2112/264=248种可能。于是,密文是假的比例约为 248-64=2-16。这样,对已知明文 -密文对的中间相遇攻击成功的概率为 1-2-16。 攻击用的代价 加密或解密所用运算次数 256+256=2112( 2)带有双密钥的三重 DES( Triple DES with Two Keys) Tuchman给出双密钥的 EDE模式(加密 -解密 -加密):C=EK1(DK2(EK1(P) 对 P加密P=DK1(EK2(DK1(C) 对 C解密这种替代 DES的加密较为流行并且已被采纳用于密钥管理标准( The Key Manager Standards ANSX9.17和 ISO8732).