DES算法

DES算法分组为64比特,使用56比特密钥对64比特明文进行16轮加密,得到64比特密文。

密钥64比特,使用56比特加密,另8比特做奇偶校验。

DES 使用对合运算,即f = f-1,1为上标

DES加密

  1. 异或运算:⊕
  2. 加密过程:
  3. 1、子密钥生成,64位子密钥经过子密钥算法产生16个子密钥k1...k16,分别在1-16次加密迭代中使用
  4. 2、初始置换IP64位明文经过置换IP表,被打乱重新排列
  5. 3、初始置换结果分为两组,L032位) R032位)
  6. 4、第一次迭代加密:使用加密函数f和子密钥k1,对R0进行加密,然后与L0进行模2运算(异或运算),记为L0fR0k1),结果成为第二次运算的R1R0成为第二次迭代的L1
  7. 5、第2-16次迭代,分别使用子密钥K2-K16,加密结果与第一次加密迭代相同
  8. 子密钥产生:
  9. 64位密钥经过置换选择1,循环左移,置换选择2,产生16个长为48位的子密钥k
  10. 1-k16
  11. 加密函数:
  12. 加密函数f(Ri-1,ki),是DES算法的核心算法,函数包含选择运算E,异或运算,代替函数组SS盒变换),置换运算P
  13. 1),选择运算E与异或运算
  14. 选择运算ERi-132位扩展到48位,并与48Ki子密钥进行异或运算。
  15. 2),S盒变换
  16. 一种压缩替换,通过S盒将48位输入变成32位输出。共有8S盒,并行运算。
  17. 3),置换运算P
  18. S盒输出的32位再进行一次置换。