# 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