本文主要是介绍信安实验-DES(备课),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
实验目录
- DES加密
- 秘钥的计算
- 初始转换
- 扩展置换
- S盒替换
- P盒置换
DES加密
明文M=(0123456789ABCDEF)16=(00000001 00100011 01000101 01100111 10001001 10101011 11001101 11101111)2
密钥K=(133457799BBCDFF1)16=(00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001)2
秘钥的计算
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
得到
K0=11110000110011001010101011110101010101100110011110001111
拆分
C0=1111000011001100101010101111
D0=0101010101100110011110001111
第一轮,左移1位
C1=1110000110011001010101011111
D1=1010101011001100111100011110
合并得到新的子秘钥
C1D1=11100001100110010101010111111010101011001100111100011110
压缩置换2:
1110000 7
1100110 14
0101010 21
1011111 28
1010101 35
0110011 42
0011110 49
0011110 56
根据压缩置换2表得到K1:
000110
110000
001011
101111
111111
000111
000001
110010
得到
K1(48)= 00011011 00000010 11101111 11111100 01110000 01110010
初始转换
M=00000001 00100011 01000101 01100111 10001001 10101011 11001101 11101111
00000001
00100011
01000101
01100111
10001001
10101011
11001101
11101111
根据初始置换表转换:
00000001 8
00100011 16
01000101 24
01100111 32
10001001 40
10101011 48
11001101 56
11101111 64
置换得到:
11001100
00000000
11001100
11111111
11110000
10101010
11110000
10101010
M=11001100 00000000 11001100 11111111 11110000 10101010 11110000 10101010
分为左右两部分
L0=11001100 00000000 11001100 11111111
R0=11110000 10101010 11110000 10101010
扩展置换
R0=11110000 10101010 11110000 10101010
分组
1111 0000 1010 1010 1111 0000 1010 1010
拓展置换得到
011110 100001 010101 010101 011110 100001 010101 010101
得到
E(R0)48=01111010 00010101 01010101 01111010 00010101 01010101
R048=E(R0)异或K1
K1(48)= 00011011 00000010 11101111 11111100 01110000 01110010
得到
R0(48)=01100001 00010111 10111010 10000110 01100101 00100111
S盒替换
将R0分组
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 |
最终
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盒置换
分组
0101 4
1100 8
1000 12
0010 16
1011 20
0101 24
1001 28
0111 32
根据P盒置换表转换得到:
0010
0011
0100
1010
1010
1001
1011
1011
F= 00100011 01001010 10101001 10111011
L0=11001100 00000000 11001100 11111111
R1=L0^F=11101111 01001010 01100101 01000100
L1=R0=11110000 10101010 11110000 10101010
经过第一轮加密后
M1=11101111 01001010 01100101 01000100 11110000 10101010 11110000 10101010
即
M1=(EF4A6544F0AAF0AA)16
这篇关于信安实验-DES(备课)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!