基于Chen系统的图像压缩加密算法
2015-04-29刘杨佟晓筠马婧
刘杨 佟晓筠 马婧
摘 要:混沌作为一种复杂的非线性运动行为,具有遍历性、初值敏感性、宽频谱以及类随机性等特征,这些特征使混沌同密码学紧密联系起来。本文提出了一个基于Chen混沌系统的图像压缩加密算法。对原始图像经过预处理后进行离散余弦变换和熵编码,实现对图像的压缩,利用Chen混沌系统生成伪随机密钥流序列,将其用于对图像像素进行置乱和替代操作以完成对图像像素的加密。测试与分析结果表明所提出的算法具有良好的性能。
关键词:图像加密;图像压缩;混沌映射
中图分类号:TP309.7 文献标识码:A 文章编号:2095-2163(2015-)02-
Chaos Based Image Compression and Encryption Algorithm
LIU Yang1, TONG Xiaojun1, MA Jing2
(School of Computer Science and Technology, Harbin Institute of Technology, Weihai Shandong 264209,China;2 Science and Technology on Information Assurance Laboratory, Beijing 100072,China)
Abstract: Chaos is a kind of complex nonlinear motion. It has many typical properties such as ergodicity, sensitivity to initial conditions, broad spectrum, and random-like behaviors. So chaos is connected with cryptography closely. A Chen chaotic mapping based image compression and encryption algorithm is proposed in the paper. The original image is pretreated and then the image data are compressed by the discrete cosine transform and the entropy coding. The pseudorandom key-stream sequences generated by the Chen mapping are used to scramble and diffuse the image pixels and get the cipher image. Experimental tests and analysis show that the proposed algorithm performs well.
Keywords: Image Encryption; Image Compression; Chaotic Mapping
0引 言
混沌非線性系统[1]具有很多典型的特征,如遍历性、对初始条件的敏感性、类随机行为以及宽频谱等[2],其中绝大多数特性均与密码学的基本要求一致。基于混沌理论与密码学的紧密联系,越来越多的研究者将混沌应用于密码算法的设计中[3-11]。Chen G. R.等人[7]提出了基于可逆混沌映射的图像加密算法,在算法中对图像像素的加密采用的是Tent映射和Arnold映射。Patidar V.等人[8]提出了一种彩色图像加密算法,把RGB三维矩阵重写成二维矩阵,然后对其进行置换和替代操作,首先用混沌映射生成替代序列,再进行依赖于明文的预置换,最后进行具体的置换和替代操作,而且加密的轮数是变化的。Mirzaei O.等人[9]基于超混沌系统,提出了一种对图像进行全局置乱和并行加密的算法。Li J.H. [10]等人利用一个二维混沌映射,构造了一个基于高级加密标准的彩色图像加密算法。SaberiKamarposhti M.等人[11]将生物作战机制应用于设计混沌图像加密算法,利用3-cell混沌映射和DNA序列一起作用于明文图像而得到密文图像。
本文设计了一个针对图像文件的压缩加密算法。首先对明文图像进行JPEG格式的压缩过程,包括颜色模式的转换、采样以及分块等预处理,然后对其进行离散余弦变换(DCT),对变换后的系数进行处理,处理后的数据流再经过游程编码和霍夫曼编码这两种熵编码过程,得到了压缩后的图像数据。应用Chen混沌系统生产伪随机序列,作为密钥流实现对压缩后的图像数据流的置乱和替代,最终得到密文图像。
2 Chen混沌系统
高维混沌系统具有比低维混沌系统更复杂的动力学行为,因此将高维混沌系统用于图像加密算法的设计具有更好的安全效果。本文采用的是著名的三维Chen混沌系统[12],三维Chen混沌系统是由陈关荣教授提出来的微分系统,其动力学行为比Lorenz系统更复杂,具体方程如下:
(1)
其中a, b, c为系统参数,当a=35, b=3, c=28时系统的混沌吸引子如图1所示。
a) y-z相图
b) y-z-x相图
A)y-z phase diagram b) y-z-x phase diagram
图1 Chen系统奇怪吸引子图
Fig.1 Strange attractor diagrams of Chen system
3 混沌图像压缩加密算法设计
本节设计了一个基于Chen混沌系统的图像压缩加密算法,利用熵编码实现对图像的压缩,然后利用Chen混沌系统生成密钥流序列,将此密钥流序列用于对图像像素的置乱和扩散操作,实现对图像的加密。加密算法的主要结构如图2所示。
图2 图像压缩加密算法
Fig.2 Image compression and encryption algorithm
3.1 混沌密钥流生成
步骤1 生成密钥流序列。
给定系统初值,利用Chen混沌系统可以得到三组混沌序列{xn},{yn}和{zn} (n=1, 2, …)。为了提高混沌序列离散化后的性能,减少计算机有限精度造成的周期退化问题,将此三组序列进行如下排序:
{x1, y1, z1, x2, y2, z2, ..., xn, yn, zn}
(2)
将如此得到的混沌序列重新表示为一个序列{wn}(n=1, 2, …)。此序列中的所有数据都是十进制的,将每个wn都表示为二进制:wn=0.bn,1 bn,2…bn,m…bn,p,其中bn,m?{0, 1}, p表示计算机的精度,抽取每个数的第8位的二进制比特,则wn可以离散化为:
(3)
这就将原来的十进制序列{wn}转换为离散的二进制序列,将序列中的二元比特分为8比特一组,得到的序列重新表示为{kn},显然,kn?[0, 255] (n=1, 2, …)。给定混沌系统的另一组初值,利用相同的方法可以得到另一个密钥流序列,设其为{k?n}。
3.2 图像压缩过程
步骤2 图像预处理。
采用YCbCr来显示图片,首先要进行颜色空间的转换,YCbCr分量可直接由用8位表示的RGB分量计算得到:
(4)
然后进行颜色采样过程,人眼对亮度变换的敏感度要比对色彩变换的敏感度高出很多,因此可以认为Y分量要比Cb和Cr分量重要得多,那么在采样时这三个分量的数据取样比例取为4:1:1。采样之后将其分成8?8的块进行处理,其原因可描述为压缩过程是根据像素之间的相关性来处理的,只有相邻的像素之间有较高的相关性,因此分块后,对块内的像素根据相关性来进行压缩处理。
步骤3 图像块DCT。
在图像分块后,对每个块进行DCT处理。DCT是一种常见的变换编码方法,任何连续的实对称函数的傅里叶变换中只含有余弦项,因此余弦变换同傅里叶变换一样具有明确的物理意义,正向离散余弦变换计算公式如下:
(5)
其中,
x和y代表图像数据矩阵中的某个像素的坐标位置;f(x, y)指图像块矩阵中该点的取值;u和v指经过DCT变换后矩阵中的数值点的坐标位置,在这里u=x,v=y;F(u, v)指经过DCT变换后该坐标点的取值。
步骤4 系数量化。
对经过DCT变换后的频率系数进行量化。量化的目的是减小非零系数的幅度以及增加零值系数的数目。为了达到压缩数据的目的,对DCT系数F(u, v)需作量化处理。量化阶段需要两个8×8量化矩阵数据,一个是专门处理亮度的频率系数,另一个则是针对色度的频率系数,将频率系数除以量化矩阵的值之后进行取整操作,即完成了量化过程。
步骤5 熵编码。
为了进一步达到压缩数据的目的,需要对量化后的系数进行熵编码,包括游程编码和霍夫曼编码。首先对图像数据流进行游程编码,将二元数据流转换为多元数据流,然后对多元数据流按照概率的大小重新排序,对排序后的数据流进行霍夫曼编码,使得出现频度比较高的符号分配比较短的码,而对出现频度较低的符号分配比较长的码,从而达到了压缩的目的。
3.3 图像加密过程
步骤6 像素置乱。
设经过压缩处理后的图像为M行N列的,首先将图像的行利用密钥流{kn}循环左移置乱:将图像第一行的像素循环左移k1位,将图像第二行的像素循环左移k2位,以此类推,将图像第M行的像素循环左移kM位,以完成对图像的行的置乱过程。将图像的列利用密钥流{k?n}循环下移置乱:将图像第一列的像素循环下移k?1位,将图像第二列的像素循环下移k?2位,以此类推,将图像第N列的像素循环下移k?M位,以完成对图像的列的置乱过程。从而完成了对整个图像像素的置乱。
步骤7 像素替代。
图像像素的置乱并不改变像素的值,像素的频率分布并不发生改变,因此容易受到统计攻击。为了使密文图像能够抵抗统计攻击,这里采用扩散的方法来改变像素的值,并通过密文反馈的方法进一步提高算法的安全性。像素替代的方法如下:
ci=(ki+mi+ci-1) mod 256
(6)
式中,ci为密文的第i个像素的值,c0=0,mi为明文的第i个像素的值,ki为密钥流的第i个值。将所有的像素都经过替代处理后就得到了加密后的密文图像。
解密是加密的逆过程,这里不再详述。
4 图像压缩加密算法实现与分析
4.1 算法实现
为了检验算法的性能,下面给出了Lena图加密前后的结果,如图3所示。由图3可以看到,加密前明文有意义的像素信息被破坏,形成了没有实际意义的雪花状的图案,达到了基本的加密效果。
a) 明文图像
b) 密文图像
A) the plaintext image b) The Ciphertext image
圖3 算法效果图
Fig.3 Algorithm effect diagram
4.2 密钥空间分析
算法密钥空间的大小显示了一个算法抵抗对密钥空间的穷举攻击的能力。Chen混沌系统有四个变量,若计算机精度是10-14,则Chen混沌系统的密钥空间的势为1014?3=1042。显然,在目前的计算能力下,此密钥空间足够大,能够抵抗穷举攻击。
4.3 频率攻击分析
图像的像素频率能展示像素值的分布情况,研究实验测试了Lena图像加密前后的像素分布情况,如图4所示。由图4可以看到,加密前的明文图像像素分布非常不均匀,而加密后的密文图像分布非常均匀,说明此图像加密算法可以抵抗频率攻击分析。
a) 明文像素频率
b) 密文像素频率
A) Pixel frequency of the plaintext b) Pixel frequency of the ciphertext
图4 明文和密文像素频率图
Fig.4 Pixel frequency diagrams of the plaintext and the ciphertext
4.4 信息熵分析
信息熵指的是数据的混乱程度,密文的信息熵越高,则密文的混乱程度越高,信息熵的计算公式为:
(7)
对于由8个二元比特表示的像素值,当图像像素处于理想的随机状态时信息熵值为8,表1列出了几幅图像加密前后信息熵对比,显然密文的信息熵接近于8。
表1 明文和密文信息熵对比
Tab.1 Information entropy comparison of the plaintext and the ciphertext
图像
R通道
G通道
B通道
明文
密文
明文
密文
明文
密文
Lena
7.040
7.9994
7.582
7.9995
7.279
7.9986
Pepper
7.058
7.9992
7.493
7.9992
7.338
7.9990
Baboon
6.271
7.9990
6.444
7.9991
6.499
7.9991
5 结束语
本文基于Chen混沌系统,提出了一个图像压缩加密算法。首先用JPEG编码的方法,对图像进行预处理,将分块后的图像数据进行离散余弦变换,对变换后的系数进行处理,再经过两种熵编码过程完成对图像数据的压缩。压缩后的图像数据流再进行置乱和扩散操作,这两种操作是在Chen混沌系统产生的密钥流的控制下进行的,其中扩散过程采用密文反馈的方式增加算法安全性,最后得到了密文图像。对算法的密钥空间分析、频率攻击分析和信息熵分析结果表明此算法具有较好的性能。
参考文献:
[1] 郝柏林.从抛物线谈起—混沌动力学引论[M]. 上海:上海科学技术出版社, 1995: 48-50.
[2] 廖晓峰,肖迪,陈勇,向涛.混沌密码学原理及其应用[M].北京:科学出版社, 2009: 259-263.
[3] PAREEK N K, PATIDAR V, SUD K K. Discrete chaotic cryptography using external key[J]. Physics Letters A, 2003, 309(1-2):75-82.
[4] GAO T G, CHEN Z Q. A new image encryption algorithm based on hyper-chaos[J], Physics Letters A, 2008, 372(4): 394-400.
[5] LI H J, ZHANG J S. A novel chaotic stream cipher and its application to palmprint template protection[J]. Chinese Physics B, 2010, 19(4): 040505.
[6] YE R S. A novel chaos-based image encryption scheme with an efficient permutation-diffusion mechanism[J], Optics Communications, 2011, 284(22): 5290-5298.
[7] CHEN G R, MAO Y B, CHUI C K. A symmetric image encryption scheme based on 3D chaotic cat maps[J]. Chaos solitons & fractals, 2004, 21(3): 749-761.
[8] PATIDAR V, PAREEK N K, PUROHIT G, et al. A robust and secure chaotic standard map based pseudorandom permutation-substitution scheme for image encryption[J], Optics Communications, 2011, 284(19): 4331-4339.
[9] MIRZAEI O, YAGHOOBI M, IRANI H. A new image encryption method: parallel sub-image encryption with hyper chaos[J], Nonlinear Dynamics, 2012, 67(1): 557-566.
[10] LI J H, LIU H. Colour image encryption based on advanced encryption standard algorithm with two-dimensional chaotic map[J]. IET Information Security[J]. 2013, 7(4): 265-270.
[11] SABERIKAMARPOSHTI M, MOHAMMAD D, RAHIM M S M , et al. Using 3-cell chaotic map for image encryption based on biological operations[J]. Nonlinear Dynamics, 2014, 75(3):407-416.
[12] CHEN G.R., UETA T. Yet another chaotic attractor[J]. International Journal of Bifurcation and Chaos, 1999, 9(7): 1465-1466.
1 基金項目:信息保障技术重点实验室开放基金 (KJ-14-005),山东省自然科学基金(ZR2009GM037, ZR2014FM026)。
作者简介:刘 杨(1978-),女,辽宁开原人,博士研究生,讲师,主要研究方向:信息安全、混沌密码;
佟晓筠(1963-),女,辽宁沈阳人,博士,教授,主要研究方向:信息安全、混沌密码;
马 婧:国家信息保障技术重点实验室