DES加密

DES加密

DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。 明文按64位进行分组,密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位, 使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。

具体加密过程

加密的过程如图所示
在这里插入图片描述

一、 IP置换

通过IP置换,将输入的64位数据块重新组合,再将所得到的结果分为左右各32位两部分。

在这里插入图片描述
IP置换,如图所示:如第一个58,指的是将数据的第58位放在第一位,50便是将第50个数据放在第二位,后面的以此类推。IP置换完成后将64位数据左右平分R0和L0,之后两部分进行互换,即即L1=R0,R1=L0。(如图所示)
在这里插入图片描述

二、密钥生成

初始密钥为64位,但需要去除每个字节的最高位(8、16、24、32、40、48、56、64这些作为校验位,不参与运算,因此剩下56位参与运算。
由于DES加密每一轮的迭代都有密钥参与,因此需要产生不同的轮密钥共16组)剩余的56位分成两份C0,D0分别进行位移,位移遵循下表
在这里插入图片描述即:C1等于C0中的每一位左移一位
Ci=C(i-1)+第i代迭代次数。

三、迭代运算(R1=L0 xor f(R0~,K1))

DES加密中要进行16次迭代运算,其运算的过程完全一致,因此我们只需要搞清楚其中一次就可以了。
(1)E扩展
R0原本为32位,通过E扩展将其扩展为48位得到R0~。其具体过程如下图所示
在这里插入图片描述
即扩展的第一列为原来32位数据的最后一列下移一位,扩展的最后一列为原32位的第一列上移一位。
(2)异或运算
将所得到的R0~与K1(密钥)进行异或运算。
(3)S盒
在这里插入图片描述

将R0~与K1异或得到的结果经过S盒运算将48位压缩成32位。共有8个S盒,其原理都是相同的因此我们拿出一个进行讲解。
在这里插入图片描述假设我们经过异或之后的结果为:100111
我们拿出头和尾的两位数:11,对应S盒中的行数3(2进制运算)剩下的四位:0011,对应S盒中的列3,所以100111便可以替换为表中的2,再将二转换为四位2进制:几位0010,所以100111便可以替换为0010,经过8次S盒替换,便可以完成48位压缩为32位。
(4)P盒置换。
在这里插入图片描述P盒置换与IP置换原理一致。
(4)与L0进行异或。

四、逆置换

经过16轮运算后,将左右两部分合并,并进行逆置换。逆置换表如下所示
在这里插入图片描述最后便得到密文了。

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃泡面不喝汤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值