没有合适的资源?快使用搜索试试~ 我知道了~
加密流程 首先说一下置换的意思,比如说有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位,其余时
资源推荐
资源详情
资源评论
Python DES加密实现原理及实例解析加密实现原理及实例解析
加密流程加密流程
首先说一下置换的意思,比如说有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位)。
明文部分明文部分
先进行明文填充,采用PKCS #5规则,如果刚好满足每组有8个字节,则再添加一组,每个字节为000010000,如果最后一组
没有8个字节,则把这一组填充成8个字节,填充的字节为少掉的字节的数目,比如有7个字节,则填充00000001。
再进行初始置换,把64位明文打乱。
进行16轮feistel函数后在进行逆初始运算
资源评论
weixin_38549520
- 粉丝: 4
- 资源: 914
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功