学院:计算机与信息工程学院 专业:信息管理与信息系统 姓名: 魏趁趁 学号: 110903058 几种分组密码算法的分析与对比 分组密码是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为 n的组(可看成长度为 n的矢量),每组分别在密钥的控制下变换成等长的输出数字(简称密文数字)序列。下面我就搜集的几种分组密码算法进行分析对比: 一、国际数据加密算法(IDEA) IDEA是 International Data Encryption Algorithm的缩写,即国际数据加密算法,它的原型是1990年由瑞士联邦技术学院X.J.Lai和Massey提出的PES。1992年 Lai和Massey对 PES进行了改进和强化,产生了 IDEA。这是一个非常成功的分组密码,并且广泛的应用在安全电子邮件 PGP中。 IDEA加密算法是一个分组长度为64位的分组密码算法,密钥长度为128位,同一个算法即可用于加密,也可用于解密。这是基于“相异代数群上的混合运算”设计思想,算法运用硬件与软件实现都很容易,而且比 DES算法在实现上快的多。IDEA自问世以来,已经经历了大量的详细审查,对密码分析具有很强的抵抗能力,在多种商业产品中被使用。IDEA算法是对称密码体制中的一种基于数据块的分组加密算法,整个算法包含子密钥产生、数据加密过程、数据解密过程三部分。该算法规定明文与密文块均为64b,密钥长度为128b,加密与解密相同,只是密钥各异,其基本工作原理如图1所示。 图1 IDEA工作原理 IDEA是一种由8个相似圈(Round)和一个输出变换(Output Transformation)组成的迭代算法。IDEA的每个圈都由三种函数:模(216+1)乘法、模216加法和按位 XOR组成。在加密之前,IDEA通过密钥扩展(Key Expansion)将128bit的密钥扩展为52Byte的加密密钥 EK(Encryption Key),然后由 EK计算出解密密钥 DK(Decryption Key)。EK和 DK分为8组半密钥,每组长度为6Byte,前8组密钥用于8圈加密,最后半组密钥(4Byte)用于输出变换。IDEA的加密过程和解密过程是一样的,只不过使用不同的密钥(加密时用EK,解密时用DK)。 密钥扩展的过程如下: (1) 将128bit的密钥作为EK的前8byte (2) 将前8byte循环左移25bit,得到下一8byte,将这个过程循环7次 (3) 在第7次循环时,取前4byte作为EK的最后4byte (4) 至此52byte的 EK生成完毕。 密钥扩展的过程如表1所示,为了能够清楚的看出每个8Byte的关系,在表1中用粗线条将将每个8Byte划分开了。 IDEA加密算法用了52个子密钥(8轮...