为了充分利用在图像频率域和空间域加密的优势,进一步提高图像加密系统的安全性,我们提出了一种基于离散的傅里叶变换和双混沌映射的图像加密算法,同时对图像的频率域和空间域进行加密。

一、二维离散的傅里叶变换

本文利用二维离散的傅里叶变换将图像的灰度分布函数变换为图像的频率分布函数,傅立叶逆变换将图像的频率分布函数变换为灰度分布函数,并对图像频率域中的幅度和相位进行移位处理。输入一个矩形边长为M×N的图像,并用二维离散傅里叶函数f(x,y)中的x、y设定图像的空间域,F(u,v)中u、v设定图像的频率域。

其中,u、v为频率变量(其中u=O,1,2,…,M-1;v=0,1,2,…,N-1);x、y为空间变量(其中x=0,1,2,…,M-1;y=0,1,2,…,N-1)。对式(1)进行逆变换,可得二维离散傅里叶逆变换:

其中的x=0,1,2,…,M-1,y=0,1,2,…,N-1。另外,由式(1)可知,图像经傅里叶变换后得到的是复数形式,很难表示图像的信息,因此分别用R(u,v)和I(u,v)来表示F(u,v)的实数部分和虚数部分,其中,幅度或频率谱为式(3),相角或相位谱为式(4):

因此,根据二维傅里叶变换特性,通过式(2)、式(3)、式(4)就可以对频率域u-v平面坐标系的频率点进行处理,得到幅度谱和相位谱;通过式(1)、式(5)实现逆转换处理,将频率域转换成空间域。

二、两分段Tent映射

为了提高序列的伪随机性能,本文采改进的两分段Tent映射来对图像频率域中的相位及幅度进行置乱操作。

其中,a∈(O,1)为混沌映射参数,晟为迭代次数,y(k)是混沌序列x(k)的中间变量,并且给定的初始值x0、Yo必须满足:XO∈(-0.5,0.5],Yo∈(O,1]。由式(6)经K次迭代产生混沌序列{xk,k=l,2,…,K}。

由上可知,本文提出的两分段Tent映射数学模型简单,很容易产生混沌序列。经大量仿真实验表明,该映射法与一般的Tent映射相比,产生的扩频码分布均匀,相关性也很好,并且Lyapunov指数更大、混沌程度更高。因此,该映射能够获得很好的加密效果,被广泛应用于保密通信和数据安全等领域中。

三、混沌Bernoulli移位映射

本文采用改进的混沌Bernoulli移位映射来对图像空间域中的灰度值进行扩散操作。

式中,b为Bemoum参数,应满足条件1.4<b<2,此时,Bemoulli移位映射具有混沌特性。由于混沌Bernoulli移位映射和混沌Tent映射一样具有一致的密度分布函数,具有较低的自相关性,较高的伪随机性能以及较强的不可预测性,因此能够很好地适应密码系统的要求。

四、基于离散傅里叶变换和两混沌映射的图像加密算法研究

步骤1 对待加密的明文图像进行二维离散的傅里叶正变换。

(1)输入一个矩形边长为M×N的图像,用傅里叶函数f(x,y)来设定图像的灰度值。

(2)经傅里叶正变换,将图像的灰度分布函数f(x,y)变换为图像的频率分布函数F(u,v),并获得图像频率域中的幅度谱|F(u,v)|和相位谱φ(u,v)。

步骤2利用改进的Tent映射对频率幅值和相位进行置乱操作。

(1)给定初始值(x0, Yo)和(x0',y0'),x0'作为密钥,其中x0,x’o∈(-0.5,0.5];Yo,y'0∈(0,1],a∈(0,1)。

(2)利用改进的Tent映射经K次迭代产生混沌序列{Xk,k=1,2,…,K}及{X'k,k=l,2,…,K}。

(3)将上述产生的混沌序列分别对步骤1(2)获得的图像幅值和相位进行置乱处理,从而获得新的频率幅值及新的相位。

其中Pij为新幅值,pi'j为原幅值,Xij为帐篷序列值,L为图像的尺寸。

同理,新相位与原相位及帐篷序列值的关系式为:

其中Mij为新相位,Mij'为原相位,xij为帐篷序列值,L为图像的尺寸。

步骤3进行二维离散的傅里叶逆变换。将新的频率幅值及相位进行DCT操作,使图像的F(u,v)变换为f(x,y),从而获得置乱图像。

步骤4利用改进的Bernoulli映射对图像进行像素值替换操作。

(1)给定初始值x0'';b0作为密钥Ⅱ,其中-1/2≤0''≤1/2,1.4<b<2。

(2)利用混沌Bernoulli移位映射迭代N次,产生混沌序列{x,n=l,2,…,N}。为了消除瞬态效应,去掉前面的K个值,将K+1以后的混沌序列产生一个(M+N)的混沌实值序列{xl,x2,…,XM+N}。

(3)用混沌序列{xl,x2,…,XM+N}对置乱后的图像进行灰度值替代操作,最终获得密文图像。

步骤5最后根据明文图像的加密要求(包括抗穷举攻击、抗明文攻击以及抗差分攻击等),反复执行上述所有的步骤。

解密过程为加密过程的逆过程。

五、仿真实验及结果分析

借助仿真实验对本文提出的基于傅里叶转换和双混沌映射的图像加密新算法的安全性能进行验证与分析。输入一个256×256大小的明文图像LEAK,色灰度256,在MTLAB软件平台上进行仿真实验。文中分别给出了原始图像,置乱图像,和密文图像以及各自对应的直方图。原始图像直方图波动程度较大,其随机性以及冗余性较低,很容易被攻击者获取图像相关信息。而经过本文提出的算法加密后的图像灰度直方图产生了显著地变化。如图3(c)所示,与前面(图3(a)、(b))的分量直方图相比,其灰度表现出均匀状态,拥有较高的图像冗余性与伪随机性。这显示本文算法具有较好加密质量,扩散和混乱特性好,安全性高。

1、相邻两个像素点的相关性分析

相关实验表明,加密后图像的两个相邻像素点的相关性越低,则表明安全性越好。本文任意择取加密前与加密后的图像中的1800对相邻像素点,根据式(10)求得相关系数rxy。

其中,菇和y代表的是图像中相邻的两个像素点的灰度值,n为选取的相邻点数量,E(x)为数学期望。

明文图像的相邻像素值变为一条对角线,表明其具有较强的相关性;而经过本文提出的图像加密系统加密后,像素值均匀地布满了整个灰度平面(,其相关性显著降低。

其他两个方向的测试结果如表1所示。从表1也可以看到,明文图像具有较高的相关性,水平方向达到0.9418,其值很接近1,因此容易受到统计攻击;而经过本文提出的加密方法之后的密文图像的水平方向相关性约为0.0064,几乎接近于零,说明任意两个相邻的像素点几乎不相关。

因此,该研究结果表明,本文提出的加密方法能够有效地消除图像的相关性,使加密后的图像具有良好的扩散性及较强的抗统计攻击能力。

2、密钥空间分析

较大的密钥空间能够有效抵抗穷举攻击。因此加密系统的密钥空间越大,其安全级别也就越高。混沌序列产生过程中密钥空间控制参数包含了初始值(x0,Yo),(x0',Yo'),x0'',以及参数ao,bo;根据本文算法描述可知,其密钥空间包括密钥,和密钥Ⅱ。假设本文算法的计算精度确定到10-15;则密钥,的空间大小为(1015)3×(1015)3 =1090,密钥Ⅱ的空间大小为(1015)=1030。由于这两个密钥是独立的,因此密钥总空间为1090 x1030= 10120>>1060。另外,加之每次循环过程中的初始值不一样,使得密钥空间更大。如此巨大的密钥空间足以抵抗穷举强力攻击。

3、信息熵

信息熵是衡量加密系统的显著指标之一。由于图像像素值有28种可能,因此信息熵达到最大理想值为8。

其中,L为像素值,p( mi)为mi出现的概率。经过本文加密后,通过式(11)计算得到图像的H(m)=7. 99840该值非常接近8。表明本文算法在加密过程中基本没有丢失信息,具有较强的抗熵攻击性能。

4、密钥敏感性测试分析

高效的加密系统应该具有敏锐的密钥敏感性。其中任何一个初值发生极其微小的变化(取△= 10-5),例如对Yo进行微小的改动后,其所产生的解密图像与正确解密的密文图像完全不同。可见,该新算法具有敏锐的密钥敏感性。

小知识之二维离散

设(ξ,η)为一个二维随机变量。如果它可能取的值的全体是有限个或可数多个数组,则称(ξ,η)为二维离散型随机变量,称它的分布为二维离散型分布。