Python中如何使用DES算法进行数据加密操作?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2426个文字,预计阅读时间需要10分钟。
加密流程+首先说明一下设置换位的意图,例如说有5678这个字符串,设置换位表为2143,换位表中数字表示的位置,所代表的字符是原来的位置,所以字符串变成6587。所有的换位表在程序中。 (S盒设置不统一,会另外说明)
加密流程
首先说一下置换的意思,比如说有5678这个字符串,置换表为2143,置换表中的数表示的是位置,所以字符串变成6587。所有的置换表在程序中。(S盒置换不一样,会另外说明)
密钥部分
- 把8位字符串密钥变成2进制(好像密钥只可以是8位,这一块我也没有搞太清楚)
- 64位密钥进行PC1置换,变成56位,因为以前DES是用硬件实现的,所以8,16,24,32,40,48,56,64位为校验位,不记入密钥部分。但是我们现在是用软件实现,所以这8位需要去掉,再打乱顺序。
- 将56位密钥对半分L0和R0、分别对L0和R0进行左循环移位,(当轮数为第1、2、9、16轮时,移动1位,其余时候移动两位)L0,R0移动1位后得到L1,R1。L1和R0继续进行下一轮,进行16轮。
- 上面移位得到的所以Li+Ri进行PC2置换得到16个子密钥(PC2置换把56位数据变成了48位)。
本文共计2426个文字,预计阅读时间需要10分钟。
加密流程+首先说明一下设置换位的意图,例如说有5678这个字符串,设置换位表为2143,换位表中数字表示的位置,所代表的字符是原来的位置,所以字符串变成6587。所有的换位表在程序中。 (S盒设置不统一,会另外说明)
加密流程
首先说一下置换的意思,比如说有5678这个字符串,置换表为2143,置换表中的数表示的是位置,所以字符串变成6587。所有的置换表在程序中。(S盒置换不一样,会另外说明)
密钥部分
- 把8位字符串密钥变成2进制(好像密钥只可以是8位,这一块我也没有搞太清楚)
- 64位密钥进行PC1置换,变成56位,因为以前DES是用硬件实现的,所以8,16,24,32,40,48,56,64位为校验位,不记入密钥部分。但是我们现在是用软件实现,所以这8位需要去掉,再打乱顺序。
- 将56位密钥对半分L0和R0、分别对L0和R0进行左循环移位,(当轮数为第1、2、9、16轮时,移动1位,其余时候移动两位)L0,R0移动1位后得到L1,R1。L1和R0继续进行下一轮,进行16轮。
- 上面移位得到的所以Li+Ri进行PC2置换得到16个子密钥(PC2置换把56位数据变成了48位)。

