混沌现象是非线性系统的一种内在类似随机过程的表现,混沌系统产生的混沌信号具有类似噪声、结构复杂以及对初始条件极端敏感的特性。因此,利用它可以得到具有很好的健壮性和安全性的数字图像加密算法。基于Lorenz混沌系统的数字图像加密算法,应用该方法能够得到较好的加密效果,但由于该方法的加密过程只是在时域上对图像像素进行置换加密,因此其安全性还有待于进一步改进。
本文在已有的数字图像加密算法的基础上,结合图像的DCT变换,给出了一种基于频域加密的数字图像加密算法,该方法能有效抵抗已知明文攻击。实验结果表明,该方法具有较好的效率和安全性。
一、加密算法原理
首先给出本文中用到的两种混沌系统:Hyperhenon混沌系统和Logisitc混沌系统。
(1)Hyperhenon混沌系统
给系统表达式如下:
式中:a= 1.76,b=0.1时,该系统处于超混沌状态,Hyperhenon映射本身就是一种超混沌序列。这里取X0∈(O,1)。
(2)Logistic混沌系统
该系统表达式如下:
式中:3.57<μ<4时,该系统处于混沌状态,0∈(O,1),这样Logistic映射可以定义在(o,1)上。
1、图像预处理
数字图像由图像像素的灰度值来描述,对图像在时域中进行加密,就通过对像素位置置乱或灰度值的置换来实现的。为了增强本文所给加密算法的安全性,我们应用混沌序列先对原始图像进行预处理。这里我们利用Hyperhenon映射产生三维混沌序列,设原始图像大小为MxN,相应的预处理算法描述如下:
加密算法1:预处理算法
步骤1设定Hyperhenon的初始值x0,y0,z0,系统每次迭代产生3个混沌值;
步骤2提取3个混沌值的小数部分,将每个小数的第3位放在一起,组成一个新的整数I;
步骤3对I做取模运算,并将结果转化为二进制序列;
步骤4将原始图像像素值也转化成二进制序列,并与步骤3得到的二进制序列做异或运算;
步骤5将所得的结果再转化成十进制,就完成了图像的预处理加密。
由以上方法得到的加密图像,其根本原理还是通过做异或运算来置换像素值,这种加密方法安全性不高,很难抵抗已知明文攻击。因此,我们需要在图像离散余弦变换(DCT)域中对其进一步加密。与时域加密相比,频域上的加密更具安全性。
2、图像加密算法
在以上预处理基础上,我们利用式(2)产生一维混沌序列L=(l1,l2,l3,…lm×n),该序列用来产生置乱矩阵。相应的频域加密算法描述如下:
算法2:DCT域加密算法
步骤1先对预处理后的图像做DCT变换,设其DCT系数矩阵为Am×n。
步骤2给定一个自然数序列C={c1,c2,c3,…,cm×n},初始值为{1,2,3--,MxN};
步骤3设当前待处理的位置为C序列中的Ci,初始化为Cm×n,用来替换Ci的C序列中的位置Cj为:j= [lixMxN],交换Ci和Cj的位置;
步骤4重复步骤3,直到置乱完成整个序列;
步骤5将得到的序列按行排列成为矩阵,即为所求的魔方矩阵,用此矩阵对预处理图像的DCT系数矩阵进行置乱,从而完成图像频域的加密。
通过对以上置乱矩阵生成算法分析可知,该算法的时间复杂度是线性的,所以具有较高的加密效率。该算法的解密过程与加密过程相似,只是在步骤3中应该先从lMxN开始恢复。
二、实验结果及分析
为了验证以上算法的加密效果,本文在Pentium lV PC机上采用Matlab6.5平台对其进行仿真实验。
1、图像加密效果评价方法
为了对图像加密的效果进行衡量,引入以下的评价指标。设原始图像表示为G,加密图像表示为s,用si,Sj分别表示原始图像和加密图像的像素灰度值。
(1)信息熵:信息熵度量出图像中灰度值的分布,灰度分布越均匀,图像信息熵越大,反之信息熵越小。当且仅当所有像素值出现的概率相同时,信息熵取得最大值。信息熵的表达式为:
式中:X——随机变量,p(Xi) -xi出现的概率,在本文中表示像素灰度值。
(2)灰度变化平均值:图像加密后,许多灰度值都发生变化,为了度量这种变化的程度,引入灰度变化平均值。对于一个加密图像来说,并不是这个值越大越好或越小越好。当两个图像的灰度值均匀变化时,图像的加密效果较好,安全性较高。最理想的情况是灰度变化平均值等于K/2暖为灰度图像的灰度级数。灰度变化平均值的表达式为:
(3)相邻像素相关性:图像加密的目标之一就是减小相邻像素相关性,主要包括:水平像素、垂直像素和对角线像素间的相关性。显然相关性越小,说明图像加密效果越好,安全性越高。像素相关性计算方法如下:
其中:
2、仿真结果
以下仿真实验中,原始图像大小为256x256,Hyperhenon混沌映射的初始条件为Xo=0.5286.yo=0.1234,z0=0.644;Logistic混沌映射初始条件为Xo=0.4157,μ=4。仿真结果如图1~图5所示。
3、加密效果分析
根据以上给出的加密评价指标:
(1)由式(3)计算出最终加密图像的信息熵H=6.145513,这个值较接近该信息熵的理论最大值8(2a- 256级灰度值)。
(2)由式(4)计算出原始图像与最终加密图像的灰度变化平均值GAVE=90.400452,这个值较接近最理想的灰度变化平均值128 (/U2=128)。
(3)由式(5)、(6)计算出水平相邻像素相关系数ph=0.143881,垂直相邻像素相关系数pv=0.623232。两种相关系数都较小,满足一定的不相关性。尤其水平相关系数,其值较接近零,说明水平像素间接近正交。
根据仿真实验结果可知,加密结果图像的灰度分布均匀,灰度变化平均值较理想,相邻像素相关性小。从能量分布的角度分析,频域的加密扰乱了原始图像的能量分布。图3中白点即为图像低频区也是能量集中区,图4中,在置乱系数矩阵的情况下,白点分布变化为若干条带状分布,因此该算法的加密效果较好,安全性较高。
实验结果表明,在不知精确密钥的情况下,无法解密出正确图像。同时,即使攻击者解密了频域图像,也很难在时域中解密出原始图像。这也是该算法的优点之一。实验结果和评价数据表明,本文给出的加密方法是可行的,加密效果良好,密钥空间大,安全性较高,能够有效抵抗已知明文攻击。
小知识之DCT变换
DCT变换的全称是离散余弦变换(Discrete Cosine Transform),是指将一组光强数据转换成频率数据,以便得知强度变化的情形。