首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
第八周作业
时间:
2016-04-23 22:40:05
阅读:
184
评论:
0
收藏:
0
[点我收藏+]
标签:
DES加密算法原理:
将明文进行分组,每组是长度为64的二进制位。
对密钥key进行同样的操作,即将其转换为64位的二进制字符串。
对密钥key按照PC1盒进行第一次密钥变换,变换后的密钥有56位,然后将变换有的密钥进行分割,即左边28位哟弄个C0存储,右边28位用D0进行存储。
以C0和D0为基础,开始进行16轮密钥扩展,扩展规则为,C
n
由C
n-1
循环左移1位或者2位形成,D
n
由D
n-1
循环左移1位或者2位形成。
进行C和D的合并,即将D
n
连接在C
n
的右边,形成16个扩展后的新密钥。
对明文进行操作,首先对明文进行一次IP置换,得到变换后的明文IPnewarr。
将变换后的明文IPnewarr进行分割,左边32位由变量L
n
[0]存储,右边32位由变量R
n
[0]存储。
接着,由L
n
[0]和 R
n
[0]为基础,开始进行16轮扩展,扩展规则是,L
n
[i]= R
n
[i-1],R
n
[i] = L
n
[i-1]^f(R
n
[i-1],keyk[i]),也就是说,新一轮的Ln是上一轮的Rn,新一轮的Rn是上一轮的Ln与f函数的值进行异或运算后得到的结果,其中key[i]是新扩展的密钥。
计算f函数,首先按照E盒将Rn进行变换。
变换之后的Rn与第n个扩展后的新密钥进行异或运算。
将第10步的结果进行分组,共48位长,每6位一组,共8组,将这8组命名为B1-B8.
计算Bni和Bnj,Bni是Bn的第一位和第六位组成的二进制数所代表的十进制数,Bnj是Bn的第二到第五位组成的二进制数所代表的十进制数。
计算Sboxn,Sboxn的值是Bni和Bnj在Sn中对应的十进制数代表的二进制数。
将八个Sboxn二进制数连接起来,然后进行一次P置换操作,就是f函数的值。
将L和R进行16次扩展后,将最后一次所得的L
16
和R
16
反向连接起来,即R
16
L
16
,然后将其进行一次IP逆置换形成密文的二进制位。
最后将这个二进制字符串转换成16进制字符串就是得到的16进制密文。
第八周作业
标签:
原文地址:http://www.cnblogs.com/suyaoxing/p/5425574.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!