APP下载

基于无线局域网的AES加密算法研究

2017-03-23曾繁婧刘晓东

电子设计工程 2017年5期
关键词:数字签名加密算法公钥

曾繁婧,刘晓东

(1.武汉邮电科学研究院 湖北 武汉430027;2.武汉虹旭信息技术有限责任公司 湖北 武汉430070)

基于无线局域网的AES加密算法研究

曾繁婧1,2,刘晓东1,2

(1.武汉邮电科学研究院 湖北 武汉430027;2.武汉虹旭信息技术有限责任公司 湖北 武汉430070)

针对无线局域网中AES加密算法对明文加密的问题,本文分析了其工作原理和结构,基于达到对明文有更强的加密能力的目的,提出了对AES的S盒进行优化和一种混合加密算法将AES与ECC相结合,由AES密钥进行明文的加密,用ECC实现数字签名和对AES密钥的加密的方案,实现了信息加密,数字签名及认证一体化,保障了信息安全。

AES;优化;ECC;加密

在信息化高速发展的时代,网络虽然给人们带来了诸多便利,但是也带来了信息泄露的问题[1]。数据加密技术在数据安全中起着至关重要的作用,它保护敏感信息免受来自外界的恶意攻击,使数据不被篡改和盗取[2]。

文中使用AES对称加密算法加密明文数据,ECC非对称加密算法加密密钥并生成数字签名,从而既保障了数据在网络传输过程中的安全性,又完成了数字签名。将这两种加密算法的混合密码体制可以有效地提高信息传输的安全性和高效性。

1 AES算法的相关概念

AES(Advanced Encryption Standard,高级数据加密标准)也称为Rijndael分组加密算法,是一种对称密钥的分组迭代加密算法[3],分组长度固定为128 bits,使用的密钥可以分为128bits,192bits或256bits 3种不同的长度[4],具有安全性高、易于软硬件实现、算法设计简单的特点,能抵抗所已知类型的攻击[5]。

1.1 AES算法结构

AES结构的一个显著特征是它不是Feistel结构,AES算法是在每一轮都使用代替和混淆将整个数据分组作为一个单一的矩阵处理[6]。AES加密算法结构由4个不同的阶段组成,包括一个置换和3个代替,详细过程如图1所示。1)字节代替:用S盒完成分组的字节到字节的代替;2)行移位:简单的置换;3)列混淆:利用域GF(28)上的算术特征的一个代替。4)轮密钥加:当前分组和扩展密钥的一部分进行按位异或。

加密轮函数用伪C代码表示为:

注释:1)State代表状态矩阵,一个存储原始数据的数组;2)RoundKey[]代表经过扩展运算后的密钥;3)ByteSub()代表置换函数,对状态矩阵 State中的数据进行置换;4)ShiftRow()代表移位函数,对状态矩阵 State中的数据进行移位运算;5)MixColumn()代表列混合运算函数,对状态矩阵State中的数据进行列混合运算;6)AddRoundKey() 代表异或运算函数, 对数组 State和数组RoundKey进行异或运算。

1.2 加密轮变换

1.2.1 字节代替变换(Substitute Bytes)

字节代替变换是唯一的非线性变换,字节替换是作用在状态中每个字节上的一种非线性字节转换[7],字节代替变换的步骤为两个:1)把每一个字节的值用它的乘法逆代替,即有限域GF(28)中的乘法逆。2)在GF(28)中进行仿射变换。这两步主要通过从AES算法给定的S盒中进行映射,S盒和逆S盒的运算如图2所示。

图1 AES加密和解密结构图

图2 AES算法S盒y行x列处字节计算

1.2.2 行移位变换(ShiftRows)

行移位变换是线性变换,和列混淆运算相互影响,在多轮变换后,使密码信息达到充分的混乱,提高非线性度[8]。行移位变换是在状态的每个行间进行,具体就是将每一行进行循环移位,移动位数以字节为单位,将最位字节移到高位,高位字节移到低位,即循环右移。逆向行移位变换是将状态中的后三行执行相反方向的移位操作。

1.2.3 列混淆变换(MixColumns)

列混淆变换是对状态 (state)列的一种线性变换,如图3所示,是从状态中取出一列,乘以一个固定的多项式a(x),然后将所得结果进行取模运算,模值为x4+1,a(x)的定义如下:

1.2.4 轮密钥加变换(AddRoundKey)

在轮密钥加变换中,128位的状态按位与128位的轮密钥XOR。

图3 列混淆变换

2 AES加密算法的优化

2.1 关于S盒的优化

S盒作为许多分组密码的唯一非线性模块,决定了整个加密算法的安全性强度[9],所以关于S盒的优化是很必要的。

针对AES算法S盒的短周期现象,在满足AES仿射变换的前提下,让GF(28)空间中的所有元只属于一个迭代循环,并使其遍历所有值或是尽可能多的值[10],则得到优化方案如下:

1)m(x)=x8+1不变

2)Su,v(ai,j)=u(x)a-1i,j(x)+v(x)modm(x),其中 u(x)=x7+x6+x4+x3+1,v(x)=x6+x4+x3+1

3)将字节看作GF(28)上的元素,映射到自己的乘法逆,0字节映射到自身。

4)将字节做GF(2)上的仿射变换,如图4所示。

图4 仿射变换

5)循环迭代周期为256,属于一个迭代轨迹。当u(x)=1+x1+x2+x7,v(x)=x3+x5+x7也可以对每个元做迭代,对多种选择的仿射变换系数都可以达到优化的效果。

2.2 列混淆变换的优化

由于GF(28)有限域中的每一个元素都能够写成02的不同幂次的和,矩阵乘法转换为与02的乘法和异或运算,所以GF(28)域上再定义一个运算,记为xtime(),其中xtime(a)=a(x)·xmodm(x)=a(x)*02,假设一列的输入为a,输出为b,则可以得到:

2.3 AES与ECC加密算法的混合

2.3.1 ECC加密算法

ECC(Elliptic Curve Crypto-system,椭圆曲线密码体制)是一种在目前所已知的公钥密码体制中具有最高的单比特安全性[11]。并且ECC是基于有限域上椭圆曲线离散对数问题的难解性而提出的一种公钥密码体制,这也决定了ECC加密算法比其他的公钥密码更难破解[12]。

椭圆曲线密码体制具有公钥密码体制的所有优点,安全性高、不易被攻破、可用于密钥分配[13]。用户之间建立公共密钥无需第一者介入,而且便于密钥管理,保证了密钥的安全性和密钥管理系统的稳健性[14]。用于任意两个用户之间的数字签名,无需事先签订协议、它对密钥的需求量小,简化了记录工作,减少了存储量,便于第三者裁决纠纷。

2.3.2 ECC加密算法的数字签名

ECC算法的数字签名也称为椭圆曲线数字签名算法 (ECDSA)[15],ECDSA的处理过程主要包括以下4个基本元素:

1)参与数字签名的所有通信方都使用相同的全局域参数,用于定义椭圆曲线以及曲线上的基点。

2)签名者首先需要生成一对公钥和私钥。签名者选择一个随机数或者伪随机数作为签名者的私钥。使用随机数和基点,签名者计算出椭圆曲线上的另一个解点,作为签名者的公钥。

3)对于代签名的消息计算其Hash值。使用私钥、全局域参数、Hash值来产生签名。签名包括两个整数,r和s。

4)如果要对签名进行验证,验证者使用签名者的公钥、全局域参数、整数s作为输入,并将计算得到的输出值v与收到的r进行比较。如果v=r,则签名通过验证。

2.3.3 AES与ECC混合加密算法的流程

1)关于全局域参数的定义;

s是一个素数;

a,b是Zp上的整数,由y2=x3+ax+b来定义椭圆曲线;

D是满足等式的点,D=(xd,yd);

k是D点的阶,是满足kD=0这个等式的最小正整数。

2)关于密钥的产生的定义:

①选一个整数i,使i满足[1,k-1];

②根据P=iD,得到曲线Ec(a,b)上的解点;

③则得到发送方的公钥是P,私钥是i。

3)关于数字签名的产生和认证,假设发送方对明文M产生了320字节的数字签名,流程为:

①随机在[1,k-1]内选择一个整数j;

②根据C=(x,y)=jD公式得到曲线的解点,再计算r=xmodk的值,其中如果r=0则回到①;

③根据t=j-1mod k公式计算出t的值;

④根据e=H(m)公式计算出e的值,其中H为 Hash函数SHA-1,e为所产生的160位Hash值;

⑤根据s=j-1(e+ir)modk公式计算出s的值,若s=0则回到①;

⑥得到明文M的数字签名块(s,r)。

接收方验证的流程为:

①查看s和r是不是[1,k-1]上的整数;

②通过SHA-1函数以及公式e=H(m),得到e的值

③根据w=s-1mod k公式计算出w的值;

④根据公式u1=ew和u2=rw计算出u1,u2的值;

⑤根据公式X=u1D+u2P计算出解点X(x1,y1);

⑥如果X=0则拒绝签名,否则根据公式 v= x1mod k计算出v的值;

⑦如果v=r则接收签名,否则拒绝。

4)混合算法流程如图5所示

图5 AES与ECC混合加密算法的流程图

3 结束语

文中对AES算法进行了分析,由于S盒作为AES加密算法中唯一的非线性元件,其安全性能的好坏直接决定着整个分组密码性能的好坏。指出其S盒循环迭代输出周期过短的特性,并且提出一种切实可行的方案,使得迭代周期扩大到256整个空间,从而提高了算法的安全性。并提出AES和ECC加密算法的混合方案,由对称加密算法和非对称加密算法相结合互补,更加提高了算法的安全性能。在当今高速发展的信息社会里,混合密码体制的研究和应用是非常必要的。

[1]冯登国.国内外密码学研究现状及发展趋势[J].通信学报,2013,23(5):18-26.

[2]ChristofPaar,JanPelzl.深入浅出密码学:常用加密技术原理与应用[M].北京:清华大学出版社,2014.

[3]曹晓丽,王爱强.AES算法研究[J].洛阳师范学院学报,2013,6(2):56-57.

[4]Liu Y,GuD,LiuZ,et al.New Improved Impossible Differential Attack on Reduced-Round AES-128 [C]//ComputerScience and Convergence-CSA 2011&WCC 2011 Proceedings.2015:453-461.

[5]F.Armknecht,Slucks.Linearity of the AES keyschedule[M].Berlin:Springer,2015.

[6]韦宝典.高级加密标准AES中若干问题的研究[D].西安:西安电子科技大学,2013.

[7]许金玲.基于RSA与AES混合加密系统的算法研究[D].秦皇岛:燕山大学,2014.

[8]Daemen J,Rijmen V.The design of Rijndael:AES-the advanced encryption standard[M].Springer,2012.

[9]张丽红,凌朝东.基于AES算法中S盒的分析研究与改进[J].信号处理,2013,38(2):339-344.

[10]王衍波.AES的结构及其S-box分析[J].解放军理工大学学报,2013,3(3):13-17.

[11]韩明华,韩晓东.基于椭圆曲线加密的系统安全性分析[J].浙江万里学院学报,2013,8(6):21-24.

[12]白永志.基于椭圆曲线密码系统的数字签名研究与应用[D].合肥工业大学,2013.

[13]张雁,林英,郝林.椭圆曲线公钥密码体制的研究热点综述[J].计算机工程,2014,30(3):127-128.

[14]李殿伟,王正义,赵俊阁.椭圆曲线密码体制安全性分析[J].计算机技术与发展,2015,22(4):227-230.

[15]AmolDabholkar,KinChoongYow.Eficient implementation of elliptic curvecryptography(ECC)for personal digital assistants(PDAs)[J].Wireless Personal Communications,2014,29(3-4):233-246.

The research of AES algorithm based on the wireless LAN encryption

ZENG Fan-jing1,2,LIU Xiao-dong1,2
(1.Wuhan Research Institute of Posts and Telecommunications,Wuhan 430027,China;2.Wuhan Hongxu Information Technology Co.,LTD.,Wuhan 430070,China)

For wireless LAN AES encryption algorithm to encrypt the plaintext,this paper analyzes the working principle and structure,based on the plaintext to achieve stronger encryption capabilities purposes,presented to the AES S-boxes and a hybrid optimization algorithm for encryption the combination of AES and ECC,conducted by AES key plaintext encryption,digital signature using ECC and AES key encryption scheme,and information encryption,digital signatures and authentication integration,information security safeguards.

AES;optimization;ECC;encryption

TN620.5010

:D

:1674-6236(2017)05-0119-04

2016-03-17稿件编号:201603228

曾繁婧(1992—),女,湖北襄阳人,硕士。研究方向:信号与信息处理。

猜你喜欢

数字签名加密算法公钥
浅析计算机安全防护中数字签名技术的应用
一种基于混沌的公钥加密方案
基于数字签名的QR码水印认证系统
HES:一种更小公钥的同态加密算法
数字签名简述
SM2椭圆曲线公钥密码算法综述
基于小波变换和混沌映射的图像加密算法
Hill加密算法的改进
基于格的公钥加密与证书基加密
对称加密算法RC5的架构设计与电路实现