APP下载

基于SM4和ECC的混合加密算法研究

2016-11-08卞建秀李垣江王建华

计算机应用与软件 2016年10期
关键词:明文加密算法公钥

卞建秀 李垣江 王建华

(江苏科技大学电子信息学院 江苏 镇江 212003)



基于SM4和ECC的混合加密算法研究

卞建秀李垣江*王建华

(江苏科技大学电子信息学院江苏 镇江 212003)

由于单一加密算法不足以满足无线嵌入式通信系统对信息安全的要求,提出基于提升的SM4算法和公钥加密算法的椭圆曲线密码体制(ECC)混合加密。首先将SM4中的参数FK由固定值改为动态选择生成,然后用提升的SM4算法加密信息,并采用ECC完成SM4的密钥管理。最后基于Visual C++6.0验证了混合加密算法的可行性。实验结果表明,提升的算法以占用时间资源为代价提高了算法的扩散性。该算法能够有效地提高加密的安全性,适用于对嵌入式系统中数据加密。

SM4ECC混合加密算法

0 引 言

网络技术的成熟化推动越来越多的信息利用无线网络通信。无线网络通信在提供便捷服务的同时也存在一定的安全隐患。由于无线通信系统自身存在多种不安全因素的特点,如信道的不稳定等问题,在无线信道上传输的数据不进行任何加密处理,数据信息被截取,篡改的风险性将大大增加,导致严重的信息泄漏问题。因此,研究如何保障数据信息在无线通信系统中的存储和传输显得至关重要。

密码学是构建信息安全体系的基础,是实现信息安全技术的主要手段[1]。现代密码体制按照密钥性质分为公钥密码体制和私钥密码体制。SM4算法是我国公布的第一个用于无线局域网的商用分组密码算法,在2012年被国家密码管理局正式批准为密码行业标准之一[2]。SM4算法具有实现简单、运行速度快的特点,但是由于加密和解密使用同一组密钥,密钥存储与传送的安全与否决定了整个加密过程的可靠程度。每对通信方都需事先在收发前建立安全的信道来传递密钥,这将导致密钥数量会随着通信对象个数的增加而急剧增长。实际应用中,使用单一的密码体制解决日益复杂的信息存储和传输安全已经越来越不现实了,综合考虑私钥密码体制和公钥密码体制各自的优势和缺陷,混合密码系统受到越来越多的关注。

罗江华[3]提出用MD5将明文加密成32位数据,再将密文组合成新的128位数据,采用Base64加密。将MD5与Base64相互混合可以避免利用查询MD5散列值的方式获得用户密码的可能,从而提高了用户密码的安全性。吴明航[4]提出把DES与RSA进行混合,使用两种算法的混合弥补DES的不足,通过与其他算法的对比来验证算法性能。何伟明[5]将混合加密算法用到云计算中,提出使用线性ADES混合加密算法,即用DES和AES分别加密部分明文,并将两个密文线性混合的方法。Guo等[6]提出了将3DES-AES、TDADS和TDAE Salt三种算法用在云计算平台上,算法具有很强的加密性能,并且在云平台能很快生成加密块。Liu等[7]讨论了混合加密的密钥安全问题。

1985年由N.Koblitz和V.Miller各自提出的椭圆曲线密码体制被公认为具有高效率、高安全特性的公钥密码体系。它利用有限域上椭圆曲线的有限点群代替基于离散对数问题密码体制中的有限循环群所得的一类密码体制,椭圆曲线离散对数问题(ECDLP)计算的困难性[8]决定了算法安全程度。

本文提出了一种基于SM4提升算法和ECC算法的新型混合密码算法,结合SM4和 ECC算法各自优势,利用提升的SM4加密明文信息块,然后用ECC对SM4的密钥加密,确保数据和密钥安全的同时也优化密钥管理。

1 SM4算法简介

SM4算法[9]是类似于高级加密算法标准的一种分组密码算法,加密算法和密钥扩展算法均采用32位的非线性迭代结构。SM4算法解密的结构不变,只是轮密钥与加密时有区别,算法中把加密轮密钥的逆序作为解密轮密钥。

具体的加密实现过程如下,图1为SM4算法的结构流程。

(1) SM4加密算法

SM4算法的加密变换为:Xi+4=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rki),i=0,1,…,31。

经过32轮变换,最后一轮输出为:(Y0,Y1,Y2,Y3)=R(X32,X33,X34,X35)=(X35,X34,X33,X32)。

图1 SM4算法结构图

(2) 密钥扩展

Ki=(MK0⊕FK0,MK1⊕FK1,MK2⊕FK2,MK3⊕FK3)。rki=Ki⊕T′(Ki+1⊕Ki+2⊕Ki+3⊕CKi),i=0,1,…,31为轮密钥,其中,MK=(MK0,MK1,MK2,MK3)是密钥。系统参数为FK=(FK0,FK1,FK2,FK3),固定参数为CK=(CK0,CK1,…,CK31)。T′变换与加密过程中轮函数的T相似,区别是L变为L′(B)=B⊕(B<<<13)⊕(B<<<23)。

2 ECC算法介绍

ECC的实现[10]包括建立系统、生成密钥、加密和解密四个部分。

(1) 建立系统

描述Fq上的椭圆曲线,用p、a、b确定椭圆曲线Ep(a,b),p为素数,a、b为系数,G为基点,n为G的阶。在系统建立过程中系数的确定总是需要消耗大量时间并且十分困难,简单的解决办法就是直接使用已有标准中建议的椭圆曲线。

(2) 生成密钥

椭圆密码体制中,接收方选择一个大整数d作为私钥,d满足1

(3) 加密算法

若B要发送信息m给A,则B先查找A的公钥QB,将明文划分为域元素mi,mi∈Fq。在[1,n-1]上选取k,计算R(xR,yR)=k×G,S(xS,yS)=k×QB,c=m×xS。将R(xR,yR)和密文c组合在一起发送给A。

(4) 解密算法

3 本文提出的混合加密算法

3.1SM4算法的提升方法

SM4算法加密过程和密钥扩展过程可以在硬件上并行完成,也可方便地移植在微处理器上实现软件加密,是适用于高、低端应用的商用分组密码算法。由于其加密过程和解密使用同一密钥,安全性不够高,密钥管理没有公钥算法特性好;而ECC算法安全性比RSA更高,抗攻击性更强。但相比于单一密钥加密,ECC不适合对大数据量的信息加密,存在计算大数很复杂的缺陷[11]、加解密相对较慢的特点。将采用SM4与ECC算法混合[12]实现加解密。

此外,本文从优化SM4算法及ECC算法入手,进一步提高混合后算法的安全系数。目前公认ECC是安全的,但时间复杂度过高,系统开销大[13]。若继续公钥加密算法,其存在的主要问题是增加ECC算法中的位数,势必会增加计算的复杂度,所以通过改变ECC的方法对提高整个算法体系的作用不明显。故考虑从SM4算法的扩展密钥方面研究,将动态的加密方法[14]引入。

本文选取SM4算法,改变固定参数FK,使用可变参数取代固定4个参数的方法。改进后的SM4算法再与ECC采用上述方法完成加密过程。SM4改进的具体方法是将原来固定的4个FK参数扩展为16个FK(每个参数4个字节,即32位),其中前4个为原来的固定参数,之后的12个FK参数为随机生成的。每次的FK生成过程中可以减少四个固定参数生成时间。从16个元素中选择4个FK,则以时间为种子,采用rand()函数随机生成0~15之间的数,每次加密时随机使用其中的4个。使用随机FK的目的是通过提高密钥生成的随机性从而增加破解的难度,有助于保证算法安全性的提高。图2给出了提升后的密钥扩展算法过程。

图2 提升后的SM4密钥扩展算法

3.2混合加密流程

具体实现过程如下所述:

(1) 设待发送的明文为m,发送方为A,接收方为B,密钥为key;

(2) B利用ECC算法产生一对密钥(公钥和私钥),并将公钥发送给A;

(3) A将明文利用提升的SM4算法加密,用从B接收来的公钥密钥对key加密,将已经经过加密算法处理的明文和密钥一起传送给B;

(4) B用私钥对key解码,再用恢复后的key和提升的SM4算法还原明文信息。

加、解密流程如图3所示。

图3 混合加密基本流程

3.3混合加密算法安全性分析

从理论上分析本文所提出的混合加密算法性能,主要考虑提升的SM4加密算法和ECC加密算法以及两者相结合的安全性、算法运行效率等。

SM4 算法是我国自主研制的分组密码算法,到目前为止, SM4 算法还没有被攻破,仍然安全。SM4加密算法以128 bit的数据块为单位,与128 bit的密钥实现异或、移位的线性变换和采用S盒的非线性变换。S盒是一种非线性结构,将明文块与轮密钥最大限度混淆和扩散,增加明文与密文之间复杂程度,从而有效地抵抗线性分析和差分分析。SM4算法与Feistel网络和SP网络相比,以降低线性扩散和差分扩散的速度提高非线性程度,降低芯片集成度。若考虑采用穷举攻击法攻击,需要2128次运算,计算量很大,而DES算法只需256次运算。要想用穷举攻击法破解需要相当长的时间,目前使用该破解方法是不可实现的[16]。提升后的SM4算法通过参数生成的随机性和不确定性增加产生密钥的复杂性,使攻击者无法通过简单的数学方法从密文中获得统计特性,更加有助于提高算法的安全性。但由于每一轮都需要通过计算产生随机参数,运行时间会有微小的增加,对于更看重数据处理安全性的应用场合具有很好的应用价值。

ECC加密算法作为三种最具实用性的公钥算法中最新的一种,利用ECDLP具有的很好的单向性,计算复杂度是完全指数级,求解困难大。而RSA存在亚指数算法危机,意味着若ECC要提供与RSA相同的安全等级,需要的密钥长度会比RSA需要的密钥长度少很多,如160位的ECC与1024位RSA、DSA有相同的安全强度。因此ECC在运算效率上有突破性进展,密钥较短,可以节省更多的存储空间方便其他程序利用,完成更复杂的计算。在安全级别提高时,ECC的参数长度增长速度会比RSA或DL算法慢很多。例如,如要使攻击者破解一个给定的ECC算法的付出加倍,只需将参数长度增加2位,而另两种公钥算法中参数的长度则需增加20~30位[16]。

4 实验结果及分析

本文实验的PC硬件环境:Intel(R) Core(TM)2 DUO CPU、2.00 GB内存、32位Windows 7操作系统;开发工具:Microsoft Visual C++6.0软件。

(1) 证明本文提出的混合加密算法正确性,选取两组明文数据和一组密钥,用本文提出的原算法加密,各个过程中的内容如表1所示。

表1 混合算法实验结果

从表中可看出,密文中恢复的明文与原数据一致,说明本文提出的用提升SM4算法与ECC混合加密可以满足数据加密和解密的要求,并为嵌入式系统上的算法移植提供可能。

(2) 本文将提出的提升SM4与ECC相结合的混合算法与原SM4和ECC混合算法,以及一般研究中采用的AES与ECC混合的算法进行比较,并从占用资源和扩散性两个方面对算法进行性能分析。

占用资源是从算法占用的时间和空间资源来评价。本文主要是考虑算法的时间占用资源,选择一组数据对其进行N次加密总加密时间为T(单位:s),则每次加密的时间为T/N。从理论上分析,算法占用时间与算法使用的实际编程语言密切相关。由于改进的算法较原算法只存在FK参数选择上的差异,故两个算法在密钥扩展上存在时间差,改进的算法可能比原算法使用的加密时间要长一点。而AES和ECC混合与SM4和ECC混合运行时间的差别主要就是AES、SM4两者加密时间的差别。

选取一组数据和一组密钥,假设用上文指出的三种混合算法对其加密100次,用时为t(单位:s)则对一个128bit的明文来说每次加密时间为t/100。实验将分别测试5次,取平均值作为算法占用时间资源值。测试结果如表2所示。

表2 时间资源占用的实验结果

从表2可以看出,实验结果与理论分析相似。提升后的SM4与ECC混合加密在时间资源占用上比改进前要稍微多一点,但时间差不大。在加密大量数据时,这个时间误差完全可以忽略不计,但作为我国第一个商用密码算法,其在时间资源利用方面并没有超过国际化标准的AES算法。

扩散性主要是指密码算法若改变一位明文,则加密后的多位密文将会随之改变,从而隐藏明文数字的统计特性。一般用均值来衡量,若均值越大则代表其扩散特性越好。本文选用同一密钥和明文,对三种算法测试选用当改变一位明文时,观察密文发生变化位数。测试8次的实验结果如图4所示。

图4 算法扩散性测试对比图

图4中显示,经过8次测试,使用同一密钥,明文被改变一位时,提升的SM4与ECC混合算法密文变化位数最多,其均值比其他两种算法要高,说明提升的混合算法比传统的混合算法具有更强的隐藏信息统计特性的能力。提升的SM4算法与ECC混合加密提高了算法的扩散性,即改进之后的算法较原算法安全效果更好。

从表2和图4可知,提升的SM4算法和原SM4与ECC混合加密时间占用资源相似,比AES与ECC混合加密需要更长的时间。但提升的SM4混合ECC算法的扩散性要比其他两种混合算法好,其是以微小的时间为代价换取加密数据的安全性。

一个加密算法的优劣需要从算法的安全性、时间和空间复杂度等方面考虑,而且需要根据实际应用的指标要求来确定算法是否合适。例如处理国防、军事中的一些敏感信息,相比于加密算法的时间复杂度,算法的安全性显得更重要一些。而工业控制中注重效率高于信息安全的则会考虑优化算法复杂度。在实验环境中基本相同的加密时间下(本文的混合加密算法时间占用资源比原SM4与ECC混合加密算法多0.001 s),本文提出的混合加密算法比原SM4与ECC混合加密算法获得更多位变化的密文。所以本文算法在对数据安全性要求更高而加解密时间要求相对不高的应用场合,有很好的实用价值。

5 结 语

本文在借鉴传统混合加密算法研究的基础上,提出将用于无线局域网的国密SM4算法提升后与目前国际公认最为安全的公钥密码算法ECC进行混合加密,从理论和实验角度分析了算法的可行性。并从时间占用资源和扩散性角度对提出的算法进行性能分析,提升的SM4算法与ECC混合加密提高了算法的安全性。可以在今后的研究中从编程角度对算法进一步优化,实现加密时间和安全性的共赢,从而使其更适合应用在嵌入式等领域。

[1] 路而红.现代算法密码工程[M].北京:清华大学出版社,2012.

[2] 李子臣,杨亚涛.典型密码算法C语言实现[M].北京:国防工业出版社,2013.

[3] 罗江华.基于MD5与Base64的混合加密算法[J].计算机应用,2012,32(S1):47-49.

[4] 吴明航.DES和RSA混合加密算法的研究[D].哈尔滨:哈尔滨工业大学,2013.

[5] 何伟明.混合加密算法在云计算环境下的实现[J].电子技术与软件工程,2015(2):200-201.

[6] Guo P,Su L P,Ning L J,et al.Hybrid encryption algorithms in cloud computing[J].Information Technology Journal,2013,12(14):3015-3019.

[7] Lu Xianhui,Li Bao,Jia Dingding.Related-key security for hybrid encryption[J].Lecture Notes in Computer Science,2014,8783:19-32.

[8] Potgieter M J,Dyk B J V.Two hardware implementations of the group operations necessary for implementing an elliptic curve cryptosystem over a characteristic two finite field[C]//IEEE AFRICON, Africon Conference in Africa. Piscataway,N J :IEEE Press,2002,1:187-192.

[9] 国家商用密码管理办公室.无线局域网产品使用的SMS4密码算法[EB/OL].[2015-06-19].http://www.oscca.gov.cn/UpFile/200621016423197990.pdf.

[10] 曾萍,张历,胡荣磊,等.WSN中基于ECC的轻量级认证密钥协商协议[J].计算机工程应用,2014,50(2):65-69,80.[11] 刘磊.素数域上ECC加密算法的软件实现[J].计算机应用与软件,2012,29(8):289-291.

[12] 陈昂,李磊,陈静,等.云环境下LBS的对称和非对称混合加密方案[J].计算机应用与软件,2013,30(8):73-77.

[13] 杨峰.嵌入式ECC算法性能改进及系统容错技术的研究与实现[D].北京:北京工业大学,2010.

[14] 周术洋,彭蔓蔓,肖小欢.一种基于动态思想的SMS4算法改进与实现[J].微电子学与计算机,2011,28(9):86-88,92.

[15] 吴筱,郭培源,何多多.DES和SM4算法的可重构研究与实现[J].计算机应用研究,2014,31(3):853-856.

[16] Christof Paar,Jan Pelzl.深入浅出密码学—常用加密技术原理与应用[M].马小婷,译.北京:清华大学出版社,2012:238-239.

STUDY ON SM4 AND ECC-BASED HYBRID ENCRYPTION ALGORITHM

Bian JianxiuLi Yuanjiang*Wang Jianhua

(SchoolofElectronicsandInformation,JiangsuUniversityofScienceandTechnology,Zhenjiang212003,Jiangsu,China)

Since the single encryption algorithm does not sufficiently meet the requirements of wireless embedded communication system on information security, we proposed a hybrid encryption of elliptic curve cryptosystem (ECC), which is based on the enhanced SM4 and the public key encryption algorithm. It first changes the parameter FK of SM4 from the fixed value to the dynamically selected generation, and then encrypts the information with enhanced SM4, and uses ECC to complete the key management of SM4. Finally we verified the feasibility of the hybrid encryption algorithm based on Visual C++6.0. Experimental results showed that the enhanced algorithm improves its diffusibility at the cost of time resources occupancy. This algorithm can effectively improve the security of encryption, and is suitable for data encryption in embedded system.

SM4ECCHybrid encryption algorithm

2015-06-24。江苏省高校优势学科建设工程项目(苏政办发[2011]6号)。卞建秀,硕士生,主研领域:通信技术及其应用工程。李垣江,讲师。王建华,教授。

TP309.2

A

10.3969/j.issn.1000-386x.2016.10.067

猜你喜欢

明文加密算法公钥
一种基于混沌的公钥加密方案
奇怪的处罚
HES:一种更小公钥的同态加密算法
奇怪的处罚
SM2椭圆曲线公钥密码算法综述
基于小波变换和混沌映射的图像加密算法
四部委明文反对垃圾焚烧低价竞争
基于格的公钥加密与证书基加密
对称加密算法RC5的架构设计与电路实现
基于Arnold变换和Lorenz混沌系统的彩色图像加密算法