针对当前的3D混沌映射加密算法存在安全性不高,加密速度慢、密钥空间小以及不具备抗多种攻击能力等不足,设计了三个规则:置乱规则、混淆规则与掩蔽规则,我们提出了一种基于置乱、混淆与掩蔽三规则融合3D混沌映射的图像加密算法来解决上述问题。

一、三维混沌CAT混沌映射

在二维混沌CAT映射基础上,得到了一个3D混沌CAT映射。

式(l)中,xj∈[O,1],yj∈[O,1]。该映射是一个保面积模型,因为模型式(1)的矩阵A的行列式|A|= 1。该模型具有两个Lyapunovz指数为矩阵A的两个特征值,分别为β1\β2,经计算得到:

该模型的正Lyapunovz指数较好地体现该模型处于混沌状态,使得其对初值有一定的敏感性能。

但是从上面可知,由于2D混沌映射只有一个正的Lyapunovz指数,使其安全性比较低。

对此,现将该映射扩展为3D混沌映射,将两个新的参数a、b融人到模型式(1)中,

对模型式(2)进行扩展,得到3D混沌映射的一般形式:

式(3)中,B为保证模型式(3)处于混沌状态的矩阵,矩阵B为:

模型式(4)中的ax、aY以及az均为正整数。

令ax=aY=az=2,bx=6y=bx=1,则模型(3)可变为:

从模型(5)中可知,扩展后的3D混沌映射具有更复杂的相空间以及保体积性,可显著提高加密系统的安全性。

虽然3D混沌映射具有多个正的Lyapunovz指数,其动力学行为更加复杂,相对于2D混沌映射而言,其安全性有较大的提高,但是其加密速度以及算法安全性仍存在不足,密钥空间小。因此,提出了三个规则(置乱规则、混淆规则以及掩蔽规则)来增强3D混沌映射加密算法的安全性,提高其加密速度,扩大密钥空间。

二、基于置乱、混淆与掩蔽规则融合3D混沌映射的图像加密算法

提出的加密算法主要包括三个阶段:(1)置乱规则下的置乱阶段;(2)混淆规则下的双向混淆密阶段;(3)掩蔽规则下掩蔽阶段,如图1所示。第一阶段主要是对像素块进行置乱操作,改变像素位置;第二阶段主要是混淆像素,改变像素值;第三阶段目标是对加密后的像素块进行掩蔽处理,进一步增强加密系统的安全性。

三个规则共同相互作用,与3D混沌映射融合生成的输出结果可有效的置乱和混淆初始图像与密文图像之间的关系,使得该算法具有抗多种攻击能力。

1、加密算法描述

(1)预置乱处理

假设初始图像大小为MxNx30为了达到更好的置乱效果,对初始图像的字节进行预置乱处理。先对初始图像的奇数行与列的顺序进行颠倒,随后旋转这些行与列的RGB值,通过复制每个相邻像素的R值,G值以及B值将得到的3维数组变换成一个2维数组,得到一个大小为M×3N的预置乱位图。

(2)阶段1

置乱规则下的置乱阶段

本阶段将以随机方式置乱预置乱位图中所选择的像素块,这些像素块是根据在置乱规则下迭代3D混沌映射模型所得到的数组来选择的。

1)将预处理后的位图分成E个像素块,随后迭代3D混沌映射模型式(3)T次,得到一个数组XT=(X1,X2,…,XT),其中Xi=(xi,Yi,zi),i∈[1,2,3,…,T],根据该数组以随机方式选取rxl个像素块,并对rxl个像素块进行匹配。

2)选择r(l)最为M(3N)的最大除数,且r≤16(/≤16)。

3)将像素坐标为(αr+l,βi+i)的第r×l像素块记为像素块α,β,其中:

4)令其中Lα,Jβ均为[o,1]的子区间,从而保证了每个三元X=(x,y,z)只能对应一个像素块(α,β),其中x∈Lα,y∈Jβ。则:X=(x,y,z)中的j在置乱规则中使用。

(5)从j=0开始连续不断迭代3D混沌映射模型(3)得到一个三元数组x1,X2,X3,…,每个xi中的所有元素都在区间[0,1]内。

(6)令xj代表J时刻的混沌映射模型式(3)的状态:Xi=(xj,yj,zj),然后以随机循环xj,xi+1,…,xj的方式进行置乱,使得zj与zi都在子区间Ir[o,1]内,其中,0≤r<θ,θ为本规则所引入一个特殊参数,该参数包含在密钥S1中。

(7)通过步骤(l)一步骤(6),使得与再以及xi+l相关的像素块互换。以上步骤都是在则置乱规则下进行的。令Xj对应的像素块为Hj=(|mxj|,|n,j|),则置乱规则的定义如下:

①输入模型(3)中的矩阵B,三元xo=(x0,Yo,zo)T,初始密钥S=(sl,sz,S3)以及密钥s1中的θ,令Co =0。

②将j>co作为最小引擎,使得像素块Hi不被标记,令r=|θzi|。

③将i>j作为最小引擎,使得r=|θzi|,且Hi,j不被标记。

④互换像素块Hj与Hi+1,对这两互换像素块进行标记。

⑤等到所有的被选择的像素块都被标记,则结束该阶段;否则,执行步骤②,且令co=i+l。

在上述步骤②与步骤③中,一直保持迭代3D混沌映射模型(3)状态,直到获得理想性能的三元置为止。但是由于步骤③在达到理想结果时,很有可能不会终止,对此,本文引入一个覆盖参数η来解决这个问题。则步骤③改为步骤⑥。

⑥令i∈|j+l,…j+η|作为最小引擎,使得r=|θzi|,且Hi+1不被标记,如果这个f不存在,则直接进入步骤⑤。

在这个阶段完成后,有很多像素块没有被互换,特别是在这个覆盖参数η很小时。因此有必要确定一个合适的迭代次数作为覆盖参数田。为了确定这个较优的覆盖参数,本文进行两组实验,第一组实验是为丫确定整个子区间。被访问的概率是够相等;第二组实验是为了确定模型式(3)的迭代次数,使其达到了一个具体稳定的子区间。

阶段2

混淆规则下的混淆阶段

(1)将置乱后的图像转变成一维数组,其长度大小为3MN。

(2)根据密钥S2设定两个三元序列xo=(xo,Yo,zo)与Yo=(xo',Yo',zo'),对于图像中任何一个三字节像素块,根据3D混沌映射模型式(3)进行迭代得到伪随机序列x=(xo,x1,X2,…)与y=(Yo,y1,y2,…)。

(3)并对上述两个伪随机序列进行修正,修正函数为:

(4)利用修正后的伪随机序列xr'、yr'根据这些字节进行按位异或操作进行混淆三像素P、Pj+l以及Pj+2。完毕后,进入下一个三字节像素块的类似处理。最终根据这些混淆像素值得到αmin,迭代logistic映射得到一个伪随机数|50w|。

混淆规则定义如下。

①输入模型式(3)中的矩阵丑,以及阿个三元序列Xa=(xo,Yo,zo)与Y= (Yo,yl,Y2,…),从S2中输出密钥w=w0。以及w'=w0'。

⑦让r:=a。h,i:=1。

③令:
三、仿真结果及分析

1、置乱规则下的覆盖参数11的仿真结果分析

本次仿真根据3D混沌映射模型式(5)来进行迭代计算。图2左边代表的是迭代模型式(5)10 000次后,[0,1]内的每个θ子区间被访问次数,θ分别为128,256以及5120从图中可知,对于三个不同的θ,访问平均次数分别为8 521、4 478以及1 9920这表明θ子区间的访问概率是相等的。

图2右边达到[O,1]内的每个θ子区间所需迭代3D混沌映射模型式(5)的次数,θ分别为128,256以及512。从图中可知,对于三个不同的θ,所需迭代次数分别为342、421以及653,这表明θ子区间的访问概率是相等的。从图中也可看到,达到具体的子区间所需最大迭代次数大约为6θ。这个结果有助于选择合适的覆盖参数η。基于实验结果,本文确定较优的覆盖参数η:150θ,此时在置乱规则下进行置乱,能够得到理想的置乱结果。

2、加密算法性能的仿真

借助MATLAB仿真平台对本文提出的新图像加密算法的性能进行验证,输入一个大小为256×256x3的正方形明文图像Horse,色灰度256。

(1)灰度直方图

图像像素灰度直方图能够直接反映出图像像素的分布状况。从图4可知,初始图像以及经过位置索引置乱方法处理时间延迟超混沌序列所置乱后的图像,二者的像素灰度直方图相同,并没有发生任何变化,二者的灰度分布很不均匀,波动程度较大,表明它们的伪随机性以及冗余性较低,很容易被攻击者获取图像相关信息。

而经过本文提出的算法加密后的图像灰度直方图产生了根本性的变化,如图4(c)所示,与图4(a)、图4(b)相比,其像素值分布均匀,拥有较高的图像冗余性与伪随机性。

(2)密钥空间

任何一个优异的加密系统应具备足够大的密钥空间以有效抵抗强力攻击。根据上文可知,本文加密算法的密钥空间由三部分构成:(1)初始密钥S= (S1,S2,S3);(2)在每个规则下迭代3D混沌映射的初始条件;(3)在每个规则下迭代3D混沌映射所使用的参数w、w‘与θ。其中,这些初始条件、参数以及初始密钥都在区间[O,1]内,若它们的计算精度10 -16,则本文算法的密钥空间为(1016)21=10336。可见,本文算法密钥空间是相当巨大的。

(3)相邻像素的相关性

所有的加密系统都希望密文图像的相邻像素是不相关的;另一方面,相邻像素的相关性又是衡量本文算法的置乱规则下的置乱效果的一种方法。输入初始图像,像素块大小为16 x16,p=256,R=4。运行本算法。首先在加密前与加密后的图像中任意择取2 000对相邻像素点;然后根据以下模型得到相关系数rxy:

式(15)和式(16)中,x、y代表像素灰度值,E(xi)、E(Yi)分别为x与y的平均值。

表1是明文图像、置乱图像与密文图像在X 轴、y轴以及对角线上的相邻像素相关性仿真结果。

从表1可知,明文图像的相关性很强烈;而经过本文加密算法处理后,置乱图像与密文图像的相邻像素审的相关性很低,几乎是不相关的。

图5是初始图像与密文图像在X轴方向上的相邻像素分布测试结果。从图5(a)可知,明文图像的相邻像素分布成一条对角线,说明它具有强烈的相关性,达到0.982104,很接近1;而经过本文提出的图像加密系统加密后,其像素均匀地布满了整个灰度平面,其相关性得到了有效消除,约为-O.001652。

(3)运行速度分析

运行速度是优异加密算法的一个重要体现。在置乱阶段,像素块大小为16 x16,θ=128;在混淆阶段,选择R=1;运行环境为:酷睿3 GHz双核CPU,4GB的内存,个人电脑系统Windows XP。当混淆阶段循环R-1次时,运行速度达到2.87 MB/s;当R=2时,运行速度达到2.53 MB/s;当R=4时,运行速度达到1.97 MB/s。可见本文算法的加密速度是较快的。

小知识之MATLAB

MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。