3DES加密技术的新探讨与改进

2016-07-09 13:58王煜
网络空间安全 2016年8期
关键词:明文密钥解密

【 摘 要 】 文章介绍了DES及3DES的补位加密方法,并指出二者在密文以及密钥加密方面存在的密钥长度过短和容易被选择明文攻击等方面的不足。通过代码设计,文章给出了三种改进的补位加密方法:分组乱序、密钥自身乱序以及插入补位法。通过分析三种方法的优缺点,文章提出了优化方案,并将该方案作为实际应用3DES加密时的参考。

【 关键词 】 DES/3DES算法;数据补位;数据加密

【 中图分类号 】 TP392

【 文献标识码 】 A

【 Abstract 】 This paper introduces the DES and 3DES encryption method and points out that the key length is too short and easy to be chosen in the cipher text and key encryption in two aspects. Through the code design, the paper gives three kinds of improved encryption methods: packet scrambling, key self disorder and insertion. Through the analysis of the advantages and disadvantages of the three methods, the paper puts forward the optimization scheme, and as a reference for the practical application of 3DES encryption.

【 Keywords 】 des/ 3des algorithm; data mending; data encryption

1 引言

DES(Data Encryption Standard)是针对64位数据的分组加密算法,每八位为一组,最高位为奇偶校验码即实际加密时有效密码为56位[1]。DES加密时采用数据补位的方法:将数据按照八个字节为一组进行加密,不足八字节的部分用PKSC5Padding方法进行补足然后加密,最后将所有的分组结合在一起即为密文[2]。类似于数据补位,很多软件也利用DES算法进行密码加密,即用户在输入密码后不足八字节的部分系统将自动填充进行加密。

3DES (Triple DES)是针对DES密码长度过短,安全性略低而改进的算法,其核心是进行三次DES加密,方法为C=Ek3(Dk2(Ek1(P)))[3]。如果三个部分的密码互不相等(k1!=k2!=k3),那么密码长度将会是168位,安全性将会大大增强。如果要用3DES设置密码,则需要24字节的密码长度。如果设置的密码长度过长,比如设置了一个12位密码,那么DES运算次数就会减少,甚至会直接减少一大步DES加密运算,这样3DES的安全性便会降低。很多人给出了DES的改进方法,比如S盒重构以及多重DES[1]。但是由于改变了DES算法中唯一的非线性变化的S盒,安全性无从可知;并且N重DES会使得加密变得拖沓,不太符合实际需要[1]。

所以,3DES应尽量在保持原有内部结构和密钥长度的基础上在数据补位上进行一些改进。本文将首先介绍分析DES的数据补位技术,然后介绍三种新的3DES的补位加密及解密方法并给出代码,最后讨论改进后的加密方法的优缺点并讨论优化方案及实际中的应用。

2 DES与3DES的数据补位加密

2.1 ECB模式

2.2 补位方法的分析

DES是一个迭代分组密码,使用16个循环,包括异或、置换、代换、移位四种运算方法。在ECB模式下,DES的数据补位就是把每一组进行加密后相连,最终实现的其实是每一组里数据的迭代加密,而无法从整体上建立数据之间的联系;解密方法则是先对密文进行分组,然后逐组进行解密,将数据按顺序连接便是解密后文件,最后删除可能会含有的补足后的字节。

而在CBC模式下,DES的数据补位使得每组数据都要先与前一组加密过的数据进行异或运算再进行DES加密(第一组则先与一初始值进行异或运算),这一加密方法使得每组数据都链接在了一起,加强了数据的紧密性,较EBC模式复杂了许多。解密是加密的逆运算,步骤是先分组,然后对第一组先进行DES解密再和初始数据进行异或运算,接着第二组先进行DES解密再和第一组加密数据进行异或运算获得源文件,每一组以此类推,删除最后一组的补足字节后按顺序连接便是源文件。CBC使用的是链接机制,密文对于明文的依赖性很强,因此对于数据的顺序,完整度及对原文的修改等极为敏感[3]。所以,CBC模式对于原文的敏感性以及其使用密码块链接的方法,可能会让解密出现问题,因为明文的改变会使密码块发生改变,而CBC的密码块是同步的。

3 优缺点分析

3.1 优点

密码分组的乱序相较于其他两种方法,思路更加清晰简单,配合2.2设计的随机字符补位方法,可以说是用最简单的打乱方法实现优化。

密码本身乱序的优势在于即使密钥所在分组被破解,也无法得到原密钥,仍需要对其进行乱序还原,而文章给出的代码只有两步循环,在实际中还可以增加更多的乱序循还以增加安全性。插入补位法的优势在于不同位数的密钥有着不同的插入方法,这样密钥就更加地无规律可循,只能选择将168位密钥全部破解。

3.2 缺点

密码本身乱序的缺点在于乱序算法没有DES加密的安全性高,更容易被强行破解,而且密钥长度过短会使得乱序的可能情况减少,降低其安全性。

插入补位法的缺点在于其在实际中的运用上,密码分组的乱序以及密码本身的乱序在实际中都可以应用在明文的加密上,而不仅仅是密钥的加密;而由于文章设计的补位方法插入的字符数量有限,因此在明文加密中很容易就能被发现插入规律,尤其是对于中文文件。

由于这些算法对于原文进行了改变,可能使3DES无法适应CBC模式。但是分组的乱序实际上也是起到了从整体上链接明文的作用,密钥自身的乱序以及插入补位法也打乱了每一组的规律,因此其安全性较原CBC模式下的DES加密并没有降低太多。

4 优化方案与在实际中的运用

在现实生活中,信息的保护是人们越来越重视的问题,因此改进后的3DES补位加密法的运用建议可以作为一些信息加密的参考。由于3DES既可以作为明文加密的方法也可以作为密钥加密的方法,所以其应用范围非常的广泛。对于不太重要的文件,三种补位法任选一种进行补位加密即可。而对于那些重要性高的文件,如果使用3DES加密,则最好选用三种补位方法联合使用的优化方案。

优化方案为首先对原密钥进行乱序运算,然后进行插入补位,最后对分组进行乱序,这样三者的混合使用使得原密钥“混乱无章”,黑客不得不选择破解全部的168位密钥。而这一优化使得明文加密更加安全有效,在文件被破解后,仍必须先复原分组,去除插入字符最后恢复乱序才可获得原明文文件。这样使得3DES算法更加牢固,文件也更不易被破解。

5 结束语

文章的目的是改进3DES补位加密方法,通过代码设计最后实现了三种方式的变化:分组乱序、密钥自身乱序后的补位加密以及插入补位法。改进后的补位加密方法使得加密文件的密钥变得更加的混乱无规律,这使得想要强行破解密钥的人不得不把3组共168位密钥全部破解。这样,3DES加密法便能够充分发挥其较DES的进步性和安全性。很多软件的用户并不熟悉3DES的加密和破解方法,所以他们也不太清楚如何设置合适的密码长度,这也是3DES的潜在不安全性。

本文提出的改进方法即解决了原3DES存在的这一问题,同时又使得应用3DES加密的软件更加的人性化,可以更牢固地保护用户信息。关于改进方法里提到的密钥分组乱序,密钥本身乱序和密钥插位补足法,每一种都一定的优越性和局限性,而这些方法的综合运用或许可以相互弥补以增加安全性,使得3DES加密可以更好地运用到实际中。

参考文献

[1] 李红芳,杨领军,曹三省.基于密钥长度的数据加密标准算法改进[J].太赫兹科学与电子信息学报,第11卷第1期,2013.2.

[2] 梁栋. JAVA加密与解密的艺术[J].脼峰资讯(第二部分),7.3.2,2010.11.

[3] 郑东等.密码学:密码算法与协议[M].北京:电子工业出版社(2版),2014.8.

[4] 房祥超,李兴保.基于一次密钥的数据加密算法优化[J].计算机系统与应用,第22卷第9期,2013.

作者简介:

王煜(1996-),男,江苏徐州人,本科在读,西交利物浦大学数学科学系;主要研究方向和关注领域:运筹学和信息管理。

猜你喜欢
明文密钥解密
幻中邂逅之金色密钥
幻中邂逅之金色密钥
炫词解密
炫词解密
炫词解密
BitLocker密钥恢复二三事
奇怪的处罚
奇怪的处罚
奇怪的处罚