APP下载

基于AES和ECC的混合加密系统的设计与实现

2012-07-13王红珍李竹林

电子设计工程 2012年4期
关键词:加密算法公钥解密

王红珍 , 李竹林

(1.延安大学 计算机学院,陕西 延安 716000;2.延安大学 软件研究与开发中心,陕西 延安 716000)

由于对称加密算法运行速度快,加密强度高,但是密钥管理困难;而公钥加密算法密钥管理简单方便,加密强度高,但是算法运算量大导致运行速度慢,因此文中采用对称加密算法AES加(解)密文件级别的大批量数据,而用公钥加密算法ECC来加密AES密钥和其它数据量少但安全要求高的数据,两种加密方法的结合,有效地提高了加密效率,更重要的是它可以大大提高AES密钥管理上的安全性。

1 AES加密算法的设计方案

AES算法的结构紧凑、规整,每轮变换也基本一致所以易于用软件或是硬件实现,因此具有良好的实现性[1]。AES具体的加(解)密过程如下:

1)加密过程

AES加密由以下步骤组成:

①初始轮加密;

②Nr-1轮加密;

③第Nr轮加密;

用类C语言描述为:

void Cipher( ) //加密算法

2)解密过程

解密过程和加密过程具有同样的变换结构,用到的算法都是加密过程中用到的算法的逆算法。

AES加(解)密实现的思路:将需要加(解)密的文件读入内存,每次依次顺序截取其中的128 bit分组进行处理称为一个状态(State),一个状态是一个字节矩阵,矩阵中的每个元素都是一个字节,这个状态阵列在每一层加密或解密时都进行修改,每次分组加(解)密的结果依次顺序写入保存处理结果的文件缓冲区,直到整个文件处理完为止,当文件处理完毕后将文件缓冲区结果保存到磁盘或发送出去[2]。

2 ECC加密算法的设计方案

2.1 椭圆曲线的选取

在椭圆曲线密码系统中,曲线的选取是影响系统安全性的决定因素。在系统中我们采用了NIST推荐的曲线,采用素数p192作为有限域的阶,p192是安全性和效率折中后的选择,并且由于参数已知而省去了曲线建立的代价[1,3]。NIST给出的定义在上的椭圆曲线的域参数如下:

2.2 有限域上的运算

实现有限域上的ECC,需要用到有限域上的加法、减法、乘法(包括平方)、求逆和取模这几种算术。根据研究和分析我们发现:模加(加后取模)和模减(减后取模)的运算速度是模乘运算(乘后取模)的10倍以上;求逆运算时间与大约70个模乘运算时间相当;ECC运算70%左右的时间消耗在模乘运算上。考虑到上述因素,我们在制定方案时,只需考虑使ECC运算尽量少涉及有限域上的求逆运算[3]。

2.3 ECC的加(解)密过程

1)用户 A 选定一条椭圆曲线Ep(a,b),并取椭圆曲线上一点,作为基点G(x,y);

2)用户A选择一个私钥k,并生成公钥K=kG;

3)用户 A 将Ep(a,b)和点K,G传给用户 B;

4)用户B收到信息后,将待传输的明文编码到Ep(a,b)上一点M,并产生一个随机整数r(r<n);

5)用户 B计算点C1=M+rK;C2=rG;

6)用户 B将C1,C2传给用户 A;

7)用户A收到信息后,计算C1-kC2,结果就是点M。因为C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M。

再对点M进行解码就可以得到明文。

3 混合加密算法的设计方案

对称加密算法具有速度快、强度高、便于实现等优点,尤其适合加密大块数据,但密钥分配与管理比较困难,而公钥加密算法具有密钥分发与管理简单、速度慢等特点,一般用于加密少量数据。所以在本方案中我们采用AES算法加密大数据块,而用ECC算法管理(保护)AES密钥,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点[4]。

3.1 密钥的产生

在椭圆曲线上Ep(a,b)上选一点G(x,y),G的阶数为n(n为一个大素数),G公开。在[1,n-1]之间随机地确定一个整数Ks,计算Kp=KsG,且Kp为椭圆曲线Ep(a,b)上的一点,由此就确定了密钥对(Ks,Kp)。Ks为私钥,Kp为公钥[3]。

3.2 加密和解密

加密 AES密钥:设KA为 AES算法密钥,取随机数r,r∈{1,2,…,n-1},计算u=rKBP(KBP为公钥),R1=rG=(x1,y1),v=x1KA,由此产生二元组(u,v)。

解密 AES 密钥:用KBS(KBS为私钥)计算(x1,y1)=,从而得KA=x-11v。

3.3 具体实现流程

加密流程如图1所示,步骤如下:

1)用AES算法对明文m进行加密,得到密文块c,加密密钥为KA;

2)用ECC对KA进行加密,得到AES密钥块;3)最后所得密文就是密文块c、AES密钥块。

图1 加密流程Fig.1 Encryption process

解密流程如图2所示,步骤如下:

1)用ECC算法解密AES密钥块,得到KA;

2)用KA对密文块c进行解密,得到明文m。

图2 解密流程Fig.2 Decryption process

3.4 抗密码分析能力

对于本方案的威胁手段,从技术上来讲可能的情况有2种:

1)破解AES对称加密算法;

2)破解ECC公钥加密算法。

本方案选择的AES算法具有着坚固的抗密码分析能力,安全性能极高,到目前为止,仍没有找到有效的算法本身的攻击漏洞,因此最有效的破解途径依然是穷尽搜索全部可能的密钥,但是 Rijndael的密钥空间支持 128 bit,192 bit和256 bit,据NIST计算,如果有人能够制造一种1 s内即能破解DES密码的设备,那么用这种计算机来破解128 bit算法的密码仍需要149万亿年。

而ECC加密算法的安全性依赖于椭圆曲线离散对数的安全性,安全椭圆曲线的选取是建立椭圆曲线密码体制的基石,所以曲线的安全是保证密码体系安全的重要因素。在过去的十多年里,椭圆曲线离散对数问题受到了数学界的极大关注。目前,还没有发现椭圆曲线离散对数(ECDLP)有什么特别大的弱点。

4 数据加密与解密子系统的实现

该方案由密钥生成模块、文件加(解)密模块、密钥加密模块、密钥解密模块等4部分组成[4-5]。

1)密钥生成模块

该模块的功能是由系统调用ECC算法,计算并产生私钥和公钥,私钥和公钥是对应的,即一个私钥只能解开其对应公钥加密的数据。

2)文件加(解)密模块

该模块的功能是由系统调用AES算法,对欲加密的文件文件夹进行加密处理或者对已经用该算法加密后的文件或文件夹进行解密处理。

如图3所示为文件加(解)密的界面。

图3 文件加(解密)Fig.3 File encryption/decryption

3)密钥加密模块

该模块的功能是用ECC加密算法加密AES密钥,保密AES密钥。

4)密钥解密模块

该模块的功能是用ECC加密算法解密AES密钥,使得AES密钥不能够非法使用。

5 结束语

对称加密算法具有速度快、强度高、便于实现等优点,尤其适合加密大块数据,但密钥分配与管理比较困难,而公钥加密算法具有密钥分发与管理简单、速度慢等特点,一般用于加密少量数据[6]。所以在本方案中我们采用AES算法加密大数据块,而用ECC算法管理(保护)AES密钥,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点,有效地解决了密码体制中速度和安全性不能兼顾的问题。

[1]杨普,揭金良.椭圆曲线密码和AES算法的分析与设计[J].网络安全技术与应用,2009(1):94-95.

YANG Pu,JIAN Jin-Liang.Elliptic curve cryptography and AES analysis and design[J].Network Security Technology&Application,2009(1):94-95.

[2]景为平,徐晨,陈海进.AES密码算法的结构优化与实现[J].微电子学与计算机,2007(2):36-38.

JING Wei-ping,XU Chen,CHEN Hai-jin.Architecture optimization and implementation of AES algorithm[J].Microelectronics&Computer,2007(2):36-38.

[3]侯爱琴,辛小龙,杨世勇.GF(p)上安全椭圆曲线产生算法[J].计算机工程,2009(23):138-140.

HOU Ai-qin,XIN Xiao-long,YANG Shi-yong.Secure elliptic curve generating algorithm over GF(p)[J].Computer Engineering,2009(23):138-140.

[4]董尼.基于AES与ECC的混合密码体制的研究与实现[D].合肥:合肥工业大学,2006.

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

[6]张秀爱.椭圆曲线密码体制的研究[J].通信技术,2009(5):208-209.

ZHANG Xiu-ai.Study of elliptic curve cryptography[J].Communications Technology,2009(5):208-209.

猜你喜欢

加密算法公钥解密
炫词解密
解密“一包三改”
炫词解密
一种基于混沌的公钥加密方案
P2X7 receptor antagonism in amyotrophic lateral sclerosis
HES:一种更小公钥的同态加密算法
SM2椭圆曲线公钥密码算法综述
基于小波变换和混沌映射的图像加密算法
解密“大调解”
对称加密算法RC5的架构设计与电路实现