DES补充材料

本文详细介绍了数据加密标准(DES)块密码中引用的各种

在本文档中,所有位和字节都以大端秩序排列。也就是说,位1始终是最重要的位。

初始排列(IP)

Final permutation
最终排列
IP
58 50 42 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

该表指定了64位块上的输入置换。含义如下:输出的第一位取自输入的第58位;第二位来自50位,依此类推,输出的最后位取自输入的第7位。

此信息以易于介绍的表格表示;它是向量,而不是矩阵。

最终排列(IP -1

最终取代
IP -1
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

最终排列是初始排列的倒数。表的解释类似。

扩展功能(E)

Expansion function
扩展功能
E
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

扩展函数被解释为初始和最终排列。请注意,输入中的某些位在输出时重复;例如,输入的第五位在输出的第六位和第八位重复。因此,32位半块扩展到48位。

置换(P)

P permutation
P置换
P
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置换量将32位半块块的位变为。

排列的选择1(PC-1)

Permuted choice 1
选择的选择1
PC-1
左边
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
正确的
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4

表格的“左”和“右”一半显示,从输入密钥中示出了关键时间表状态的左右部分。请注意,只选择了64位输入的56位;将其余八个(8、16、24、32、40、48、56、64)指定为均等位

排列的选择2(PC-2)

Permuted choice 2
选择2
PC-2
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32

该置换量从56位钥匙安排状态中选择每个回合的48位子钥匙。此排列将忽略下面的8位:

排列的选择2“ PC-2”忽略了位9、18、22、25、35、38、43、54。

替换盒(S-boxes)

S-boxes
S 1 x0000x x0001x x0010x x0011x X0100X x0101x x0110x x0111x x1000x x1001x x1010x x1011x X1100X x1101x x1110x x1111x
0yyyy0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0yyyy1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
1yyyy0 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
1yyyy1 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
S 2 x0000x x0001x x0010x x0011x X0100X x0101x x0110x x0111x x1000x x1001x x1010x x1011x X1100X x1101x x1110x x1111x
0yyyy0 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
0yyyy1 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
1yyyy0 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
1yyyy1 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
S 3 x0000x x0001x x0010x x0011x X0100X x0101x x0110x x0111x x1000x x1001x x1010x x1011x X1100X x1101x x1110x x1111x
0yyyy0 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
0yyyy1 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
1yyyy0 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
1yyyy1 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
S 4 x0000x x0001x x0010x x0011x X0100X x0101x x0110x x0111x x1000x x1001x x1010x x1011x X1100X x1101x x1110x x1111x
0yyyy0 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
0yyyy1 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
1yyyy0 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
1yyyy1 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
S 5 x0000x x0001x x0010x x0011x X0100X x0101x x0110x x0111x x1000x x1001x x1010x x1011x X1100X x1101x x1110x x1111x
0yyyy0 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
0yyyy1 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
1yyyy0 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
1yyyy1 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
S 6 x0000x x0001x x0010x x0011x X0100X x0101x x0110x x0111x x1000x x1001x x1010x x1011x X1100X x1101x x1110x x1111x
0yyyy0 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
0yyyy1 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
1yyyy0 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
1yyyy1 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
S 7 x0000x x0001x x0010x x0011x X0100X x0101x x0110x x0111x x1000x x1001x x1010x x1011x X1100X x1101x x1110x x1111x
0yyyy0 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
0yyyy1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
1yyyy0 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
1yyyy1 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
S 8 x0000x x0001x x0010x x0011x X0100X x0101x x0110x x0111x x1000x x1001x x1010x x1011x X1100X x1101x x1110x x1111x
0yyyy0 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
0yyyy1 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
1yyyy0 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
1yyyy1 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

该表列出了DES中使用的八个S框。每个S-box用4位输出替换6位输入。给定6位输入,可以通过使用外部两个位选择行,然后使用内部四个位选择列来找到4位输出。例如,输入“ 0 1101 1 ”具有外部位“ 01 ”,并且内部位“ 1101”;指出第一行是“ 00”,第一行是“ 0000”,S-box S 5的相应输出为“ 1001”(= 9),第二行中的值是第14列。 (请参阅S-Box )。

关键一代

用户提供的主要密钥是64位。使用以下操作执行。

降低平价位

掉落灰色位置(8倍)的位,使每轮进一步操作56位空间。

奇偶校验表
1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64

在根据下表置入位置之后,

该桌子是行大道,是指,

实际位位置=用行 * 8 +列的位替换。

置换表
1 2 3 4 5 6 7 8
0 57 49 41 33 25 17 9 1
1 58 50 42 34 26 18 10 2
2 59 51 43 35 27 19 11 3
3 60 52 44 36 63 55 47 39
4 31 23 15 7 62 54 46 38
5 30 22 14 6 61 53 45 37
6 29 21 13 5 28 20 12 4

位旋转

在选择圆形键键之前,关键时间表状态的每一半都由许多位置旋转。该表指定旋转的位置数量。

•钥匙分为两个28位零件

•每个零件都向左移动(圆形)一两个位

•转移后,将两个部分组合在一起以形成56位温度键

位旋转表
回合数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
左转数 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

密钥压缩

•压缩P-box将56位密钥更改为48位键,该密钥用作相应的回合的键。

该桌子是行大道,是指,

实际位位置=用行 * 8 +列的位替换。

钥匙压缩表
1 2 3 4 5 6 7 8
1 14 17 11 24 01 05 03 28
2 15 06 21 10 23 19 12 04
3 26 08 16 07 27 20 13 02
4 41 52 31 37 47 55 30 40
5 51 45 33 48 44 49 39 56
6 34 53 46 42 50 36 29 32

此后,将48位的圆头返回到所谓的功能,圆形。