des举例gz.docx
《des举例gz.docx》由会员分享,可在线阅读,更多相关《des举例gz.docx(15页珍藏版)》请在冰豆网上搜索。
des举例gz
假设m=computer=>63,6F,6D,70,75,74,65,72
k=network=>6E,65,74,77,6F,72,6B
请用DES加密法加密,写出加密过程:
解:
1、先求密钥K1
因为:
k=01101100,01100101,01110100,01110111,
01101111,01110010,01101011
1.1先拓展到64位:
在每七位后加一位校验位
K(temp)=0110110*,0011001*,0101110*,1000111*,0111011*,
0111101*,1100100*,1101011*
排成8*8矩阵如下:
0
1
1
0
1
1
0
*
0
0
1
1
0
0
1
*
0
1
0
1
1
1
0
*
1
0
0
0
1
1
1
*
0
1
1
1
0
1
1
*
0
1
1
1
1
0
1
*
1
1
0
0
1
0
0
*
1
1
0
1
0
1
1
*
1.2根据置换选择pc-1的进行变换,其过程如下:
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
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
PC-1=>
0
1
1
0
1
1
0
*
置换选择pc-1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
*
0
1
1
1
1
0
1
0
1
0
1
1
1
0
*
0
1
0
0
1
1
0
1
0
0
0
1
1
1
*
0
1
1
1
0
1
1
0
1
1
1
0
1
1
*
1
0
1
1
1
0
1
0
1
1
1
1
0
1
*
0
1
0
0
1
1
1
1
1
0
0
1
0
0
*
0
1
0
1
1
0
1
1
1
0
1
0
1
1
*
1
0
1
0
1
1
0
故有:
规律:
右表的前28位,是从左表的左下角开始,由下向上依次取,并按7位分组填入右表;右表的后28位,是从左表的7右下角开始,由下向上依次取,并按7位分组填入右表.(注:
最后一行是区剩下的).
1.3将右表分为两组:
前28位一组C0,后28位一组D0
可得如下:
C0=1100100,0111101,0100110,0111011
D0=1011101,0100111,0101101,1010110
1.4将C0,D0左循环移位,根据下表确定移多少位:
轮数:
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
所以这里左移一位.
C0=1100100,0111101,0100110,0111011
C1=100100,0111101,0100110,01110111
D0=1011101,0100111,0101101,1010110
D1=011101,0100111,0101101,10101101
1.5在将C1,D1组合成8行*7列的矩阵,如下:
C1=100100,0111101,0100110,01110111
D1=011101,0100111,0101101,10101101
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
1.6根据置换选择PC-2进行变换过程如下:
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
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
PC-2
规律:
将9,18,22,25,35,38,43,54去掉;其他的没有规律.
PC-2
故得到48位的K1,
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
K1=001110,011001,110111,001010,101000,111101,011111,100101
算完K1后,取C1,D1从1.4开始迭代16次
2、明文用密钥加密
2.1、变换明文,分为两组
m=computer=>63,6F,6D,70,75,74,65,72
m=01100011,01101111,01101101,01110000,
01110101,01110100,01100101,01110010
组成8*8矩阵如下
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
进行初始变换IP,
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
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
==>
IP
故有初始变换:
IP
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
分成两组:
前32位一组L0,后32位一组R0
L0=11111111,10111000,01110110,01010111
R0=00000000,11111111,00000110,10000011
并且将R0=00000000,11111111,00000110,10000011
组合成8行*4列矩阵如下:
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
2.2、将R0扩展为48位
根据选择扩展运算E,来扩展
E
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
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
故有:
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
因此,
R0(t48)=100000,000001,011111,111110,
100000,001101,010000,000110
2.3、将R0(t48)与密钥K1进行XOR
R0(t48)=100000,000001,011111,111110,100000,001101,010000,000110
K1=001110,011001,110111,001010,101000,111101,011111,100101
得出48位结果R0(X48)=
101110,011000,101000,110100,001000,110000,001111,100011
2.4、进行S盒输出,其定义如下:
S1:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
14
4
13
1
2
15
11
8
3
10
6
12
5
9
0
7
1
0
15
7
4
14
2
13
1
10
6
12
11
9
5
3
8
2
4
1
14
8
13
6
2
11
15
12
9
7
3
10
5
0
3
15
12
8
2
4
9
1
7
5
11
3
14
10
0
6
13
S2:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
15
1
8
14
6
11
3
4
9
7
2
13
12
0
5
10
1
3
13
4
7
15
2
8
14
12
0
1
10
6
9
11
5
2
0
14
7
11
10
4
13
1
5
8
12
6
9
3
2
15
3
13
8
10
1
3
15
4
2
11
6
7
12
0
5
14
9
S3:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
10
0
9
14
6
3
15
5
1
13
12
7
11
4
2
8
1
13
7
0
9
3
4
6
10
2
8
5
14
12
11
15
1
2
13
6
4
9
8
15
3
0
11
1
2
12
5
10
14
7
3
1
10
13
0
6
9
8
7
4
15
14
3
11
5
2
12
S4:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
7
13
14
3
0
6
9
10
1
2
8
5
11
12
4
15
1
13
8
11
5
6
15
0
3
4
7
2
12
1
10
14
9
2
10
6
9
0
12
11
7
13
15
1
3
14
5
2
8
4
3
3
15
0
6
10
1
13
8
9
4
5
11
12
7
2
14
S5:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
2
12
4
1
7
10
11
6
8
5
3
15
13
0
14
9
1
14
11
2
12
4
7
13
1
5
0
15
10
3
9
8
6
2
4
2
1
11
10
13
7
8
15
9
12
5
6
3
0
14
3
11
8
12
7
1
14
2
13
6
15
0
9
10
4
5
3
S6:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
12
1
10
15
9
2
6
8
0
13
3
4
14
7
5
11
1
10
15
4
2
7
12
9
5
6
1
13
14
0
11
3
8
2
9
14
15
5
2
8
12
3
7
0
4
10
1
13
11
6
3
4
3
2
12
9
5
15
10
11
14
1
7
6
0
8
13
S7:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
4
11
2
14
15
0
8
13
3
12
9
7
5
10
6
1
1
13
0
11
7
4
9
1
10
14
3
5
12
2
15
8
6
2
1
4
11
13
12
3
7
14
10
15
6
8
0
5
9
2
3
6
11
13
8
1
4
10
7
9
5
0
15
14
2
3
12
S8:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
13
2
8
4
6
15
11
1
10
9
3
14
5
0
12
7
1
1
15
13
8
10
3
7
4
12
5
6
11
0
14
9
2
2
7
11
4
1
9
12
14
2
0
6
10
13
15
3
5
8
3
2
1
14
7
4
10
8
13
15
12
9
0
3
5
6
11
故有:
查表过程如下:
原始数据
行,列
盒子
查得数据
二进制表示
1
0
1
1
1
0
2,7
S1
11
1011
0
1
1
0
0
0
0,12
S2
12
1100
1
0
1
0
0
0
2,4
S3
8
1000
1
1
0
1
0
0
2,10
S4
3
0011
0
0
1
0
0
0
0,4
S5
7
0111
1
1
0
0
0
0
2,8
S6
7
0111
0
0
1
1
1
1
1,7
S7
10
1010
1
0
0
0
1
1
3,1
S8
1
0001
R0(S32)=1011,1100,1000,0011,0111,0111,1010,0001
2.4、对R0(S32)进行置换运算P
置换运算P
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
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
故有:
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
置换运算P
所以,R0(P32)=1010,0000,1110,1100,0010,1111,1001,1011
2.5、将R0(P32)与L0进行XOR运算得R1
R0(P32)=1010,0000,1110,1100,0010,1111,1001,1011
L0=1111,1111,1011,1000,0111,0110,0101,0111
运算得R1=0101,1111,0101,0100,0101,1001,1100,1100
而L1=R0=00000000,11111111,00000110,10000011
这样就完成了一轮运算。
0000,0000,1111,1111,0000,0110,1000,0011,
0101,1111,0101,0100,0101,1001,1100,1100
得到一轮加密的结果为:
00,FF,06,83,5F,54,55,66
翻译为字符是:
NULL,ÿ,ACK,á,_,T,U,f
3、进行2-16轮迭代运算从2.2开始