为了提高图像加密算法的安全性,我们提出一种新的基于超混沌映射的图像加密算法。首先,将彩色图像分解成三个通道分别是R、G、B,然后利用Chen超混沌系统产生的4条混沌序列对每个通道的像素位置进行置乱;接着以4条混沌序列为基础条件对每个通道进行位平面置换和按位取反操作来实现像素值的扰乱,最后重组位平面及3个颜色通道即可获得加密图像文件。
一、Chen超混沌系统
本文提出的加密算法是采用Chen超混沌映射产生的混沌序列来对图像进行加密的。Chen系统的定义如下:
式中,a,b,c,d,k是系统参数,当a=36,b=3,c=28,d=16以及-0.7≤k≤0.7。Chen系统进入超混沌系统,并且可以产生四条混沌序列。利用本文给出的参数a= 36,b=3,c=28,d=16和k=0.2,我们可得该系统的Lyapunov指数是λ1=1.552,λ2=0.023,λ3=0,λ4=- 12. 573,其超混沌吸引子见图1所示。
由于超混沌系统具有两个正的Lyapunov指数,因此超混沌系统的预测时间远远长于一维混沌系统的预测时间,即它的安全性高于基于传统混沌的加密算法.我们用四阶Runge Kutta方法计算得出四条序列x,y,z,q。为了使得混沌序列具有较好的随机性,我们将四条混沌的序列的整数部分去除,只保留小数部分,这样我们所得到混沌序列在0到1之间,我们用这些序列
来对图像文件加密。
二、基于超混沌映射的彩色图像加密算法描述
该图像加密算法包括两部分:像素位置置乱和像素值扩散。
首先利用Chen超混沌系统产生四条混沌序列分别是x,y,z和q,然后利用混沌序列x,y,z对像素的位置进行置乱,利用混沌序列x,y,z和q对置乱后的图像文件进行交换位平面和按位取反操作来扩散像素的值。本文提出的图像加密算法的过程见图2所示。
图2(a)所示的是图像加密算法的框图,置乱和扩散的详细框图见图2(b)、(c)所示。
根据图2所示,本文提出的加密算法的详细步骤如下:
步骤1将彩色图像A(m,n,3)分解成三种颜色通道的图像分别是红R(m,n),绿G(m,n),蓝B(m,n),其中m,n是图像的长和宽;
步骤2在初始值x0,y0,z0,q0和系统参数a,b,c,d,k的条件下,利用Chen混沌映射产生混沌序列分别是:
步骤3 _利用排序数对三条混沌序列x,y,z进行排序操作:
其中[ lx fx]=sort(x)是排序的索引函数,fx是对戈升序排列后得到的新序列,lx是fx的索引值,ly,lz,lq与lx相同。
步骤4根据式(3),选择序列x,y,z的索引值组合来置乱R(m,n),G(m,n),B(m,n),置乱后所得矩阵为Rs(m,n),Gs(m,n),Bs(m,n),如图2(b)所示。
步骤5将式(2)中的ly,lz,lq与lx两两相乘得到新的矩阵m1,n1,k1,如以下公式所示:
步骤6分别将置乱后的图像Rs(m,n),Gs(m,n),Bs(m,n)转换为八个位平面,按照式(5)将每个像素的第1、2个位平面和第7、8个位平面,第3,4个位平面和第5、6个位平面进行置换,位平面的置乱就相当于像素值在扩散:
步骤7将步骤2所生成的混沌序列两两相乘,得到三个大小相同的二维矩阵,见式(6),将e(i,j),g(i,j),f(i,j)转换为一维矩阵e(τ),g(τ),f(τ),τ=1,2,3,…,m×n×8。
步骤8将步骤6所得的位平面转换成一维矩阵Rs(τ),Gs(τ),Bs(τ),τ=1,2,3,…,m×n×8,然后按照以下代码进行按位取反操作,Gs(τ),Bs(τ)的取反操作与Rs(τ)的类似,不同之处在于Gs(τ))与g(τ)对应,Bs(τ)与f(τ)相对应:
步骤9重组步骤7所得的位平面,可得三个矩阵Rc,Gc,Bc,像素值扩散的过程如图2(c)所示;合并Rc,Gc,Bc即可得到加密图像B。
加密过程是解密过程的逆过程。接收方从发送方获取密钥后,然后按照加密算法的逆操作即可获得正确的解密图像。
三、模拟结果分析
在Matlab 7.1环境下,对256×256的lena彩色图像,在x0=0.3,y0=0.4,zo=0.5,qo =0.6的条件下进行仿真实验。图3中我们给出了加密图像和解密图像,其中图3(a)是原始图像,
图3(b)是加密图像。图3(b)显示出我们的实验结果跟原始图像没有任何关系,从而表明我们的算法得到了很好的加密效果。由加密过程的逆过程可以获得解密图像如图3(c)所示。
四、安全性分析
图像加密算法的安全性分析主要包括密钥空间、灵敏性分析及抗统计攻击分析等。
1、密钥分析
本加密算法中,Chen系统的初始值可以看作是该加密算法的密钥,所以在该算法中共有5个密钥分别是(xo,yo,z0,qo,k)。如果计算精度是10 -14,则密钥空间是1014×1014×1014×1014×1014= 1070—2233。密钥空间足够大可以有效地抵抗穷举攻击。
2、密钥灵敏性分析
众所周知,Chen系统产生的混沌序列对初始值和系统参数的变化是非常敏感的,这意味着当初始值有一点微小的变化,用变化后的初始值对原始图像文件加密,则得到的加密图像文件则会和原始图像无任何联系。为了测试密钥的灵敏性,使用微小差异的密钥进行解密,图4为解密后的结果。图4(a)表示xo=0. 30000000000001,其它密钥不变的解密图;与图4(a)一样,图4(b)、(c)与(d)分别表示yo=0.40000000000001,zo=0. 50000000000001,qo=0.60000000000001其它密钥不变的解密图。图4(a)、(b)、(c)、(d)可以说明,只要密钥中存在微小的差异,都不能恢复原图像。可见,该算法具有较强的密钥灵敏性,可以有效地抵抗穷举攻击。
3、灰色直方图分析
Shannon指出利用统计分析可以破解许多密码系统。我们通过直方图的比较,来分析加密前后图像统计特性的改变。图5(a)、(c)和(e)所示的是原始图像“Lenna”的三个颜色通道的灰度直方图,其对应加密图像的直方图见图5(b)、(d)和(f)。我们比较三个颜色通道加密前后直方图的变化,可以得出以下结论:加密前的图像像素比较集中,即在(0,255)的两端像素分布比较少,而中间分布的较多,而加密后的图像像素分布比较均匀,两图像相似度较低,攻击者难以利用像素灰度值的统计特性恢复原图像。由此可见,该算法具有很好地抵御统计分析能力。
4、相邻像素之间的相关性分析
图像相邻像素之间的相关性非常大,图像的这种特殊的特性使得加密图像极易受到统计攻击,因此,良好的加密算法必须降低加密图像相邻像素之间的相关性。为了对相邻像素之间的
相关性进行分析,我们在原始图像和加密图像中分别随机选择3000对相邻像素点对(包括水平方向、竖直方向、对角方向的相邻点),并利用式(7) -式(10)计算每对点的相关系数。
其中x和y是相邻像素的灰度值,cov(x,y)是协方差,D(x)是方差,E(x)是中值。
图6(a),(c)和(e)所示的是原始图像R,G和B通道的水平方向上的相关系数,相应的加密图像的水平方向的相关系数见图6(b),(d)和(f)。
从图6(b),(d)和(f)和表1可以看出加密图像文件图像素间的相关性很低,几乎接近0,再次说明,本加密算法具有很强的抗统计攻击能力。
小知识之Lyapunov指数
Lyapunov指数是衡量系统动力学特性的一个重要定量指标,它表征了系统在相空间中相邻轨道间收敛或发散的平均指数率。对于系统是否存在动力学混沌, 可以从最大Lyapunov指数是否大于零非常直观的判断出来: 一个正的Lyapunov指数,意味着在系统相空间中,无论初始两条轨线的间距多么小,其差别都会随着时间的演化而成指数率的增加以致达到无法预测,这就是混沌现象。