一、IDEA简介

IDEA(International Data Encryption Algorithm)在密码学中属于数据块加密算法(Block Cipher)类。IDEA使用长度为128bit的密钥,数据块大小为64bit。
IDEA加密是由8个相似圈和一个输出变换组成的迭代算法。IDEA的每个相似圈都由三种函数:模乘(216+1)、模加(216)、XOR组成。

二、IDEA加密特征

1、% 65537 或 % 0x10001
2、有顺序的相乘、相加、相加、相乘操作

三、密钥扩展

IDEA一共需要52个子密钥,每圈加密需要6个子密钥,输出变换需要4个子密钥。
IDEA的key长度为128bit,将它分为8组,k1-k8每个子密钥16位。
k1-k6用于第一圈加密,k7-k8用于第二圈加密。
将key左移25bit后再分为8组,k1-k4也用于第二圈加密。k5-k8用于第三圈加密。
.....以此类推
第5次循环左移已经有足够的子密钥用于8圈明文加密,第6次循环左移取k1-k8用于输出变换
至此密钥扩展完成

四、加密过程

1.明文分组

IDEA的明文输入为64位。在加密过程中,首先将这64位的明文分组分割为4个16bit的子分组x1、x2、x3、x4。

2.加密详细步骤

1.x1与k1进行模乘
2.x2与k2进行模加
3.x3与k3进行模加
4.x4与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异或

步骤11、12、13、14将会以11+13+12+14的顺序组合进入下一圈的加密

3.输出变换

1.x1与k1进行模乘
2.x2与k2进行模加
3.x3与k3进行模加
4.x4与k4进行模乘
最后,将这几个分组连在一起就是密文

1000003050

 posted on 2025-11-12 17:20  hellv  阅读(3)  评论(0)    收藏  举报