Bootstrap

DES的加密流程

DES算法中的密匙为8个字节64位,但每8位位校验码位不参与运算,所以有效的密码只有56位;data为8个字节64 位,是要被加密或解密的数据;DES采用16轮运算,每轮产生一个轮密匙参与到运算中。

DES算法过程,整体可分成三个模块,这三个模块,并不是相互独立,而是相互杂糅在一起。但是密钥的生成并不需要外在条件,因此首先实现16个字密钥的生成。在对明文加密过程中,有一个16轮迭代加密,而每论迭代加密都需要经过几个相同的函数使得明文与密文相结合,以及明文的发散混淆处理。所以把相同处理函数抽取出啦,形成一个新的模块f。

在这里插入图片描述
具体流程

1、输入64位的明文数据
2、置换IP
3、分成左右两组(32位)
4、将R组(右组)扩展置换变成48位

然后

1、输入64位的密匙
2、密匙通过PC-1置换,从64 位变成56位
3、同样分成左右两组(28位)
4、将密匙位移,每轮位移1-2位
(在 1、2、9、16位左右两部分向左位移一位,在其他轮时,左右两部分向左位移两位,循环位移的总位数位 41+122=28,即 C0=C16,D0=D16)
5、密匙通过PC-2置换,从56位变成48位。

这两部分其实是同时进行的

将密文与密匙进行异或运算,算出来后再进行下一轮。。。

;