基于改进Clifford 混沌系统的图像加密算法*

2022-07-22 06:32:46张文宇幸荣盈李国东
电子技术应用 2022年6期
关键词:明文加密算法密文

张文宇,幸荣盈,李国东

(桂林电子科技大学 数学与计算科学学院,广西 桂林 541004)

0 引言

大数据时代的发展有利有弊,信息高速传递的时候也导致了大量的安全漏洞,越来越多的学者也将保护数据化的隐私问题当成核心研究。与文字信息相比,数字图像相邻像素间的相关性较大、所含信息容量大并且数据冗余性强,所以数字图像加密不适合应用传统加密技术(如AES 和DES)。而混沌系统有伪随机性和初始值很敏感等特性,很适合用来图像加密,而应用混沌系统对图像加密也成为现代科研的热点。赵洪祥等人[1]针对以往的Henon 映射存在的混沌空间小,在加密时安全性低的问题,对传统的Henon 映射进行了创新,并利用创新型Henon 映射对图像进行加密,其采用分块的方式对图像进行加密处理,很大程度上减少了算法的运行时间;马开运等人[2]针对明文图像与加密密钥无关引起的安全性问题,提出了将Logistic 映射所迭代的混沌序列和明文图像相结合生成的密钥当作三维Chen 系统迭代的初始值,再运用Fisher-Yates 算法对图像进行置乱操作,该算法可以抵御大多数攻击;Wang 等人[3]针对低维混沌系统安全性不高,设计了一个新型的六维混沌系统,结合比特置乱和DNA 编码技术对图像进行加密;Xian 等人[4]提出一种基于螺旋变换的置乱方法,该方法在一次加密过程中可以引起所有像素点位置的变化,巧妙地简化了图像置乱过程。扩散算法利用两个混沌序列来提高扩散过程的效率。

对图像加密常用的操作主要有两种:(1)置乱,即打乱图像像素点的初始位置;(2)扩散,即改变图像像素值的大小。目前,针对应用混沌系统进行图像加密算法设计研究中所存在的混沌系统低维、加密步骤过于简单而使安全性低以及加密步骤过于繁琐而导致的加密效率不高等问题,本文改进了Clifford 系统,并利用改进的Clifford系统对图像进行加密。先将原图的像素图像转化为二进制,再分别对行和列进行循环位移置乱,然后对所得图像进一步分块置乱,最后利用混沌序列进行扩散。仿真实验所得结果表明该算法具有较高的安全性,可以抵抗各种典型攻击。

1 Clifford 系统

目前,Lyapunov 指数可以用来鉴定一个系统是否混沌的。若该指数为正值,则说明这个系统为混沌系统;若存在两个及以上大于零的Lyapunov 指数,那么可以说这个系统是超混沌的[5-7]。

Clifford 系统的表达式如下:

当给出式(2)的初始值时,系统(1)处于超混沌状态。

此时,使用雅克比矩阵乘积方法计算出系统的近似Lyapunov 指数分别为0.0836、0.2924 和0.4518[5]。因此,可以将Clifford 系统用于图像加密。利用式(2)的参数和初始值,将Clifford 系统迭代1 000 次的混沌吸引子图如图1 和图2 所示。

图1 Clifford 系统

图2 Clifford 系统X、Y 方向相图

由图1 可以看出混沌吸引子中间是空心的,有一块空白区域;图2 是Clifford 系统在X、Y 方向的分布,可以看出混沌系统的分布并不均匀。

2 基于改进Clifford 系统的伪随机序列发生器设计

2.1 改进的Clifford 系统

由于Clifford 系统的控制参数有5个,那么用其进行混沌加密时所需设置的密钥会比较多。所以针对Clifford系统混沌吸引子分布不均且初始参数较多这两点问题,对Clifford 系统进行改进,让它的分布比较均匀并且减少控制系统的参数。改进的Clifford 系统表达式如式(3)所示。

利用式(4)作为改进Clifford 系统的迭代的初始值,图3 是改进Clifford 系统的混沌吸引子图。

图3 改进Clifford 系统

由图3 与图4 可观察到改进的Clifford 系统在空间上的分布更加均匀、遍历性更好。此时,计算出的系统近似的Lyapunov 指数为0.2213、0.2187、0.1878,说明改进的Clifford 系统是超混沌系统,具有良好的混沌特性,适合用来进行图像加密。

图4 改进Clifford 系统X、Y 方向相图

由图1 可以看出混沌吸引子中间是空心的,有一块空白区域,图2 是Clifford 系统在X、Y 方向的分布,可以看出混沌系统的分布并不均匀。

2.2 伪随机序列的获取

为了增加密钥敏感性,达到一图一密的效果,将明文图像和密钥联系起来,根据明文图像得到混沌系统迭代的初始值。给定一个m×n 平面图像A,计算A 中像素的均值m0,根据式(3)计算混沌系统(2)的初始值x1、x2、x3。

令混沌系统的初始控制参数为a=3.89,b=0.51,c=2.73,迭代混沌系统(3)200+m×n次,为了消除瞬态效应,抛弃前200 个值生成3 个混沌序列X、Y 和Z,其中,每个混沌序列所包含m×n 个元素。为了解决混沌序列所存在的局部连续性问题,对混沌序列X 和Y 做离散化处理如式(6)和式(7)所示,得到T1和T2两个混沌序列。选择混沌序列T1的奇数项元素和T2的偶数项元素构成序列D1。

并对于序列D1做以下处理:

将混沌序列X 的每个元素与混沌序列Y 的每个元素对应相乘构成混沌序列D2,选取D2的后8 个数构成序列D3并对序列D3做以下处理:

其中,abs(·)表示取绝对值,fix(·)表示向0 靠近取整,ceil(·)表示向上取整,mod(·)是取模运算。

3 基于改进Clifford 系统的随机分块置乱算法设计

在混沌序列X 中选取前8 个偶数项元素组成一维向量XS=(xs1,xs2,xs3,xs4,xs5,xs6,xs7,xs8),并对序列XS进行处理,如式(10)所示。

令d=max(B1(2i-1),B1(2i))+1,其中,max(·)是取最大值函数,i=1,2,3,4,d 是一个1×4 的一维向量。

利用将图像分为9 个尺寸不同的矩阵块,具体分块模型如图5 所示。

图5 分块模型

在混沌序列Y 中选取前9 个奇数项元素组成一维向量YS=(ys1,ys2,ys3,ys4,ys5,ys6,ys7,ys8,ys9),然后对YS中的元素进行升序排列,记其索引序列为S0,再将S0按照一列接一列的方式重构成3×3 大小的索引矩阵S,使用索引矩阵S 对矩阵块进行置乱操作,具体块置乱情况如图6 所示。

图6 块间置乱

依次统计每一个矩阵块中奇数像素的个数u1和偶数像素的个数u2,如果u1>u2,则对其矩阵块中的元素按照列逆时针循环移动一位;如果u1<u2,则对其矩阵块中的元素按照行顺时针循环移动一位。把每一个矩阵块内部的像素点按照一列接一列的方式重构成一维行向量。再将所有的行向量组合成一个大小为1×mn 的一维行向量,最后将这个一维向量重构成大小为m×n 的矩阵Q,则Q 为置乱后的图像。

4 加密算法设计

4.1 加密算法

(1)基于原图像素矩阵A 计算混沌系统的初始值,并将A 转化为一维向量P=(p1,p2,…,pm×n)。

(2)将P 转为二进制矩阵得到矩阵A1,A1第i 行行向量按照顺时针循环移动B1(i)个位置得到A2,再将A2第j 列列向量按照顺时针循环移动B2(j)个位置得到矩阵A3。

(3)把A3转化为十进制矩阵,并将按照一列接一列的方式将其重构为大小为m×n 的矩阵A4,利用向量d将A4划分为9 个大小不同的矩阵块,用上述的随机分块置乱算法对A4进行像素置乱得到A5。

(4)对混沌序列Z 进行以下处理:

其中,floor(·)表示向下取整。将T3重构成一个m×n 大小的混沌矩阵F 进行扩散变换,具体操作如下所示:

则H 为最终的密文图像,其中⊕表示异或操作,图7是本文加密算法的流程图。

图7 加密流程图

4.2 解密算法

解密算法是加密算法的逆过程,先由密文图像像素矩阵H 与F 进行异或运算,然后对扩散后的图像进行分块置乱的逆运算,再将所得矩阵转成二进制进行循环位移逆操作,最后把二进制矩阵转成十进制矩阵就是最终解出来的明文图像。

5 仿真实验分析

为了验证本文加密算法的安全性,选择256×256 的“Lena”“Cameraman”“Airplane”图像,明文图像如图8(a)、(b)、(c)所示,密文图像如图8(d)、(e)、(f)所示。加密后的密文图像呈现出雪花状的噪声信号形式,完全看不出原图的特征。

图8 仿真结果

5.1 密钥空间

本文中,明文图像像素均值m0和混沌系统控制参数a、b、c 组成了算法的密钥。若m0全部可取的值为m0′,并且使用精度1016来估计,则密钥空间可达1048×m0′。由此可见本文算法的密钥空间足够大。

5.2 统计分析

5.2.1 直方图

明文图像像素灰度值的分布普遍都具有一定的特点。因此,若图像像素灰度值分布得越匀称表明算法越有效。图9 是Lena 图像明文和密文的直方图。图9(a)反映出像素值分布的平滑、均匀程度都很差;而图9(b)密文图像像素直方图分布比较平缓,分布均匀。由此看出本文算法不会轻易被破解。

图9 明密文图像直方图

5.2.2 相邻像素相关性分析

若加密后图像相邻像素对的相关系数几乎为0,那么说明算法的置乱功效不错。

图10 是Lena 明文和密文图像相邻像素在水平方向上的分布情况。由图10(a)可以看出明文图像相邻像素对基本分布在一条直线上,说明相邻像素的相关性很强;而图10(b)密文图像相邻像素对均匀分布在矩形区域内,说明相邻像素对间几乎没有相关性。

图10 明密文图像水平方向相关分布情况

表1 是本文算法加密后的Lena 图像相邻像素对之间的相关系数,加密后图像相邻像素的相关系数基本接近于0,说明本文算法可以进行有效的加密。

表1 相关系数

5.3 信息熵分析

信息熵反映图像信息的不确定性[6],计算公式为:

其中,p(i)表示像素灰度值为i 出现的概率。对于一幅8 bit的灰度图像,信息熵理论值为8。表2 给出了应用本文算法对Lena 和Airplane 进行加密得到的信息熵,相较于其他文献更接近于8。由此可见,本文算法加密的图像能抵御熵攻击。

表2 信息熵

5.4 差分攻击测试

差分攻击是检验算法对明文敏感性的重要分析法。一般用像素变化率(NPCR)来度量加密算法对明文图像的敏感程度,NPCR 的计算公式如下:

其中,M 表示原始图像的宽,N 表示原始图像的长。对于有效加密算法,NPCR 值理论上接近0.996 1[7]。表3 是Lena 图像加密不同次数所计算的NPCR 值。

由表3 可知本文算法的NPCR 平均值为99.5949%,本文算法对明文图像敏感,能够有效地抵抗差分攻击。

表3 明文敏感性测试结果

6 结论

本文提出了一种基于改进Clifford 系统的图像加密新算法,对Clifford 系统做出改进,从混沌吸引子图和Lyapunov指数说明改进的Clifford 系统的混沌特性。利用改进的Clifford 系统所迭代的3 个混沌序列对图像进行加密。首先,将明文图像转化为二进制,分别对行和列进行循环位移操作;然后将图像化分为9 个大小不同的矩阵块,矩阵块的大小是根据混沌序列的元素变化而变化的,并且结合混沌序列的索引序列进行块间置乱;再利用循环位移对每个块内的像素点进行置乱,既保证了每个像素点发生变化,又提高了处理图像的效率;最后,利用剩余的混沌序列与置乱后的图像进行异或运算得到最终的密文图像。仿真实验结果以及安全性分析表明,该算法具有以下特点:(1)改进的Clifford 系统具有良好的混沌特性,其生成的混沌序列可用于图像加密领域;(2)可以抵抗各种攻击,不会被攻击者轻易破解,具有较高的安全性。

猜你喜欢
明文加密算法密文
一种针对格基后量子密码的能量侧信道分析框架
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
奇怪的处罚
奇怪的处罚
基于小波变换和混沌映射的图像加密算法
四部委明文反对垃圾焚烧低价竞争
云存储中支持词频和用户喜好的密文模糊检索
Hill加密算法的改进