APP下载

基于共存吸引子的图像加密算法

2022-05-10施倩倩

关键词:明文加密算法密文

施倩倩,张 莉

(兰州交通大学 数理学院,甘肃 兰州 730070)

随着互联网技术的快速发展,网络通信逐渐成为人们日常交流的主要通信方式,在给人们生活带来很多便利的同时也存在着信息泄露的隐患,通讯安全问题就变得越来越重要.图像信息作为通信信息的一个方面,具有与文本信息截然不同的特殊属性,如数据量大、数据间相关性强、数据冗余度大等.所以一般的数据加密标准(DES)、高级加密标准(AES)和RSA加密算法等就不再能够满足数字图像加密的安全性要求.混沌系统凭借其随机性、难以预测性、对初值与参数值的高度敏感性等天然优势被广泛应用于密码学中.因此,学者们提出了许多基于混沌系统的图像加密算法[1-7],如曾祥秋等[4]研究了一种基于改进的Logistic 映射的混沌图像加密算法,文献[5]设计了一种基于一维混沌映射的高效图像加密算法,马聪等[6]基于L-K双混沌系统提出了一种彩色位级图像加密算法,文献[7]设计了一种基于3D-LSCM混沌系统的图像加密算法.

混沌图像加密算法的安全性主要依赖于所使用混沌系统的复杂程度.然而,现有的混沌映射可能在不同方面表现出各种缺陷,如由于精度的原因,可能在迭代过程中出现混沌退化的现象,或者由于复杂度不够高,使得它们的轨迹很容易通过使用特定的技术被预测,又或是混沌范围比较窄或具有不连续的混沌范围,那么当参数受到某些外部因素的干扰时,混沌系统的混沌特性可能会被破坏.为了解决这些问题,笔者设计了一种基于共存吸引子的图像加密算法.自激吸引子的吸引盆与不稳定平衡点的任何开邻域都相交,隐藏吸引子则相反.具有隐藏吸引子的系统有很多,如没有平衡点的系统[8]、具有稳定平衡点的系统[9]以及有无限个平衡点的系统[10].由于没有系统的方法对隐藏吸引子进行具体定位,这使得攻击者很难破解基于具有隐藏吸引子系统的图像加密算法.因此,学者们提出了许多基于隐藏吸引子系统的图像加密算法[11-13].自激吸引子和隐藏吸引子共存的混沌系统比只含有单一吸引子的混沌系统具有更大的密钥空间和更强的随机性,更适合应用到图像加密中.然而,基于自激吸引子和隐藏吸引子共存混沌系统的图像加密算法的研究比较少.因此,对于基于自激吸引子和隐藏吸引子共存混沌系统的图像加密算法的研究很有必要.

本文中,笔者采用改进的Zigzag算法对明文图像的像素点位置进行置乱,并利用自激吸引子和隐藏吸引子共存混沌系统迭代产生的混沌序列,通过加取模运算对置乱后图像的像素值进行扩散处理.仿真结果表明,基于自激吸引子和隐藏吸引子共存混沌系统的图像加密算法能够有效地加密图像,并且安全性能较高.

1 系统的数学模型

由Rabinovich系统[14]变换得到如下的广义Lorenz系统:

图1 共存的自激和隐藏吸引子Fig.1 Coexistence of Self-excited and Hidden Attractors

(1)

其中x,y,z是系统的状态变量,a,b,c,d是影响系统处于不同状态的常数.令a=3.4,b=-0.5,c=6.8,d=1,通过数值仿真得到系统的混沌吸引子相图,如图1所示.其中,蓝色曲线为隐藏吸引子,初值为x0=0.3,y0=0.1,z0=0.6;紫色和绿色曲线为自激吸引子,初值分别为x0=-0.1,y0=0.001,z0=0和x0=0.1,y0=0.001,z0=0.通过计算得到系统(1)的Lyapunov指数值,分别为L1=0.234 7,L2=-0.020 7,L3=-5.614 0.由于系统(1)只有一个正的Lyapunov指数L1,并且所有的Lyapunov指数值和L1+L2+L3<0,所以系统(1)是混沌系统.

2 系统的动力学特性分析

2.1 对称性与耗散性

系统(1)在变换(x,y,z)→(-x,-y,z)下是对称的,即系统(1)是关于z轴对称的,并且该特征对所有参数保持一致.对于系统(1),有

(2)

因此,当系统参数满足-a-1-d<0时,系统(1)是耗散的.

2.2 平衡点稳定性

系统参数和初始值分别取a=3.4,b=-0.5,c=6.8,d=1,x0=0.3,y0=0.1,z0=0.6,然后令

(3)

解得系统(1)的平衡点为S0=(0,0,0),S1=(3.475 6,1.806 9,6.280 1),S2=(-3.475 6,-1.806 9,6.280 1).

在零平衡点S0将系统(1)线性化,得到Jacobian矩阵

(4)

其特征方程为

det(λI-J(S0))=λ3+(a+c+1)λ2+(a-ac-ad+d)λ-ad(c-1)=0.

(5)

2.3 分岔图和Lyapunov指数谱

从分岔图中能够直接观察到系统随参数的演化过程.当系统参数发生变化时,其运动状态将发生不连续的变化.Lyapunov指数主要用于描述系统的运动特征,其值在某一方向上的正负之和表示系统在一段时间内沿吸引子中相邻轨道方向的平均发散或收敛速度.

保持系统的参数和初始值分别为a=3.4,c=6.8,d=1,x0=0.3,y0=0.1,z0=0.6,让参数b∈[-7,0],此时系统的分岔图和Lyapunov指数谱分别如图2a和图3a所示.令b=-0.5,保持其他参数不变,并且让参数c∈[5,25]时,相应的分岔图和Lyapunov指数谱分别如图2b和图3b所示.从图2和图3可以看出,系统的混沌状态分布在一个大的参数范围,说明该系统有更强的随机性和更大的密钥空间,进而更有利于混沌密码学的应用.

a.b∈[-7,0]; b.c∈[5,25].图2 随参数变化的分岔图Fig.2 Bifurcation Diagrams with Parameters Variation

a.b∈[-7,0]; b.c∈[5,25].图3 随参数变化的最大Lyapunov指数谱Fig.3 The Maximum Lyapunov Index with Parameters Variation

2.4 谱熵复杂度

混沌系统的复杂度即混沌序列接近随机序列的程度[15].一般地,系统的复杂度越大,迭代生成的混沌序列越接近随机序列,在图像加密中应用也就越安全.因此,复杂度是测试序列随机性的一个重要指标.混沌序列的复杂度分为行为复杂度和结构复杂度.下面分别以谱熵(SE)、Lempl-Ziv(LZ)行为复杂度和C0结构复杂度算法对所提出的混沌系统的复杂度进行分析.保持上述系统参数和初始值不变,令b∈[-7,0],c∈[5,25],则系统(1)对于参数b,c的复杂度如图4所示.图像颜色的深度代表在该参数范围内混沌系统的复杂程度.其中,颜色越深表示系统的复杂度值越高,相应的序列随机性就越好;相反,颜色越浅表示系统的复杂度值越低,相应的序列随机性就越差.因此,对复杂度分析的结果表明复杂度精确地对应着系统的随机性.由图4可见,系统(1)的混沌参数范围较大,说明所提出的混沌系统更适于安全通信方面的应用.

图4 b∈[-7,0],c∈[5,25]时,系统的SE复杂度、C0复杂度、LZ复杂度Fig.4 Complexity for Parameter b∈[-7,0],c∈[5,25] SE Complexity,C0 Complexity,and LZ Complexity

3 基于自激和隐藏吸引子共存混沌系统的图像加密和解密算法

3.1 Zigzag置乱算法

Zigzag置乱算法从矩阵的左上角开始扫描取一个数字,然后通过Z字型路径依次取其他数字,将连续扫描得到的数字按顺序重新组合成与原始矩阵大小相同的矩阵,从而实现置乱的效果.由于Zigzag置乱方法比较简单,可以有效降低加密过程的时间复杂度,并且能够有效地改变数据的原始位置,从而在数字图像加密中得到广泛的应用.采用改进的Zigzag置乱算法,从(3,3)开始,以4×4的子块为模板进行扫描,具体过程如图5所示.

图5 改进的Zigzag置乱算法Fig.5 Improved Zigzag Scrambling Algorithm

3.2 加密算法

设计了一种基于共存吸引子的图像加密算法,算法流程如图6所示.相应的具体步骤如下.

第1步 输入明文图像P(M×N),其中M表示图像的长度,N表示图像的高度.

第2步 设置系统参数和初值,让系统(1)迭代r1+r2次跳过过渡态,然后迭代MN次得到长度为MN的混沌序列{xi},i=1,2,…,M×N;再让系统(1)迭代r2+r3次跳过过渡态,然后迭代MN次得到长度为MN的混沌序列{yi},i=1,2,…,M×N;接着让系统(1)迭代r3+r4次跳过过渡态,然后迭代MN次得到长度为MN的混沌序列{zi},i=1,2,…,M×N.

图6 加密算法流程 Fig.6 The Flowchart of Encryption Algorithm

第3步 基于第2步得到的混沌序列{xi},{yi},{zi},i=1,2,…,M×N,由(6)和(7)得到矩阵X和Y

X(i,j)=mod(floor(mod(x(i-1)×N+j+y(i-1)×N+j+500,1)×1013),M)+1,

(6)

Y(i,j)=mod(floor(mod(y(i-1)×N+j+z(i-1)×N+j+500,1)×1013),N)+1.

(7)

第4步 前向扩散图像A由(8)和矩阵X得到

(8)

第5步 利用改进的Zigzag置乱算法对扩散后的矩阵A进行置乱,得到图像矩阵B.

第6步 对图像矩阵B后向扩散得到最终的加密图像C,具体步骤为

(9)

3.3 解密算法

解密算法是加密算法的逆过程,其流程如图7所示.

图7 解密算法流程Fig.7 The Flowchart of Decryption Algorithm

具体步骤如下.

第1步 输入密文图像C(M×N),其中M表示图像的长度,N表示图像的高度.

第2步 同3.2的第2步,得到3个长度分别为MN的混沌序列{xi},{yi},{zi},i=1,2,…,M×N.

第3步 由3.2的第3步,得到矩阵X和Y.

第4步 对加密图像C后向逆扩散得到恢复图像B2,具体步骤为

(10)

第5步 利用改进的Zigzag逆置乱算法对扩散后的矩阵B2进行置乱恢复,得到图像矩阵A2.

第6步 对图像矩阵A2前向逆扩散得到最终的解密图像P,具体步骤为

(11)

3.4 实验结果

选择4个尺寸为256×256像素的标准灰度图像Lena,Boat,Woman,Tree进行实验测试.实验室环境为内存8 GB,处理器AMD A9-9410 RADEON R5,CPU2.9 GHz,操作系统Windows 7,仿真软件为Matlab R2019a.设定算法的密钥,其中混沌系统的参数设为a=3.4,b=-0.5,c=6.8,d=1,初始值为x0=0.3,y0=0.1,z0=0.6,迭代次数为r1=36,r2=202,r3=69,r4=138.经过数值仿真,图8a,b,c,d分别为Lena,Boat,Woman,Tree的明文图像,图8a′,b′,c′,d′和图8a″,b″,c″,d″分别给出了相应的加密图像与解密图像.可以看出,加密后的图像是一种随机图像,完美隐藏了原始明文图像的有效信息,说明了加密的有效性.并且从解密结果来看,解密图像与原始明文图像毫无差别,即所恢复的密文图像包含了明文图像的全部信息,表明了解密算法的有效性和可行性.

图8 所提算法的实验结果Fig.8 Experimental Results of the Proposed Algorithm

4 加密算法性能分析

4.1 密钥空间

密钥空间是指在加密过程中可以使用的各种密钥的总数.一般地,密钥空间越大,算法的安全性能也就越好.对于所设计的图像加密系统,密钥主要包括系统参数a,b,c,d,初始值x0,y0,z0和迭代次数r1,r2,r3,r4.其中:系统参数a,c,d的计算精度为1015,b的计算精度为1016;初始值x0,y0的计算精度为1015,z0的计算精度为1014;迭代次数r1,r2,r3,r4的取值为[0,255].因此,密钥空间大小为1015×5+16+14×2564≈2384,这个值远远大于密码系统的理论密钥空间值2100.所设计加密算法的密钥空间大小与文献[1,2,7]加密算法的比较结果如表1所示.可以看出,与文献[1,2,7]相比,所设计的加密算法具有更大的密钥空间,能够有效对抗暴力攻击.

表1 不同算法下的密钥空间Tab.1 Key Space of Different Encryption Algorithms

4.2 密钥敏感性

密钥敏感性是检测加密算法是否能抵抗暴力攻击的一个重要指标.因此,固定系统的参数和初始值a=3.4,b=-0.5,c=6.8,d=1,x0=0.3,y0=0.1,z0=0.6,所得解密后的Tree图像如图9a所示;然后分别设置初值x0=0.3+10-15,y0=0.1+10-15,z0=0.6+10-14,所得解密后的Tree图像如图9b,c,d所示.可以看出,当密钥轻微改变时的解密图像与正确密钥得到的解密图像完全不同,这说明所设计算法对密钥是极其敏感的,能够有效抵抗暴力攻击.

图9 所设计算法的密钥敏感性分析结果Fig.9 Key Sensitivity Analysis Results of the Proposed Algorithm

4.3 直方图

图像的直方图反映的是图像像素值的分布情况,主要用于评价图像抵抗统计攻击的能力.在加密实践中,如果代表加密数据的数字传输距离很近,则算法的加密性能很好.加密数据分布越接近,其加密级别就越高.分别测试了Lena,Boat,Woman,Tree图像的直方图.图10a为Woman明文图像的直方图,图10b为相应密文图像的直方图,图10c为相应解密图像的直方图.可以看出,加密图像的直方图是统一的,没有暴露有价值的数据,攻击者很难从加密图像中获得任何统计信息.另外,常用χ2统计量(单边假设检验)在数量上衡量明文图像与密文图像直方图的差别.对于灰度等级数为256的灰度图像而言,χ2统计量的计算公式为

(12)

图10 Woman明文图像的直方图Fig.10 Histogram Analysis of Image

表2 χ2统计量分析结果Tab.1 The Chi-square Analysis Results

4.4 相邻像素间的相关性

设从Lena,Boat,Woman,Tree明文图像中随机选取N对相邻的像素点,灰度值记为(ui,vi),i=1,2,…,M×N,则u={ui}和v={vi}间的相关系数计算公式为

(13)

(14)

(15)

(16)

设ui的坐标为(xi,yi),如果vi的坐标为(xi+1,yi),则计算水平方向上的相关系数.同理(xi,yi+1)和(xi+1,yi+1)分别对应垂直方向和对角方向.

基于上述公式,取N=2 000,得到Lena,Boat,Woman,Tree明文与密文图像在水平、垂直、对角方向上的像素分布.Boat图像的相关性分析结果如图11所示.可以清楚地看到,使用所设计加密算法后,密文图像的相关性显著降低,像素值在整个区间内散布着,通过像素分布无法获得统计信息,说明所设计算法具有较好的抵抗统计攻击的能力.Lena,Boat,Woman,Tree图像相邻像素点间的相关系数如表3所示.可以看出,明文图像相邻像素点的相关系数均接近于1,而密文图像的相关系数均接近于0,即原始明文图像对相邻像素具有较强的相关性,而密文图像对相邻像素几乎没有相关性.说明所设计算法能够有效破坏相邻像素点的相关性.表4给出了Lena密文图像相邻像素点间的相关系数与文献[2,4,7]的对比结果.结果表明,与文献[2,4,7]相比,所设计算法中密文图像相邻像素间的相关系数更接近于0,削弱图像相邻像素点间相关性的效果更好.

图11 图像的相关性分析结果Fig.11 Correlation Analysis Results of Image

表3 明文和密文的相关系数Tab.3 Correlation Coefficients of the Plaintext and the Ciphertext

表4 Lena 密文图像在不同算法中的相关系数Tab.4 Correlation Coefficient of Lena Ciphertext Image with Different Algorithms

4.5 信息熵

信息熵反映了图像信息的不确定性,可以作为评价加密系统安全性能的一个重要特征.熵值越大,信息量越大,即不确定性越大,从图像中能够获得的视觉信息就越少.信息熵的计算式为

(17)

其中L表示图像的灰度等级数,p(i)为灰度值i出现的概率.对于灰度等级为256的图像而言,信息熵的理论值为8.

表5给出了Lena,Boat,Woman,Tree图像及其对应加密图像的信息熵.可以看出,每幅密文图像的信息熵值与理论值8都非常接近;而每幅明文图像的信息熵与理论值相差很大.这说明所设计加密算法严重干扰了图像的像素值,加密效果非常突出.表6给出了Lena图像的信息熵与文献[4,5,12]的对比结果,可以清楚地看到,与文献[4,5,12]相比,所设计算法密文图像的信息熵更接近理论值,安全性能更好,能够有效地抵抗信息熵攻击.

表5 不同图像的信息熵Tab.5 Information Entropy of Different Images

表6 Lena图像在不同算法中的信息熵Tab.6 Information Entropy of Lena Image with Different Algorithms

4.6 差分攻击

比较2幅图像相应位置像素值,不同的像素点个数占全部像素点个数的比例(NPCR,number of pixels change rate)和全部相应位置像素点的差值与最大值(即255)比值的平均值(UACI,unified average changing intensity)是2个测试算法是否能够抵抗差分攻击的重要指标.相应的计算公式为

(18)

(19)

其中C1(i,j)表示正常密文图像的像素值,C2(i,j)表示微小改变明文图像后加密得到的密文图像的像素值.

(20)

(21)

其中F表示可取的最大像素值(本文中F=255),Φ-1(·)表示标准正态分布N(0,1)的逆累积密度函数(CDF),且

(22)

(23)

表7 不同大小图像的NPCR和UACI理论临界值Tab.7 The Theoretical Values of Critical NPCR and UACI for Different Size of Images

表8 不同图像的NPCR平均值Tab.8 NPCR Mean Values of Different Images

表9 不同图像的UACI平均值Tab.9 UACI Mean Values of Different Images

5 结 论

表10 Lena图像在不同算法中的NPC和UACI平均值

发现了一个自激吸引子与隐藏吸引子共存的混沌系统,并研究了该系统的动力学特性.动力学分析结果表明,自激吸引子与隐藏吸引子共存的混沌系统比只有单一吸引子的系统具有更复杂的动力学行为,且混沌状态分布在较大的参数范围,因而更适合应用于混沌密码学.设计了一种基于自激吸引子与隐藏吸引子共存混沌系统的图像加密方案,以确保数字图像在信息传输和存储中的安全性.对加密算法的安全性分析结果表明:密钥空间大、敏感性强,密文图像直方图近似均匀分布、相邻像素间相关性很弱,密文信息熵、NPCR和UACI值均接近理论值,能够有效抵抗暴力攻击、统计攻击、选择密文攻击和差分攻击等.继续其他自激吸引子与隐藏吸引子共存混沌系统的动力学特性的研究并探究基于此类混沌系统的更安全有效的图像加密算法等的研究工作具有重要价值.

猜你喜欢

明文加密算法密文
一种支持动态更新的可排名密文搜索方案
加密文档排序中保序加密算法的最优化选取
基于模糊数学的通信网络密文信息差错恢复
支持多跳的多策略属性基全同态短密文加密方案
DES加密算法的实现
基于整数矩阵乘法的图像加密算法
奇怪的处罚
奇怪的处罚
奇怪的处罚
AES加密算法的实现及应用