现代密码-分组密码DES

实验介绍:

分组密码将明文消息分组,逐组地进行加密。
image

DES密码

分组长度为64bit,密钥长度为56bit。

特点:计算过程复杂,机器实现简单
image

引用图片,来源:黎丽老师

下面逐个介绍一下每个环节

一:ip置换

将输入的明文按图片的规律换位
image
将原本的第58个数字换成第1个
image

二:f函数

image
红色圆圈里面的就是f函数的详细过程
image

引用图片:来源csdn作者@Demonsizh

二.1密钥的生成

image

引用图片:来源csdn作者@Demonsizh

密钥的生成详细过程如图
image

引用图片:来源csdn作者@机器学习zero

二.1.1.DES的密钥从64位减至56位,每个字节的第八位作为奇偶校验位删除。

按下表的规律重排(没有8,16,24,32,40,48,56)
image

二.1.2.将56位密钥分为两部分,每部分28位

每部分都按密钥的轮数循环左移一位或两位
比如密钥为10101100,循环左移2位,为10110010。(前两位10放到最后)
image

引用图片:来源csdn作者@机器学习zero

二.1.3.合并成56位密码,再进行如图的置换,最后得到48位的子密钥(又被称为压缩置换,没有9,18,22,25,35,38,43,54。)

image

引用图片:来源csdn作者@机器学习zero

4.同时上一轮的56位密钥作为输入,进行左移和压缩置换,生成下一轮的密钥

image

引用图片:来源csdn作者@机器学习zero

二.2扩展置换

image

引用图片:来源csdn作者@Demonsizh

目的有两个:生成与密钥相同长度的数据以进行异或运算;一个输入影响两个输出。
扩展方式如下:
image

引用图片:来源csdn作者@机器学习zero

二.3异或运算

符号为 XOR 或 EOR 或 ⊕
同为 0,异为 1
image

二.4 S盒

将输入48位的数据分为8组,每组6位输入S盒
其中第1位和最后1位取出来换成十进制的0-3组成行,中间4位换成十进制的0-15组成列。
image

引用图片:来源csdn作者@机器学习zero

整个过程每组6位变成4位,组成32位数据。
每个s盒不一样
image

二.5 P盒

P盒按照列表进行简单位置置换。
image

引用图片:来源csdn作者@机器学习zero

三.异或,16轮计算

image

引用图片:来源baidu

得到的值与左边32位进行异或运算,生成下一轮右边的32位。
经过总共16次运算,合并,进入最后一步

四:IP末置换

image
和IP置换一样,按下表的顺序重新排列
image

五:三重DES

why?
DES的密钥太短,其长度为56bit,致使密钥量image
,不能抵抗穷举攻击
每个数据块应用三次DES算法即三重DES。
image

posted on 2024-11-10 23:45  纤秾  阅读(18)  评论(0编辑  收藏  举报