一、DES算法原理概述
DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。 明文按64位进行分组,密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位, 使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。DES是一种分组密码,是两种基本的加密组块替代和换位的细致而复杂的组合,它通过反复依次应用这两项技术来提高其强度,共经过16轮的替代和换位。使得密码分析者无法获得该算法一般特性以外更多的信息。
DES算法的实现大致可以分为以下几个步骤:初始置换—密钥生成—16轮迭代变换—IP逆置换—密文。
以下是一个DES的简单流程图:
二、分模块详细设计每一个模块
1、将明文与密文用二进制表示
2、初始置换
对输入的64位二进制明文按照2.1所示的置换表进行置换,打乱明文的顺序:
表2.1
将置换后的明文按顺序分为左右两组L0和R0,每一组都是32位的。IP初始置换的算 法设计如下图2.2所示:
图2.2
3、密钥生成(密钥置换)
(1)56位密钥的生成过程:将初始的64位密钥从1到64位进行编号,形成一个矩阵, 如下表3.1所示,每一行的第八位将作为奇偶校验位被忽略,于是形成了初始的56位 的密钥输入:
表3.1
(2)接下来使用选择置换表(如下表3.2所示),进行置换操作