DES算法概述 ●S盒选择规则 ■每个S盒是一个4行16列的表。 ■输入为x1x2x3x4x5x6,输出为y1y2y3y4 (I)将xx转换为十进 制的03的数,对应于 x1x2 X3 x4 Xs x6 表的行号 0123 15 (3)利用行号列号查表得 0 到一个整数,将其转换 (2)将xxxx转换为十 成二进制即得到结果 进制的0~15的数,对 应于表的列号 3 y'2'3'4 Ⅵ2y4
DES算法概述 S盒选择规则 每个S盒是一个4行16列的表。 输入为𝒙𝟏𝒙𝟐𝒙𝟑𝒙𝟒𝒙𝟓𝒙𝟔,输出为𝒚𝟏𝒚𝟐𝒚𝟑𝒚𝟒. (1)将x1x6转换为十进 制的0~3的数,对应于 表的行号 (2)将x2x3x4x5转换为十 进制的0~15的数,对 应于表的列号 (3)利用行号列号查表得 到一个整数,将其转换 成二进制即得到结果 y1 y2 y3 y4 0 1 2 3 15 0 1 2 3 y1 y2 y3 y4 x1 x2 x3 x4 x5 x6
DES算法概述 ·具体的S盒表 X1 X6 X X2 X3 X4 X5 X6 输出=0010 10 101100 列 01 23456 7 8/ 910 1112131415 行 14 4 13 1 2 15 11 3 10 6 125 9 0 7 0 1574 142 13 10 612 119 38 SI 2 4 1 14 8 13 6 2 11 15 12 73 105 0 3 151282 49 113 141006 13
x1 x6 x1 x2 x3 x4 x5 x6 1 0 1 0 1 1 0 0 DES算法概述 具体的S盒表 输出=0010
DES算法概述 ●P盒置换 ■P盒置换是将S盒代替的输出结果按照固定的置换盒(P盒)进行变 换,置换后得到的32比特即为f函数的输出。 ·基本特点 16 7 20 21 29 12 28 17 ■P盒的各输出块的4个比特 来自不同的输入块 15 23 26 ■P盒的各输入块的4个比特 分到不同的输出块中 18 31 10 ■P盒的第输出块的4个比特 不来自第输入块 2 8 24 14 32 27 3 0 19 13 30 6 P(C1C2.C32)=C16C7C20C21C29C12C28.C11C4C25 22 11 4 25
P盒置换 P盒置换是将S盒代替的输出结果按照固定的置换盒(P盒)进行变 换,置换后得到的32比特即为f函数的输出。 基本特点 P盒的各输出块的4个比特都来自不同的输入块 P盒的各输入块的4个比特都分配到不同的输出块中 P盒的第t输出块的4个比特都不来自第t输入块 DES算法概述 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 P(c1 c2…c32)=c16c7 c20c21c29c12c28….c11c4 c25
DES算法概述 。逆初始置换 ■逆初始置换P-1是初始置换P的逆过程 DES在最后一轮并不交换左右两分,即执IP-1(R16L16)。这 样做的好处在于加密和解密可以使用同一个算法。 40 8 48 16 56 24 64 32 39 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 逆初始置换表
逆初始置换 逆初始置换𝐈𝐏−𝟏是初始置换IP的逆过程 DES在最后一轮并不交换左右两部分,即执𝐈𝐏−𝟏 (R16||L16) 。这 样做的好处在于加密和解密可以使用同一个算法。 DES算法概述 逆初始置换表 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25
DES算法概述 。子密生成算法 初始密钥 64 ■初始密置换PC-1 PC-1 ■循环左移位 Y56 Co Do ■压缩置换PC-2 28 28 左移位 左移位 28 28 48 PC-2 56 CI Di 王28 28 左移位 左移位 左移位 左移位 128 28 k16 48 PC-2 C16 D16 56
DES算法概述 子密钥生成算法 初始密钥置换PC-1 循环左移位 压缩置换PC-2