中国科技论文在线
http://www.paper.edu.cn
一种基于混沌和小波变换的快速图像加密
算法
王苑婷,王世红**
5
10
(北京邮电大学理学院,北京 100876)
摘要:当前存在的许多图像加密算法因其具有过于复杂的加密操作,在具体应用中并不适用。
针对以上问题,提出一种基于 logistic 映射和小波波变换的快速图像加密算法。根据图像像
素值是整数的特点,首先对图像进行整数小波变换,利用 logistic 生成的随机序列对低频子
带进行加密,在空间域再次用随机序列对图像进行加密,从而达到更好的混乱效果。仿真结
果表明,该算法具有扩散性能好、有效抵抗选择明文攻击和执行速度快等优点。
关键词:混沌;图像加密;logistic 映射;小波变换
中图分类号:O415.5
15
A fast image encryption algorithm based on chaos and
wavelet transformation
WANG Yuanting, WANG Shihong
(School of Sciences, Beijing University of Posts and Telecommunications, Beijing 100876)
Abstract: Recently, many image encryption algorithms are proposed,due to overly complex
encryption architecture, and they are usually not feasible in practical application. To solve the
problem above, a fast image encryption algorithm based on integer wavelet transformation (IWT)
and chaos is proposed. In IWT domain, the low frequency coefficients are confused by chaotic
sequence. After IWT, the pixels of image are further confused by the chaotic sequence. Simulation
results show that the algorithm has good confusion and diffusion and high effiencicy, and resists
against chosen-plaintext attacks.
Key words: chaos; image encryption; logistic map; wavelet transformation
20
25
0 引言
在当今社会中,信息特别是图像/视频在人们的生活中占据了越来越重要的位置。随着
网络技术的迅速发展,每分钟都有上千上亿的图像和视频通过网络产生和传输。这些图像和
30
视频可能包含了一些私人或者敏感的信息,这些信息的不正当的发布会给个人或者企业组织
带来严重的后果。因此,保护这些图像和视频的安全性显得格外重要。图像加密是一种有效
的保证图像和视频安全的方式[1]。
传统的加密方法,如 DES、AES 等,都是把明文看作是二进制数据流,但是由于图像
数据具有数据量大、像素相关性大、能量分布不均匀等特点,使得传统的加密方法不太适应
35
于数字图像。随着对混沌理论研究的逐渐深入,人们发现了混沌学与密码学之间的紧密联系。
混沌具有与密码学的混淆和扩散要求相吻合的遍历性、拓扑传递性以及初值敏感性等特性
[2,3],使之非常适用于图像加密技术。根据 Shannon 提出的保证安全通信的混乱和扩散原则[4],
图像加密算法的本质是对像素的位置进行混乱和像素值进行扩散。混乱是指使用某种方法使
图像像素在空间的位置混乱,类似地,在频域的数据位置进行混乱称为频域混乱。混乱是最
40
具有图像加密特色的方法之一,因为在密码学中文本加密中没有“位置”的概念。但是在图
像处理中,只有位置的混乱被证明是不安全的[5]。
作者简介:王苑婷(1991-),女,硕士,主要研究方向:混沌图像加密
通信联系人:王世红(1966-),女,教授,主要研究方向:混沌密码. E-mail: shwang@bupt.edu.cn
- 1 -
中国科技论文在线
http://www.paper.edu.cn
近些年来,国内外的学者提出了很多的基于混沌的图像加密算法[6-11],但是它们中的一
些已经被证明是不安全的[12-16]。现有的很多加密算法具有复杂的加密结构,虽然它们的安全
性能比较高,但复杂的加密结构意味着需要很大的计算量,这显然不符合实际应用的要求。
45
因此,图像加密算法设计的难点是如何兼顾算法的安全性和效率性。为了解决以上难题,本
文提出一种基于混沌和小波变换的快速图像加密方法,利用小波变换的优点,在频域内对小
波系数进行加密。最后的仿真结果验证了算法的有效性。
1 相关理论知识
1.1 Logistic 映射
50
Logistic 映射是由荷兰生物学数学家 Verhulst 在 19 世纪中叶提出的虫口动力学模型[17]。
一维 Logistic 映射的数学表达式如下:
其中,
, 为参数,
。当
时,系统会进入混沌状态。
(1)
1.2 整数小波变换
55
小波变换对图像而言是很好的频域分析工具。图像经过小波变换之后可以得到不同分辨
率的子图像,不同分辨率的子图像具有不同的频率,其中,低频子图像是原图像的近似表达,
而高频子图像体现了原图像中的边缘、细节等部分。但是对数字图像进行第一代小波变换处
理后的数据,即得到的小波系数不再是整数,对小波系数进行加密的结果会引起图像在其重
构后发生图像降质。因此为了解决此问题,可以采用整数小波变换。整数小波变换是通过小
60
波提升实现的。与第一代小波变换相比,第二代小波提升变换具有运算量降低一半、实现简
单、可实现整数变换等特点。小波变换的提升格式为信号在空间域实施分裂、预测、更新三
大步骤完成信号的频率分解。下面主要介绍一下 harr 小波的整数提升形式[18,19]。
设原始输入信号为 , 里面有 个样本空间,即
。将信号
按奇偶性分为 ,b 两个序列,即
,
。经
65
过 一 层 小 波 变 换 后 , 会 将 信 号 划 分 成 低 频 部 分 和 高 频 部 分 , 其 中 低 频 部 分 表 示 成
,高频部分表示成
。 和 的计算方式如
下:
上式中
表示就近取整。按照公式(2)计算所得的小波系数均为整数。
(2)
70
2 图像加解密算法
2.1 随机序列的生成
设明文图像的大小为
,在加密过程中需要用到的随机序列为
。
在本算法中,我们用 logistic 映射产生随机序列 。
假设输入 8 个字符(64 比特)作为外部密钥 K,
, 表示一个 8bit
- 2 -
1(1)nnnxxx01nx043.5740S0S2n00()02nSSii0Sa10(2)02naSii10(21)12nbSii111()02nSSii111()02nddii1S1d11101()()(),02()(21)(())ndiaibiiSiSirounddi()roundmn(),[1,]seqiimnseq128KKKKiK
中国科技论文在线
75
的子密钥。令
和
http://www.paper.edu.cn
分别组成一个 32 比特的整数,并将它们
化为实数 和 ,
,
。
利用 和 来产生 logistic 映射的两个系数值 和 :
(3)
为了充分利用长度为 64bit 的密钥 K,同时也为了防止 logistic 映射在重复迭代的过程中
80
出现退化的现象,用
这 8 个子密钥在
生成的过程中对系数 和初始值
产生三次扰动,即每生成
长度的混沌序列就改变 logistic 映射的系数 和初始值 。
按照以下四个步骤生成序列
令
:
,其中
,在本算法 取 0.5。首先将
logistic 映射迭代 ( 为正整数)来去除暂态效应,然后迭代
次产生混沌序列
85
。
更新
,然后令
,迭代 logistic 映
射
次产生混沌序列
更新
,然后令
次产生混沌序列
90
更新
,然后令
射
次产生混沌序列
。
。
。
,迭代 logistic 映射
,迭代 logistic 映
在本算法中将用上述方法产生的混沌序列 来分别对低频系数和空间像素值进行扩
散操作。
2.2 图像加密算法
95
图 1 加密算法结构图
Fig. 1 The structure of encryption algorithm
图 1 是本文所设计的加密算法结构图,设明文图像 的大小为
,如果 或者 不
100
能被 2 整除,则对行或者列补 0,用户输入的 64bit 的密钥为 ,通过加密过程获得的密文
为 C,具体的加密过程描述为:
:明文图像 P 进行整数小波变换,得到小波系数矩阵 , 由四个大小均为
的 子 带 系 数
构 成 , 其 中
是 低 频 子 带 系 数 ,
是高频子带系数。对小波变换后的子带系数 进行混乱,不仅能减少计算
- 3 -
1234KKKK5678KKKK1X2X3211234/2[0,1]XKKKK3225678/2[0,1]XKKKK1X2X1211223.75/43.75/4XX128KKK()seqi0x/4mn0x(),[1,]seqiimn1:step10001(1)xTTX,0(01)T,0T0N0N/4mn(),[1,/4]seqiimn2:step0(/4)Tseqmn20002(1)xTTX,/4mn(),[/4+1,/2]seqiimnmn3:step0(/2)Tseqmn10001(1)xTTX,/4mn(),[/2+1,3/4]seqiimnmn4:step0(3/4)Tseqmn20002(1)xTTX,/4mn(),[3/4+1,]seqiimnmnseqPmnmnK1stepII(/2,/2)mnLLLHHLHH、、、LLLHHLHH、、LL
中国科技论文在线
http://www.paper.edu.cn
105
量,而且低频系数的改变会对小波逆变换后的图像产生很大的影响,因此我们选择对低频系
数 进行混乱
:产生混沌序列 并进行取整。根据 64 比特密钥 K,按照 2.1 所述的方法产生
混沌序列 。由于经过整数小波变换产生的低频系数 的范围是 0~255 的整数,而混沌
序列的范围是 0~1 之间的小数,为了使混沌映射产生的混沌映射能够与低频系数 进行运
110
算,需要把混沌序列 的值映射到集合{0,1,2,…,255}上。本文对混沌序列 按照公式
5 进行取整。
(4)
其中,
()是向下取整函数,
返回的是 与 相除之后的余数。
:用修正后的序列
对低频系数 LL 进行扩散。由于低频系数 LL 的大小为
115
,而序列
的长度为
,因此我们仅需要取
的前
个值对低
频系数 LL 进行扩散操作。为了计算方便,将二维矩阵
转
换成一维矩阵
。按照公式 5 对低频系数进行扩散操作。
(5)
其中,把
的值设为一个常数。
120
: 把 更 新 后 的 低 频 系 数
转 化 成 二 维 矩 阵 的 形 式
,然后和
计算所得的高频系数
一
起作整数小波逆变换变化到空间域上,得到混乱后的图像 。
:为了增强算法的安全性,需要在空间域对像素值作进一步的扩散。采取与
中的扩散结构类似的形式,首先将二维矩阵 转换成一维序列
,然后按照
125
公式 6 依次对 的像素值进行改变得到密文 C。
(6)
其中,把
的值设为一个常数。
2.3 图像解密算法
130
图 2 解密算法结构图
Fig.2 The structure of decryption algorithm
图 2 是解密算法结构图,解密过程是加密的逆过程,解密过程用到的混沌序列 与加
密过程中的相同。首先在空间域对密文按照公式 6 的逆变换实现像素值的逆变换,然后对图
135
像作整数小波变换生成子带系数
。在频域内按照公式 5 的逆变换实现
低 频 系 数 的 逆 变 换 生 成 新 的 低 频 子 带
。 最 后 利 用 更 新 后 的 子 带 系 数
- 4 -
LL2stepseqseqLLLLseqseq14se'()mod[(((()1)/210),256]qifloorseqifloormod(,)xyxy3step'se()qi22mn'se()qimn'se()qi/4mn,),[1,/2],[1,/2]LLijimjn('(),[1,4]LLiimn()(1)'(){('(k)'())mod256}CLLkCLLkseqkLLseqk(1)CLL4step()CLLi'(,),[1,/2],[1,/2]CLLijimjn1stepLHHLHH、、'C5step3step'C''(),[1,]Ciimn'C()(1)'(){(''(k)'())mod256}CkCkseqkCseqk(1)CseqLLLHHLHH、、、'LL
中国科技论文在线
http://www.paper.edu.cn
作小波逆变换生成明文。
3 算法仿真与性能分析
在 matlab 2012 的 仿 真 环 境 下 , 选 用 大 小 为 512*512 , 灰 度 级 数 为 256 的
140
bridge.bmp
图像按照 2.2 和 2.3 所述方法进行仿真实验,选用的小波变换为 haar
整数小波变换,变换级数为一级。在本次仿真实验中选取的用户输入的外部密钥 K 为
‘JiaMi123’,另外 的取值为 100,
和
的取值均为 125。图 3(a)是加
密前的原图,图(b)是图(a)是采取上述密钥加密后得到的密文,图(c)是采取上述密
钥解密后得到的明文。从图(c)中可以看出,加密后的图像已经完全掩盖了原始图像轮廓。
145
图 3 bridge.bmp 图像加/解密效果. (a)原图像;(b)加密后图像;(c)解密后图像
Fig.3 The encrypted and decrypted results of bridge.bmp. (a) the original image; (b) the encrypted image; (c)
the reconstructed image
3.1 密钥空间分析
150
3.1.1 密钥数量分析
本算法的密钥用户输入的外部密钥 K 构成。由于密钥 K 一共 64 比特,则本算法的密
钥空间为 。由于本算法的设计目的是实现快速图像加密,虽然密钥空间不是特别大,但
是更具有实际应用。
3.1.2 密钥敏感度分析
155
除了具有较大的密钥空间,一个好的加密算法应该对每个密钥具有很好的敏感度。换句
话说,密钥的一个微小变化能引起密文的很大的变化。图 4(a)表示明文图像,首先利用
密钥 对 airfield.bmp
图像进行加密,然后仅修改密钥 的一个比特对密文进行
解密得到图像 4(b),可以看出密钥仅差一个比特得到一幅完全与明文不同的解密图像。
图 4(c)图是用正确的密钥 得到的解密图像,和明文是一致的。以上结果说明本算法具
160
有良好的密钥敏感度,密钥中有任何微小的变化都不能完成正确的解密过程。
图 4 密钥敏感性测试
Fig. 4 Key sensitivity test
- 5 -
'LLLHHLHH、、、(512512)0N(1)C(1)CLL642K(512512)KK
中国科技论文在线
3.2 统计性分析
http://www.paper.edu.cn
165
下面将从直方图、相邻像素相关性和信息熵测试三个方面对密文进行统计性分析。
3.2.1 直方图分析
图 5(a)是 airfield.bmp
图像加密前的直方图,图 5(b)是 airfield.bmp 图
像加密后的直方图。由图 5(b)可以看出加密后的密文直方图趋向于均匀分布,已经不能
从密文的直方图中推测出明文直方图的特征,从而能很好地掩盖了明文图像的分布规律。
170
3.2.2 相关性分析
图 5 加密前后的直方图对比
Fig.5 The histograms of plain image and encrypted iamge
175
为了计算相邻像素的相关性的大小,通常从测试图像中随机选取 1000~3000 对相邻像
素,然后根据公式 7 分别计算每对相邻像素对在水平方向、垂直方向和对角线方向相邻的像
素的相关系数 ,
(7)
其 中 ,
,
,
180
,x, y 分别表示密文图像中两个相邻像素的像素值。
Lena
图像加密前和加密后的相关性系数见表 1。表 1 显示加密后的图像在
垂直方向,水平方向和对角方向相邻的像素的相关性大大降低,接近于 0,表明相邻像素之
间不相关。经过以上分析,说明本算法能够有效地抵抗统计分析。
185
表 1 明文和密文的相邻像素的相关性系数
Tab. 1 Correlation coefficients of two adjacement pixels in plain and encrypted images
明文
密文
水平方向
0.941
0.00202
垂直方向
对角线方向
0.954
0.00294
0.934
-0.00175
3.2.3 信息熵分析
由文献[4]可知,一个随机信源由于各个符号是等概率出现的,因此它的信息熵为 8。但
是一个实际意义上的信源的信息熵会小于 8,如果加密后的密文的熵越接近 8,说明密文图
190
像的灰度分布越均匀,越接近于随机分布。表 2 是几幅不同的明文图像加密后的信息熵,结
- 6 -
(512512)xyr(,),()()xyconxyrDxDy11cov(,)(())(())NiiixyxExyEyN211()(())NiiDxxExN11()NiiExxN(512512)
中国科技论文在线
http://www.paper.edu.cn
果表明密文的信息熵接近于 8,说明本算法能够有效地抵抗熵的攻击。
195
表 2 不同明文图像加密后的信息熵
Tab.2 The entropy of different plain images after they are encrypted
Plain image
Entropy/(bit/符号)
airfield
bridge
Lena
7.99149
7.99147
7.98893
3.3 扩散性分析
下面将从明文敏感度、MSE 和 PSNR 三个方面对密文进行统计性分析。
3.3.1 明文敏感度分析
通常从像素改变率(NPCR)和一致平均变换强度(UACI)两个方面进行敏感度分析。假
200
设两幅明文图像仅有一个像素点的灰度值不同,然后分别对两幅图进行加密,得到两个密文
图像 和 。
和
分别表示
处的像素值,定义矩阵
: 如果
,则
,否则
。NPCR 表示两幅图像不同像素所占
的百分比,定义为:
205
其中,定义 M 为图像的高度,N 为图像的宽度。
一致平均改变强度(UACI)的意义是测试两幅图之间差异的平均强度。两个密文图像
和 之间的 UACI 越大,表明算法的扩散性能越好,定义 UACI 为:
(8)
(9)
为了测试本算法对明文的敏感度的大小,选用两幅有细微差别的明文图像,其中一幅是
210
上面测试选用的明文原图像,另一幅是将位于(100,1)的像素值仅改变 1 比特。对两幅图
像分别进行加密得到两幅密文,然后根据公式 8 和 9 计算可得
和
的值。表 3
是测得的不同明文图像加密后
和
的值。
和
是衡量加密算法扩散
效果的重要参数,从上述测得的数据显示,本算法具有良好的扩散特性。
215
Tab.3 The values of NPCR and UACI of different plain images
表 3 不同明文图像的
和
的值
Plain image
Lena
bridge
Couple
NCPR
0.996147
0.996139
0.996124
UACI
0.335784
0.334251
0.333917
3.3.2 MSE 和 PSNR
均方误差
和峰值信噪比
是衡量图像质量的重要指标,用 和 分别表示
- 7 -
(512512)(512512)(256256)1C2C1(,)Cxy2(,)Cxy(,)xy(,)Dxy12(,)(,)CxyCxy(,)0Dxy(,)1Dxy,(x,)100%,xyDyNPCRMN1C2C12,(,)(,)1100%255xyCxyCxyUACIMNNCPRUACINPCRUACINPCRUACINPCRUACI(512512)(512512)(256256)MSEPSNR1C2C
中国科技论文在线
http://www.paper.edu.cn
两幅加密图,它们之间的密钥仅仅相差 1bit,MSE 可计算如下:
(10)
220
其中,定义 M 为图像的高度,N 为图像的宽度。
和
分别表示密文图像 和
在
处的像素值。。
可以通过均方误差
计算得到:
其中, 是图像的灰度级数的动态范围,如果图像的灰度值范围为 0~255, 的取值为
225
。选取几幅明文图像,然后采用公式 10 和 11 计算均方误差和峰值信噪比得到
表 4 中数据。
(11)
表 4 不同明文图像加密后的 MSE 和 PSNR 的值
Tab. 4 The values of MSE and PSNR of different plain images after they are encrypted
Plain image
couple
girl
brain
MSE
13395
9254
13601
PSNR/(dB)
6.895
8.501
6.828
230
3.4 执行速度
一个算法的执行速度的快慢直接影响它的实际中应用的效果,因此效率问题也是在设计
算法时应该考虑的重要问题。本算法应用了提升小波算法对图像进行小波变换,而提升小波
一大优点就是具有较快的执行速度,与经典 Mallat 算法相比,运算量减少了一半,所以应
用提升小波变换可以加快本算法的执行速度。由于低频子带的大小仅为原图像的 1/4,对低
235
频子带进行加密操作可以节省计算量。和低频子带和空间域像素值的扩散采用的同一个随机
序列,这也减少了算法的计算量。通过仿真测试可得,对于大小为
的灰度图像进
行加密,本算法仅需要 0.862s,具有较快的执行速度。
4 结论
本文基于 logistic 映射和小波变换设计了一种图像加密算法。首先对图像作整数小波变
240
换,然后对低频子带利用外部密钥所生成的随机序列进行加密,对修改后的低频子带和高频
子带一起重构图像,最后在空间域对图像整体进行扩散加密来进一步增强算法的安全性。相
关的仿真实验数据表明,本文中设计的加密算法安全性高,速度快且易于实现。本文下一步
的工作重点将图像压缩与图像加密结合起来,提出更实用的图像加密算法。
[参考文献] (References)
245
250
[1] 孙燮华.图像加密算法与实践[M].北京:科学出版社,2013.
[2] Li T Y, Yorker J A. Period three implies chaos[J]. American mathematical monthly, 1975:985-992.
[3] Stewart I. Mathematics: The Lorenz attractor exists[J]. Nature, 2000, 406(6799): 948-949
[4] Shannon C E. Communication Theory of Secrecy Systems[J]. Bell system technical journal, 1949, 28(4):
656-715.
[5] Zhao X, Cheng G, Zhang D, et al. Decryption of pure-position permutation algorithms[J]. Journal of Zhejiang
University SCIENCE, 2004, 5(7): 803-809.
- 8 -
212111((,)(,)),MNijMSECijCijMN1(,)Cij2(,)Cij1C2C(,)ijPSNRMSE21010log,LPSNRMSELL821255(256256)(256256)(256256)512512