Data Encryption Standard(DES)加解密实现(C++)

1.DES简介:DES是Data Encryption Standard的缩写,是美国国家标准局于1977年公布的由IBM公司研制的加密算法,并被作为非机要部门使用的数据加密标准。DES算法是应用最广泛的一种分组密码算法,对密码理论的发展和应用起了重大作用。DES综合运用了置换、代替、代数等多种密码技术,是面向二进制的密码算法,因而能够加解密任何形式的计算机数据。

2.DES加密算法:DES算法中数据以64比特分组进行加密,有效密钥长度为56位。它的加密算法与解密算法相同,只是解密子密钥与加密子密钥的使用顺序刚好相反。

3.程序思路:程序最关键的地方在于对明文的分块处理、二进制转化、盒子操作、以及子密钥的产生和十六次加密迭代使用。因此,在进行实验时目标明确,先处理密钥,生成16个48位的子密钥,再处理明文,接着实现盒子操作与加密函数f,然后迭代16次,产生64位数据组,之后对数据组进行处理后,经过逆初始置换,得到64位明文,至此一组加密过程全部结束。在本实验中,定义以下规则:(1)将初始明文/密文分组并依次转化为二进制比特流之后,若分组内比特流长度不足64位,则补0。(2)对密钥的操作处理:输入7位英文字符,得到其对应的ASCII码,将ASCII码用二进制表示,最终得到56位二进制比特流,将此作为DES的56位密钥。之后在第8,16,24,32,40,48,56,64位处插入奇偶校验位,合成64位密钥。

4.DES整体流程

.png - Data Encryption Standard(DES)加解密实现(C++)

5.子密钥产生流程:

.png - Data Encryption Standard(DES)加解密实现(C++)

6.算法步骤

.png - Data Encryption Standard(DES)加解密实现(C++)

7.函数说明

.png - Data Encryption Standard(DES)加解密实现(C++)

8.DES加解密实现(C++)