下面简单概述一下DES加密流程:
1.对需要加密的64bit明文进行初始置换(IP)而被重新排列;
2.进行16轮相同函数(运用Feistel算法,此过程使用了密钥)的迭代,每轮都有置换和代换;
3.对步骤2输出的64bit数据进行左半部分和右半部分互换产生预输出,最后预输出再通过逆初始置换产生64bit的密文。
DES解密:
DES解密流程与DES加密流程极为相似。有以下两点不同:
1.Feistel密码的解密算法与加密算法是相同的,但子密钥的使用次序相反。如果子密钥为K1, K2…K16,那么解密时子密钥的使用顺序为K16, K15…K1;
2.解密时初始置换和最后的置换与加密时是相反的。
DES解密流程描述如下:
1.对需要解密的64bit密文进行置换(此次置换使用加密时的逆初始置换算法)
2.进行16轮相同函数(使用了Feistel算法,密钥的使用与加密时使用次序相反)的迭代,每轮都有置换和代换;
3.对步骤2输出的64bit数据进行左半部分和右半部分互换产生预输出,最后预输出再通过置换(此次置换使用加密时的初始置换算法)产生64bit的明文。