1. 引言
随着信息技术的飞速发展,多媒体在我们的日常生活中变得越来越普遍。作为多媒体数据的一部分,数字图像因其直观、抽象层次低且易于阅读的特点,深受人们喜爱。在广泛使用图像的同时,如何确保图像在传输和存储过程中的安全性,近年来受到了越来越多的关注。目前,学者们已经提出了许多方法来解决这个问题[1]-[3]。在这些方法中,图像加密是最常用的技术。
混沌系统由于其独特的特性,经常被用于密码系统中。与多维混沌系统相比,一维混沌系统因其结构简单、易于实现和计算复杂度低而更受欢迎[4]。Belazi等人利用正切函数和正弦函数设计了一种改进的正弦–正切映射。然后,通过各种分析方法对正弦映射、正弦–指数映射、正弦–正切映射以及改进的正弦–正切映射的混沌性能进行了分析[5]。Xiao等人利用Logistic映射和Sine映射设计了一种新颖的一维混沌,它包含两个控制参数。这种新颖的混沌具有较大的混沌范围,但在混沌区间内仍存在许多周期窗口[6]。Liu等人采用分段线性混沌映射设计了一种比特级置乱方案,其中原始图像中像素的位置和值可以同时改变[7]。然而,这些一维混沌映射存在一些缺点,例如混沌范围有限、存在周期窗口。
标准的Zigzag变换常用于置乱图像,但它有许多缺点。例如,像素矩阵中某些元素的位置在多次变换后不会改变。此外,标准的Zigzag变换只能应用于方阵并且具有周期性。因此,人们提出了一些改进的Zigzag变换来克服这些缺点。Wang等人设计了一种扩展的Zigzag变换,它适用于任意大小的像素矩阵,而不仅限于方阵[8]。Vidhya等人提出了四种不同的Zigzag变换扫描方法,可以从像素矩阵的四个角点中的任意一个开始扫描[9]。Yang等人提出了一种新颖的Zigzag变换,它可以从任意位置开始扫描,而不局限于像素矩阵的四个角点[10]。Wang等人使用3D Zigzag变换来置换原始图像,并比较了Arnold变换、循环移位、标准Zigzag变换和3D Zigzag变换的置换效果。从比较结果可以看出,3D Zigzag变换比其他变换具有更好的置换效果[11]。
为确保图像安全的同时,提高加密效率,本文提出了一种新颖的图像加密算法。主要贡献如下:1) 设计了一种新的基于Logistic映射、Sine映射和指数函数的一维混合混沌映射。2) 提出了一种改进的Zigzag变换,以克服标准Zigzag变换的缺点。3) 提出了一种使用新的一维混合混沌映射、改进的Zigzag变换的图像加密算法,该算法可以实现高安全性和高加密效率。
本文其余部分的组织如下:第2节介绍了所提出的一维混合混沌映射及其性能分析。第3节提出了一种改进的Zigzag变换并给出加密和解密算法。第4节给出实验结果并进行安全性分析。第5节为结束语。
2. 混沌映射
2.1. Logistic映射
Logistic映射[6]的数学表达式如式(1)所示:
(1)
式中,μ代表控制参数,其取值范围为(0, 4]。其中,x0为初始值,xn+1为生成的混沌序列,其取值范围为(0, 1)。注意Logistic映射只有在μ > 3.57时才处于混沌状态。
2.2. Sine映射
Sine映射[5]的数学表达式如式(2)所示:
(2)
其中,λ代表控制参数,其取值范围是(0, 1]。x0为初始值,xn+1为生成的混沌序列,其取值范围是(0, 1)。注意,Sine映射仅在λ > 0.87时处于混沌状态。
2.3. HLSE映射
对于Sine映射,将控制参数设为λ = 1,因此我们可以将公式(2)改写为:
(3)
然后,将公式(3)和指数函数结合起来得到公式(4):
(4)
最后,将公式(1)和(4)结合起来得到HLSE (Hybrid chaotic map using the Logistic map, Sine map and the Exponential function,结合逻辑斯蒂映射、正弦映射和指数函数的混合混沌映射)映射的数学表达式:
(5)
其中,mod(·)代表模运算符,γ代表控制参数,其取值范围是(0, ∞)。x0代表初始值,xn+1代表生成的混沌序列,其取值范围是(0, 1)。注意,HLSE映射仅在γ > 3.5时处于混沌状态。
2.4. 混沌性能分析
2.4.1. 敏感性分析
混沌敏感性分析是理解和应用混沌系统的基石。本文仿真了上述三种混沌映射的轨迹图,以验证其对初始值的敏感性,如图1所示。注意,蓝色和红色线条分别代表初始值为x1(0) = 0.2和x2(0) = x1(0) + 10 − 10时生成的混沌序列的轨迹。对于图1(a)、图1(b)中的Logistic映射和Sine映射,蓝色和红色线条迭代30次左右时才分开。换句话说,Logistic映射和Sine映射在最初的28次迭代中对初始值没有强敏感性。对于图1(c)中的HLSE映射,蓝色和红色线条在迭代5次后就分开。因此,我们设计的HLSE映射比Logistic映射和Sine映射对初始值具有更强的敏感性。
(a) μ = 4时的Logistic映射轨迹图
(b) λ = 1时的Sine映射轨迹图
(c) γ = 10时的HLSE映射轨迹图
Figure 1. Sensitivity analyses
图1. 敏感性分析
2.4.2. 分岔图
分岔图可以反映随着控制参数的变化,系统的稳定性、周期性和混沌特性的演变过程。从图2(a)中我们可以看到,Logistic映射在μ > 3.57时表现出混沌行为。图2(b)中的Sine映射在λ > 0.87时处于混沌状态。对于Logistic映射和Sine映射,在给定的控制参数范围内都会出现周期窗口。对于我们设计的HLSE映射,如图2(c)所示,当γ > 3.5时出现全映射,并且没有周期窗口出现。换句话说,我们设计的HLSE映射几乎在整个控制参数范围内都表现出混沌行为。因此,我们设计的HLSE映射比Logistic映射和Sine映射具有更大的混沌区间和更复杂的动态行为。
(a) Logistic映射分岔图
(b) Sine映射分岔图
(c) HLSE映射分岔图
Figure 2. Bifurcation diagrams
图2. 分岔图
2.4.3. 李雅普诺夫指数
李雅普诺夫指数(LE, Lyapunov Exponent)常被用来描述一个混沌系统的动态特性。只有当系统中李雅普诺夫指数值大于0时,该系统才处于混沌状态。对于一个一维混沌映射,其李雅普诺夫指数值[5]可以通过以下公式计算:
(6)
式中,
是
的一阶导数,并且
。
从图3(a)、图3(b)中可以看出,对于Logistic映射和Sine映射,它们的LE值仅在一个相对较小的控制参数范围内大于0,即Logistic映射是在参数
时,Sine映射是在参数
时,它们的LE大于0。而对于图3(c)中我们设计的HLSE映射,当控制参数γ > 3.5时,其LE值就大于0。此外,HLSE映射的LE值随着控制参数的增加而持续增大,这意味着其混沌行为变得更加复杂。
(a) Logistic映射李雅普诺夫指数
(b) Sine映射李雅普诺夫指数
(c) HLSE映射李雅普诺夫指数
Figure 3. Lyapunov exponents
图3. 李雅普诺夫指数
显而易见,与Logistic映射和Sine映射相比,HLSE映射拥有更大的参数范围和更大的LE值。这表明我们设计的HLSE映射具有复杂的动态特性,使其非常适合用于图像加密。
3. 图像的加密和解密
3.1. Zigzag变换
3.1.1. 标准Zigzag变换
标准的Zigzag变换[12]经过多次变换后,矩阵中某些元素的位置并不会改变,而且有些像素还扎堆出现在一起,这意味着标准Zigzag变换的置乱效果有待改进。图4展示了一个4 × 5方阵的标准Zigzag扫描过程。
Figure 4. Scanning process of the standard Zigzag transformation
图4. 标准Zigzag变换的扫描过程
3.1.2. 改进Zigzag变换
Figure 5. Scanning process of the improved Zigzag transformation
图5. 改进Zigzag变换的扫描过程
为了克服标准Zigzag变换的缺点,本文提出一种分两次扫描的改进Zigzag变换,图5展示了一个4 × 5方阵的改进Zigzag扫描过程。
图5改进Zigzag变换算法详细描述如下:
1) 首先以左上角为起始点开始第一次扫描,扫描方式为45度斜向上。每一行扫描完成后,隔一行以类似的方式进行扫描,直至全部扫描完成为止。如图5中红色箭头所示。
2) 接下来从右下角开始往回进行第二次扫描,扫描方式依然为45度斜向上。每一行扫描完成后,隔一行以类似的方式往回进行扫描,直至全部扫描完成为止。如图5中蓝色箭头所示。
3) 把两次扫描的结果分为两部分。
4) 对两次扫描的结果进行交叉排列。
5) 把排列结果重新组合为新的图像。
从扫描结果可以看出,相比于标准Zigzag变换,改进Zigzag变换把原始数据打乱得更彻底,像素进行了更均匀的分散,没有出现扎堆的情况。这说明改进的Zigzag变换具有较好的效果。
3.2. 图像加密算法
3.2.1. 密钥生成
首先,采用SHA-256算法对明文图像进行处理,得到64个十六进制数的哈希值。然后,将这64个十六进制数转换为一个256位的二进制数。之后,把这个256位的二进制数分成16组,每组16位,用
表示。最后,利用公式(7)和(8)来获取我们设计的HLSE混沌映射所需的两个初始值和两个控制参数。
(7)
(8)
式中,
代表异或运算,x01、x02为混沌HLSE映射的两个初值,γ1、γ2为混沌HLSE映射的两个参数。
3.2.2. 加密算法
加密过程主要包括密钥生成、Zigzag置乱、混沌索引置乱和异或扩散,加密流程如图6所示。加密算法详细描述如下:
步骤1:生成密钥。明文图像通过哈希函数得到哈希值,对哈希值进行处理得到混沌的2个初值和2个控制参数,哈希值处理方法参考3.2.1。
步骤2:生成两个混沌序列X1和X2。把步骤1得到的初值和参数代入HLSE映射,得到两个混沌序列X1和X2。对于X2用公式(9)把它们转变为数值为0~255之间的整数数据。
(9)
式中,mod为取模运算。
步骤3:Zigzag置乱。对明文图像用改进的Zigzag进行Zigzag置乱,改进的Zigzag变换参考3.1.2。
步骤4:混沌索引置乱。求取混沌序列X1的索引值,对Zigzag置乱后的结果进行混沌索引置乱。
步骤5:异或扩散。用步骤2求出的混沌序列X2与步骤4混沌索引置乱后的图像进行异或扩散,得到加密图像。
Figure 6. Flowchart of the encryption algorithm
图6. 加密算法流程图
3.3. 图像解密算法
解密是加密的逆过程,其流程图如图7所示。
Figure 7. Flowchart of the decryption algorithm
图7. 解密算法流程图
解密算法描述如下:
步骤1:生成两个混沌序列X1和X2。把给定的密钥代入HLSE映射,得到两个混沌序列X1和X2。对于X2用公式(9)把它们转变为数值为0~255之间的整数数据。
步骤2:逆异或扩散。用步骤1得到的序列X2与密文进行异或运算。
步骤3:逆混沌索引置乱。求取混沌序列X1的索引值,对步骤2异或运算后结果进行逆混沌索引置乱。
步骤4:逆Zigzag置乱。对步骤3结果进行逆Zigzag置乱,得到明文图像。
4. 实验结果与安全性分析
4.1. 实验结果
我们实验中所用计算机的软件平台和硬件配置如下:Matlab R2024b以及一台配备Intel(R) Core(TM) i5-1035G1 CPU @ 1.00 GHz 1.19 GHz和8 GB内存的笔记本电脑。此外,实验中所用的所有灰度图像均来自南加州大学图像处理与图像分析数据库(https://sipi.usc.edu/database/)。图8展示了Clock (256 × 256)、Boat (512 × 512)和Male (1024 × 1024)灰度图像的实验结果,可以看出原始图像与解密后的图像完全一致,而加密后的图像则无法辨认。因此,所提出的加密算法能够实现理想的加密效果。
(a) Clock明文 (b) Boat明文 (c) Male明文
(d) Clock密文 (e) Boat密文 (f) Male密文
(g) Clock密文解密图 (h) Boat密文解密图 (i) Male密文解密图
Figure 8. Experimental results
图8. 实验结果
4.2. 安全性分析
4.2.1. 密钥空间分析
密钥空间是指在密码学中,所有可能的密钥组成的集合。密钥空间的大小决定了密码系统的安全性。一般来说,密钥空间越大,暴力破解难度越高,反之,如果密钥空间过小,攻击者可以很容易地尝试所有可能的密钥,从而破解密码。
在我们的算法中,密钥的生成用的是SHA-256函数,另外在生成控制参数γ1和γ2时还有用到两个固定的值。假设计算精度为10−14,则每个密钥参数可视为拥有1014种可能取值。该算法的密钥空间为2256 × (1014)2,约等于2349,远大于2100,说明该算法具有较大的密钥空间,能够抵御暴力破解攻击。
4.2.2. 密钥敏感性分析
在密码学领域,密钥敏感性是用于评估加密算法安全性的关键指标之一,指的是密钥的微小变化对加密结果的影响程度。如果用于解密图像的密钥和加密原始图像的密钥存在些许偏差,就不能成功地将原始图像恢复出来。如图9所示,(a)为明文图像,(b)为正确密钥加密的图像,(c)为对密文用错误密钥解密的图像。本文只对解密的密钥参数γ1由原值加上10−14,微小的变化导致了不能正确解密,说明该加密算法对密钥敏感。
(a) Boat明文 (b) Boat密文 (c) 错误密钥解密图像
Figure 9. Key sensitivity analysis
图9. 密钥敏感性分析
4.2.3. 直方图分析
图像的直方图能够统计图像中每个灰度级出现的像素点数量。在原始图像中,灰度值通常具有一定的分布规律,其直方图可能呈现出特定的形状。当图像被加密后,在理想的情形下,其灰度值应尽可能地呈现出均匀分布的状态,即直方图应接近均匀分布。这意味着每个灰度级出现的像素数量大致相等。图10为加密前和加密后的图像直方图,可以看出加密后图像的直方图分布均匀。
(a) Clock明文 (b) Clock明文直方图 (c) Clock密文 (d) Clock密文直方图
(e) Boat明文 (f) Boat明文直方图 (g) Boat密文 (h) Boat密文直方图
(i) Male明文 (j) Male明文直方图 (k) Male密文 (l) Male密文直方图
Figure 10. Histograms
图10. 直方图
4.2.4. 相关性分析
正常图像相邻像素间存在显著空间关联性,易被攻击者利用以获取明文信息,威胁图像安全。为抵御攻击,需通过加密操作削弱像素在水平、垂直和对角线三个方向的相关性。
相关性计算公式如下:
(10)
(11)
(12)
其中,x是y的相邻像素,K代表图像中像素的总数。D(x)是方差,E(x)是均值。
(a) Clock明文相关性 (b) Clock密文相关性
(c) Boat明文相关性 (d) Boat密文相关性
(e) Male明文相关性 (f) Male密文相关性
Figure 11. Correlation analysis between adjacent pixels
图11. 相邻像素间的相关性分析
像素相关性图能直观反映此变化,从图11中可以看出,原始图像点分布密集,表明相关性高;加密后图像点分布均匀,表明相关性低,证明加密有效降低了相关性。
表1为相邻像素相关系数的对比结果,相关系数的值越接近1,表示相关性越强;越接近0,表示相关性越弱。可以看出,对比文献[13]-[15],本加密算法的相关系数更接近0,表明加密效果更好。
Table 1. Comparison of correlation coefficients of adjacent pixels
表1. 相邻像素相关系数对比
算法 |
图像 |
水平 |
垂直 |
对角 |
本文算法 |
Clock明文 |
0.9528 |
0.9712 |
0.9332 |
Clock密文 |
0.0045 |
−0.0232 |
−0.0012 |
Boat明文 |
0.9430 |
0.9727 |
0.9287 |
Boat密文 |
−0.0088 |
−0.0026 |
−0.0030 |
Male明文 |
0.9785 |
0.9802 |
0.9679 |
Male密文 |
−0.0008 |
−0.0040 |
−0.0067 |
文献[13] |
Boat密文 |
0.0050 |
0.0164 |
0.0033 |
文献[14] |
Boat密文 |
−0.0035 |
−0.0010 |
−0.0126 |
文献[15] |
Boat密文 |
0.0089 |
−0.0037 |
−0.0042 |
4.2.5. 信息熵分析
在图像加密领域,信息熵用于衡量加密图像中信息的不确定性或随机性。加密的目的之一是让加密后的图像尽可能随机,使攻击者很难从中提取出原始信息内容。信息熵越高,表明加密图像的像素分布越随机,保密效果越好。信息熵计算公式如下:
(13)
其中,n代表图像灰度值的种类数,x表示像素值,P(xi)表示像素值xi出现的概率。对于8位灰度图像,理想加密状态下,图像各灰度值出现概率应近似相等,此时信息熵接近最大值8。表2中展示了本加密算法的信息熵,并与其他文献进行了对比。从结果可知,本算法的信息熵近乎达到8,说明本加密算法复杂度很高,攻击者难以对其进行破解。
Table 2. Comparison of information entropy
表2. 信息熵对比
算法 |
图像 |
明文 |
密文 |
本文算法 |
Clock |
6.7057 |
7.9971 |
Boat |
7.1914 |
7.9994 |
Male |
7.5237 |
7.9998 |
文献[13] |
Boat |
7.1914 |
7.9984 |
文献[14] |
Boat |
7.1914 |
7.9993 |
文献[15] |
Boat |
7.1914 |
7.9992 |
4.2.6. 差分攻击分析
图像加密的差分攻击是专门用于攻击图像加密算法的一种手段,为了防止受到差分攻击的威胁,就要确保明文图像的微小变动能够带来密文图像的显著变化。NPCR和UACI是用于评估图像加密算法抗差分攻击强度的两项关键标准,其计算公式如下:
(14)
(15)
(16)
其中,C1和C2分别代表这样两个密文图像,它们所对应的明文图像中,只有一个像素灰度值发生了改变,M和N分别表示图像的行数和列数。
当加密算法的输入有轻微变化时,输出就会有显著差异,这样的加密方式通常是安全可靠的,我们对NPCR和UACI进行了评估。理想状态下NPCR的值为99.6094%,UACI的值为33.4635%。表3为NPCR和UACI的比较结果,可以看出,与文献[13]-[15]相比,本文算法更接近理想值。
4.2.7. 鲁棒性分析
鲁棒性分析是评估图像加密算法性能的关键,主要衡量加密图像遭受噪声、裁剪等攻击时的安全性与完整性。优秀的加密算法需具备抗噪声和抗裁剪能力,确保受攻击后仍能准确解密,保证图像信息的完整性和准确性。
Table 3. Comparison of NPCR and UACI values
表3. NPCR和UACI的比较
算法 |
图像 |
NPCR (%) |
UACI (%) |
本文算法 |
Clock |
99.6002 |
33.4586 |
Boat |
99.6048 |
33.4412 |
Male |
99.6095 |
33.4186 |
文献[13] |
Boat |
99.6153 |
33.4398 |
文献[14] |
Boat |
99.6035 |
33.4332 |
文献[15] |
Boat |
99.6024 |
33.4088 |
1) 裁剪攻击分析
为了验证图像在传输过程中遭到裁剪攻击后仍旧能保留图像的基础信息这一特性,进行了实验,结果如图12所示。其中图(a)~(d)分别为密文被裁剪1/8 (顶部/底部)、1/4 (四角)、1/4 (中心)、1/2 (左半),(e)~(h)分别为它们的解密图像。由图可知,解密后的图像能在最大程度上还原了原始图像的可视部分,证明了该加密算法具有较好的抗裁剪攻击能力。
(a) 裁剪1/8 (b) 裁剪1/4 (c) 裁剪1/4 (d) 裁剪1/2
(e) 裁剪1/8解密结果 (f) 裁剪1/4解密结果 (g) 裁剪1/4解密结果 (h) 裁剪1/2解密结果
Figure 12. Clipping attack
图12. 裁剪攻击
2) 噪声攻击分析
椒盐噪声是图像领域中较为常见的一类噪声。图13展示了密文在添加不同强度椒盐噪声的情况下,对解密结果所产生的影响。添加的椒盐噪声密度分别为0.05、0.1、0.3、0.5。从仿真结果可以看出,尽管受到椒盐噪声的干扰,解密后的图像有部分像素值发生了变化,但是图像依然保留了原始图像的核心信息,这充分表明该加密算法具备较为出色的抗噪声攻击能力。
(a) 添加0.05椒盐噪声 (b) 添加0.1椒盐噪声 (c) 添加0.3椒盐噪声 (d) 添加0.5椒盐噪声
(e) 0.05噪声解密结果 (f) 0.1噪声解密结果 (g) 0.3噪声解密结果 (h) 0.5噪声解密结果
Figure 13. Salt & pepper noise attack
图13. 椒盐噪声攻击
4.2.8. 时间分析
加密时间分析是评估图像加密算法性能的重要环节,通过对加密时间的分析,可以更好地了解算法的效率。本实验在Intel(R) Core(TM) i5-1035G1 CPU @ 1.00 GHz 1.19 GHz、8 GB内存的笔记本电脑下运行,使用的是MATLAB R2024b软件。表4给出了本文算法和其他算法的加密、解密时间,可以看出本文算法的效率优于其他算法。
Table 4. Encryption and decryption time
表4. 加密和解密时间
算法 |
图像 |
加密时间(秒) |
解密时间(秒) |
本文算法 |
Clock (256 × 256) |
0.136164 |
0.117543 |
Boat (512 × 512) |
0.543841 |
0.465622 |
Male (1024 × 1024) |
2.186457 |
1.972476 |
文献[13] |
Boat (512 × 512) |
1.256375 |
1.289654 |
文献[14] |
Boat (512 × 512) |
0.896547 |
0.867421 |
文献[15] |
Boat (512 × 512) |
1.536546 |
1.469853 |
5. 结束语
本文针对图像信息安全的需求,提出了一种结合新型HLSE混沌映射和改进Zigzag变换的图像加密算法。通过设计HLSE混沌系统,我们获得了一个具有更宽混沌范围、更优遍历性和更强初值敏感性的混沌序列发生器。同时,提出的改进Zigzag变换通过两次特定路径的扫描和结果的交叉排列,显著提升了像素的置乱程度和均匀性,克服了传统Zigzag变换的不足。加密方案利用SHA-256哈希值生成与明文相关的混沌密钥,并依次执行改进Zigzag置乱、混沌索引置乱和混沌异或扩散,实现了对图像数据的高效混淆和扩散。
全面的性能评估,包括密钥空间分析、密钥敏感性测试、直方图分析、相关性分析、信息熵分析、抗差分攻击(NPCR和UACI)能力评估、抗裁剪攻击和抗噪声攻击测试以及加解密时间分析,结果均表明本文提出的算法不仅具有高度的安全性,能有效抵御各种已知的密码分析攻击,而且在运算效率上也表现良好,优于部分现有算法。
综上所述,本文所提出的图像加密算法在安全性、鲁棒性和效率方面均展现出良好的综合性能,为数字图像在不安全信道中的传输和存储提供了一种可靠和有效的保护手段。
基金项目
本研究得到了巢湖学院2024年度国家级大学生创新创业训练计划项目(项目编号:202410380011)、巢湖学院2024年校级教学改革与研究项目(项目编号:x24jyxm02)的支持。
NOTES
*通讯作者。