一种基于改进的Logistic映射的数据不变长加密算法

2017-06-29 12:00杨鼎鼎陈世强
计算机应用与软件 2017年5期
关键词:加密算法二进制解密

杨鼎鼎 王 静 陈世强

(湖北民族学院理学院 湖北 恩施 445000)

一种基于改进的Logistic映射的数据不变长加密算法

杨鼎鼎 王 静 陈世强*

(湖北民族学院理学院 湖北 恩施 445000)

针对数据不变长加密,提出一种基于改进的Logistic映射的加密算法。利用该映射产生的混沌序列所特有的不可预测性,对序列X进行不变长加密。即明文X的Bit长度为n,用该算法对X进行加密运算后得到的密文Y的Bit长度还是n。实验结果表明,该算法效率高,内存消耗少,抗攻击性强,且普遍适用于不改变数据长度需求的加解密应用。

不变长加密Logistic映射 对称加密 混沌序列

0 引 言

随着信息化的迅速发展,各种网络攻击使信息的安全传输越来越得不到保障,针对这些不安全因素,人们提出了许多数据加密算法[1-3]。数据加密方法普遍会增加密文数据的长度,给信息的传输和存储增加额外的负担。针对这个问题,人们开始关注数据加密后密文数据长度不变的算法,目前对不变长加密的研究已成为数据加密的一个热点。

数据加密自20世界70年代提出以来,影响深远的对称加密算法主要有3种:DES、3DES、AES。DES加密算法[4-9]为密码体制中的对称密码体制,又被称为数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法,是一种变长的数据加密算法。文献[4-5]介绍了DES加密算法的理论知识及实现过程;文献[6]研究了DES算法的抗攻击性,得出其分组、密钥、密码生命周期都比较短,DES加密的数据容易被破解;文献[7]指出通过穷举搜索法也能破解DES加密的数据;基于C++平台下实现DES算法[8],研究了DES算法机理并在C++的平台下予以实现。针对DES的可破解性,人们提出了3DES加密算法。3DES(或称为Triple DES)是三重数据加密算法TDEA(Triple Data Encryption Algorithm)块密码的通称,也是DES向AES过渡的加密算法。文献[10]对DES和3DES分组加密算法模型进行了分析,指出通过穷举攻击、差分攻击和线性攻击可以破解DES算法加密的数据。3DES算法对DES算法作了改进,使用三个密钥对DES进行了三重调用,增加了密文的抗攻击性,但也增加了加密和解密的复杂度。AES(Advanced Encryption Standard)高级加密标准[11-14],又称Rijndael加密法,是美国政府采用的一种区块加密标准,是一种不变长加密算法。文献[11]对AES算法进行了分析并进行了C++实验,实验证明AES具有更好的安全性。文献[12]分析了AES算法的抗攻击性,并给出了该算法在信息安全中的一些应用。文献[13]应用NVIDIA的CUDA语言对随机数据分别实现DES和AES加密,发现使用CUDA语言更加节约时间和内存;文献[14]探索实现AES快速加密的软件,提出了第一个实施AES解密的GPU架构。加密算法从DES发展到AES,引发了数据加密从变长到不变长的发展趋势。

继AES加密算法之后,一些有效的数据加密算法相继被提出。文献[15]研究了Logistic映射的时间序列、功率谱所表现出来的特性,说明了对费根鲍姆(Feigenbaum)常数研究的意义;文献[16]提出一种混沌加密算法,利用正切函数和幂函数设计混沌迭代函数,算法具有很好的发散性,但加、解密运算速度慢;基于数字化混沌密码系统的改进算法[17],通过m序列随机改变混沌映射的参数,克服了混沌序列的有限状态,但子空间转换存在时间延迟,影响加密效率,且难以体现混沌迭代的随机性;文献[18]利用混沌系统对初始条件的敏感性及混沌轨道的非周期性,通过增加密钥参数数量,增强了加密数据的安全性,但也增加了加密、解密难度;基于约瑟夫环的数据不变长加密[19],算法实现简单,运算速率快,但安全性较低,容易被破解;基于改进的Logistic混沌映射的数字图像加密[20],能够抵抗明文统计的攻击,密钥空间大,但算法复杂;文献[21]通过增加放大因子,获得更加随机的混沌序列,但增加了映射的复杂度;基于量子Logistic映射的小波域图像加密[22],加密算法敏感性强、安全性高,但效率低。

针对目前数据不变长加密存在的不足,提出了一种基于改进的Logistic映射的数据不变长加密算法,该算法运行时间短、效率高。实验结果表明,该算法抗攻击性强,安全性高。

1 Logistic映射及其改进

1.1Logistic映射

Logistic映射是一个非线性迭代方程,虽然具有确定的形式,但却能产生完全随机的、对混沌系数μ的动态变化和初值极x0为敏感的混沌序列。利用混沌序列进行数据加密具有非常强的抗破译能力。Logistic映射的一般形式为:

xn+1=μ×xn×(1-xn)

(1)

式中,xn为映射变量,0≤xn≤1;μ为系统参数,0≤μ≤4。当3.569 945 673≤μ≤4时,该映射处于混沌状态,产生实值混沌序列。若选定μ=3.7的Logistic映射产生混沌序列,即xn+1=3.7xn×(1-xn),xn∈(0,1),该映射对不同初始值进行迭代后的结果如图1所示。

图1 Logistic混沌序列

根据图1,该映射对初始值非常敏感,产生的序列随机性强,且输出均分布在(0,1)内。

1.2 改进的Logistic映射

μ落在区间3.569 945 673……<μ<4内时,Logistic映射产生的序列处于混沌状态,且μ取值为4时,混沌迭代方程xn+1=4×xn×(1-xn)能产生最佳混沌效果,但加密失去一定的安全性。为使加密数据更加安全,可将式(1)中的混沌系数μ用一个值域上限接近4的表达式代替,利用参数不停的无周期地变化性,增加数据的安全性。基于上述思想,将logistic映射改为以下模型:

xn+1= [μ0+(4-μ0)×cos((10-6+xn)×π/2)]×

xn×(1-xn/n)

(2)

图2 改进的Logistic混沌序列

1.3 安全性分析

对比图1和图2,改进的Logistic映射放大了原Logistic映射的结果范围。假设明文数据流中每个字节的十进制值为k,原Logistic映射加密后其值落在[0,k]之间,改进的Logistic映射加密后其值落在[0,100k]之间,数值映射范围扩大了100倍。根据图2,若随机给定迭代次数n,可得到具有高随机性的密钥Key(n),用这些秘钥加密明文可得到更不可预测的密文序列,安全性更高。

2 数据加密与解密

2.1 数据加密

2.1.1 加密算法描述

给定一个十进制序列X=(x1,x2,…,xn),数据加密算法描述如下:

(1) 将十进制序列X转化为n×1阶二进制串组成的矩阵,并将n×1阶矩阵转化为n×m阶矩阵X′。X′=(x11,x12,…,x1m;x21,x22,…,x2m;xn1,xn2,…,xnm),其中X′的每个元素xij(i=1,2,…,n;j=1,2,…,m)由0、1二进制串组成(0、1的个数由加密算法中的参数n决定)。若X由n个十进制数组成,则X′由n×m个二进制数组成,转化的空间复杂度为S(n)。

(2) 应用Logistic映射对(1)中n×m阶矩阵X′的每个元素进行加密,得到加密后的n×m阶矩阵Y′。

设Y′=(y11,y12,…,y1m;y21,y22,…,y2m;yn1,yn2,…,ynm),yij∈{0,1},(i=1,2,…,n;j=1,2,…,m),Y′与X′大小相同,都是n×m阶矩阵。

(3) 将(2)中的n×m阶矩阵Y′转化为n×1阶二进制串组成的矩阵,再转化为十进制密文序列Y=(y1,y2,…,yn)。

其中,密文序列Y与明文序列X长度一样,都是n。

2.1.2 加密算法实现

Step1 输入参数

明文数据X,密钥(n,m,nb)

n:十进制数用n个二进制数表示

m:用户自定义的随机数

nb:其他进制数转十进制的基数

Step2 加密数据

(1) 开始计时;

(2) 计算X的长度lX并将其转化为二进制数;

(3) 遍历所有的二进制数,将二进制数转化为对应矩阵;

(4) 遍历矩阵中所有的数,用改进的Logistic映射对矩阵中每个数据进行加密;

(5) 得到加密数据并将其转化为十进制数;

(6) 计时结束,查看内存使用情况。

2.2 数据解密

2.2.1 解密算法描述

若序列Y=(y1,y2,…,yn)为经过加密变换后得到的序列,则其解密算法描述如下:

(1) 将十进制序列Y转化为n×1阶二进制串组成的矩阵,并将n×1阶矩阵转化n×m阶矩阵Y′。Y′=(y11,y12,…,y1m;y21,y22,…,y2m;yn1,yn2,…,ynm),其中Y′的每个元素yij(i=1,2,…,n;j=1,2,…,m)由0、1二进制串组成(0、1的个数由解密算法中的参数n决定)。若Y由n个十进制数组成,则Y′由n×m个二进制数组成,转化的空间复杂度为S(n)。

(2) 应用Logistic逆映射对(1)中n×m阶矩阵Y′的每个元素进行解密,得到解密后的n×m阶矩阵X′。

设X′=(x11,x12,…,x1m;x21,x22,…,x2m;xn1,xn2,…,xnm),xij∈{0,1},(i=1,2,…,n;j=1,2,…,m),X′与Y′大小相同,都是n×m阶矩阵。

(3) 将(2)中的n×m阶矩阵X′转化为n×1阶二进制串组成的矩阵,再转化为十进制明文序列X=(x1,x2,…,xn)。

其中,密文序列Y的长度与明文序列的X长度一样,都是n。

2.2.2 解密算法实现

Step1 输入参数

密文数据Y,密钥(n,m,nb)

Step2 解密数据

(1) 开始计时;

(2) 计算Y的长度lY并将其转化为二进制数;

(3) 遍历所有的二进制数,将二进制数转化为对应矩阵;

(4) 遍历矩阵中所有的数,对矩阵中每个数用改进的Logistic逆映射进行解密;

(5) 得到解密后的数据并将其转化为十进制数;

(6) 计时结束,查看内存使用情况。

3 实验结果及分析

3.1 实验平台

PC机配置为:Intel(R)Core(TM)i5-4200MCPU@ 2.5GHz2.5GHz,内存4GB,win7 32位操作系统。通过MATLAB2014a编写程序实现上述加解密算法。

3.2 实验结果与分析

选取50组介于0~255的数据进行实验,每组数据含16个元素。改进的Logistic模型中xn和n都是变量,不需要赋初值。

3.2.1 抗攻击性分析

(1) 信息熵

根据香农定理[23],熵是用来描述信息的不确定性,反映含有信息多少的信息量。数据越混乱,所含的信息就越少,信息熵就越大。数据的信息熵的计算公式为:

(3)

式中,P(mi)为数据mi的概率;n为数据的个数。表1显示了约瑟夫环算法、AES算法、Logistic算法和改进的Logistic算法的信息熵差异,改进的Logistic算法的信息熵达到百万级,其他三种算法的信息熵都在1 000以内,改进的Logistic算法的抗攻击性更好。

表1 信息熵比较

(2) 数据相关性

实验对加密数据与原始数据进行了相关性分析。若加密数据与原始数据的相关性越大,加密效果越差;反之,加密效果越好。相关系数的计算公式如式(4)所示[24]:

(4)

式中,x、y表示原始数据与加密数据;K表示数据的字节个数;E(x)表示x的数学期望;D(x)表示x的方差;cov(x,y)代表x、y的协方差;rxy表示x、y的相关系数。表2比较了四种算法的数据相关性计算结果,AES的数据相关性最低,改进的Logistic映射与约瑟夫环接近且显著低于原Logistic算法,改进的Logistic算法的抗攻击性明显提高。

表2 数据相关最小相关比较

3.2.2 密钥空间

根据Kerckhoff准则[25],一个好的加密算法应该具备足够大的密钥空间。改进的Logistic算法的n、m(可无穷大)、nb都是十进制小数,假设计算机精度为10-15,那么密钥空间为3×1045>1045。四种算法的密钥空间比较见表3所示,改进的Logistic算法的密钥空间最大,比约瑟夫环算法大约1015倍,可更好抗击穷举法的攻击。

表3 密钥空间比较

3.2.3 算法复杂度

改进的Logistic算法使用简单运算,使每个加密数据在随机算法中迭代1次,保证算法安全的基础上尽可能减少了加密计算量。在上述搭建的平台下,分别对四种加密算法进行实验。每次实验分别对四种算法连续采样50次,得到四组实验样本。表4为四种算法的计算复杂度对比。加密同样的数据,四种算法的加密时间有较大的差异,根据统计平均值来分析,改进的Logistic算法加密时间最短,需要21ms;根据标准差分析,改进的Logistic算法波动最小;改进的Logistic算法相对Logistic算法、约瑟夫环算法和AES算法复杂度分别下降67.2%、62.5%和96.8%,因此改进的Logistic算法计算复杂度最低。图3为四种算法的加密时间比较,改进的Logistic算法的时间曲线比其他三种加密算法都低,所用时间最少,计算复杂度低,更适合实时保密系统。

表4 计算复杂度对比

图3 加密时间对比

改进的Logistic算法对全部数据主要进行3次大数量级运算,保证算法安全的基础上尽可能减少了计算机的内存消耗。在上述搭建的平台下,分别对四种加密算法进行实验。每次实验分别对四种算法连续采样50次,得到4组实验样本。表5为四种算法的内存消耗对比。加密同样的数据,四种算法的内存消耗有较大的差异,根据平均值分析,改进的Logistic算法内存消耗最少,消耗内存519 306 772KB;根据标准差分析,Logistic算法内存消耗恒定,改进的Logistic算法开始存在泼动,渐渐趋于恒定;改进的Logistic算法相对Logistic算法、约瑟夫环算法和AES算法内存消耗分别下降21%、24%和31.7%,故改进的Logistic算法内存消耗最少。图4为四种算法的内存消耗比较,改进的Logistic算法的时间曲线比其他三种加密算法都低,消耗内存最少。

表5 内存消耗对比

图4 内存消耗对比

3.2.4 加密敏感性

敏感性分析主要考察对密钥和明文的敏感性,其操作方法是对明文或密钥中做微小的改变,计算通过加密算法得到的对应密文的变化率CRC(Thechangerateofciphertext),其计算公式为:

(5)

表6 改进logistic算法对密钥敏感性测试

表7 约瑟夫环算法对密钥敏感性测试

4 结 语

针对数据加密时间长、内存消耗大和加密后长度改变的问题,提出一种基于改进的Logistic映射的数据不变长加密算法。该算法进行数据加密,不仅加密所需时间短、内存消耗小,而且可以保证加密后的数据与原数据长度相同,抗攻击性能突出。

[1] Masui M,Ishii H,Anan T,et al.Document data encryption method and document data encryption system: EP2157560[P/OL].2009-06-08.[2010-02-24].http://xueshu.baidu.com/s?wd=paperuri%3A%28d746826a6b6fa22be46f1758 c47a45d1%29&filter=sc_long_sign&tn=SE_xueshusource_2kduw22v&sc_vurl=http%3A%2F%2Fwww.freepatentsonline.com%2FEP2157560.html&ie=utf-8.

[2] Kirichenko A.Data encryption:7319751[P/OL].2002-10-11.[2008-01-15].http://xueshu.baidu.com/s?wd=paperuri%3A%28e5106cf7be864c61b21489baec7837fa%29& filter=sc_long_sign&tn=SE_xueshusource_2kduw22v&sc_vurl=http%3A%2F%2Fwww.freepatentsonline.com%2F7319751.html&ie=utf-8.

[3] Diffie W,Hellman M E.New directions in cryptography[J].IEEE Transactions on Information Theory,1976,22(6):644-654.

[4] Biryukov A,Cannière C D.Data encryption standard (DES)[M]//Encyclopedia of Cryptography and Security.New York,NY,USA:Springer US,2005:129-135.

[5] US Department of Commerce.Data encryption standard (DES):FIPS PUB 46-2[S].USA:National Institute of Standards and Technology,1999.

[6] 王立胜,王磊,顾训穰.数据加密标准DES分析及其攻击研究[J].计算机工程,2003,29(13):130-132.

[7] 靳冰,赖宏慧,贾玉珍.DES加密算法的安全分析[J].华南金融电脑,2007,15(2):71-73.

[8] 狄冬丰.基于C++平台下实现DES算法[J].长沙通信职业技术学院学报,2013,12(2):35-38.

[9] Saputra H,Vijaykrishnan N,Kandemir M,et al.Masking the energy behavior of DES encryption[smart cards][C]//Design,Automation and Test in Europe Conference and Exhibition,2003:84-89.

[10] Zhang Y.Analysis of 3DES encryption algorithm[J].Computer & Digital Engineering,2014,42(8):1468-1471.

[11] 吴小博.AES加密算法分析与C++编程实现[J].计算机安全,2007(12):44-46.

[12] 张金辉,郭晓彪,符鑫.AES加密算法分析及其在信息安全中的应用[J].信息网络安全,2011(5):31-33.

[13] Luken B P,Ouyang M,Desoky A H.AES and DES encryption with GPU[C]//22nd International Conference on Parallel and Distributed Computing and Communication Systems,2009:67-70.

[14] Osvik D A,Bos J W,Stefan D,et al.Fast software encryption[C]//17th International Workshop on Fast Software Encryption.Springer,2010:75-93.

[15] 施伟锋.Logistic映射及其混沌特性研究[J].光电技术应用,2004,19(2):53-56.

[16] 高昊江,张宜生,梁书云,等.一种新的混沌加密算法及其应用[J].小型微型计算机系统,2006,27(4):655-657.

[17] 管春阳,高飞.一种基于混沌序列的加密算法[J].北京理工大学学报,2003,23(3):363-366.

[18] Frey D R.Chaotic digital encoding: an approach to secure communication[J].IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing,1993,40(10):660-666.

[19] 林清波,曾炳生.一种高效的数据不变长加密算法及其实现[J].福建农林大学学报(自然科学版),2005,34(4):540-544.

[20] 徐兵,袁立.基于改进Logistic混沌映射的数字图像加密算法研究[J].计算机测量与控制,2014,22(7):2157-2159.

[21] 韩春艳,禹思敏.改进的Logistic映射及其动力学特性[J].中国海洋大学学报,2015,45(5):120-125.

[22] 罗玉玲,杜明辉.基于量子Logistic映射的小波域图像加密算法[J].华南理工大学学报(自然科学版),2013,41(6):53-62.

[23] Shannon C E.Communication theory of secrecy systems[J].The Bell System Technical Journal,1949,28(4):656-715.

[24] 郭毅,邵利平,杨璐.基于约瑟夫和Henon映射的比特位图像加密算法[J].计算机应用研究,2015,32(4):1131-1137.

[25] Kerckhoffs A.La cryptographie militaire[J].Journal des Sciences Militaires,1883,9:5-83.

AN ENCRYPTION ALGORITHM KEEPING DATA LENGTH UNCHANGED BASED ON MODIFIED LOGISTIC MAP

Yang Dingding Wang Jing Chen Shiqiang*

(SchoolofScience,HubeiUniversityforNationalities,Enshi445000,Hubei,China)

An encryption algorithm keeping data length unchanged based on modified Logistic map is proposed for encryption with length unchanged. By using the unpredictability of the chaotic sequence generated by this mapping, the sequenceXisencryptedwithdatalengthunchanged.ThebitlengthofplaintextXisn,andthebitlengthofciphertextYobtainedafterthealgorithmisusedtoencryptXisn.Experimentalresultsshowthatthealgorithmisefficient,lessmemoryconsumption,stronganti-attack,andisgenerallyapplicabletotheencryptionanddecryptionapplicationswithoutchangingthedatalengthrequirements.

Encryption with length unchanged Logistic map Symmetric encryption Chaotic sequence

2016-03-29。国家民委科研项目(14HBZ014);国家科技支撑计划课题(2015BAK27B03)。杨鼎鼎,硕士生,主研领域:混沌密码学及图像处理。王静,硕士生。陈世强,教授。

TP

ADOI:10.3969/j.issn.1000-386x.2017.05.051

猜你喜欢
加密算法二进制解密
加密文档排序中保序加密算法的最优化选取
用二进制解一道高中数学联赛数论题
炫词解密
解密“一包三改”
有用的二进制
炫词解密
炫词解密
有趣的进度
DES加密算法的实现
基于整数矩阵乘法的图像加密算法