版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、对称密码体制DES及其MATLAB实现第一章 课题的研究背景和意义1. 遗传算法的发展及国内外的研究现状从Holland教授基础遗传算法的思想到现在,遗传算法的发展不过才40多年的历史,总的来说,遗传算法的发展历史可以分为以下阶段:20世纪70年代初Holland教授首次提出遗传算法的思想和基本原理,奠定理论基础。1975年他出版了自然系统和人工系统的自适应性一书,该书主要论述遗传算法和人工系统的关系。80年代,他用遗传算法第一个实现了机器学习系统,开创算法学习的新篇章。1.1 遗传算法的研究背景遗传算法(Genetic Algorithm,GA).是由美国Miehigan大学J.H.Holl
2、and教授于1975年首次提出的。它遵循Darwin的进化论及Mendel遗传学说,在数学优化算法的基础上,加入自然界的遗传和自然进化选择机制,具有全局优化能力,是一种模仿生物进化的随机搜索算法。遗传算法的处理对象并不是相关参数本身,而是参数编码后的个体。它将问题的可能解表示为染色体,用适应度函数对搜索空间的解进行评价,然后按照遗传学规律进行选择、叉和变异操作,直到达到终止条件为止。本质是一种求解问题的高度并行性全局搜索算法。遗传算法的优化思想,使它能够在搜索过程中,自动获取和积累有关搜索空间的知识,并自适应的控制搜索过程,在全局范围内求得最优解。由于遗传算法并不要求对求解问题有深入的了解,且
3、具有很强的鲁棒性,使得遗传算法能够广泛地应用于很多学科,尤其是对一些NP难问题的求解,表现出优异的性能。1.2 遗传算法的研究发展20世纪60至70年代兴起阶段。遗传算法的产生,要归功于Hofland教授对于自适应的研究。在该研究中,他用一种新的数学模型来描述生物进化过程,得到的结果,使他意识到这种模型,不仅仅是模拟生物进化的数学模型,也是可以用来优化计算的一种数学方法。这一切都发生在二十世纪的六十年代Holland教授将生物进化数学模型化,发现了进化过程与自适应系统的相似性,并将其引入到该系统的设计。Holland的学生Bagley也参与到了该研究中来他于1967年,提出了遗传算子的雏形,并
4、将其整理在他的博士论文中。Holland经过了多年的研究后,在1968年的时候,提出了遗传算法的理论基了础模式定理。然后,1975年Holland和美国的DeJong博士作出了开创性的成绩。Holland出专著论述了遗传算法和人工自适应系统的相似性。而DeJong博士在模式定理的基础上,通过大量的数值试验,将遗传算子完善,建立了遗传算法的工作框架和五函数测试平台。20世纪80年代发展阶段。二十世纪的八十年代,分类系统(Classifiersystem),作为第一个基于遗传算法的机器学习系统,为分类器的构造提出了一个完整框架Holland作为其实现者,揭开了在机器学习上进行遗传算法的新概念。随后
5、,在1989年Goldberg对遗传算法的一些相关工作进行了总结,包含了遗传算法在这一时期的主要研究成果,从理论和实际应用方面对遗传算法进行了详细的论述,使得遗传算法的基本框架得以形成并将这些内容整理成专著搜索、优化和机器学习中的遗传算法,奠定了现代遗传算法的基础。此后,许多学者经过大量的研究,对遗传算法提出了改进,得到了不少成功的遗传算法模型。从而让遗传算法能够在更加广泛的领域得到应用。20世纪90年代高潮阶段。20世纪90年代,人们比较重视遗传算法的一些基本问题。遗传算法作为一种高效、鲁棒性好的全局优化算法,它的发展极为迅速,在许多领域(如机器学习、模式识别、神经网络和工程优化等)得到了广
6、泛的应用,引起了许多学者的注意在最近兴起的人工生命、遗传编程、进化计算领域中,研究人员将遗传算法与计算机技术相结合,试图模拟自然界的自适应!自组织和再生能力,设计出具有“生命”的人工系统。遗传算法的研究领域主要包含以下几类:遗传算法理论与技术、遗传算法优化、用遗传算法进行分类系统的机器学习相对于生物学理论,遗传算法的数学理论基础是比较薄弱的。虽然如此,作为一门新发展起来的学科,遗传算法还是呈现给我们一种通用的算法框架,该框架不依赖求解问题的种类,具有较强的全局搜索能力。1.3 遗传算法的国内外研究数理方面:作为遗传算法的提出者,Holland提出了遗传算法的基础理论:模式定理。而随后发展的隐含
7、并行性定理和建筑块假设的提出,是前期算法理论上的成就,为遗传算法的发展和应用起到了至关重要的作用。而随着研究的深入,模式理论的拓广和深入成为了理论研究的热点之一;其次,通过马氏链分析遗传算法,也成为了理论研究的一个方向。除此之外,通过收敛理论分析遗传算法也得到了不少学者的青睐。模式理论方面的工作,主要包括模式的进一步讨论和拓广在这个方面,Radeliffe把模式分析进行了一般化,提出了完整的Forma分析理论。李军等通过研究自然数编码,建立了相应的模式定理;明亮等深入研究了模式定理后,推广了模式定理,提出了子模式的存货、互补模式和模式的新建,给出了在模式的新建和存活共同作用下的模式定理。马氏链
8、分析方面,建立起了不同形式的模型,从各种角度刻画了遗传算法的极限行为。其中,Goldber、Rudolph通过对标准遗传算法使用马尔可夫链进行分析,提出了最佳保留遗传算法。在收敛理论方面,早期主要是用Holland的模式定理、隐并行性原理和积木块假说,但是,在后继的研究中,有人发现积木块假说没有给予证明,其它两个理论存在不足和不严格的地方。徐宗本等通过研究,认为已有的关于遗传算法的收敛性和收敛速度估计的结果,具有一定的局限性。虽然如此,Gonealves、陈国胜、王莉等对遗传算法的收敛理论和收敛速度估计进行了研究,还是取得了一定的成绩。此外,在早期的研究中,大多数都是通过马氏链的极限理论来分析
9、遗传算法的收敛性,而现在,用靴方法和迭代的方法,得到了比较系统的结果。其中,徐宗本等用鞍论研究遗传算法的强收敛性,证明了不带“杰出者记录策略”的一大类常用遗传算法,能够以1的概率在有限步内收敛到全局最优解。而在实际应用中,遗传算法的迭代次数和群体规模是有限的。因此,这一研究成果为遗传算法的应用奠定了更为坚实的理论基础。1.4 本文主要研究内容基通过引入生物进化的遗传、交叉、变异、选择等技术,使得遗传算法成为了一种用来寻找近似解的搜索算法。而在生物学上,变异是对生物遗传物质核普酸的改变。那么在遗传算法一代接一代的进化计算过程中,变异算子是用来维持种群多样性的运算。作为遗传算法的一个基本运算,配合
10、交叉运算,避免种群陷入局部最优。由于函数优化是遗传算法的经典应用领域,也是对遗传算法进行性能评价的常用算例。而且,在工程应用中,常涉及到最优化问题,对很多问题进行数学建模后,都可以抽象为一个数值函数的优化问题因此,最后通过遗传算法在函数优化上的应用,来检验本文提出的新的遗传算法的性能。 第二章 遗传算法的基本理论1. 遗传算法的基本描述1.1 遗传算法的数学模型所谓加密,就是将正常情况下可懂的文件数据输入密码机,由密码机变成不可懂的乱码,即将“明文”变成“密文”;所谓解密,就是上述过程的逆过程,即将“密文” 变成“明文”。密码机可看作是一个用电子元件实现一种复杂数学运算的机器。复杂数学运算可记
11、为,这里C=密文,p=明文,k=密钥,f是密码算法。K是自变量,C是因变量。不同的K有不同的C,对于某个密码算法f,K的选择范围越大,C的变化就越多,这个密码算法被人破译的难度就越大,保密强度就越高。如何评价K的选择范围大小呢?一般是看K的位数,位数长的(如128位以上)选择范围大,位数短的(如56位)选择范围小。一个国家的密码政策,通常是用位数长的高强度密码(位数可达)保护国家秘密,其它用于保护商业秘密。 在数据传输加密过程中,收发双方线路密码机使用的是相同的密码算法,注入了相同的密钥,发方向收方发出明文,经密码机变成密文后送上公网通信线路,到达收方后先经密码机解密再送到收方电脑上。密文在公
12、用通信网上传输时,如果被截收,窃密方收到的是不可懂的乱码,无法窃取信息内容。在文件存储加密中,加密解密卡加解密采用同一种算法和同一个密钥,工作人员用电脑处理文件后先将文件加密再存入磁盘,以防窃密者盗用磁盘窃取文件。工作人员调用该文件时,文件先经解密再从显示器上显示出来以供使用。1.2 密码体制密码体制也叫密码系统,是指能完整地解决信息安全中的机密性、数据完整性、认证、身份识别、可控性及不可抵赖性等问题中的一个或几个的一个系统。对一个密码体制的正确描述,需要用数学方法清楚地描述其中的各种对象、参数、解决问题所使用的算法等。刚才讲密码原理时,收发双方密码机的密码算法一致、密钥一致,这在密码体制中叫
13、“秘密密钥体制”或“单密钥体制”,这是一种传统的密码体制,有系统的理论研究和完善的管理机制,技术成熟,性能稳定,国内自行研制的产品安全可靠、保密强度高,一般用于文件数据加密存储和传输。密码体制分为私用密钥加密技术(对称加密)和公开密钥加密技术(非对称加密)。对称密码体制是一种传统密码体制,也称为私钥密码体制。在对称加密系统中,加密和解密采用相同的密钥。因为加解密密钥相同,需要通信的双方必须选择和保存他们共同的密钥,各方必须信任对方不会将密钥泄密出去,这样就可以实现数据的机密性和完整性。对于具有n个用户的网络,需要n(n-1)/2个密钥,在用户群不是很大的情况下,对称加密系统是有效的。但是对于大
14、型网络,当用户群很大,分布很广时,密钥的分配和保存就成了问题。对机密信息进行加密和验证随报文一起发送报文摘要(或散列值)来实现。比较典型的算法有DES(Data Encryption Standard数据加密标准)算法及其变形Triple DES(三重DES),GDES(广义DES);欧洲的IDEA;日本的FEAL N、RC5等。DES标准由美国国家标准局提出,主要应用于银行业的电子资金转帐(EFT)领域。DES的密钥长度为56bit。Triple DES使用两个独立的56bit密钥对交换的信息进行3次加密,从而使其有效长度达到112bit。RC2和RC4方法是RSA数据安全公司的对称加密专利
15、算法,它们采用可变密钥长度的算法。通过规定不同的密钥长度,,C2和RC4能够提高或降低安全的程度。对称密码算法的优点是计算开销小,加密速度快,是目前用于信息加密的主要算法。它的局限性在于它存在着通信的贸易双方之间确保密钥安全交换的问题。此外,某一贸易方有几个贸易关系,他就要维护几个专用密钥。它也没法鉴别贸易发起方或贸易最终方,因为贸易的双方的密钥相同。另外,由于对称加密系统仅能用于对数据进行加解密处理,提供数据的机密性,不能用于数字签名。因而人们迫切需要寻找新的密码体制。在实用的互联网络中,各用户通过加密传输可形成一个虚拟的保密互联网。该网要由一个各用户认可的密钥管理中心来生成、管理、分发和销
16、毁密钥,同时各用户可将自己的“公钥”也存放在密钥管理中心。各用户需进行保密通信时,先通过公钥系统进行身份确认(这个过程中密钥管理中心可起到仲裁鉴别作用),双方确认身份后由密钥管理中心分发秘密密钥,双方用得到秘密密钥进行数据或文件的加密传输。这种工作方式不但适用于党政机关内部,也同样适用于电子商务,但电子商务和党政机关不能使用同一个级别的密码设备,党政机关用的是“普密”设备,电子商务只能用“商密”设备,二者的保密强度是不一样的。2. 分组加密算法2.1 加密算法DES介绍数据加密算法(Data Encryption Algorithm,DES)的数据加密标准(Data Encryption St
17、andard,DES)是规范的描述,它出自IBM的研究工作,并在1997年被美国政府正式采纳。它很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发DES是嵌入硬件中的。通常,自动取款机都使用DES。DES使用一个56位的密钥以及附加的8位奇偶校验位,产生最大64位的分组大小。这是一个迭代的分组密码,使用成为Feistel的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES使用16个循环。具体来讲,DES加密原理和逻辑关系顺序的理解是基础,只有具体的全面的理解了
18、数学原理,并能用较简单的语言描述,才是后续编程和一切工作的基础,再次,matlab语言基础知识的掌握也是实现加密算法的前提,从基本矩阵的了解,到编程语言的灵活编写,最后,matlab用户图形界面设计,版面设计,程序调试,回调函数的编写是难点也是重点,最终实现了能够任意输入明文数据和密钥,经过加密生成16位十六制密文数据。攻击 DES 的主要形式被称为蛮力的或彻底密钥搜索,即重复尝试各种密钥直到有一个符合为止。如果 DES 使用 56 位的密钥,则可能的密钥数量是 2 的 56 次方个。随着计算机系统能力的不断发展,DES 的安全性比它刚出现时会弱得多,然而从非关键性质的实际出发,仍可以认为它是
19、足够的。流程图如图2-1所示6次循环一位,其余两位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_
20、table()经过E置换表e_table()R0(3248)异或xor()输出转化bytetobit()与L0异或生成R1图2-1 DES加密算法结构框图2.2 加密算法AES介绍AES(The Advanced Encryption Standard)是美国国家标准语技术研究所用于加密电子数据的规范。它被预期能成为人们公认的加密包括金融、电信和政府数字信息的方法。明确地说,AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。常用的对称加密有:DES、IDEA、RC2、RC4、SKIPJACK算法等。2.3 本章小结本章
21、主要对对称加密算法理论作了系统说明,包括密码原理,分组加密原理重点讨论了对称加密算法DES的基本原理,用原理框图来详细说明整个加密流程。第三章 加密算法设计1. 数据加密过程1. 对于任意长度的明文,DES首先对其进行分组,使得每一组的长度为64位,然后分别对每个64位的明文分组进行加密。2. 初始置换:输入分组按照初始置换表重排次序,进行初始置换。3. 16轮循环:DES对经过初始置换的64位明文进行16轮类似的子加密过程。每一轮的加密过程步骤如下: 将64位明文在中间分开,划分为2部分,每部分32位,左半部分记为L,右半部分记为R,以下的操作都是对右半部数据分进行的。 扩展置换:扩展置换将
22、32位的输入数据根据扩展置换表扩展成为48位的输出数据。 异或运算:将48位的明文数据与48位的子密钥进行异或运算。 S盒置换:S盒置换是非线性的,48位输入数据根据S盒置换表置换成为32位输出数据。 直接置换:S盒置换后的32位输出根据直接置换表进行直接置换。经过直接置换的32位输出数据作为下一轮子加密过程的L部分,这32位输出数据与本轮的L部分进行异或操作,结果作为下一轮子加密过程的R部分。然后进入下一轮子加密过程,直到16轮全部完成。4. 终结置换:按照终结置换表进行终结置换,64位输出就是密文。数据加密流程图如图3-1所示 明 文 分 组初始置换 L0 R0 L1=R0R1=L0f(R
23、0,K1)L15=R14R15=L14f(R14,K15)L16=R15R16=L15f(R15,K16)组成64位数据终结置换图3-1 数据加密过程流程图2. 子密钥的产生过程在每一轮的子加密过程中,48位的明文数据要与48位的子密钥进行异或运算,子密钥的产生过程如下:1. 压缩型换位1:64位密钥根据压缩型换位1置换表进行置换,输出的结果为56位。2. 将经过压缩型换位1的56位密钥数据在中间分开,每部分28位,左半部分记为C,右半部分记为D。3. 16轮循环:C和D要经过16轮类似的操作产生16份子密钥,每一轮子密钥的产生过程如下:循环左移:根据循环左移表对C和D进行循环左移。循环左移后
24、的C和D部分作为下一轮子密钥的输入数据,直到16轮全部完成。将C和D部分合并成为56位的数据。16位子密钥生成流程图如图3-2压缩型换位1初始密钥输入 C0 D0 循环左移 循环左移 C1 D1 循环左移 循环左移 Ci Di 循环左移 循环左移 C16 D16压缩型换位2 压缩型换位2压缩型换位2 1,2.,364 1,2.,3 1,2.,32828图3-2 子密钥生成流程图3. 加密算法步骤解析3.1 变换密钥3.1.1 取得密钥从输入密码中取得一个字符串长为7的密码,经过字符与二进制之间的转变,并加入偶校验位,组成64位密码Key= 3.1.2 等分密钥去除64位密码中作为奇偶校验位的第
25、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,15,7,62,54,46,38,30,22,14,6,61,53,45,37
26、,29,21,13,5,28,20,12,43.1.3密钥移位次数: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位.3.1.4 密钥的选取密钥56位到48位压缩置换表:14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10,23, 19, 12, 4,
27、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算法密钥生成需要进行16次迭代,在完成16次迭代前,循环执行2,3,4步.最终形成16套
28、加密密钥:key0 , key1 , key2 ,. key14 , key15。3.2 数据的加密操作3.2.1取得数据明文数据分成64位的数据块,不够64位的数据块以补“0”的方式填充。3.2.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,21,13,5,63,55,47,39,31,23,15,7,按照上
29、表所示把输入的64位数据的原第58位换到第一位,原第50位换到第二位,.,依此类推,最后的得到新的64位数据。3.2.3 数据扩展明文扩展置换表:32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 1312 13 14 15 16 1716 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位数据按位置等分成左右两部分:.保持left不变,根据上表把right由32位扩
30、展成48位把扩展后的48位right与第i次迭代生成的48位加密密钥进行按位异或操作( rightixor keyi)形成一个新的48位的right.3.2.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,4,9,7,2,13,12,0,5,10,3,13,4,7,
31、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
32、,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,S6:12,1,10,15,9,2,6,8,0,13,3,4
33、,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,14,2,3,12,S8:13,2,8,4,6,15,11,
34、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进制整数后,在对应的表中根据转换后整数值取得对应位置的替代值:a对应表S1,b对应表S2,c对应表S3d对应表S4
35、,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位数据的转换。3.2.5数据换位 p盒置换表16, 7, 20, 21, 29, 12, 28, 17,1, 15, 23, 26, 5, 18, 31, 10, 2, 8, 24, 14, 32, 27, 3, 9,19, 13, 30, 6, 22, 11
36、, 4, 25把1.2.4步形成的32位right根据上表进行转换:数据的原第16位换到第一位,原第7位换到第二位,.,依此类推,最后得到新的32位数据。3.2.6 交换数据把right 和left按位异或后的值赋给right,然后将本轮输入的原始right值赋给left。3.2.7迭代DES算法需要进行16次迭代,在完成16次迭代前,把第i-1次得到的的left和right的值作为第i次的输入数据,重复1.2.3-1.2.6的步骤,但是有一点要记住:在步骤1.2.3中第i次迭代要选择第i次迭代生成的密钥与数据进行按位异或。3.2.8数据整理明文末置换表40,8,48,16,56,24,64,
37、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位换到第一位,原第8位换到第二位,.,依此类推
38、,最后的得到新的64位。Data即为密文。3.3 优点与缺点1.产生密钥简单,但密钥必须高度保密,因而难以做到一次一密。2.安全性,DES的安全性依赖于密钥的保密。攻击 DES 的主要形式被称为蛮力的或彻底密钥搜索,即重复尝试各种密钥直到有一个符合为止。如果 DES 使用 56 位的密钥,则可能的密钥数量是 2 的 56 次方个。随着计算机系统能力的不断发展,DES 的安全性比它刚出现时会弱得多,然而从非关键性质的实际出发,仍可以认为它是足够的。3速度较快,但密钥位数少,为保证安全性,使运算代价很高,尤其是速度较RSA算法快几个数量级,论文核心内容AES是美国国家标准技术研究所NIST旨在取代
39、DES的21世纪的加密标准。基本要求是,采用对称分组密码体制,密钥长度的最少支持为128、192、256,分组长度128位, AES加密数据块大小最大是256bit,但是密钥大小在理论上没有上限。AES加密有很多轮的重复和变换。对称加密算法的优点:加密效率高,密钥比较短,可以用来构造各种密码机制,可以用来建造安全性更强的密码。对称加密算法的缺点:通信双方都要保持密钥的秘密性,在大型网络中,每个人需持有许多密钥,为了安全,需要经常更换密钥。3.4 本章总结本章详细列出了DES加密算法的步骤:主要包括子密钥的生成过程和加密算法的主流过程。其中,子密钥的生成主要依靠置换和移位完成,最终生成16个子密
40、钥,为主流程的加密实现做准备。主流程加密算法主要包括置换,扩展,压缩,16次循环,逆置换等实现整个流程,最后,对此加密算法的优点和缺点作了讨论。第四章 设计实现1. 论文所涉及的平台4.1 MATLAB介绍MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。基本功能:MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据
41、可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应软件中数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连Matlab开发工作界面接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分
42、析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。(1)友好的工作平台和编程环境MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件
43、,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。 (2)简单易用的程序语言Matlab一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输
44、出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C+语言基础上的,因此语法特征与C+语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。(3)强大的科学计算机数据处理能力MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研
45、和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C+ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。4.2 DES加密过程图示4.2.1 输入有误时界面提示明文数据data,密钥keyword
46、 至少有一个为空时,运行结果出现提示;data cannot be empty/ keyword cannot be empty;(图4-1,图4-2,图4-3)图4-1 明文,密钥均为输入时界面图4-2 密钥未输入时界面图4-3 明文未输入时界面4.2.2 输入无误时,输出正确答案明文数据data,密钥keyword 输入任意字符串,运行结果 Result端输出合法结果如图4-4,图4-5,图4-6.图4-4 密钥,明文输入正确时界面图4-5 明文,密钥任意输入时界面1图4-6 明文,密钥任意输入时界面24.3 测试分析经过不断的测试与修改,该程序算法实现步骤是基于MATLAB实现,程序已经
47、可以很好的满足课程设计的要求,所预计的各功能都能实现,比如说:a.本程序可以加密1-4096个字符的任意长度字符串b.如果密钥或者明文为空,程序将会出现提示用户输入.c.加密结果将用16进制字符显示.4.4 本章总结本章主要是DES算法基于MATLAB平台的实现,包括MATLAB介绍,用户界面设计,界面化处理,基于此平台下DES加密算法运行成果,算法中主要函数讨论,相同课题优秀作品讨论。结 论毕业设计作为对在校大学生最后一次知识的全面检验,是对学生基本知识、基本理论和基本技能掌握与提高程度的一次总测试。大学生在学习期间,已经按照教学计划的规定,学完了公共课、基础课、专业课以及选修课等,每门课程
48、也都经过了考试或考查。学习期间的这种考核是单科进行,主要是考查学生对本门学科所学知识的记忆程度和理解程度。这次论文让我充分了解到密码学的应用有多么重要和广泛,对于对称密码体制也有了一定的了解,虽然我的设计并不是很好,但是我会努力使自己更加优秀,对于密码学的学习也会不断的持续下去,并且尝试使用其他编程工具实现对称密码体制。运用自己扎实的基础知识和专业知识,不断开拓,对人类未知的领域大胆探索,不断向科学高峰攀登。在此要感谢我的指导老师武斌老师对我悉心的指导,感谢老师给我的帮助。在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,三
49、收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,学会对今后的学习工作生活有非常重要的影响。而且大大提升了动手的能力,使我充分体会到了在创作过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西时这次毕业设计的最大的收获和财富,使我终身受益。 参考文献1 Marc.网络安全与数据完整性指南M.北京:机械工业出版社,1998.2 刘卫国.科学计算与MATLAB语言M.吉林:中国铁道出版社,2002.66-68.3 刘国钧,陈绍业,王凤翥.图书馆目录M.北京:高等教育出版社,2012.15-18.4贾晶.安全与保密M.
50、北京:清华大学出版社,1982.5Willian Stalling.密码编辑学与网络安全M.北京:电子工业出版社,1999.6Silvano Gai. IPv6网络互联与cisco路由器.北京:机械工业出版社,2000.7 Atul Kahate.密码学与网络安全M.金名等译。北京:清华大学出版社,2009.81.8 数据加密技术./exam/2009/1002/cnko.html,2009.11-1.9 王育民,刘建伟.通信网的安全理论与技术M.西安:西安电子科技大学出版社,1999.10 刘淑玲编著.应用密码学.北京:清华大学出版社,2004.11-
51、19.11 王沫然.MATLAB6.0与科学计算M.深圳:电子工业出版社,2003.95-98.12 冯登国,裴定一密码学引导M.北京:科学出版社,1999.13周斌,利用汇编语言实现DES加密算法J.单片机与嵌入式系统应用.2002.14卢开澄.算法与复杂性M.北京高等教育出版社,199515数据加密技术,./exam/2009/1002/cnko.Html,2009-11-116R Gennaro., V Shoup.,”DES-Based Underniable Signatures,Journal of Cryptology,2000,Vol 1
52、3,No.4,pp 397-41617Sweetmam D.see MIPS Run linux.San Francisco:Morgan Kaufmann,2007.18Rigney C,Rubens A, Simpon W, etal.RADIUS.RFC2138,1997-04.致 谢感谢导师武斌老师的关心、指导和教诲。武斌老师在指导论文中严谨的态度让我折服,让我的论文进度井然有序的进行,老师的解答细致入微,老师的点评认真负责。武斌老师追求真理、献身科学、严以律己、宽以待人的崇高品质对我来说将是永远的鞭策。感谢我的同学和朋友们对我的关心和帮助。感谢校图书馆提供的好的学习环境和查阅资料的方
53、便,谢谢。附 录:基于Matlab的对称加密算法DES程序function varargout = endes(varargin)% ENDES M-file for endes.fig% ENDES, by itself, creates a new ENDES or raises the existing% singleton*.% H = ENDES returns the handle to a new ENDES or the handle to% the existing singleton*.% ENDES(CALLBACK,hObject,eventData,handles,.
54、) calls the local%function named CALLBACK in ENDES.M with the given input arguments.% ENDES(Property,Value,.) creates a new ENDES or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before endes_OpeningFunction gets called. An%unrecognized propert
55、y name or invalid value makes property application% stop. All inputs are passed to endes_OpeningFcn via varargin.% See GUI Options on GUIDEs Tools menu. Choose GUI allows only one% instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help endes% Last Modified by GUIDE v2.5 28-May-2011 12:24:14% Begin initialization code - DO NOT EDIT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026维修人员面试题目及答案
- 2026现场工人面试题及答案
- (2026年)青岛市劳动合同书范本
- 《辐射型货物和(或)车辆检查系统》
- 2025-2026学年江西省抚州市崇仁县三年级数学下学期期中复习检测试题(含答案)
- 株洲市教育局直属学校招聘教师笔试真题2025
- 福建泉州经济技术开发区社区卫生服务中心招聘笔试真题2025
- 苏州市吴中区教育系统招聘教育人才考试真题2025
- 2025-2026学年江苏省淮安市数学四下期末检测试题含解析
- 2027届四川省遂宁市高三第一次调研测试物理试卷(含答案解析)
- 2026年4月自考08680欧洲文化入门试题试题及答案
- (2026年)如何早期识别儿童危重症
- 雨课堂学堂在线学堂云《人工智能与创新(南开)》单元测试考核答案
- 2026上半年四川成都职业技术学院编制外(考试)招聘30人笔试参考试题及答案解析
- 《信息通信工程建设与管理》全套教学课件
- GA/T 2336-2025法医临床学人体体表损伤检验规范
- 2026年西藏高考化学真题试卷(新课标卷)(+答案)
- 湖北邮政集团招聘笔试题库2026
- 私人财富传承课件
- 甲状腺恶性肿瘤的护理查房
- 冷墩模具加工流程
评论
0/150
提交评论