二维超混沌系统的研究及在图像加密中的应用

2020-05-22 13:56张修引曾齐红邵燕林梁梓君
计算机技术与发展 2020年5期
关键词:数组信息熵密钥

张修引,曾齐红,邵燕林,梁梓君

(1.长江大学 地球科学学院,湖北 武汉 430100;2.中国石油勘探开发研究院,北京 100083;3.中国石油新疆油田公司数据公司,新疆 克拉玛依 834000)

0 引 言

随着计算技术的迅速发展,多媒体通信已经成为人们信息交流的主要方式之一。数字图像具有数据量大、相关度高等特点,但是,数字图像的传输存在着很多安全隐患,信息安全已成为日益严峻的现实问题。因此,研究图像加密具有重要的现实意义。

近年来,国内学者对混沌图像加密的研究成果颇多。比如,周小勇[1]提出了一种新的具有恒Lyapunov指数谱的三维混沌系统,验证了系统丰富的混沌特性;富立、张鹏、张海龙等利用Lyapunov指数[2-5]的数值计算方法来提高算法的可行性与有效性。此外,用于图像加密的混沌系统中有二维广义的Logistic映射[6-8],还有基于广义维的Arnold变换加密方法[9]和新型图像加密[10]、明文改进加密[11]以及超混沌系统加密[12-14]和开关分数阶混沌加密[15]。黄蕾等人[16-17]设计了基于混沌映射与连续更新对称扩散的图像加密算法。离散混沌在图像加密、计算智能、网络系统中应用也比较广泛[18]。在这些常用的混沌加密算法中,低维混沌系统存在密钥空间小、安全性不高的缺点[19]。因此,把二维超混沌用于图像加密,不仅具有低维混沌系统的优点,同时兼具超混沌系统的优点,因此二维超混沌的图像加密算法更具有重要的研究意义。

1 混沌的起源

1.1 混沌的定义

美国著名的气象学家洛伦兹(Lorenz E N)在数值实验中研究气候的变化,发现系统中有时会出现一种随机行为,他称作“决定论非周期流”,并且在《大气科学》上发表了“决定论非周期流”一文,描述了“对初始条件的敏感性”基本特性,这就是著名的“蝴蝶效应”,并且此后他也继续致力于该研究,被誉为“混沌学之父”。

众所周知,混沌(chaos)是指对初值敏感表现出的不可预测、随机性的运动,是一种无规则的运动理论,不需加入任何随机因素也可出现类似随机的行为(内在随机性),又称浑沌。

1.2 混沌系统的特征

混沌系统有以下特点:

(1)内在随机性:存在的区域表现出随机不确定性;

(2)非规则的有序:混沌系统本身是无序的,但在研究的过程中是有序的;

(3)敏感性:对密钥做出微小改变,密图会产生巨大改变,和原来使用的密钥加密效果截然不同;

(4)正的李雅普诺夫指数:李雅普诺夫指数是指数规律的发散表明初始条件非常微小的差别也能被发现,从而使系统状态被成功预测到是根本不可能的。

2 二维超混沌系统的研究

2.1 一类二维超混纯系统的分析

二维超混沌系统,是低维混沌系统和高维混沌系统结合起来的一种混沌系统;在使用二维超混沌加密时,可以促使混沌系统的安全性能提高,敏感性加强,有利于图像加密的保护,是当前以及未来混沌加密研究的重要方向与课题。

使用超混沌离散系统在图像加密中有以下几个特性:一是二维超混沌系统产生的密钥数量多,参数多等;二是由于二维超混沌系统需要使用Lyapunov指数,效果更加具有说服力,更加复杂,可以很好地体现出来。使用Henon映射的理论基础,二维系统方程如下:

(1)

Henon映射公式如下:

(2)

其中参数a=1.4,b=0.3。

2.2 一种二维超混沌系统

由于使用二维超混沌系统加密的效果更好,二维超混沌系统所具有的形式更加简单,并且正的Lyapunor指数也与混沌程度有关,因此多采用Lyapunor指数来衡量所研究的方程是否存在混沌运动,具体的形式如下:

(3)

其中,a,b,c,d为系统参数a=1.68,b=-1.3,c=-1.1,d=0.1。

3 加密与解密

3.1 加 密

Step1:读入一幅256*256的图像,取红色分量AR并将256*256的数组转成1*65 536的数组,并输出;取绿色分量AG并将256*256的数组转成1*65 536的数组,并输出;取蓝色分量AB并将256*256的数组转成1*65 536的数组,并输出;

Step2:将其转化成灰度图B,并输出;

Step3:利用二维超混沌方程(式(3)),二维超混沌方程使用的系数如下所示:a=1.68,b=-1.3,c=-1.1,d=0.1;生成混沌序列X,Y;

Step4:取出X的第五位,第六位和第七位,重新组成一个新的三位数,接着X1对256取余,存放在数组X1中;

Step5:取出Y的第五位,第六位和第七位,重新组成一个新的三位数,接着Y1对256取余,存放在数组Y1中;

Step6:对(X1+Y1)对256取余存放数组Z1中;

Step7:将KA中的所有元素放入M的第一行;将AR中的所有元素放入M的第二行;将C中的所有元素放入M的第三行;

Step8:将M中的元素按照第一行排序,第二行与第三行也相应发生变化,将排序后的M数组第二行取出,放入一维数组F中,将F数组中的数据转化成二维数组AR1,即为红色加密图AR1;

Step9:AG重排成256*256的二维数组,将其与加密的灰度图进行异或加密,得到绿色加密图AG1;

Step10:将M1中的元素按第一行排序,第二行与第三行也相应发生变化,将排序后的M1数组第二行取出,放入一维数组F1中,将F1数组中的数据转化成二维数组AB1,AB1重排成256*256的二维数组,与Z1进行异或加密,得到蓝色密图AB2。

3.2 解 密

Step1:分别读入红(AR1)、绿(AG1)、蓝(AB2)分量密图;解密红色分量密图AR1(256*256),取第三行,对其进行排序,第三行改变相应的第一二行也发生改变,从而进行解密;

Step2:解密绿色分量密图AG1(256*256),绿色分量图是采用异或加密,所以解密将AG1与序列Y1进行异或,从而可以得到解密图AG;

Step3:解密蓝色分量密图AB2(256*256),首先进行异或解密,异或解密完成,将解密之后的数组进行第三行排序,相应的两行随之发生改变,从而蓝色解密完成。

4 仿真结果

使用256*256的灰度图像在matlab 2010b下进行仿真实验,二维超混沌方程使用的系数如下:a=1.68,b=-1.3,c=-1.1,d=0.1;生成混沌序列X,Y。

图1是256*256像素的BMP格式的彩色图像,图2为彩色图像分离出来的三色图像。

图1 原图

图2 分离后的图像

分离三色图像后,分别对红绿蓝三色分量图进行不同方式的加密,图3即为加密以后的图像。

图3 加密后的图像

加密以后得到三张分量加密图,将三张分量加密图合成为一张新的图片,即为合成后的最终加密图,见图4。

图4 最终加密图

得到最终加密图以后,对其进行解密。首先需要对最终加密图进行三色分量输出,按照加密的方式对它进行解密,将最终加密图还原成三色图以后,就可以对它进行合成,得到最终解密图,即原图(见图1)。

5 算法分析

5.1 相邻像素相关性分析

图片像素的相关性是指图像中两个像素点(水平相关,垂直相关,对角相关)之间的关系,用协方差表示,范围在0到1之间。相关性系数的值越大(接近1)说明图像的相关性越强,反之值越小(接近0),说明图像相关性越弱。因此,在没有进行加密的图像中,相邻的两个像素点之间的相关性很强,经过加密处理后的图像,相邻像素的相关性就很弱。

相关性系数的计算公式如下所示:

(4)

(5)

(6)

(7)

其中,x,y分别表示图像中两个相邻的像素灰度值,计算时采用均值E(x),方差D(x)和协方差COV(x,y)的离散形式。对图像进行加密前后的相邻像素的相关性分析,即选取5 000对像素点,进行分析。加密前后5 000对图片像素的水平相邻、垂直相邻、对角相邻的像素相关系数分析如表1所示。

表1 加密前后红绿蓝三色分量相邻点相关系数

5.2 MSE与PSNR

MSE(mean squared error)表示均方误差,是衡量“平均误差”的一种方法,计算出的MSE的值越小,说明预测数据的精确度越好;计算出的MSE的值越大,反之越不好。均方误差的表达式为:

(8)

其中,I(i,j)为加密图像,I(i,j)为原始图像,M,N表示图像的横坐标与纵坐标在图像中像素点的个数。均方误差从整体上反映了原始图像和加密图像的差别,MSE值越大,算法越好,加密效果就越好。

PSNR(peak signal to noise ratio,峰值信噪比),peak的意思是顶点,ratio的意思是比率,即到达噪音比率的顶点信号。PSNR的单位为dB。当图像PSNR值越大,就代表图像的失真程度越少。峰值信噪比的表达式为:

(9)

其中L为图像中灰度取值的范围,对8比特的灰度图像而言L=255。图像的峰值信噪比越大,图像的失真程度就越低,反之,图像的峰值信噪比越小,其失真程度就越大。然而对于加密图而言,加密效果越好,其峰值信噪比越小,如表2所示。

表2 测试图像的结果对照

5.3 敏感性分析

密钥的敏感性是指在密钥发生细小变化时,系统产生的加密效果也会发生明显变化。采用正确密钥以及与之差异微小的另几组密钥分别对密文图像进行解密实验。实验选取大小为256*256的灰度图像,正确密钥为Key=(x=0.1,y=0.2,a=1.68,b=-1.3,c=-1.1,d=0.1),如表3所示。图5中,(a)为红色分量解密图,(b)绿色分量解密图,(c)蓝色分量解密图。

表3 选取的密钥进行敏感性分析的结果对照

(1)正确密钥解密图

(2)Key1密钥解密图

(3)Key2密钥解密图

(4)Key3密钥解密图

(5)Key4密钥解密图

(6)Key5密钥解密图

(7)Key6密钥解密图

由上可得,当改变选取的密钥后,即使只有10-10的改变,解密的图像都不能被解出来,这就说明使用到的加密方法具有良好的密钥敏感性。

5.4 信息熵

信息熵是19世纪中叶由德国物理学家克劳修斯提出的,信息论创始人美国著名数学家香农于1948年发表的《通讯的数学理论》一文中将熵的概念正式引入到信息论中,称之为“信息熵”,即平均信息量,公式如下:

(10)

其中,P(Si)是Si出现的概率,2n是信息源,S是总状态数。从理论上来说,一个256级灰度值的图像,灰度值有28种可能,由此可以根据理论算出信息熵的理论值。

利用文中所选用的二维超混沌系统加密,对加密后的图像进行计算,所得的信息熵如表4所示,可以得出非常接近理想值8。

表4 信息熵

由上可知,信息熵分布越均匀,图像的信息熵越大,信息熵灰度分布越无序,图像的信息熵越小。当图像的灰度分布是不均匀的,信息熵较小,这样的图像数据很容易被窃取,当信息熵越大时,图像加密效果越好,越不容易被窃取。

5.5 密钥空间分析

文中算法对加密的密钥是非常敏感的,密钥空间的取值范围要足够大,只要密钥空间足够大,就可以有效地抵抗破译者的攻击。对于文章提出的加密算法,密钥空间分析如下;一般计算机的精度设置为10-16,混沌系统共4个参数,2个变量,密钥为K=(a,b,c,d,x,y),所以就能得到密钥空间大小为1096=2319,相当于319 bit的密钥长度。由此可知,该算法的密钥空间取值范围足够大,因此能够有效地抵抗攻击者的穷举攻击方法。

6 结束语

二维超混沌系统是将低维混沌系统和高维混沌系统结合起来的一种全新的混沌系统,二维超混沌加密可以促使混沌系统的安全性能提高,敏感性加强,有利于图像加密的保护。二维超混沌系统具有多个参数和变量,不易破解。在图像的加密方面,对分离的红绿蓝分量分别进行排序加密、异或、先排序后异或加密,该加密方法的复杂性较高。整个加密算法的安全性高,相关性低,抗干扰性强,密钥敏感性高,密钥空间大,能有效抵抗穷举搜索的攻击。

猜你喜欢
数组信息熵密钥
基于信息熵可信度的测试点选择方法研究
JAVA稀疏矩阵算法
幻中邂逅之金色密钥
幻中邂逅之金色密钥
JAVA玩转数学之二维数组排序
Android密钥库简析
近似边界精度信息熵的属性约简
更高效用好 Excel的数组公式
基于信息熵的承运船舶短重风险度量与检验监管策略研究
信息熵及其在中医“证症”关联中的应用研究