- 关 键 词:
3.3.密文解密
介绍IDEA加密算法的资料本就不多而且对于解密过程往往一笔带过,笔者在编程实现IDEA算法时为此大伤脑筋,好在这块骨头总算被啃下了.下文笔者将结合实现代码介绍一下解密过程,如果读者想亲自动手实现IDEA算法,笔者的”痛苦经验”是可以让你少走些弯路的.
解密操作和加密的步骤基本相同,但是在求密钥时有所区别.
首先从用户输入的128位密钥扩展出52个子密钥,存放在ULONG16 Key[52]数组中,然后对这个52个子密钥进行换位操作,
新位置:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
原位置:
48
49
50
51
46
47
42
44
43
45
40
41
36
38
新位置:
14
15
16
17
18
19
20
21
22
23
24
25
26
27
原位置:
37
39
34
35
30
32
31
33
28
29
24
26
25
27
新位置:
28
29
30
31
32
33
34
35
36
37
38
39
40
41
原位置:
22
23
18
20
19
21
16
17
12
14
13
15
10
11
新位置:
42
43
44
45
46
47
48
49
50
51
原位置:
6
8
7
9
4
5
0
1
2
3
表中的原位置行的值代表该子密钥在原密钥数组中的位置,比如新密钥数组中的第0号子密钥为原来子密钥组中的第48号子密钥,对子密钥数组换位后,就需要对某些子密钥进行模216+1的乘法逆或模216加法逆的替换,详情见下表(位置是针对换位后的子密钥组)请看 下一页 查看 http://www.qqread.com/soft-engineering/u520599011.html
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- 软件设计的十二个最佳步骤 (35次浏览)
- 深入理解敏捷开发的常见九大误区 (20次浏览)
- 从瀑布模型、极限编程到敏捷开发 (13次浏览)
- CMMI证书背后的6大怪相 (11次浏览)
- 程序员如何保证代码正确 (3次浏览)
- 敏捷软件开发模型:SCRUM (2次浏览)
- 配置管理变更的关键路径 (1次浏览)
- XFire:轻松简单地开发Web Services (0次浏览)
- Windows或开源:企业级OS之争趋势如何? (0次浏览)
- 浅析软件项目进度管理中的积习流弊 (0次浏览)



