传统密码:
1、单表替换密码 *(密码移位固定)
2、多表替换密码 *(密钥移位周期固定)其中维吉尼亚密码的出现引出了“秘钥”的概念
3、多字母代换密码 *(明文分组交换){1、DES 2、AES}
DES加密过程:(DES算法明文分组长度为64 bit,密钥长度也为64 bit,但是实际密钥长度只有56位,其中第8、16、24、32、40、48、56、64位是奇偶校验位,用于检查密钥在产生、分配及存储过程中可能发生的错误。)
一、明文ip变换
1、明文根据ip置换表重新得到新的明文(所谓ip置换表就是将明文的数字按照ip表中的位置重新定位),得到一个乱序的64 bit 明文组
2、将新得到的加密明文分成两个部分,Lo和Ro。
二、子密钥生成
在DES中,加密者输入的明文和密钥都是64 bit,其中只有56 bit是有用的位数(因为有8位为奇偶校验位)。但是DES加密过程有16轮循环函数,其中需要用到16个密钥,所以要将这56 bit密钥扩展生成16个48 bit 的子密钥。步骤如下:
1、PC_1置换的主要步骤和初始IP置换一样,PC_1置换的目的是为了去掉64 bit密钥k中的8个奇偶校验位,并对其余56位打乱排列。置换完成后,同样将密钥分成左右两部分各28 bit,左边为C0, 右边为D0。
2、对于1<=n<=16,在第n轮分别对Cn-1和Dn-1进行循环左移,所移的位数为1位或者2位,取决于n的值,当n=1,2,9,16时左移1位,其它左移2位。因此表格如下:(此时还是56位)
(如Co左移为:1111000011001100101010101111——1110000110011001010101011111)
3. 得到16个子密钥K
Kn = PC_2(CnDn),PC_2为固定置换,用于从 CnDn(56位) 中选取48 bit作为子密钥Kn,CnDn 表示从左到右将 Dn 排在 Cn 的后面,CnDn 的长度为56 bit。
至此,子密钥全部生成(48位),进入轮函数(轮函数中,首先将32位的一半重定位明文通过E变换转化为48位,如下图所示)。、
4、S盒代换
将 E(A) 和 K 进行异或(如果a、b两个值不相同,则异或结果为1。. 如果a、b两个值相同,异或结果为0)操作后,把比特串分为8组,一组 6 bit,分别对每一组进行S盒代换。经过S盒,每一组由 6 bit 缩减为 4 bit。
S盒的行号从0到3,列号从0到15。
代换的过程如下,例如需要代换的第一组数据输入为011001,则第一位0和最后一位1组合成的01即为行号,中间的1101为列号,第一组数据对应S1,01转化成10进制为1,1101转化成10进制为13,因此S1中的第1行第13列就为对应的输出,查表得5,转化成2进制为0101。因此0101就为最终的4位输出。
5、P盒代换
P为固定置换,将经过S盒变换得到的32 bit进行一个置换操作。至此,得到F函数的最终输出。
6、迭代16次
7、p的逆置换
————————————————
版权声明:本文为CSDN博主「pear粥小鲤」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_44143499/article/details/105821846
今天的文章DES详细加密过程分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/55617.html