您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 基于一次密钥的DES数据加密算法优化
基于一次密钥的DES数据加密算法优化房祥超(曲阜师范大学,信息技术传播学院,山东日照,276800)摘要:论文介绍了关于DES算法的一些研究情况,分析了DES了算法的加密原理以及实现过程,通过内容分析,简单介绍了DES算法的几种改进方案,通过分析它的加密过程以及几种改进方案,进而提出了自己的一个改进思想即一次密钥的加密方案,通过这个方案为DES算法的优化作一个参考.关键词:DES算法一次密钥加密原理算法优化1.引言随着计算机技术的发展,计算机网络也得到了长足的发展,比如电子商务,网络产品经营管理等,同时,由于计算机网络在传输中缺乏足够的安全性,网络上的信息在传输过程中随时都受到被窃听,篡改等的威胁,为了保证网络数据传输的安全性,DES数据加密算法应运而生。DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。作为数据加密标准形式的DES数据加密算法虽然有许多年的历史,但是仍在数据加密领域占据着重要地位,并且被各个领域广泛采用,包括ATM柜员机,收费站以及银行身份验证等领域.加密过程如图1所示图1.数据加密过程DES是一个分组加密算法,它以64位为分组对数据进行加密,同时它也是一种对称数据加密算法:加密和解密使用同一个密钥.它的密钥长度为64位,其中56位为有效数据位,另外8位为奇偶校验位.虽然其中有几个弱密钥,但是由于数量少,所以很容易避开它明文密文加密算法解密算法密钥们。2.DES算法的加密过程DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,由于是64位分组加密,所以首先要对数据进行分组,分组完成后要对64位数据进行IP置换.下表为IP置换表:58,50,42,34,26,18,10,260,52,44,36,28,20,12,4,62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7表1.ip置换表所谓的置换就是根据表格里的数据记录的位置进行换位,比如原来数据中的第58位换成第一位,原来的50位换成第二位.置换完成后文本分成左右两部分,每部分32位,分别记为:Li,Ri(1=i=16),然后对Ri进行F(Ri,Ki)操作,F函数是算法的核心部分.即需要输入64位密钥参与算法进行数据加密,置换后的右部分即Ri进行扩展置换,把原来的32位数据扩展至48位,同时输入的64位密钥去掉校验位,剩下的56位密钥经过移位和置换压缩操作得到48位子密钥,子密钥和前面的48位R0进行异或操作,完成后进行S盒置换,通过S盒置换压缩后Ri变成32位,置换完成后进行P盒简单置换,最后和Li进行异或操作,变成新的Ri+1,同时Ri变成Li+1.如图1所示图1.DES加密核心过程(F函数)此F函数需要经过16迭代操作,完成后进行最终置换,形成密文数据。DES加密过程密钥是其中加密的关键,算法的安全性依赖于密钥,而实际的加密过程中并不是直接使用密钥,而是通过16次迭代运行形成16个48位子密钥,下面将介绍子密钥的生成过程。3.子密钥生成从图1中我们可以看到:初始Key值为64位,但DES算法规定,其中第8、16、......64位是奇偶校验位,不参与DES运算。故Key实际可用位数便只有56位。即:经过缩小选择换位表1的变换后,Key的位数由64位变成了56位,此56位分为C0、D0两部分,各28位,然后分别进行第1次循环左移,得到C1、D1,将C1(28位)、D1(28位)合并得到56位,再经过缩小置换操作,从而便得到了密钥K0(48位)。依此类推,便可得到K1、K2、......、K15。4.DES算法的缺陷多年来,DES算法一直作为数据加密标准被应用于许多行业各种数据的保护,但随着计算机性能的提升,它的缺陷也日益显露出来。(1)DES算法的密钥长度过短,只有56位数据有效位,现在计算机的运行速度已经可以使用穷举攻击来破译密码,并且花费的时间并不是很多,例如,1997年1月28日,美国的RSA数据安全公司悬赏1000美金破译DES的56位密钥,其目的是调查internet上的分布式计算能力,并测试密钥长度为56位的DES算法的相对强度,美国程序员Vesor在internet上万名自愿者的帮助下花费96天成功破译了DES密钥,Vesor说:”对于一个坚定的攻击者来说,56位密钥已经不再安全了,”后来随着计算机速度的提升,仅用几个小时就可以破译,所以用DES来保护很长时间的数据已经是不可行的。(2)DES加密算法不能很好的抵抗选择明文攻击,选择明文攻击是一种破译密码的方式,通过选择一定的明文通过DES加密算法进行加密,用以观察密文的以及和目标密文进行对比,从而找到加密的规律,,最坏的情况下,攻击者可以直接得到密钥,选择明文攻击的一个特点是根据明文与得出的密文之间的联系来进行判断,当然为了安全加密方可以每次更换密钥,这样虽然可以相当程度上避免选择明文攻击,但是会造成密钥管理上的压力,而且密钥更换过于频繁而且会造成安全隐患。(3)DES算法加密过程中并没有加入随机密钥,所用到的密钥都是通过初始密钥生成,这样容易受到线性攻击。5.DES加密算法研究现状DES加密算法发展到今天已经失去了当初的优势,诞生初始DES加密算法避免了除穷举攻击以外的所有攻击方式,即使使用穷举攻击以当时计算机的计算速度要破译DES加密密钥需要两千多年,但是随着计算机速度的提升,穷举攻击已经作为一种很好的攻击方式来破译DES密钥,面对上述一系列的DES算法的缺点,国内外很多学者对该算法进行了改进优化,以使这种经典的数据加密算法继续使用在各个安全领域,各种DES加密算法改进方案出现,针对它固有的缺点,分别从各个方面进行改进,例如针对它的密钥长度过短,随机性不高以及其它的安全隐患。下面就介绍几种DES加密算法的优化方案。由于DES所固有的缺点,加密算法领域产生许许多多的方案对其进行优化,现介绍一种针对密钥长度过短的改进方案3DES即3重DES加密算法,由于DES算法只有56位密钥,对于现在来说太不安全,所以出现了3重DES加密算法,3DES(或称为TripleDES)是三重数据加密算法(TDEA,TripleDataEncryptionAlgorithm)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。3DES又称TripleDES,是DES加密算法的一种模式,它使用3条56位的密钥对数据进行三次加密。数据加密标准(DES)是美国的一种由来已久的加密标准,它使用对称密钥加密法,并于1981年被ANSI组织规范为ANSIX.3.92。DES使用56位密钥和密码块的方法,而在密码块的方法中,文本被分成64位大小的文本块然后再进行加密。比起最初的DES,3DES更为安全。3DES(即TripleDES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密文,这样:3DES加密过程为:C=Ek3(Dk2(Ek1(P)))3DES解密过程为:P=Dk1(EK2(Dk3(C)))6.算法改进措施由于DES固有的短密钥缺陷以及密钥传输的安全性等问题,导致这个经典的数据加密算法的相对没落,笔者通过观察和分析DES的加密过程,以及浏览各加密方案得知很难有一种加密方法能够达到所谓的绝对安全,任何长度的密钥随着计算机的发展也会被暴力破译,任何类型的密钥传输都可能被获取破解,另外笔者发现自从密码学诞生以来,最安全的加密算法就是每次更换密钥的算法,密钥只使用一次,而且这样就从来不会被破译,基于这些缺点,笔者提出一种基于一次密钥的DES算法改进方案,下面详细介绍一下该方案.分析DES加密算法的加密过程得知:DES算法需要先把明文进行分组,分组后的明文以64位数据为一组,然后对64位进行异或操作,之后再把64位数据进行左右分组,分组后右部分32位数据进行扩展以及与密钥合成48位子密钥,然后进行Sbox置换和P盒置换,然后再和原来的左边32交换,变成新的左边32位,在算法实现的直观过程中,左边的32位数据并没有在实现过程参与什么操作,纵观整个加密过程都没有涉及到随机数据的问题,这给算法造成很大的安全隐患,所以笔者设计通过随机函数,每次生成64位随机子密钥,全部通过随机函数生成,64位子密钥进行s盒压缩置换,压缩成32位数据,然后与左边的32位数据进行异或操作,这样就加入了随机函数在过程里面,之后再按照DES加密过程进行下一步的操作,这样每次迭代都会经过这个过程,也就是说要经过16次的随机密钥生成算法,每次的密钥长度为64位,也就是DES算法密钥的长度增加了16*64位即1024位,这样算法的总密钥长度为1088位,而且每次加密一个数据后,这种密钥就会作废,下次运行加密程序将会得到另一组加密数据,这样就形成了一次密钥的算法,密钥只使用一次,大大增加了数据的安全性.下图为该改进算法的核心部分.图2.基于一次密钥的DES算法改进核心部分7.改进后的优点(1)首先,在每次的迭代过程中加入64位的随机密钥,增加了总密钥的长度,基本上避免了暴力破解的可能性,因为优化后的总密码长度是1088位,也就是包含21088密钥空间,已经超过了RSA的密钥长度,暴力破解的方法已经基本不可能破译它.(2)其次,因为里面加入了随机函数,每次的加密子密钥都是随机的,这种优化方案的密钥是一次性的,也就是说,本次加密完成后密钥就会失去作用,下次加密的密钥是另外随机生成的,这种随机密钥,有比较好的抵抗线性攻击和差分攻击的能力.(3)这个优化方案最大的特点就是它是一次性的加密方案,事实证明唯一不能被破译的加密方法就是一次性的密钥.数据分段左边32位随机生成64位密钥数据分段右边32位对密钥进行压缩置换F++新的右边32位数据新的左边32位数据64位数据分段随机密钥生成算法8.算法的缺点分析当然,这个优化算法也有自己的缺点.(1)由于密钥长度过长,达到1088位,给密钥管理带来了难度,容易带来安全隐患,当然,现在的移动存储技术发达,这个问题已经不是什么大问题.(2)因为这是基于一次密钥的加密算法,所以它的密钥是一次性的,跟上面一样,密钥管理上有难度,另外,它每次都需要更换新的密钥,密钥传输中会有一定的安全隐患,笔者建议在应用中密钥需要用非对称加密算法来加密传输比如RSA等算法.(3)由于在16次迭代过程中加入了随机的64位密钥,所以算法的速度降低了.该方案在实现过程中也比较灵活,可以根据需要减少随机密钥的位数以及去除掉数据位压缩置换操作.这样能在一定程度上提高它的执行效率.9.结束语笔者通过阅读DES改进方案相关文献,分析各个改进方案的优缺点,提出基于一次密钥的方案,改进后的DES算法具有更好的抵抗攻击的能力,使得DES算法有更广阔的前景.参考文献:[1]谢志强,高鹏飞,杨静.基于前缀码的算法改进研究.计算机工程与应用,2009(45)9:92-94.[2]邓悦恒.3DES算法原理与设计.电脑知识与技术,2005(7)20.[3]王静,蒋国平.基于无理数的DES加密算法.南京邮电大学学报,2009(29)6.[4]赵风光.算数编码与数据加密.通信学报,1999(20)4.[5]顾超.动态DES算法.计算机应用与软件.2007(24)7.[6]陈良.一种优化DES算法.计算机计算机工程与应用.2004.
本文标题:基于一次密钥的DES数据加密算法优化
链接地址:https://www.777doc.com/doc-2573083 .html