国际分组加密算法IDEA

国际分组加密算法IDEA

IDEA(International Data Encryption Algorithm)国际数据加密算法是1991年由Lai和Massey提出的,是应用最广泛的分组密码算法之一,最初版本于1990年公布,称为PES(建议加密标准).IDEA算法是8.5轮的分组密码算法,分组长度为64bit,密钥长度为128bit.设计思想是混合16bit子块的3个不相容的群运算,主要运算分别是异或运算⊕,模2^16加法运算⊞和有限域GF(2^16+1)上的乘法⊙,在乘法中16bit的全零子块由2^16代替.

加密算法

输入的64-位数据分组被分成4个16-位子分组:X1,X2,X3和X4。这4个子分组成为算法的第一轮的输入,总共有8轮。在每一轮中,这4个子分组相互相异或,相加,相乘,且与6个16-位子密钥相异或,相加,相乘。在轮与轮间,第二和第三个子分组交换。最后在输出变换中4个子分组与4个子密钥进行运算。

在每一轮中,执行的顺序如下:

(1)X1和第一个子密钥相乘。

(2)X2和第二个子密钥相加。

(3)X3和第三个子密钥相加。

(4)X4和第四个子密钥相乘。

(5)将第(1)步和第(3)步的结果相异或。

(6)将第(2)步和第(4)步的结果相异或。

(7)将第(5)步的结果与第五个子密钥相乘。

(8)将第(6)步和第(7)步的结果相加。

(9)将第(8)步的结果与第六个子密钥相乘。

(10)将第(7)步和第(9)步的结果相加。

(11)将第(1)步和第(9)步的结果相异或。

(12)将第(3)步和第(9)步的结果相异或。

(13)将第(2)步和第(10)步的结果相异或。

(14)将第(4)步和第(10)步的结果相异或。

每一轮的输出是第(11)、(12)、(13)和(14)步的结果形成的4个子分组。将中间两个分组分组交换(最后一轮除外)后,即为下一轮的输入。经过8轮运算之后,有一个最终的输出变换:

(1)X1和第一个子密钥相乘。

(2)X2和第二个子密钥相加。

(3)X3和第三个子密钥相加。

(4)X4和第四个子密钥相乘。

最后,这4个子分组重新连接到一起产生密文。

密钥扩展算法

产生子密钥也很容易。这个算法用了52个子密钥(8轮中的每一轮需要6个,其他4个用与输出变换)。首先,将128-位密钥分成8个16-位子密钥。这些是算法的第一批8个子密钥(第一轮六个,第二轮的头两个)。然后,密钥向左环移x位后再分成8个子密钥。开始4个用在第二轮,后面4个用在第三轮。密钥再次向左环移25位产生另外8个子密钥,如此进行直到算法结束。

IDEA算法的解密过程和加密过程是类似的,唯一不同是子密钥的使用,解密子密钥由加密子密钥计算得到.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄金龙PLUS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值