DES算法的大致过程如下:首先,让等待加密的明文数据通过一个初始置换IP,将置换后的明文数据等分成左源.自/优尔·论\文'网·www.youerw.com/ 、右两个部分,前32位为左半部分,后32位为右半部分,然后将两部分数据按照一定规律通过16轮完全相同的迭代运算。在每一轮的运算中,把右半部分数据通过一个扩展置换E得到48位;同时密钥进行IP-1置换,然后再进行移位,接着从56位密钥中通过置换IP-2得到48位密钥,最后使得到的48位密钥同扩展后的右半部分数据进行异或操作与运算,并通过8个S盒将运算后得到的48位数据替换成新的32位数据,再将进行一次P置换,将置换后得到的输出通过一个异或运算与左半部分结合,其结果成为了新的右半部分,而旧的右半部分成为新的左半部分。将上述操作重复进行16次,便实现了DES的16轮运算。经过16轮的运算后,将得到的左、右两部分结合在一起,最后通过一个逆初始置换IP-1(初始置换的逆置换)得到最终的密文,这样就完成了整个DES加密算法。
2.2 加解密原理
DES算法由加密、子密钥的生成和解密三部分组成。现将DES算法具体步骤介绍如下:
2.2.1 加密
DES算法处理的数据对象是一组64比特的明文数据。设该明文数据为m=m1m2…m64 (mi=0或1)。明文数据经过64比特的密钥K来加密,最后生成长度为64比特的密文E