请教DES算法的解密

作者&投稿:陀婉 (若有异议请与网页底部的电邮联系)
请教DES算法的解密~

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)。
下面再讲一下S盒的变换过程。任取一S盒。见图:

DES算法处理的数据对象是一组64比特的明文串。设该明文串为m=m1m2…m64 (mi=0或1)。明文串经过64比特的密钥K来加密,最后生成长度为64比特的密文E。

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)。
下面再讲一下S盒的变换过程。任取一S盒。见图:


【算法】加密解密算法(DES、3DES、SM2、SM3、SM4)以及RSA加密算法
本文主要介绍了几种加密解密算法,包括对称加密算法DES、3DES,以及我国自主研发的SM2、SM3、SM4和SM9,以及非对称加密算法RSA。DES由于密钥长度较短,容易受到量子计算和大数据技术的影响。3DES通过增加密钥长度提高安全性,但当三密钥相同时,仅进行一次加密。SM2和SM3为公钥和对称加密算法,适用于数字签名...

加密算法之DES算法
以上介绍了DES算法的加密过程。DES算法的解密过程是一样的,区别仅仅在于第一次迭代时用子密钥K15,第二次K14、...,最后一次用K0,算法本身并没有任何变化。 2、DES算法的应用误区 DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。而56位长的密钥的穷举空间...

对称加密算法之DES介绍
DES算法利用 多次组合替代算法 和 换位算法 ,分散和错乱的相互作用,把明文编制成密码强度很高的密文,它的加密和解密用的是同一算法。 DES算法,是一种 乘积密码 ,其在算法结构上主要采用了 置换 、 代替 、 模二相加 等函数,通过 轮函数 迭代的方式来进行计算和工作。 DES算法也会使用到数据置换技术,主要有初始...

tplinkdes解密失败
2.1使用哪一种填充模式加密的,也必须采用哪种填充模式解密。2.2CBC加密模式需要有一个IV参数也就是初始化向量,这个值在加密时会随机生成,但必须保存下来,否则无法完成解密工作。2.3建议采用ECB模式,或者在使用CBC时将初始化向量保存,在解密时使用。\/算法名称\/加密模式\/填充方式:\/\/DES共有四种...

des是对称加密还是非对称加密
DES(数据加密标准)是一种对称加密算法。对称加密算法是指加密和解密使用相同密钥的算法。在DES中,加密和解密使用相同的密钥,通常称为“秘钥”。密钥长度为56位,但经过多次迭代后,最终的加密数据长度约为70比特左右。这意味着即使攻击者截获了加密的数据,他们也无法直接解密它,因为他们没...

有关DES算法的一道证明题
我们知道,DES的解密只需将16个子密钥以相反的顺序加入到轮函数中,重复加密的步骤即可。 现在我们要证明DES加密和解密的算法是完全一样,只是子密钥使用的顺序相反。也就是说,我们要证明密文经过子密钥顺序相反的加密之后可以得到明文。DES算法的解密流程如下:(1)生成子密钥 解密的时候使用的子密钥与...

网络运营安全密钥的算法问题?
要加密一组明文,每个子密钥按照顺序(1-16)以一系列的位操作施加于数据上,每个子密钥一次,一共重复16次。每一次迭代称之为一轮。要对密文进行解密可以采用同样的步骤,只是子密钥是按照逆向的顺序(16-1)对密文进行处理。计算16个子密钥 上面提到DES算法的一步就是从初始密钥中计算得出16个子密钥。

C#DESCryptoServiceProvide类解密问题!!!
{ \/\/默认密钥向量 private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };\/\/\/ \/\/\/ DES解密字符串 \/\/\/ \/\/\/ 待解密的字符串 \/\/\/ 解密密钥,要求为8位,和加密密钥相同 \/\/\/ <returns>解密成功返回解密后的字符串,失败返源串<\/returns> public...

js中常见的数据加密与解密的方法
DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法 DES算法的入口参数有三个:Key、Data、Mode。其中Key为7个字节共56位,是DES算法的工作密钥;Data为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。AES这个标准用来替代原先的DES DES\/...

使用C# DES解密java DES加密的字符串
Cipher.getInstance("DES\/CBC\/PKCS5Padding");里面的值要设置为同样的,这样才能通过密钥解密。

闻喜县17622319433: 请问DES加密算法中的这3个函数(获取密钥函数,加密函数与解密函数)的含义是什么(附函数算法)哪位高手可以帮我解释每句代码的含义吗?十分感谢... -
宜舍西乐:[答案] /// DES密钥 /// private const string KEY_64 = "11111111";//注意了,是8个字符,64位 /// /// DES向量 /// private const string IV_64 = "11111111"; /// /// 加密DES /// /// 需要加密的字符串 /// 加密后的字符串 public static string EncodeDES(string ...

闻喜县17622319433: 求DES加密算法详解
宜舍西乐: DES加密算法是分组加密算法,明文以64位为单位分成块.64位数据在64位密钥的控制下,经过初始变换后,进行16轮加密迭代:64位数据被分成左右两半部分,每部分32位,密钥与右半部分相结合,然后再与左半部分相结合,结果作为新的...

闻喜县17622319433: des加密算法如何破解,有啥好的破解思路?最好编个破译软件 -
宜舍西乐: DES加密后的数据,没有好的破解方法,一般连续运行下一两年你能破解一个也就不错了,更何况人家的密钥会不停的发生变化,所以,想破解DES加密,要花费很大的成本的.嘿嘿……,你就别想了.

闻喜县17622319433: 对称加密算法中,des算法的密钥长度是多少,采用什么进行加密 -
宜舍西乐:[答案] DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码.与每轮编码时,一个48位的“每轮”密钥值由56位的完整密钥得出来.DES用软件进行解码需要用很长时间,而用硬件解码速度非常快,但幸运的是当时大多数黑客并没...

闻喜县17622319433: 简述DES算法与RAS算法加密与解密的思想 -
宜舍西乐:[答案] DES是一种单一密钥加解密算法.通信主体只有一个密钥,该密钥部队第三方公开.RSA则是公钥/私钥系统.该系统比DES系统更原子化,具有普遍应用意义. nDES算法利用一个56+8奇偶校验位(第8, 16, 24, 32, 40, 48, 56, 64位)=64位的密钥对以64...

闻喜县17622319433: DES加密算法CBC模式怎么解密?最好有程序 谢谢~(*^ -- ^*) -
宜舍西乐: 原型:int WINAPI icePub_desEncryptionHex(char *strInputHexstring, char *strOutputHexstring, char *strKeyHexstring) 输入:strInputHexstring 待加密16进制数据串,16字节长度 strKeyHexstring 单des密钥16进制串,16字节长度 输出:...

闻喜县17622319433: DES算法简单例题 -
宜舍西乐: DES 是一个对称算法:加密和解密用的是同 一算法(除密钥编排不同以外),既可用于加密又可用于解密.它的核心技术是:在相信复杂函数可以通过简单函数迭代若干圈得到的原则下,利用F函数及对合等运算,充分利用非线性运算. 至今,最有效的破解DES算法的方法是穷举搜索法,那么56位长的密钥总共要测试256次,如果每100毫秒可以测试1次,那么需要7.2*1015秒,大约是228,493,000年.但是,仍有学者认为在可预见的将来用穷举法寻找正确密钥已趋于可行,所以若要安全保护10年以上的数据最好.

闻喜县17622319433: DES加密的问题解密 -
宜舍西乐: DES是可逆的.自己编一段解密算法,或者找一个具备该解密算法的软件,输入相关信息进行解密

闻喜县17622319433: DES算法加密的算法步骤是 -
宜舍西乐: #define READFILESIZE 512 步骤: 1.从文件中读取READFILESIZE个字节的数据 2.,如果从文件中读出的数据少于READFILESIZE个,以0补足,然后根据用户指定的类型对这READFILESIZE个字节的数据进行操作. 3.判断文件是否结束,没有则执行步骤1 4.把加密后的文件实际长度添加到密文的末尾 5.结束 采用一次只从文件读取READFILESIZE个字节是在为了防止由于需要加密或解密的文件太大导致内存不够的情况出现.

闻喜县17622319433: DES加密算法 密钥字符个数小于8时,也能正常加解密.求解? -
宜舍西乐: DES标准密钥就是56bit,8个字符即8个字节,每个字节的最高位不用,即每个字节只用7位,8个字符正好是56bit.如果少于8个字符,就用0填充,最后参与运算的一定是56bit.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网