信息安全中的IDEA是什么?


IDEA代表国际数据加密算法 (International Data Encryption Algorithm)。IDEA是由James Massey和Xuejia Lai发明的分组密码,首次定义于1991年。它使用128位密钥长度,作用于64位数据块。

它包含一系列八个相同的变换,依赖于按位异或、加法和乘法模运算。它基于对称密码,并且密钥设计方法非常薄弱,因此与DES相比,该算法的安全级别非常低。由于其复杂的结构,IDEA并没有变得非常流行。

与其他分组密码算法不同,IDEA被瑞士Ascom公司考虑使用。然而,其独特的授权允许免费的非商业用途,这使得IDEA成为著名的消息字符加密中常用的分组密码算法。

IDEA有八轮。每一轮都包含使用六个密钥对四个数据块进行的一系列操作。第一轮可以使用密钥K1到K6,第二轮可以使用密钥K7到K12,以此类推,直到最后一轮。最后一步包括一个输出变换,需要四个子密钥(K49到K52)。

最终输出是由输出变换步骤产生的输出。块C1到C4连接起来形成最终输出。每一轮包含14个步骤,如下所示:

IDEA一轮的细节

步骤1: 乘法 * P1 和 K1
步骤2: 加法 * P2 和 K2
步骤3: 加法 * P3 和 K3
步骤4: 乘法 * P4 和 K4
步骤5: 将步骤1和步骤3的结果进行异或运算
步骤6: 将步骤2和步骤4的结果进行异或运算
步骤7: 将步骤5的结果与K5进行乘法运算 *
步骤8: 将步骤6的结果与步骤7的结果进行加法运算 *
步骤9: 将步骤8的结果与K6进行乘法运算 *
步骤10: 将步骤7的结果与步骤9的结果进行加法运算 *
步骤11: 将步骤1的结果与步骤9的结果进行异或运算
步骤12: 将步骤3的结果与步骤9的结果进行异或运算
步骤13: 将步骤2的结果与步骤10的结果进行异或运算
步骤14: 将步骤4的结果与步骤10的结果进行异或运算

每一轮的后续步骤中的“加法 *”和“乘法 *”不是基本的加法和乘法,而是模216(即65536)的加法和模216 + 1(即65537)的乘法。

**输出变换** - 这是一个一次性操作。它发生在第8轮的最后。因此,64位值被分成四个子块(例如R1到R4),这里使用了四个子密钥。

**解密** - 解密过程类似于加密,但是轮密钥的顺序被反转,奇数轮的子密钥也被反转。因此,子密钥K1-K4的值通过加密中相应集合运算的K49-K52的反转来恢复,每一组的K5和K6应该通过K47和K48来恢复解密操作。

更新于:2022年3月15日

浏览量1K+

启动你的职业生涯

通过完成课程获得认证

开始学习
广告