DES算法概述 L(32位) R(32位) k(48位) 。16轮迭代运算 第1轮 - L(32位) R1(32位) 2 L1(32位) R1(32位) k48位) 第i轮 L(32位) R(32位) 轮函数f(R-1,k) L1s(32位) R1s(32位) 是DES的核心 k1(48位) 第16轮 R6(32位) L1(32位)
DES算法概述 16轮迭代运算 L0(32 位) R0(32 位) L1(32 位) R1(32 位) ⊕ f k1(48 位) Li-1(32 位) Ri-1(32 位) Li(32 位) Ri(32 位) ⊕ f L15(32 位) R15(32 位) R16(32 位) L16(32 位) ⊕ f 第 1 轮 第 i 轮 第 16 轮 ki(48 位) k16(48 位) 轮函数𝒇(𝑹𝒊−𝟏, 𝒌𝒊) 是DES的核心
DES算法概述 Ri1 。轮函数f(Ri-1,ki) 32 ■包含四个变换:扩展置换、 扩展置换EP 子密异或、S盒代替、P盒 /48 置换。 ∠48k 48 6 6 66 Ss 4 32 P盒置换
DES算法概述 轮函数𝒇(𝑹𝒊−𝟏, 𝒌𝒊) 包含四个变换:扩展置换、 子密钥异或、S盒代替、P盒 置换
DES算法概述 ●扩展置换(expansion permutation,EP) ■扩展置换将32位的输入扩展成48位。 32 1 2 3 4 5 4 5 6 8 第1输入组(4位) 第2输入组(4位) 第8输入组(4位) T234 56 7 8 29303132 8 9 10 11 12 13 12 13 14 15 16 17 12345 6 7891011121 434445464748 16 17 18 19 20 21 第1输出组(6位) 第2输出组(6位) 第8输出组(6位) 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
DES算法概述 扩展置换(expansion permutation, EP) 扩展置换将32位的输入扩展成48位。 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 1 2 3 4 1 2 3 4 5 6 5 6 7 8 7 8 9 10 11 12 29 30 31 32 43 44 45 46 47 48 第1输入组(4位) 第2输入组(4位) 第8输入组(4位) 第1输出组(6位) 第2输出组(6位) 第8输出组(6位)
DES算法概述 。子密异或 ■将经过扩展置换得到48位输出与子密k进行异或操作。 ■DES算法要进行16轮迭代运算,每轮 要使用一个48位的 子密,共要16个子密。 ■子密根据用户输入的64位密按照子密 生成算法产生
DES算法概述 子密钥异或 将经过扩展置换得到48位输出与子密钥ki进行异或操作。 DES算法需要进行16轮迭代运算,每轮都需要使用一个48位的 子密钥,共需要16个子密钥。 子密钥根据用户输入的64位密钥按照子密钥生成算法产生
DES算法概述 。S盒代替 ■S盒代替是将“子密异或”的输出结果(48位)作为S盒代替的 输入,经过变换得到32位的输出。 48bit寄存器 将48位输出结果分成8个 组,每组6位 每个S盒是线性运算 。 6位输入,4位输出 32bit寄存器
DES算法概述 S盒代替 S盒代替是将“子密钥异或”的输出结果(48位)作为S盒代替的 输入,经过变换得到32位的输出。 48 bit 寄存器 32 bit 寄存器 S1 S2 S3 S4 S5 S6 S7 S8 将48位输出结果分成8个 组,每组6位 每个S盒都是非线性运算 ,6位输入,4位输出