您好,欢迎访问三七文档
DES算法祥述(一)】摘要DES数据加密算法是使用最广的分组加密算法,它作为最著名的保密密钥或对称密钥加密算法,在计算机密码学及计算机数据通信的发展过程中起了重要作用。本次毕业设计是主要研究了DES对称密钥数据加密算法,并用c++实现。DES算法具有较高的强壮性,为我们进行一般的计算机数据传输活动提供了安全保障。着重介绍DES算法的原理以及C++语言的程序及其过程的实现。关键词:加密与解密,DES算法,C++语言AbstractTheDESdataencryptionalgorithmusesthebroadestsectionalencryptionalgorithmblockcipher,ittookthemostfamoussecuritykeyorthesymmetricalkeyencryptionalgorithm,playedthevitalroleinthecomputercryptologyandinthecomputerdatacommunicationdevelopingprocess.ThisgraduationprojecthasmainlystudiedtheDESsymmetricalkeydataencryptionalgorithm,andrealizedwithc++.TheDESalgorithmhashigherstrong,carriedonthecommoncomputerdatatransmissionactivityforustoprovidethesafetycontrol.EmphaticallyintroducestheDESalgorithmtheprincipleaswellastheC++languageprocedureanditstheprocessrealization.Keyword:encryptionanddecipher;desalgorithm;c++language目录引言...41.概述...51.1加密与解密...52.DES算法简介...62.1简介...62.2DES加密标准...62.2.1IP是初始置换...62.2.2IP-1是IP的逆置换...82.2.3DES算法的迭代过程...82.2.4子密钥的生成...102.3DES算法的解密过程...113.DES算法用C++语言实现...123.1设置密钥函数des_setkey()123.2f函数和S函数f_func()和s_func()123.3DES算法的运行函数des_run()133.4DES算法的主函数voidmain()133.5DES的加密过程和举例...143.6DES算法的分析...164.结束语...18参考文献...19致谢...20附录A..21引言自从人类有了战争,就有了密码,所以密码作为一种技术源远流长,可以追溯到远古时代,而且还有过辉煌的经历。但成为一门学科则是近20年的事,这是受计算机科学蓬勃发展的刺激结果。今天在计算机被广泛应用的信息时代,信息本身就是时间,就是财富。大量信息被发现,而后果是及其严重的。如何保护信息的安全已不仅仅是军事和政府部门感兴趣的话题,各企事业单位也愈感迫切。因为在网络化的今天,计算机犯罪每年使他们遭受的损失极其巨大,而且还在发展中。密码是有效而且可行的保护信息安全方法,有效是指密码能做到使信息不被非法窃取,不被篡改或破坏,可行是说它需要付出的代价是可以接受的。密码是形成一门新的学科是在20世纪70年代。它的理论基础之一应该首推1949年Shannon的一篇文章“保密通信的信息理论”,这篇文章过了30年后才显示出它的价值。现在,密码学有了突飞猛进的发展,而且成为有些学科的基础。特别是“电子商务”和“电子政府”的提出,使得近代密码学的研究成为热门的课题。也大大地扩大了它的发展空间。在近代密码学上值得一提的大事有两件:一是1977年美国国家标准局正式公布实施了美国的数据加密标准(DES),公开它的加密算法,并批准用于非机密单位及商业上的保密通信。密码学的神秘面纱从此被揭开。二是Diffie和Hellman联合写的一篇文章“密码学的新方向”,提出了适应网络上保密通信的公钥密码思想,掀起了公钥密码研究的序幕。受他们的思想启迪,各种公钥密码体制被提出,特别是RSA公钥密码的提出在密码学是上一个里程碑。美国国家标准局1973年开始研究除国防部外的其它部门的计算机系统的数据加密标准,并批准用于非机密单位及商业上的保密通信。于1973年5月15日和1974年8月27日先后两次向公众发出了征求加密算法的公告。1977年1月,美国政府颁布:采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(DES:DataEncryptionStandard)。在密码学的发展过程中,DES算法起了非常重要的作用。本次毕业论文研究的是分组加密技术中最典型的加密算法——DES算法。1.概述1.1加密与解密加密技术是基于密码学原理来实现计算机、网络乃至一切信息系统安全的理论与技术基础。简单的说,加密的基本意思是改变信息的排列形式,使得只有合法的接受才能读懂,任何他人即使截取了该加密信息也无法使用现有的手段来解读。解密是我们将密文转换成能够直接阅读的文字(即明文)的过程称为解密,它是加密的反向处理,但解密者必须利用相同类型的加密设备和密钥对密文进行解密。目前国际上最关心的加密技术有两种:一种是公钥密码。另一种是分组密码。公钥加密技术私钥密码体制的缺陷之一是通信双方在进行通信之前需通过一个安全信道事先交换密钥。这在实际应用中通常是非常困难的。而公钥密码体制可使通信双方无须事先交换密钥就可建立起保密通信。公钥算法要比私钥算法慢得多。最典用的代表是RSA公钥密码体制。分组密码是将明文划分为长为m的数组x=(x1,x2,…,xm),各组明文分别在密钥k=(k1,k2,…,kt)的控制下变换成等长的输出数字序列y=(y1,y2,…,yn).分组密码的模型,如图1.1所示。它与流密码的不同之处在于输出的每一位数字不只与相应时刻输入明文数字有关,而是与一组长为m的明文数组有关。分组密码的优点在于其容易实现同步,因为一个密文组的传输错误不会影响其他组,丢失一个明密文组不会对其后的组的解密正确性带来影响。目前著名的对称分组密码系统算法有DES、IDEA、Blowfish、RC4、RC5、FEAL等。本次毕业论文主要研究DES算法。2.DES算法简介2.1简介DES是DataEncryptionStandard(数据加密标准)的缩写。它是由IBM公司研制的一种加密算法,美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准。DES算法自从公布以来,它一直超越国界,成为国际上商用保密通信和计算机通信的最常用的加密算法。原来规定DES算法的使用期为10年,可能是DES尚未受到严重威胁,更主要是新的数据加密标准研制工作尚未完成,或意见尚未统一,所以当时的美国政府宣布延长它的使用期。因而DES超期服役到2000年。二十多年来它一直活跃在国际保密通信的舞台上,扮演了十分突出的角色。进入20世纪90年代以后,以色列的密码学家Shamir等人提出一种“差分分析法”,以后日本人也提出了类似的方法,这才称得上对它有了攻击的方法。严格地说Shamir的“差分分析法”也只是理论上的价值。至少到目前为止是这样,比如后来的“线形逼迫法”,它是一种一直明文的攻击,需要243≈4.398×1012个明、密文对,在这样苛刻的要求下,还要付出很大的代价才能解出一个密钥。早在DES提出不久,就有人提出造一专用的装置来对付DES,其基本思想无非是借用硬设备来实现对所有的密钥进行遍历搜索。由于电子技术的突飞猛进,这样的专门设备的造价大大降低,速度有质的飞跃,对DES形成了实际的威胁。DES确实辉煌过,它的弱点在于专家们一开始就指出的,即密钥太短。新的加密标准取代DES的时间已经到来。2.2DES加密标准数据加密标准DES虽然已走完它的生命历程,但是作为一种Feistel加密算法的例子仍然有讨论的价值。它的缺点在于密钥太短,虽说有64位但实际上只有56位起作用。设m=m1m2…m64k=k1k2…k64在后面的介绍中可以看到k8,k16,k24,k32,k40,k48,k56,k64实际上是不起作用的。DES的加密过程可表示为:DES(m)=IP-1T16·T15…T2·T1·IP(m).整个DES算法的流程图(略)2.2.1IP是初始置换初始置换在程序中的实现原理是将输入的64位明文存入in[8]中,再存入m[64]中,在8个数组中,每一组包括8位,按1至64编号。IP的置换规则如下:58,50,42,34,26,18,10,260,52,44,36,28,20,12,462,54,46,38,30,22,14,664,56,48,40,32,24,16,857,49,41,33,25,17,9,159,51,43,35,27,19,11,361,53,45,37,29,21,13,563,55,47,39,31,23,15,7即将输入的第58位换到第一位,第50位换到第2位……,依次类推,最后一位是原来的第7位。2.2.2IP-1是IP的逆置换由于第一位经过初始置换后,处于第40位,通过逆置换,又将第40位换回到第1位,起逆置换规则如下表所示:40,8,48,16,56,24,64,3239,7,47,15,55,23,63,3138,6,46,14,54,22,62,3037,5,45,13,53,21,61,2936,4,44,12,52,20,60,2835,3,43,11,51,19,59,2734,2,42,10,50,18,58,2633,1,41,9,49,17,57,252.2.3DES算法的迭代过程DES算法的迭代过程图(略)图中Li-1和Ri-1分别是第i-1次迭代结果的左右两部分,各32比特。即Li=Ri-1,Ri=Li-1f(Ri-1,ki)L0,R0是初始输入经IP置换的结果ki是由64比特的密钥产生的子密钥,ki是48比特DES算法的关键是f(Ri-1,ki)的功能。F是将32比特的输入转换为32比特的输出。在这个函数中,s1,s2,…s8为选择函数,其功能是把6bit的数据变为4bit的数据。下面给出选择函数Si:S1:14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7,0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8,4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0,15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13,S2:15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10,3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5,0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15,13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9,S3:10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8,13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1,13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7,1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12,S4:7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15,13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9,10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4,3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14,S5:2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9,14,11,2,12,4,7,13,1,5,0,15,1
本文标题:DES算法(经典)
链接地址:https://www.777doc.com/doc-4897677 .html