复合Tent混沌系统在图像加密中的应用①
2022-11-22周衍庆
周衍庆, 葛 斌, 李 涵
(安徽理工大学计算机科学与工程学院,安徽 淮南 232001)
0 引 言
图像加密技术可以保证图像在网络中传输时重要信息不被泄露,是解决图像安全问题最有效的策略。在众多图像加密算法中,混沌系统因其具有伪随机性、初值敏感性、不可预测性等显著的特点,被普遍应用在图像加密算法中,用于密钥序列的产生,从而提高图像加密算法的安全性。文献[1,2]采用的传统映射迭代产生的混沌序列的随机性较低,容易被预测。文献[3,4]利用改进Sine映射生成的混沌序列的随机性得到提高,但生成的混沌序列与明文图像无关。文献[5]提出了一种比特置乱算法,导致全为0或全为1的像素点不发生改变,使得加密系统的安全性较低。文献[6]提出的基于比特位的置乱算法较为复杂,从而导致图像加密的效率较低。针对上述文献提到的密钥序列随机性低、密钥与明文无关和比特置乱限制等问题,提出了TLS混沌系统,通过复合Tent,Logistic和Sine映射,削弱混沌映射的周期性,有效提高混沌序列的随机性。利用TLS映射产生的混沌序列对明文图像的二进制序列进行比特置乱、比特位拼接和提取操作,在改变像素值的同时,实现像素位置的置乱;并通过与混沌序列进行按列异或,以及相邻像素异或的方法,实现像素的扩散,得到加密图像。
1 TLS混沌映射
TLS映射是在Tent映射的基础上,耦合了Logistic映射和Sine映射,提出的一个新的混沌映射。其定义如式(1):
(1)
式(1)中,控制参数μ∈(0,5],x0为序列的初始值;xi是通过该映射输出的混沌序列,xi∈(0,1]。由公式(1)可知,仅耦合Logistic映射与Sine映射时,生成的序列中出现负值,且控制参数的范围较小;再与Tent映射复合后,使参数范围扩大到(0,5],且产生的随机序列均为正值。TLS映射的分岔图如图1。
1.1 Lyapunov指数
Lyapunov指数(LE)是用来判断混沌系统中,有微小差别的两个初始值随时间变化所产生的两个运动轨迹间的离散程度的指标。一维系统xi+1=f(xi),当f(xi)可微时的LE定义为[11]式(2):
(2)
对于一维系统,只存在一个Lyapunov指数,若为正值则该系统为混沌系统。且该值越大,混沌系统的性能也越好。TLS混沌映射的Lyapunov指数,如图2。
1.2 NIST SP800-22测试
NIST SP800-22测试的提出,能较为准确的确定一个二进制序列是否具有随机性。NIST SP800-22测试包括15个子测试,每个子测试都能输出一个值,若每个输出的值均大于0.01,表明该序列具有较高的随机性。表1显示了每个测试获得的结果,表明TLS混沌映射生成的序列高度随机。
2 加密算法设计
2.1 加密过程
提出的加密算法具体步骤如下:
Step1:设灰度明文图像I,其大小为M×N,用二维矩阵C表示。将C中的像素均转换为八位二进制数,得到大小为M×8N的新矩阵C′。
Step2:对TLS混沌映射,根据等式(3)确定初始值x0,将初始值x0和控制参数μ代入公式(4),迭代M×N+1000次,生成长度为M×N+1000的序列l。为了消除初始迭代对序列随机性的影响,去掉l的前1000个值,得到序列l″,长度为M×N。
x0=floor(sum(I)/(255×M×N)×104)/104
(3)
l(i+1)=4μ(0.5l(i)-l(i)2)+
(1-μ)sin(π(1-l(i)))+2μl(i)
(4)
l′(i)=l(1001:length(l(i)))
(5)
Step3:根据等式(6)对序列l′处理,得到长度为M×N的序列s。其中round为四舍五入函数。
s(i)=mod(round(l′(i)×100),8)
(6)
Step4:利用比特置乱规则,对矩阵C′进行比特位重组:对每个二进制序列,取其3到6位移动到前四位上,组成新的二进制序列,从而得到矩阵G。
Step5:根据序列s,对二进制序列矩阵G的每个序列,向右进行循环移位得到二进制序列矩阵G′。
Step6:根据等式(7)得到序列l″,将序列l″转换成M×8N的矩阵Q,与G′进行矩阵拼接,得到十六位二进制序列矩阵Q′。再将其转换为十进制矩阵Q″,并利用混沌序列l′,对按列排序后的矩阵Q″进行全局置乱得到矩阵R。
l″=mod(ceil(l′(i)×103),256)
(7)
Step7:将矩阵R再次转换为二进制矩阵,提取每个二进制序列的前八位,并转换为十进制数,构成新的像素矩阵。
Step8:将参数μ1,μ2,初值x1,x2,代入公式(4)中,分别获得混沌序列l1和l2
Step9:对Step7中的得到像素矩阵,取其奇数列与序列k1对应值进行异或,偶数列与序列k2对应值进行异或得到矩阵R′,然后将二维矩阵R′转换为一维矩阵R″,按等式(9)进行相邻像素异或的二次扩散操作,得到一维矩阵V,异或后将一维矩阵V转换为M×N的二维矩阵,得到二次扩散后的密文矩阵V′。
(8)
V(j)=
(9)
2.2 解密过程
解密过程使用的密钥与加密过程的密钥相同,是加密过程的逆过程。图像的解密过程,是先通过异或解密扩散过程;再进行像素位置置乱、循环移位和比特重组的逆操作,即可无失真的从密文中恢复明文图像。
3 实验结果分析
3.1 仿真结果
测试图像为大小512×512的Lena图像,评估测试使用以下密钥来实现:第一阶段,TLS混沌系统的控制参数μ0=3.7,初始值x0=0.3711;第二阶段,TLS混沌系统的两个控制参数和初始值分别为:μ1=4.0,x1=0.1;μ2=3.99,x2=0.8。Lean原图、加密图像和解密图像分别如图7(a)-7(c)。
3.2 灰度直方图分析
直方图可以反映像素的分布情况。若图像灰度值分布较均匀,表明该加密算法能很好的隐藏明文信息,有效抵抗统计攻击。Lena图像加密前后的直方图如图8所示,其中,密文图像的直方图分布均匀,因此所提出的图像加密能很好的抵抗统计攻击,攻击者几乎无法从直方图中获得有效信息。
3.3 差分攻击分析
差分攻击是指攻击者对明文进行微小改变后,采用相同的加密系统进行加密,分析得到的相应密文之间的差别。通常采用像素变化率(NPCR)和归一化平均变化强度(UACI)两个指标,评估加密算法是否能抵抗差分攻击,定义如下:
(10)
(11)
其中M×N为图像大小。O1表示密文,O2表示对只改变一个像素点的明文,加密所产生的密文。O1(i,j)、O2(i,j)表示密文图像在(i,j)处的像素值。若O1(i,j)=O2(i,j),则O(i,j)=0;否则O(i,j)=1。重复多次改变一个像素值,并按相同的方法进行加密,获得得到多组NPCR和UACI,计算其平均值见表2。
由表2可知,通过提出的加密算法,得到的值与理论值相接近,且明显优于其他文献中提出的算法,表明该算法的抵抗差分攻击的能力得到有效提高。
3.4 相邻像素相关性分析
明文图像相邻的像素之间具有很强的关联性,彼此的灰度值相差较小,攻击者很容易通过分析相关性来攻击图像。因此需要提出有效的方法,降低图像相邻像素间的相关性,来防止攻击者通过这种攻击获取图像信息。相邻像素相关性系数定义为:
(12)
(13)
(14)
(15)
其中,U个相邻像素对是随机选择的;z和w分别表示两个相邻像素的灰度值;cov(z,w)表示这两个像素灰度值的协方差;D(z)和D(w)分别为z和w的方差。
如表3所示,对比其他文献中的加密算法,提出的加密算法得到的密文图像,各方向上的相邻像素的平均相关系数更接近于0,表明该算法的加密效果更好。
表3 明文和密文各方向的相邻像素间的平均相关系数
4 结 语
提出了一种基于 复 合 Tent映 射 的 比 特 级 图 像 加 密算法。通过复合Tent、Logistic、Sine映射获得TLS混沌映射,实验结果表明,TLS混沌映射解决了混沌分布不均匀、混沌参数范围较小的问题,提高了混沌序列的随机性。在此基础上,设计了比特级加密算法。通过比特置乱、比特位拼接、随机置乱,实现图像像素的改变和置乱,解决了比特置乱时位数限制的问题;再利用混沌序列分别与不同列的像素进行异或,以及相邻像素异或,实现扩散,从而得到最终密文。仿真结果表明,该算法能够抵抗差分分析和统计分析攻击,具有较好的加密效果。