【信息与计算科学专业】【毕业论文】混合密码体制的研究 (2)

【信息与计算科学专业】【毕业论文】混合密码体制的研究 (2)

ID:417231

大小:568.43 KB

页数:27页

时间:2017-07-31

上传者:U-944
【信息与计算科学专业】【毕业论文】混合密码体制的研究 (2)_第1页
【信息与计算科学专业】【毕业论文】混合密码体制的研究 (2)_第2页
【信息与计算科学专业】【毕业论文】混合密码体制的研究 (2)_第3页
【信息与计算科学专业】【毕业论文】混合密码体制的研究 (2)_第4页
【信息与计算科学专业】【毕业论文】混合密码体制的研究 (2)_第5页
资源描述:

《【信息与计算科学专业】【毕业论文】混合密码体制的研究 (2)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

本科毕业论文(20届)混合密码体制的研究21 摘要对称加密和公钥加密相结合的混合加密算法早已引起了很多人的兴趣,人们对混合加密算法的研究已经逐渐成熟,而且已经得到了广泛的应用.但是目前的混合加密系统,主要是技术成熟的RSA算法与对称加密算法相结合的系统,对于ECC和AES相结合的加密算法的研究还比较少.本文主要针对ECC和AES相结合的加密算法来进行研究.首先,本文对密码学做简要的概述;其次,分别对AES和ECC加密体制的数学原理、算法实现、安全性能等方面进行详细的讨论;第三,提出了AES和ECC相结合的混合密码体制,并对其安全性能和算法实现进行研究;最后,给出了该混合密码体制的一些应用,从中可以看出该混合密码体制是安全高效的,可以弥补以往密码体制的缺点.关键词:对称加密;公钥加密;EEC;AES;混合密码体制21 AbstractThehybridencryptionalgorithmofsymmetric-keyencryptionandpublickeyencryptionhasattractedinterestofmanypeople,andtheresearchofmixedencryptionalgorithmhasmaturedandhasbeenwidelyused.However,themainhybridencryptionsystematpresentisthehybridencryptionsystemofthematurealgorithm(RSA)andsymmetric-keyencryptionalgorithm.FewresearchfocusonthecombinationofECCandAESencryptionalgorithm.Inthispaper,westudyacombinationofECCandAESencryptionalgorithm. Inthispaper,wefirstlyprovidedabriefoverviewofcryptography;Secondly,wediscussedthemathematicaltheory,algorithmimplementation,securityandotheraspectsofperformanceofAESandECCencryptionsystemindetail;Thirdly,weproposedacombinationofAESandECChybridcryptosystem,anddiscusseditssafetyperformanceandtheimplementationofthealgorithm;Finally,someapplicationsofthehybridencryptionalgorithmweregiven.Thishybridencryptionalgorithmissafeandeffective,andmakeupfortheshortcomingsofthepastalgorithms. Keywords:Symmetric-keyencryption;Publickeyencryption;EEC;AES;Hybridcryptographicalgorithm21 目录摘要IABSTRACTII1前言11.1研究背景和意义11.2研究现状11.3本文的主要工作32密码学概述52.1古典密码52.1.1置换密码52.1.2代替密码52.1.3代数密码52.2对称密码62.2.1分组密码62.2.2序列密码72.3公钥密码72.4混合密码73AES和ECC密码体制93.1AES密码体制93.1.1数学原理93.1.2算法实现133.1.3安全性能143.2ECC密码体制153.2.1数学原理153.2.2算法实现163.2.3安全性能1721 4基于AES和ECC的混合密码体制184.1数学原理184.2算法实现184.3安全性能195基于AES和ECC的混合密码体制的应用216小结24参考文献25致谢2621 1前言随着现今网络特别是Internet的超高速发展,利用网络作为信息交流和信息处理变得越来越普遍,社会的传统事务和业务动作模式受到前所未有的冲击.同时随着通信的网络化,数字化,智能化的加快,无论是国家政府还是企业都正融入这场网络革命中,在其中它们越来越多的利用计算机网络来进行数据存储,传递和交换,由此而产生的信息的安全问题正在逐步被人们所关注.这些问题集中体现在:网络的身份认证(确认网络客户的真实身份),信息和数据的保密性(个人或系统机密信息和数据保护),信息和数据完整性(防止不合法的数据修改),不可抵赖性(网络环境下行为的事后的不可抵赖).为了确保信息系统的安全性,我们需要从整体考虑,如果说硬件结构的改善优化以及操作系统的安全是系统安全的基础,密码技术就理所当然的成为了系统安全理论的核心.1.1研究背景和意义椭圆曲线加密算法与量子加密、混沌加密[1]是当今密码学中的三大研究热点.其中椭圆曲线加密算法的是基于椭圆曲线离散对数问题的公钥加密算法,该算法具有安全性能高、计算量小、处理速度快、存储空间占用小和带宽要求低等特点,有着广泛的应用前景,目前已经有一些标准文档和产品问世.目前,椭圆曲线加密体制在电子商务、数字现金、分布式考试、软件注册保护、群签名、电子选举、电子公文、代理数字签名、不可逆签名等方面的应用已经成果斐然.21世纪是信息的智能时代,随着人们对信息安全保护需求的提高,椭圆曲线必将在人们社会生活和工作的中得到更广泛的应用,因此,椭圆曲线密码理论的发展必将有无限的商业价值.同时,随着数字化战争序幕的拉开,将椭圆曲线密码应用在信息战的高新技术装备和通信指挥系统上已经成为必然,所以椭圆曲线密码理论还体现了巨大的军事价值.但是使用椭圆曲线加密算法一种加密方法往往得不到我们想要的结果,为了使椭圆曲线加密算法有更大的实用价值,椭圆曲线与对称加密算法相结合的混合密码体制得到了越来越多人的重视.其中使用对称加密算法中最优秀的AES算法与椭圆曲线加密算法相结合得到的混合加密算法,必然能得到很好的效果.该混合加密算法的研究可以促进椭圆曲线密码学的进一步发展,使其有更大的实用价值.1.2研究现状第六届国际密码学会议对应用于公钥密码系统的加密算法推荐了两种:21 基于大整数因子分解问题的RSA算法和基于椭圆曲线上离散对数计算问题的ECC算法.椭圆曲线加密算法是一种新兴的公钥加密算法,于1985年由N.Koblitz和V.Miler[2,3]提出.二十年来,人们对这种密码系统进行了大量的研究,结果表明,与其他几种广泛应用的公钥密码系统比起来,具有速度快、难破解、数学背景丰富等优点.椭圆曲线密码系统也是基于离散对数问题的,它用有限域上的椭圆曲线有理点群代替了大素数域上的乘法群,所以严格来讲,椭圆曲线密码系统并不是一种新的公钥密码系统.1985年将有限域上椭圆曲线有理点群应用到公钥密码系统中这思想提出后,人们的反应并不是很积极.首先,当时并没有有效的方法计算有限域上椭圆曲线的有理点的个数,这使得人们在选曲线时遇到了无法克服的障碍.其次,椭圆曲线上的点加运算过于复杂,实现起来很困难.而且当时RSA算法已经提出将近十年,技术上趋于成熟,执行效率也很高.就当时分解大整数的能力而言,只需选择不太大的模数,RSA的安全性就可以得到保证.但是,一些钟爱理论的科学家没有放弃对椭圆曲线密码系统的研究.1990年,Menezes使用了一类特殊的曲线—超奇异椭圆曲线[4],这种曲线有理点群的阶可以很容易的得到并且实现速度也很快.但是到1993年,Menezes本人和他的两个合作者发现了对这种曲线的一种有效的攻击方法,称为“MOV攻击”,这种方法可以把椭圆曲线离散对数问题化约到某个次数较低的域上,从而在多项式时间内求解.但与此同时,椭圆曲线上有理点个数的计算问题得到了很大的突破.1989到1992年间,Atikin和Elkie对1985年提出的Schoof算法[5]作出了重大改进,到1995年,人们在这一问题上取得的成就己经达到密码学上的实用标准了.另外,由于这一时期计算机软件和硬件技术的突飞猛进,椭圆曲线点加也可以很容易的实现了.1998年以后,ANSI,IEEE,ISO,NIST等国际组织陆续地将椭圆曲线密码系统列为标准,2000年,Koblitz,Menezes和Vanstonc等大师对椭圆曲线密码系统的整体发展状况做了客观的分析,为其商业应用打下了坚实的基础.近年来国外对椭圆曲线密码研究主要在其应用上.其中最成功的是Certicom公司.目前己授权300多家企业使用ECC密码技术,包括Cisco系统有限公司、摩托罗拉、Palm等企业.1995年开始,以ScotiVanston为首的加拿大Waterloo大学的几位密码学家成立了Certicom研究小组,Certicom以推动椭圆曲线密码在商业领域内的广泛应用为主要目标,经过十多年的研究,Certicom开发出了在商业领域内高效、安全、低成本的实现ECC技术的方法.从1997年开始,全球各大公司和机构开始采用Certicom的椭圆曲线公钥密码体制技术或与之建立战略联盟.但是Certicom公司的产品和相关技术资料对中国是禁运的.21 1986年曾肯成教授首先在中国科学院研究生院DCS中心组织了“椭圆曲线密码ECC”讨论班,对它的理论和算法进行了深入的分析.在椭圆曲线密码算法方面的研究已达到国际先进水平.截止到2002年,国家商用密办已认定了至少5个商用椭圆曲线密码算法,并且开始制订椭圆曲线密码算法的国家标准.高级数据加密标准AES,以其算法设计的简洁、高效、安全令世人关注.AES一直受到世界各国密码机构和专家的强化攻击.但是,目前尚未存在对完整对AES算法的成功攻击,只提出了几种对减少轮数的简化算法的攻击方法.最有名的当数密码设计者自己(JoanDaemen和VincentRijmen)提出的Square攻击[6].国内对AES算法研究分析的热情不亚于国际同行.早在AES终选算法确定之前,中国科学院软件研究所研究员吴文玲等人就深入分析了Rijndael算法的密钥生成过程,使用能量攻击对三种密钥长度的算法进行分析.武汉大学博士后曾祥勇等人用布尔函数的迹表示给出置换函数的表达式,对由幂函数合成可逆仿射变换而产生的一类S盒间的关系进行了研究.国防科技大学博士冯国柱等人对Rijndael算法作了变动和改进,使新算法在不降低抗差分攻击性能的情况下提高统计效果,并可部分抵抗Square攻击,代价是牺牲少许密钥装填速度.由目前的现状可知,ECC加密算法,无论从安全性,运行速度上都比其他的公钥加密算法优秀许多,但是,比起对称加密算法来,ECC仍然存在算法复杂,加密数据的速度和效率较低的缺点,同时椭圆曲线算法的研究和应用同RSA等相比还不够成熟.而且单独使用椭圆曲线加密不会取得很好的效果.由于对称加密算法拥有算法简单,加密速度快,效率高的特点,如果与公钥加密算法相结合得到一种混合加密算法,该算法可以将两种加密算法的优点结合起来,将会带来巨大的商业价值.将对称加密和公钥加密相结合的混合加密算法早已引起了很多人的兴趣,而且人们对混合加密算法的研究已经逐渐成熟,而且已经得到了广泛的应用.但是目前的混合加密系统,主要是技术成熟的RSA算法与对称加密算法相结合的混合加密系统,对于ECC和AES相结合的加密算法研究还比较少.1.1本文的主要工作第一章,前言:首先介绍论文的大背景与应用意义;其次,介绍他人与本文主题相关的工作,这部分尽可能详细地介绍国内外进展.最后,介绍本文的主要工作.第二章,密码学概述:介绍古典密码,对称密码,公钥密码,混合密码.第三章,AES和ECC密码体制:重点介绍这两种密码的数学原理,算法实现,安全性能.第四章,基于AES和ECC的混合密码体制.第五章,基于AES和ECC的混合密码体制的应用.21 第六章,小结.1密码学概述密码学[7]是研究编制密码和破译密码的技术科学.研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学.2.1古典密码虽然用近代密码学的观点来看,许多古典密码是很不安全的,或者说是极易破译的.但是我们不能忘记古典密码在历史上发挥的巨大作用.另外,编制古典密码的基本方法对于编制近代密码仍然有效.2.1.1置换密码把明文中的字母重新排列,字母本身不变,但其位置改变了,这样编成的密码称为置换密码.最简单的置换密码是把明文中的字母顺序倒过来,然后截成固定长度的字母组作为密文.例如:明文:明早6点发动总攻.MINGZAOLIUDIANFADONGZONGGONG密文:GNOGGNOZGNODAFNAIDUILOAZGNIM2.1.2代替密码首先构造一个或多个密文字母表,然后用密文字母表中的字母或字母组来代替明文字母或字母组,各字母或字母组的相对位置不变,但其本身改变了.这样编成的密码称为代替密码.按代替所用的密文字母表的个数可将代替密码分为单表代替密码、多表代替密码和多名代替密码.2.1.3代数密码美国电话电报公司的GillbertVernam在191721 年为电报通信设计了一种非常方便的密码,后来被称为Vernam密码.Vernam密码奠定了序列密码的基础,在近代计算机和通信系统中得到广泛应用.Vernam密码的明文、密钥、和密文均用二元数字序列表示.设明文,密钥,密文,其中,则.(2.1)这说明要编制Vernam密码,只需要把明文和密钥表示成二元序列,在把他们按位置模2相加便可.根据式(2.1),有.(2.2)式(2.2)说明要解密Vernam密码,只需要把密文和密钥的二元序列对位模2相加便可.可见,Vernam密码的加密和解密非常简单,而且特别适合计算机和通信系统的应用.例如:明文:ABCD1000001100001010000111000100密钥:EFGH1000101100011010001111001000密文:00001000000000000010000011002.1对称密码现在,通常使用分组密码(blockcipher)或序列密码(streamcipher)实现对称密码,我们将在此讨论这两种密码.2.2.1分组密码分组密码将定长的明文块转换成等长的密文,这一过程在密钥的控制之下.使用逆向变换和同一密钥来实现解密.对于当前的许多分组密码,分组大小是64位,但这很可能会增加.  明文消息通常要比特定的分组大小长得多,而且使用不同的技术或操作方式.这样的方式示例有:电子编码本(ECB)、密码分组链接(CBC)或密码反馈(CFB).在电子编码本方式中,将每个明文块用同一个密钥一个接一个地进行加密;在密码分组链接方式中,为了增加复杂度,每个明文块先与前一密文块进行“异或”运算.“输出反馈”方式(OFB)类似CBC方式,但是进行“异或”的量是独立生成的.CBC不仅被广泛使用在例如DES(qv)等中,而且21 这种方式也被密码术相关的技术性方面的相应书籍中深入讨论了.  迭代的分组密码安全性提高了,因为它是那些其在加密过程中经过多次循环的密码.在每次地循环过程中,我们可以从初始密钥派生出的子密钥(通过特殊的函数)来进行适当的变换.该附加的计算需求必然会影响可以管理加密的速度,因此在执行速度和安全性需要之间必然存在着一种平衡关系.天生掉馅饼是不可能的,密码术也是这样;与其它地方一样,有一部分应用适当方法的技巧中是来源于对需要进行的权衡以及它们与需求平衡的关系如何的理解.分组密码包括DES、IDEA、SAFER、Blowfish和Skipjack,最后一个是“美国国家安全局(USNationalSecurityAgency,NSA)”限制器芯片中使用的算法.2.2.1序列密码比起分组密码,序列密码是十分快速的,尽管序列密码可以和某些方式下工作的一些分组密码(如CFB或OFB中的DES)一样有效地运作.序列密码作用于由若干位组成的一些小型组,通常对它们逐位应用“异或”运算的密钥来自一个称为密钥流的一个位序列.也存在着基于一种称作“线性反馈移位寄存器(LinearFeedbackShiftRegister,LFSR)”的机制(该机制生成一个二进制位序列)的序列密码.序列密码是由一种专业的密码,Vernam密码(也称为一次性密码本(one-timepad)),发展而来的.序列密码的示例包括RC4和软件优化加密算法,以及Vernam密码或一次性密码本的情形.2.1公钥密码公开密钥密码的基本思想是将传统密码的密钥一分为二,分为加密钥和解密钥,用加密钥控制加密,用解密钥控制解密,而且有计算复杂性确保有加密钥在计算上不能推出解密钥.这样,即使是将公开也不会暴露,也不会损害密码的安全.于是便可将公开,而只对保密.由于是公开的,只有是保密的,所以便从根本上克服了传统密码在密钥分配上的困难.目前世界公认的比较安全的公开密钥密码有基于大合数因子分解困难性的RSA密码类和基于离散对数问题困难性的ELGamal密码类(包括椭圆曲线密码).2.2混合密码在对称加密体制中,使用同一个密钥对数据进行加、解密,21 它具有运算开销少、速度快、便于实现等优点,但在网络传输过程中,密钥容易泄露.另外如果网络上有n个用户需要互相传输加密数据,则需要n(n-1)/2个密钥,从而使得密钥的分发和管理比较困难.在非对称加密体制(公钥加密体系)中,密钥被一分为二,所以数据加、解密使用的密钥是不同的,而且由计算复杂性确保由加密钥在计算上不能推出解密钥.这样在实际的应用当中,用户即使将加密密钥(公钥)公开,也不会暴露解密密钥(私钥),从而使得公钥密码体系不仅从根本上克服了传统密码在密钥分配上的困难从而能适应网络的开放性要求,而且能方便得实现身份验证和数据签名等功能,是目前电子商务等技术的核心基础.但是,相对于对称加密算法来说,公钥加密不仅算法比较复杂,而且实现的速度比较慢、效率也比较低.所以一般不适合用来加密大块的数据,通常用在传输密钥和数字签名等方面.由于对称密码和公钥密码都有其局限性,而通过另一种密码体制可以弥补各自的局限性.所以将两者相结合,就形成一种全新的密码体制—混合密码体制,即,报文数据用对称加密算法来加密,数字签名和对称加密算法过程中所使用的加密密钥的数字信封用公钥加密算法来生成,这样不仅完成了数字签名,而且数据在网络传输过程中的安全性又能够得到保障.3AES和ECC密码体制3.1AES密码体制美国政府于1997年开始公开征集新的数据加密标准算法AES,以取代199821 年底废止的DES.经过三轮筛选,最终选出一个算法作为AES.2000年10月2日美国政府正式宣布选中比利时密码学家JoanDaemen和VincentRijimen提出的一种密码算法RIJNDAEL作为AES.2001年11月26日,美国政府正式颁布AES为美国国家标准(FISTPUBS197).这是密码史上的又一个重要事件,世界各国都高度重视这一事件,目前AES已经被一些国际标准化组织(ISO,IETF,IEEE802.11等)采纳作为标准.RIJNDAEL算法之所以能够最终被选为AES的原因是其安全、性能好、效率高、实用、灵活.3.1.1数学原理RIJNDAEL算法是一个数据块长度和密钥长度都可变的分组加密算法,其数据块长度和密钥长度都可独立地选定为大于等于128位且小于等于256位的32位的任意倍数.而美国颁布AES时却规定数据块的长度为128位、密钥的长度可分别选择128位,192位或256位.RIJNDAEL算法仍然采用分组密码的一种通用结构:对轮函数实施迭代的结构.只是轮函数结构采用的是代替/置换网络结构(SP结构),没有采用DES的Feistel结构.RIJNDAEL的轮函数有以下三层组成:非线性层:进行非线性S盒变换ByteSub,由16个S盒并置而成,起混淆的作用.线性混合层:进行行移位变换ShiftRow和列混合变换MixColumn以确保多轮之上的高度扩散.密钥加层:进行轮密钥加变换AddRoundKey,将轮密钥简单的异或到中间状态上,实现密钥的加密控制作用.1.状态在RIJNDAEL算法中,加解密要进过多次数据变换操作,每一次变换操作产生一个中间结果,称这个中间结果叫做状态.各种不同的密码变换都是对状态进行的.把状态表示为二维字节数组(每个元素为一个字节),它有4行,Nb列.Nb等于数据块长度除以32.数据块长度128时,Nb=4.数据块长度为192时,Nb=6.数据块长度为256时,Nb=8.因为状态数组有4行,每个元素为一个字节,所以状态的每列便为一个四字节的字.有些密码变换是对字节进行的,有些密码变换是对字进行的.例如,数据块长度为128的状态如表3.1所示.表3.1数据块长度为128的状态21 在进行加密处理时,数据块按列优先的顺序写入状态,即按,,,,,,,,,,,,,,,的顺序写入状态中.在加密操作结束时,密文按同样的顺序从状态中取出.类似地,密钥也可表示为二维字节数组(每个元素为一个字节),它有4行,Nk列.Nk等于密钥块长度除以32.密钥长度为128的二维字节数组如表3.2所示.密钥也是按列优先的顺序存储到密钥二维字节数组中,即按,,,,,,,,,,,,,,,的顺序存储到密钥二维字节数组中.表3.2密钥长度为128的密钥二维字节数组RIJNDAEL算法的迭代轮数Nr由Nb和Nk共同决定,具体取值见表3.3.1.轮函数RIJNDAEL加密算法的轮函数采用代替/置换网络结构(SP结构),由S盒变换ByteSub、行移位变换ShiftRow、列混合变换MixColumn、轮密钥加变换AddRoundKey组成.用伪c语言可写为:表3.3算法迭代圈速NrNrNb=4Nb=6Nb=8Nk=4101214Nk=6121214Nk=814141421 Round(State,RoundKey){Bytesub(State);ShiftRow(State);MixColumn(State);AddRoundKey(State,RoundKey);}加密算法中的最后一轮的轮函数与上面的标准轮函数略有不同.定义如下:FinalRound(State,RoundKey){Bytesub(State);ShiftRow(State);AddRoundKey(State,RoundKey);}容易看出,最后一圈的轮函数与标准轮函数相比,去掉了列混合变换MixColumn(State).(1)S盒变换ByteSubByteSub变换是按字节进行的代替变换,也称为S盒变换.它是作用在状态中每个字节上的一种非线性字节变换.这个变换(或称S_box)按以下两步进行:1)把字节的值用它的乘法逆来代替,其中‘00’的逆就是它自己.2)经1)处理后的字节值在进行如下定义的仿射变换:=+(3.1)值得注意的是:①S盒变换的第一步是把字节的值用它的乘法逆来代替,是一种非线性变换.②由于式(3.1)的系数矩阵中每列都含有5个1,这说明改变输入中的任意一位,将影响输出中的5位发生变化.③由于式(3.1)的系数矩阵中每行都含有5个1,这说明输出中的每一位,都与输入中的5位相关.④ByteSub变换就相当于DES中的S盒子.它为加密算法提供非线性,21 是决定加密算法安全性的关键.它是一种8位输入、8位输出的非线性变换.为了确保加密算法是可逆的,如上定义的byteSub变换必须是可逆的.(2)行移位变换ShiftRowShiftRow变换是对状态的行进行循环移位变换.在ShiftRow变换中,状态的后3行以不同的移位值循环右移.第0行不移位,第1行移字节,第2行移字节,第3行移字节.移位值,和与Nb有关,具体列在表3.4中.表3.4移位值Nb412361238134(3)列混合变换MixColumnMixColumn变换是对状态的列进行混合变换.在MixColumn变换中,把状态中的每一列看做是上的多项式,并与一个固定多项式相乘然后模多项式,其中为:.(3.2)因为与是互素的,从而保证存在逆多项式,而.只有逆多项式存在,才能正确进行解密.(4)轮密钥加变换AddRoundKeyAddRoundKey变换是利用轮密钥对状态进行模2相加的变换.在这个操作中,轮密钥被简单地异或到状态中去.轮密钥根据轮密钥产生算法通过密钥得到.轮密钥长度等于数据块长度.1.加密算法RIJNDAEL加密算法由以下部分组成:①一个初始轮密钥加.②Nr-1轮的标准轮函数.21 ①最后一轮的非标准轮函数.用伪码表示:Rijndael(State,CiperKey){KeyExpansion(CipherKey,ExpandedKey)AddRoundKey(State,ExpandedKey)For(I=1;I

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭