版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 本科毕业设计(论文)题目:基于对称密码的加密算法设计院 (系): 电子信息工程学院 专 业: 电子信息科学与技术班 级: 学 生: 学 号: 指导教师: 2011年 06月 本科毕业设计(论文)题目:基于对称密码的加密算法设计院 (系): 电子信息工程学院 专 业: 电子信息科学与技术班 级: 0 7 0 4 0 5 学 生: 学 号: 指导教师: 2011年 06月基于对称密码的加密算法设计摘 要随着信息技术的发展,人们在享受信息资源所带来的巨大的利益的时,也面临着信息安全的严峻考验,信息安全已经成为世界性的现实问题,同时,信息安全问题也是人们能否护自己的个人隐私的关键,于是,信息加密就变
2、得尤为重要。本文首先介绍了对称加密算法的研究意义和研究背景,接着说明了密码原理与des加密原理,着重介绍了des加密算法的原理步骤,核心算法主要分为子密钥的生成和加密流程循环,其中子密钥核心为置换和移位,主流程序主要包括16次迭代,f函数,s盒运算等,再次,介绍matlab的使用和基于matlab的算法编程以及matlab gui的生成及界面的友好性和美观化设置,最后讨论了同类优秀作品。 本论文最终实现能在matlab用户界面上任意输入加密数据和密钥,经加密后输出16位十六进制密文数据。关键词:加密;数据加密;密码体制;des;rsabased on symmetrical password
3、encryption algorithm design abstractwith the development of information society, people enjoy the great benefits brought information resources about, also faces a severe test of information security, information security has become the worlds real problems, at the same time, the problem of informati
4、on security is also can protect your personal people, then, the key to privacy information encryption is especially important.this paper first introduced the symmetrical encryption algorithm research significance and research background, and then illustrates the password principle and des encryption
5、 principle, introduces the principle of the encryption algorithm des steps, main algorithm are divided into the son key generation and encryption process cycle, which key work for replacement and shift, the mainstream procedure is composed of 16 iteration, f function, s box of operation and so on, a
6、nother ,is introduced matlab again and use of matlab algorithm based on matlab programming , the generation of gui interface,the friendly and beauty settings, finally discussed the excellent papers with the same topic.this paper finally finish the work which can get any input data and encryption key
7、s in matlab interface, and output 16 datas with hex plaintext after encryption .keywords: encryption; des encryption; cryptosystem; des; rsa目 录摘 要iabstractii第一章 课题的研究背景和意义11.1前言11.2密码学的发展与国内外研究现状21.2.1密码学的研究背景21.2.2密码学的研究发展21.2.3密码加密的国内外研究41.3本文主要研究内容51.4本章小结5第二章 对称加密算法理论62.1密码原理介绍62.1.1密码原理62.1.2密码
8、体制62.2分组加密算法72.2.1加密算法des介绍72.2.2加密算法aes介绍92.3本章小结9第三章 加密算法设计103.1数据加密过程103.2子密钥的产生过程123.3加密算法步骤解析143.3.1变换密钥143.3.2数据的加密操作153.4优点与缺点193.5本章总结19第四章 设计实现204.1 论文所涉及的平台和工具:204.1.1 matlab 介绍:204.1.2 matlab gui工具介绍:224.1.3 使用matlab gui工具生成endes.m,endes.fig文件。234.2 des加密过程图示:234.2.1 输入有误时界面提示234.2.2 输入无误
9、时,输出正确答案254.3 des 加密过程matlab主要函数274.5 测试分析284.6 相同课题优秀成果讨论284.7 本章总结31心得体会32参考文献33致谢34总结35毕业设计(论文)知识产权声明36毕业设计(论文)独创性声明37附录:38第一章 课题的研究背景和意义1.1前言信息安全是一个综合性的交叉学科领域,广泛涉及数学、密码学、计算机、通信、控制、人工智能、安全工程、人文科学等诸多学科,是近几年迅速发展的一个热点学科领域。信息对抗和网络安全是信息安全的核心热点,它的研究和发展又将刺激、推动和促进相关学科的研究与发展。至今,密码技术是取得信息安全性最有效的一种方法, 密码技术是
10、信息安全的核心技术。1加密技术包括两个元素:算法和密钥。算法是将普通的文本(或者可以理解的信息)与一串数字(密钥)的结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解码的一种算法。在安全保密中,可通过适当的密钥加密技术和管理机制来保证网络的信息通讯安全。密钥加密技术的密码体制分为对称密钥体制和非对称密钥体制两种。相应地,对数据加密的技术分为两类,即对称加密(私人密钥加密)和非对称加密(公开密钥加密)。对称加密以数据加密标准(des,data encryption standard)算法为典型代表,非对称加密通常以rsa(rivest shamir ad1eman)算法为代表。对称加密
11、的加密密钥和解密密钥相同,而非对称加密的加密密钥和解密密钥不同,加密密钥可以公开而解密密钥需要保密。通过数据加密,人们可以有效地保证通信线路上的内容不被泄露,而且还可以检验传送信息的完整性。进一步,密码技术可以应用于数字签名、身份认证和信息鉴定,这些应用对于资源存取控制以及其它安全措施是必须而且有效的。信息安全产品从应用类型上可以分为防火墙类产品、防病毒类产品、防攻击类产品、密码类产品、认证类产品和访问控制类产品。相对于防病毒软件和防火墙软件来说,基于密码技术密码类产品、认证类产品份额相对较小,但随着金融、电信、政府等行业信息化建设对于网络安全整体解决方案需求的增加,将会有较大的增长。其中主要
12、分为对称和非对称。对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(des),另一个对称密钥加密系统是国际数据加密算法(idea),它比des的加密性好,而且对计算机功能要求也没有那么高。idea加密标准由pgp(pretty good privacy)系统使用。1976年,美国学者dime和henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密
13、钥系统”。相对于“对称加密算法”这种法也叫做“非对称加密算法”。与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密 (privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。在本次毕业设计中,对公钥密码体制进行了分析和研究,并对公钥密码体制和私钥密码体制的代表rsa算法和des算法进行了研究和比较。并且实现了基本的数据加密的处理流程,能提供对数据的安全、有效的保护。1.2
14、密码学的发展与国内外研究现状1.2.1密码学的研究背景 密码学泛指一切有关研究密码通信的学问,其中包括下面两个领域:如何达成秘密通信,以及如何破译秘密通信。也就是密码编码学:指如何达到信息的秘密性,鉴别性的科学;密码分析学:泛指如何破解密码系统,或伪造信息使密码系统误以为真的科学。从密码学的发展来看,它经历了传统(古典)密码学、近代密码学、现代密码学几个阶段,计算机、数学领域的最新成果往往与密码学有关或被应用于密码学研究中。 认证过程中,用户必须向系统提供能够证明自己身份的信息,证明用户身份的信息种类很多,可以是用户所知道的秘密(口令),也可以是生物特征(如指纹)等,但目前使用最广泛的仍然是用
15、户口令(password)。在认证系统中口令占据了非常重要的地位,因此对口令的保护就变得至关重要。人们提出了许多保护口令的方法,力图保障口令的安全与秘密。这些保护认证信息的方法以及认证系统是随着密码学的发展一起发展的,密码学为我们提供了保护口令的一个重要方向。归根结底,用户用以证明自己身份的是一段信息,不论它是口令还是指纹。而迄今为止,确保信息安全的最重要手段是加密。对信息的加密、解密、信息的保密传输,这正是密码学研究的内容。1.2.2密码学的研究发展 密码学拥有悠久、丰富多彩的历史。作为古典密码其中的一种,早期出现的密写术形式只需要纸和笔就可以完成。古典密码学的两大范畴是将消息内容进行重新排
16、列的位移密码和系统地将字母进行替换的替换密码。古典密码学会透露出与明文统计学结果相关的大量信息,因此容易被破解,如对频率分析可以有效地攻击古典密码。尽管保密强度很低,由于实现难度低,加密解密快,古典密码至今仍然被广泛使用。在古典密码学中,有四种类型的代替密码: 1简单代替密码,或单字母密码:就是明文的一个字符用相应的一个密文字符代替。caesar 密码就是典型的简单替代密码。2多编码代替密码:它与简单代替密码系统相似,唯一的不同是单个字符明文可以映射成密文的几个字符之一,例如 a 可能对应于5、13、25 或 56,“b”可能对应于 7、19、31 或 42,等等。3母代替密码:字符块被成组加
17、密,例如“aba”可能对应于“rtq”,abb 可能对应于“sll”等。 4多表代替密码:由多个简单的代替密码构成,例如,可能有 5 个被使用的不同的简单代替密码,单独的一个字符用来改变明文的每个字符的位置。 20 世纪初,包括转轮机在内的一些机械密码加密装置被发明出来,其中最有名的是二次世界大战中德国使用的恩尼格码(enigma)机。由这些装置实现的密码显著提高了密码分析的复杂程度,大量的攻击也仅仅取得了有限的结果。 古典密码学以移位密码、替换密码、转轮机为代表,以替代和置换为基础的密码系统在今天看来已经不堪一击,无法保证信息的安全,对处心积虑的攻击者来说形同虚设,因为已经有成熟的分析方法来
18、破解这一类的加密方法。 借助电子计算机的发展,人们可以实现更复杂的密码系统。与古典密码和机械密码对26个字母进行操作不同,计算机密码的一个显著特征是对二进制串进行操作。计算机密码对密码分析有更强的抵抗力,只有少数情况下唯密文攻击才会生效。 密码学的大发展时期是上世纪70年代,以des和rsa算法的提出为代表。一系列的突破创立了新的密码学体系。des是对称密钥分组密码的一个典型代表,美国国家标准局于 1977 年公布了由ibm公司研制的一种加密算法,批准把它作为非机要部门使用的数据加密标准简称des,des是 data encryption standard 的缩写。自从公布以来,它一直广泛用于
19、国际上商用保密通信和计算机通信。但由于弱密钥的问题和新的攻击手段不断出现(差分攻击、线性攻击),单纯的 des 加密已经很少用于实际。更多的情况下是采用增加密钥长度和多重 des 加密的办法。 rsa 作为一种成功的公钥密码系统,与传统的对称密码系统(加密、解密使用相同的密钥)相比,最大的特点就是解决了大量密钥分配、传输的问题。在公钥密码系统中,每个通信者拥有一个密钥对,可用其中一个来加密,用另一个来解密,公开其中之一(公钥)而另一半只有自己知道(私钥)。当需要向某人发送信息时,只需要用他的公开密钥对消息进行加密,接收者再用自己的私钥解密即可。而由于公钥密码的特性,这种密码系统也可以用于数字签
20、名。与对称密码一样,公钥密码也容易受到攻击,解决方法是增加密钥长度,但密钥长度的增长会使得加密、解密速度变慢,所以公钥密码目前主要仅用于密钥管理和签名中。 近代密码学的另一个分支是序列密码,这种密码体制采用与明文长度相同的密钥,利用模加(异或)的方法来掩盖明文的内容。这种加密方法虽然简单,但在使用一次性密钥的情况下,可获得极高的安全性,由于密钥不重复使用,给破译带来了极大的困难。但这种方法也有其缺点,由于密钥只使用一次,不适合对大量数据进行加密,尤其是流媒体数据,而且大量密钥的分发、传送也是一个问题。这种方法安全性的关键是要保证密钥序列的随机性,然而“真”随机数是不容易通过固定算法来产生的,而
21、使用“伪随机数”则存在着一定的风险。 近年来提出的“量子密码”采用了量子状态来传递信息。“海森堡测不准原理”是量子力学的基本原理,它表明,在同一时刻以相同的精度测定量子的位置与动量是不可能的,只能精确测定两者之一。“单量子不可复制定理”是“海森堡测不准原理”的推论,它表明,在不知道量子状态的情况下复制单个量子是不可能的,因为要复制单个量子就只能先作测量,而测量必然改变量子的状态,所以说不可能。这样使用量子状态作为“一次性便签”可以达到无条件保密。因为如果量子在传输中被测量,其状态就会改变,从而在传输中监听者会因此而暴露。虽然量子密码拥有优秀的安全特性,但目前仍处于研究阶段。1.2.3密码加密的
22、国内外研究国外目前不仅在密码基础理论方面的研究做的很好,而且在实际应用方面也做的非常好。制定了一系列的密码标准,特别规范。算法的征集和讨论都已经公开化,但密码技术作为一种关键技术,各国都不会放弃自主权和控制权,都在争夺霸权地位。美国征集aes的活动就充分体现了这一点,欧洲和日本就不愿意袖手旁观,他们也采取了相应的措施,其计划比美国更宏大,投资力度更大。2我国在密码基础理论的某些方面的研究做的很好,但在实际应用方面与国外的差距较大,没有自己的标准,也不规范。 目前最为人们所关注的实用密码技术是pki技术。国外的pki应用已经开始,开发pki的厂商也有多家。许多厂家,如baltimore,entr
23、ust等推出了可以应用的pki产品,有些公司如verysign等已经开始提供pki服务。网络许多应用正在使用pki技术来保证网络的认证、加解密和密钥管理等。尽管如此,总的说来pki技术仍在发展中。按照国外一些调查公司的说法,pki系统仅仅还是在做示范工程。idc公司的internet安全资深分析家认为:pki技术将成为所有应用的计算基础结构的核心部件,包括那些越出传统网络界限的应用。b2b电子商务活动需要的认证、不可否认等只有pki产品才有能力提供这些功能。2,3 目前国际上对非数学的密码理论与技术(包括信息隐形,量子密码,基于生物特征的识别理论与技术等)非常关注,讨论也非常活跃。信息隐藏将在
24、未来网络中保护信息免于破坏起到重要作用,信息隐藏是网络环境下把机密信息隐藏在大量信息中不让对方发觉的一种方法。特别是图象叠加、数字水印、潜信道、隐匿协议等的理论与技术的研究已经引起人们的重视。1996年以来,国际上召开了多次有关信息隐藏的专业研讨会。基于生物特征(比如手形、指纹、语音、视网膜、虹膜、脸形、dna等)的识别理论与技术已有所发展,形成了一些理论和技术,也形成了一些产品,这类产品往往由于成本高而未被广泛采用。1969年美国哥伦比亚大学的wiesner创造性地提出了共轭编码的概念,遗憾的是他的这一思想当时没有被人们接受。十年后,源于共轭编码概念的量子密码理论与技术才取得了令人惊异的进步
25、,已先后在自由空间和商用光纤中完成了单光子密钥交换协议,英国bt实验室通过30公里的光纤信道实现了每秒20k比特的密钥分配。近年来,英、美、日等国的许多大学和研究机构竞相投入到量子密码的研究之中,更大的计划在欧洲进行。到目前为止,主要有三大类量子密码实现方案:一是基于单光子量子信道中测不准原理的;二是基于量子相关信道中bell原理的;三是基于两个非正交量子态性质的。但有许多问题还有待于研究。比如,寻找相应的量子效应以便提出更多的量子密钥分配协议,量子加密理论的形成和完善,量子密码协议的安全性分析方法研究,量子加密算法的开发,量子密码的实 用化等。总的来说,非数学的密码理论与技术还处于探索之中。
26、3,41.3本文主要研究内容本文首先介绍了对称加密算法的研究意义和研究背景,接着说明了密码原理与des加密原理,着重介绍了des加密算法的原理步骤,核心算法(包括子密钥生成,16次迭代,f函数,s盒运算)等,再次,介绍matlab的使用和基于matlab的算法编程以及matlab gui的生成及界面的友好性和美观化设置,最后讨论了同类优秀作品和界面的最终生成。具体来讲,des加密原理和逻辑关系顺序的理解是基础,只有具体的全面的理解了数学原理,并能用较简单的语言描述,才是后续编程和一切工作的基础,再次,matlab语言基础知识的掌握也是本次毕业设计的前提,从基本矩阵的了解,到编程语言的灵活编写,
27、最后,matlab用户图形界面设计,版面设计,程序调试,之间,回调函数的编写是难点也是重点,最终实现了能够任意输入明文数据和密钥,经过加密生成16位十六进制密文数据。1.4 本章小结本章主要讨论了本课题的研究背景和现实意义及国内外发展现状,同时对密码学及密码加密的最新成果作了了解,最后说明了本课题的主要研究内容。第二章 对称加密算法理论2.1密码原理介绍2.1.1密码原理所谓加密,就是将正常情况下可懂的文件数据输入密码机,由密码机变成不可懂的乱码,即将“明文”变成“密文”;所谓解密,就是上述过程的逆过程,即将“密文” 变成“明文”。密码机可看做是一个用电子元件实现一种复杂数学运算的机器。复杂数
28、学运算可记为,这里c=密文,p=明文,k=密钥,f是密码算法。k是自变量,c是因变量。不同的k有不同的c,对于某个密码算法f,k的选择范围越大,c的变化就越多,这个密码算法被人破译的难度就越大,保密强度就越高。如何评价k的选择范围大小呢?一般是看k的位数,位数长的(如128位以上)选择范围大,位数短的(如56位)选择范围小。一个国家的密码政策,通常是用位数长的高强度密码(位数可达)保护国家秘密,其它用于保护商业秘密。 在数据传输加密过程中,收发双方线路密码机使用的是相同的密码算法,注入了相同的密钥,发方向收方发出明文,经密码机变成密文后送上公网通信线路,到达收方后先经密码机解密再送到收方电脑上
29、。密文在公用通信网上传输时,如果被截收,窃密方收到的是不可懂的乱码,无法窃取信息内容。 在文件存储加密中,加密解密卡加解密采用同一种算法和同一个密钥,工作人员用电脑处理文件后先将文件加密再存入磁盘,以防窃密者盗用磁盘窃取文件。工作人员调用该文件时,文件先经解密再从显示器上显示出来以供使用。2.1.2密码体制 刚才讲密码原理时,收发双方密码机的密码算法一致、密钥一致,这在密码体制中叫“秘密密钥体制”或“单密钥体制”,这是一种传统的密码体制,有系统的理论研究和完善的管理机制,技术成熟,性能稳定,国内自行研制的产品安全可靠、保密强度高,一般用于文件数据加密存储和传输。国外著名的des密码就是美国政府
30、1977年发布的密钥长度为56位的“秘密密钥体制”的密码。这种密码的缺陷是:仅适用于内部的,点对点方式的,事前双方已知密钥的两点之间的加密传输,保守密钥的秘密十分重要,密钥一旦丢失,整个系统都要立即更换密钥,否则窃密者将可能轻而易举的破解密文。 随着近代计算机网络的发展,不同部门、不同单位网上交往增多,“单密钥体制”显出了它的局限性,人们很难对众多的部门和单位保管好各自不同的密钥。于是人们又发明了“公开密钥体制”或叫“双密钥体制”。它是基于一些数学问题而发明出来的密码体制,这些数学问题可记为,其中,写在一起就是,这个公式说明有这样一种数学运算,它可以将用密钥k加密的密文用密钥k解密,国外197
31、8年公布的rsa密码就是这种有两个密钥的密码。这种密码保密强度不如单密钥体制的密码,一般用于通信双方的身份确认和数字签名。 在实用的互联网络中,各用户通过加密传输可形成一个虚拟的保密互联网。该网要由一个各用户认可的密钥管理中心来生成、管理、分发和销毁密钥,同时各用户可将自己的“公钥”也存放在密钥管理中心。各用户需进行保密通信时,先通过公钥系统进行身份确认(这个过程中密钥管理中心可起到仲裁鉴别作用),双方确认身份后由密钥管理中心分发秘密密钥,双方用得到秘密密钥进行数据或文件的加密传输。这种工作方式不但适用于党政机关内部,也同样适用于电子商务,但电子商务和党政机关不能使用同一个级别的密码设备,党政
32、机关用的是“普密”设备,电子商务只能用“商密”设备,二者的保密强度是不一样的。2.2、分组加密算法2.2.1加密算法des介绍数据加密算法(data encryption algorithm,dea)的数据加密标准(data encryption standard,des)是规范的描述,它出自 ibm 的研究工作,并在 1997 年被美国政府正式采纳。它很可能是使用最广泛的秘钥系统,特别是在保护金融数据的安全中,最初开发的 des 是嵌入硬 件中的。通常,自动取款机(automated teller machine,atm)都使用 des。8des 使用一个 56 位的密钥以及附加的 8 位奇
33、偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。des 使用 16 个循环。9,11攻击 des 的主要形式被称为蛮力的或彻底密钥搜索,即重复尝试各种密钥直到有一个符合为止。如果 des 使用 56 位的密钥,则可能的密钥数量是 2 的 56 次方个。随着计算机系统能力的不断发展,des 的安全性比它刚出现时会弱得多,然而从非关键性质的实际出发,仍可以认为它是足够的。12流程图如图1所示1.
34、2.9.16次循环一位,其余两位begin(64bit)密文输出逆置换循环生成密钥ki(i=1:16)初始置换l0(32),r0(32)初始明文 i=1:64li=ri-1ri=li-1xorf(ri-1,ki)以字符串形式接收明文,并且转换成二进制的ascii码i=1:16置换2,形成48位子密钥k1形成左右28位ci,di合并56位f函数(32)f(ri-1,ki)64位初始密钥选择置换56c0(28),d0(28)s1s8(64)(4832)s_boxsi盒6输入(b1,b2,b3,b4,b5,b6),4输出(b1,b6行,b2b3b4b5列)p置换 p_table()经过e置换表e_t
35、able()r0(3248)异或xor()输出转化bytetobit()与l0异或生成r1 图1. des加密算法结构框图2.2.2加密算法aes介绍aes是美国联邦政府采用的商业及政府数据加密标准,预计将在未来几十年里代替des在各个领域中得到广泛应用。aes提供128位密钥,因此,128位aes的加密强度是56位des加密强度的1021倍还多。假设可以制造一部可以在1秒内破解des密码的机器,那么使用这台机器破解一个128位aes密码需要大约149亿万年的时间。(更深一步比较而言,宇宙一般被认为存在了还不到200亿年)因此可以预计,美国国家标准局倡导的aes即将作为新标准取代des。13,
36、14常用的对称加密有:des、idea、rc2、rc4、skipjack算法等。2.3本章小结本章主要对对称加密算法理论作了系统说明,包括密码原理,分组加密原理重点讨论了对称加密算法des的基本原理,用原理框图来详细说明整个加密流程。 第三章 加密算法设计3.1 数据加密过程1. 对于任意长度的明文,des首先对其进行分组,使得每一组的长度为64位,然后分别对每个64位的明文分组进行加密。2. 初始置换:输入分组按照初始置换表重排次序,进行初始置换。3. 16轮循环:des对经过初始置换的64位明文进行16轮类似的子加密过程。每一轮的加密过程步骤如下: 将64位明文在中间分开,划分为2部分,每
37、部分32位,左半部分记为l,右半部分记为r,以下的操作都是对右半部数据分进行的。 扩展置换:扩展置换将32位的输入数据根据扩展置换表扩展成为48位的输出数据。 异或运算:将48位的明文数据与48位的子密钥进行异或运算。 s盒置换:s盒置换是非线性的,48位输入数据根据s盒置换表置换成为32位输出数据。 直接置换:s盒置换后的32位输出根据直接置换表进行直接置换。经过直接置换的32位输出数据作为下一轮子加密过程的l部分,这32位输出数据与本轮的l部分进行异或操作,结果作为下一轮子加密过程的r部分。然后进入下一轮子加密过程,直到16轮全部完成。4. 终结置换:按照终结置换表进行终结置换,64位输出
38、就是密文。数据加密流程图如图2所示 明 文 分 组初始置换 l0 r0 l1=r0r1=l0f(r0,k1)l15=r14r15=l14f(r14,k15)l16=r15r16=l15f(r15,k16)组成64位数据终结置换 图2. 数据加密过程流程图3.2子密钥的产生过程在每一轮的子加密过程中,48位的明文数据要与48位的子密钥进行异或运算,子密钥的产生过程如下:1. 压缩型换位1:64位密钥根据压缩型换位1置换表进行置换,输出的结果为56位。2. 将经过压缩型换位1的56位密钥数据在中间分开,每部分28位,左半部分记为c,右半部分记为d。3. 16轮循环:c和d要经过16轮类似的操作产生
39、16份子密钥,每一轮子密钥的产生过程如下:循环左移:根据循环左移表对c和d进行循环左移。循环左移后的c和d部分作为下一轮子密钥的输入数据,直到16轮全部完成。将c和d部分合并成为56位的数据。16位子密钥生成流程图如图3压缩型换位1初始密钥输入 c0 d0 循环左移 循环左移 c1 d1 循环左移 循环左移 ci di 循环左移 循环左移 c16 d16压缩型换位2 压缩型换位2压缩型换位2 1,2.,364 1,2.,3 1,2.,32828 图3. 子密钥生成流程图3.3加密算法步骤解析3.3.1变换密钥1.取得密钥从输入密码中取得一个字符串长为7的密码,经过字符与二进制之间的转变,并加入
40、偶校验位,组成64位密码key= 2.等分密钥去除64位密码中作为奇偶校验位的第8、16、24、32、40、48、56、64位,剩下的56位作为有效输入密钥。分成均等的a,b两部分,每部分为28位,参照下表把输入密钥的位值填入相应的位置. 按照表所示a的第一位为输入的64位密钥的第57位,a的第2位为64位密钥的第49位,.,依此类推,a的最后一位最后一位是64位密钥的第36位。密钥初始置换表:a:57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,b:63,55,47,39,31,23
41、,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,43.密钥移位次数:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16左移:1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1des算法的密钥是经过16次迭代得到一组密钥的,上表显示在第几次迭代时密钥循环左移的位数。比如在第1次迭代时密钥循环左移1位,第3次迭代时密钥循环左移2位. 第9次迭代时密钥循环左移1位,第14次迭代时密钥循环左移2位.4.密钥的选取密钥56位到48位压缩置换表:14, 17, 11, 24, 1, 5, 3,
42、28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32在1.1.3步中第i次迭代生成的两个28位长的密钥为, =把 合并以。按照上表所示k的第一位为56位密钥的第14位,k的第2位为56位密钥的第17位,.,依此类推,k的最后一位是56位密钥的第32位。生成与进行第i次迭代加密的数据进行按位异或的48位使用密钥:迭代des算法密钥生成需要
43、进行16次迭代,在完成16次迭代前,循环执行2,3,4步.最终形成16套加密密钥:key0 , key1 , key2 ,. key14 , key15。3.3.2数据的加密操作1.取得数据明文数据分成64位的数据块,不够64位的数据块以补“0”的方式填充。 2.初始换位 明文初始置换表:58,50,42,34,26,18,10,2,60,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
44、,21,13,5,63,55,47,39,31,23,15,7, 按照上表所示把输入的64位数据的原第58位换到第一位,原第50位换到第二位,.,依此类推,最后的得到新的64位数据。3.数据扩展明文扩展置换表:32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 1312 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 1第一次迭代以1.2.2步中生成的newdata作为输入数据,第i (i 1)次迭代以第i-1次的64位输出数据为输入数据,把64位数据按位
45、置等分成左右两部分:.保持left不变,根据上表把right由32位扩展成48位把扩展后的48位right与第i次迭代生成的48位加密密钥进行按位异或操作( rightixor keyi)形成一个新的48位的right.4.数据压缩选择函数s盒函数表: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
46、,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,1
47、4,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,10,3,9,8,6,4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14,11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3
48、,s6:12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11,10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8,9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6,4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13,s7:4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1,13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6,1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2,6,11,13,8,1,4,10,7,9,5,0,15
49、,14,2,3,12,s8:13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7,1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2,7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8,2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11,在1.2.3步中形成了48位的right值,需要把48位的right值转换成32位的right值.把right视为由8个6位二进制块组成 a,b.h都是6位,强制转换成10进制整数的值都不大于64 ,a,bh转成10进制整数后,在对应的表中根据转换后整数值取得对应位置
50、的替代值:a对应表s1,b对应表s2,c对应表s3d对应表s4,e对应表s5,f对应表s6g对应表s7,h对应表s8在此以s1为例说明其功能,我们可以看到:在s1中,共有4行数据,命名为0,1、2、3行;每行有16列,命名为0、1、2、3,.,14、15列。现设输入为: 令: 列 行然后在s1表中查得对应的数,以4位二进制表示,此即为选择函数s1的输出,每6位用一个4位替换这样就完成了从48位向32位数据的转换。5.数据换位 p盒置换表16, 7, 20, 21, 29, 12, 28, 17, 1, 15, 23, 26, 5, 18, 31, 10, 2, 8, 24, 14, 32, 2
51、7, 3, 9, 19, 13, 30, 6, 22, 11, 4, 25把1.2.4步形成的32位right根据上表进行转换:数据的原第16位换到第一位,原第7位换到第二位,.,依此类推,最后得到新的32位数据。6.交换数据把right 和left按位异或后的值赋给right,然后将本轮输入的原始right值赋给left。7.迭代des算法需要进行16次迭代,在完成16次迭代前,把第i-1次得到的的left和right的值作为第i次的输入数据,重复1.2.3-1.2.6的步骤,但是有一点要记住:在步骤1.2.3中第i次迭代要选择第i次迭代生成的密钥与数据进行按位异或。8.数据整理明文末置换表
52、40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31,38,6,46,14,54,22,62,30,37,5,45,13,53,21,61,29,36,4,44,12,52,20,60,28,35,3,43,11,51,19,59,27,34,2,42,10,50,18,58,26,33,1,41,9,49,17,57,25为保证加密和解密的对称性,des算法的前15次迭代每完成一次迭代都要交换left和right的值,第16次迭代不交换两者的数值. 到此把32位的left和right合并成64位的data根据上表重新调整data的位值数据的原第40位换到
53、第一位,原第8位换到第二位,.,依此类推,最后的得到新的64位。data即为密文。3.4优点与缺点1.产生密钥简单,但密钥必须高度保密,因而难以做到一次一密。2.安全性,des的安全性依赖于密钥的保密。攻击 des 的主要形式被称为蛮力的或彻底密钥搜索,即重复尝试各种密钥直到有一个符合为止。如果 des 使用 56 位的密钥,则可能的密钥数量是 2 的 56 次方个。随着计算机系统能力的不断发展,des 的安全性比它刚出现时会弱得多,然而从非关键性质的实际出发,仍可以认为它是足够的。3速度较快,但密钥位数少,为保证安全性,使运算代价很高,尤其是速度较rsa算法快几个数量级,论文核心内容aes是
54、美国国家标准技术研究所nist旨在取代des的21世纪的加密标准。基本要求是,采用对称分组密码体制,密钥长度的最少支持为128、192、256,分组长度128位, aes加密数据块大小最大是256bit,但是密钥大小在理论上没有上限。aes加密有很多轮的重复和变换。对称加密算法的优点:加密效率高,密钥比较短,可以用来构造各种密码机制,可以用来建造安全性更强的密码。对称加密算法的缺点:通信双方都要保持密钥的秘密性,在大型网络中,每个人需持有许多密钥,为了安全,需要经常更换密钥。3.5本章总结 本章详细列出了des加密算法的步骤:主要包括子密钥的生成过程和加密算法的主流过程。其中,子密钥的生成主要依靠置换和移位完成,最终生成16个子密钥,为主流程的加密实现做准备。主流程加密算法主要包括置换,扩展,压缩,16次循环,逆置换等实现整个流程,最后,对此加密算法的优点和缺点作了讨论。 第四章 设计实现4.1 论文所涉及的平台和工具:4.1.1matlab 介绍: matlab是矩阵实验室(matrix laboratory)的简称,是美国mathworks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括matlab和simulink两大部分。基本功能:matlab是由美国
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年中国片式双门气体止回阀市场调查研究报告
- 青岛幼儿师范高等专科学校《传播战略与策划》2023-2024学年第一学期期末试卷
- 交通安全法规及文明出行教育内容
- 青岛农业大学《客户服务文化构建》2023-2024学年第一学期期末试卷
- 青岛理工大学《解剖生理学》2023-2024学年第一学期期末试卷
- 青岛科技大学《食品发酵工艺学实验》2023-2024学年第一学期期末试卷
- 主题餐厅策划与执行方案
- 行业报告与发展趋势分析
- 大班春游吧班本课程设计
- 2023年丁二酸二甲酯项目筹资方案
- 2022年江苏省环保集团有限公司招聘笔试题库及答案解析
- 《汽车焊接技术》试卷期末理论考试含参考答案一套
- FMEA分析经典案例【范本模板】
- 2023-2023年山东省学业水平考试英语试题及答案
- 《腹部损伤》课件
- 工业铝型材受力变形量计算
- 2022年政府采购评审专家考试题库
- 国开电大人体解剖生理学(本)形考任务1-4参考答案
- 珍爱生命健康成长热爱生命健康主题班会PPT课件讲义
- DB11-T 825-2021绿色建筑评价标准
- 2022年冷水机组设备采购招标文件
评论
0/150
提交评论