表7-1:选择(替代)函数S
表7-2:选择(替代)函数S
表7-3:选择(替代)函数S
第三阶段:16次迭代运算。初始置换确定后,经过16次迭代运算,每一次迭代运算都以前一次迭代运算的结果和用户密钥扩展得到的子密钥Ki作为输入;每一次迭代运算只变换了一半数据,它们将输入数据的右半部分经过函数f后将其输出,与输入数据的左半部分进行异或运算,并将得到的结果作为新的右半部分,原来的右半部分变成了新的左半部分,用下面的规则来表示这一过程(假设
第i次迭代所得到的结果为LiRi): Li = Ri-1; Ri = Li-1⊕f(Ri-1,Ki);在最后一轮左与右半部分并未变换,而是直接将R16 L16并在一起作为未置换的输入。
第四阶段:逆置换。 逆置换是初始置换IP的逆运算,记为IP-1。例如,第1位经过初始置换后,处于第40位,而通过逆置换IP-1,又将第40位换回到第1位。其逆置换IP-1规则如表8所示。
表8:逆置换IP-1规则
在对16次迭代的结果(R16 L16)再使用逆置换IP-1后,即得到密文输出。其执行过程如下图:
2. DES解密过程:
DES的解密算法与其加密算法使用的算法过程相同。两者的不同之处在于解密时子密钥Ki的使用顺序与加密时相反,如果子密钥为K1K2…K16,那么解密时子密钥的使用顺序为K16K15…K1,即使用DES解密算法进行解密时,将以64位密文作为输入,第1次迭代运算使用子密钥K16,第2次迭代运算使用子密钥K15,……,第16 次迭代使用子密钥K1,其它的运算与加密算法相同。这样,最后输出的是64位明文。
三、 DES学习总结:
1. DES是一种对称加密算法,1977年美国政府采用,作为对无分类信息加密的官方标准;
2. DES只使用了标准的算术和逻辑运算,易于实现;
3. 密钥可为任意的56位数,具有复杂性,破译成本高,使得安全性得以保障;
4. 密钥相对较短,加密效率高,可以用来构造各种密钥机制,可以用来建造安全性更强的密码;
5. 依靠密钥来保障加密信息的安全,要求通信双方都要保持密钥的秘密性;
6. 可通过多重加密,提高安全等级。