DES算法

DES算法_第1张图片
本图来自
https://blog.csdn.net/weixin_45031801/article/details/126820338
DES算法_第2张图片

基本原理

  1. DES算法属于对称密码 算法中的分组加密算法
  2. 密钥长64位,56位参与运算,其余8位为校验位(8,16,24,32,40,48,56,64)
  3. 当n个64位明文数据块都经过DES加密处理后,所得到的n个64位密文数据块串在一起就是密文

分组加密算法又称块加密,将明文分为固定的字节块,对每个字节块进行加密,然后拼接在一起

DES加密其实是64位的种子密钥,但是有8位是校验位,所以是56bit的

IP置换

按照一定的规则,将原来的64位二进制重新排序
DES算法_第3张图片
如图上面,第一位58,将原始数据第58位的数据放在第一位
DES算法_第4张图片

轮函数–E扩展置换

将32位的输入扩展为48位输出
DES算法_第5张图片
DES算法_第6张图片

  1. 看到将32位表扩展了两列
  2. 将32位的数据分为4bit半个字节
  3. 把每四位的最后一位扩展到下一组四位的前一位,一次下去
  4. 从而得到48位

异或

上面我们已经得到了
48位的密文,再将其与我们48位的密钥进行异或

奇怪?参与密钥的不是56位嘛?请看下面,会解释

轮函数–S盒压缩处理

  1. 经过扩展的48位明文和48位密钥进行异或运算后,再使用8个S盒压缩处理得到32位数据
  2. 将48位输入等分为8块,每块6位输入压缩4位输出
    DES算法_第7张图片
    DES算法_第8张图片
    在这里插入图片描述
    然后再进行查表
    DES算法_第9张图片

轮函数–P盒置换

S盒所得结果再经过P盒置换。
至此一次轮函数操作完毕
DES算法_第10张图片

密钥生成

  1. 密钥位64位,出去8位校验位,剩余56位参与运算
  2. 按照交换规则,生成16个48位的轮密钥
    DES算法_第11张图片
    DES算法_第12张图片
    pc1
    清楚了校验位的表,所以pc1
    的时候是56位
    DES算法_第13张图片
    DES算法_第14张图片
    在这里经过PC2表就变成了48位

总的过程如下所示:
DES算法_第15张图片

你可能感兴趣的:(CTF混合,学习)