赵文金
(扬州职业大学,江苏扬州225009)
混沌现象是非线性确定性系统中的一种类似随机的过程,把两个十分相近的初值带入同一个混沌系统进行迭代运算,经过一定阶段的运算后,数值序列变得毫不相关。它隶属于确定性系统却难于预测,隐含于复杂系统但又不可分解,看似“混乱无序”,实则颇有规律。混沌信号的非周期性、连续宽带频谱、类似噪声的特性,使它具有天然的隐蔽性;对初始条件高度敏感,又使混沌信号具有长期不可预测性。混沌信号的隐蔽性、不可预测性、高复杂度和易于实现等特性都特别适用于保密通信。
在基于混沌序列的图像置乱加密算法中,常用的混沌序列生成器有Logistic映射、Hybird映射、Chebyshev映射等。大量的研究证明,Logistic映射的真值混沌序列和二值序列均具有良好的初值敏感性和随机性。在本文的加密算法中,使用了这种映射对图像进行像素位置的置乱。
现实世界中,人的视觉系统产生的图像多为彩色图像,彩色图像在各个领域已经得到了广泛的应用[1],因此,彩色图像加密具有更大的实用价值。近年来,彩色图像加密引起了很多学者的关注[2-6]。王英[4]等人提出了基于Lorenz系统的彩色图像空域置乱加密算法。Rhouma[5]等人提出了基于时空域混沌的彩色图像加密算法,通过引入外部密钥产生单向耦合映射格子的初始值和系统参数。Huang和Nien[6]提出了基于多个混沌系统的加密算法,通过索引置乱每个像素位的位置,从而实现像素值及其位置的同时改变。
在本文提出的新的加密算法中,首先将三维空间的彩色图像ImmtxinN×N转换成三个二维的灰度图像ImmtxinRN×N、ImmtxinGN×N和ImmtxinBN×N[7],然后利用Logistic混沌系统生成的混沌序列对此三个灰度图像分别进行像素位置的置换;接着利用Lorenz混沌系统生成的混沌序列进行处理后得到的序列分别对置乱后的三个二维图像再次进行加密并扩散;最后折叠加密后的灰度图像即得加密后的彩色图像。
设原始图像为ImmtxinN×N,由于彩色图像待处理数据量大,转换成二维的灰度图像后,可以降低算法的计算强度和空间需求,从而减少运行时间,加快加密速度,转换算法如下:
Logistic映射是一个典型非线性混沌方程,它虽然简单却体现出混沌运动的基本性质。
Logistic映射如式(1):
其中b为控制参量,b值确定后,由任意初值x0∈[0,1],可迭代出一个确定的时间序列X1,X2,…,Xn,对于不同的b值,系统(1)将呈现不同的特性,随着参数b的增加,系统(1)不断地经历倍周期分叉,最终达到混沌,当b=4时,由系统(1)产生的序列{Xn}运动形式具有典型的混沌特征。
数字图像相邻像素间有很强的相关性,为了扰乱像素间的高度相关性,先利用位置置乱方法改变图像的像素位置。设三个二维灰度图像像素值分别为ImmtxinR(i,j)、ImmtxinG(i,j)、ImmtxinB(i,j),I=1,2,…,N;j=1,2,…,N。置乱过程如下:
步骤1:给定初始值b,x0,对Logistic映射迭代生成“置乱模板”,模板矩阵大小与图像矩阵的大小保持一致;
步骤2:对每个混沌序列值乘10000,然后“模256”运算,得到Uint8的随机整数;
步骤3:按“置乱模板”对图像像素进行置乱,将Immtxin中的像素值依次置乱到“置乱模板”每个元素指定的位置,生成置乱后的三个二维矩阵为ImmtxmidR(i,j)、ImmtxmidG(i,j)、ImmtxmidB(i,j)。
对图像完成置乱设计后,破坏了原像素相邻像素点的相关性,但是像素点的灰度值并没有改变,即图像直方图并没有发生变化,图像的加密效果不太理想。因此需要对置乱后的图像的像素灰度值进行改变,以提高图像的加密效果。
在一个图像加密系统里采用扩散过程有两个原因:一是可以弥补离散后的混沌映射变为周期性现象这一不足;二是能够改变原始图像的统计属性,使加密后图像的直方图一致分布,因此对于一个安全的图像加密系统,扩散过程是必须的。为了实现这一扩散过程,这里使用Lorenz映射对每个像素采用一些异或操作,并用可逆算法实现扩散过程。
Lorenz混沌映射是一个已经被广泛研究的经典的高维的混沌系统。由这个系统产生的加密序列有三个优点:一是与低维混沌相比系统的结构更复杂,这样的混沌序列更难预测;二是由三个变量产生的三个实值序列可以单独使用也可以一起使用;另外,这个系统的三个控制参数和三个初始条件都可以用来作为密钥。因此用Lorenz混沌映射设计图像加密算法比用一维的混沌映射更有利。Lorenz混沌系统的动态方程如下:
其中,σ,γ和b是控制参数,当σ=10,γ=28和b=8/3时,系统出现混沌现象。如果σ,γ是常数,那么Lorenz混沌系统的周期是无限的。用Lorenz混沌对像素位置置乱后的图像ImmtxmidR进行加密生成密文图像ImmtxoutR的过程如下:
步骤1:输入图像ImmtxmidR;
步骤2:选择适当的x1,y1,z1,作为Lorenzr的初始值,利用连续迭代Lorenz混沌系统(首先进行初始迭代,迭代次数大于某个正整数),得到三个混沌序列xi,yi,zi,i=1,2,…,舍弃前5000个值,取长度都为N×N,即x',y',z'作为加密序列。
为了增强序列的加密效果,对实数混沌序列进行预处理,生成X,Y,Z三个矩阵,然后利用其生成三个索引矩阵lx,ly,lz,再生成置乱矩阵Px,Py,Pz。具体改进过程为:(1)小数点后移,并去其整数部分,以增强序列取值的不规则性、改善其弱高频特性;(2)去整时作四舍五入,对Lorenz混沌序列进行不可逆的演变;(3)统一值域,得到(0,1)均匀分布的混沌伪随机序列。改进的数学模型为[8]:
步骤3:将置乱后图像ImmtxmidR中各像素点的灰度值ImmtxmidR(i,j)与序列Px进行异或操作,得到加密后的像素灰度值ImmtxoutR(i,j)。
同样的方法,对ImmtxmidG(i,j)、ImmtxmidB(j,j)分别与Py、Pz进行异或操作,得到ImmtxoutG(i,j)、ImmtxoutB(i,j)的灰度值;
步骤4:重复以上步骤,将所有像素点均进行加密,完成图像像素值的替代操作;
步骤5:折叠加密后的灰度图像即得加密后的彩色图像。
解密过程是加密过程的逆过程,即只要利用相同的混沌系统生成相同的密钥序列进行先展开替换后置乱折叠。
选用大小256×256的彩色图像lena.bmp作为源图像。使用加密程序对源图像进行加密,生成目标图像。仿真结果见图1。
图1 图像加密仿真图
图2给出了明文Lena图像R层及其对应的密文图像像素分布的直方图,G层和B层直方图与R层类似。从图2可见,尽管原始图像的像素值分布极不均匀,但密文像素数在密文取值空间呈均匀分布。因此,加密图像具有良好的统计分布特性,使算法具有抵抗差分攻击的能力。
图2 加密前后R-层图像直方图
由于Logistic、Lorenz混沌映射的初值和参数均可作为加密系统的密钥,若采用精确到小数点后15位的双精度实数表示,那么密钥空间超过1060≈2199,相当于199 bit长的密钥空间,这远远大于128 bit密钥长度,为一维混沌系统密钥的1030倍。显然,密钥空间足够阻止各种穷举攻击。
首先,从图像中随机选择3000对相邻像素点;然后利用以下公式计算:
其中,x,y表示图像中两相邻像素点的灰度值,图3表示原图Lena和密图垂直方向相邻像素点的相关性分布,相关度分别为0.9506,0.0015,其余实验结果如表1所示。从表中可以看出,原始明文图像的相邻像素是高度相关的,相关系数接近于1,而加密图像的相邻像素相关系数接近于0,相邻像素基本不相关,明文的统计特性已被扩散到随机的密文中。
图3 原图和密图垂直方向相邻像素点的相关性分布
表1 加密前后Lena图像中两相邻像素点的相关度
图像在传输或进行其它处理的过程中,经常会受到噪声的干扰和一系列的攻击,所以抗攻击能力的强弱也是检验加解密算法优劣的一个重要标准。
首先,对加密图像分别添加密度为0.02的椒盐噪声、乘性噪声和高斯噪声干扰,然后检测观察其鲁棒性。从加噪后恢复的图像(图4)可以看出,算法对噪声干扰具有较好的鲁棒性。
图4(d)加密图像被剪掉左上角约1/4部分数据后解密得到的图像,可以清楚地看出,被剪切部分的影响被非常均匀地扩散到整幅图像,所以本文的算法具备非常强的抗剪切攻击的能力,同时也证明了此加密算法对图像像素位置的置乱达到了充分混乱的效果。
图4 密图剪切攻击后的解密图
图5(c)是a=10-16而混沌系统的其他所有初值均保持不变时的解密图像。图5(d)是密钥正确时得到的解密图像,可见混沌系统中任何一个初值即使存在很细微的差异也无法解密得到正确图像,这是由混沌系统对初值的敏感依赖性所决定的。
本文提出了一种新的基于Logistic与Lorenz相结合的混沌系统的彩色图像加密算法,通过对加密前、后的直方图比较可以发现改变很显著,而且加密后的灰度分布均匀,说明本算法符合密码的扩散和混乱特征;对加密后图像相邻像素的相关性进行检测,进一步显示出超混沌和扩散性。密钥的微小差异就不能解密图像,说明本加密算法对加密密钥的高度的敏感性,同时本算法可有效地抵御差分等方式的攻击。
该系统的图像加密算法既对图像的位置进行置乱,又对图像的像素值进行扰乱。使用自定义的评价函数对新设计的加密算法的仿真结果进行了分析,得到的结果数据、图表等表明算法的密钥空间足够大,对密钥和明文非常敏感,具有非常强大的抗攻击能力,大大提高了图像加密的安全性,达到了算法的预期效果,从而具有实际应用意义。
[1]余成波.数字图像处理及MATLAB实现[M].重庆:重庆大学出版社,2003.
[2]LIU F,WU C K,LIN K J.Colour visual cryptography schemes[J].IET Information Security,2008,2(4):151-165.
[3]SHYU S J.Image encryption by multiple random grids[J].Pattern Recognition,2009,42(7):1582-1596.
[4]王英,郑德玲,王振龙.空域彩色图像混沌加密算法[J].计算机辅助设计与图形学学报,2006,18(6):876-880.
[5]RHOUMA R,MEHERZI S,BELGHITH S.OCML-based colour imageencryption[J].Chaos Solitons&Fractals,2009,40(1):309-318.
[6]HUANG C K,NIEN H H.Multi chaotic systems based pixel shufflefor image encryption[J].Optics Communications,2009,282(11):2123-2127.
[7]刘云,郑永爱.基于混沌系统的彩色图像加密新方案[J].计算机工程与应用,2011,47(3):90-93.
[8]王英,郑德玲,鞠磊.Lorenz混沌序列的改进[J].数据采集与处理,2006,6(21):179-183.