张 忠,丁 群
(黑龙江大学 电子工程学院,哈尔滨 150080)
基于混沌的加密算法目前论述很多,多数基于新混沌系统提出的图像加密算法。赵亮等[1]对高维混沌系统的图像加密算法的安全性和效率进行了改进;胡学刚[2]基于复合混沌系统提出了图像加密新算法,该算法使用一维Logistic混沌映射与复杂的三维Lorenz映射;卢辉斌[3]讨论了一种新的彩色图像加密的算法。该算法以Lorenz混沌系统的初始条件作为初始密钥对图像进行异或预处理,由Logistic映射和Lorenz系统产生的混沌序列分别对图像进行置乱和扩散操作。该算法以处理后图像数据作为置乱过程中Logistic映射的初始值,实现Lorenz系统与Logistic映射;王珊珊[4]提出了一种基于混沌的图像加密算法;佟晓筠[5]提出一种基于扰动的复合混沌序列密码的图像反馈加密算法;陈艳峰[6]提出了一种基于Logistic和Chebyshev双混沌映射的数字灰度图像加密算法,即借助基于明文产生的辅助密钥、初始密钥以及由双混沌系统产生交替分段相互置乱的密码序列;刘树堂[7]基于空间混沌进行了图像加密设计;邱炳城等[8]提出了一种基于小波变换和混沌映射的数字图像置乱加密算法。先对数字图像进行小波分解,再对变换后的小波系数进行混沌置乱,最后对置乱后的系数矩阵进行逆小波变换得到加密图像;包浩明[9]提出一基于多层密钥的混沌映射保密通信系统;陈帅等[10]提出基于离散数字混沌序列的图像加密;周庆等[11]给出3种加密算法的压缩性能。此外,这类算法在安全性、加密效率和鲁棒性方面也有很好的表现,可用于二值图像的安全通信。特别是刘宴兵[12]提出基于混沌的RC4流加密算法;陈慧杰等[13]提出了图像混合和小波变换的双重彩色图像隐藏; Yeo,J.-C[14]提出了基于VLSI的硬件实现。
本文利用小波与分形结合的图像编码方法对图像进行压缩,基于此提出了混沌加密技术算法。
分形编码具有任意比例下存在着某种自相似性的特点。它由迭代方法产生,表现的是事物从总体向局部转化,从宏观向微观深化的过程。分形编码提取的是整体与局部之间存在的某种自相似特征,因此为了有效地提取图像的函数迭代系统代码,必须对原图像进行预分割。它可以是空域的分割,也可以是频域或其它像空间的分割。小波变换是一种频域与空域相结合的图像分析手段,它本身并不具有压缩功能,它只是把图像分解为不同分辨率和不同空间方向的一系列子带图像。而这正好为分形编码提供了一种性能优良的预分解工具。另一方面,分形图像编码的依据是图像的自相似性。而一般图像的自相似性并不强,但小波变换能很好地提取原始图像的细节信息,且这些细节信息在不同分辨率上表现出较好的自相似性。可充分利用这种相似性,结合分形图像编码可以获得比单独进行小波图像编码或分形图像编码高得多的压缩比。
小波图像编码和分形图像编码都是图像压缩领域的研究热点,但二者又都存在一定的局限性。利用小波与分形结合的图像编码方法对图像进行压缩,使两种算法相得益彰,已经成为目前发展的趋势。
一幅N×N的图像经n级小波变换后得到的小波系数组成的矩阵记为S,排列形式如式(1);其中HLj、L Hj、HHj(j=1,…,n)的尺寸为最低频LLn的尺寸为图像小波分解后的近似信息由LLn体现,垂直方向的轮廓、边缘和纹理等信息由L Hj体现,水平方向的轮廓、边缘和纹理等信息由各高频子带HLj体现,对角方向的轮廓、边缘和纹理等信息由HHj体现。
图像经过小波分解后的能量主要集中在低频域LLn,高频子带中大部分数值都接近于零。所以对于一个图像来说,表现一个图像最主要的部分是低频部分,即使丢弃L H,HL,HH 3个方向的信息,只恢复低频子带LLn的信息,也能较好地恢复原始图像。因此基于小波变换的分形图像压缩的基本思想是去掉高频子带信息 (垂直方向的信息L Hj、水平方向的信息 HLj、对角方向的信息H Hj),对低频子带进行图像重构,然后对重构图像进行分形图像压缩编码(图1、图2)。
编码速度太慢一直是传统分形压缩算法实用化的最大障碍。对于 N×N大小的图像,取值域块大小为R×R,定义域块大小为2R×2R时,Δ h为沿原图水平方向的移动的步长。图像共有个值域块和个定义域块。在进行分形图像压缩算法中,对某一个特定的值域块,为了寻找其最佳匹配块,必须对整个定义域进行全局搜索,因而计算量非常大,非常耗时。一直以来,分形图像编码研究的核心内容之一是提高编码速度。
图像分类是一种最简单的设置判断标准的方法,只有相同类别的R块和D块才进行匹配,这样可以缩小搜索D块的范围。分类的作用在于减少最佳匹配块的搜索范围,把全搜索变为局部搜索,从而达到降低编码时间的目的。
图像的信息熵是图像所含信息的度量,由于图像中每个像素点灰度的信息熵能很好地描述图像像素点灰度的分布特征,它表达了图像所包含的信息丰富程度,因此将图像的信息熵看成是图像统计特性的一种。由于每个D块的信息熵是唯一的,即使该D块经过对折、旋转及伸缩等变换,其信息熵始终不变。信息熵的计算比较简单,因此本文利用信息熵作为一种分类标准对R块和D块进行分类,只有相同类别的R块和D块才进行匹配,在搜索过程中每个R块只需要通过比较R块和D块的信息熵,找到熵值接近R块的D块后,这样就缩小了搜索D块的范围,再让该D块经过8种矩阵变换找到最优的参数并且使误差满足阈值,使匹配精度进一步提高。
对于由像素点组成的数字图像,由于不同灰度的像素点以不同的概率分布填充不同的空间区域,因而使得不同的图像表现出了不同的形状特征。将图像像素灰度值(取值为[0,255])表示为集合F。假设具有灰度m的像素点在图像中出现的概率为pm,则根据式(2),该灰度的信息熵可定义为:
其中0≤m≤255。若将不同灰度的熵的累加和定义为图像的信息熵,则对于灰度图像,图像的信息熵可定义为:
根据式(4)算出每一个Ri块和Di块所对应的信息熵,分别记为和。设置阈值T,对每一值域块Ri来说,找出满足||<T的定义域块。计算出相应参数,从而完成对值域块Ri的编码。
对最低频子带进行单独编码之后,对剩余的高频子带进行Spiht编码。现进行如下的修改:
1.3.1 LIP初始化为空集
由于对小波分解后的低频子带单独进行分形图像编码,而Spiht算法仅对小波分解后的高频子带进行编码,所以原来包括低频子带的所有系数的不重要系数表LIP,现在将其初始化为空集。
1.3.2 初始阈值的修改
阈值 T=2m,其中其中将ci,j改为不包括低频子带LLn的系数,这样才能更好地对剩余的高频细节子带,即 HLj、中的小波系数进行编码。
由于小波变换后的低频子带具有能量高的特点且高频子带存在大量的零树,对低频子带和高频子带分别采用不同的编码方案:对小波变换的低频子带采用基于信息熵的快速分形图像压缩,在不显著影响重构图像质量的基础上,提高分形编码的速度;小波变换后的高频系数存在大量的零树,且越到高分辨带,零树越密集,而且零树的自相似性很弱。而分形图像编码只是对重要系数的编码性能较好,对于较多的零树情况,压缩比较低,所以对包含原图像中丰富的细节边缘信息的高频系数采用Spiht编码,增加重构图像的质量,从而减少由分形图像压缩所带来的方块效应。
本文算法的编解码示意图见图3、图4。
图3 编码示意图Fig.3 Encryption graph
编码步骤:①原始图像基于DWT进行变换,产生低频与高频子带图像;②基于低频子带进行基于信息熵的快速分形编码;③基于高频子带进行Spiht编码;④分别对编码后的高、低频数据进行混沌加密,生成加密数据流。
解码步骤:①应用混沌密钥分别对编码后的高、低频数据进行混沌加密,生成高低频数据压缩数据;②基于低频子带进行基于信息熵的快速分形解码;③基于高频子带进行Spiht解码;④基于IDWT进行反变换,产生低频与高频子带图像,重构原始图像。
下面以Lorenz系统为例,实现该保密通信方案。在仿真中,发送系统和接收系统均为Lorenz系统,采用耦合同步法,发送和接收端都引入了有用信号和混沌信号组成的混合信号的反馈,发送和接收系统方程分别见式(5)、式(6),待仿真结果见图5。
图4 解码示意图Fig.4 Decode Graph
由此可见,在改进方案中,由于有用信号反馈回发送端,收、发双方受到同一信号u(t)驱动,有用信号完全融合到混沌系统的运动当中,不仅消除了波形迭加引起的信息外泄,系统的抗噪声干扰能力也增强了,同时信息可以较好地被恢复,信息恢复精度与原始混沌遮掩方案相比,大为提高。
单纯采用小波,混沌的加解密效果图见图5。采用spiht算法实现的混沌加解密效果图见图6。
当采用常规的小波分解算法时,混沌密钥在加解密前后有明显的对比效果。而采用spiht算法混沌噪声很强时,加解密对比效果在高峰值信噪比时较差;加解密对比效果在低峰值信噪比时较理想;这是因为spiht算法在小波分解后,又多了一层小波系数排序的过程及信源编码过程,当混有混沌噪声时,会影响信源的编码,在解码端亦受到影响,低峰值信噪比时影响较小。
基于混沌、分形与Spiht算法提出了一种有效的图像加密算法,该算法达到了理想的加密效果。目前算法已实现,下一步将基于 ICETEKDM642-DSP开发板硬件实现基于Spiht与混沌的图像加密算法。
[1]赵 亮,廖晓峰,向 涛.对高维混沌系统的图像加密算法安全性和效率的改进 [J].计算机应用,2009, 29(7):1 775-1 778.
[2]胡学刚,王 月.基于复合混沌系统的图像加密新算法[J].计算机应用,2010,30(5):1 209-1 211.
[3]卢辉斌,刘海莺.基于耦合混沌系统的彩色图像加密算法 [J].计算机应用,2010,30(5):1 812-1 814.
[4]王珊珊.一种基于混沌的图像加密算法[J].CONTROL&A UTOMATION,2009,(9):251-255.
[5]佟晓筠,崔明根.基于扰动的复合混沌序列密码的图像反馈加密算法[J].中国科学(F辑:信息科学), 2009,29(6):588-597.
[6]陈艳峰,李义方.交替分段相互置乱的双混沌序列图像加密算法[J].华南理工大学学报(自然科学版), 2010,38(5):27-33.
[7]刘树堂,孙福艳.基于空间混沌的图像加密设计 [J].中国科学(G辑:物理学力学天文学),2009,(3): 387-393.
[8]邱炳城,姚仰新,陈银冬.用小波变换和混沌映射实现图像置乱[J].计算机工程与应用,2009,(11): 102-103.
[9]包浩明.基于多层密钥的混沌映射保密通信系统 [J].电子学报,2009,(6):201-205.
[10]陈 帅,钟先信.基于离散数字混沌序列的图像加密[J].电子与信息学报,2007,4(4):898-900.
[11]周 庆,廖晓峰.一类二值图像快速加密算法的压缩性能分析[J].电子与信息学报,2009,(2):800-806.
[12]刘宴兵,田四梅,唐浩坤,等.基于混沌的RC4流加密算法[J].计算机工程,2011,(2):136-138.
[13]陈慧杰,赖惠成.图像混合和小波变换的双重彩色图像隐藏[J].计算机工程与应用,2011(4):231-235.
[14]Yeo,J.-C.Guo,J.-I.Efficient hierarchical chaotic image encryption algorithm and its VLSI realisation. Vision,Image and Signal Processing[J].IEE Proceedings.2000,147:167-175.