曹务绅 200604015014 DES 仿真实验
R
R
i
i
ß
L
L
i
i
-1
-1
⊕
⊕
f
f
(
(
R
R
i
i
-1
-1
,
,
k
k
i
i
)
)
i
i
=1,2,…,16
=1,2,…,16
<64bit
<64bit
密文
密文
>
>ß
IP
IP
-1
-1
(
(
R
R
16
16
L
L
16
16
)
)
所以对于软件仿真,需要解决的问题主哟啊有 3 个:初始装换 IP 以及初始逆转
换 IP
-1
的实现,子密钥的生成,加密函数 f 的实现。
1、初始装换 IP 以及初始逆转换 IP
-1
DES 算法把 64 位的明文输入块变為 64 位的密文输出块,它所使用的密钥
也是 64 位,其功能是把输入的 64 位数据块按位重新组合,并把输出分為
L0、R0 两部分,每部分各长 32 位,其置换规则见下表:
58,50,12,34,26,18,10,2,60,52,44,36,28,20,12,4,
62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,
57,49,41,33,25,17, 9,1,59,51,43,35,27,19,11,3,
61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,
即将输入的第 58 位换到第一位,第 50 位换到第 2 位,...,依此类推,最
后一位是原来的第 7 位。L0、R0 则是换位输出后的两部分,L0 是输出的左
32 位,R0 是右 32 位,例:设置换前的输入值為 D1D2D3......D64,则经过
初始置换后的结果為:L0=D550...D8;R0=D57D49...D7。
经过 26 次迭代运算后。得到 L16、R16,将此作為输入,进行逆置换,
即得到密文输出。逆置换正好是初始置的逆运算,例如,第 1 位经过初始置换
后,处於第 40 位,而通过逆置换,又将第 40 位换回到第 1 位,其逆置换规则
如下表所示:
4