图像作为信息的重要载体, 在信息传播中起到重要的作用, 但在这一过程中容易遭到攻击导致信息泄露. 对图像安全获取、安全存储和安全传播的研究显得尤为重要, 而对图像进行加密是一种有效的处理方式.
混沌系统具有不可预测性、伪随机性及对初始条件极为敏感等特性, 研究者将其引入图像加密体系中, 提出了一些基于“置乱-扩散”体系的混沌图像加密算法[1-3]. 这些加密算法各有其特点, 但也存在一些问题, 影响最终的加密效果. 文献[1]提出一种基于DNA编码和混沌系统的图像加密算法, 但其混沌系统初始值与明文无关, 算法较难抵抗明文攻击[4]. 文献[2]在加密方案中引入Hash函数来解决这一问题. 但由于混沌映射参数和状态模拟精度的限制, 混沌序列在一定程度上呈现周期性, 这会对加密效果产生极大的影响. 文献[3]提出使用人工神经网络对混沌序列进行训练学习, 可以消除其混沌周期性, 但由于置乱和扩散操作相对单一而影响了最终的加密效果.
综合考虑以上问题, 本文综合SHA-384, 人工神经网络和混沌系统, 提出一种新的加密方案. 对加密图像进行安全分析, 结果表明加密效果比较理想.
1 算法基础 1.1 Lorenz混沌系统Lorenz混沌系统是最常用的混沌系统之一, 本文采用改进后的Lorenz混沌系统, 其数学模型为[5]:
$\left\{ \begin{array}{l} \dot x = a(y - x)\\ \dot y = bx - x{\textit{z}} + y\\ \dot {\textit{z}} = 200{x^2} + 0.01{e^{xy}} - c{\textit{z}} \end{array} \right.$ | (1) |
式中, x, y, z分别表示系统变量; a, b, c分别表示系统的参数. 当
混沌系统产生的混沌序列会呈现一定程度的周期性[6], 引入人工神经网络对混沌序列进行训练学习以消除周期性, 其结构如图1所示.
在图1中,
$\left\{ \begin{array}{l} {y_k} = g\left({w_{0s}} + \displaystyle\sum\limits_{j = 1}^n {{Z_j}{w_{s,j}}} \right),k = 1,2, \cdots ,P\\ g(\xi ) = a\xi \end{array} \right.$ | (2) |
隐藏层的输出值:
$\left\{ \begin{array}{l} {Z_j} = f({V_{0e,j}} + {x_k}{V_{e,j}}),j = 1,2, \cdots ,{n_{cc}},k = 1,2, \cdots ,P\\ f(\xi ) = \tanh (\xi ) \end{array} \right.$ | (3) |
训练误差值:
$E{R_{\rm{k}}}{\rm{ = }}{y_k} - {x_k}$ | (4) |
反向训练的过程如下:
$\left\{ \begin{array}{l} {\delta _{0,k}} = aE{R_k},k = 1,2, \cdots ,P\\ {\delta _{h,j}} = {Z_j}(1 - {Z_j})\displaystyle\sum\limits_{j = 1}^{{n_{cc}}} {{\delta _{0,k}}{w_{s,j}},k = 1,2, \cdots ,P} \end{array} \right.$ | (5) |
根据得到的误差值, 使用下列方程式更新每个单元的连接权重和输入输出偏差直到每个单元均可收敛.
$\left\{ \begin{array}{l} {V_e}(i) = {V_e}(i) + \Psi \times {\delta _{h,j}} \times {x_k}\\ {W_s}(i) = {W_s}(i) + \Psi \times {\delta _{0,k}} \times {Z_j} \end{array} \right.$ | (6) |
$\left\{ \begin{array}{l} {V_{0,e}}(i) = {V_{0,e}}(i) + \Psi \times {\delta _{h,j}}\\ {W_{0,s}}(i) = {W_{0,s}}(i) + \Psi \times {\delta _{0,k}} \end{array} \right.$ | (7) |
式中, i为迭代次数,
对于一个大小为
首先通过明文图像灰度值和SHA-384产生一个384位的密钥, 将其按每8位分段, 其可表示为:
$K = {k_1},{k_2},{k_3}, \cdots ,{k_{48}}$ | (8) |
Lorenz混沌映射的初始值计算如下:
$\left\{\begin{split} &{x_0} = x + od \left(\dfrac{{{k_1} \oplus \cdots \oplus {k_8} + mean}}{{256}},1\right)\\ &{y_0} = y + od \left(\dfrac{{{k_9} \oplus \cdots \oplus {k_{16}} + mean}}{{256}},1\right)\\ &{{\textit{z}}_0} = {\textit{z}} + od \left(\dfrac{{{k_{17}} \oplus \cdots \oplus {k_{24}} + mean}}{{256}},1\right) \end{split}\right.$ | (9) |
式中, x, y, z为给定值,
代入混沌系统得到混沌序列, 然后使用人工神经网络进行训练, 输出最终的加密序列.
2.2 图像置乱对图像的置乱操作是指在不改变像素点的像素值的情况下, 改变其在图像矩阵中的位置. 在改变像素点位置时, 有时会产生重复置乱, 即两个像素点的位置交换两次, 使得置乱无效, 因此进行以下操作.
首先利用混沌系统得到两个混沌序列, 长度分别为M和N, 然后使用神经网络进行训练, 得到两个加密序列X和Y.
首先对序列X进行量化处理:
$X(i) = od [(floor(X(i) \times {10^{13}}),M] + 1$ | (10) |
其中,
对序列Y进行量化处理:
$Y(j) = od [(floor(Y(j) \times {10^{13}}),N] + 1$ | (11) |
其中,
经过置乱操作, 像素点的位置发生了变化, 扩散操作的则是要改变像素点的像素值.
首先将图像矩阵R进行分割, 每个子矩阵Q的大小为
使用混沌系统和人工神经网络得到长度为
$E = od (floor(E \times {10^{13}}),256)$ | (12) |
将其转换为S行T列的二维矩阵E', 最终的扩散操作如下:
$\left\{ \begin{array}{l} Q'(V(1)) = {\rm{bitxor(}}Q'(V(1)),E'{\rm{)}}\\ Q'(V(i)) = {\rm{bitxor(}}Q'(V(i)),Q'(V(i - 1)){\rm{)}} \end{array} \right.$ | (13) |
最终得到加密图像P'.
整个加密方案的流程图如图2所示.
3 实验与分析
选择大小为
3.1 图像直方图
灰度直方图显示的是一幅图像里全部灰度值的分布情况, 其中横坐标表示灰度值, 纵坐标表示具有各个灰度值的像素在图像中出现的次数, 横纵坐标均无量纲. 图4表示的是明文和密文图像各自的直方图.
从图4中可以直观地看出, Lena明文的直方图显示灰度值分布很不均匀, 而相应的密文直方图中灰度值分布则比较均匀. 这使得对加密图像的统计分析攻击十分困难, 从而使攻击者很难获得有效信息.
3.2 相邻像素间相关性分析普通图像的相邻像素之间存在高相关性, 它们的相邻像素可以是水平, 垂直或对角线方向. 为测试量图像加密前后相邻像素间的相关性, 各在其水平、竖直以及对角方向上任意选取2000对邻近的像素点. 根据以下公式计算相关系数, 并将结果记录在表1中.
$E(x) = \frac{1}{N}\sum\limits_{i = 1}^N {{x_i}} $ | (14) |
$D(x) = \frac{1}{N}\sum\limits_{i = 1}^N {{{({x_i} - E(x))}^2}} $ | (15) |
${\rm{cov}} (x,y) = \frac{1}{N}\sum\limits_{i = 1}^N {({x_i} - E(x))} ({y_i} - E(y))$ | (16) |
${r_{xy}} = \frac{{{\rm{cov}} (x,y)}}{{\sqrt {D(x)D(y)} }}$ | (17) |
式中, x和y是图像中两个相邻像素的灰度值, N是所选相邻像素的数量.
从表1中能够看出, 明文图像中水平、垂直和对角方向上的像素间相关系数较大, 而在对应的密文图像中, 相关系数则与0比较靠近. 另外,对比文献[2,7]中提出方法, 本文提出算法可以很好地消除相邻像素相关性,掩盖原始图像的数据特征.
选取Lena明文和密文在各方向上的像素点分布情况, 如图5所示. 可以直观地观察到明文在各个方向上的相关性被消除.
3.3 信息熵信息熵反映了图像信息的不确定性, 一般熵越大, 信息量越大, 可视信息越少[8]. 信息熵的计算公式如下:
$H(m) = - \sum\limits_{i = 1}^L {P({m_i}){{\log }_2}P({m_i})} $ | (18) |
式中,
对于
密钥空间是指所有合法的密钥构成的集合. 在本文提出的加密算法中, 密钥主要是由两部分构成: 给定的初始值x, y, z, 如果计算精度为
具有密钥敏感性对加密算法来说也是必要的[9]. 是如图3(d)所示, 当
差分攻击是指攻击者稍微改变明文之后, 比较改变前后相应密文的差异, 从而找出明文图像和密文图像的相应关系. 一般使用像素数目变化率(Number of Pixels Change Rate, NPCR)和平均改变强度(Unified Average Change Intensify, UACI)这两个指标来评价算法抵抗差分攻击的能力[10].
相关计算公式如下:
$C(m,n) = \left\{ \begin{array}{l} 0,{\rm if}\;\; {I_1}(m,n) = {I_2}(m,n)\\ 1,{\rm if}\;\; {I_1}(m,n) \ne {I_2}(m,n) \end{array} \right.$ | (19) |
$NPCR = \dfrac{{\displaystyle\sum\limits_{m = 1}^M {\displaystyle\sum\limits_{n = 1}^N {C(m,n)} } }}{{M \times N}} \times 100\% $ | (20) |
$UACI = \dfrac{{\displaystyle\sum\limits_{m = 1}^M {\displaystyle\sum\limits_{n = 1}^N {\left| {{I_1}(m,n) - {I_2}(m,n)} \right|} } }}{{M \times N \times 255}} \times 100\% $ | (21) |
式中,
由表3可以看出, 通过本文算法加密的图像, NPCR均超过0.996, UACI均超过0.334, 且相比于其他算法有一定的提升, 可知本文算法能够更有效地抵抗差分攻击.
4 结论
本文提出一种结合混沌映射和人工神经网络的图像加密算法. 首先使用SHA-384和明文图像产生Lorenz混沌系统的初始值, 控制其产生混沌序列, 然后将其引入人工神经网络进行训练以消除其混沌周期性. 使用人工神经网络输出的序列完成置乱和扩散操作. 使用行置乱和列置乱结合的方式完成置乱操作, 在扩散阶段使用分组扩散的方式进行处理. 实验结果表明, 本文算法能较好地隐藏明文信息, 密钥空间大, 密钥敏感性强并能抵抗差分攻击等攻击方式.
[1] |
Chen JX, Zhu ZL, Zhang LB, et al. Exploiting self-adaptive permutation-diffusion and DNA random encoding for secure and efficient image encryption. Signal Processing, 2018, 142: 340-353. DOI:10.1016/j.sigpro.2017.07.034 |
[2] |
薛伟, 吕群. 基于格雷码和混沌系统的图像加密算法. 计算机系统应用, 2018, 27(7): 177-181. DOI:10.15888/j.cnki.csa.006402 |
[3] |
马凌, 侯小毛, 张福泉, 等. 基于复合混沌系统与人工神经网络学习的图像加密算法. 电子测量与仪器学报, 2018, 32(8): 109-116. DOI:10.13382/j.jemi.2018.08.016 |
[4] |
张勇. 混沌数字图像加密. 北京: 清华大学出版社, 2016: 105–106.
|
[5] |
汪彦, 涂立. 基于改进Lorenz混沌系统的图像加密新算法. 中南大学学报(自然科学版), 2017, 48(10): 2678-2685. DOI:10.11817/j.issn.1672-7207.2017.10.017 |
[6] |
Telem ANK, Segning CM, Kenne G, et al. A simple and robust gray image encryption scheme using chaotic logistic map and artificial neural network. Advances in Multimedia, 2014, 2014: 602921. DOI:10.1155/2014/602921 |
[7] |
贾忠祥, 柳银萍. 基于自适应与全局置乱的图像加密新算法. 华东师范大学学报(自然科学版), 2019, 2019(6): 61-72. |
[8] |
Sokouti M, Sokouti B. A PRISMA-compliant systematic review and analysis on color image encryption using DNA properties. Computer Science Review, 2018, 29: 14-20. DOI:10.1016/j.cosrev.2018.05.002 |
[9] |
Amina S, Mohamed FK. An efficient and secure chaotic cipher algorithm for image content preservation. Communications in Nonlinear Science and Numerical Simulation, 2018, 60: 12-32. DOI:10.1016/j.cnsns.2017.12.017 |
[10] |
胡春杰, 阮聪, 牛智星. 基于改进Logistic映射的图像加密算法. 计算机系统应用, 2019, 28(6): 125-129. DOI:10.15888/j.cnki.csa.006788 |