伍朝阳,周 瑛
(福建技术师范学院,福建 福清 350300)
随着通信技术和因特网的飞速发展,人们对信息安全的重要性越来越重视了.图像是人们熟知的媒介并在网络上广泛的传播.为了保护重要图像和隐私图像,人们提出了多种加密方法[1-3].混沌理论作为一种非线性科学,具有对系统参数和初始条件高度敏感性、伪随机性、各态遍历性和可重复性等特点,非常适合用来加密.目前相关人员已经提出了很多基于混沌理论的图像加密方法[4-6].其中有许多加密算法是基于低维混沌映射[7-9].低维混沌映射简单方便,但是具有小的密钥空间和系统参数,用来进行图像加密并不十分安全.采用高维混沌映射来产生随机序列会使图像加密系统更加安全.高维混沌系统有超过1个正的李雅普诺夫指数.与低维混沌系统相比,高维混沌系统能够产生更加复杂的动态行为和更高的随机性[10-15].笔者拟用5D超混沌系统产生伪随机序列,并对序列进行预处理,产生置乱矩阵,最后对图像作扩散操作,以进一步增强图像的安全性.
5-D超混沌系统[16]定义如下:
(1)
其中a1,a2,a3,a4,a5,a6,a7是系统参数.当a1=30,a2=10,a3=15.7,a4=5,a5=2.5,a6=4.45,a7=38.5时,5D超混沌系统处于混沌状态并生成5个随机序列.混沌系统的序列分布如图1所示.
图1 混沌序列分布
假设明文图像P是大小M×N的灰度图像,其中M和N分别是图像的行和列.
随机序列预处理步骤如下:
(ⅰ)根据密钥计算系统(1)的迭代初始值,得到
(2)
(ⅱ)迭代系统(1)N0次去除暂态效应,
其中floor(x)表示返回小于等于x的最大整数.
(ⅲ)继续迭代系统(1)MN/4次,产生5个随机实数序列,即X=(x1,x2, …,xMN/4),Y=(y1,y2, …,yMN/4),Z=(z1,z2, …,zMN/4),U=(u1,u2, …,uMN/4),V=(v1,v2, …,vMN/4).
(ⅳ)从5个序列中选择4个序列,并将它们组合成长度为MN的新序列.根据排列组合理论,共有120 种组合方式.例如K1=(Y,Z,V,X),K2=(X,V,Z,U),K3=(V,X,Z,Y),K4=(U,Y,Z,V).
[g,h]=sort(K4),
其中:sort(x)表示对序列x按大小进行排序;i=1, 2, …,MN;j=1, 2, 3;g为新的序列;h为序列g的索引.
置乱方法具体如下:
(ⅱ)对矩阵S按列进行排序得到索引矩阵C;
(ⅲ)对矩阵C进行列扩展得到矩阵CE.以矩阵C中的相应元素作为行坐标,以该元素所在的列作为列坐标.假设矩阵C中第e行元素为Ce,1,Ce,2,…,CeN,那么矩阵CE中第e行元素为(Ce,1,1),(Ce,2,2),…,(CeN,N).
(ⅳ)以CE中的元素对作为坐标找到矩阵S中对应的元素并按大小进行排序,得到排序后的坐标矩阵T.
(ⅴ)利用矩阵T对明文图像P进行置乱,得到置乱图像P′.
为了更好地阐明置乱过程,现举例说明.假设明文图像P和随机矩阵S是4×4的矩阵,如图2所示.接下来进行以下操作:
图2 置乱过程
(1)对随机矩阵S按列进行升序排序,得到索引矩阵C.
(2)以C中的元素作为行,以该元素所在的列作为列进行扩展,得到由序列对组成的扩展矩阵CE.
(3)以CE中每一行的序列对作为坐标,找到矩阵S中对应元素并进行升序排序,得到排序后的矩阵T.
如矩阵CE中第2行元素分别是(2,1),(1,2),(3,3)和(2,4).以这4个元素对作为坐标对应的S中的元素分别为0.38,0.42,0.98和0.31,对它们按升序排序得到0.31,0.38,0.42和0.98,对应的索引号为2,3,4,1.因此矩阵T中的第2行元素为(1,2),(3,3),(2,4)和(2,1).
(4)以矩阵T作为置乱矩阵对明文图像P进行置乱,得到置乱图像P′.
扩散过程具体如下:
(ⅲ)通过如下公式得到序列Q:
其中:circshift[u,v,w]表示对二进制序列u进行w比特的循环移位操作;LSB(w)为向量w的最低有效位,二进制值v决定循环移位的方向,v=1为右循环,v=0为左循环.
(ⅳ)变换二进制序列Q为十进制形式.
(ⅴ)通过如下公式得到扩散序列B:
(ⅵ)变换序列B到图像矩阵P″,P″即为所求加密图像.
解密过程是加密过程的逆运算,这里就不再详述.
图3 明文图像及其加密图像和解密图像
本研究的密钥空间是由5D超混沌系统的5个初始值决定的.如果系统精度是10-15,那么系统的密钥空间是(1015)5=1075≈2249.本研究设计的算法5DHS与2DDTM[17],SFTS[18],SPQCM[19]的密钥空间比较结果见表1.
表1 密钥空间的比较
由表1可知,5DSH比2DDTM,SFTS,SPQCM具有更大的密钥空间,能够有效地抵御暴力攻击.
一个好的加密系统应当对初始密钥很敏感.当其中的一个密钥发生微小改变(10-15)而其余密钥保持不变时,系统将会生成2个完全不同的加密图像.同样,当仅有一个密钥发生微小变化(10-15)时,系统也不能够正确的解密图像.密钥敏感性测试结果如图4所示,这4幅图分别是只有x1,x2,x3,x4发生变化而其他值保持不变得到的图像.不同加密和解密图像之间的差异见表2.
图4 密钥敏感性测试结果
表2 密钥发生微小变化时所获得的加密与解密图像
由图4和表2可见:当密钥发生微小改变时,将会生成完全不同的加密图像;将发生微小变化的密钥用于解密,也不能获得正确的解密图像.这说明系统对密钥是敏感的.
加密图像的直方图应当尽可能分布得比较均匀.3个明文图像的直方图及明文图像的加密图像的直方图如图5所示.
图5 明文图像的直方图及明文图像的加密图像的直方图
由图5可见,明文图像的像素值集中在某些区域,而加密图像的直方图分布更加均匀平滑.因此所提出的算法能够抵御统计攻击.
采用卡方测试[20-21]来衡量直方图的均匀度χ2,
其中oi和ei分别为像素灰度级的实际分布和期望分布,
表3 直方图的卡方测试
由表3可知,5DSH的测试值都小于理论值293.25,因此可以认为5DSH的直方图分布是均匀的并能够通过卡方测试.
明文图像的相邻像素具有很大的相关性,而加密图像相邻像素的相关性应该接近为0.像素x和y之间的相关性系数rxy定义为
其中
分别从明文图像Peppers及其加密图像中随机选择7 225对水平、垂直和对角方向的相邻像素,图6示出了明文图像Peppers及其加密图像在3个方向上的相关性结果.
图6 明文图像Peppers及其加密图像的在3个方向上的相关性结果
由图6可见,明文图像之间具有很强的相关性,而加密图像之间的相关性大大减小.
明文图像Peppers及其加密图像在3个方向上的相关性系数见表4.
表4 明文图像Peppers及其加密图像在3个方向上的相关性系数
由表4可知,明文图像的像素之间相关性较大,而加密图像像素之间的相关性较小.
信息熵是衡量随机性最重要的特征.令m是信息源,信息熵定义为
其中p(mi)为信号mi的频率,L为mi的总和.加密图像的信息熵见表5.
表5 信息熵的比较
由表5可知:加密图像的信息熵接近于理想值8,因此5DSH能够抵御熵攻击;5DSH比2DDTM和SFTS方法具有更大的信息熵.
表6 局部熵
由表6可知,所有的局部熵都能够通过置信度为0.001和0.01的测试,只有1个不能通过置信度为0.05的测试.由此可见,用5DSH得到的加密图像具有很高的随机性并能够抵御熵分析攻击.
像素改变率(Number of Pixel Changing Rate,NPCR)和一致平均改变强度(Unified Average Changed Intensity,UACI)是衡量明文敏感性非常重要的2个指标.像素改变率和一致平均改变强度的计算公式分别为
其中:
C1和C2分别为明文图像改变一个像素前后所得到的加密图像.像素改变率和一致平均改变强度的计算见表7.
表7 加密图像Peppers的像素改变率和一致平均改变强度
由表7可知,5DHS的像素改变率和一致平均改变强度结果比DKSM和SFTS的更好,说明它能够更有效抵御差分攻击.
一个好的加密系统应该能够抵御剪切和噪声攻击.以Peppers加密图像(图3(c)加密)为例,图7示出了将其剪切1/8,1/4,1/2后的图像及相应的解密图像.
图7 Peppers加密图像的剪切攻击图像及相应的解密图像
由图7可见,加密图像丢失1/8,1/4和1/2数据时,解密出的图像虽然含有噪声,但是图像是可以辨认的.
将常用的椒盐噪声和高斯白噪声加到Peppers加密图像(图3(c)加密),相应的解密图像如图8所示.
图8 Peppers加密图像噪声攻击后的解密图像
由图8可见,当高斯白噪声的方差由0.001变到0.01时,解密图像上会出现更多噪声点,但是解密的图像还是可辨认的.受椒盐噪声攻击的图像具有类似的性质.
本研究提出了一种基于5D超混沌的图像加密算法.首先,根据给定的初始密钥,产生5D超混沌系统的初始迭代值.然后混沌序列被预处理产生新的序列.基于列排序和行排序的二维置乱方法被提出,采用循环移位去增强系统的安全性,最后对图像进行扩散处理,得到加密图像.通过采用高维混沌系统,能够产生随机性更好的序列.实验结果和理论分析表明,作者提出的算法具有大的密钥空间,能够抵御差分攻击、统计攻击、暴力攻击、剪切和噪声攻击等.未来会对系统的效率以及运行时间进行进一步的分析.