1. 引言
计算机网络和智能手机等技术的快速发展使得网络上多媒体信息的服务也日益普遍。由于这类信息往往包含私密或机密信息,其安全问题的重要性凸显。数据加密技术的研究是一个热门的研究领域。图像具有一些内在属性,例如数据容量大、冗余度高、相邻像素的相关性强以及图像具有视觉特性等,这些特征使得传统的数据加密算法,如IDEA、DES和AES,不适用于实际的图像加密[1] [2]。混沌系统拥有诸如遍历性,伪随机性,不可预测性,对初始条件和系统参数高度敏感性等优良特性,这些混沌特性与密码学的混淆和扩散的基本要求高度一致[3]。另外,混沌系统容易在计算机上实现运算,居于混沌的密码系统通常具有高速度和低成本,这使得居于混沌的图像加密方案比许多传统的图像密码系统更有竞争力,这也是目前图像加密算法的主流[4] [5] [6] [7]。
自从Fridrich在1998年首次将混沌系统用于构建基于混沌的图像加密算法以来,很多研究图像信息安全的学者提出了许多图像加密方法[5] [6] [7] [8] [9]。文献[8]基于混沌系统的图像加密方法,使用3D斜帐篷映射对图像进行置乱;文献[9]对彩色图像进行加密,结合三维logistic映射和斜帐篷映射对图像进行处理。DNA计算具有可进行大规模并行运算,功耗较低以及巨大的存储能力等,研究密码的专家学者将混沌系统和DNA运算相结合,提出了基于混沌系统和DNA编码的图像加密算法。DNA密码学最早出现在文献[10],其文本用DNA表示序列并进行操作。文献[11]提出一种基于DNA编码的多图加密方法,分别对多幅明文图像进行DNA编码,然后根据混沌映射产生的混沌序列,将DNA序列在多幅图像间移动进行置乱;将置乱后的图像与DNA编码后的混沌密钥进行加法运算实现扩散效果。实验结果和算法分析表明,该算法加密效果良好,安全性高。文献[12]利用变步长约瑟夫遍历和DNA编码的特征,将混沌序列作为约瑟夫遍历的变步长,采用改进的约瑟夫遍历对图像像素位置进行置乱;动态选择DNA编码规则,对图像像素进行DNA编码,很好地解决了DNA编码规则少所带来的安全隐患,提高了算法的安全性。最后通过密文反馈和混沌系统迭代来进一步增强算法的混淆和扩散特性。实验和安全性分析结果表明,该算法不仅对密钥的敏感性强,而且能有效抵御统计性分析和穷举分析等攻击操作。文献[13]结合DNA运算和多个改进的一维混沌系统,提出了一种新的具有很好鲁棒性的彩色图像密码系统。实验结果表明所提出的密码系统具有良好的安全性和加密性能。文献[14]提出了一种基于动态DNA编码运算的彩色混沌图像加密算法。利用一个四翼超混沌系统来产生混沌序列密钥流。外部密钥由SHA 384获得图像Hash函数值进行修正,使得加密算法具有很强的明文敏感性,能够抵抗各种典型的密码学攻击。
基于混沌系统和DNA编码运算的图像加密算法有待进一步深入的研究。本文提出了一种基于三维斜帐篷混沌系统和DNA编码的彩色多图像加密算法。3D斜帐篷映射具有很好的超混沌性质,生成的混沌序列具有优良的伪随机性、遍历性和高度的初值(系统参数)敏感性,将其和DNA编码相结合,构建的图像加密算法安全性更高。多幅图像的同时加密,进一步混淆了不同图像之间的各个颜色通道的统计特性,进一步提高了密文图像的统计性能。加密算法中利用了SHA 256获取多幅图像的混沌图像的Hash函数值修改外部密钥,使得机密算法的密钥流高度依赖于图像信息,图像的稍微改变,均使得密文图像产生显著的变化,具有很强的抵御差分攻击等密码学分析的能力。实验结果和安全性分析表明,本文所提出的加密算法加密效果优良。
2. 相关知识
2.1. 三维斜帐篷混沌映射
斜帐篷映
是一个简单的离散型混沌系统,如公式(1)所定义:
(1)
其中
是系统的状态量,
是系统的控制参数。在本文中,将对一般的斜帐篷映射进行推广成3D斜帐篷映射,定义映射
如公式(2):
(2)
其中
是系统参数。通过计算得出该映射的三个李雅普诺夫指数为公式(3):
(3)
通过计算得出三个李雅普诺夫指数
均为正数,这表明3D斜帐篷映射
是处于超混沌状态的[8]。
2.2. DNA编码和运算
DNA分子是以4种脱氧核苷酸为单位连接而成的长链,这4种脱氧核苷酸分别含有A, T, C, G四种碱基,其中A和T,G和C分别互补配对[15]。同时0和1在二进制中也是互补配对的,可以用A, T, C, G对00,01,10,11进行编码,总共有24种排列方式,其中满足DNA碱基间的互补配对原则只有8种。如表1所示。由于使用不同的规则会对像数值造成很大的影响,因此该方法能够提高图像信息的安全性。序列的运算均基于二进制进行的,包括加法、减法和异或。表1提供了在DNA编码规则3的情况下异或的运算结果。
Table 1. DNA coding rules and XOR operation
表1. DNA编码规则和异或运算
编码 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
异或 |
A |
T |
C |
G |
A |
00 |
00 |
01 |
01 |
10 |
10 |
11 |
11 |
A |
C |
T |
A |
G |
T |
01 |
10 |
00 |
11 |
00 |
11 |
01 |
10 |
T |
G |
A |
T |
C |
C |
10 |
01 |
11 |
00 |
11 |
00 |
10 |
01 |
C |
A |
G |
C |
T |
G |
11 |
11 |
10 |
10 |
01 |
01 |
00 |
00 |
G |
T |
C |
G |
A |
2.3. Hash函数
在通信中,常常将Hash函数引入,以确保数据的完整性和安全性[16]。Hash函数是一种将任意大小的数据映射到某一固定值的函数。常见的Hash函数包括MD5,SHA-1,SHA-256。在数字混沌图像加密算法中,Hash函数被用于安全散列函数,将图像数据映射到固定长度的输出;在加密解密的过程中,能够确保数据是否有被篡改和损坏。由于图像间微小的差别会造成它们的Hash值截然不同,因此本文所构造的算法采用Hash函数中的SHA-256。将输入的图像数据映射成256 bit的输出,用于生成与明文相关的初始值,将密钥流和明文图像建立联系,增强加密算法的明文敏感性以及差分攻击的性能。
3. 加密方案
加密算法的外部密钥包括3D斜帐篷映射的初始值
和参数
,加密算法的主要框架如图1所示。
Figure 1. The flowchart of encryption algorithm
图1. 加密算法流程图
Step 1. 读入d幅彩色明文图像
,其矩阵大小均为
。将其展开成8个位平面,并组成三维比特矩阵
,大小为
。
Step 2. 将
输入到SHA-256散列函数中,得到长度为256 bit的散列函数值H,即64个4 bit的Hash值,分别记为
,通过公式生成与明文相关的初始值
(4)
再通过公式(5)对外部密钥进行处理,使得内部密钥与明文相关。
(5)
Step 3. 计算明文图像所得三维比特矩阵
的所有比特值的和,并进一步根据公式(6)计算
。
(6)
以
为3D斜帐篷映射的初值,以
为系统参数,通过3D斜帐篷映射生成混沌序列,扔掉前面
个点,去除有害的过渡效应,使得生成的序列具有更好的混沌性能,将序列记为
。
(7)
Step 4. 分别利用三条混沌序列
做一次3D比特置乱。具体过程如公式(8),首先将混沌序列截取成三段,每段的长度分别对应矩阵
大小的三个维度,再对每段序列进行排序,得到索引序列
,再通过对
在三个维度上分别进行层级之间的置乱。
(8)
其中
。通过混沌序列
进行三次比特置乱后得到矩阵
。
Step 5. 将置乱后的三维比特矩阵
分割成d个3D比特矩阵,每个3D比特矩阵的大小为
,再将这d个3D比特矩阵转变为d个大小为
的彩色图像矩阵,矩阵的元素值范围为0~255的整数。将这些彩色图像矩阵合并成二位矩阵Q,大小为
。
Step 6. 以
为混沌初值,
为系统参数,生成混沌序列,丢掉前
个过渡元素,得到序列
。
(9)
通过公式(10)量化
得到新的伪随机序列仍记为
。
(10)
采用表1中的DNA编码规则1和DNA异或运算分别对经过3D置乱后的彩色图像和混沌序列
进行编码,并做DNA异或运算。
Step 7. 对DNA加密后的矩阵做解码并转换为彩色图像,共d幅,即为彩色密文图像。
解密过程是加密过程的逆过程,通过密钥
以及上述过程中生成的散列序列H,即可无失真地还原明文图像。
4. 仿真结果和安全性分析
实验使用的计算机的配置为Windows 11,在Matlab R2020a平台上进行图像加密算法的仿真实验,实验结果如图2所示。
Figure 2. The simulation experiment results
图2. 仿真实验结果
本实验将3D斜帐篷映射的初始值设为
,系统参数设为
。实验选取了Baboon,House,Lena,Peppers四幅同样大小的彩色图像作为加密图像,如图2(a)~图2(d)。所得的加密图像如图2(e)~图2(h)。经过解密最终得出明文图像,如图2(i)~图2(l)。从实验结果可以得到:加密后的图像均很杂乱,能够较好地隐藏原始图像中所隐藏的信息新算法的加密效果良好。同时由于加解密后的图像与原始图像是完全相同的,该算法是无损的。
4.1. 密钥空间分析
密钥空间是指所有合法的密钥所构成的集合,是评估加密算法能否抵抗蛮力攻击的重要指标。本文所采用的3D斜帐篷映射的密钥
,其中
。为了能换个更好地抵抗穷举的攻击,密钥空间必须是大于2100 [17]。当计算机的计算精度为10−15,且SHA-256函数抵抗最佳攻击的安全保障为2128 [18],该算法的密钥空间为
,远大于2100,因此新算法的密钥空间足够大,能够较好的抵挡穷举的攻击。
4.2. 直方图分析
灰度直方图是对图像灰色级别的统计分析,显示图像中灰度值的分布情况。当直方图十分接近的情况下,信息会变得不可预测,能够有效地避免直方图攻击。本文以Baboon图像为例,绘制出其明文和密文RGB三个分量的直方图。从图3中明显的可以看出,Baboon明文图像的灰度值分布变化较大,而相应的密文灰度直方图中的灰度值的分布则比较均匀。表明可以直观的看出明文图像的灰度直方图较为波荡起伏,密文图像的灰度直方图较为平缓,能够较好地确保图像信息的安全性。
Figure 3. The histograms of RGB components of plaintext and ciphertext of image Baboon
图3. 图像Baboon的明文和密文的RGB分量直方图
为了进一步衡量明文图像和密文图像的情况,本文采用单边假设检验对两者的差别进行数值上的分析。计算
统计量的值,其定义为公式(11)。
(11)
其中,
代表直方图中每个灰度值的像素点的频数
,取显著性水平
,使得:
(12)
仍以本次实验中的Baboon图像为例,计算出
统计量的值,如表2。可以看出文图像三个分量
统计量的值远大于
,而对应密文图像的
统计量的值小于
,可以认为加密后的图像近似均匀分布,图像信息难以被预测,确保了其安全性。
Table 2. The results of the chi-square test for each component of the Baboon image
表2. Baboon图像各分量卡方检验结果
图像 |
R |
G |
B |
明文图像 |
0.8284 × 105 |
1.4281 × 105 |
0.7994 × 105 |
密文图像 |
263 |
263.1055 |
284.2441 |
4.3. 相邻像素相关系数分析
Table 3. The correlation coefficients in each direction of the original image and the ciphertext image
表3. 原始图像和密文图像各方向的相关系数
图像 |
相关系数 |
原始图像 |
密文图像 |
水平 |
垂直 |
正对角 |
水平 |
垂直 |
正对角 |
Baboon |
R |
0.86678 |
0.92193 |
0.86083 |
−0.033862 |
−0.0479062 |
−0.0011099 |
G |
0.76221 |
0.86381 |
0.74074 |
−0.0030958 |
−0.027292 |
0.023866 |
B |
0.87126 |
0.90895 |
0.84365 |
−0.021209 |
−0.038228 |
−0.00010513 |
House |
R |
0.95858 |
0.95815 |
0.9256 |
−0.012808 |
0.0029169 |
−0.0092447 |
G |
0.94535 |
0.9345 |
0.89157 |
−0.014625 |
−0.013316 |
−0.04056 |
B |
0.97257 |
0.97613 |
0.94096 |
0.020852 |
0.015345 |
0.02226 |
Lena |
R |
0.98937 |
0.98062 |
0.96699 |
0.0044953 |
0.016486 |
0.014038 |
G |
0.98362 |
0.97272 |
0.95148 |
−0.021811 |
−0.023813 |
0.00071841 |
B |
0.95661 |
0.92771 |
0.90484 |
0.013564 |
−0.012282 |
−0.016991 |
Peppers |
R |
0.96982 |
0.96065 |
0.94994 |
−0.030164 |
0.012584 |
0.009054 |
G |
0.97908 |
0.97544 |
0.966 |
0.0070367 |
−0.0050525 |
−0.018132 |
B |
0.97098 |
0.97064 |
0.94972 |
−0.0095579 |
0.024503 |
0.024503 |
明文图像在水平、垂直、正对角和反对角方向上的相邻像素点间均具有较强的相关性。为了保证图像信息的安全性,加密后获得的密文图像的相邻像素间的相关性需要呈现较低水平,即相关性接近0。
(13)
根据公式(13)分别计算出明文图像和密文图像的各方向的相关系数,计算出的最终结果如表3。可以观察到,原始图像相邻像素点间具有较高的相关性,而经过加密处理后的图像相邻像素点的相关性十分接近0,可以视为无相关性,因此能够较好地抵抗统计攻击。
4.4. 信息熵
信息熵反映了图像的复杂程度和信息量。一般认为,图像的信息熵越大,不确定性越大,可视信息越少。其定义为公式(14)。
(14)
其中L为图像的灰色等级度,
为灰度值i出现的概率。根据定义计算得到图像信息熵,得到表4。可以得到:各个明文图像的信息熵较小,与理论值存在较大的差别,且而密文图像十分接近理论值8,可以说明可视信息少,加密效果良好。
Table 4. The information entropy results for each component of each image
表4. 各图像各分量信息熵结果
指标 |
R分量 |
G分量 |
B分量 |
理论值 |
明文图像 |
密文图像 |
明文图像 |
密文图像 |
明文图像 |
密文图像 |
Baboon |
7.7067 |
7.9993 |
7.4744 |
7.9993 |
7.7522 |
7.9993 |
8 |
House |
7.4156 |
7.9994 |
7.2295 |
7.9993 |
7.4354 |
7.9994 |
8 |
Lena |
7.2531 |
7.9993 |
7.594 |
7.9993 |
6.9684 |
7.9993 |
8 |
Peppers |
7.3388 |
7.9993 |
7.4963 |
7.9993 |
7.0583 |
7.9993 |
8 |
4.5. 密钥敏感性分析
密钥敏感性分析是在对同一次的对多个明文图像进行加密时,通过分别采用仅有微小差异的两个密钥对其进行加密处理,得出对应的密文图像。如果得到的密文图像存在较大的差异,这将表明该算法有着较强的密钥敏感性。从定量上,NPCR和UACI能够反映两幅图像之间的差别,计算公式(15)所示。
(15)
其中,M和N分别表示两幅图像的宽度和高度,
和
表示两张图像位于位置
所取的概率,
的定义为公式(16)。
(16)
可以计算得到NPCR和UACI的理论期望值分别为99.6094%和33.4635%。当得到的结果与理论期望值越接近,说明两幅图片之间的差别较大,即密钥发生微小的改变后密文图像变化大,说明密钥的敏感性较好。以图Baboon为例,对密钥的6个参数依次进行敏感性分析,分别对其进行微小的扰动,改变10−15得到NPCR和UACI值,如表5所示。可以观察到,NPCR和UACI均十分接近与理论期望值,说明该算法具有较强的密钥敏感性。
Table 5. NPCR and UACI of Baboon image
表5. Baboon图像的NPCR和UACI
发生变化的参数 |
|
|
|
|
|
|
NPCR |
99.6180 |
99.5968 |
99.6141 |
99.6130 |
99.5913 |
99.6019 |
UACI |
33.4916 |
33.5210 |
33.4844 |
33.1496 |
33.1496 |
33.5105 |
4.6. 明文敏感性分析
为了抵御差分攻击,算法的密钥应该具有较强的明文敏感性。使用同一密钥对两个差别微小的图像进行加密,若得到的密文图像具有较大的差异,说明该算法安全性较高。从数值上看,根据公式(15)计算密文图像的NPCR和UACI,得到表6。由于它们的NPCR和UACI计算结果和理论值十分相近,对应的两个密文图像相差迥异,说明该算法具有较强的明文敏感性,具有良好的抵制差分攻击能力。
Table 6. The plaintext sensitivity analysis results for Baboon image
表6. Baboon图像的明文敏感性分析结果
指标 |
R |
G |
B |
NPCR |
99.6063 |
99.6101 |
99.6128 |
UACI |
33.4541 |
33.4602 |
33.4652 |
4.7. 密文敏感性分析
密文敏感性分析目的是分析密文图像发生极小的变化后,解密还原的图像与原始图像之间的差别,倘若还原后的图像和原始明文图像差异性较大,说明该解密系统具有颇强的密文敏感性,能够较好地保护图像信息的安全。与明文敏感性分析相似,需要计算NPCR和UACI这两个指标。其数值越大,表明该算法对明文变化越敏感,算法抵制差分攻击的能力越强。以Baboon图像为例,计算得到表7。从表中数据可以得出:当密文图像发生微小的改变后,NPCR和UACI较大且接近于理论值,说明该算法的密钥能够较好地对抗选择性密文攻击。
Table 7. The ciphertext sensitivity analysis results of Baboon image
表7. Baboon图像的密文敏感性分析结果
指标 |
R |
G |
B |
NPCR |
99.5935 |
99.5972 |
99.5855 |
UACI |
33.5971 |
33.6078 |
33.8542 |
5. 结束语
本文结合DNA编码和3D斜帐篷映射,提出了一种彩色多图加密算法。该算法主要分为3D置乱和扩散两个部分,3D置乱部分利用斜帐篷映射生成的混沌序列对比特处理后的明文图像的点位进行扰乱,在扩散部分结合斜帐篷映射生成的混沌序列以及DNA异或运算进行处理。既保证了算法的复杂性,又能够将密钥和明文图像建立联系,有效地提高了算法的安全性。实验结果说明:本文的算法能够较好地将明文图像的信息进行隐藏,密钥空间大,敏感性强,能够抵抗差分等攻击,安全性良好。
基金项目
论文研究资助项目为广东省大学生创新创业项目以及广东省基础与应用基础研究基金项目(No.2023A1515030199)。
NOTES
*通讯作者。