一种超混沌彩色图像加密算法及安全性分析
1. 引言
随着多媒体信息产业的快速发展,信息的安全需求逐步提高[1]。在多媒体安全中,图像加密正发挥着越来越重要的作用,并已成为军事、医疗、气象及其他领域中的热点问题之一[2]。由于混沌系统具有良好的初始值和参数敏感性以及较强的随机性,已被广泛应用于图像加密[3]。Karan Nair、Janhavi Kulkarni 等人提出了一种基于 Logistic 和矩形混沌映射的图像加密方法[4]。然而,该算法过程较为简单,导致密文分布不均匀,难以抵抗统计攻击。Abbas A. M. 提出了一种基于独立分量分析和 Arnold猫映射的图像加密算法[5],,该算法易于实现,为图像加密提供了一种有效且安全的方法。然而,该算法仅能加密方形图像,应用范围受到显著限制。
受到限制。魏然等人提出了一种结合DNA编码和多种混沌映射的图像加密算法[6]。仿真实验表明,该算法对明文和密钥的敏感性以及置乱效果均得到显著增强。但其过程较为复杂,且对硬件要求相对较高。此外,与低维混沌相比,高维混沌具有更强的动态特性和随机性。
Nazira Shaikh、Santosh Chapaneri等人提出了一种基于超混沌系统的单轮彩色图像加密方案[7],;柴秀莉等人提出了基于Chen超混沌系统的彩色图像加密算法[8],两种算法均取得了良好的加密效果。本文提出一种基于四维超混沌系统和改进加密过程的新型彩色图像加密算法。该算法不同于传统的“置乱‐扩散”加密模式,在置乱之前,首先将像素值转换为格雷码。在此基础上,形成了一种新的“变换‐置乱‐扩散”模式,可扩展密钥空间并提高加密的安全性。在置乱过程中,根据超混沌系统生成的混沌序列对全局像素位置进行置乱。该置乱过程可降低相邻元素和每个颜色分量的相关性。置乱序列和混沌序列经过按位操作完成图像扩散。在整个加密过程迭代完成后,通过矩阵变换得到密文图像。该算法提高了加密彩色图像的安全性和密码学特性。
2. 超混沌系统
本文所使用的四维自治超混沌系统的状态方程为[9]
$$
\dot{x}= a(y −x) \
\dot{y}= bx −xz −u \
\dot{z}= −cz+ xy \
\dot{u}= m(x+ y)
$$
其中, $x$、$y$, $z$ 和 $u$ 是系统(1)的状态变量,$a$、$b$、$c$ 和 $m$ 是实值参数。混沌系统的动态特性主要取决于上述参数的变化。当$a = 33.4$,$b = 33.6$,$c = 2.3$,且$m = 9.1$时,系统(1)中存在混沌吸引子,如图1所示。
的混沌吸引子)
与低维混沌系统相比,高维超混沌系统具有更复杂的相空间和动态特性。此时,系统(1)具有不少于两个正的李雅普诺夫指数,因此具备超混沌特性[10]。系统的随机性显著增强[11],这意味着其在彩色图像加密中具有更好的性能。
3. 图像加密与解密算法
常见的图像加密算法大多采用“置乱‐扩散”[12, 13]模型。在置乱之前,该算法首先将图像的像素值转换为格雷码,以扩大密钥空间并提高安全性。
3.1. 格雷码转换
格雷码是一种典型的二进制通信编码格式 [14]。其编码规则是相邻两个代码之间仅有一位差异。将位数为 $j$ 的自然二进制码转换为典型格雷码的方法如下:
$$
G(i)= B(i) \quad i= j −1 \
G(i)= B(i+ 1)\oplus B(i) \quad 0 ≤ i< j −1
$$
其中, $G(i)$ 是第 $i$ 个典型格雷码, $B(i)$ 是第 $i$ 个自然二进制码; $\oplus$ 表示异或(XOR)操作。将典型的n位格雷码转换为自然二进制码的方法如下:
$$
B(i)= G(i) \quad i= N −1 \
B(i)= G(i)\oplus B(i+ 1) \quad 0 ≤ i< N −1
$$
在该算法中,根据彩色图像的大小计算首次加密格雷码迭代转换次数$r_0$:
$$
r_0= \text{mod}((L+ W),7)+ 1
$$
其中 $L$ 和 $W$ 表示以像素为单位的长度和宽度。
3.2. 位置置乱
基于超混沌系统生成的混沌序列,该算法可以对$n×m$ 彩色图像的像素位置进行置乱。像素位置置乱的步骤如下:
(1) 根据给定的系统参数 $a,b,c,m$和初始值 $x_0,y_0,z_0, u_0$,使用龙格‐库塔算法迭代混沌系统(1),得到四个混沌实值序列 $x,y,z$和 $u$。
(2) 将四个混沌实值序列转换为一维矩阵。为了减小初始值对系统的影响,舍弃前$n_0$个结果,可生成一维混沌序列 $C_i$($i= 1,2, …,N × M × 3$),
$$
n_0=[(R+ G+ B)× r_0]
$$
其中,$R$、 $G$和 $B$是三个颜色分量的平均像素值, $[\cdot]$表示取数操作。
(3) 已转换为格雷码的三维矩阵被转换为一维矩阵 $P_i$;然后,将步骤(2)中的一维混沌矩阵 $C_i$进行排序,并同步改变 $P_i$的位置。此步骤完成了全场像素置乱。
对于彩色图像,相邻像素和每个颜色分量之间存在强相关性。全场像素置乱方法不仅破坏了相邻像素之间的相关性,还改变了R、G和B颜色分量之间的相关性,从而实现更好的置乱效果。尽管每个颜色分量的直方图统计在一定程度上发生了变化,但整个图像的直方图统计并未改变。各分量的直方图统计并不均匀,因此仍需要进一步加密。
3.3. 值扩散
为了提高图像加密的安全性,特别是为了均衡直方图并隐藏明文的统计信息,该算法使用超混沌系统生成的序列对图像的像素值进行扩散。超混沌序列变换为一维后离散化如下以获得密钥流 $D_i$:
$$
D_i= \text{mod}(\text{round}(|C_i|),256)
$$
置乱图像序列与密钥流$D_i$ 进行异或操作生成的矩阵被转换为最终输出序列。
解密算法是加密算法的逆过程,根据密钥:$r,a,b,c,m,x_0 ,y_0 ,z_0$ 和 $u_0$ ,通过整个解密过程可获得解密图像。
4. 仿真实验
本实验选取大小为256×256的彩色图像“lena.jpg”作为待加密的明文图像。四维超混沌系统(1)的参数值为$a = 33.4$,$b = 33.6$,$c = 2.3$,$m = 9.1$,初始值为 $x_0 = 6.2, y_0 = 7.5, z_0 = 19.7$和 $u_0 = 16.3$。图像加密过程中的总迭代次数为$t= 5$。根据(4)和(5),第一轮加密的格雷码转换迭代次数为$r_0= 2$,混沌序列的选择从 $n_0= 768$开始。在每一次后续迭代中, $r_i= r_{i−1}+ 1$, $n_i= n_{i−1}+ r_i^2$。加密密钥包括 $a,b,c,m,x_0,y_0,z_0,u_0,t$和 $n_0$;解密密钥与加密密钥相同。图像的加密和解密结果如图2所示。密文图像呈无序状态,解密图像与明文图像完全相同。
5. 仿真结果分析
5.1. 密钥敏感性
为了检测算法的密钥敏感性,仅在解密过程中改变一个密钥。分别对混沌系统的初始值、迭代次数以及混沌序列起始时选择的序号进行微小更改。依次设为$u_0 = 16.3000001$,$t= 6$和$n_0 = 769$;解密图像如图3所示。
尽管每轮仅有一个密钥发生微小变化,但密文仍无法被精确解密,因此,可以证明该算法具有较强的密钥敏感性。
5.2. 直方图
直方图显示了图像中不同像素值出现的频率。它已被广泛应用于图像检索、分类等领域 [15]。图像加密的目的之一是通过直方图均衡化或泛化来增加提取图像直方图特征的难度[16]。加密前后图像的直方图如图4所示。
颜色分量的直方图趋于均匀分布,这与明文分布完全不同。图4表明,该算法的变换‐置乱‐扩散模式具有良好的置乱效果和统计特性,满足图像加密的要求。
5.3. 相邻元素的相关性
明文中相邻像素之间通常存在高度相关性,这是图像的固有特征。因此,加密算法应尽量降低相邻像素之间的相关性。本文从明文和密文中随机提取10,000个像素,根据以下公式计算水平、垂直和对角方向的相关系数:
$$
E(x)= \frac{1}{N}\sum_{i=1}^{N}x_i \tag{7}
$$
$$
D(x)= \frac{1}{N}\sum_{i=1}^{N}(x_i −E(x))^2 \tag{8}
$$
$$
\text{cov}(x,y)= \frac{1}{N}\sum_{i=1}^{N}(x_i −E(x))(y_i −E(y)) \tag{9}
$$
$$
r_{xy}= \frac{\text{cov}(x,y)}{\sqrt{D(x)}\sqrt{D(y)}} \tag{10}
$$
$x$和$y$表示两个相邻像素的像素值,$r_{xy}$是相关系数。结果如表1所示。
分别从原始图像和加密图像的三原色分量中随机选取了2500个像素。对角方向的元素分布如图5所示。
明文图像的相邻元素往往具有强相关性,其元素与其相邻元素的分布集中在 $x= y$附近,如图5(a)–5(c)所示。置乱和扩散操作旨在降低这种相关性,其结果在区域[0,255]内呈现近似均匀分布,如图5(d)–5(f)所示。
事实上,彩色图像中不同颜色分量在相同相对位置处的像素值通常高度相关。因此,在彩色图像加密过程中,应注意降低不同分量在相同相对位置处像素值之间的相关性。
在明文和密文中随机选择一些随机点。三个颜色分量R、G和B的像素值分别表示X、Y和Z轴坐标,将对角方向上的相邻元素绘制成相邻元素的关系图。散点图如图6所示,其中红点为选中的随机点,蓝点为随机点对角方向上的像素。对于彩色明文图像,相同相对位置处各分量的像素值高度相关;如图6(a)所示,散点集中在直线 $x= y= z$周围,红点与蓝点之间的重叠度较高;而在图6(b)中,从密文中选取的散点在空间中随机分布,且重叠度较低。由图6可以看出,明文图像呈现出明显的集中分布特征,而密文图像则表现出强随机性。
表1以及图5和图6表明,该加密算法具有良好的扩散特性。
5.4. 鲁棒性
在图像传输或解码过程中,常常会产生椒盐噪声、高斯噪声及其他噪声以及图像剪切[21]。因此,图像加密与解密算法应能在一定程度上适应剪裁和噪声。图7显示了经过1/4剪裁、添加0.20椒盐噪声、0.1高斯噪声、泊松噪声和斑点噪声后解密的图像。
根据图7,密文已得到良好恢复,明文信息基本可以恢复。图7表明该算法具有良好的鲁棒性。
| 相关系数 | 水平 | 垂直 | 对角 |
|---|---|---|---|
| 明文 | 0.9372 | 0.9458 | 0.9681 |
| 密文 | 0.0013 | 0.0015 | -0.0024 |
| 密文 [17] | -0.0102 | 0.0076 | -0.0153 |
| 密文 [18] | 0.0129 | 0.0065 | 0.0013 |
| 密文 [19] | 0.0034 | 0.0050 | 0.0056 |
| 密文 [20] | 0.0173 | -0.0112 | -0.0125 |
表1:相邻元素相关性
6. 抗攻击分析
6.1 抗穷尽攻击
该算法基于格雷码和四维超混沌系统。参数、初始值、迭代次数和图像大小构成加密密钥。当精度设置为$10^{-14}$时,密钥空间将超过$10^{86}$。根据当前计算条件,当密钥空间大于$2^{128}$时,密文图像能够有效抵抗暴力攻击。该算法的密钥空间远超此标准[22]。因此,该加密算法的密钥空间能够有效抵抗穷尽攻击。
6.2 抗熵攻击
图像信息熵用于表示图像像素值分布的聚集特征[23]。计算方法如下:
$$
H= -\sum_{i=0}^{255} p(i)\log_2 p(i) \tag{11}
$$
$p(i)$ 是每个灰度级的频率。该公式主要用于计算灰度图像的信息熵。本文中,彩色图像信息熵的计算方法定义如下:
$$
H= \frac{1}{3} \sum H_k \tag{12}
$$
$k \in {R,G,B}$ 和 $H_k$ 表示 RGB 各颜色分量的信息熵。
| 图像 | 信息熵 |
|---|---|
| 明文 | 7.4481 |
| 密文 | 7.9991 |
| 密文 [4] | 7.8556 |
| 密文 [17] | 7.8534 |
| 密文 [20] | 7.9994 |
| 密文 [24] | 7.9551 |
表2:信息熵对比
根据表2,通过比较明文、该算法的密文以及 [4, 17, 20, 24] 的密文图像的信息熵,可以得出该算法加密图像的信息熵值更接近理想值8,这意味着加密图像更接近于随机信号源,且该算法具有抵抗熵攻击的能力。
6.3 抗明文攻击
由于格雷码和混沌序列的起始序列号与明文图像属性[25]相关,选择不同的明文时所得到的密钥通常也不同;基本可实现“一图一密”。由特定明文推导出的密钥无法正确解密其他密文[8]。因此可以得出,该算法具有良好的抗选择明文攻击能力。
6.4. 抗差分攻击
NPCR(像素变化率)和UACI(统一平均变化强度)[26]可用于衡量加密算法对明文的敏感性,这是衡量算法抗差分攻击能力的重要指标。NPCR和UACI表示对应位置像素值的变化比例和程度。变化比例和程度越大,算法的抗差分攻击能力越强。计算公式如下:
$$
\text{NPCR}= \frac{\sum_{i=1}^{M}\sum_{j=1}^{N}S_{ij}}{M × N} × 100\% \tag{13}
$$
$$
S_{ij}=
\begin{cases}
1 & X(i,j) \neq X’(i,j)\
0 & X(i,j)= X’(i,j)
\end{cases} \tag{14}
$$
$$
\text{UACI}= \frac{\sum_{i=1}^{M}\sum_{j=1}^{N}|X(i,j) −X’(i,j)|}{M × N × 255} ×100\% \tag{15}
$$
其中 $M × N$ 是图像的大小, $X(i,j)$ 和 $X’(i,j)$ 分别表示明文和密文在相应位置的像素值。彩色图像的 NPCR 和 UACI 计算方法根据灰度图像定义如下:
$$
\text{NPCR}
3= \frac{\sum
{i=1}^{M}\sum_{j=1}^{N}\sum_{k=1}^{3}S’_{ijk}}{M × N × 3} × 100\% \tag{16}
$$
$$
S’_{ijk} =
\begin{cases}
1 & X(i,j,k) \neq X’(i,j,k)\
0 & X(i,j,k)= X’(i,j,k)
\end{cases} \tag{17}
$$
$$
\text{UACI}
3= \frac{\sum
{i=1}^{M}\sum_{j=1}^{N}\sum_{k=1}^{3}|X(i,j,k) −X’(i,j,k)|}{M × N × 255 × 3} × 100\% \tag{18}
$$
计算结果如表3所示。
| 图像 | NPCR/% | UACI/% |
|---|---|---|
| 密文 | 99.63 | 33.52 |
| 密文 [4] | 99.63 | 33.54 |
| 密文 [17] | 86.55 | 33.47 |
| 密文 [18] | 99.63 | 33.51 |
| 密文 [20] | 99.60 | 30.34 |
表3:NPCR和UACI的比较
当密文的NPCR和UACI分别大于99.6%和33.46%时,表明该算法具有良好的安全性。如表3所示,通过比较[4, 17, 18, 20]该算法的NPCR和UACI值,其对明文的敏感性高于表3中列出的参考文献。因此,该算法能够满足安全要求,并具有良好的抗差分攻击能力。
附加要点
本文提出了一种基于四维超混沌系统和“变换‐置乱‐扩散”的新型彩色图像加密算法。该算法不同于传统的基于“置乱‐扩散”的加密算法。根据四维混沌系统生成的混沌序列,完成置乱和扩散过程,且该算法表现出更好的统计特性。加密与解密过程简单,易于实现。在本算法的设计中,部分加密密钥依赖于明文,这提高了算法对明文的敏感性,并增强了抗明文攻击能力。仿真结果表明,该算法具有良好的安全性和较强的抗损毁能力。因此,该算法在图像加密领域具有很高的应用价值。
利益冲突
作者声明,本文的发表不存在利益冲突。
致谢
本项目由国家自然科学基金(NSFC)资助,基金号 61806219。
43

被折叠的 条评论
为什么被折叠?



