实现DES加密算法安全性的分析与研究
2020-07-18潘建生孔苏鹏程实
潘建生 孔苏鹏 程实
摘 要:文章主要研究探析了DES加密算法安全性问题,首先介绍了实现DES加密算法安全性的过程,主要包括两个方面的内容:DES算法的工作流程以及DES算法的加密过程,并通过这两个方面的内容,分析了DES算法的IP变换以及逆变换和S盒换位表等问题,并找出了其中存在的换位规则。之后在此基础上,探讨了DES算法实现方法的改进方法,希望能够为以后相关方面的研究工作提供一些参考。
关键词:DES;安全性;加密
中图分类号: TP393 文献标识码:A
Abstract: The article mainly studies and analyzes the security problem of the DES encryption algorithm. First, it introduces the process of implementing the security of the DES encryption algorithm, which mainly includes two aspects: the workflow of the DES algorithm and the encryption process of the DES algorithm, and through these two aspects The content of the DES algorithm is analyzed, such as IP transformation, inverse transformation and S box transposition table, and the transposition rules existing therein are found. After that, the improvement method of the DES algorithm implementation method is discussed. Provide some reference for the related research work in the future.
Key words: DES; security; encryption
1 引言
DES是一种分组密码体制的数据加密算法,而相应的数据加密标准在20世纪70年代就已经由美国国家标准局颁布实施。DES加密算法的整个加密流程已经公开,但是其技术细节以及算法设计的原理并没有公开,这也使DES算法的安全性得到了有效地保障。截止目前,对DES算法较为有效的攻击手段只有穷举搜索法,除此之外的其他方法都很难对DES算法产生有效的影响。目前,DES算法已经广泛应用到多个领域,比如ATM、高速公路收费站以及IC卡等,以此来保护其中的关键数据,又比如MAC校检金融交易数据包等,都是DES算法的具体应用。
2 实现DES加密算法安全性的过程
DES算法共有Mode、Data以及Key三个入口参数。其中,DES算法的工作密匙为8字节共64位的Key,需要被解密或者加密的数据是8字节64位的Data,DES算法的工作方式为Mode,共有解密和加密两种方式。
2.1 DES算法的工作流程
如果Mode的工作方式为加密,那么就使用工作密匙Key加密明文数据Data,这样DES算法的输出结果就是生成的Data密文;如果Mode的工作方式为解密,那么就使用工作密匙Key解密明文数据Data,这样DES算法的输出结果就是还原之后的Data明文。互相通信的双方需要协商制定相同的工作密匙Key,并使用工作密匙Key對通信源点的明文数据进行加密,之后通过公共通信网络向通信网路的终点传输密文形式的数据。
达到目的地之后,接收者使用之前约定好的工作密匙Key解密相应的密文数据,这样就能够将最初的明文数据还原。通过这样的方式,能够使公共通信网络中数据传输的可靠性和安全性得到充分的保证。
2.2 DES算法的加密过程
DES算法的加密过程大体上可以分为三个步骤。
(1)使用初始置换函数IP对给定的64比特的明文y进行排列,从而将长为64比特的串y0构造出来;这样就可以得出IP(y)=L0R0=y0,而L0和R0则分别表示y0的前、后32比特。
(2)对16次迭代进行相应的计算,设yi-1=Li-1Ri-1为前i-1次的迭代结果,那么就可以得出算式Li=Ri-1;Ri=Lif (Ri-1,ki);i=1……16,即第i次的迭代运算;其中表示yi-1前、后32比特的分别是Li-1和Ri-1,而 符号则是表示对两个比特串进行“异或”运算,f主要由S盒置换构成,另外ki是一个48比特长的块。
(3)通过IP-1逆置换比特串R16L16就可以将密文x编制出来,即IP-1(R16L16)=x,IP的逆置换就是置换IP-1。逆置换IP-1和置换IP的数据对应表如表1所示。
接下来对初始置换IP和IP-1、密匙产生的ki、S盒以及函数f分别进行说明。
(1)IP,IP-1的置换。根据上表可以对IP和IP-1的输入比特和输出比特之间的对应关系进行有效的把握。从一维形式的角度看待这个矩阵,位移明文第m位到IP置换后的i*8+j位,即m=IP(i*8+j),那么对于IP IP-1=IP-1 IP=I这个式子,IP-1完全满足。
(2)函数f。由上文可知,选取Ri-1的32位中的某些位就能够使位选择表E构成48位,并且其一共分为8组,每一组中都有6位。也就是E能够扩展置换32位为48位。由密匙产生的ki是一个比特串共有48位,通过按位作模加法计算ki与E的选位结果,可以得到一个48位的输出,即E(Ri-1)ki,可以以每一组6位的方法将其划分为8组,这样就可以输出8个S盒。而每个输出4位的S盒,一共为32位。而P的输出就是S盒的输出,对输入进行位置换是P的主要功能。
(3)密匙产生的ki。首先设64位的密匙串为K=K1……K64,但是其中一些位置要用作奇偶校验位,即第8位、16位、32位、40位、48位以及64位,也就是说实际上密匙并非64位,而是56位。这样就要分16轮构造ki,i=1,2……16。首先,使用PC-1对给定的密匙K进行选位,选位确定之后可以设C0为前28位,D0为后28位。之后开始进行第一轮,也就是使C0左移LS1,这样就可以得到C1,之后重复以上操作使D0左移LS1,这样就可以得到D1,之后再使用PC-2针对C1D1进行相应的选位,就可以得到k1。接着开始进行第二轮,也就是针对C1,使D1向左位移LS2,这样就可以得到相应的C2、D2,之后再使用PC-2针对C2D2进行相应的选位,这样就能够得到k2。之后一直重复上述步骤,就可以将k3、k4、k5、k6……k16计算出来。
(4)S盒的工作原理。S盒的输入和输出分别是6位和4位,本文以S1为例详细说明其具体的运行过程,首先设A为输入,并且A=a1a2a3a4a5a6,这时0到15之间的一个数是a2a3a4a5所代表的二进制数,并将其记作k=a2a3a4a5;与此同时0到3之间的一个数是a1a6所代表的二进制数,并将其记作h=a1a6。这时通过查找S1的k列和h行就能够得到数B,并且数B在0到5之间,同时可以使用4为二进制数来表示数B,这样就可以设S1的输出为:B=b1b2b3b4。DES算法的解密过程与加密过程相一致,因此k16只需要在第一次迭代过程中使用,而k15则在第二次迭代中使用,之后以此类推,最后k1在最后一次的迭代中使用。
3 DES算法实现方法的改进分析
目前,应用比较广泛的方法主要是针对IP变换表实现方法的改进。根据表1可得将一组64比特的明文M(64)输入之后,就可以得到0,1,2……63的编号次序,这时用M(64)的第1到第8行替换原来的2,4,6,8和1,3,5,7列,变换完成之后再将其翻转180°,这样就能够将M(64)的初始换位表IP(64)推算出来。
利用相反的办法,即使用64比特的字符串R16L16的2,4,6,8和1,3,5,7列替换原来的第1到第8行,变换完成之后再将其翻转180°,这样就可以将IP-1换位表推算出来。找到并充分的把握这个规律对程序实现的改进有着很大的帮助,并且还能够使计算速度得到显著的提高。
在设计软件的过程中,两个表的操作可以用一个表充分实现,从而使程度的大小大幅减小。另外,IP和IP-1变换表也可以直接用算式替代,与传统的查表相比,算式能够使计算的速度大幅提高。
除了第一种方法之外,还可以通过改进S盒算法的实现方法,使其执行效率得到有效的提高。具体来说,在盒运算的过程中,可以设a1a2a3a4a5a6=A,之后记a1a6=h且a2a3a4a5=k,那么输出值就是Si(i=1,2,3,4,……8)表中h行以及k列所对应的具体的值。另外,因为a2a3a4a5+a1a6*16与a2a3a4a5a1a6相等,所以在使用相应的软件对其进行实现的过程中,可以根据一维表的格式对S盒的二维表进行相应的转化操作,这样就能够将在二维表(4行,16列)转换为一个一维表(逐行接续),从而将查找对应值Si(a1a6,a2a3a4a5)转化为在一维表中直接查找a2a3a4a5a1a6对应值,这样就可以使程序的运行速度大幅提高。
另外,还可以将E表的第2列进行转化,使其成为第6列,之后再对PC-2表的第2列进行转化,使其成为第6列,然后将Si(i=1,2,3,4,……8)表转化为一维表,这样以往需要对a1a2行以及a3a4a5a6列的对应值,而现在只需要对一维表中a1a2a3a4a5a6的对应值进行查找就可以了。通过对这两个方面的改进,能够使DES算法设计的难度大幅降低,并使算法的执行效率得到显著提高。
4 结束语
总而言之,在明文数据的加密传输中DES算法已经得到了非常广泛的应用,该加密方法具有较高的安全性。但是,对于一少部分明文数据的加密效果还不太理想。特别是在某些领域的应用中DES算法还存在一些不足,破译者可以利用漏洞获取传输中的明文数据,这对DES算法的安全强度产生了严重的影响,针对这种现象本文提出了相应的DES算法实现方法的改进措施,但是这个问题仍需引起注意并及时采取合理有效的措施改進和完善DES算法,只有这样才能够使明文数据传输的安全性得到有效的保障。
基金项目:
教育部协同育人项目(项目编号:201901164001)。
参考文献
[1] 贾俊. DES分组加密算法的分析研究与应对策略[J].信息通信, 2019(6):4-4.
[2] 翁云翔.基于DES和RSA的混合加密算法研究与设计[J].电子设计工程, 2016, 24(17):42-44.
[3] 张文娟,吴聪,余梅生,等.利用多值和模糊属性的云辅助WBAN数据加密算法[J].计算机应用研究, 2016, 33(5):1537-1541.
[4] 王爽,陈丽. DES解密过程与安全性的探讨[J].新疆师范大学学报:自然科学版, 2019(1):39-42.
[5] 祁鑫,魏美荣,蒋文保.口令加密算法安全性分析与对比[J].网络空间安全,2016(Z2):34-38.
[6] 刘齐宏,杨豪.一种基于DES算法的RFID加解密模块计[J].科技资讯, 2019(27):13-15.