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是轮数;
把Ci和Di组合得到56位;
得到的56位按PC-2表进行置换,置换中有8位会被去除,得到此轮的48位子密钥ki;
PC-1表是56位,PC-2表是48位;
或者更简洁看下图;