混沌现象是非线性系统的一种内在类似随机过程的表现,混沌系统产生的混沌序列具有类噪声、结构复杂以及对初始条件极端敏感的特性,因而被广泛地应用于加密系统设计。经常用于加密的混沌系统很多,事实上,几乎所有的混沌系统产生的混沌序列经过处理后都可以用于加密。一般把具有两个以上正Lyapnov指数的高维混沌系统称为超混沌系统,由于超混沌行为具有更强的随机性和不可预测性,使其在图像加密领域具有更好的应用前景。超混沌系统用于图像加密,生成的密码具有很强的敏感性和随机性,对各种攻击具有更强的抵抗力,能充分保障图像信息安全,如超混沌Clifford系统、来源于蔡氏电路的Chua超混沌系统,Chen超混沌系统等都被用于图像加密。

目前,国内外大多数文献都把像素位置置乱的加密方式与替代像素值的加密方式结合起来,对原始图像进行预处理和再加密。由于在加密过程中图像的位置信息与像素值信息均被混沌序列加密,使得攻击者破译密文的难度增加,因而这种加密方式的安全性有很大提高。Gao等人使用了超混沌系统对图像进行加密,其密钥空间可以达到1070。不过刘金梅等人指出其算法在结构设计上存在致命弱点,即算法中置乱部分和像素替代部分只与混沌系统和密钥有关,而与明文无关,使得算法无法抵御已知明文攻击和选择明文攻击。这种缺点不是个别现象,很多文献中的算法都存在这样的问题。值得关注的是最近Wang Yong等人研究并给出了一种置乱与替换同步进行的相互结合方法,既可以提高加密速度,也可以避免刘金梅等人提出的问题,这说明一些研究人员已经注意到这类问题。

一个好的密码系统应当满足以下两条原则,即混乱原则( confusion)和扩散原则(diffusion)。扩散是将每一位明文的影响尽可能地作用到较多的输出密文位中去,其目的是有效隐藏明文的统计特性;混乱是指密文和明文之间的统计特性的关系尽可能地复杂化。密文反馈使明文和密文之间相互关联,从以下几个方面提高了加密安全性:

a)加密公式中的部分参数来源于图像(置乱后的原图像),使置乱部分和像素替代部分相互关联,不再相互独立,加大了破译的难度。

b)与原图像相关联,使加密算法具有更高的安全性。当改变加密的图像时,即改变了加密的参数,同时增加了破译难度,提高了安全性。

c)引入密文反馈机制,对图像像素值逐个进行多轮异或加密,使密文对明文和密钥都充分敏感,加密图像像素值具有类随机均匀分布特性。而且算法具有密钥空间大、加密速度快的优越性。

d)将明文图片每个像素以函数迭代形式扩散在密文中,从而强化了其抗统计分析的能力。

为了进一步克服刘金梅等人指出的算法中的缺陷,本文给出了新的加密方案。首先对Clifford超混沌系统和Logistic混沌系统进行嵌套组合,得到了性能更好的混沌系统用于图像的位置置乱;然后使用Chua超混沌系统产生混沌序列用于像素替换,在Chua超混沌系统龙格库塔解法中插人参数,这些参数来自于原加密图像,这样既增大了密钥空间,也实现了密文反馈,克服了加密算法只与混沌系统和密钥有关与明文无关的缺点,使加密安全性进一步提高。

一、加密系统的改进

1、对Clifford超混沌的改进

通常把具有两个或两个以上正Lyapunov指数的混沌系统称为超混沌系统。正Lyapunov指数越多,系统轨道不稳定的方向越多,系统的随机性越强,其抗破译能力越高,因此,更适合于图像加密。

Clifford系统表达式如下:

基于复合超混沌系统且与明文相关联的图像文件加密

式(1)所示的Clifford系统具有较大的能够产生混沌的参数区间。例如,当使用式(2)所示的初始值时,系统处于超混沌状态。

基于复合超混沌系统且与明文相关联的图像文件加密

此时,使用Jacobian矩阵乘积方法计算出的系统近似的Lyapunov指数为0.0836,0.2924和0.4518。因此,将Clifford超混沌系统用于图像加密,能够大幅度提升系统的抗破译能力。利用上面给出的参数及系统初始值,绘制出Clifford迭代1000次的轨迹如图1所示。

基于复合超混沌系统且与明文相关联的图像文件加密

戈隆布( Golomb)给出了关于周期伪随机序列的三条公设定理验证伪随机性的优劣。根据该定理可知,一个理想的混沌序列应该具有的基本特性是分布均匀性。然而Clifford系统的总体分布特性并不是很好,当从Z轴方向观察Clifford映射时,一个很大的空白区域位于此映射的中间,如图2所示。

基于复合超混沌系统且与明文相关联的图像文件加密

映射中点的分布并不是非常地均匀,会影响产生的混沌序列的随机性分布,针对此问题,本文首先对Clifford映射进行了改进。改进方法是把Logistic映射复合嵌入到Clifford系统中,产生一个改进后的Clifford映射,简称为CliLog系统,如式(3)所示。

基于复合超混沌系统且与明文相关联的图像文件加密

使用Jacobian矩阵乘积方法计算Ch-Log系统的近似的Lyapunov指数发现,改变式(2)中的一个参数,固定其他参数,初始值不变的情况下,在参数a([3.1,4])、b([0.2,1])、c([ -1,0.8])、d([ -3.1,-2])、e([1.5,2.5])区间上都至少有两个正Lyapunov指数,很多情形是具有三个正Lyapunov指数,如使用式(2)所示的参数,计算Ch-Log系统的Lyapunov指数为0. 1845,0.2859和0.3596。

通过对系统仿真(图3)观察比较后发现,相对于Logistic映射和Clifford映射,结合后的混沌系统具有更好的混沌特性。X轴、y轴的范围由-2~2扩大到-3—3,而且Z轴的范围由-1~1扩大到-2—2,没有图2所示的吸引子中间的空白区域。这说明新的混沌系统具有更大的混沌域,点的分布比图1中的更加均匀,产生的序列具有更好的随机性,因此更适合用于图像加密。

基于复合超混沌系统且与明文相关联的图像文件加密

2、在Chua混沌系统的龙格库塔解法中加入参数

Chua超混沌系统来源于蔡氏电路。蔡氏电路是1983年华裔科学家蔡少棠教授首次提出的,它是历史上第一例用电子电路来证实混沌现象的电路,也是非线性电路中产生复杂力学行为的最有效并较为简单的混沌电路之一。蔡氏电路的原理如图4所示。

基于复合超混沌系统且与明文相关联的图像文件加密

图4中R是一非线性电阻,它的无量纲动力学方程描述如式(4)所示。

基于复合超混沌系统且与明文相关联的图像文件加密

其中:f(xk)=bxk +1/2(a-b)(|xk +1| -|xk -1|);状态变量x、y、z分别对应图中电容C1、C2上的电压V1、V2和电感L中的电流如。当系统参数为α=10,β=18,a=-1.26,b=-0.63时,蔡氏电路处于混沌状态,出现双漩涡混沌吸引子。

在构造混沌序列时用式(5)所示的四阶Runge-KuLLa公式。

基于复合超混沌系统且与明文相关联的图像文件加密

式(5)中,xn={xn,yn,zn},代表式(4)的三个方程,Ki、Pi是含有三个元素的向量,所以,一共插入到Runge-Kutta公式中12个元素。

在四阶Runge-Kutta公式中插人参数R(i=1,2,3,4)的值是取自于原图像以及Cli-Log系统产生的序列,这些图像颜色值与混沌序列经过处理后,插入到Runge-Kutta公式中。这样做的目的首先是增大密钥空间,增加破译难度;最重要的是实现了密文反馈,克服了加密算法只与混沌系统和密钥有关与明文无关的缺点,克服了指出的问题,使加密安全性进一步提高。只插入后可以使明文图像中每个像素的变化扩散影响到尽可能多的密文像素,使算法具有很好的扩散和混乱特性,增强对各种攻击方法的抵御能力。

二、加密方案

数字图像由图像像素的灰度值来描述,将图像在时域中加密,就是通过对像素位置置乱或灰度值的置换来实现。本文利用Cli-Log混沌系统产生三维混沌序列,设原始图像I的大小为M×N,则i,j={1,2,3,…,MxN}。通过大量数据分析,X、y、z序列应该按照以下方式进行预处理:首先去掉序列实数值的整数部分,统一值的范围;然后,右移小数点几位,用小数部分作为新的伪随机性数。处理后的X、y、z三值的范围是(-0.5,0.5),符合Golomb提出的一个理想混沌序列应该具有分布均匀性的要求。

a)设定Cli-Log混沌系统的初始值xo、yo、z0,系统每次迭代产生三个混沌值xi、yi、zi;

b)取xi、yi、zi的小数部分。以xi为例,xi=(0.dld2d3…dn),p为指定的精度,那么(d1d2d3…dn)就可以构成一个伪随机序列。提取三个混沌值的第i位,按照某个顺序组成两个新的十进制整数si和ki。

c)将混沌序列S和混沌序列K中元素由小到大排序,分别形成有序序列S1S2S3…sn和k1k2k3…kn。

d)分别确定混沌序列S和K中的每个si和ki分别在有序序列S1S2S3…sn和k1k2k3…kn中的位置编号,形成置换地址集合T={t1t2t3…tn}和P={p1p2p3...pn}。

e)按置换地址集合T和P对原始图像的像素进行置换,得到置乱后的位置矩阵E(i,j),即为图像置乱后得到的密图。对原图像完成置乱后,破坏了原像素的相邻像素点的相关性,但是像素点的灰度并没有改变。因此,为了提高图像的加密效果,要对置乱后图像的像素灰度进行改变。采用的超混沌系统Chua产生的混沌序列对置乱后的图像像素灰度值进行加密。

f)经过图像置乱后得到密图E(i,j),密图的每一个像素对应一个确定p的值。p的值随着图像的变化而改变,也随置乱方法的不同而改变。将此p的值插入到四阶Runge-Kutta公式中,如式(2)所示。

g)计算参数的混沌区域,在该区域内给各个参数赋值,给定迭代初始值x(O)y(0)z(0),利用龙格库塔插人参数的方法迭代Chua超混沌系统生成混沌序列x(i)y(i)z(i),i=1,2,3,…,对此混沌序列进行变形后得到xx(i),i=l,2,3,…。

h)依次把xx(i),i=1,2,3,…,的值同密图E(i,j)中像素点的灰度值进行异或,完成对像素值的改变。

i)继续此操作,直到E(i,j)中的所有像素值全部被加密为止。此时得到加密后像素集合F={f1f2f3...fmxn},然后将其转换为二维图像形式,得到了加密图像D(i,j)。图5加密后的效果如图6所示。

基于复合超混沌系统且与明文相关联的图像文件加密

解密过程是加密过程的逆操作,基本与加密过程的算法相似。首先利用龙格库塔插入参数的方法迭代Chua超混沌系统生成混沌序列x(i)y(i)z(i),对此混沌序列进行变形后得到x(i)。用xx(i)与加密的图像依次异或后,得出正确的位置矩阵E(i√);再利用改进后的Clifforcl映射对解密矩阵进行反置乱,就可得到最后的解密图像。

三、实验结果与安全性分析

1、密钥敏感性测试

为了验证上述算法的有效性,本文以Lena. bmp图像作为实验测试图像。图7、8分别显示了原始图像和相应加密图像的直方图。通过比较加密前后图像的直方图可以看出,加密后图像的直方图与原始图像相比更加均匀,它掩盖了变换前的分布规律,增加了破译的难度。

基于复合超混沌系统且与明文相关联的图像文件加密

如果密钥稍有微小的变化,如修改参数k=2.40000000004(原来k为2.4),经实验测试加密后的两幅图像中有99.72%的像素灰度值不相同。密钥的微小变化导致密文几乎完全不同,这说明密钥的一点微小的变化将产生完全不同的加密效果,密钥敏感性高,可以抗差分攻击。

2、相邻像素的相关性分析

通过对相邻像素相关性大小的比较,可以检验图像置乱效果的好坏。研究表明,置乱效果的好坏与相关性的大小存在反比关系,相关性越小,置乱的效果越好;相关性越大,置乱效果越差。为检验原始图像和密文图像相邻像素的相关,从原图像和加密图像中随机选取4000对相邻像素(水平、垂直或对角),利用下式计算其相邻像素的相关系数:

基于复合超混沌系统且与明文相关联的图像文件加密

其中:x和y分别表示图像中相邻两个像素的灰度;rxy为相邻两个像素的相关系数。图9、10展示了原始图像和加密后图像的两个垂直方向的相邻像素的相关分布情况,表1给出了加密前后水平、垂直和对角方向的相关系数。

基于复合超混沌系统且与明文相关联的图像文件加密

从表1的数据中可以看出,原图像的相关系数接近于1,说明原始明文图像的相邻像素是高度相关的。而加密图像的相邻像素相关系数约等于0,说明了相邻像素不相关,同时也证明明文的统计特性已被扩散到随机的密文中。

3、密钥空间分析

密钥空间的大小是可以使用的不同加密密钥的总数。一个好的加密方案应该是对加密的密钥足够敏感,并且密钥空间足够大,从而使强有力的基本搜索攻击变得无效。在本算法中,初始条件和参数可以被用来作为密钥。该方法一共具有31个参数及初始值,如果各个参数以及初始值的精确度能够达到10-14,一半参数(或初始值)的有效取值区间按照0.1计算,一半参数(或初始值)的有效取值区间按照0.5计算,那么只考虑参数与变量初始值密钥空间就能够达到10154,具有足够大密钥空间抵抗攻击。

4、信息熵分析

信息学中关于信息熵的定义如下所示:

基于复合超混沌系统且与明文相关联的图像文件加密

其中,以为第fk个像素出现的频率。从信息熵的定义可以看出,图像越平坦(像素值变化少)时,信息熵的值越小,当图像只有一个像素值时,信息熵的值最小,值为O;相反,图像越混乱,信息熵的值越大,当图像中每个像素出现概率相同时,信息熵的值为最大值8。

信息熵测试结果表明,加密后图像的熵为7.9897,非常接近其理论值N=8,说明加密过程中的信息泄漏可以忽略,加密系统对抵抗熵攻击是安全的。原始图像经过加密得到的密文都具有高度的混乱性,攻击者难以从密文中得到有用的信息。

小知识之龙格库塔

龙格库塔法的家族中的一个成员如此常用,以至于经常被称为“RK4”或者就是“龙格库塔法”。该方法主要是在已知方程导数和初值信息,利用计算机仿真时应用,省去求解微分方程的复杂过程。