Bootstrap

DES算法子密钥的生成过程

DES算法的一次执行中将进行16轮迭代加密;
从原始的56位密钥中得到16个轮密钥k,每个轮密钥ki是48位;
轮密钥也叫子密钥;

下面看一下子密钥的生成过程;

大体过程是这样;看下图,
 

此图来自 34.《密码学》.DES算法原理讲解_子密钥生成及总结_哔哩哔哩_bilibili

64位的密钥,去掉8位校验位,剩下56位;

按PC-1表进行置换,打乱顺序;然后分成2个28位;一个28位是C0,一个28位是D0,

然后要进行循环左移,循环左移要移1位或2位,根据是第几轮来判断,可查上图的循环左移查表;

移位之后得到Ci和Di,i是轮数

;