DES算法简介
- DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准。
- DES是一个分组加密算法,典型的DES以64位为分组对数据加密,加密和解密用的是同一个算法。
- 密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1),分组后的明文组和56位的密钥按位替代或交换的方法形成密文组。
- DES算法的主要流程如下图所示:
IP置换
IP置换目的是将输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位。
表中的数字代表新数据中此位置的数据在原数据中的位置,即原数据块的第58位放到新数据的第1位,第50位放到第2位,依此类推,第7位放到第64位。置换后的数据分为L0和R0组,L0为新数据的左32位,R0为新数据的右32位。
密钥置换
不考虑每个字节的第8位,DES的密钥由64位减至56位,每个字节的第8位作为奇偶校验位。产生的56位密钥由下表生成(表中没有8,16,24,32,40,48,56和64这8位):
在DES的每一轮中,从56位密钥产生出不同的48位子密钥,确定这些子密钥的方式如下:
1)