问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

DES算法步骤学习 ,及流程剖析

创作时间:
2025-03-24 08:41:33
作者:
@小白创作中心

DES算法步骤学习 ,及流程剖析

引用
CSDN
1.
https://m.blog.csdn.net/weixin_60335965/article/details/144138528

DES(Data Encryption Standard)算法是一种对称加密算法,广泛应用于数据加密领域。本文将详细介绍DES算法的各个步骤,包括初始置换、16轮次加密、密钥生成以及解密算法。

密钥:8个字节共64位的工作密钥
明文:8个字节共64位需要被加密的数据
密文:8个字节共64位需要被解密的数据

一、初始置换(IP置换):将输入的64位明文块进行置换和重新排列,生成新的64位数据块。

目的:增加加密的混乱程度,使明文中的每一位都能够对后面的加密过程产生影响,提高加密强度。

我们将把64位的顺序按下表中规定的顺序放置,图中的数字是在64位明文中每个比特的索引位置。注意,在DES中,这个置放规则是固定的。

二:16轮次加密

2、加密轮次:DES加密算法共有16个轮次,每个轮次都包括四个步骤:

a. E盒扩展,将64位数据块分为左右两个32位块L,R0。(后续要进行16个轮次的加密,K1~k16秘钥均为48位,但是R0为32位,所以首先要经过E盒的扩展,得到48位R0的数据)

b. 右侧32位块作为输入,经过扩展至48位,外面两列为新增。

3)扩展的48位与密钥48位进行异或

异或:两者相等为0,不等为1

假如得到结果为:

2)再经过S盒进行压缩,将48bit的数据压缩为32bit,例如块1:

3)分别将每一个块的进行S盒后,得到32bit数据,再经过P盒置换得到值后

至此,一轮循环已经完成。得到的结果需要和L0异或,结果赋给R1进行16次迭代运算,得到了R16和L16,将两者拼接到一起后再进行逆置换,即可得到最终密文

表达式为:(左部,右部)=(Li ,Ri )=(Ri ,Li−1 ⨁f(Ri−1 ,ki ))

⨁模2加:0+0=0;0+1=1+0=1;1+1=0f(Ri−1 ,ki ):表示在密钥ki 的影响下Ri−1 的值。

这里的ki 是由64bit密钥产生的子密钥,ki 是48bit。

DES的核心在于f(Ri−1 ,ki )函数的功能。f函数是将32bit的输入转化为32bit的输出。其中涉及到了扩展和压缩。扩展是为了能和ki 进行模2加,压缩是为了最后要输出32bit

三、将64bit的初始密钥生成16组48bit的圈密钥(子密钥)

DES的初始64位密钥通过置换选择PC-1得到有效的56位密钥。

这56位分为2个28位数据C0和D0。每轮迭代中Ci-1和Di-1分别循环左移1位或2位,移位后的值作为下一轮的输入,同时也作为置换选择PC-2的输入,通过置换选择PC-2产生一个48位的输出,即为一个子密钥。64位密钥生成了16个48位的子密钥。

PC−1为,置换选择算法1(由64位筛选出56位);

C 和 D 是 两 个 寄 存 器 ; \color{blue}{\color{red}C和D}是两个寄存器;C和D是两个寄存器;

L S 为 移 位 运 算 ( 循 环 左 移 ) \color{blue}{\color{red}LS}为移位运算(循环左移)LS为移位运算(循环左移)

P C − 2 为 , 置 换 选 择 算 法 2 ( 由 58 位 选 出 48 位 的 圈 密 钥 )

置换选择1(PC−1)

  1. 抛去每个字节的最高位,即,第8,16,24,32,40,48,56,64位,只选择剩余的56位,被抛去的字节本来就是奇偶校验位。(用于验证完整性)

  2. 将剩余的比特数,按照一定的规则,进行相应的置换。

  3. 置换后,分别放在两个寄存器C和D中

  4. 置换后的前28bit放在C寄存器中,其余的放在D寄存器中。

移位(LS)【两个28位密钥的寄存器循环左移】

规 则 : 第 1 , 2 , 9 , 16 圈 左 移 1 位 ; 其 余 都 左 移 2 位 。

LS1 、LS2 、LS9 、LS16 左移1位,其余LSi 左移2位

最后16圈左移结束后,移位数正好等于28

置 换 选 择 ( P C − 2 ) 【 由 56 位 得 到 48 位 】

四、脱密算法

参考:信息安全密码学:DES算法的核心 E盒、S盒、P盒_s盒运算规则-CSDN博客

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号