Windows中文网

 找回密码
 立即注册
搜索
查看: 5381|回复: 0

国际数据加密算法IDEA加密原理及编码实现

[复制链接]

19

主题

22

帖子

428

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
428
发表于 2022-9-11 17:59:34 | 显示全部楼层 |阅读模式
国际数据加密算法(International Data Encryption Algorithm,简称IDEA)最开始被称为改良建议加密标准(Improved Proposed Encryption Standard,简称IPES),是一种对称密钥分组密码,由著名密码专家James Massey与中国学者来学嘉于1990年提出。IDEA算法的提出是为了取代旧有的数据加密标准DES,但是,现在IDEA被认为是不安全的加密算法。
IDEA的明文和密文分组长度均为64位,密钥长度为128位。IDEA加密算法也属于对合函数,加密和解密共用同一个函数。和其他分组密码类似,IDEA采用基本轮函数进行8轮迭代,最后再经过一个输出变换。
IDEA加密算法将64位的明文M划分为4个子块,每个子块16位,分别记为                              ;64位的密文也分为4个子块,每个子块16位,分别记为 。128位的密钥经过子密钥产生算法生成52个16位的子密钥,每一轮加密迭代使用6个子密钥,8轮加密迭代共使用48个子密钥,剩余的4个子密钥用于最后的输出变换。
我们将第r轮加密迭代时使用的第i个子密钥标记为 ;将输出变换使用的第i个子密钥标记为 。
每一轮加密迭代的运算步骤如下所示:
(1)     与 执行乘法运算。
(2)     与 执行加法运算。
(3)     与 执行加法运算。
(4)     与 执行乘法运算。
(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)步的结果即为本轮加密迭代的输出结果。除了第8轮加密迭代以外,每一轮还需要将中间两个输出结果进行交换,以作为下一轮加密迭代的输入。
经过8轮加密迭代以后,得到中间输出 ,中间输出再经过输出变换得到 。输出变换的运算过程为: 与 执行乘法运算得到 ; 与 执行加法运算得到 ; 与 执行加法运算得到 ; 与 执行乘法运算得到 。
IDEA的子密钥产生算法。首先将128位的密钥划分为8个子密钥,每个子密钥16位,其中,前6个子密钥标记为 ,供第1轮加密迭代使用,后2个子密钥标记为 ,供第2轮加密迭代使用;然后,将128位的密钥循环左移35位,同样划分为8个子密钥,其中,前4个子密钥标记为 ,供第2轮加密迭代使用,后4个子密钥标记为 ,供第3轮加密迭代使用;如此继续,直到产生全部52个子密钥。

回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

QQ|Archiver|手机版|小黑屋|Windows中文网 ( 鲁ICP备2021014210号 )

GMT+8, 2025-6-9 20:05 , Processed in 0.077741 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表