《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 混合加密算法的改进和设计方案
混合加密算法的改进和设计方案
2016年微型机与应用第08期
刘帅,王平,邢建春,张孝鹏
(解放军理工大学 国防工程学院,江苏 南京 210007)
摘要: 分析了对称加密算法AES和非对称加密算法ECC的加密过程和特点,并结合两种算法的特点设计了一种混合的加密体制,在避免了对称加密算法复杂的密钥分配体制的同时保证了加密的效率和强度。同时引入了改进的数字签名算法,在对信息来源的真实性和完整性进行验证的同时,避免了复杂的模逆运算,提高了运算效率。
Abstract:
Key words :

  刘帅,王平,邢建春,张孝鹏

  (解放军理工大学 国防工程学院,江苏 南京 210007)

        摘要:分析了对称加密算法AES和非对称加密算法ECC的加密过程和特点,并结合两种算法的特点设计了一种混合的加密体制,在避免了对称加密算法复杂的密钥分配体制的同时保证了加密的效率和强度。同时引入了改进的数字签名算法,在对信息来源的真实性和完整性进行验证的同时,避免了复杂的模逆运算,提高了运算效率。

  关键词混合加密高级加密标准椭圆曲线密码;数字签名

0引言

  随着计算机运算能力的不断增强,各种破解密码技术层出不穷,传统的加密技术不断遭到挑战。此外,对信息来源的真实性以及完整性的验证也越来越受到重视。当今应用最广泛的两种密码体制有着各自不同的优点和缺陷;对称密码体制加解密速度快,但是密钥分配与管理比较复杂;非对称密码体制可以进行数字签名且密钥管理比较方便,但是加解密速度比较慢,运算量比较大。如何利用两者优点的同时尽可能地避免各自的缺陷,以达到更好的加密效果,是近年来的研究热点。本文结合对称加密中的高级加密标准[1](AES)和非对称加密中的椭圆曲线密码体制[2](ECC)两者的特点,在对传统签名算法改进的基础上设计了一种混合加密方案,具有安全性高、加解密速度快等优点。

1AES加密算法

  AES算法是一种数据分组长度为128 bit的迭代分组加密算法,根据加密级别的不同,其密钥长度有128 bit、192 bit和256 bit 3种选择,对应的迭代循环次数分别为10轮、12轮和14轮。每一轮变换由4个部分组成,分别是字节替换(SubBytes)、行位移(ShiftRows)、列混合(MixColumns)和轮密钥加(AddRoundKey)[3],其中最后一轮没有列混合的操作。以密钥长度128 bit为例,AES算法的加密过程如图1所示。

001.jpg

  因为AES算法加密属于对称加密体制,加密和解密的过程中通信双方使用相同的密钥,所以解密过程与加密过程基本相同,只是密钥的使用顺序正好相反,所以对于解密过程在此不再赘述。

  对称加密算法AES具有速度快、强度高、安全性好、便于实现等优点[4]。但是对称性的加密体制也为其带来了一些缺陷,主要包括以下两个方面:首先是系统中任意两个节点之间的通信都需要一对独立的密钥,所以在系统内每增加一个通信节点密钥量便会成倍增加,由此带来的密钥产生、存放和分配的问题无疑是极其繁重的;其次是密钥的传输问题,在对称密码体制中由于通信双方使用的是相同的密钥,加密的安全性也完全依赖于对密钥的保护,一旦密钥在传输过程中被窃取,加密便变得没有意义。为了解决这一问题,必须使用一些特殊的安全信道来分发密钥,譬如用专门信使来传送密钥,而这一做法的代价是相当大的,甚至可以说是不现实的。

2ECC加密算法

  2.1ECC算法的描述

  ECC算法是KOBLITZ N和MILLER在1985年提出的一种非对称加密算法,它对数据加密的安全性是基于椭圆曲线离散对数问题求解的困难性。这里所讲的椭圆曲线指的是韦尔斯特拉斯(Weierstrass)方程所确定的平面曲线,即:

  y2+a1xy+a3y=x3+a2x2+a4x+a6

  其中,系数ai(i=1,2,…,6)定义在某个域上,可以是有理数域、实数域、复数域,也可以是有限域GF(pr),椭圆曲线密码体制中用到的椭圆曲线都是定义在有限域上的。椭圆曲线上所有的点,外加一个叫做无穷远点的特殊点构成的集合,连同一个定义的加法运算构成一个Abel群[5]。在等式P+P+…+P=dP=T中,已知d和点P求点T比较容易,反之已知点T和点P求d却是相当困难的,这个问题称为椭圆曲线上点群的离散对数问题[6]。从表1不难看出,ECC算法用较小的密钥长度即可达到与RSA算法相同的加密强度,与其他非对称加密算法相比ECC算法具有安全性更高、密钥短、需要存储空间比较小等优势[7]。至今人们尚未找到有限域上椭圆曲线有理点群的离散对数问题的亚指数算法,而且目前的研究结果表明构造出这样的亚指数算法的可能性不大[8]。

004.jpg

  2.2数字签名

  传统的数字签名算法在签名过程中要进行模逆运算,求逆运算的复杂性是造成签名速度慢的主要原因。因此构造一个新的签名方程,使得改进后的签名算法不用进行模的逆运算,以达到提高效率的目的[9]。

  2.2.1改进后的签名及验证过程

  (1)发送方选择随机数k,使得k∈[1,n+1];

  (2)发送方用SHA1函数处理将要发送的明文m,生成摘要;

  (3)发送方向接收方传送选择好的函数和确定的相关参数;

  (4)发送方选择密钥x,并用公开基点g计算y=xg,得到公钥y;

  (5)计算r=kg,若r=0则转到步骤(1);

  (6)计算s=k-mrx,得到(s,r)作为签名;

  (7)将签名(s,r)连同明文m发送给接收方;

  (8)接收方计算r′=sg+mry;

  (9)接收方判定r=r′是否成立,若成立则签名成立,若不成立则签名无效。

  2.2.2无需模逆运算的证明

  签名过程的计算公式:

  s=k-mrx

  验证过程的计算公式:

  r′=sg+mry

  证明:

  将y=xg和s=k-mrx带入验证公式:

  r′=sg+mry=(k-mrx)g+mr(xg)=kg-mrxg+mrxg=kg=r

  此方案不需要进行模拟操作,减轻了运算的负担,提高了运算速度,对系统的效能要求更低, 更具有实用意义[9]。

  公钥加密算法在加解密过程中使用的密钥是不同的,加密过程的密钥是对外公开的,称为公钥;但解密过程的密钥只有接收信息的一方知道,称为私钥。两个密钥是相对独立的。这一特点避免了对称加密算法繁杂的密钥分配体制,所以非对称密码体制的优点在于密钥的分配和管理相对简单。此外,公钥加密算法可以通过对要传送的信息进行数字签名的方式,对信息来源的真实性以及完整性进行验证。虽然已对签名算法进行了相应改进,但是较对称密码体制而言其算法依旧非常复杂、加解密的效率低,使得对实时性要求比较高、信息量比较大的系统实现起来比较困难。

3混合加密体制的设计与实现方案

  3.1发送端的设计

  发送端的设计主要分为以下3个部分:

  (1)密钥加密模块:在加密开始前会随机产生AES的加密密钥,为避免AES算法繁重的密钥分配和管理工作,接收方以掌握的接收方分享的公钥用ECC算法来对AES的密钥进行加密,生成“密钥加密模块”。

  (2)密文模块:AES算法对明文进行加密,生成“密文模块”。

  (3)数字签名模块:用Hash函数对需要发送的明文进行处理生成摘要结果,发送方用自己的私钥对摘要结果进行加密生成“数字签名模块”。

  将生成的3个模块组合发送给接收方,发送端任务完毕。图2为混合加密算法的加密过程图。

 

002.jpg

  3.2接收端的设计

  接收端在接收到组合的加密信息后,对3个模块分别进行处理:

  (1)密钥加密模块:接收方以自己掌握的私钥对ECC加密的密钥加密模块进行解密,得到AES算法的加密密钥。

  (2)密文模块:用解密后AES算法的密钥对密文模块进行解密,得到明文。对解密后的明文进行Hash函数处理得到摘要结果。

  (3)数字签名模块:接收方用发送方分享的公钥对数字签名模块进行解密,解密后得到发送方发过来的摘要结果。将解密得到的密文处理后的正确的摘要结果与发送方生成的摘要结果进行对比,以此来进行身份验证。如果相同则身份验证成功,不相同则身份验证失败。

  若身份验证成功则解密得到的明文可用,若身份验证失败则说明信息很有可能已被篡改,需重新发送。图3为混合加密算法的解密过程图。

 

003.jpg

4结论

  改进的混合加密算法对相对大量的明文主体数据采用了安全性非常高、速度非常快的AES算法[10],对于AES算法的密钥则使用ECC算法进行加密,在保证密钥安全的同时有效避免了对称加密算法密钥的单独发送,极大地提高了加密的效率,保证了密钥的安全。此外,数字签名功能的引入,可以对信息的来源和信息的完整性进行验证,从而进一步保证了通信安全。在对签名算法进行改进和优化之后,避免了模逆运算,节省了数字签名的时间,进一步提升了加密效率。

  该方案加密等级高、速度快,特别是对通信实时性、安全性要求比较高的领域,该方案的实用性较强。

  参考文献

  [1] PETHE H B, PANDE S R. A survey on different secret key cryptographic algorithms[J]. Ibmrds Journal of Management & Research, 2014, 3(1):142150.

  [2] Zhang Haibin, Ji Xiaoping, Wu Boying, et al. Fast elliptic curve point multiplication algorithm optimization[J]. Applied Mechanics and Materials, 2014, 441: 10441048.

  [3] 张慧霞,赵建平,李晓丽,等. AES密码算法的FPGA实现与仿真 [J]. 通信技术,2013,46(9):8385.

  [4] 马擎宇,张东. 基于AES和ECC的遥测数据加密技术研究与实现 [J]. 舰船电子工程,2015,35(4):7881.

  [5] 江志祥,蔺志青. 椭圆曲线密码体制[EB/OL]. (20080102)[20151210].//www.paper.edu.cn/html/releasepaper/2008/01/21.

  [6] PAAR C, PELZL J. Understanding cryptography: a textbook for students and practitioners [M]. Berlin: SpringerVerlag,200912.

  [7] CRYPTOGRAPHY E C. The advantages of elliptic curve cryptography for wireless security[J]. IEEE Wireless Communications,2004,2:6267.

  [8] 宁国强,李谢华,尹张飞.一种安全的即时通信解决方案[J].计算机工程与应用,2011,47(3):8283.

  [9] 刘军,贾松浩,杨彩.改进的ECC算法在数字认证中心系统应用[J].实验室研究与探索,2014,33(2):108111.

  [10] 刘楠,陈迅,李军伟.面向CBC模式的AES高速芯片设计与实现[J]. 电子技术应用,2014,40(1):6467.


此内容为AET网站原创,未经授权禁止转载。