贾忠祥 柳银萍
摘要:针对现有的基于比特位层面的图像加密算法中,比特位置乱过程中存在的局限性和局部性问题,提出了一种比特位全局置乱的加密算法,即在置乱过程中,位平面的重组及之后的置乱操作均随机进行,整个置乱过程不只局限在某些位平面之内进行,由此达到全局置乱的效果.该加密算法运用了混沌映射系统,可以同时实现像素的置乱和扩散操作;另外,为了增加对明文的敏感性和有效抵抗攻击,加入了位平面的自适应过程,该过程利用图像不同位平面数据之间的异或運算来进一步修改图像数据.经实验表明:该加密算法对明文和密钥非常敏感,可有效抵抗选择明文攻击,且密文图像像素分布均匀,具有良好的图像加密效果.
关键词:比特位层面; 图像加密;全局置乱; 混沌映射系统; 自适应
中图分类号:TP309.7
文献标志码:A
DOI: 10.3969/j.issn.1000-5641. 2019.06.007
0 引言
视觉是人们获得感知信息的主要方式,视觉信息的主要来源是图像,在计算机网络技术和通信技术快速发展的同时,在网络环境中存储和传输的数字图像的数量更是急剧增多,数字图像成为了网络中信息交流的主要信息载体,然而随着图像数量的增加,暴露在网络中的信息也越来越多,其中包括一些个人的隐私信息、企业乃至国家的涉密信息,所以网络图像信息的安全问题日益受到重视,数字图像与一般的文本不同,具有数据量大、相关性强以及冗余度高等特点,这使得传统的密码学方法,如DES(Data Encryption Standard)和AES(Advanced Encryption Standard)应用到图像加密场合的效果并不理想,在此背景下,基于混沌的图像加密策略引起了广泛的关注[1-7].
混沌系统具有伪随机性、遍历性和初值敏感性等特点,其在密码学的应用中具有明显的优势,同时,混沌序列可以由混沌系统简单高效地生成,故能满足加密需求.图像加密一般采用置乱扩散机制:置乱过程是通过改变像素的位置来实现像素置乱;扩散过程是对像素值的修改.早期所研究的图像加密算法都只是基于像素层面的置乱和扩散,并不能打破图像固有的特性,故而加密效果一般[4-7].因此,近年来越来越多的研究着眼于基于比特位层面的加密,并获得了理想的加密效果,混沌系统被广泛地运用到图像加密机制的各个阶段,汪彦等提出了改进的Lorenz混沌系统[8]在混沌系统里加入了X2项和exy项,其混沌行为表现得更为复杂,并基于该改进的混沌系统进行图像加密,毛骁骁等设计了分数阶统一混沌系统[9],并运用该系统产生置换以对明文图像的像素值进行置乱,最后通过扩散得到密文图像.Ping等利用Tent和Henon混沌映射系统,第一阶段对行和列分别进行置乱,第二阶段分别对8个位平面各自进行置乱[10];但其不足之处是在第二阶段的置乱过程中没有位平面之间的比特位交换.Zhang等发现了图像的两个内在特性:高位相邻的位平面大概率具有相反的取值;图像数字矩阵中0和1的个数分布在宏观上稳定,而在微观上分布不均匀[11].针对这两个特性,文中运用CML(Coupled Map Lattice)对位平面进行置乱,在置乱中奇数层和偶数层的位平面的数据可以各自相互置乱;但其存在的不足是奇数层和偶数层之间不存在比特位的交换置乱,即置乱具有局限性.
本文基于Tent和Henon混沌系统,提出了新的比特位平面的全局置乱算法,对高位(在二进制表示中权重较大的位)和低位f在二进制表示中权重较小的位)采用不同的操作:①对明文图像进行位平面分解,并进行自适应的异或运算来修改高4位的位平面,②位平面的置乱分为两个阶段:第一阶段,分别对高4位和低4位组成的图像进行像素置乱;第二阶段,通过两两分组的方法形成4个平面,进一步组成一幅新图像后再次进行像素的置乱,③经过扩散得到最终加密图像.这样就没有了文献[11]中位平面置乱时的分组限制,加密效果良好.经实验分析可知,本文提出的图像加密算法能够有效地降低相邻像素之间的相关性,有效增强抵抗选择明文攻击和已知明文攻击的能力,最终的加密图像像素分布均匀.
1 算法原理
1.1 混沌系统
混沌是非线性动力系统的固有特性,是普遍存在于非线性系统中的现象,混沌系统的伪随机性、遍历性和初值敏感性等特点,促使它在加密领域被引起广泛的关注,本文用到了以
使用Tent映射系统可以产生一维的混沌序列,或称为密钥流.Henon映射系统可以用作坐标变换,用于对像素置乱的过程中.
1.2 算法特性
在Henon映射中有a和c两个控制参数需要确定,出于安全性考虑,该控制参数由密钥流确定.用来产生密钥流的Tent混沌系统是一个迭代系统,根据初始值和参数值可以得到所需长度的密钥流序列.
在对加密效果的评价中,像素个数变化率(Number of Pixels Change Rate,NPCR)是表示当明文图像的某个像素发生改变时,经过加密得到的密文图像与由加密原文图像得到的密文图像的像素变化率.实际上,像素个数变化率描述的是加密算法对明文变化的敏感性,详细内容将在第2.5节讨论.讨论像素个数变化率的目的在于,如果采用某些攻击方法,如选择明文攻击和已知明文攻击,来攻击加密算法,攻击者可以选择一定数量的特定明文图像和对应密文图像,通过发现其中的规律以破解加密算法所采用的密钥.因此,理想的加密算法要对明文具有足够的敏感性.上述的敏感性至少要满足两个基本要求:①如果某个像素点的值发生变化,则加密过程会不同;②如果没有像素点的值发生变化,但是任意两个或多个像素点的位置发生了交换或变化而其他点保持不变,则加密过程也会不同.
综上,在确定Tent映射系统中的控制参数时,既需考虑明文图像中每个像素点的像素值,又要考虑像素点的位置信息.
1.3 加密原则
基于像素层面的加密算法的效果不够理想.因此,目前越来越多的研究都是基于比特位层面的加密[1-3,10-11].灰度图像通常只有一个道,且像素值的取值范围为[O,255].所以对于数字灰度图像,如果把所有像素值都用二进制表示,那么这些0和1因为位置的不同,所携带的信息量也不同,具体第i位比特位所携带的信息可以用公式来计算[11].根据式(5)可知,高位携带的信息更多一些.图1所示是一张图像的每一位所组成的图像,其中图l(a)图l(h)分别对应由像素值第8,7,…,1位二进制位所组成的位平面.
有研究表明,达到理想的加密效果需要改变的比特位的数目只占全部比特位的3.3%[11].因为图像普遍存在着局部分布不均匀的问题,所以加密的目标重点并非尽量多地改变数据,而是尽量改变数据的分布,使其均匀.因此,为了权衡加密效果和算法开销,算法应注重改变图像数据的分布.
1.4 图像加密算法
基于以上分析,本文提出了如下加密算法,具体步骤为如下.
(1)对于一幅大小为Ⅳ×Ⅳ的原始明文图像P,S、μ和k的计算公式分别为显然R是{bitl, bit2,…,bit8)的一个排列.
(8)从上述步骤可知,Ri代表了某个位平面,类似于步骤(6),分别把{R8,R1},{R7,R2},{R6,R3},{Rs,R4}放到对应的方框1,2,3,4中形成一个新图像.因为每个方框里是两个位平面,所以新图像的每个像素点是一个包含两位二进制位的数,最后以a3和C3(在步骤(5)中计算得到)为Henon的系统参数置乱该图像k3轮,例如,假设Ri=biti,i=l,2,…,8,并且在方框1中有一个像素点的像素值为(11)2=(2+2)10=129,如果置乱过后该点移到了方框3中,则像素值变为(11)2=(25+22)10=36,相当于8曲位平面上的一个1和lst位平面上的一个1分别移动到了6th位平面和3rd位平面上.其他情况同理,最后按照对应的权重和位平面将该2Nx2N的图像复原成N×N的密文图像,由此得到中间密文图像.
(9)继续对Tent映射系统迭代L=(N×N)次,得到实数序列Q={q1,q2,…,q),对其中的每一个数取小数点后面的l,3,5位组成3位数并对256取余得到整数序列/={ii,i2,…,i),将中间密文图像按行优先的顺序展开成一维序列P={P1,p2,…,p).对中间密文图像进行扩散操作,采用的方式为其中,加法为模256下的同余加法,SO为输入密钥.最后把P'变换成二维数字图像矩阵,便得到最终的密文图像,图3所示为图像加密的流程.
1.5 图像解密算法
加密算法中每一步均可逆,故解密算法是加密算法的逆过程.图像解密的流程如图4所示.
加密过程中的密钥有a,SO,x0,S,其中a,S和x0为输入密钥,S为根据明文图像利用式(6)计算得到.解密步骤如下.
(1)设密文大小为N×N,根据式(7)和式(8)计算得出μ和k,以μ为式(1) Tent映射系统的控制参数,x0为初始值,迭代k次以消除初态影响.
(2)通过对系统进行迭代得到实数valuei,value2,value3,实数序列T={t1,t2,…,t8)和Q={q1,q2,…,q),其中L=N×N,利用式(10)-(14)分别算得ai,ci,ki,i=1,2,3时的值和关于8个位平面的排列R,并由序列Q按加密过程所述方法得到整数序列I={i1,i2,…,i}.得到中间密文P,该过程为逆扩散过程.
(4)将中间密文P位平面分解得到8个位平面biti,i=1,2,…,8,根据R将8个位平面分成4组{R8,R1),{R7,R2),{R6,R3),{Rs,R4),并分别放到图2对应的方框1,2,3,4中形成一个新平面Y,以a3,C3为控制参数,利用式(4)所示的Henon逆映射对y中的每个点进行置乱,该过程为Henon逆置乱.同理,分别对高4位和低4位形成的平面进行Henon逆置乱过程.
(5)自適应过程的逆过程,即对于位平面进行一次式(9)的计算,可得到原明文图像的位平面,然后将8个位平面按正常顺序重组,将每个像素点的8个01位表示转换成十进制数即得到最终的解密图像.
2 实验结果和性能分析
仿真实验的明文图像为灰度图像Peppers,大小为256×256像素,其中初始值x0=0.567 812 345 6,a= 0.987 654 321 01,SO=155,根据式(6)算得S=7 714 235.图5(a)所示为明文图像Peppers,根据图5(c)可知,解密算法能够成功解密得到原图.仿真实验以VisualStudi0 2015+Opencv3.3作为实验环境.
2.1 直方图分析
像素分布直方图能直观地揭示图像中的像素值分布.明文图像的像素值一般会分布不均,攻击者可以利用统计特性攻击来获得图像中的有用信息;而密文图像使得攻击者难以从中得到有价值的信息.密文图像中的像素分布越均匀,则加密算法越理想.图像Peppers的明文和密文的像素分布直方图如图6所示.
2.2 相关性分析
理想的加密算法需要降低明文图像中相邻像素间的强相关性,该相关性可由相关系数定量描述,计算图像相关系数的方法为,在图像中随机选取10 000个像素点存入X序列,再把这些点的相邻点存入Y序列,两者的相关系数定义为
在二维数字图像中,图像的相邻关系包括:水平、垂直、对角这3种.表1所示为不同加密算法的明文图像和密文图像的相关性分析结果,
由表1可知,密文圖像的相关系数的绝对值非常接近于0.这也定量地说明了密文像素的弱相关性,通过比较,本文算法相关性方面的表现要优于其他文献中的加密算法.
除了利用相关系数表示之外,以相邻两点的像素值分别作为横、纵坐标描绘出散点图,该散点图也可以将其相关性直观地展示出来,如图7所示.图7(a)、图7(c)和图7(e)分别是明文图像中具有水平、垂直和对角关系的相邻像素形成的散点图,而与其对应的密文图像的散点图分别为图7(b)、图7(d)和图7(f).从图7中可知,明文图像的相邻像素之间有明显的相关性,而对于密文图像,散点图中的点分布均匀,毫无规律,表明本文加密算法对破坏相关性有良好的表现.
2.3 信息熵分析
借助信息熵的概念能定量地描述图像像素的混乱程度和分布情况,设X为随机变量,X= {x1,x2,…,x),p(x)为x的出现概率,则关于X的信息熵H(X)为
由信息熵的表达式H(X)可知,X分布均匀时,熵值达到最大值.在灰度图像中像素值共有256个不同取值,X分布均匀等价子每个像素值在图像中出现的频率为1/256,此时熵的理想值为8.运用本文提出的加密方案进行加密得到的密文的熵值为7.997 2,这说明其加密效果良好,表2展示的是对不同图像加密之后的信息熵值及与其他不同加密算法效果的对比.
2.4 密钥敏感性
密钥敏感性表示在密钥发生改变时密文所对应的变化程度.计算密钥敏感性常采用的方法是让密钥的数值发生很微小的变化,并计算两次加密的不同密文的差异,这种差异称作灰度均方差.灰度均方差的计算公式为其中,C为用原始密钥x0,SO,a进行加密得到的密文图像,C'为改变密钥之后再次加密得到的密文图像,m和n分别表示图像的高度和宽度.本文分别用改变x0,S0和a后的密钥来加密以得到不同的密文图像,并和原始密文图像进行比较,结果如表3所示.
在表3中,x0=0.567 812 345 61,SO=156,a=0.987 654 321 02,即分别是由对x0和a增加10-11、对SO增加1得到的.
2.5 明文敏感性
采用明文敏感性分析能够定量地评估明文图像发生微小变化对密文图像的影响.明文敏感性分析方法主要包括像素个数变化率(NPCR)和归一化平均变化强度(Unified AverageChanging Intensity, UACI).
(1) NPCR的计算公式为
对于不同的图像,通过随机修改某一像素点得到新的明文图像,并对其加密得到密文图像,最后计算其NPCR和UACI,结果如表4所示.表4的实验结果可表明,本文加密算法对明文信息变化敏感,并能有效抵抗差分攻击.
2.6 密钥空间分析
密钥空间是衡量加密算法是否能够抵抗穷举攻击的指标,密钥空间足够大才能抵御穷举攻击.本文加密算法中的密钥包括用于产生混沌序列的初值x0、系统参数a以及扩散阶段的参数S,其中x0和a是双精度实数,64 bit的计算机中双精度实数的有效精度可达到10-14/sup>,故密钥空间大小为1014/sup> x1014/sup>×256>2
3 总结
本文所提出的图像加密算法是基于比特位层面的加密,并且置乱是全局的,因此能有效破坏图像数据分布的局部不均匀性.同时,本文算法中加入了自适应过程,给一些攻击行为,如选择明文攻击等,带来了更大的挑战,并且增强了加密算法的明文敏感性.实验数据表明,本文算法打破了其他基于像素层面的加密算法和基于比特位层面的局部固定置乱的加密算法的局限,相比于其他算法获得了更好的效果.本文分别从NPCR、 UACI、信息熵、明文敏感性等角度对所提算法进行了测试实验,结果显示,该加密算法都有更好的表现.因此,本文提出的加密算法有更高的安全性和较好的应用前景.
[参考文献]
[1] ZHU z L,ZHANG W, WONG K W, et al.A chaos-based symmetric image encryption scheme using a bit-levelpermutation [J]. Information Sciences, 2011, 181(6): 1171-1186.
[2] WONG K W, KWOK B s H,LAW w s.A fast image encryption scheme based on chaotic standard map [J].Physics Letters A,2008, 372(15): 2645-2652.
[3] ALVAREZ G,LI s.Some basic cryptographic requirements for chaos-based cryptosystems [J]. InternationalJournal of Bifurcation and Chaos, 2006, 16(8): 2129-2151.
[4] ABDULLAH A H,ENAYATIFAR R,LEE M.A hybrid genetic algorithm and chaotic function model for imageencryption [J]. AEU-International Journal of Electronics and Communications, 2012, 66(10): 806-816.
[5]WANG Y,WONG K W, LIAO x F,et al. A chaos-based image encryption algorithm with variable controlparameters [J]. Chaos, Solitons& Fractals, 2009, 41(4): 1773-1783.
[6]YANG H Q,LIAO x F,WONG K W, et aI.A new block cipher based on chaotic map and group theory [Jl.Chaos, Solitons& Fractals, 2009, 40(1): 50-59.
[7]WANG Y,WONG K W, LIAO x F,et al_A new chaos-based fast image encryption algorithm [J]. Applied Soft Computing, 2011, 11(1): 514-522.
[8] 汪彦,涂立.基于改进Lorenz混沌系统的图像加密新算法[J].中南大学学报(自然科学版),2017,48(10): 2678-2685.
[9] 毛骁骁,孙克辉,刘文浩.基于分数阶统一混沌系统的图像加密算法[J].传感器与微系统,2017, 36(6): 138-141.
[10] PING P,LI J H,MAO Y c,et al.Image encryption algorithm based on chaotic maps and bit reconstruction[J]. Journal of Image and Graphics, 2017, 22(10): 1348-1355.
[11] ZHANG W, WONG K W, YU H,et al. A symmetric color image encryption algorithm using the intrinsic features of bit distributions [J]. Communications in Nonlinear Science and Numerical Simulation, 2013, 18(3):584-600.
(责任编辑:李艺)
收稿日期:2018-10-31
基金项目:国家自然科学基金(11435005,11871328);上海市科学技术委员会重点项目(18511103105)
第一作者:賈忠祥,男,硕士研究生,研究方向为计算机应用.E-mail: jonariguez@163。com.
通信作者:柳银萍,女,教授,博士生导师,研究方向为计算机数学、计算机软件与理论.
E-mail: ypliu@cs.ecnu.edu.cn.