基于指数-余弦离散混沌映射的图像加密算法研究

2022-05-31 06:19刘思聪李春彪李泳新
电子与信息学报 2022年5期
关键词:明文加密算法密文

刘思聪 李春彪 李泳新

①(电子科技大学生命科学学院 成都 610054)

②(江苏经贸职业技术学院智能工程学院 南京 210045)

③(南京信息工程大学人工智能学院 南京 210044)

1 引言

伴随5G时代与后疫情时代的到来,越来越多的人际交流迁移到了线上。出于对个人隐私的保护及确保信息安全,人们对于图像加密的需求也越来越大。目前的图像加密算法普遍存在加密过程复杂、耗时较长等缺点。对一些要求能够进行实时加密传输的场合,现有加密算法并不能满足要求。随着Matthews[1]将混沌系统应用于信息加密领域,混沌加密算法引起了研究人员的注意,已有多种1维混沌系统应用于信息加密[2–4]。1维混沌系统多数具有迭代速度快、实现方法简单等特点,但是由于1维混沌系统的系统控制参数较少,相空间轨道分布较为单薄,极易受到相空间重构等方法的攻击,从而导致密文被恶意破解。研究者为了克服1维混沌系统的缺点,提出了一系列的改进方案。例如:有研究者将1维混沌系统的多个控制参数间进行耦合操作,使得整个系统的混沌性质变得更加复杂。也有研究者将多个1维混沌映射整合为1个系统,整个加密过程中在不同混沌系统间进行切换或级联操作[5–7]。上述方法可使1维混沌系统具有更好的迭代效率和不可预测性。与此同时,也有研究者尝试通过构建复数域上的1维混沌系统来对信息进行加密,以期获得更好的混沌特性与加密效果[8]。上述手段提高了1维混沌系统的信息加密强度,但受限于1维混沌系统自身的结构与参数特点,其信息加密强度仍然有待提高。目前,研究者将焦点聚集于高维混沌系统以及混沌系统的加密应用上,部分高维混沌系统具有更高的参数维度,其相空间的轨道分布更加复杂,初值敏感性更强,整个系统的混沌映射结构也更加复杂。通过对高维混沌系统的研究,可以获得更好的加密效果[9]。

Gan等人[10]基于3维Chen混沌映射系统,提出了一种3维比特平面重排列的彩色图像加密算法。利用该算法加密后的图像,可以有效降低彩色图像(红,绿,蓝,Red Green Blue)3通道间的像素相关性,并且整个加密过程具有更大的算法特异性。Yin等人[11]在4阶超混沌系统的基础上,利用广度优先搜索策略,构建了一种新的图像加密算法。该算法提高了加密的安全性和灵敏度。Luo等人[12]在baker映射及Logistic映射的基础上提出了一种新的混沌图像加密算法,该算法通过2维baker映射来控制Logistic映射的参数空间选择,从而使得Logistic映射的混沌行为更加复杂。通过使用一次置乱-扩散策略,该算法能够有效地提高图像加密的有效性与抗攻击能力。Khan等人[13]通过整合多个混沌映射系统,构造出了一个新型的图像加密算法,该算法构建了一个图像加密流,首先通过2维Henon映射来对原始图像的像素点进行空间置乱操作,之后再利用1维圆映射来进行混沌扩散操作。经过上述加密步骤后,得到了加密图像数据,通过对加密图像数据进行有效性分析,表明该算法具有较好的加密性能和抗攻击能力。Ye等人[14]利用2维正弦映射构造了一个混沌参数空间,并采用置乱-重写-扩散的加密策略,提出了一种新的混沌加密算法。该算法对传统加密算法中彼此分离的两个加密步骤:置乱与扩散过程进行了整合,从而提高了算法的抗攻击能力。同时该算法在像素位置变换与对应像素点灰度值变换之间建立起了联系,从而增强了算法的加密效果。Liu等人[15]基于正弦混沌映射,提出了同步置乱-扩散加密算法,该算法通过生成动态密钥流和索引的方法,将图像的置乱与扩散过程整合在一起,提高了图像加密效率的同时也加强了算法的敏感性。

但是上述研究中所提混沌映射系统,其动力学特性较为单一,在面对基于深度神经网络的新型攻击算法时,极易遭到攻击,从而导致加密失败。基于此,为了提高混沌映射系统的动力学复杂度,本文通过向1维余弦混沌映射系统中引入非线性指数项和高次幂项来对1维混沌系统进行维度提升。被引入的非线性指数项和高次幂项作为混沌扰动源来对余弦混沌映射的迭代过程进行扰动。通过上述方法,构建出了一个新的2维指数-余弦混沌系统。对本系统的混沌特性进行研究,发现本系统具有更加复杂的混沌特性,相空间轨道分布复杂。在本系统的基础上,提出了图像加密算法。理论分析与仿真实验发现该算法具有较强的鲁棒性和较好的加密效果。

2 2维混沌映射模型及基本动力学分析

2.1 系统方程

1维cosine混沌映射作为一种经典的混沌映射系统,具有控制参数少、易于实现等优点[9],尽管1维cosine系统具有混沌特性,但是该系统混沌映射构造相对简单,序列迭代排序方式较易被预测。为了提高系统的混沌映射结构复杂度,可以通过向低维混沌系统中引入非线性扰动源的方式来对系统的映射维度进行提升。维度提升后的混沌系统具有更多的控制参数,更复杂的混沌映射结构,序列迭代排序方式变得更加难以预测。本文提出一种新的2维离散混沌映射,该映射的数学模型为

2.2 不动点分析

其中,det为解线性方程组产生的一个算式,取值为标量。J为雅可比矩阵,E为单位矩阵,tr为矩阵的迹。系统式(1)在固定参数a=0.4, b=1.75,c=0.85下,不同初始值对应的特征值分布如图1所示。其中图1(a)中起振点在[1,1.5]范围内变化。图1(b)中起振点在[0, 0.2]范围内变化。其中绿色代表特征值λ1,梅红色代表特征值λ2,系统式(1)部分特征值分布在单位圆外,这说明系统式(1)是不稳定的。

图1 动力学系统在不同初始值下特征值分布图

2.3 基本分岔行为分析

固定初始值 (x0,y0)=(0.74,1.38),设定参数a=0.4,c=0.85,当参数b取值范围在[1, 2]时,随着参数b的增大,系统依次出现周期、混沌等不同动力学振荡行为。如图2所示,当b在[1, 1.5]时系统捕获到周期解,当b在[1.624, 1.965]时系统具有混沌动力学行为,当b在[1.966, 1.979]时有一处周期窗清晰可见。选取动力学系统部分典型相轨展示在图3中,系统存在多种振荡行为如表1所示。

表1 不同参数b对应的李雅普诺夫指数谱及吸引子类型

图2 李雅普诺夫指数谱和分叉图

如图3所示,对比图3(a)—图3(c)可知参数b可有效修正系统遍历性,伴随着参数b的增加,动力学系统遍历性增强。图3(d)对应上述系统处于周期窗时吸引子运动轨迹。式(1)锁定控制参数为a=0.4,c=0.85 ,(x0,y0)=(0.74,1.38),当b取不同参数时动力学系统典型相轨展示在图3中。其中参数b的变化均在图中标注。 其中图3(a)(b)(c)处于混沌状态,(d)处于离散周期点。

图3 系统动力学系统典型相轨图

3 指数-余弦离散混沌图像加密算法

3.1 加密算法框架设计

为了能够利用指数-余弦离散混沌(Exponentcosine Chaotic mapping, 2D-ECs)系统对图像信息进行混沌加密操作,首先对图像数据进行RGB多通道提取,接着对抽取出的单通道图像数据进行混沌加密,之后再将加密后的单通道图像数据重写回图像当中,进而完成对图像数据的加密。在对图像数据进行混沌加密时,采用了“置乱-扩散-置乱”的加密策略。

3.2 第1轮置乱加密

步骤1 在对图像数据进行置乱操作时,首先利用2D-ECs混沌系统生成离散数据序列 (xn,yn),设置初始值(x0,y0)=(0.74,1.38), 控制参数(a,b,c)=(0.4,1.75,0.85)。 迭代轮次为M×N+10000,其中M,N为图像的宽、高值。为了避免混沌序列在迭代早期存在的单值性与周期性,因此将序列中前8000点数据废弃不用。在完成上述操作后,对生成的离散数据序列 (xn,yn)进行去重处理,将去重后的xn序 列作为图像置乱的行坐标,yn序列作为图像置乱的列坐标,对原始图像进行空间置乱操作。具体置乱操作如式(5)所示

步骤2 在完成上述操作后,将从步骤1中获得的置乱后图像数据沿列方向展开为1维序列数据。再利用由初始值 (x0,y0)=(0.15,1.7)与控制参数(a,b,c)=(0.4,1.75,0.85)构成的2D-ECs混沌系统生成的用于第1轮加密的离散加密序列,来对空间置乱数据进行加密。2D-ECs系统生成的离散加密序列长度为MN+10000。为了避免混沌序列在迭代早期存在的单值性与周期性,因此将序列中前8000点数据废弃不用。

步骤3 将步骤2 中获得的离散加密序列(xn,yn)与 坐标置乱后的图像数据(Q)进行双螺旋加密。具体加密步骤如式(6)所示

3.3 扩散加密

为了使加密后的数据具有较好的抵抗选择明文攻击的能力,需要对置乱加密后的密文数据进行扩散加密操作。通过该操作,可以使加密系统对于明文图像极微小的变化变得非常敏感。即使只更改明文图像中一个像素的数据值,也会使得整个加密数据发生较大的变化。具体操作步骤如下所示:

步骤1 首先计算待加密明文图像的平均像素值M,再对该平均值进行归一化操作,使其处于0~1的取值范围内。再将该归一化后的像素均值M′作为2D-ECs混沌系统的x0初始值,并设Ky0初始值为1.5,此时控制参数(a,b,c)=(0.4,1.75,0.85)。经过MN+10000轮迭代后,抛弃前8000个数据点,获得扩散序列Kxn,Kyn。

步骤2 将经过置乱加密后的图像数据(Q′)沿列方向展开为1维序列数据。再与步骤1中所获得的扩散序列进行双螺旋扩散加密操作。具体扩散加密公式如式(7)所示

3.4 第2轮置乱加密

为了使图像的加密效果更佳,在完成了上述置乱与扩散操作后,再对加密后的数据进行第2轮空间置乱操作。

步骤1 在对图像数据进行置乱操作时,首先利用2D-ECs混沌系统生成离散数据序列 (xn,yn),设置初始值(x0,y0)= ( 0.74,1.38), 控制参数(a,b,c)=(0.4,1.75,0.85)。迭代轮次为MN+10000,其中M,N为图像的宽、高值。为了避免混沌序列在迭代早期存在的单值性与周期性,同时为了增强算法空间的随机性,因而将序列中前9000点数据废弃不用。在完成上述操作后,对生成的离散数据序列(xn,yn)进行去重处理,将去重后的xn序列作为图像置乱的行坐标,yn序列作为图像置乱的列坐标,来对原始图像进行空间置乱操作。具体置乱操作如式(5)所示。通过上述步骤,即可完成第2轮空间置乱加密操作。本文系统的加密算法流图如图4所示。

图4 2D-ECs混沌加密系统加密算法流图

3.5 算法时间复杂度分析

图像加密算法的时间复杂度是衡量加密算法性能的重要指标之一。通过对算法的时间复杂度进行分析,可以从理论上说明图像加密算法的加密效率。一个好的加密算法应该尽可能地花费较少的时间成本来完成对数据的加密。根据上文所述算法流程,可知文中算法不存在循环嵌套等复杂程序运算过程,因此时间复杂度为O(n)。而目前已有的一些混沌加密算法[11–13],因存在较为复杂的循环嵌套,因此算法时间复杂度远大于O(n)。具体时间复杂度计算结果如表2所示。

从表2可知,本文所提加密算法具有更小的时间复杂度,其算法计算效率更高。

表2 算法时间复杂度分析

4 仿真结果与安全性分析

为了验证本文提出的2D-ECs混沌系统加密算法的加密有效性、鲁棒性与安全性,从密钥空间大小,差分攻击分析,自相关性分析,信息熵,算法鲁棒性等方面进行了实验仿真,并对仿真结果进行了分析。上述所有分析均在如下计算平台上完成,平台具体配置为:CPU AMD R7 3700, 16 GB内存,GPU Nvdia RTX 2060 6 G,操作系统为Windows 10专业版。所有程序均由Python语言编写。

4.1 仿真结果

利用2D-ECs混沌加密算法对如下标准灰度图像进行加密操作:(1)Cameraman图像;(2)Lena图像;(3)Boat图像。上述图像尺寸均为200像素×200像素。加密结果如图5所示。

由图5可知,经过2D-ECs混沌系统加密算法加密后的图像像素之间相关性几乎消除,密文图像像素值分布均匀,密码破译难度较大。

图5 2D-ECs混沌加密图像及直方图信息

4.2 密钥空间分析

密钥空间大小对于加密算法的加密安全性具有较大的影响。密钥空间越大,密码破译所花时间越长。当密钥空间足够大时,密文破译所需时间将呈指数级增长。

本文所设计的2D-ECs混沌系统加密算法采用随机密钥生成方式。加密算法所需的密钥为

Key={x0, y0,a,b, c,Ky0,Ka,Kb,Kc,StartPosition,StartPositoin2}。 其中x0,y0为第1轮置乱时所用的系统初始值,a,b,c为 系统控制参数,K y0为扩散加密时所用初始值,K a,Kb,Kc为扩散时所用系统控制参数,StartPosition,StartPositoin2为两轮置乱操作时参数序列的起始值。x0,y0,Ky0取值由式(8)计算得到

控制参数a,b,Ka,Kb采用随机取值的方式从a,Ka ∈[0, 0.4],b,Kb ∈[0,1.7],c,Kc∈[0.6,0.9]随机抽取。随机取值间隔为0.0 1。StartPosition,StartPositoin2 取值采用随机取值的方式,从[3000,12000]之间随机抽取。综上所述,可知该算法具有较大的密钥空间,可以有效抵御穷举式破译攻击。

4.3 差分攻击分析

差分攻击是通过分析明文细微差异所导致的密文改变程度,来对加密算法进行攻击的一种破译方法。为了分析2D-ECs混沌系统加密算法对于差分攻击的抵抗能力,本文通过改变明文图像中任意一点像素值的方式来观察两次加密后的密文图像间的差异程度。如果差异程度较大,则说明该算法能够有效地抵御差分攻击。本文采用计算像素数变化率(Number of Pixels Change Rate, NPCR)以及统一平均变化强度(Unified Average Changing Intensity,UACI)的方式来衡量密文图像之间差异程度的大小。设I1,I2为只具有一像素值差异的两幅待加密明文图像,这两幅图像之间的NPCR值与UACI值,可通过式(9)进行计算

对于任意NPCR值而言,其理想值为(255/256)×100%=99.6094%,对任意UACI值而言,其理想值约为33.4635%[11]。本文算法对不同灰度图像分别计算NPCR与UACI值,计算结果如表3所示。

通过表3可知,同文献[12–14]相比,本文提出的2D-ECs混沌系统加密算法的NPCR值与UACI值更加接近理想值,故本文所提加密算法对于明文图像像素值的变化非常敏感,可以有效地抵御差分攻击。

表3 NPCR,UACI参数值(%)

4.4 自相关分析

加密效果良好的图像加密算法应当使加密后的密文图像具有白噪声的特点,这样可以使密码破译者无法从加密图像中截获有用的信息。自相关系数是用来衡量图像像素点间相关性的一个重要指标。自相关系数越大,说明像素点间关联程度越大,反之,则表明像素点间关联程度越小。本文分别对Cameraman图像、Lena图像、Boat图像及其加密后的密文图像计算了自相关系数。

从上述图像中随机选取N对相邻像素点,并记其灰度值为 (u,v) ,则这N对相邻像素点间的相关系数可以通过式(10)来进行计算。具体计算公式为

不同图像的自相关系数计算结果如表4所示。从表4可知,不同明文图像,其6邻域方向均具有较强的自相关性,而通过本文算法加密后,各方向上的自相关性很弱,说明本文加密算法可以很好地隐藏明文中的图像信息。

表4 自相关系数

4.5 信息熵分析

信息熵是衡量信息中不确定性大小的一个重要指标。信息熵越大,说明信息的不确定程度越高,信息的加密效果越好。理想信息熵的值为8[14],越接近该值,说明图像的加密效果越好。信息熵计算公式如式(11)所示

其中,mi表 示第i位 的像素的值,p(mi)表示像素值为mi的 概率,N表示在密文图像中所有的像素个数。

本文中所用灰度图像的信息熵计算结果如表5所示。

表5 图像信息熵

4.6 算法鲁棒性分析

为了破坏正常的图像加密传输过程,恶意密码破译者可能会对截获到的密文数据进行数据篡改或向密文中添加干扰信息,从而导致加密图像无法被正常解密。因此,对于加密算法而言,应当对密文数据的缺损具有一定的容忍度,当密文数据出现一定程度的缺失或损坏后,也能正常地进行解密操作。这种能力称为算法鲁棒性。

为了验证本文所提算法的鲁棒性,对加密后的灰度图像数据随机进行像素点移除,并观察是否能够正常地进行解密操作。实验仿真结果如图6所示。

通过图6可知,在密文数据损失10%, 30%时,本文算法仍然能够正常地进行解密操作,并且明文数据的有效信息并未严重丢失。当密文数据损失达到50%时,解密后的数据仍然保留一定程度的有效信息。说明本文所提算法具有较好的算法鲁棒性。

图6 随机像素点移除

4.7 彩色图像加密

由于本文所提算法主要针对图像像素值进行加密,因此该算法也可对彩色图像进行加密。在对彩色图像进行加密时,首先需要将图像分离为R, G,B 3通道值,之后分别针对各通道数据进行混沌加密,加密完成后,再将加密后的R, G, B通道值进行整合,进而生成加密图像。加解密图像的处理结果如图7所示。

图7 彩色图像加解密效果图

5 结论

本文通过向1维cosine混沌映射系统中引入指数及高次幂项的方式,构造出了一个具有混沌特性的2D-ECs 2维混沌系统。通过对该系统利用Lyapunov指数计算,分岔图及空间相图绘制等方法进行研究后发现,该系统具有复杂的相空间结构,说明该系统具有非常复杂的混沌行为。在此基础上,本文设计一种基于2D-ECs混沌系统的图像加密算法。本算法具有密钥空间大、加密效果好等特点。仿真实验表明,该算法可以有效地抵御穷举式以及差分式攻击。同时该算法可以有效地消除明文图像中的像素相关性,并且对于明文中像素间的微小变化异常敏感,极微小的变化也可以使加密后的数据完全改变。综上所述,本文所提基于2D-ECs混沌系统的图像加密算法具有较高的密码安全性和较好的实际应用前景。

猜你喜欢
明文加密算法密文
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
基于DES加密算法的改进研究
基于网络报文流量的协议密文分析方法
密钥共享下跨用户密文数据去重挖掘方法*
DES加密算法的实现
基于整数矩阵乘法的图像加密算法
奇怪的处罚
奇怪的处罚
基于小波变换和混沌映射的图像加密算法