全文HTML
--> --> --> -->2.1.图像预处理: 基于小波包变换的图像分解法和自适应分类
在数字图像加密方案中, 小波包变换(wavelet packet transform, WPT)经常被运用在预处理阶段对明文图像进行分解进而得到不同的图像信号分量以消除一些对于后续处理步骤不利的负面因素及提高图像处理方案整体的运行效率. 本文采用离散二阶小波包变换对明文图像进行分解, 并对分解后的图像信号进行自适应分类处理以减少图像的冗余信息对图像处理效果的影响[7—9]. 以Lena图像为例, 其离散二阶小波包变换如图1所示.图 1 Lena图像及其二阶小波包变换 (a)原图; (b)二阶小波包变换
Figure1. Lena and its second-order wavelet packet transformation: (a) Original Lena; (b) second order wavelet packet transformation of Lena.
图1(b)中左上角的信号分量包含了原始图像中的大部分能量, 因此, 该信号将作为图像加密处理的主体信号, 记为S.
对于剩下的15个信号分量, 先对其进行阈值处理. 针对于每一个信号分量, 根据下列公式计算其均值E:
在得到这15个信号分量的均值后, 选择最大的一个均值Emax, 再结合下列公式对这15个信号分量矩阵中的元素进行阈值处理:
图 2 分类算法流程图
Figure2. Flow chart of classification algorithm.
图2中, Zi信号表示均值为0的图像信号分量, 该类分量没有存储原始图像任何有用的信息, 在后续处理过程中不会涉及, 可直接丢弃; Oi信号代表均值小于E'的图像信号分量, 这部分信号存储了原始图像的部分有效信息量, 为保证对原始图像的完美的重构, 在后续处理过程中需保留该部分信号, 但不做任何处理; Ci信号作为第四类图像信号分量, 其相比于Oi信号包含了原始图像更多的有效信息. 因此, 考虑对Ci信号采用压缩感知算法进行压缩处理以减少后续处理过程中的数据量, 进而提高加密方案整体的运行效率.
对于Lena图像而言, 在对其16个图像信号分量进行阈值处理分类后, 得到了1个S信号, 0个Zi信号, 7个Oi信号, 8个Ci信号.
2
2.2.一种新的基于压缩感知和多维混沌系统的图像加密方案
32.2.1.基于压缩感知的图像压缩算法
本节主要针对2.1节中得到的8个Ci图像信号分量进行压缩处理[10—12]. 前文中已经说明压缩感知理论应用的前提在于待压缩信号是稀疏信号, 对于图像信号而言, 其0像素点的个数可以简单地反映其稀疏度, 现对8个Ci信号中的0像素点个数及占比进行考察, 结果列于如表1.信号分量 | 0像素点个数 | 0像素点占比/% |
C1 | 329 | 8.03 |
C2 | 554 | 13.53 |
C3 | 703 | 17.16 |
C4 | 682 | 16.65 |
C5 | 436 | 10.64 |
C6 | 917 | 22.39 |
C7 | 842 | 20.56 |
C8 | 789 | 19.26 |
表1Lena图像Ci信号分量0像素点的个数及占比
Table1.The number and proportion of 0 pixels in Ci signals in Lena.
由表1中0像素点占比一列可知, 8个Ci信号中0像素点占比最低为8.03%, 最高为22.39%, 因此可以认为这8个Ci信号是稀疏的, 可以直接进行压缩感知的随机亚采样操作.
本文采用高斯随机矩阵作为对Ci信号进行随机亚采样的测量矩阵, 在后续针对压缩信号的重构过程中, 应用正交匹配追踪算法(orthogonal matching pursuit, OMP)作为重构算法对已压缩的信号分量进行重构, 最终得到与Ci信号等数量、等尺寸的解压信号DCi.
3
2.2.2.基于多维混沌系统的图像加密算法
置乱过程单一的图像加密算法往往具有密文图像的安全性较差的缺陷, 进而无法对明文图像的信息进行有效的保护. 本文在一般的单次置乱图像加密算法的基础上, 引入了二次置乱加密以保证加密算法的安全性. 其中, 一次置乱加密算法的流程图如图3所示.图 3 一次置乱加密流程图
Figure3. One scrambling encryption algorithm flow chart.
引入如(3)式所示的四阶Colpitts混沌系统[13]作为图3中的混沌系统1, 取系统初值为[0.01,0.02, 0.03, 0.04].
对Colpitts混沌系统进行一段时间的迭代后共可得到四组等长的伪随机序列xi, ,yi, zi, wi[14], 随机选取其中的三组混沌序列在某个随机时刻的取值xt, yt, zt, 将这三个随机数的值限制在区间[0.01 0.1]内得到初始密钥[x0, y0, z0]. 此时引入如(4)式所示的三阶Chen混沌系统[15]作为图3中的混沌系统2, 其系统初值即为[x0, y0, z0].
对Chen系统进行一段时间的迭代得到三组等长的伪随机序列xi, yi, zi, 在这三组伪随机序列中随机选取两个数取整后得到a, b, 代入如 (5) 式所示的数字化Arnold映射中:
图 4 S信号的密文图像 (a) 一次置乱密文图像; (b) 二次置乱密文图像
Figure4. Ciphertext image of the S signal: (a) Scrambling ciphertext image once; (b) secondary scrambling ciphertext image.
在完成S信号的一次置乱加密后, 根据如图5所示的二次置乱加密流程图对S信号进行二次置乱加密.
图 5 S信号二次置乱加密流程图
Figure5. Secondary scrambling encryption flow chart of S signal
其中, 密钥流k由下列公式计算得到:
3
2.2.3.图像重构: 基于小波包变换的逆运算
针对原始图像的重构需结合未经处理的图像信号分量以及经压缩、加密算法处理后的各类图像信号分量, 图像的重构过程如图6所示.图 6 图像重构流程图
Figure6. Image reconstruction flow chart.
图 7 Lena图像的明文图像、重构图像 (a)原始图像; (b) Lena重构图像
Figure7. Original, reconstructed image of Lena: (a) Original image; (b) reconstructed image.
为方便之后对算法性能进行对比分析, 本文还对除Lena图像以外的2幅图像进行了相同的操作, 结果如图8所示.
图 8 更多加密方案运行实例 (a) Pepper原始图像; (b) Pepper重构图像; (c) Cameraman原始图像; (d) Cameraman重构图像
Figure8. More encryption scheme running examples: (a) Original image of Pepper; (b) reconstructed image of Pepper; (c) original image of Cameraman; (d) reconstructed image of Cameraman.
-->
3.1.密钥空间分析
对于一种加密算法而言, 密钥空间是其加密性能的一种直观的体现, 一般情况下, 密钥空间范围越大的加密算法, 在应对蛮力攻击等非法解密手段时往往能够表现出良好的抵御性能. 本文中所使用的加密算法在保证混沌系统始终位于混沌状态的前提下, 利用4阶Colpitts超混沌系统产生Chen系统的控制参数c及初始值x0, y0, z0, 虽然数字仿真降低了混沌系统的随机性, 但是作为4阶超混沌系统, 它在足够的计算精度下同样具有较大范围的密钥空间. 同时, 当Colpitts混沌系统的控制参数及初始值发生变化时, Chen系统的控制参数及初始值也会相应地发生变化, 故之后用于图像加密的密钥流也会发生变换. 除此之外, Colpitts系统的迭代次数也会影响Chen系统密钥流的产生. 因此, 本文加密算法的密钥空间是比较广泛的, 蛮力攻击无法实现对被加密图像的有效解密.2
3.2.相关性分析
在密码学中, 混淆(confusion)与扩散(diffusion)是加密文件的两种主要方法. 对于一般的数字图像, 其相邻像素点之间会表现出很高的相关性, 然而, 对于一幅理想的密文图像, 其相邻像素点之间应该不具有任何相关性, 即各方向上相邻像素点间的相关系数为0. 因此, 密文图像在各方向上相邻像素点间的相关系数可以作为评价一个图像加密算法优劣的重要指标.一般在水平方向、垂直方向和斜线方向来计算一幅数字图像相邻像素点间的相关系数, 相关系数R的计算公式如下:
表2列出了本文所使用的三幅图像的S信号在加密前后在三个方向上的相关系数. 此外, 表2中还列出了参考文献[16,17]中的明文图像(S信号)、密文图像对应的三个方向上的相关系数作为对比. 其中, 每一项绝对值最小的相关系数已用蓝色粗体标出.
图像 | 明文图像 | 密文图像 | |||||
水平 | 竖直 | 斜线 | 水平 | 竖直 | 斜线 | ||
Lena (本文) | 0.9189 | 0.7339 | 0.8097 | –0.0002 | –0.0004 | 0.0001 | |
Lena[16] | 0.9180 | 0.7345 | 0.8083 | 0.0032 | 0.0025 | –0.0173 | |
Lena[17] | 0.9151 | 0.8097 | 0.7484 | –0.0274 | 0.0051 | –0.0117 | |
Pepper (本文) | 0.8849 | 0.7567 | 0.8323 | –0.0003 | –0.0004 | 0.0003 | |
Pepper[16] | 0.8827 | 0.8374 | 0.7482 | 0.0210 | 0.0010 | 0.0071 | |
Pepper[17] | 0.8864 | 0.8398 | 0.7466 | 0.0070 | –0.0198 | –0.0228 | |
Cameraman (本文) | 0.9275 | 0.8364 | 0.8866 | 0.0004 | 0.0001 | 0.0002 | |
Cameraman [16] | 0.9339 | 0.8898 | 0.8459 | –0.0035 | –0.0014 | 0.0159 | |
Cameraman[17] | 0.9280 | 0.8835 | 0.8411 | 0.0277 | 0.0141 | 0.0281 |
表2比较不同加密方案的相关系数
Table2.Comparisons for the correlation coefficients of different encryption scheme.
此外, 为更加直观地表示数字图像相邻像素点间的相关性, 本文引入了数字图像的相关性分布图, Lena, Pepper, Cameraman的明文图像(S信号)、密文图像在三个方向上的相关性分布图如图9—图11所示.
图 9 Lena图像的明文(S信号)、密文图像在水平、竖直、斜线三个方向的相关分布图 (a)明文图像相关分布图; (b) S信号的密文图像相关分布图
Figure9. Correlation distribution of plaintext, ciphertext image in horizontal, vertical and oblique directions of S signal of Lena: (a) Correlation distribution of plaintext of S signal; (b) correlation distribution of ciphertext of S signal.
图 11 Cameraman图像的明文(S信号)、密文图像在水平、竖直、斜线三个方向的相关分布图 (a)明文图像相关分布图; (b) S信号的密文图像相关分布图
Figure11. Correlation distribution of plaintext, ciphertext image in horizontal, vertical and oblique directions of S signal of Cameraman: (a) Correlation distribution of plaintext of S signal; (b) correlation distribution of ciphertext of S signal
图 10 Pepper图像的明文(S信号)、密文图像在水平、竖直、斜线三个方向的相关分布图 (a)明文图像相关分布图; (b) S信号的密文图像相关分布图
Figure10. Correlation distribution of plaintext, ciphertext image in horizontal, vertical and oblique directions of S signal of Pepper: (a) Correlation distribution of plaintext of S signal; (b) correlation distribution of ciphertext of S signal.
结合表2中数据及相关性分布图可知, 经由本文加密算法得到的密文图像的像素点在三个方向上均近似地表现为随机分布, 有效地对明文图像进行了置乱. 同时, 比较由本文算法与参考文献[16,17]的算法得到的密文图像的相关系数, 由表2中的数据可以直观地看到, 本文的加密算法相较于参考文献[16,17]中的加密算法使得图像的像素点更趋近于理想的随机分布, 增强了保密性.
2
3.3.信息熵分析
信息熵反映了一幅数字图像所包含的信息的不确定性. 对于一幅数字图像而言, 其信息熵越大, 表示其所包含的信息的不确定性越大, 数字图像的信息熵的定义式如下:加密方案 | 明文图像 | 密文图像 |
Lena (本文) | 7.3035 | 7.9544 |
Lena[16] | — | 7.9642 |
Lena[17] | — | 7.9531 |
Pepper (本文) | 7.4344 | 7.9633 |
Pepper[16] | — | 7.9586 |
Pepper[17] | — | 7.9543 |
Cameraman (本文) | 6.9571 | 7.9554 |
Cameraman[16] | — | 7.9636 |
Cameraman[17] | — | 7.9538 |
表3比较不同加密方案的信息熵
Table3.Comparisons for the entropy of different encryption scheme.
观察表3中的数据(“—”表示相同数值), 三种加密方案下密文图像的信息熵均接近理想值8, 本文所提出的加密算法在加密Lena, Pepper的S信号时均得到了最大的信息熵值. 此外, Cameraman的S信号经由本文加密算法处理得到的密文图像的信息熵数值也是十分接近最大值的. 因此, 可以认为本文的加密方案能够较好地对明文图像(S信号)的像素点进行置乱, 掩盖明文图像信息.
2
3.4.直方图分析
灰度直方图(histogram)是灰度级的函数, 它表示图像中具有每种灰度级的像素的个数, 反映图像中每种灰度出现的频率[18]. 一般而言, 灰度直方图的横坐标是灰度级, 纵坐标是该灰度级出现的频率, 它是图像的最基本的统计特征[7]. 本节将基于图像的S信号对应的明文、密文的直方图, 对本文的加密算法进行评价, 各图像对应的灰度直方图如图12所示.图 12 Lena, Pepper, Cameraman图像的S信号的明文、密文的灰度直方图 (a) S信号的明文灰度直方图; (b) S信号的密文图像相关分布图
Figure12. Gray histogram of plaintext and ciphertext of S signal of Lena, Pepper, Cameraman: (a) Gray histogram of plaintext of S signal; (b) gray histogram of plaintext of ciphertext of S signal
观察图12可以发现, 本文的加密算法对明文图像的灰度分布进行了一个较好的均衡过程, 使得密文图像的灰度值比较均匀地分布于整个灰度值区间上, 隐藏了明文图像的灰度分布特性.
2
3.5.差分攻击分析[19]
差分攻击分析是密码分析领域最常用的一种破译手段, 这种方法通过对明文进行轻微修改以获得相应的密文, 并通过修改后的密文与原密文之间的差异联系来破译密码系统. 本节中通过引入像素改变率(number of pixel change rate, NPCR)、一致平均改变密度(unified average changing intensity, UACI)、块平均改变密度(block average changing intensity, BACI)等三个指标定量分析加密方案抵抗差分攻击的性能.设P1, P2是两幅仅有一位像素点不同的密文图像, 定义密文图像P1, P2的NPCR如下:
然而, 若两幅图像在每个对应位置处的像素值均只有微小差别, 此时虽然两幅图像的NPCR为理想值, 但是两幅图像在视觉上的差别较小, 这说明以NPCR作为衡量两幅图像差别的指标具有片面性. 因此, 本文引入UACI来弥补这一不足, UACI定义为
图像 | NPCR | UACI | BACI |
Lena | 0.9954 | 0.3303 | 0.2682 |
Pepper | 0.9944 | 0.3305 | 0.2657 |
Cameraman | 0.9966 | 0.3394 | 0.2684 |
表4修改1 bit像素点后不同图像(S信号)的NPCR, UACI, BACI
Table4.NPCR, UACI, BACI of different images after changed 1 bit.
由表4中数据可知, 在一定的误差范围内, 针对Lena, Pepper, Cameraman图像的NPCR, UACI, BACI的数值均接近指标的理想值, 这说明本文所提出的加密算法能够较好地抵御差分攻击.
2
3.6.鲁棒性分析
对于数字图像加密方案而言, 噪声与非法攻击一直是影响图像重构质量的首要因素, 因此本节将基于三幅图像, 通过向密文图像引入噪声及裁剪像素的方式分析本文加密方案的鲁棒性.图13显示了向三幅图像对应的S信号密文中嵌入密度为0.05的椒盐噪声后, 以带噪声的密文图像为基础对图像进行重构的结果. 图14显示了对三幅图像的S信号的密文进行像素剪切, 以裁剪后的密文图像为基础对图像进行重构的结果. 为突出差异性, 本文采用了两种形状的剪切, 使得密文图像以不同的形状丢失了大约12.5%的像素值. 对比受到噪声污染或剪切攻击的重构图像与正常情况下的重构图像(与图6、图7对比), 尽管噪声污染和剪切攻击在最终的重构图像上产生了一定的影响, 但是算法仍能够保证图像的基本信息不被损坏, 即图像的布局和轮廓信息依然是可见的, 这说明本文所提出加密方案能够抵抗一定程度的噪声污染及剪切攻击.
图 13 不同图像的S信号嵌入噪声后的重构结果 (a) Lena原始图像、嵌入噪声的S信号密文、重构图像; (b) Pepper原始图像、嵌入噪声的S信号密文、重构图像; (c) Cameraman原始图像、嵌入噪声的S信号密文、重构图像
Figure13. Reconstruction results of S signals of different images embedded with noise: (a) Reconstruction results of Lena with corresponding Cipher S signal embedded noise; (b) reconstruction results of Pepper with corresponding Cipher S signal embedded noise; (c) reconstruction results of Cameraman with corresponding Cipher S signal embedded noise
图 14 不同图像的S信号像素剪切后的重构结果 (a) Lena原始图像、剪切12.5%像素点后的S信号密文、重构图像; (b) Pepper原始图像、剪切12.5%像素点后的S信号密文、重构图像; (c) Cameraman原始图像、剪切12.5%像素点后的S信号密文、重构图像
Figure14. Reconstruction results of S signals of different images after pixel shearing: (a) Reconstruction results of Lena with corresponding Cipher S signal with 12.5% pixels lost; (b) reconstruction results of Pepper with corresponding Cipher S signal with 12.5% pixels lost; (c) reconstruction results of Cameraman with corresponding Cipher S signal with 12.5% pixels lost
2
3.7.选择明文攻击分析
在密码学中, 一个合格的加密算法至少能够抵抗选择明文攻击(chosen plain-text attack, CPA)[20,21], 本节将通过一个简单的过程来验证本文的加密算法能够抵御选择明文攻击.定义P1为像素点全部为0的灰度图像, P2为仅一个像素点与P1不同的灰度图像, 且P1, P2的尺寸相同. 使用本文提出的加密算法对P1, P2分别进行加密得到其对应的密文图像C1, C2. 此时, 定义P3 = | P1 - P2|, C3 = |C1 - C2|, 上述6幅图像如图15所示.
图 15 针对本文加密算法的选择明文攻击
Figure15. The CPA against the encryption algorithm in this paper
由图15可知, 在使用本文加密算法对图像加密的前提下, 外界无法通过选择明文攻击从而获取任何有效信息, 进一步说明了本文加密方案的有效性.
2
3.8.图像重构质量分析
图像的重构质量是判断一种图像处理算法是否合格的重要指标, 本文所提出的加密方案在压缩与重构、加密与解密两个环节中均对图像进行了较多的处理和干预, 因此, 本节通过引入一些数值指标作为根据来衡量本文加密方案的图像重构质量.权重峰值信噪比(weighted peak signal to noise ratio, wPSNR)是用于衡量图像重构质量的有力指标, wPSNR的定义式如下:
除此之外, 本节还引入了结构相似度(structural similarity, SSIM)[19]这一指标来衡量图像质量的损坏程度, 通过计算原始图像以及重构后图像的SSIM予以评价, SSIM的定义式为:
表5列出了在压缩比为4∶3时, 三幅图像的原始图像及重构图像的wPSNR和SSIM. 分析表中的结果可知, 本文提出的图像加密方案在允许的误差范围下能够较好地对图像进行重构. 当然, 对于Cameraman这类带有纯色背景的图像, 其重构效果从会差于具有像Lena, Pepper这类包含更复杂的结构、信息的图像.
图像 | wPSNR | SSIM |
Lena | 48.90 | 0.9898 |
Pepper | 50.33 | 0.9927 |
Cameraman | 43.34 | 0.9736 |
表5本文算法处理下不同图像的wPSNR和SSIM
Table5.wPSNR and SSIM of different images after processed by scheme in this paper.
2
3.9.时间复杂度分析
在计算机科学中, 算法的时间复杂度是一个函数, 它定性地描述了一个算法的运行时间. 因此, 算法的时间复杂度也是衡量一个算法整体性能的必不可少的指标. 使用本文加密方案处理三幅图像所耗时间如表6所示.图像 | WPT分解及分类 | 压缩及重构 | 加密及解密 | 整体重构 | 总耗时/s |
Lena | 0.600 s | 8.893 s | 1.098 s | 0.377 s | 10.968 |
Pepper | 0.734 s | 7.815 s | 1.105 s | 0.362 s | 10.016 |
Cameraman | 0.617 s | 3.908 s | 1.901 s | 0.353 s | 6.799 |
表6本文算法处理不同图像时的时间复杂度
Table6.Algorithm proposed deals with the time complexity of different images.
由表6中数据可知, 在使用本文的图像加密算法处理不同的图像时, 除针对Ci信号的压缩及重构过程的耗时存在较大波动外, 其余阶段的耗时均处在一个相对稳定的水平. 分析可知在对Ci信号的压缩及重构过程中, 算法时间复杂度与Ci信号的数量表现为正相关的关系, 在一定程度上会降低算法的运行效率, 这是需要进一步研究并解决的问题. 综上所述, 本文算法在处理尺寸中等或偏小的图像时, 算法效率较高, 若图像的Ci信号数量较多, 算法效率会降低.