DES密码是比较重要的对称加密算法,使用了移位、分组、置换等多种加密方法。
DES加密过程
S={P,C,K,E,D},其中明文P,密文C是64bit的数据,密钥K是56bit的数据
1.明文首先经过一次置换(IP),置换后还是64bit。
2.将置换后的明文分为两部分:L,R,分别的32bit。然后与k作用,经过16圈的迭代。此时的k1…k16经过去除奇偶校验位等后变成48bit。其通用公式为:
3.16此迭代完成后将L与R(32bit)两部分连接起来,进行一次置换的逆运算,即可得到最终的密文(64bit)。
不知道大家看到这有没有什么疑问,48bit的密钥k是怎么和32bit的R作用的?
因为R为32bit,k为48bit,位数不同,无法直接作用,所以要先将R补位为48bit。具体怎么补位,IBM公司(DES算法的发明者)设计了特定的补位方法,这里不做详细介绍了。
既然R变成了48bit,那么f(R,K)也变成了48bit,而L为32bit,位数不同不能异或。倘若再对L进行补位的话,那么