1. 引言
目前,数字图像在社交媒体软件中传输频繁,图像数据安全成为信息安全领域的热点问题。图像信息具有信息量大、相邻像素的相关性高、冗余度大以及视觉属性的特点等;图像的这些特点使得传统的针对数字文本的加密算法,如DES、AES等,在对图像数据加密时,必然会碰到因加密效率低而无法满足实时应用等问题 [1] 。因此,有必要为图像的加密设计更有针对性的加密方法。混沌现象是在非线性动力系统中出现的确定、伪随机的现象。混沌系统具有极强的初值和参数敏感性,生成的序列具有很好的伪随机性、遍历性以及容易在计算机中模拟实现等优良性质,这些属性与密码学的混淆与扩散等基本门槛有着高度的相似性。因此,基于混沌的密码系统比许多传统密码系统更适合用于图像数据的加密,混沌系统具有设计性能优良的图像加密系统的巨大潜力 [2] [3] 。
自从Fridrich在1998年在文献 [2] 首次使用混沌映射设计基于混沌的图像加密算法以来,许多混沌图像加密算法陆续涌现,其中Arnold映射、Logistic映射、斜帐篷映射、标准映射和Henon映射等具有实现简单快速的优点而被广泛使用 [3] [4] [5] [6] [7] 。但是,低维混沌系统一般存在密钥空间小、安全性薄弱的严重缺陷。基于低维混沌系统的图像加密算法容易遭遇密码分析学者或黑客的破解 [8] [9] [10] 。密码学要求一个好的加密方案应该对密码系统的密钥高度敏感,使得密钥空间足够大,可以有效抵御暴力攻击;密码学也要求混淆和扩散过程应具有优良的作用机制,使得密文图像具有优良的统计性能,可以有效挫败统计分析攻击、差分攻击、已知明文和选择明文攻击等密码学分析。因此,后续有许多密码学学者致力于开发改进的基于混沌的密码系统,一方面使其具有更大的密钥空间,另一方面使加密算法中的扩散机制鲁棒性更强。通过构造高维超混沌系统生成密钥流控制加密过程,使密码系统具有更大的密钥空间以及安全性能。高超混沌系统可以生成复杂的伪随机混沌序列,并且具有多个维度的初始值和系统参数可以作为密钥选择,使得密钥空间得到很大的提高 [11] [12] [13] 。也可以通过设计明文相关的图像加密算法,实现更安全的一次一密的密码系统,对选择明文攻击和已知明文攻击具有更好的鲁棒性 [14] 。
本文提出一种基于动态约瑟夫遍历和比特平面交叉置乱–扩散的彩色混沌图像加密算法。采用传统的约瑟夫遍历方法进行置乱,置乱效果在一定的程度上具有规律性 [15] 。为此,本文提出一种动态的约瑟夫遍历方法,根据图像的内容和混沌系统的伪随机特性,控制图像每行的约瑟夫遍历算法的起始点与步长,实现动态约瑟夫遍历,使得置乱的结果与每行图像的像素内容相关。控制约瑟夫遍历的密钥流与明文图像的值高度相关,可以很好地抵御差分攻击,一般一轮加密即可实现很好的性能。考虑到图像的亮度值或颜色分量值的高比特位是图像信息的主要贡献部分,将高四位比特平面和低四位比特平面的随机交换将很好地隐藏图像信息 [16] 。本文将彩色图像的三颜色分量值分成高四比特位和低四比特位的两部分,再根据伪随机密钥流来操纵高低的四位比特平面进行随机交换,能有效地降低高低四比特位平面值之间的相关性。在交换比特平面的同时,改变了图像各分量的信息值,达到改变三颜色分量值的效果。为了进一步增强加密算法的安全性能和加密效果,加密算法还在像素层次上做了一次灰度值的扩散操作。加密算法采用按位比特异或和加法模运算相结合的模式,既保证了扩散过程的可逆性,也使得安全性能更好。结果表明,本文所设计的加密算法具有很好的安全性和加密性能,可以抵御蛮力攻击、统计分析攻击、差分分析攻击、选择明文和已知明文攻击等。
2. 预备知识和混沌序列生成
2.1. 预备知识
斜帐篷映射是一个简单的离散混沌系统,定义如(1)所示:
(1)
其中,系统参数
,系统初值
,斜帐篷映射为分段线性变换且不可逆。当
时,系统(1)就是标准的帐篷映射。斜帐篷映射具有优良的混沌动力学特性,可以用来生成加密算法的密钥流。
变型Chen混沌系统定义如公式(2)所示,其中
为状态变量,
均为系统的控制参数。Chen混沌系统在系统参数为
时具有超混沌状态 [17] ,本文所考虑的变型Chen混沌系统的参数和Chen混沌系统的参数一致。
(2)
约瑟夫问题是一个循环遍历问题,能够对被描述的对象进行重新排序。其描述如下:n个人围成一圆圈,每个人依次编号1到n,从第s个人开始报数,按顺时针(或逆时针)依次每隔t个人报一次数(每个人只报一次数),报过数的人的位置直接跳过,如此循环进行,直到n个人报完数。按照报数的顺序得到一个新的排列,实现对被描述的对象进行重新排序。图1为一个包含6个人的顺序的约瑟夫遍历实现示意图。显然影响约瑟夫遍历结果的有三个参数,即序列长度n,起始点s和报数间隔t三个参数。

Figure 1. Schematic diagram of Joseph traversal
图1. 约瑟夫遍历示意图
数字图像可以用一个二维的数组表示,像素点的像素值是范围[0, 255]的整数,分别用8位比特表示。若将像素的颜色分量值分成两部分:高四比特和低四比特,则其十进制数为0~15之间的整数。将一个8比特的整数除以16,得到整数的商和余数,高四比特的值就是商的值,低四比特的值就是余数的值,图2为几个8比特数值的分解。

Figure 2. Decomposition of 8-bit integer
图2. 8比特整数的分解
2.2. 混沌序列发生器
读入彩色明文图像PI,其大小为
,计算所有颜色分量值之和,并根据(3)计算特征量s,因此s与明文图像信息高度相关,明文图像最小的改变,均会引起s的变化。
(3)
其中,
表示求余数,
表示求和。选取参数
,取初值
,迭代斜帐篷映射,得到序列长度为
的混沌序列。去掉前
个过渡点,记T为剩下的长度为2M的序列。利用公式(4)量化得到新的伪随机灰度值序列:
(4)
通过(4)量化得到的结果将使得
中的值属于
,
中的值属于
,分别作为加密算法中M行约瑟夫遍历的起点和步长。
设置步长
,初始值为
,用4阶龙格–库塔法求解变型Chen混沌系统(2)的数值解,迭代
次,将前400个点为过渡点去除,去除系统的过渡效应,使序列具有更好的混沌特性,产生的4个混沌序列记为
。图3为系统(2)在上述参数值条件下的相图。
为验证序列的随机性,取各序列的前5000个点,分别计算出序列的自相关系数与序列间的互相关系数,得出图4、图5的自相关系数图和互相关系数图。
理想的伪随机序列延迟各阶的自相关函数近似
函数,即除了在0处函数值接近1外,其他位置的函数值均很接近0;一个多维混沌系统的不同状态值序列的延迟各阶的互相关函数应维持在零的微小区间内。由图4与图5可知,原始的混沌序列的自相关性和互相关性都不符合理想的伪随机序列的要求。为得到具有更好随机性的序列,对序列进行了如(5)的改进,得到的新序列的自相关图与互相关图如图6、图7所示,其中
返回不小于x的最小整数。对比发现,改进后序列具有更好的相关性性能与伪随机性。
(5)




Figure 4. Sequence’s autocorrelation diagram
图4. 序列自相关图



Figure 5. Sequence’s cross correlation diagram
图5. 序列互相关图




Figure 6. Improved sequence’s autocorrelation diagram
图6. 改进后序列自相关图
NIST SP800-22给出了15种检测方法检验用于加密系统的比特序列的随机特性 [18] 。各检验结果的P值若均大于0.01,则认为测试序列是随机的。基于以上改进后的序列,根据SP800-22的检验,结果如表1所示,15种监测得到的测试值均大于0.01,说明改进后的序列具有较强的随机性。



Figure 7. Improved sequence’s cross-correlation diagram
图7. 改进后序列互相关图

Table 1. Test results of random sequence SP800
表1. 随机序列SP800检验结果
3. 加密方案
加密算法包括置乱和扩散两个过程。置乱是指图像的像素点位置变换,但每个像素点的值保持不变;扩散指的是不改变像素点的位置,而是通过改变像素点的颜色分量值,使得任一像素点的颜色信息尽可能多地改变其他像素点的颜色值。本文所设计的加密算法将置乱和扩散算法融合在一起,使得任一像素点的颜色分量信息隐藏在尽可能多的其他像素点中。加密算法的外部密钥包括斜帐篷映射的初始值
和参数
、变型Chen混沌系统的初始值
以及指定整数值
,具体算法描述如下。
步骤1. PI的
分量分别记为二维矩阵
,大小均为
。将
拼贴成一个M行3N列的矩阵
。
步骤2. 以斜帐篷映射量化后的混沌序列
为约瑟夫遍历算法的起始点,
为约瑟夫遍历算法的步长间距,对矩阵
的各行进行约瑟夫遍历置乱。置乱后的矩阵记为
。
步骤3. 将变型Chen混沌系统改进后的序列
根据(6)拼成一个新的混沌序列U,长度为3MN:
(6)
将
组成一个新的混沌序列V,长度为3MN,并进行量化,得到一个伪随机灰度值序列V,长度为3MN,用公式(7)进行量化,得到一个伪随机矩阵V:
(7)
步骤4. 将
重新分割成三个大小为
的矩阵
,分别将其拉直成长度为MN的灰度值序列向量
,分裂其高四比特序列和低四比特序列,分别记为
,长度均为MN,对应关系如公式(8):
(8)
将
和
分别从左至右拼接组合为高位比特序列
和低位比特序列
。
步骤5. 引入密钥流U对高位比特序列
和低位比特序列
随机交换。首先,对U进行升序排序得到排序后的位置索引序列ind。通过ind交换
和
的元素,计算方法按照公式(9),得到的高位比特序列和低位比特序列记为
和
。
(9)
步骤6. 通过公式(10)组合比特平面得到8比特的灰度值序列SI:
(10)
步骤7. 对序列SI实施扩散操作(11),初始值
为0至255之间的任意整数。
(11)
经过扩散操作后得到密文图像向量
,将C分割成长度相等的部分
,并将其全部转换为M行N列的二维矩阵,得到彩色密文图像的三颜色分量。
至此,加密过程结束,可以由此得出最终的密文图像。加密过程流程图如下图8所示。

Figure 8. Flowchart of encryption process
图8. 加密过程流程图
解密过程即是上述加密算法的逆过程,由密钥
即可无失真解密还原明文图像。
4. 仿真结果与性能分析
4.1. 仿真结果
该实验使用配置环境为macOS Monterey 12.6.3,Intel Core i5 CPU,1.6 GHz的计算机在Matlab R2020a平台上对所提出的图像加密算法进行仿真。
分别用Lena、strawberries、peppers作为实验图像(如图9(a)~(c)所示)。加密得到的密文图像如图9(d)~(f)所示。经过解密,得到图9(g)~(i)。
4.2. 性能分析
4.2.1. 统计特性分析
1) 直方图分析
图像的直方图描述了一幅图像的像素灰度值的分布情况。一个安全性能优良的加密算法应该满足密文图像的直方图近似服从均匀分布。
以Lena图像为例,图10(a)~(f)分别是原始明文图像三颜色的图像矩阵加密前后的灰度直方图。由图10可见,明文图像的直方图非平坦,具有一定的分布规律,而密文图像的直方图是平坦均匀的,攻击者很难通过直方图统计分析获得明文图像有关的信息。
从数值上,可以使用
统计量(单边假设检验)来衡量明文图像和密文图像在检验上的区别。对于灰度等级为256的灰度图像而言,假设其直方图中每个灰度值的像素点频数
服从均匀分布,即其理论分布数
,则
(12)
(a) 明文图像R分量 (b) 明文图像G分量 (c) 明文图像B分量
(d) 密文图像R分量 (e) 密文图像G分量 (f) 密文图像B分量
Figure 10. Histograms of three color components
图10. 三颜色分量的直方图
服从自由度为255的
分布。给定显著性水平
,使得
(13)
则
时接受假设
,认为二者有显著差异。这里取显著性水平
,有标准值
。
以Lena图像为例,计算明文图像和密文图像各三基色图像的
统计量的值,如下表2所示。明文图像各颜色分量的
统计量的计算值明显大于标准值,而密文图像的计算值小于标准值,可以认为密文图像近似均匀分布。

Table 2. Test results of Lena histogram χ 2
表2. Lena直方图
检验结果
2) 相邻像素相关系数分析
明文图像的相邻像素间具有较高的相关性,经过安全性较高的加密系统加密后的密文图像的相邻像素间应呈现较低的相关性。图像在水平、垂直、正对角和反对角方向的相邻像素点之间均可以计算出相关系数。设从需要考察的图像中任取
对相邻的像素点,记它们的灰度值为
,则
的相关系数计算公式如(14)所示:
(14)
以Lena明文图像为例,按照公式(14)分别计算明文图像和密文图像各方向的相关系数,具体结果如表3所示。

Table 3. Correlation coefficient of Lena images in all directions
表3. Lena各方向图像相关系数
由表3可知,明文图像相邻像素点的相关性很强,而密文图像相邻像素点的相关性接近于0,近似无关。以Lena图像的R分量为例,将其各方向的相邻像素的灰度值做散点图可视化,可以发现同样的规律。明文图像相邻像素点的灰度值聚集在对角线附近,两个灰度值之间的线性回归效果非常显著;密文图像相邻像素的灰度值散点图分散,均匀分布,说明两者之间近似无关。四个方向的相邻像素灰度值的分布可视化如图11所示。图11更加直观地呈现出Lena图像在加密前相邻像素间的各方向相关系数有明显的线性相关关系;在加密后,这种关系被打破,无法从密文图像中轻易获取有效信息。
(a)
(b)
Figure 11. Distribution of adjacent pixel values in each direction of R component of Lena plaintext image (a) and ciphertext image (b)
图11. Lena明文图像(a)和密文图像(b)的R分量各方向相邻像素值分布
3) 信息熵
信息熵是随机性最重要的特征之一。信息熵反映了图像信息的不确定性,图像信息熵越大,不确定性越大,可视信息越少 [19] 。图像信息熵的计算公式如(15)所示:
(15)
其中,L为图像的灰度级数,
表示灰度值i出现的频率。对于
的灰度完全随机图像,信息熵H的理论值为8。计算明文图像和密文图像各R、G、B分量及其相应密文图像的信息熵,计算结果列于表4中。从表4结果可以看出,密文图像各分量的信息熵值都非常接近理论值8,而各个明文图像的信息熵与理论值均有明显差别。

Table 4. Information entropy results
表4. 信息熵结果
4.2.2. 密钥空间分析
密钥空间是评估加密算法能否抵抗蛮力攻击的一个重要的指标。一般要求密钥空间大于2100 [20] 。对于本文所采用的加密系统,如只考虑斜帐篷映射的初值和参数以及变型Chen超混沌系统初值作为密钥,
的选择可能性至少为1015,
的可能选择至少为1012,所以加密算法的密钥空间大小可达到
,大于2259,这么大的密钥空间足以抵御暴力攻击。
4.2.3. 密钥敏感性分析
密钥敏感性分析旨在分析当密钥发生微小变化时,加密同一明文图像得到的两个密文图像的差别情况。如果两个密文图像具有显著差别,则称该图像密码系统的密钥敏感性强;如果两个密文图像的差别较小,则称密钥敏感性差。良好的图像密码系统应具有较强的密钥敏感性。该特性可以利用像素变化率(NPCR)和归一平均变化率(UACI)来反映。NPCR和UACI的计算公式如(16)~(17):
(16)
(17)
其中,
分别是两个差别微小的明文图像加密得到的密文,M和N分别表示图像的宽度和高度。对于两个随机图像,8位灰度图像的NPCR和UACI的期望值为:
,
[17] 。
对于密钥K,随机从其密钥空间中选取100个值,分别改变
的值,
的改变量为10−15,
改变量为10−12。使用改变前后对密钥加密同一明文图像,分析得到的两个密文图像的差异,计算他们的NPCR和UACI的平均值。所得结果见表5,从表5结果来看,密钥敏感性NPCR和UACI结果均非常接近理论值,这说明本文所提出的加密方案具有强密钥敏感性。

Table 5. Key sensitivity analysis result of encryption system (unit: %)
表5. 加密系统密钥敏感性分析结果(单位:%)
4.2.4. 明文敏感性分析
明文敏感性是图像加密系统抵御差分攻击性能的一个重要指标。使用相同密钥,对仅有微小差别的两个明文图像进行加密,得到两个相应的密文图像,比较这两个密文图像的差别。如果这两个密文图像的差别迥异,则称该图像密码系统具有良好的明文敏感性;如果这两个密文图像的差别比较小,则称该图像密码系统具有较弱的明文敏感性。
为了测试所提出的图像加密系统的明文敏感性,即判断该加密系统是否具有抗差分能力,随机选择原始彩色明文图像中的1个像素点,改变它的像素值,变化的量为1,得到与原始明文图像差别微小的明文图像,借助给定的密钥使用图像加密系统对这两个图像进行加密,得到两个密文图像,计算一组NPCR和UACI的值。每次试验仅改变原始图像中单个颜色分量的一个像素值,重复上述试验100次,最后计算100组NPCR和UACI的平均值,计算结果如表6所示。表6结果非常接近期望值,这说明此加密系统具有良好的明文敏感性。

Table 6. Plaintext sensitivity analysis results (unit: %)
表6. 明文敏感性分析结果(单位:%)
5. 结束语
本文提出一种动态的约瑟夫遍历方法,控制图像每行的约瑟夫遍历的起始点与间距的密钥流由斜帐篷映射生成,密钥流与明文图像的像素值高度相关,可以很好地抵御差分攻击,一轮加密即可实现很好的性能。加密算法将像素的颜色分量值的高四位比特平面和低四位比特平面实施随机交叉置换,很好地隐藏了图像信息。为了进一步增强加密算法的安全性能和加密效果,加密算法还在像素层次上做了一次像素值的扩散操作。加密算法采用按位比特异或和加法模运算相结合的模式,既保证了扩散过程的可逆性,也使得安全性能更好。结果表明,本文所设计的加密算法具有很好的安全性和加密性能,可以抵御蛮力攻击、统计分析攻击、差分攻击、选择明文和已知明文攻击等。
基金项目
论文研究资助项目为广东省大学生创新创业项目以及广东省基础与应用基础研究基金项目(No. 2023A1515030199)。
NOTES
*通讯作者。