AES与ECC混合加密算法研究

2016-12-22 21:41缪昌照徐俊武
软件导刊 2016年11期

缪昌照++徐俊武

摘 要:AES(高级加密标准)具有简洁和高效等优点,是当前公认的对称加密算法数据加密标准。在分析现有数据加密算法的基础上,提出一种将AES算法和ECC(椭圆加密算法)相结合的混合加密算法,以解决密码体制中速度和安全性不能兼顾的问题。使用AES和ECC加密算法对网络信息进行认证和加密。实验结果表明,该混合算法成本和功耗低,性能良好、稳定。

关键词关键词:信息安全密码体制;信息加密;AES算法;椭圆加密算法;混合数据加密算法

DOIDOI:10.11907/rjdk.162431

中图分类号:TP312

文献标识码:A 文章编号文章编号:16727800(2016)011006302

0 引言

随着网络及通信技术的飞速发展,网络敏感信息经常通过公共通信设备或计算机网络进行交换传输,越来越多的信息需要严格加密[1]。网络攻击的手段很多,如攻击方偷取网络信息(用户口令、数据库信息等)或者伪造用户身份标识、否认自己的签名等都会对互联网安全构成重大威胁。

1 基于AES与ECC的混合密码体制

对称加密具有运算开销少、速度快、方便实现等特点,但密钥容易泄露。此外,密钥管理分发较困难,如果网上有x个用户要相互传输加密数据,则需要x(x-1)/2个密钥[2]。

1.1 AES的设计策略

大多数AES设计通常用简单的循环实现,它是一种对称密钥迭代分组密码算法,分组和密钥的长度都可以变化,可以单独指定为128、192比特,然后将明文的数据包看成是状态矩阵(二维矩阵)。如图1所示,该AES密钥长度为128比特,它将明文分组映射为4行4列的矩阵,然后进行迭代(每次迭代称为一轮)将明文打乱并扩散,从而实现加密[3]。过程如下:

初始轮:进行密钥加变换。

AES中部分变换过程如下:

字节替换:先把每个字节(8byte)表示成一个系数在{0,1}上的多项式,然后在有限域(GF域,大小为28)中选出相对应的多项式m(x)=x8+x4+x3+x+1,该多项式称为乘法逆[4],最后使用式(1)仿射变换。

1.2 ECC算法描述

定义1韦尔斯特拉斯(Weierstrass)方程:

由该方程确立平面曲线。假设F为域,ai∈F(i=1, 2,…,60),F域上椭圆曲线E上的点满足式(3)。F域可能为有理数域或者复数域,也有可能为理数城或有限域GF(p)。此外,E曲线上还要加上一个点O,该点为无穷远点[5],这些点集和运算则共同构成了一个域,它们是椭圆曲线加密算法的基础。在该域中可以进行基本运算,如模加(减)、模乘和求逆等。运算并不复杂,但是运算过程中有限域的阶很大,所以计算非常耗时。

2 基于AES与ECC的混合密码体制实现流程

对称加密由于只有一个密钥用于加密和解密,耗时少。因此,AES方法用于小额支付等系统效率更高。非对称加密加密算法具有密钥分发与管理简单等特点,所以常用于小数据传输,如传输密钥、数字签名等。ECC算法相对于其它非对称加密算法速度和安全性更高[6]。结合二者特点,首先对数据用AES算法进行加密,用AES密钥加解密,然后用ECC加密算法的公钥对AES算法的密钥进行管理。例如在数字签名认证时,用ECC加密算法的公钥作为输入密钥,能够迅速完成签名和认证。这样不仅实现了数据的安全传输,同时也保证数据完整性,传输速度较快。

混合加密过程中,大多迭代密码的第一轮、中间轮和最后轮分析方法均不同,所以AES算法作了特殊处理,第一轮前加了前期变换,最后一轮则去掉了Mixcolumn函数,理论上它可以抵抗差分和线性密码攻击。MixColumn是列变换中最为复杂的一个,涉及到有限域GF的乘法和加法,所以在实现中可以看作位移和加法的结合变换,一般用xtime函数来实现。在ECC算法中,曲线选取直接关系到系统安全性,由于自定义椭圆函数不易验证参数对系统安全的影响,所以本文采用NIST(美国国家标准与技术研究院)定义的椭圆曲线。数字签名加密实现流程如图2所示。

接收方A:①AES算法对消息m进行加密,密钥为KA,得到密文c;②用ECC对KA进行加密得到AES密钥块;③ECC对消息m进行签名得到签名块;④将密文c, AES密钥块、签名块一同传送给接受方B。

接收方B:①ECC解密AES密钥块得到KA;②KA对密文c进行解密得到明文消息m,认证签名。

3 数据加密与解密实现

数据加密与解密系统由以下4个部分组成:

(1)密钥生成模块。系统调用ECC算法产生私钥和公钥,私钥和公钥一一对应。

(2)文件加(解)密模块。系统调用AES算法,对文件夹进行加密或解密处理。图3为文件加密后的打开界面。

(3)密钥加密模块。对密钥进行加密,输入发送方的AES密钥并选择接收方,从而获取公钥,然后调用ECC加密算法对密钥进行加密,从而产生密文并显示在文本框中。

(4) 密钥解密模块。用ECC加密算法对AES密钥进行加密,防止AES密钥被非法使用。

4 结语

对称加密算法速度快,适合大块数据加密处理,但密钥分配和管理较困难;而非对称加密算法不同,其密钥分发与管理简单,但速度慢,一般用于少量数据加密。本文用AES算法对大块数据加密,用ECC算法管理保护AES密钥,提出结合两类加密算法优点的混合加密算法,能有效兼顾密码体制中的速度和安全性。

参考文献:

[1] 庹朝永,郭稳涛. 基于RFID的高速公路不停车收费系统的研究与设计[J].物联网技术,2011,01:8285.

[2] 张学军. RFID系统防碰撞与安全技术研究[D].南京:南京邮电大学,2012.

[3] 王海科. 不停车收费系统网络信息加密技术的研究与实现[D].郑州:郑州大学,2006.

[4] 秦志光. 密码算法的现状和发展研究[J]. 计算机应用,2004(2):14.

[5] 袁巍. AES算法的设计原则与其密钥扩展算法的改进[D].长春:吉林大学,2010.

[6] 张龙华. 邮件加密算法PGP的应用研究[D].长春:辽宁工程技术大学,2008.

[7] 唐四云. RSA和椭圆曲线密码算法的研究[D].长沙:湖南大学,2006.

(责任编辑:陈福时)