信安实验-DES(备课)

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=01100=125=0101
S2:01=11000=812=1100

在这里插入图片描述

S3:00=01111=158=1000
S4:10=21101=132=0010

在这里插入图片描述

S5:11=30000=011=1011
S6:10=20011=35=0101

在这里插入图片描述

S7:00=01010=109=1001
S8:11=30011=37=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

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值