来源于我的博客
DES加密
基于Feistel密码的DES,其核心思想就是置换/混淆
前面粗略验证了Feistel密码解密是可以直接使用加密函数的,只不过每轮的轮密钥Ki需要倒过来。
DES的流程与Feistel大体一致:
上图可以看到,des加上了很多置换:
-
初始置换/逆初始置换 -打乱顺序
-
置换1 -64位密钥缩减为56位
-
置换2 -56位缩减为48位
-
循环左移 -熟悉汇编的可能明白更快一点,就是数组整体前移n位(例如数组[1,2,3],左移1位变成[2,3,1]),每轮移动的步数由一个表决定
初始置换与逆初始置换:
简单理解即用来打乱既有的顺序
每轮加密的具体实现:
每轮加密的输入:Li/Ri
输出:Li+1/Ri+1
这与Feistel密码的流程基本一致:
对于第i轮(i<=轮数n)
-
-
-
Li+1=R
-
-