64位的明文X进行初始转换IP后得出X0,其左半边32位和右半边32位分别记为L0和R0,然后再经过16次迭代。如果用Xi表示第I次迭代结果,同时令Li和Ri分别Xi的左半边和右半边,则从上图可以看出:
式中I=1,2,…,16,而Ki是48位密钥,从原来的64位密钥经过若干次变换而得出。上面公式即为DES加密议程。每次迭代要进行函数f的变换、模2加运算以及左右半边交换。在最后一次迭代之后,左右半边没有交换。这是为了使算法既能加密又能解密。最后一次变换是IP的逆变换IP-1,其输入是R16L16。Y即为输出的密文。
DES加密中起关键作用的是函数f。它是一个复杂的变换,其具体细节不在这里详述。
解密过程和加密相似,但生成16个密钥的顺序正好相反。
|