计算机系统应用  2024, Vol. 33 Issue (3): 170-177   PDF    
基于多混沌系统的多图像加密算法
高若云, 白牡丹, 黄佳鑫, 郭亚丽     
长安大学 信息工程学院, 西安 710064
摘要:针对多幅图像在传输中的安全性问题, 本文提出了一种基于多混沌系统的多图像加密算法. 首先, 利用离散小波变换对多幅图像进行预处理, 得到一幅拼接的大图像; 接着, 利用logistic-sine-cosine (LSC)映射生成混沌序列, 进而生成用于置乱的矩阵O对像素位置进行置乱; 最后, 采用超混沌Lorenz系统生成四维混沌序列, 利用其对置乱后的图像进行双向扩散和行列置乱, 获得最终密文图像. 所提算法加解密过程简单, 执行效率高. 实验结果经多方面分析后得出该算法的密钥空间大, 可以抵御多种攻击手段, 具有较好的加密效果和安全性.
关键词: 多图像加密    logistic-sine-cosine映射    超混沌系统    离散小波变换    双向扩散    混沌序列    
Multi-image Encryption Algorithm Based on Multi-chaotic System
GAO Ruo-Yun, BAI Mu-Dan, HUANG Jia-Xin, GUO Ya-Li     
School of Information Engineering, Chang’an University, Xi’an 710064, China
Abstract: Aiming at the security problem of multiple images in transmission, this study proposes a multi-image encryption algorithm based on multi-chaotic systems. First, discrete wavelet transform is adopted to preprocess multiple images to get a large mosaic image. Then, a chaotic sequence is generated using logistic-sine-cosine (LSC) map to generate a matrix O for scrambling pixel positions. Finally, a hyper-chaotic Lorenz system is applied to generate a four-dimensional chaotic sequence. It is used to perform bidirectional diffusion and row-column scrambling on the scrambled image to obtain the final ciphertext image. The proposed method has a simple encryption and decryption process and high execution efficiency. The experimental results have been analyzed from multiple aspects and show that the algorithm has a large key space and can resist multiple attack methods, with good encryption performance and security.
Key words: multi-image encryption     logistic-sine-cosine (LSC) map     hyperchaotic system     discrete wavelet transform     bidirectional diffusion     chaotic sequence    

目前, 随着网络通信技术的发展, 尤其是5G技术的逐渐普及, 相较于传统的文本信息, 图像因其包含内容广泛、生动易理解的特点, 已成为信息载体的主要形式. 图像被广泛应用于社交媒体网络、军事应用、交通检查、天气预报、医疗事业等各个领域, 覆盖了社会的方方面面. 这些图像中通常包含一些机密信息, 因此图像的安全问题引起了广大学者的广泛关注. 为了防止图像内容被非法窃取和利用, 数字图像加密技术成为当前保护图像数据最常用的方法.

研究之初, 图像加密技术主要针对单幅图像进行, 随着数据总量的爆炸式增长, 人们在网络中交流信息增多, 通常需要一次传输多张图片. 为了保护这些图像的安全, 可以重复使用单图像加密算法进行加密, 然而它们降低了加密效率[1]. 为了提高加密效率, 研究者们将研究重点从单图像加密转移到多图像加密. 在过去的几年里, 多图像加密算法发展于不同领域, 如光学[13]、变换域[46]、混沌[7]、混沌和DNA域[8,9]的组合, 研究者们提出了各种有效的多图像加密方法. 例如: 文献[10]提出了一种基于二维码密钥的光学方法, 在联合变换相关器(JTC)系统下对多幅图像进行加密. 文献[11]将多分辨率奇异值分解(MSVD)技术和Gyrator域变换相结合实现多图像加密. 文献[12]提出了一种基于三维置乱和超混沌系统的多图像加密算法. 文献[13]将DNA序列和元胞自动机(CA)相结合, 使多图像加密算法足够强大, 能够抵御图像加密的常见攻击. 随着时间的推移, 图像的加密技术日益发展. 研究者们发现如果仅使用单一的混沌系统, 图像的安全性有待提高[14]. 因此, 许多研究者设计将多种混沌系统应用到多图像加密算法中. 文献[15]设计了一种基于三维混沌映射的动态混沌库, 采用Haar小波变换和三维混洗置乱的方法实现多图像加密. 文献[16]提出了一种基于三维排列模型和混沌系统的多图像加密对称算法, 具有较高的安全性.

在前人工作的启发下, 针对多图像加密算法效率低、抗攻击性差等问题, 提出了一种基于离散小波变换和多混沌系统的多图像加密算法. 首先, 利用离散小波变换提取原始图像的低频子带, 达到压缩图像的效果, 有效减少待加密数据量, 提高加密效率; 其次, 通过混沌序列生成的矩阵对图像进行全局置乱, 打乱所有图像中像素点的位置; 最后, 通过混沌序列对图像进行双向扩散和行列置乱, 改变每一个像素值, 提高算法抵抗攻击的能力.

1 相关知识 1.1 logistic-sine-cosine映射

将一维映射logistic映射和sine映射作为种子映射, 将他们与移位常数结合, 然后执行余弦变换以生成结果[17]. 组合运算可以有效地搅乱两个种子映射的混沌动力学, 余弦变换有复杂的非线性特征. 其表达式如式(1)所示:

$ \left\{ \begin{gathered} {x_{i + 1}} = \cos ({\text π} (F(r, {x_i}) + G(1 - r, {x_i}) + \beta )) \\ F(r, {x_i}) = 4r{x_i}(1 - {x_i}) \\ G(1 - r, {x_i}) = (1 - r)\sin ({\text π} {x_i}) \\ \end{gathered} \right. $ (1)

其中, $x$表示状态变量, $r,\; \beta $为控制参数, $F(r, {x_i})$$G(1 - r, {x_i})$是logistic和sine映射. 取参数$\;\beta = - 0.5$, $r \in [0, 1]$, $x \in [0, 1)$时, 系统处于混沌状态.

1.2 超混沌Lorenz系统

超混沌Lorenz系统在Lorenz系统的基础上引入一个非线性控制器 w, 可以生成4个各不相同的混沌序列, 系统维度高, 结构复杂[18]. 它是一个发展成熟的混沌系统, 有助于提高加密方案的安全性能. 表达式如下:

$ \left\{ \begin{gathered} \mathop x\limits^. = a(y - x) + w \\ \mathop y\limits^. = cx - y - x{\textit{z}} \\ \mathop {\textit{z}}\limits^. = xy - b{\textit{z}} \\ \mathop w\limits^. = - y{\textit{z}} + rw \\ \end{gathered} \right. $ (2)

其中, $\dot x$, $\dot y$, $\dot {\textit{z}}$, $\dot w$分别是$x,\; y, \;{\textit{z}},\; w$的变化率. 当系统参数$a = 10$, $b = 8/3$, $c = 28$, $r = - 1$时, 系统为超混沌系统.

1.3 离散小波变换

离散小波变换的主要原理是将高频边缘细节信息舍弃, 提取低频分量得到原始图像的近似图[19]. 离散小波变换可将图像进行二维分解得到4个子带图像, 分别为低频分量(LL)、水平高频分量(LH)、垂直高频分量(HL)以及对角线高频分量(HH). 其中低频分量为图像内容的缩略图, 包含了原图中大部分内容信息, 剩余3个分量包含不同方向的高频边缘信息. 若还想对缩略图进行进一步压缩, 还可对其进行二级甚至多级分解, 最终得到与原始图像相似但能量更低的子图像. 如图1所示为离散小波变换的一级和二级分解图.

图 1 离散小波变换分解图

2 多图像加密算法

本文提出的算法主要包括以下几个步骤, 第1步, 对原始图像进行离散小波变换; 第2步, 运用LSC映射生成混沌序列, 进而生成矩阵O, 利用矩阵O对图像像素坐标位置进行置乱; 第3步, 运用超混沌Lorenz系统生成混沌序列对图像进行双向扩散, 从而提高图像数据信息的保密性; 第4步, 对经过扩散的图像进行行列置乱, 获得最终的密文图像. 这一步骤是加密过程的最后一步, 它有助于进一步混淆原始图像. 算法的加密流程图如图2所示.

图 2 加密流程图

2.1 图像预处理

步骤1. 使用离散小波变换函数分别对$k$幅图像进行分解, 具体公式如式(3)所示:

$ \;[C{A_k}, C{H_k}, C{V_k}, C{D_k}] = dwt2({I_k}, {`}db1\text{'}) $ (3)

其中, $ {dw}t2() $表示离散小波变换函数, CA表示图像的近似内容, 为低频信息. 整体表示对第k幅图像进行离散小波变换, 得到4个小波子带.

步骤2. 通过对每幅图像进行步骤1的操作, 得到$k$幅大小为$\dfrac{N}{2} \times \dfrac{N}{2}$的低频子图像记作$ L{L_1}, L{L_2}, \cdots , L{L_k} $.

步骤3. 将$k$幅低频子图像$ L{L_1}, L{L_2}, \cdot \cdot \cdot , L{L_k} $进行垂直和水平拼接得到一张大图像记作P, 大小为$R \times W$.

2.2 LSC映射的密钥生成

密钥决定了LSC映射的初始状态, 长度设置为256位. 图3显示了安全密钥的结构. 可以观察到, 它由6个部分组成. 其中$({x_0}, p)$是初始状态, $({f_1}, {f_2})$是初始状态的系数, $({H_1}, {H_2})$是扰动初始状态的扰动参数. ${x_0}, p, {H_1}, {H_2}$中每个变量都具有48位的长度, 且都是[0, 1]内的浮点数, 都可以通过以下公式获得:

$ FN = \sum\limits_{i = 1}^{48} {Bi{n_i} \times {2^{ - i}}} $ (4)

系数${f_1}, {f_2}$是整数, 每一个都具有32位的长度, 可以通过以下公式获得:

$ IN = \sum\limits_{i = 1}^{32} {Bi{n_i} \times {2^{i - 1}}} $ (5)

此后, 加密的初始状态可以使用如下公式计算:

$ \;\left\{ \begin{gathered} {x_0} = {f_1} \times ({x_0} + {H_1})\text{mod} 1 \\ p = {f_2} \times (p + {H_2})\text{mod} 1 \\ \end{gathered} \right. $ (6)

其中, $({x_0}, p)$为初始状态, LSC映射可以生成随机分布的混沌序列, 用于置乱过程.

图 3 LSC映射的密钥结构图

2.3 置乱算法

本文采用具有初始状态$({x_0}, p)$的LSC映射生成矩阵O, 然后使用矩阵O置乱全局的像素位置, 同时改变像素行和列的位置, 从而可以有效地减少相邻像素之间的强相关性. 详细过程描述如下.

步骤1. 将初始状态$({x_0}, p)$输入LSC映射生成一个长度为$R + W$的随机序列, 将序列分成长度为$R$的序列$A$和长度为$W$的序列$B$.

步骤2. 分别对序列$A$$B$进行排序, 得到两个索引向量$IA$$IB$.

步骤3. 初始化大小为$R \times W$的矩阵, 并将矩阵的每一列设置为$IB$.

步骤4. 使用$IA$的每个元素移动矩阵的每列, 得到用于置乱的矩阵O.

步骤5. 初始化列索引$j = 1$.

步骤6. 找到明文图像P中位置为$\{ (1, {O_{1, j}}), (2, {O_{2, j}}), \cdots, (R, {O_{R, j}})\} $的像素.

步骤7. 将这些像素看成连接在一起的一个串, 并将它们向上移动${O_{1, j}}$个位置, 得到相应的置乱后的像素点的位置.

步骤8. 对于$j$从2叠加到$W$, 重复执行$R - 1$次步骤6, 7.

图4所示, 为了更好地演示置乱过程, 我们以一个4×4大小的明文图像作为示例来进行说明. 由于矩阵O的第1列是${\{ 2, 4, 3, 1\} ^{\mathrm{T}}}$, 因此找到图像P中位置为$\{ (1, 2), (2, 4), (3, 3), (4, 1)\} $的像素, 并将它们向上移动${O_{1, 1}} = 2$个单元. 然后得到置乱前后像素的对应关系${{{Q}}_{1, 2}} = {P_{3, 3}}, {{{Q}}_{2, 4}} = {P_{4, 1}}, {{{Q}}_{3, 3}} = {P_{1, 2}}, {{{Q}}_{4, 1}} = {P_{2, 4}}$. 其他像素点的置乱方式与此相同, 在此不再赘述.

图 4 置乱示意图

2.4 混沌序列的产生

在我们的方案中, 混沌系统初始值的生成过程与用户随机输入的整数和明文图像的像素值有关, 详细过程描述如下.

步骤1. 由用户随机输入一个整数${t_0}$, 将整数${t_0}$输入到SHA256算法中, 生成$I \_ initial$ (256位).

步骤2. 将图像P的像素的所有灰度值相加, 求和后记为${\textit{SUM}}$. 然后将${\textit{SUM}}$输入到SHA256算法中, 生成$ I \_ {\textit{SUM}} $ (256位).

步骤3. 将$ I \_ initial $$ I \_ {\textit{SUM}} $按位异或生成$I_1$, 然后将$I_1$输入到SHA256算法中, 生成$I_2$ (256位).

步骤4. 将$I_2$拆分为4个部分, 每个部分都有64位, 分别表示为$ k_1、k_2、k_3、k_4 $.

步骤5. 式(2)中给出的超混沌Lorenz系统的初始条件$ ({{Q}}_{x0},{{Q}}_{y0},{{Q}}_{{\textit{z}}0},{{Q}}_{w0}) $ 由以下公式产生:

$ \left\{ \begin{gathered} {{{Q}}_{x0}} = (\text{mod} (fix(k_1/100), 40)) \\ \qquad\;\;\; +(k_1/{10^{14}} - fix(k_1/{10^{14}})) \\ {{{Q}}_{y0}} = (\text{mod} (fix(k_2/100), 40)) \\ \qquad\;\;\; +(k_2/{10^{14}} - fix(k_2/{10^{14}})) \\ {{{Q}}_{{\textit{z}}0}} = (\text{mod} (fix(k_3/{10^6}), 80)) \\ \qquad\;\;\; +(k_3/{10^{14}} - fix(k_3/{10^{14}})) \\ {{{Q}}_{w0}} = (\text{mod} (fix(k_4/{10^6}), 80)) \\ \qquad\;\;\; +(k_4/{10^{14}} - fix(k_4/{10^{14}})) \\ \end{gathered} \right. $ (7)

其中, $\text{mod} (a, b)$表示$a/b$的余数, $fix(a)$表示取$a$的整数部分.

步骤6. 在初始条件$ ({{Q}}_{x0},{{Q}}_{y0},{{Q}}_{{\textit{z}}0},{{Q}}_{w0}) $下, 迭代超混沌Lorenz系统$1000 + R + W$次产生4组超混沌序列, 去除前1000次迭代的序列值, 对剩余的序列值利用下面的公式进行处理, 处理后的4组混沌序列分别记为$E, \;G, \;U,\; V$.

$ \left\{ \begin{gathered} E = \text{mod} (fix({e_i} \times {10^5}), 256) \\ G = \text{mod} (fix({g_i} \times {10^5}), 256) \\ U = \text{mod} (fix(({u_i} + 100) \times {10^{10}}), 256) + 1 \\ V = \text{mod} (fix(({v_i} + 100) \times {10^{10}}), 256) + 1 \\ \end{gathered} \right. $ (8)

其中, $\text{mod} (a, b)$表示$a/b$的余数, $fix(a)$表示取$a$的整数部分. 经过处理后的混沌序列$E$$G$用于后续图像像素值的扩散算法, 序列$U$$V$用于行列置乱.

2.5 扩散算法

为了加强算法的安全性, 本文对置乱后的图像进行双向扩散处理, 目的在于让图像的每一个像素都发生变化, 从而使得图像中的信息难以被外部攻击者读取. 具体的扩散步骤如下.

步骤1. 将置乱后图像的像素值按列优先转化成长度为$R \times W$的一维序列D, 利用超混沌系统产生的长度为$R \times W$的混沌序列$E$对像素值进行正向扩散, 将扩散后的像素序列记为$D' = ({d'_1}, {d'_2}, \cdots, {d'_{R \times W}})$, 具体扩散方式如式(9)所示:

$ {d_i}^\prime = (({d_i} + {d'_{i - 1}})\text{mod} 256) \oplus {e_i} $ (9)

其中, $i = 1, 2, \cdots, R \times W$, ${p_0}$为[0, 255]内的任意一个整数.

步骤2. 利用序列$G$再进行一次逆向扩散, 得到双向扩散后的最终序列记为$L = ({l_1}, {l_2}, \cdots, {l_{R \times W}})$, 具体扩散方法如下.

$ {l_i} = (({d'_i} + {l_{i + 1}})\text{mod} 256) \oplus {g_i} $ (10)

将得到的一维序列$L$按照列优先的顺序转化为$R \times W$的像素矩阵M, 即为双向扩散后的矩阵.

2.6 行列置乱

本文采用行列置乱进一步扰乱图像像素的位置, 增强加密算法的随机性和安全性, 得到最终密文图像C. 具体步骤如下.

步骤1. 利用序列$U$将图像像素矩阵的每一行元素进行行移位操作. 第1行右移${U_1}$位, 第2行右移${U_2}$位, …, 以此类推, 第$R$行右移${U_R}$位.

步骤2. 对经过行移位处理后的像素矩阵, 利用序列$V$进行列移位操作. 第1列下移${V_1}$位, 第2列下移${V_2}$位, …, 以此类推, 第$W$列下移${V_W}$位.

3 解密算法

加密算法和解密算法使用的密钥相同, 故解密过程是加密过程的逆运算. 对于密文图像, 首先输入超混沌Lorenz系统的初始值, 生成四维混沌序列, 利用混沌序列先将其进行逆行列置乱, 然后再将其拉伸为一维序列; 利用逆向扩散的初始值解除逆向扩散, 利用正向扩散的初始值解除正向扩散, 将一维序列还原为二维矩阵; 接着输入LSC映射的密钥, 迭代式(1), 获得一维序列; 运用第2.3节中的方法结合一维序列生成用于置乱的矩阵O, 从而恢复出像素位置置乱前的矩阵, 解除像素灰度值的位置变换, 恢复出组合图像P. 最后, 对组合图像按合并关系进行分割得到原始图像的近似内容, 解密过程结束.

4 实验结果及安全性分析

为了验证所提算法的可行性和有效性, 采用Matlab 2020a 进行仿真测试, 实验的主机环境是Intel Core i7-7500U的CPU, 8 GB的机带RAM, 2.90 GHz的处理器, 以及64位Windows 10操作系统.

4.1 加解密结果图

选取图像Lena、Elaine、Cameraman、Baboon作为测试图像, 其均为源自CVG-UGR (computer vision group, University of Granada)数据库大小为256×256的灰度图像, 如图5(a)–图5(d)所示. Lena是一种标准的测试图像, 广泛应用于图像加密领域. 图5(e)为密文图像, 图5(f)–图5(i)为解密结果. 密文图像形态类似于噪声, 其不再包含明文图像中的相关信息. 由于通过解密算法得到的是原始图像的低频子带, 即明文图像的近似内容, 故解密结果与原始图像不完全一致, 但其结果不影响接收方正确接收传输内容.

图 5 加解密仿真结果图

4.2 直方图

图6为明文图像和密文图像的像素值直方图, 可以直观地看到它们的像素值分布情况. 其中加密后图像的直方图分布非常接近均匀分布, 即攻击者无法通过对密文图像的直方图统计获得明文图像的直方图信息, 说明我们提出的算法具有很好的扩散性和抵抗统计攻击的能力.

4.3 相邻像素相关性

明文图像通常具有很强的相邻像素相关性, 一个好的图像加密算法需要具备有效地减弱像素值相关性的能力[20]. 当相关系数的绝对值接近于1时说明两者高度相关, 反之相关系数的绝对值越接近于0时, 说明两者的相关性越弱. 计算相关系数的公式如下:

$ {r_{xy}} = \frac{{{cov} (x, y)}}{{\sqrt {D(x)} \sqrt {D(y)} }} $ (11)
$ {cov} (x, y) = \frac{1}{N}\sum\limits_{i = 1}^N {({x_i} - E(x))({y_i} - E(y))} $ (12)
$ E(x) = \frac{1}{N}\sum\limits_{i = 1}^N {{x_i}} $ (13)
$ D(x) = \frac{1}{N}\sum\limits_{i = 1}^N {{{({x_i} - E(x))}^2}} $ (14)

其中, $x$$y$是图像中两个相邻像素的灰度值, $N$是从图像中选择的像素总数, $E(x)$$E(y)$分别是${x_i}$${y_i}$的平均值. ${cov} (x, y)$${x_i}, {y_i}$的协方差, $r$是相关系数. 表1中统计了本文与文献[2123]方法在3个方向上邻域像素相关系数的对比结果. 相较于文献[2123], 使用本文加密算法获得的密文图像的相邻像素的相关性系数更接近于0, 说明本文的置乱方式更能有效地减弱图像相邻像素之间的相关性, 表明本文算法抵抗统计攻击的能力更好.

4.4 信息熵

信息熵是衡量图像信息随机性的重要标准, 表2所示为本文方法与其他文献信息熵的对比结果. 当密文图像的信息熵越接近于8时, 说明图像的混乱程度越高, 加密效果越好. 从表2中可以看出, 加密后本文方法的信息熵非常接近理想值8, 说明本文算法基本可以满足抵抗熵攻击的性能. 同时也可以看出本文方法的信息熵比文献[22]略高, 比文献[21]略低. 表明本文采用离散小波变换合成大图像并采用随机生成的矩阵置乱整幅图像的方法比文献[22]中基于猫映射的像素值扰乱的方法效果更好, 比文献[21]中应用混沌序列替换组合图像的子块, 再对其进行像素值置乱的方法效果略差, 在以后的研究中还有待提高.

图 6 明文和密文图像直方图

表 1 相邻像素相关系数

表 2 不同算法信息熵对比

4.5 密钥空间

基于混沌的密码系统的密钥空间必须达到2100的大小才能抵御各种攻击. 本文方法中LSC映射的密钥是256位, 满足密钥大小的要求, 另外4个超混沌系统的初始值也作为密钥输入. 且本方案是在灰度级为256、双精度和64位Windows 10操作系统下进行的. 根据IEEE浮点标准, 64位双精度计算精度为1015, 整个系统的密钥空间大小经叠加后达到2256×1014×1015, 由此可以得出本文算法所拥有的密钥空间远远大于2100, 对穷举攻击具有足够的抵御能力.

4.6 密钥敏感性分析

密钥敏感性是指当解密密钥仅发生微小变化, 却对密文图像的解密造成了非常严重的影响[24]. 由于混沌系统本身具有极高的初值敏感性, 所以实验选择通过改变超混沌Lorenz系统的初始值来验证方案对于密钥的敏感性. 在解密时对超混沌Lorenz系统的第一个初始值密钥进行更改, 更改后的初始值密钥与原先的初始值密钥相差0.000 000 000 1.

使用与正确密钥不同的密钥进行解密, 4个原始图像都无法正确重建. 如图7所示, 以Lena图像的解密结果为例, 虽然密钥仅产生了极其微小的变化, 却也无法得到正确的解密图像. 由此证明了算法对于密钥的敏感性, 说明了算法的安全性.

4.7 差分攻击分析

原始图像和密文图像之间的差异通常采用两个标准来测量, 即NPCR (number of pixels change rate)和UACI (unified average changing intensity)[24], 其相应的理想值分别为NPCR=99.6094%, UACI=33.4635%. 越接近理论值, 说明发生微小的变化所得到的密文图像与原明文所得到的密文图像差别越大, 则算法抵抗差分攻击的性能越好. 计算公式如下:

$ {\textit{NPCR}} = \frac{1}{{m \times n}}\sum\limits_{i, j} {D(i, j)} \times 100{\text{%}} $ (15)
$ {\textit{UACI}} = \frac{1}{{m \times n}}\left[ {\sum\limits_{i, j} {\frac{{\left| {{C_1}(i, j) - {C_2}(i, j)} \right|}}{{255}}} } \right] \times 100{\text{%}} $ (16)

其中, $m \times n$表示图像的大小, ${C_1}(i, j)$${C_2}(i, j)$分别是原始图像对应的密文图像和改变一个像素值后对应的密文图像. 通过改变明文图像中一个像素值, 来计算密文之间的NPCRUACI. 表3统计了文献[22,25,26]对于Lena图像以及本文方法对于测试图像的明文敏感性的实验结果. 其中Lena图像均为256×256大小的灰度图像. 通过将本文算法与一些最近的算法进行比较, 观察数据可以得出, 本文算法的 NPCRUACI 比其他算法更接近理论值, 说明该方案具备抵抗差分攻击的能力, 也表明本文通过用户输入随机数和明文图像哈希算法结合产生混沌系统初始值的方式, 有效地将加密方案与明文信息相关联, 增强了算法的明文敏感性.

图 7 不同密钥的解密结果

表 3 明文敏感性实验结果(%)

4.8 鲁棒性

图像在传输期间不可避免会受到噪声污染或剪切攻击, 为了测试所提算法的鲁棒性, 通过在密文图像中添加不同噪声和切割部分密文再对其进行解密来模拟图像在传输期间受到的干扰. 图8显示了不同噪声攻击和剪切攻击下的Lena图像的解密结果. 通过观察解密后的图像可以发现, 虽然图像中存在明显的斑点和噪声, 但是仍然能够清晰地看出图像的基本特征和信息. 同时, 本文算法对剪切过的密文图像仍然可以解密大部分图像信息, 这说明了所提出的算法具有一定的抗噪声攻击和抗剪切攻击的能力.

图 8 不同干扰后Lena的加密图像及其对应的解密图像

5 结语

本文提出基于多混沌系统的多图像加密算法, 总体基于传统的置乱扩散方法, 实现了对多幅图像进行加密. 算法结合了LSC映射和超混沌Lorenz系统, 克服了单一混沌系统的缺陷. 算法包括图像预处理、密钥的生成、像素点位置置乱、双向扩散以及行列置乱等模块. 加密方案利用图像的明文信息和用户输入的整数来确定超混沌Lorenz系统的初始值, 增加了明文与密文的联系, 增强了算法抵御选择明文攻击的能力, 增加了混沌序列的不可预测性.

通过以上仿真实验分析, 本文提出的加密算法密钥空间足够大, 相邻像素的相关性小, 能够抵抗差分攻击. 此外, 本算法也具有较强的抵抗统计攻击的能力, 可以有效地防止攻击者从密文中获取大量的有效信息. 相较于文献[21]方法, 所提算法抵抗熵攻击的性能较弱, 在以后的研究过程中应不断加以改进. 另外, 本文算法仅适用于灰度图像, 未来针对彩色多图像的加密算法还有待研究.

参考文献
[1]
Gan ZH, Chai XL, Zhang MH, et al. A double color image encryption scheme based on three-dimensional Brownian motion. Multimedia Tools and Applications, 2018, 77(21): 27919-27953. DOI:10.1007/s11042-018-5974-9
[2]
郑伟, 席思星, 王桂林, 等. 结合计算全息和频移的JTC系统多图像光学加密方法. 红外与激光工程, 2022, 51(5): 20220175.
[3]
王雪光, 李明, 于娜娜, 等. 基于空间角度复用和双随机相位的多图像光学加密方法. 物理学报, 2019, 68(24): 240503.
[4]
Pan SM, Wen RH, Zhou ZH, et al. Optical multi-image encryption scheme based on discrete cosine transform and nonlinear fractional Mellin transform. Multimedia Tools and Applications, 2017, 76(2): 2933–2953.
[5]
佟晓筠, 毛宁, 张淼, 等. 基于Henon映射与改进的提升小波变换图像加密算法. 信息网络安全, 2022, 22(9): 31-39.
[6]
Bian ZX, Zhang LH, Ye HL, et al. Multiple-image encryption based on Toeplitz matrix ghost imaging and elliptic curve cryptography. Laser Physics Letters, 2021, 18(5): 055206. DOI:10.1088/1612-202X/abf5cc
[7]
Zhang L, Zhang XQ. Multiple-image encryption algorithm based on bit planes and chaos. Multimedia Tools and Applications, 2020, 79(29): 20753-20771. DOI:10.1007/s11042-020-08835-4
[8]
Haq TU, Shah T. Algebra-chaos amalgam and DNA transform based multiple digital image encryption. Journal of Information Security and Applications, 2020, 54: 102592. DOI:10.1016/j.jisa.2020.102592
[9]
Zhang XQ, Wang XS. Multiple-image encryption algorithm based on DNA encoding and chaotic system. Multimedia Tools and Applications, 2019, 78(6): 7841-7869. DOI:10.1007/s11042-018-6496-1
[10]
Chen Q, Shen XJ, Cheng Y, et al. Joint-transform correlator multiple-image encryption system based on quick-response code key. Current Optics and Photonics, 2019, 3(4): 320-328. DOI:10.3807/COPP.2019.3.4.320
[11]
王丰, 邵珠宏, 王云飞, 等. Gyrator变换域的高鲁棒多图像加密算法. 中国图象图形学报, 2020, 25(7): 1366-1379. DOI:10.11834/jig.190344
[12]
Sahasrabuddhe A, Laiphrakpam DS. Multiple images encryption based on 3D scrambling and hyper-chaotic system. Information Sciences, 2021, 550: 252-267. DOI:10.1016/j.ins.2020.10.031
[13]
Enayatifar R, Guimãraes FG, Siarry P. Index-based permutation-diffusion in multiple-image encryption using DNA sequence. Optics and Lasers in Engineering, 2019, 115: 131-140. DOI:10.1016/j.optlaseng.2018.11.017
[14]
刘海峰, 周雪飞, 梁星亮, 等. 基于多混沌系统的图像加密算法. 陕西科技大学学报, 2022, 40(1): 188-195.
[15]
Zhong HY, Li GD. Multi-image encryption algorithm based on wavelet transform and 3D shuffling scrambling. Multimedia Tools and Applications, 2022, 81(17): 24757-24776. DOI:10.1007/s11042-022-12479-x
[16]
Zhang XQ, Wang XS. Multiple-image encryption algorithm based on the 3D permutation model and chaotic system. Symmetry, 2018, 10(11): 660. DOI:10.3390/sym10110660
[17]
Hua ZY, Zhou YC, Huang HJ. Cosine-transform-based chaotic system for image encryption. Information Sciences, 2019, 480: 403-419. DOI:10.1016/j.ins.2018.12.048
[18]
Li Z, Peng CG, Li LR, et al. A novel plaintext-related image encryption scheme using hyper-chaotic system. Nonlinear Dynamics, 2018, 94(2): 1319-1333. DOI:10.1007/s11071-018-4426-4
[19]
白牡丹, 李珊珊, 张泽坤. 基于超混沌系统的多权限多图像加密算法. 计算机系统应用, 2023, 32(5): 141-148. DOI:10.15888/j.cnki.csa.009061
[20]
李珊珊, 赵莉, 张红丽. 基于猫映射的图像灰度值加密. 计算机应用, 2021, 41(4): 1148-1152.
[21]
Zarebnia M, Pakmanesh H, Parvaz R. A fast multiple-image encryption algorithm based on hybrid chaotic systems for gray scale images. Optik, 2019, 179: 761-773. DOI:10.1016/j.ijleo.2018.10.025
[22]
Bisht A, Dua M, Dua S. A novel approach to encrypt multiple images using multiple chaotic maps and chaotic discrete fractional random transform. Journal of Ambient Intelligence and Humanized Computing, 2019, 10(9): 3519-3531. DOI:10.1007/s12652-018-1072-0
[23]
Yu CY, Li JZ, Li X, et al. Four-image encryption scheme based on quaternion Fresnel transform, chaos and computer generated hologram. Multimedia Tools and Applications, 2018, 77(4): 4585-4608. DOI:10.1007/s11042-017-4637-6
[24]
Patro KAK, Soni A, Netam PK, et al. Multiple grayscale image encryption using cross-coupled chaotic maps. Journal of Information Security and Applications, 2020, 52: 102470. DOI:10.1016/j.jisa.2020.102470
[25]
Wei JJ, Zhang M, Tong XJ. Multi-image compression-encryption algorithm based on compressed sensing and optical encryption. Entropy, 2022, 24(6): 784. DOI:10.3390/e24060784
[26]
Nan SX, Feng XF, Wu YF, et al. Remote sensing image compression and encryption based on block compressive sensing and 2D-LCCCM. Nonlinear Dynamics, 2022, 108(3): 2705-2729. DOI:10.11071-022-07335-4