张 楠,夏 玮,赵子平,程邺华
(1.天津师范大学计算机与工程信息学院,天津 300387;2.河北工程大学 信息与电气工程学院,河北 邯郸 056000)
彩色图像的广泛应用使得彩色图像加密具有更大的使用价值,并日渐成为人们的研究热点[1-3].近年来,很多学者对彩色图像空间域加密算法进行了大量研究[4-13],而对频域加密的研究较少.空间域加密算法主要是对二维灰度图像的像素点进行位置置乱,然后对置乱的像素点进行异或运算,以达到加密效果.空间域加密算法的优势是可以充分利用图像数据的矩阵特征,计算速度快,算法直观,易于理解.但是,由于加密过程破坏了像素之间的相关性,会导致图像压缩的效果变差.基于频域的图像加密算法对图像进行小波变换后的系数进行加密处理,且可以根据人类视觉系统的特征,仅对一些重要数据进行处理,明显减少了加密的数据量,提高了加密效率.同时,这类算法可以很好地与压缩算法结合,减少网络传输的数据量.
为了加强图像加密的安全性,目前多采用复杂的高维混沌系统[14-15].相对于低维混沌系统,高维混沌系统的密钥空间更大,随机性更强,具有更高的安全性.本研究提出了一种基于Lorenz 混沌系统,针对彩色图像小波域的加密算法,首先对图像进行小波处理,对得到的小波域系数矩阵依据混沌系统产生的无序序列进行多次分块置乱,以提高置乱效率;然后采用扩散和置乱同时进行的方式,减少算法的遍历次数,从而提高图像的加密效率,减少加密算法运算的时间.
混沌现象是出现在非线性动力系统中的确定性的、类似随机的过程,这种过程既非周期性的又不收敛,并且对初始值有极其敏感的依赖性.通过自身对初始值和结构参数的敏感依赖性,系统可以提供数量众多、非相关、类随机而又确定可再生的信号.由于上述特点,混沌已广泛应用于保密通讯中,同时也可以作为加密序列.
Lorenz 混沌具有很好的随机性,基于此混沌序列的加密系统可以获得更好的安全性.由Lorenz 混沌系统生成的混沌序列具有以下优点:(1)系统结构较低维系统复杂,系统变量的实数值序列更不可测;(2)通过对系统输出的实数值混沌序列进行处理,可以产生单变量或多变量组合的加密混沌序列,使得加密序列的设计非常灵活;(3)系统的初值和系统参数均可以作为生成加密混沌的种子密钥,若设计过程中再加入部分控制变量,加密算法的密钥空间将大大高于低维混沌系统.
Lorenz 混沌映射由美国气象学家Lorenz 在实验过程中提炼得出,其动力系统学方程式[16]为
当参数σ、r 和b 分别取10、28 和8/3 时,Lorenz 混沌映射模型处于典型的混沌状态.基于初始条件,通过四阶Runge-Kutta 迭代作用可以产生三维混沌序列x(i)、y(i)和z(i),该序列是非周期性的,且对初值非常敏感.
基于频域的图像加密原理首先对彩色图像进行R、G 和B 三基色分离,然后对转换成的二维灰度图像进行小波变换,得到小波域系数;再把混沌系统的初始值和参数作为密钥,将密钥带入混沌系统使之产生无序实数序列,并对实数序列进行预处理;用所得的无序实数序列根据一定的规则对小波域系数进行置乱,接着对置乱后的数据矩阵进行异或运算,最终得到加密图像.
为了降低算法的计算强度和空间需求,可把三维彩色图像转化为二维空间的灰度图像进行处理.将输入的Pm×n×3原三维彩色图像分离成R、G 和B三基色分量PR、PG和PB,分离方法为
应用于数字图像的离散小波变换(Discrete Wavelet Transform,DWT)可以视为利用低通滤波器和高通滤波器将数字图像在频域上分解为低频和高频两类系数.低频类系数包含了图像的大部分信息,能量较为集中,对这一部分系数进行加密即可得到较好的图像加密效果.
输入PR、PG和PB共3 个灰度图像矩阵,分别对其进行db1 一级小波分解.将所得小波域系数的低频系数矩阵进行置乱加密,而高频系数则不做改变.
设产生的低频系数矩阵为DR(l,k)、DG(l,k)和DB(l,k),为了计算方便,本研究将这3 个矩阵转化为一维序列DR(i)、DG(i)和DB(i),其中i=l×k.
采用上文中提到的Lorenz 混沌映射产生所需的实数序列{x(i),y(i),z(i)},但文献[6]指出,该序列易受线性预测攻击,且序列间的相关特性较高,故在对图像进行加密前需要对产生的原始序列进行置乱预处理.
置乱预处理的具体步骤为:
(1)将序列值同时扩大10 的m 次方倍,m≥6.
(2)利用round 函数求取步骤(1)中产生的每个数值的最近整数,与原数值作差,得出值域在(-0.5,0.5)之间的新序列.
数学计算模型为
根据式(2)产生的值作如下处理,使其成为适合异或的操作数,得到扩散预处理的计算模型:
式(3)中:mod 函数是取模运算,得出序列{Cx(i),Cy(i),Cz(i)},用于下文中的异或操作.
本研究采用小波域系数值置乱和扩散同步进行的方法,即每置乱1 个系数后,就对该置乱系数进行异或扩散.
置乱与扩散的过程(仅用R 分量举例说明)为:
(1)设m 为DR(i)序列的长,k′=1,l′=log2(m)-1,n=l′.
(2)将DR(i)序列分成2n×2n大小的序列段,每个序列段用FR(i)来表示.
(3)将由式(2)所得的预处理过的三维实数序列{x(i),y(i),z(i)}从小到大进行排序,在每个序列的排序过程中,根据其序列地址变化的映射生成一个由序列地址组成的序列Kx(i),将该序列作为对步骤(2)中生成的小波域低频系数序列段进行置乱的置乱索引,即DR(i)表示原低频系数序列中第i段,则FR(Kx(i))表示置乱后的FR(i).
(4)令DR(i)=FR(i),k′=k′+1,n′=n′-1.这时程序回到步骤(2),进行循环操作,直到k′≤l′.当k′=l′时,FR(i)的大小为2×2.
(5)对分段置乱后的Dr(i)进行整体置乱,每置乱一个系数值后即与式(3)中生成的操作数序列进行异或操作.
(6)输出合成彩色图像,完成加密.
(7)解密算法为加密算法的逆过程.
该加密模版对小波域系数进行了多次置乱,与单次置乱算法相比较,增大了解密的难度,且置乱时先对分成的序列段进行置乱,节省了计算时间.最后扩散与置乱同时进行,减少了算法对加密图像的遍历次数.
选用大小为256×256×3、灰度值为256 色的Lena.jpg 作为实验图像,利用Matlab7.0 为平台进行实验,Lorenz 混沌系统的3 个初值分别取值为0.182 505 937 4、0.362 709 148 5 和0.251 940 736 8,参数取值为a=35,b=10,c=1,d=10 和u=8,积分步长为0.001,采用四阶Runge-Kutta 算法解微分方程.本研究的最终加密效果如图1 所示,由图1可见,算法已经完全隐藏了原始图像,看不出原始图像的轮廓.
采用本研究提出的算法与文献[4]和文献[6]中提出的算法对同一彩色Lena 图像在同一设备上运行计算,测试得到的加密运算时间如表1 所示.
表1 算法运行时间比较Tab.1 Comparison of running time of algorithms
由表2 可以看出,本研究提出的算法在运行时间上比其他2 种算法节省多于1.080 0 s 的时间,达到了研究所期望的效果.文献[4]中提出的算法为直接在空域上对图像进行置乱和扩散;文献[6]中提出的算法则是在对图像进行小波处理的基础上,对小波域系数进行置乱和扩散,后2 种算法采用了相同的置乱方法.
原图的灰度直方图与加密后的灰度直方图对比如图2 和图3 所示.
对比图2 和图3 可知,与分布不均匀的原始直方图相比,加密后的直方图平坦且灰度值呈均匀分布.这表明密文的像素值在0~255 范围内的取值概率均等,即对整个密文空间呈均匀分布特性,攻击者无法从灰度值的特征中获取有效信息,因而可以有效地防止统计攻击,加强了图像的安全性.
一个好的加密系统应该有足够大的密钥空间来防止攻击者暴力破解.本研究提出的算法中,密钥包括了x(0)、y(0)和z(0),以及对序列预处理时的m 值,任何一个值改变都不能正确解密图像.为了测试本研究的密钥敏感性,采取2 组密钥对加密图像进行解密,图4a 为原始密钥即x(0)=0.182 605 937 4,其他初始值不变时的解密图像,图4b 为将x(0)的值改变为0.182 605 937 5,其他初始值不变时的解密图像,可以看出,即使在密钥发生微小改变时,也不能得到正确的解密图像.
图像在处理、保存和传输过程中经常会受到噪声的干扰,一个好的加密算法应该具有良好的抗干扰能力.传输过程中在可能引入的随机噪声引起损失或加密图像部分数据缺损后,图像应均能正确解密,恢复出原图像.从实验结果看,本研究算法具有较好的抗干扰能力.图5 为加密图像受到几何失真或噪声污染后的加密图像和解密图像.
图5b 为加密图像被剪切24%后的解密图像,图像存在噪点,但图像特征与细节效果仍然很明显,效果良好.图5d 为加密图像被剪切50%后的解密图像,图像存在大量的噪点,个别细节失真,但图像特征依旧明显.图5f 是受到5%高斯噪声污染后的解密图像,可以看出噪声污染对原图像几乎没有影响.
本研究提出一种基于Lorenz 混沌系统的彩色图像小波域加密算法,在置乱阶段对系数矩阵进行多次分块置乱,可在增加置乱强度的同时,降低置乱算法的强度.本研究所采用的扩散和置乱同时进行的方式减少了算法遍历次数,提高了加密效率.实验结果和数据分析表明:该算法具有良好的加密效果和很强的密钥敏感性,可以抵抗暴力破解和其他干扰,具有较高的安全性.但小波系数所含图像信息的减少导致图像的加密强度有所降低,这是今后研究需要改进的地方.
[1]BLACKLEDGE J,AHMAD M,FAROOQ O.A multi-level blocks scrambling based chaotic image cipher [J].Information Processing Letters,2010,94:171—182
[2]YE G D,WONG K W.An efficient chaotic image encryption algorithm based on a generalized Arnold map[J].Science Business Media,2012,69(4):2079—2087.
[3]GUAN Z Q,PENG J,JIN S Z.Research on a novel image encryption scheme based on the hybrid of chaotic maps[J].Verlag Berlin Heidelberg,2010,6064:222—229.
[4]刘云,郑永爱.基于混沌系统的彩色图像加密新方案[J].计算机工程与应用,2011,47(3):90—93.
[5]舒永录,张玉书,肖迪,等.基于置乱扩散同步实现的图像加密算法[J].兰州大学学报:自然科学版,2012,48(2):113—116.
[6]尹显东,姚军,李在铭,等.基于混沌序列的频域图像加密技术研究[J].计算机工程与应用,2004(34):12—14.
[7]张晓强,王蒙蒙,朱贵良.图像加密算法研究新进展[J].计算机工程与科学,2012,34(5):1—5.
[8]陈刚,赵晓宇,李均利.一种自适应的图像加密算法[J].软件学报,2005,16(11):1970-1982.
[9]陆阳,杨文泉,陈蕾.图像频域加密算法[J].计算机工程与应用,2003(14):130—131.
[10]王虹,孙景.基于混沌的图像复合置乱和多级信息隐藏算法[J].计算机工程与应用,2008,44(3):67—70.
[11]邱劲.混沌伪随机序列及其在数字图像加密应用的研究[D].重庆:重庆大学,2011:36—55.
[12]王英,郑德玲,王振龙.空域彩色图像混沌加密算法[J].计算机辅助设计与图形学学报,2006,18(6):876—880.
[13]田岩,谢玉波,李涛,等.一种基于分块和混沌网的图像置乱方法[J].中国图象图形学报,2007,12(1):56—60.
[14]张硕,蔡如华,陈光喜.一种空频域结合的多维混沌系统图像加密方案[J].微电子学与计算机,2010,27(7):60—64.
[15]郑洁,韩凤英.基于四维混沌系统的数字图像加密算法[J].计算机工程与应用,2009,45(12):104—106.
[16]余日,张定会.彩色数字图像的Lorenz 混沌加密[J].信息安全,2012,28(4):117—118.