对称密码体制DES及其MATLAB实现.docx
- 文档编号:9738331
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:37
- 大小:289.88KB
对称密码体制DES及其MATLAB实现.docx
《对称密码体制DES及其MATLAB实现.docx》由会员分享,可在线阅读,更多相关《对称密码体制DES及其MATLAB实现.docx(37页珍藏版)》请在冰豆网上搜索。
对称密码体制DES及其MATLAB实现
对称密码体制DES及其MATLAB实现
第一章课题的研究背景和意义
1.遗传算法的发展及国内外的研究现状
从Holland教授基础遗传算法的思想到现在,遗传算法的发展不过才40多年的历史,总的来说,遗传算法的发展历史可以分为以下阶段:
20世纪70年代初Holland教授首次提出遗传算法的思想和基本原理,奠定理论基础。
1975年他出版了《自然系统和人工系统的自适应性》一书,该书主要论述遗传算法和人工系统的关系。
80年代,他用遗传算法第一个实现了机器学习系统,开创算法学习的新篇章。
1.1遗传算法的研究背景
遗传算法(GeneticAlgorithm,GA)[.]是由美国Miehigan大学J.H.Holland教授于1975年首次提出的。
它遵循Darwin的进化论及Mendel遗传学说,在数学优化算法的基础上,加入自然界的遗传和自然进化选择机制,具有全局优化能力,是一种模仿生物进化的随机搜索算法。
遗传算法的处理对象并不是相关参数本身,而是参数编码后的个体。
它将问题的可能解表示为染色体,用适应度函数对搜索空间的解进行评价,然后按照遗传学规律进行选择、叉和变异操作,直到达到终止条件为止。
本质是一种求解问题的高度并行性全局搜索算法。
遗传算法的优化思想,使它能够在搜索过程中,自动获取和积累有关搜索空间的知识,并自适应的控制搜索过程,在全局范围内求得最优解。
由于遗传算法并不要求对求解问题有深入的了解,且具有很强的鲁棒性,使得遗传算法能够广泛地应用于很多学科,尤其是对一些NP难问题的求解,表现出优异的性能。
1.2遗传算法的研究发展
20世纪60至70年代兴起阶段。
遗传算法的产生,要归功于Hofland教授对于自适应的研究。
在该研究中,他用一种新的数学模型来描述生物进化过程,得到的结果,使他意识到这种模型,不仅仅是模拟生物进化的数学模型,也是可以用来优化计算的一种数学方法。
这一切都发生在二十世纪的六十年代"Holland教授将生物进化数学模型化,发现了进化过程与自适应系统的相似性,并将其引入到该系统的设计。
Holland的学生Bagley也参与到了该研究中来"他于1967年,提出了遗传算子的雏形,并将其整理在他的博士论文中。
Holland经过了多年的研究后,在1968年的时候,提出了遗传算法的理论基了础——模式定理。
然后,1975年Holland和美国的DeJong博士作出了开创性的成绩。
Holland出专著论述了遗传算法和人工自适应系统的相似性。
而DeJong博士在模式定理的基础上,通过大量的数值试验,将遗传算子完善,建立了遗传算法的工作框架和五函数测试平台。
20世纪80年代发展阶段。
二十世纪的八十年代,分类系统(Classifiersystem),作为第一个基于遗传算法的机器学习系统,为分类器的构造提出了一个完整框架"Holland作为其实现者,揭开了在机器学习上进行遗传算法的新概念。
随后,在1989年Goldberg对遗传算法的一些相关工作进行了总结,包含了遗传算法在这一时期的主要研究成果,从理论和实际应用方面对遗传算法进行了详细的论述,使得遗传算法的基本框架得以形成"并将这些内容整理成专著《搜索、优化和机器学习中的遗传算法》,奠定了现代遗传算法的基础。
此后,许多学者经过大量的研究,对遗传算法提出了改进,得到了不少成功的遗传算法模型。
从而让遗传算法能够在更加广泛的领域得到应用。
20世纪90年代高潮阶段。
20世纪90年代,人们比较重视遗传算法的一些基本问题。
遗传算法作为一种高效、鲁棒性好的全局优化算法,它的发展极为迅速,在许多领域(如机器学习、模式识别、神经网络和工程优化等)得到了广泛的应用,引起了许多学者的注意"在最近兴起的人工生命、遗传编程、进化计算领域中,研究人员将遗传算法与计算机技术相结合,试图模拟自然界的自适应!
自组织和再生能力,设计出具有“生命”的人工系统。
遗传算法的研究领域主要包含以下几类:
遗传算法理论与技术、遗传算法优化、用遗传算法进行分类系统的机器学习"相对于生物学理论,遗传算法的数学理论基础是比较薄弱的。
虽然如此,作为一门新发展起来的学科,遗传算法还是呈现给我们一种通用的算法框架,该框架不依赖求解问题的种类,具有较强的全局搜索能力。
1.3遗传算法的国内外研究
数理方面:
作为遗传算法的提出者,Holland提出了遗传算法的基础理论:
模式定理。
而随后发展的隐含并行性定理和建筑块假设的提出,是前期算法理论上的成就,为遗传算法的发展和应用起到了至关重要的作用。
而随着研究的深入,模式理论的拓广和深入成为了理论研究的热点之一;其次,通过马氏链分析遗传算法,也成为了理论研究的一个方向。
除此之外,通过收敛理论分析遗传算法也得到了不少学者的青睐。
模式理论方面的工作,主要包括模式的进一步讨论和拓广"在这个方面,Radeliffe把模式分析进行了一般化,提出了完整的Forma分析理论。
李军等通过研究自然数编码,建立了相应的模式定理;明亮等深入研究了模式定理后,推广了模式定理,提出了子模式的存货、互补模式和模式的新建,给出了在模式的新建和存活共同作用下的模式定理。
马氏链分析方面,建立起了不同形式的模型,从各种角度刻画了遗传算法的极限行为。
其中,Goldber、Rudolph通过对标准遗传算法使用马尔可夫链进行分析,提出了最佳保留遗传算法。
在收敛理论方面,早期主要是用Holland的模式定理、隐并行性原理和积木块假说,但是,在后继的研究中,有人发现积木块假说没有给予证明,其它两个理论存在不足和不严格的地方。
徐宗本等通过研究,认为已有的关于遗传算法的收敛性和收敛速度估计的结果,具有一定的局限性。
虽然如此,Gonealves、陈国胜、王莉等对遗传算法的收敛理论和收敛速度估计进行了研究,还是取得了一定的成绩。
此外,在早期的研究中,大多数都是通过马氏链的极限理论来分析遗传算法的收敛性,而现在,用靴方法和迭代的方法,得到了比较系统的结果。
其中,徐宗本等用鞍论研究遗传算法的强收敛性,证明了不带“杰出者记录策略”的一大类常用遗传算法,能够以1的概率在有限步内收敛到全局最优解。
而在实际应用中,遗传算法的迭代次数和群体规模是有限的。
因此,这一研究成果为遗传算法的应用奠定了更为坚实的理论基础。
1.4本文主要研究内容
基通过引入生物进化的遗传、交叉、变异、选择等技术,使得遗传算法成为了一种用来寻找近似解的搜索算法。
而在生物学上,变异是对生物遗传物质核普酸的改变。
那么在遗传算法一代接一代的进化计算过程中,变异算子是用来维持种群多样性的运算。
作为遗传算法的一个基本运算,配合交叉运算,避免种群陷入局部最优。
由于函数优化是遗传算法的经典应用领域,也是对遗传算法进行性能评价的常用算例。
而且,在工程应用中,常涉及到最优化问题,对很多问题进行数学建模后,都可以抽象为一个数值函数的优化问题"因此,最后通过遗传算法在函数优化上的应用,来检验本文提出的新的遗传算法的性能。
第二章遗传算法的基本理论
1.遗传算法的基本描述
1.1遗传算法的数学模型
所谓加密,就是将正常情况下可懂的文件数据输入密码机,由密码机变成不可懂的乱码,即将“明文”变成“密文”;所谓解密,就是上述过程的逆过程,即将“密文”变成“明文”。
密码机可看作是一个用电子元件实现一种复杂数学运算的机器。
复杂数学运算可记为,这里C=密文,p=明文,k=密钥,f是密码算法。
K是自变量,C是因变量。
不同的K有不同的C,对于某个密码算法f,K的选择范围越大,C的变化就越多,这个密码算法被人破译的难度就越大,保密强度就越高。
如何评价K的选择范围大小呢?
一般是看K的位数,位数长的(如128位以上)选择范围大,位数短的(如56位)选择范围小。
一个国家的密码政策,通常是用位数长的高强度密码(位数可达)保护国家秘密,其它用于保护商业秘密。
在数据传输加密过程中,收发双方线路密码机使用的是相同的密码算法,注入了相同的密钥,发方向收方发出明文,经密码机变成密文后送上公网通信线路,到达收方后先经密码机解密再送到收方电脑上。
密文在公用通信网上传输时,如果被截收,窃密方收到的是不可懂的乱码,无法窃取信息内容。
在文件存储加密中,加密解密卡加解密采用同一种算法和同一个密钥,工作人员用电脑处理文件后先将文件加密再存入磁盘,以防窃密者盗用磁盘窃取文件。
工作人员调用该文件时,文件先经解密再从显示器上显示出来以供使用。
1.2密码体制
密码体制也叫密码系统,是指能完整地解决信息安全中的机密性、数据完整性、认证、身份识别、可控性及不可抵赖性等问题中的一个或几个的一个系统。
对一个密码体制的正确描述,需要用数学方法清楚地描述其中的各种对象、参数、解决问题所使用的算法等。
刚才讲密码原理时,收发双方密码机的密码算法一致、密钥一致,这在密码体制中叫“秘密密钥体制”或“单密钥体制”,这是一种传统的密码体制,有系统的理论研究和完善的管理机制,技术成熟,性能稳定,国内自行研制的产品安全可靠、保密强度高,一般用于文件数据加密存储和传输。
密码体制分为私用密钥加密技术(对称加密)和公开密钥加密技术(非对称加密)。
对称密码体制是一种传统密码体制,也称为私钥密码体制。
在对称加密系统中,加密和解密采用相同的密钥。
因为加解密密钥相同,需要通信的双方必须选择和保存他们共同的密钥,各方必须信任对方不会将密钥泄密出去,这样就可以实现数据的机密性和完整性。
对于具有n个用户的网络,需要n(n-1)/2个密钥,在用户群不是很大的情况下,对称加密系统是有效的。
但是对于大型网络,当用户群很大,分布很广时,密钥的分配和保存就成了问题。
对机密信息进行加密和验证随报文一起发送报文摘要(或散列值)来实现。
比较典型的算法有DES(DataEncryptionStandard数据加密标准)算法及其变形TripleDES(三重DES),GDES(广义DES);欧洲的IDEA;日本的FEALN、RC5等。
DES标准由美国国家标准局提出,主要应用于银行业的电子资金转帐(EFT)领域。
DES的密钥长度为56bit。
TripleDES使用两个独立的56bit密钥对交换的信息进行3次加密,从而使其有效长度达到112bit。
RC2和RC4方法是RSA数据安全公司的对称加密专利算法,它们采用可变密钥长度的算法。
通过规定不同的密钥长度,,C2和RC4能够提高或降低安全的程度。
对称密码算法的优点是计算开销小,加密速度快,是目前用于信息加密的主要算法。
它的局限性在于它存在着通信的贸易双方之间确保密钥安全交换的问题。
此外,某一贸易方有几个贸易关系,他就要维护几个专用密钥。
它也没法鉴别贸易发起方或贸易最终方,因为贸易的双方的密钥相同。
另外,由于对称加密系统仅能用于对数据进行加解密处理,提供数据的机密性,不能用于数字签名。
因而人们迫切需要寻找新的密码体制。
在实用的互联网络中,各用户通过加密传输可形成一个虚拟的保密互联网。
该网要由一个各用户认可的密钥管理中心来生成、管理、分发和销毁密钥,同时各用户可将自己的“公钥”也存放在密钥管理中心。
各用户需进行保密通信时,先通过公钥系统进行身份确认(这个过程中密钥管理中心可起到仲裁鉴别作用),双方确认身份后由密钥管理中心分发秘密密钥,双方用得到秘密密钥进行数据或文件的加密传输。
这种工作方式不但适用于党政机关内部,也同样适用于电子商务,但电子商务和党政机关不能使用同一个级别的密码设备,党政机关用的是“普密”设备,电子商务只能用“商密”设备,二者的保密强度是不一样的。
2.分组加密算法
2.1加密算法DES介绍
数据加密算法(DataEncryptionAlgorithm,DES)的数据加密标准(DataEncryptionStandard,DES)是规范的描述,它出自IBM的研究工作,并在1997年被美国政府正式采纳。
它很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发DES是嵌入硬件中的。
通常,自动取款机都使用DES。
DES使用一个56位的密钥以及附加的8位奇偶校验位,产生最大64位的分组大小。
这是一个迭代的分组密码,使用成为Feistel的技术,其中将加密的文本块分成两半。
使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。
DES使用16个循环。
具体来讲,DES加密原理和逻辑关系顺序的理解是基础,只有具体的全面的理解了数学原理,并能用较简单的语言描述,才是后续编程和一切工作的基础,再次,matlab语言基础知识的掌握也是实现加密算法的前提,从基本矩阵的了解,到编程语言的灵活编写,最后,matlab用户图形界面设计,版面设计,程序调试,回调函数的编写是难点也是重点,最终实现了能够任意输入明文数据和密钥,经过加密生成16位十六制密文数据。
攻击DES的主要形式被称为蛮力的或彻底密钥搜索,即重复尝试各种密钥直到有一个符合为止。
如果DES使用56位的密钥,则可能的密钥数量是2的56次方个。
随着计算机系统能力的不断发展,DES的安全性比它刚出现时会弱得多,然而从非关键性质的实际出发,仍可以认为它是足够的。
流程图如图2-1所示
图2-1DES加密算法结构框图
2.2加密算法AES介绍
AES(TheAdvancedEncryptionStandard)是美国国家标准语技术研究所用于加密电子数据的规范。
它被预期能成为人们公认的加密包括金融、电信和政府数字信息的方法。
明确地说,AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。
常用的对称加密有:
DES、IDEA、RC2、RC4、SKIPJACK算法等。
2.3本章小结
本章主要对对称加密算法理论作了系统说明,包括密码原理,分组加密原理重点讨论了对称加密算法DES的基本原理,用原理框图来详细说明整个加密流程。
第三章加密算法设计
1.数据加密过程
1.对于任意长度的明文,DES首先对其进行分组,使得每一组的长度为64位,然后分别对每个64位的明文分组进行加密。
2.初始置换:
输入分组按照初始置换表重排次序,进行初始置换。
3.16轮循环:
DES对经过初始置换的64位明文进行16轮类似的子加密过程。
每一轮的加密过程步骤如下:
①将64位明文在中间分开,划分为2部分,每部分32位,左半部分记为L,右半部分记为R,以下的操作都是对右半部数据分进行的。
②扩展置换:
扩展置换将32位的输入数据根据扩展置换表扩展成为48位的输出数据。
③异或运算:
将48位的明文数据与48位的子密钥进行异或运算。
④S盒置换:
S盒置换是非线性的,48位输入数据根据S盒置换表置换成为32位输出数据。
⑤直接置换:
S盒置换后的32位输出根据直接置换表进行直接置换。
经过直接置换的32位输出数据作为下一轮子加密过程的L部分,这32位输出数据与本轮的L部分进行异或操作,结果作为下一轮子加密过程的R部分。
然后进入下一轮子加密过程,直到16轮全部完成。
4.终结置换:
按照终结置换表进行终结置换,64位输出就是密文。
数据加密流程图如图3-1所示
图3-1数据加密过程流程图
2.子密钥的产生过程
在每一轮的子加密过程中,48位的明文数据要与48位的子密钥进行异或运算,子密钥的产生过程如下:
1.压缩型换位1:
64位密钥根据压缩型换位1置换表进行置换,输出的结果为56位。
2.将经过压缩型换位1的56位密钥数据在中间分开,每部分28位,左半部分记为C,右半部分记为D。
3.16轮循环:
C和D要经过16轮类似的操作产生16份子密钥,每一轮子密钥的产生过程如下:
循环左移:
根据循环左移表对C和D进行循环左移。
循环左移后的C和D部分作为下一轮子密钥的输入数据,直到16轮全部完成。
将C和D部分合并成为56位的数据。
16位子密钥生成流程图如图3-2
图3-2子密钥生成流程图
3.加密算法步骤解析
3.1变换密钥
3.1.1取得密钥
从输入密码中取得一个字符串长为7的密码,经过字符与二进制之间的转变,并加入偶校验位,组成64位密码
Key=
3.1.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,15,7,62,54,46,38,30,22,
14,6,61,53,45,37,29,21,13,5,28,20,12,4
3.1.3密钥移位
次数:
12345678910111213141516
左移:
1122222212222221
DES算法的密钥是经过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,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套加密密钥:
key[0],key[1],key[2],….key[14],key[15]。
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,
按照上表所示把输入的64位数据的原第58位换到第一位,原第50位换到第二位,...,依此类推,最后的得到新的64位数据。
3.2.3数据扩展
明文扩展置换表:
3212345
456789
8910111213
121314151617
161718192021
202122232425
242526272829
28293031321
第一次迭代以1.2.2步中生成的newData作为输入数据,第i(i>1)次迭代以第i-1次的64位输出数据为输入数据,把64位数据按位置等分成左右两部分:
.
保持left不变,根据上表把right由32位扩展成48位
把扩展后的48位right与第i次迭代生成的48位加密密钥进行按位异或操作(right[i]xorkey[i])形成一个新的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,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,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,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,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视为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 对称 密码 体制 DES 及其 MATLAB 实现