你好,欢迎来到中华试剂网 购试剂 买耗材! [请登录][注册有惊喜]

货号快速下单 | 签到送积分   | 会员中心 | 客服热线:400-021-2765

为什么des解密是正确的

提问时间:2021/4/20 8:14:18

1条回复:

匿名
2021/4/20 8:14:18

DES算法处理的数据对象是一组64比特的明文串。设该明文串为m=m1m2…m64 (mi=0或1)。明文串经过64比特的密钥K来加密,最后生成长度为64比特的密文E。其加密过程图示如下: 
DES算法加密过程 
对DES算法加密过程图示的说明如下:待加密的64比特明文串m,经过IP置换后,得到的比特串的下标列表如下: 
IP 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 
该比特串被分为32位的L0和32位的R0两部分。R0子密钥K1(子密钥的生成将在后面讲)经过变换f(R0,K1)(f变换将在下面讲)输出32位的比特串f1,f1与L0做不进位的二进制加法运算。运算规则为: 
f1与L0做不进位的二进制加法运算后的结果赋给R1,R0则原封不动的赋给L1。L1与R0又做与以上完全相同的运算,生成L2,R2…… 一共经过16次运算。最后生成R16和L16。其中R16为L15与f(R15,K16)做不进位二进制加法运算的结果,L16是R15的直接赋值。 
R16与L16合并成64位的比特串。值得注意的是R16一定要排在L16前面。R16与L16合并后成的比特串,经过置换IP-1后所得比特串的下标列表如下: 
IP-1 40 8 48 16 56 24 64 32 
39 7 47 15 55 23 63 31 
38 6 46 14 54 22 62 30 
37 5 45 13 53 21 61 29 
36 4 44 12 52 20 60 28 
35 3 43 11 51 19 59 27 
34 2 42 10 50 18 58 26 
33 1 41 9 49 17 57 25 
经过置换IP-1后生成的比特串就是密文e.。 
下面再讲一下变换f(Ri-1,Ki)。 
它的功能是将32比特的输入再转化为32比特的输出。其过程如图所示: 
对f变换说明如下:输入Ri-1(32比特)经过变换E后,膨胀为48比特。膨胀后的比特串的下标列表如下: 
E: 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 31 
膨胀后的比特串分为8组,每组6比特。各组经过各自的S盒后,又变为4比特(具体过程见后),合并后又成为32比特。该32比特经过P变换后,其下标列表如下: 
P: 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 
经过P变换后输出的比特串才是32比特的f (Ri-1,Ki)。

回复