AES和ECC相结合的混合加密方法研究毕业论文.doc_第1页
AES和ECC相结合的混合加密方法研究毕业论文.doc_第2页
AES和ECC相结合的混合加密方法研究毕业论文.doc_第3页
AES和ECC相结合的混合加密方法研究毕业论文.doc_第4页
AES和ECC相结合的混合加密方法研究毕业论文.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AES和ECC相结合的混合加密方法的研究摘要 随着信息时代的到来,网络技术的发展和应用的范围不断扩大,对信息传输和共享的要求不断提高,当然信息在通信过程中的安全性就更尤为重要。尤其是在军事,电子政务,电子商务等实际应用中,信息安全更起着决定性的作用,而密码理论的研究和应用是信息安全技术的核心研究领域。本文将通过对(数据加密标准)DES,高级加密标准(AES),椭圆曲线密码体制(ECC),(公开密钥)RSA这些加密算法的研究和比较,提出一种将高级加密标准AES和ECC相结合的混合加密体制,来解决信息安全中密码使用过程中的速度和安全不能兼顾的问题。关键词 混合加密;信息安全;高级加密算法;椭圆曲线加密Abstract With the advent of the information age ,the development of network technology and the expand of the area of the application .Peoples requirements for the transmission and sharing of information is keep increasing .Therefore ,the safety of the information in the communication process becomes particularly important .Information security plays a decisive role especially in the military ,e-government ,e-commerce or more practical applications .The core research areas of the information security technology is cryptography theory research and application .This paper will compare Data Encryption Standard (DES), Advanced Encryption Standard(AES),RSA, Elliptic Curve Cryptosystems (ECC ),and proposes a hybrid encryption system combined with AES algorithm and a system of elliptic curve cryptography(ECC) in order to solve the problem that the speed and the security cant be ensured at the same time in the process of using the password in the information security .Key Words Mixed Encryption ,Information Security ,Advanced Encryption Standard , Elliptic Curve Cryptosystems目 录1绪论11.1研究背景及意义11.2论文的研究内容21.3论文组织结构22对称加密算法32.1对称加密算法简介32.2DES32.2.1DES算法简介32.2.2DES加密原理32.2.3DES算法总结62.3AES62.3.1AES算法简介62.3.2AES加密原理62.3.3AES算法总结113非对称加密123.1非对称密码学简介123.2RSA123.2.1RSA算法简介123.2.2RSA算法描述133.2.3RSA算法总结133.3ECC143.3.1ECC算法简介143.3.2ECC算法入门143.3.3ECC算法入门153.3.4ECC算法总结154混合加密164.1混合加密算法的提出164.2AES和ECC相结合的混合加密基本原理174.3AES与ECC相结合的混合密码算法小结175Windows Socket通信中AES与ECC混合密码体制的应用195.1程序简介195.2程序界面设计205.3主要函数描述216总结与展望226.1总结226.2展望22致 谢23参考文献24附 录251 绪论1.1 研究背景及意义随着计算机和网络的不断普及,人们对网络信息的需求和质量不断提高。信息作为一种资源,具有普遍性,共享性,增值性,可处理性和多效用性,使其对人类具有特别重要的 ,所以,保护信息的安全就尤为重要。信息安全的实质就是要保护信息系统或信息网络中的信息资源免受各种类型的威胁、干扰和破坏,即保证信息的安全性。我国改革开放带来了各方面信息量的急剧增加,尤其是最近几年,网络的信息量往往成指数增长。同时,值得我们关注的是计算机犯罪的案件数量也大量上升。信息社会还存在着很多的安全隐患,不仅仅是硬件方面的,网络作为一个大家共用共享的地方也成为犯罪的重灾区。 信息被泄露,篡改和假冒,黑客入侵,计算机病毒肆意传播严重影响到了信息社会的健康发展。而数据加密技术作为最基本的网络安全技术,不仅可以保证信息的保密性,而且可以保证数据的完整性、身份验证。抗抵赖性。1目前流行的加密系统可以分为对称加密系统,非对称加密系统和混合加密系统。对称加密算法常用于直接对明文消息的加密,保护数据的机密性,例如经典的DES算法。DES已经使用30多年了,现在已广泛应用于计算机通信中常用的加密方法。但是,随着计算机运算速度越来越快,它的安全性受到了威胁。AES加密算法是2000年后美国国家标准与技术研究所(NIST)推行的新的数据加密标准,安全性有了极大的提高,并由于它的高效性,易用性和灵活性迅速得到大家的认可。非对称加密算法中最经典的要算RSA算法了,RSA算法的理论根据是将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难。RSA算法提出已20多年,经历了时间的考验,目前已成为使用最广泛的公钥加密算法。近些年,通过科学家们对椭圆曲线理论的不断研究,提出了 ECC加密算法,相比RSA算法更为简洁,高效,安全,并迅速在通信网身份认证与密钥分配方案中受到青睐。虽然前面提到的对称加密方法和非对称加密方法各有优点,当然,也各有不足。对称加密算法拥有算法简单,加密速度快,效率高的特点,但也存在着对密钥的管理以及密钥传输过程中的安全性等问题。非对称加密拥有密钥不公开,极高的安全性的特点,但也存在着加解密时间长,速度慢等缺点。故而,提出混合加密方法该方法可以将两种加密算法的优点结合起来,将会对通信的安全性进一步提高。目前较为流行的是DES和RSA相结合的混合加密体制,对于ECC和AES相结合的混合加密方法的研究还较少。1.2 论文的研究内容本文在对当前主要密码算法研究的基础上,通过对DES、AES、RSA、ECC算法的分别学习和讨论,最终选择了AES和ECC相结合的混合加密方法。本人主要做了如下工作:(1) 对流行的对称加密算法进行了比较,选择了速度快,加密强度高的AES算法,用于对数据流的加密和解密。(2) 对流行的非对称加密算法进行了比较,选择了相对速度较快,安全性较高的ECC算法,进行对公钥的加密和解密工作。(3) 基于上面两点的研究,使用AES和ECC相结合的混合加密算法,并应用于点对点通信系统中,加以应用。1.3 论文组织结构第一节 介绍论文的写作背景,目的及论文的研究内容。第二节 介绍了主要的几种对称加密算法,并加以比较。第三节 介绍了主要的几种非对称加密算法,并加以比较。第四节 介绍了混合加密体制,并提出AES和ECC混合加密体制。第五节 AES和ECC混合加密在点对点通信中的应用。第六节 总结与展望。2 对称加密算法2.1 对称加密算法简介对称加密算法是指采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,也称为单密钥加密。明文P的加密过程Ek和解密过程Dk使用同一个密钥K,并具有Dk(Ek(P)=P的特性。使用密钥K解密使用密钥K加密明文P 密文 明文 Ek(p) Dk(Ek(p)=p 图2.1 对称加密结构图对称加密的优点在于其算法实现后的效率高,速度快,所以非常普及,这类算法典型的代表是DES算法。但这种算法最大的问题是网络环境下密钥的分发和管理较为复杂。例如有N个用户,则需要N*(N-1)/2个密钥,并且不能实现数字签名,密钥很有可能被盗用,而造成虚假信息的读取。以下将对经典DES算法,和AES算法进行讲解。2.2 DES2.2.1 DES算法简介DES,即Data Encryption Standard 数据加密标准。美国国家标准局于1977年把DES作为非机要部门使用的数据加密标准,三十年来,DES加密一直活跃在加密领域,并扮演着重要的角色。目前,DES已成为计算机通信最常用的加密算法。DES是一个分组加密算法(即将数据分块),使用56位密钥以及8位奇偶校验位共64位分组对数据加密。2.2.2 DES加密原理 首先,将待加密的数据分成64位的数据块,当数据块不足64位的整倍数时,应当进行填充。假设明文 M=“m1m2m3.m62m63m64”,密钥 K=“k1k2k3.k54k55k56”。将密钥第8,16,24.64位处添加奇偶校验位构成64位的K。(1) 对文M进行初始置换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输出结果为:左32位 L0=m58m50m42.m24m16m8右32位R0=m57m49m41.m23m15m7(2) 将K进行密钥置换157,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,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,464位输入,56位输出,左28位C0,右28位D0。因为是第一次迭代,把C0 D0循环左移1位得到C1D1。16次迭代,16次循环左移,循环左移位数如下表:1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1图2.2 循环左移位数表(3) 将C1D1串联得56位,再进行密钥置换2 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此时得到48位的子密钥K1。并将C1D1串按表左移一位生成C2D2。同理进行步骤3知道计算出16个子密钥K1K2K3.K16。(4) 将32位的R0进行扩展置换得到48位的E(R0)。 32,1,2,3,4,5, 4,5,6,7,8,9, 8,9,10,11,12,13,12,13,14,15,16,17,16,17,18,19,20,21,20,21,22,23,24,25,24,25,26,27,28,29, 28,29,30,31,32,1(5) 将E(R0)与子密钥K1进行异或得到A。将A分为6位一组,共8组,分别通过S1S2.S8盒变换。通过变换产生4*8位共32位数据B。图2.3 S盒并进行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,4,25得到L16R16为输出,并与L0进行异或得到D32。(6) R0 D32连接成64位字符串,回到第一步,进行16轮。(7) 导出的64位串,进行最后置换 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即得到最后的密文C。DES解密过程是一样的,区别仅在于先用子密钥K16,K15,K14.K1。22.2.3 DES算法总结DES加密算法自问世以来,已有30余年,成为密码界研究的重点,并经受住了科学家的不断研究和破译。但是,当今计算机速度越来越快,1997年,制造一台用于DES解密的专用机的费用降到十万美元左右,破解时间为6小时。而在21世纪的今天破译成本更低,DES已经不再安全。56位的DES密钥严重影响了它的保密强度。而且由于DES算法完全公开,其安全性完全依赖于对密钥的保护,必须有可靠的信道来分发密钥,不适合在网络环境下单独使用。2.3 AES2.3.1 AES算法简介随着计算机和通信技术的发展,传统的DES算法已经不能够满足现在安全的需要,为了满足更高安全的的要求,1977年4月NIST向世界征集AES(Advanced Encryption Standard)即高级加密标准。2000年10月NIST宣布Rijndael算法当选AES,成为新一代加密标准。该算法是迭代分组密码算法,支持128bits , 192bits,256bits分组和密钥,是一种公开密钥的对称加密算法。2.3.2 AES加密原理AES加密总体流程如图所示,读进明文读进密钥产生轮子密钥AddRoundKey 变换轮变换 Substitute bytes(); Shift rows(); Mix columns(); AddRoundKey(); Nr-1最后轮变换 Substitute bytes(); Shift rows(); AddRoundKey(); 形成密文,加密结束图2.4 AES加密总体流程图其中Nr表示对一个数据分组加密的轮数,每一轮都需要一个和输入分组具有相同长度的扩展密钥参与。记Nb为分组状态,Nb=分组长度/32。在AES加密算法中,通常把密钥放在一个四行的矩阵中,行数记为Nk。则Nr与Nb,Nb有如下关系:图2.5 加密轮数表此处以128位分组来讲解AES加密。即首先读取16字节明文以列优先储存在char state4中。(1) 字节变换Substitutebytes()程序示例:void AES:SubstituteBytes(unsigned char state4)int r,c; for(r=0;c4;c+) Staterc=Sboxstaterc;图2.6 字节替换置换表(2) 行移位算法ShiftRows()程序示例:void AES:ShiftRows(unsigned char state4)unsigned char t4;int r,c;for(r=1; r4; r+)for(c=0; c4; c+)tc = stater(c+r)%4;for(c=0; c4; c+)staterc = tc;04812591311014261537110481215913261014371115循环左移一字节 循环左移两字节循环左移三字节图2.7 AES的行移位变换(3) 列混淆变换MixColumns()这个步骤是对state的列进行复杂的转换,每一列的4个元素与一个多项式相乘,并将这一列的每一个元素扩散到这一列的全部4个元素。数学表示为:图2.8 AES的列混淆变换(4) AddRoundKey轮密钥加变换前面讲到明文被放在一个state4中,这里密钥也放在key4中。程序示例:void AES:AddRoundKey(unsigned char state4,unsigned char k4) int r,c;for(c=0; c4; c+)for(r=0; r4; r+)staterc = krc;(5) KeyExpansion密钥扩展程序示例:void AES:KeyExpansion(unsigned char* key, unsigned char w 4*11, int Nr)for(int j=0;jNr;j+) wj=(k4*j,k4*j+1,k4*j+2,k4*j+3);for(j=Nr;j4*(Nr+1);j+) Char temp=wj-1; if(j%Nr=0) tempt=SubstituteBytes(temp); wj=wj-Nrtempt; 第一个密钥是它本身;第二个密钥是以4字节为单位逐字变换得来的。第一个字循环左移一个字节,然后按前面字节替换按步骤字节变换,再加一常量或进行异或。721 AES解密算法与加密算法不同,基本运算除AddRoundKey(轮密钥加)不变外,其余均需逆变换。其中逆置换表如下图。图2.9 字节替换逆置换表2.3.3 AES算法总结通过了解AES加密解密的过程,可以更清晰的了解AES算法。AES算法消除了DES算法弱密钥的存在。并且,经过验证,AES算法能有效的抵抗任何目前已知的攻击算法的攻击。AES算法以其高安全,高性能,高效率,易用和灵活等优点,而受到业界的认可。但是 AES 算法作为一种对称加密算法,也存在着严重的不足,比如通信双方需要事先交换密钥,密钥容易泄漏而不能确保安全性和密钥存储、使用和管理困难等问题。所以单独使用AES并不能确保通信中的完全安全,所以提出混合密码体制,来弥补其不足。3 非对称加密3.1 非对称密码学简介1976年,美国学者Dime和Henman为解决信息密钥公开传送和管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。相对于“对称加密算法”这种方法也叫做“非对称加密算法”。与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫做非对称加密算法。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。原文私钥解密公钥加密明文 密文 图3.1 非对称加密结构图非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要,但加密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密。经典的非对称加密算法如RSA算法安全性都相当高。非对称加密的典型应用是数字签名。3.2 RSA 3.2.1 RSA算法简介RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。3.2.2 RSA算法描述(1) RSA算法密钥生成首先选取两个大素数p,q。然后计算出n=p*q,m=(p-1)*(q-1),选择一个比n小且与m互质的数e(1除外)。求出数d,使ed-1能被m整除。即得到:公钥为Pu=e,n 私钥为Pr=d,n(2) 加密变换。使用公钥Pu加密明文m,即C=memod n。关于明文的分块,每个块的长度不大于logn2,然后对每个明文块m依次进行加密变换和解密变换。(3) 解密变换使用私钥Pr解密密文C,即m=Cdmod n。123.2.3 RSA算法总结RSA算法目前已经是使用最广泛的公钥加密算法。从提出到现在已近20多年,经历了各种攻击考验,普遍认为目前最优秀的公钥方案之一。但RSA的缺点也很明显:1. 密钥产生麻烦,受到素数产生技术的限制,很难做到一次一密;2.分组长度太大,为保证安全,n至少也要600bits,使运算代价过高,速度较慢,且随着大数分解技术的发展,这个长度还在增加,不利于数据格式标准化;3.RAS密钥长度随着保密级别提高,增加很快,下表列出了对同一安全级别所对应的密钥长度。图3.2 同一安全级别所对应的密钥长度33.3 ECC3.3.1 ECC算法简介同RSA算法一样,ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)也属于非对称加密算法。所谓椭圆曲线指的是由韦尔斯特拉斯(Weierstrass)方程:y2+a1xy+a3y=x3+a2x2+a4x+a6。椭圆曲线理论是一个比较深奥的数学分支,已有100多年的历史,一直被作为一门纯理论学科被少数科学家掌握。20世纪80年代 Neal Koblitz和V.S.Miller把椭圆曲线群引入公钥密码理论中,提出了基于椭圆曲线的公钥密码体制ECC,取得了公钥密码理论和应用的突破性进展。20年来通过人们对他进行系统的研究,结果表明,与其他几种广泛应用的公钥加密对比起来,具有速度快,难破解,数学背景丰富等优点。3.3.2 ECC算法入门讲到椭圆曲线加密就不得不先讲什么是射影平面坐标系,射影平面坐标系就是在假设平行线在无穷远点相交所产生的对平面直角坐标系的扩展。在平面直角坐标系中点A的坐标(x,y),而在射影平面坐标系中点A表示为(X,Y,Z)其中X/Z=x,Y/Z=y。在平面直角坐标系中椭圆曲线的函数是ax2+bx2=c,而在射影平面坐标系下椭圆曲线的函数为Y2Z+a1XYZ+a3YZ2=X3+a2X2Z+a4XZ2+a6Z31415。又有运算法则:任意取椭圆曲线上两点P、Q (若P、Q两点重合,则做P点的切线)做直线交于椭圆曲线的另一点R,过R做y轴的平行线交于R。规定P+Q=R,如下图所示。则有无穷远点+p=p和p+p+p=3p。 图3.3 椭圆曲线上的加法运算如果椭圆曲线上一点P,存在最小的正整数n,使得数乘nP=O,则将n称为P的阶,若n不存在,我们说P是无限阶的。53.3.3 ECC算法入门(1) 生成密钥用户A选定一条椭圆曲线一点Ep(a,b),并取椭圆曲线上一点,作为基点G,n为G的阶数,选定一个jn(表阶数),计算出K=jG。则j为私钥,K为公钥。(2) 加密过程用户A将Ep(a,b)和点K,G传给用户B。用户B接到信息后 ,将待传输的明文编码到Ep(a,b)上一点M(编码方法很多,这里不作讨论),并产生一个随机整数r(rn)。用户B计算点C1=M+rK;C2=rG。用户B将C1、C2传给用户A。(3) 解密过程用户A接到信息后,计算C1-jC2,结果就是点M。再对点M进行解码就可以得到明文,因为C1-jC2=M+rK-k(rG)=M+rK-r(kG)=M。用户AEp(a,b)K=jGM=C1-jC2用户BC1=M+rKC2=rG Ep(a,b),K,G C1,C2图3.4 ECC加密解密流程3.3.4 ECC算法总结椭圆曲线加密体制与其他公钥密码体制相比的优点主要表现为:(1)节省存储空间:在提供相同安全级时, ECC 的系统参数和密钥长度比其它的非对称加密算法短,这可以节省较多的存储空间,使得其它程序可利用更多的存储器来完成复杂的任务。一般认为当椭圆曲线基域长度为160比特时,其安全性相当于使用1024比特的RSA,所以在某些计算能力和存储空间受限的环境下,比如智能卡,PC卡,无限设备,椭圆曲线密码系统有很明显的优势。(2)节省处理时间:因为仅仅需要更短的密钥,且加密过程没有大量的迭代过程,所以节省了处理时间。(3)可以不断增加安全性的需要,密钥位数不固定,更灵活。(4)生成公钥私钥方便。虽然ECC算法比其他非对称加密算法具有诸多优势,但ECC算法毕竟是非对称加密算法,仍然较为复杂,实现速度较慢,效率较低,一般不用于对大块数据加密,所以一般不单独使用ECC。4 混合加密4.1 混合加密算法的提出在对称加密中,使用一个密钥对数据进行加密,解密,它具有运算开销少,速度快,使用方便,易于实现等优点,但在网络传输过程中,密钥容易泄漏。另外,如果网络上有N个用户需要互相传输数据,则需要n(n-1)/2个密钥,从而使得密钥的分发和管理比较困难。在非对称加密中,对数据的加密采用不同的密钥,并且通过公钥反求私钥基本是不可能的,从而使得公钥密码体系不仅能适用网络开发性的要求,还能方便的实现签名和身份验证等功能,更加可靠。但非对称加密算法还是比较复杂的,实现速度比较慢,所以一般不用于对大量数据的加密,通常用于传输密钥,数据签名等方面。所以将要提出一种将对称加密和非对称加密混合的加密体制。混合密码体制通过结合了两种加密体制,克服了各自的局限性,从而成为人们研究的重点。随着人们对加密算法的要求提高,使用单一的加密算法已经不能满足人们的需求。AES 出现以来,依其明显的优势压倒了DES,已经开始逐渐代替 DES。同时 ECC 算法作为最优秀的公钥加密算法之一,随着人们对其研究的深入也开始渐渐代替目前市场的主流 RSA算法。但是由于两种算法的自身的局限性,影响了它们的应用范围,将两种算法结合起来,克服各自的局限性,得到的混合密码体制必将在密码学领域有着广泛的前景。6AES 和 ECC 相结合的混合加密体制由于结合了目前最优秀的两种加密算法,其主要优点有如下几点:(1) 更加安全,两种加密算法都是目前最安全的加密算法,目前都没有有效的破解它们的方法,相结合的混合加密算法必然也是无法破译的。(2) 更高效。无论是 AES 还是 ECC 都分别在对称密码体制和公钥密码体制中是最高效的。结合后的混合加密算法也同样拥有这个特点。(3) 更加灵活易用。(4) 生成密钥对时更加方便,快捷。(5) 拥有更广泛的应用前景。所以可以知道选取AES和ECC相混合的加密方式最安全和快捷。用对称加密算法AES加密明文,满足了加密过程中方便快捷的要求,用非对称加密算法ECC对密钥进行加密,从而完成数字签名,又保障了数据在网络传输过程中的安全性。4.2 AES和ECC相结合的混合加密基本原理此过程将依照与第二,三章讲到的加密过程,再次将不再具体讲解。(1) 传送过程AES 密文明文 AES加密明文 密钥Ka得到公钥Pe,和密钥KaECC密文 ECC加密 用Pe解密 公钥Pe 图4.1 AES和ECC相结合的混合加密传送流程(2) 接收过程签名信息AES 密文签名信息 均经过AES加密 Ka解密 错误,抛弃明文 明文 正确,Ka解密图4.2 AES和ECC相结合的混合加密接收流程4.3 AES与ECC相结合的混合密码算法小结AES与ECC混合密码体制的性能与其他密码体制相比,有着独特的优点,这也是我研究这几种密码体制的出发点。首先,AES与ECC混合密码体制和单一密码体制相比:AES与 ECC混合密码体制比对称密码体制提高了密钥在网络传说过程中的安全性,和减轻了对密钥管理和分配的复杂性。AES与 ECC混合密码体制比非对称密码体制减少了加密时间,减少了算法的复杂度,使整个算法更快速,更高效。其次,与RSA与DES相结合的混合加密体制,AES作为新一代的对称加密算法,拥有比DES更高的安全性和高效性,而ECC也拥有比RSA更短的密钥,更高的安全性和更快的速度。通过比较可以看出,AES和ECC相结合的混合加密体制,结合了对称密码体制和非对称密码体制的优点,在速度和效率上优于公钥加密体制,同时克服了对称加密算法中密钥管理困难,安全性低的问题,使两种算法应用更加广泛。同时,AES 和 ECC 相结合的混合加密体制无论在安全性还是在效率和实用性上都优于 DES 和 RSA 相结合的混合加密体制。所以,该混合加密体制是一种优秀的加密体制,必然有广泛的应用前景。5 Windows Socket通信中AES与ECC混合密码体制的应用5.1 程序简介首先,本程序的编写是为了加深读者对AES与ECC混合加密体制的了解,而基于Windows Socket通信是对网络中基于TCP/IP通信的最好的模拟。本例在VC+ 6.0下使用MFC编程实现了一个简单的聊天程序,采用C/S模式,分为客户端程序和服务器端程序。程序运行过程如图所示:客户端服务器端ListenConnectAccept ReceiveSendMsgReceiveSendMsg 发回签名信息,明文进行AES加密 AES加密的密钥进行ECC加密,明文进行AES加密断开连接断开连接 图5.1 程序运行流程图5.2 程序界面设计客户端:图5.2 客户端界面服务器端:图5.3 服务器端界面5.3 主要函数描述(1) ECC加密算法加密函数:ecc_private_encrypt(in,160,out,&outlen,&tg,pn,&myKey);/将in用密钥加密后存再out里,192是输入长度,输入长度的比特(长度8)不能超过比椭圆曲线的比特数/加密完成后outlen会改变为实际的输出长度解密函数:ecc_public_decrypt(out,outlen,results,&resultlen,&myKey);/解密,参数作用同上,输出放在results中/运行后resultlen应等于输出长度,若不等,可能原始信息前几字节为全0/需要自己作适当控制(限制输入开头字节不为0,或输出长度不够时在前面补0)(2) AES 加密算法加密函数aes_setup(myKey, 128, 11, &skey);/加密前初始化状态(密钥,密钥长度,迭代次数(0:使用推荐值),加密状态 )解密函数:aes_setup(myKey, 128, 11, &skey);/解密前初始化状态,其实和加密的状态是完全一致的(3) 保存void CTalksDlg:OnButtonSave()(4) 换肤void CTalksDlg:OnButtonChang()(5) 监听void CTalksDlg:OnButtonListen()(6) 连接void CTalksDlg:OnButtonConnect()(7) 发送消息void CTalksDlg:OnSendMsg()(8) 接收信息void CTalksDlg:OnReceive()6 总结与展望6.1 总结AES和ECC相结合的混合密码加密方法,使用AES加密明文,ECC加密AES密钥,进行密钥管理,同时使用ECC进行数字签名。这样就避免了明文数据过大,使用ECC过慢,和使用AES导致密钥分配管理难和密钥传输中的安全问题。且AES 与DES相比拥有安全性能高,加密速度快,支持可变分组长度等特点,同时ECC 也在安全性,计算量和速度,占用存储空间和带宽要求上都优于RSA算法。所以 AES 与ECC相结合的混合加密体制要比DES和RSA相结合的混合加密体制在安全性和效率上都要优秀。即保证了快速高效的特性,又保证了信息传递的安全性、可靠性,是一种安全有效的混合加密方法。6.2 展望由于时间紧迫,加之笔者水平有限,在各算法的理解上还存在着一些不足,今后将继续在加密方法的理论和应用上加以研究。AES和ECC相结合的混合加密方法目前还是一种比较新的理论,在实际应用中还未被广泛使用,期望以后AES和ECC相结合的混合加密方法可以应用于更广泛的领域。参考文献1 李克洪,王大玲,董晓梅实用密码学与计算机数据安全第二版东北大学出版社,20012 DES加密算法图解. /pediy10/90593.html3 RSA加密算法./view/7520.htm4 潘承洞,潘承彪初等数论第二版北京大学出版社,20035 ECC加密入门. /bbshtml/BBS6/pediy6014.htm6 俞经善,王晶,杨川龙基于ECC和AES相结合的加密系统的实现信息技术,2006年,第二期7 AES加密算法. /mingcn/archive/2010/10/31/aes_c.html8 任泰明TCP/IP协议与网络编程第一版西安电子科技大学出版社,20049 张勇,刑长征AES和ECC相结合的数据加密技术的研究计算机安全2007年,7卷10 张

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论