APP下载

DES加密算法的实现

2019-07-10曾清扬

网络安全技术与应用 2019年7期
关键词:变型明文加密算法

◆曾清扬

DES加密算法的实现

◆曾清扬

(华北电力大学 北京 102206)

本文首先分析了DES加密算法出现的背景,对DES算法进行了简要地介绍,浅析了DES加密算法的原理,然后用DES加密算法对消息进行加解密。

DES加密算法;C++;加解密

0 引言

随着信息社会的发展,人们对信息安全越来越重视,越来越多的人开始关心在网络上传输数据的安全性。而DES算法作为一个典型的加密算法,广泛地应用于各种数据加密。DES算法是从IBM 1970年初开发出的一个叫Lucifer的算法发展起来的,Lucifer是一个包含类似DES构造模块的代替-置换网络。在DES中,函数的输出与前一轮输出进行异或后,作为下一轮的输出。DES算法是一个分组加密算法,以64位为一组对数据进行加密,输入64位明文,用DES加密后输出64位密文。

1 DES算法简介

1.1 DES整体描述

1.2 DES轮函数

在每一轮中,密钥通过移位和置换选择产生新一轮的子密钥。通过E表扩展置换数据,右半部分32比特扩展成48比特,与每一轮生成的48比特的子密钥异或,通过8个S盒进行代换、选择运算生成新的32比特数据,新的32位比特再通过P盒置换一次。通过P盒输出与数据的左半部分32比特进行异或运算,成为新的右半部分32位的数据。原来的右半部分成为新的左半部分32位的数据。每轮变换可由以下公式表示:

图2可以表示DES加密算法的轮结构。

2 DES算法的C++实现

2.1 用DES算法加密数据

关键函数及用途如下:

(1)IP(const int input[64],int output[64],int table[64])

初始IP置换,64比特的输入到64比特的输出,左右分别为32比特。

(2)Charchangetobit(const char input[],int output[],int *bits);把字符串类型转换为整型的二进制数进行存储,类比比特。

(3)E(const int input[32],int output[48],int table[48]) E表扩展数据,将32比特扩展成为48比特。

(4)Xor(int *a,int *b,int len)进行异或操作。

(5)S(const int input[48],int output[32],int table[8][4][16]) S盒压缩将48比特的数据压缩成32位。

(6)P(const int input[32],int output[32],int table[32]) P盒进行置换。

图1 DES加密算法框图

图2 DES加密算法的轮结构

(7)IP_In(const int input[64],int output[64],int table[64])最后一步逆置换。

(8)PC_1(const int input[64],int output[56],int table[56])密钥的置换选择1。

(9)PC_2(const int input[56],int output[48],int table[48])密钥的置换选择2。

(10)RotateL(const int input[28],int output[28], int leftCount)密钥循环左移。

(11)subKey(const int input[64],int Subkey[16][48])每一轮子密钥的生成。

输入明文以及密钥,生成密文,效果如图3所示。

图3 加密实现效果

2.2 对用DES算法加密的数据进行解密

输入密文以及密钥,生成明文。效果如图4所示。

3 结束语

DES加密算法较为复杂,多次运用了代换和置换的方式,实现起来有一定的难度。但是由于其S盒并未公开和其密钥可以通过穷举攻击的方式被破解,其安全性也遭到了一定的质疑。在DES的基础上也进一步发展起来了各种DES的变型,对于DES算法我们能进一步研究其变型以及变型的安全性。

图4 解密实现效果

[1][美]Bruce Schneier著,吴世忠,祝世雄,张文政等译.应用密码学(第二版)[M].北京:机械工业出版社,2014,01.

[2]杨波.现代密码学(第四版)[M]..北京:清华大学出版社,2017,01.

[3]余启航,李斌勇,杨雄凯,姚瑶.DES加密算法的过程分析研究[J].网络安全技术与应用,2018(02):43-44.

[4]漆世钱.基于VC++的DES加密算法实现[J].自动化技术与应用,2014,33(12):25-27.

猜你喜欢

变型明文加密算法
变型数独7月挑战赛
变型数独3月挑战赛
加密文档排序中保序加密算法的最优化选取
变型数独9月挑战赛
基于整数矩阵乘法的图像加密算法
简约≠简单
奇怪的处罚
教育云平台的敏感信息保护技术研究
奇怪的处罚
奇怪的处罚