a)简介
DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。需要注意的是,在某些文献中,作为算法的DES称为数据加密算法(Data Encryption Algorithm,DEA),已与作为标准的DES区分开来。
b)算法流程
DES的整个操作可以分为三部分:
1)初始置换和逆初始置换
初始置换是在第一轮迭代之前进行的,目的是将原明文块的位进行换位。逆初始置换是初始置换的逆置换。数据块经过初始置换和逆初始置换后,可以恢复到原有的位置。初始置换和逆初始置换的置换表都是固定且公开的,这步操作主要目的是为了在硬件实现时,更容易的将明文和密文以字节的大小存放入DES芯片中。
2)轮函数
DES的轮函数有四部分组成:扩展置换(E盒)、密钥加、非线性代换(S盒)和线性置换(P盒)。
扩展置换,它将32位输入扩展为48位输出。扩展方法为:将48位输出按8行6列的次序排列,排列时,将输入位序号按32、1、2、…、31、32、1的次序依次排列,且上一行的最后两位依次在下一行的起始位置得到重用。
密钥加层的运算就是把E盒扩展输出的48位数据与48位字密钥进行逐位异或运算,输出48位数据。
非线性代换,利用S盒将E盒扩展生成的48位数据又重新压缩为32位数据。S盒实质是一个查表运算,8个S盒分别对应8个非线性的代换表,每个S盒的输入均为6位,输出为4位。再查表前,要将输入的48位数据分为8组,每组6位,然后分别进入8个S盒
3.1 DES
最新推荐文章于 2023-10-23 15:16:34 发布