信安实验-DES(备课)
2022-09-26 22:02:17

# DES 加密

1
2
明文M=(0123456789ABCDEF)16=(00000001 00100011 01000101 01100111 10001001 10101011 11001101 11101111)2
密钥K=(133457799BBCDFF1)16=(00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001)2

# 秘钥的计算

1
K=00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001

在这里插入图片描述

在这里插入图片描述

压缩置换 1:

00010011 8
00110100 16
01010111 24
01111001 32
10011011 40
10111100 48
11011111 56
11110001 64

在这里插入图片描述
按照表格选出上述数字

1111000
0110011
0010101
0101111
0101010
1011001
1001111
0001111

得到

1
K0=11110000110011001010101011110101010101100110011110001111

拆分

1
2
C0=1111000011001100101010101111
D0=0101010101100110011110001111

第一轮,左移 1 位

1
2
C1=1110000110011001010101011111
D1=1010101011001100111100011110

合并得到新的子秘钥

1
C1D1=11100001100110010101010111111010101011001100111100011110

压缩置换 2:

1
2
3
4
5
6
7
8
1110000  7    
1100110 14
0101010 21
1011111 28
1010101 35
0110011 42
0011110 49
0011110 56

在这里插入图片描述

根据压缩置换 2 表得到 K1:

1
2
3
4
5
6
7
8
000110
110000
001011
101111
111111
000111
000001
110010

得到

1
K1(48)= 00011011 00000010 11101111 11111100 01110000 01110010

# 初始转换

1
M=00000001 00100011 01000101 01100111 10001001 10101011 11001101 11101111
1
2
3
4
5
6
7
8
9

00000001
00100011
01000101
01100111
10001001
10101011
11001101
11101111

在这里插入图片描述
根据初始置换表转换:

1
2
3
4
5
6
7
8
00000001 8
00100011 16
01000101 24
01100111 32
10001001 40
10101011 48
11001101 56
11101111 64

置换得到:

1
2
3
4
5
6
7
8
11001100
00000000
11001100
11111111
11110000
10101010
11110000
10101010
1
M=11001100 00000000 11001100 11111111 11110000 10101010 11110000 10101010

分为左右两部分

1
2
L0=11001100 00000000 11001100 11111111
R0=11110000 10101010 11110000 10101010

# 扩展置换

1
R0=11110000 10101010 11110000 10101010

分组

1
2
3
4
5
6
7
8
1111 
0000
1010
1010
1111
0000
1010
1010

拓展置换得到

1
2
3
4
5
6
7
8
011110 
100001
010101
010101
011110
100001
010101
010101

得到

1
E(R0)48=01111010 00010101 01010101 01111010 00010101 01010101

R048=E (R0) 异或 K1

1
K1(48)= 00011011 00000010 11101111 11111100 01110000 01110010  

得到

1
R0(48)=01100001 00010111 10111010 10000110 01100101 00100111

# S 盒替换

将 R0 分组

1
2
3
4
5
6
7
8
011000
010001
011110
111010
100001
100110
010100
100111

扩展位二进制转十进制,原位二进制转为十进制,对应表格中数字转为二进制

S1: 00=0 1100=12 5=0101
S2:01=1 1000=8 12=1100

在这里插入图片描述

S3:00=0 1111=15 8=1000
S4:10=2 1101=13 2=0010

在这里插入图片描述

S5:11=3 0000=0 11=1011
S6:10=2 0011=3 5=0101

在这里插入图片描述

S7:00=0 1010=10 9=1001
S8:11=3 0011=3 7=0111

在这里插入图片描述
最终

1
S1(011000)=0101, S2(010001)=1100, S3(011110)=1000, S4(111010)=0010 S5(100001)=1011, S6(100110)=0101, S7(010100)=1001, S8(100111)=0111

# P 盒置换

分组

1
2
3
4
5
6
7
8
0101  4
1100 8
1000 12
0010 16
1011 20
0101 24
1001 28
0111 32

在这里插入图片描述
根据 P 盒置换表转换得到:

1
2
3
4
5
6
7
8
0010
0011
0100
1010
1010
1001
1011
1011
1
F= 00100011 01001010 10101001 10111011
1
L0=11001100 00000000 11001100 11111111
1
R1=L0^F=11101111 01001010 01100101 01000100
1
L1=R0=11110000 10101010 11110000 10101010

经过第一轮加密后

1
M1=11101111 01001010 01100101 01000100 11110000 10101010 11110000 10101010


M1=(EF4A6544F0AAF0AA) 16