基于五阶CNN 超混沌系统的图像加密方法

2021-03-19 05:56田佳鹭邓立国
关键词:加密算法直方图加密

田佳鹭,邓立国

(沈阳师范大学数学与系统科学学院,辽宁 沈阳 110034)

随着信息化时代的高速发展,人们日益重视对敏感信息的保护。图像信息在数据传输过程中扮演着十分重要的角色。图像信息包含了大量的隐私信息,使得图像加密技术的重要性逐渐凸显。传统图像加密算法将加密技术和隐藏技术相结合,以提高算法的安全性。通过改变明文图像的像素值或置乱其像素位置进行加密,可以有效增加机密信息被攻破的难度。传统的DES(data encryption standard,DES)算法[1]、AES(advanced encryption standard,AES)算法[2]等通常被用来加密一维文本数据,不适用于加密二维图像数据。因此,高效的混沌加密系统被提出。它利用混沌序列所独有的初值敏感性、伪随机性等特点对图像进行置乱和扩散处理,降低了图像中信息的相关程度,从而达到加密的效果。本文基于超混沌系统提出了一种将像素置乱和像素替换相结合的图像加密方法。该方法经检验,具有良好的图像保密效果,并且在保证算法可靠性的同时简化了系统的复杂程度。

1 混沌理论

1.1 混沌学

混沌现象是一种发生在确定系统中,貌似有序但实则无序的伪随机性运动[1]。它具有的特征如下。

1)初值敏感性较高。初始条件的任何细微变化,都会伴随着算法演变出巨大的差异[2]。

2)混迭特性。混沌系统的运动轨迹能有效识别其中的每一个状态,使有界区域中的每一个点都被遍历到。

3)普适特性。当混沌系统经过迭代过程趋于混沌状态时,会出现某类特征保持相对不变,可用于替代一般情况中的空间或时间周期性。

4)有序性。混沌现象的轨迹会呈现出异常复杂的运动模式,但在伪随机运动中却表现出惊人的确定性,因此具有长期稳定而局部不稳定的特点[3]。

由于混沌系统能够更好地起到隐藏信息的作用,因此,当今的大部分信息加密算法选择将混沌理论和图像加密技术相结合,算法的基本思路一般为“置乱—扩散—替换”。混沌系统的伪随机性以及自带的自扩散性使其在置乱和扩散过程中充分发挥了优势。图像的像素置乱是为了降低相邻信息的相关程度,常通过改变像素的空间位置来实现。像素替换则是利用将伪随机数序列与原始像素值相计算,来改变像素值的大小,进而打破像素间的统计规律[4]。

常见的图像加密离散混沌系统包括二维Logistic 映射、Henon 混沌映射和三维Lorenz 映射系统等。这些系统的维数较低,密钥空间较小,保密性能不强。本文采用的五阶细胞神经网络(cellular neural network,CNN)超混沌系统,相比于一般混沌系统其敏感性更强,复杂性更高[5]。本文算法利用超混沌系统所产生的超混沌序列,对图像的4 个高位平面进行第2 次的深度加密处理,以有效保障图像信息的安全性。

1.2 细胞神经网络超混沌系统

细胞神经网络(CNN)是一种结构有规律、维数可无限扩展的动力学系统。CNN 要包含4 个以上的细胞才能成为超混沌序列。细胞神经元为CNN 的基本单位,其排列组合方式呈现局部连通的网格式,并且由权值模板来控制相邻细胞间的关系程度[6]。此外,每个神经元都具有输入输出状态,以及满足动力学规则的状态。CNN 所具有的稳定性特征在动力学特性中表现得尤为突出,也因此被广泛应用于图像加密、去噪、边缘检测等领域。本文算法所采用的是五阶细胞神经网络,如图1 所示。

图1 五阶细胞神经网络超混沌系统的拓扑结构图

由图1 可知,该细胞神经网络包括25 个细胞,其中C(i,j)代表第i行第j列的1 个细胞,局部相连的细胞间通过权值模板相互联系,不相邻的细胞则以间接的传递方式来连接[7]。

CNN 的状态方程用微分方程表示为

式中:xij(t)表示t时刻第(i,j)细胞的状态变量;ykl(t)表示对应输出变量;ukl(t)表示已知外界输入变量;Z是阈值,是网络的外部输出[8];A(i,j;k,l)为反馈权值模板,代表细胞C(k,l)与自身输出变量ui j间的权值;B(i,j;k,l)为控制权值模板,代表细胞C(k,l)与自身输入变量ukl间的权值[9];C为线性电容;Rx为线性电阻。

方程中的约束条件为

式中:j为细胞记号;xj为状态变量;f(xj)为细胞输出,是一种分段线性函数形式;为阈值;aj是常量;GO和GS分别代表细胞输出及连接状态变量线性组合。

其中,f(xj)的表达式[10]为

式中Sjk为状态变量间的连接权值参数。

2 细胞神经网络超混沌加密方法

2.1 图像加密的实现过程

首先,对待加密图像采用位平面分解方法,分解出8 个名为Qn(n=0,1,2···,7)的位平面。n值越大代表位平面越高,因此Q7为最高位平面。

然后,对8 个位平面Qn(n=0,1,2,···,7)分别利用幻方变换置乱方法,进行图像像素置乱的预加密处理。

接着,对4 个高位平面Q7、Q6、Q5、Q4进行第2 次深度加密处理。因为预加密处理后的高位平面中仍保存着大量显著性信息,为将图像信息更好的隐藏,所以进行第2 次深度加密处理。其方法是将基于五阶细胞神经网络超混沌系统所产生的5 个超混沌序列进行标准化处理,再分别与4 个高位平面异或,从而达到像素替换的目的。

2.2 位平面分解

位平面分解的基本原理是将一幅灰度图像分解成二进制图像的集合。灰度图像中每个像素值由8 个二进制位组成,且灰度值非0 即1,共256 个灰度级,因此将像素中的每一位提取出来可以分别组成8 个位平面。该算法将选取的灰度图像所分解出的8 个位平面,依次编号为Q7、Q6、Q5、Q4、Q3、Q2、Q1、Q0。图3 为位平面的分解示意图[11]。

图2 算法实现流程图

图3 位平面分解示意图

图4 为随机选取的灰度图像的相应位平面分解图。可以看出,第7 个、第6 个、第5 个、第4 个高位平面均包含了原始图像中的大部分信息,而低位平面的第3 个、第2 个、第1 个、第0 个则包含了较少的图像信息,可看作是随机噪声。由于每个平面所包含的信息量不同,为更好地隐藏信息,本文算法分别采用不同的方式来处理高位平面与低位平面。

图4 灰度图像的位平面分解

2.3 基于幻方变换的置乱方法

幻方矩阵A[12]如式(7)所示,式中的元素为1至n2的自然数,并按式(8)的规律排列组成。

式(8)表示矩阵中每行元素的累加和、每列元素的累加和,以及2 条对角线上元素的累加和都相等,证明该矩阵是幻方矩阵。幻方变换的置乱方法是在幻方矩阵与加密图像矩阵像素一一对应的基础上,对像素位置进行调整的方法。假定有n阶明文数字图像方阵B、n阶幻方矩阵A[12],其变换过程具体如下。

1)将幻方矩阵A中由自然数组成的元素值,与明文图像矩阵B中的像素值一一对应;

2)将矩阵A中标号为m的 元素移动至标号为mmod(n×n)+1的元素位置上,其中m∈{1,2,···,n},再将矩阵A中标号为n的 元素移动到标号为1 的元素位置;

3)随着矩阵A中元素位置的移动,矩阵B中的元素位置也将做相应的调整。

当矩阵A转变成A1,矩阵B转变成B1,记A1=EA,那么B1=EB,E为上述的处理变换过程,那么:

因为幻方变换可进行多次迭代操作,则推出公式为

为更加清晰地阐述幻方变换过程,例举如式(11)、式(12)的变换过程,其中设n=4。

在本文算法中对8 个位平面Qn(n=0,1,2,···,7)分别利用幻方变换置乱方法,进行预加密处理,得到8 个预加密平面,达到对图像的像素置乱的目的。加密密钥是8 个置乱次数,即tn(n=0,1,2,···,7)。

2.4 五阶CNN 超混沌系统的二次加密

为能更好地隐藏高位平面中的重要信息,利用五阶CNN 超混沌系统对已经过预加密处理的4 个高位平面Q7、Q6、Q5、Q4进行第2 次深度加密处理,加密过程如下。

1)首先,构建五阶CNN 状态方程。在式(6)的基础之上为使其达到更好的混沌效果,且假设系统处于不受外界其他因素干扰的情况下[13],将参数设置为:

把参数代入式(6),可以得到五阶CNN 状态方程为式(14)。

设步长h为 0.005,初始值设为x1(0)=x2(0)=x3(0)=x4(0)=x5(0)=0.1,利用龙格库塔算法[14−15]进行非线性常微分方程求解,得到5 个超混沌序列X1、X2、X3、X4、X5。图5 为五阶CNN 超混沌吸引子在三维空间中的表示。

图5 五阶CNN 超混沌吸引子在三维空间上的关系

2)接着,先从5 路超混沌序列中任选一路Xt(t=1,2,3,4,5),求其均值,如当t=1 时,求X1的均值,再利用均值对X2、X3、X4、X5这4 路超混沌序列进行标准化处理,产生4 路二值序列量化公式为

3)最后,将先前经过预加密处理的4 个高位平面Q7、Q6、Q5、Q4异或于4 路二值序列得到最终的加密位平面

3 实验结果及分析

3.1 实验环境

实验选取大小为254×254 的灰度图,如图6 所示,作为加密图像,仿真实验均以MATLAB2018a 为基础环境进行模拟,运行环境为Intel(R) Core(TM)i5-10210U CPU @ 1.60 GHz 2.11 GHz,操作系统为Windows 10。该实验选取Lyapunov 指数来证明五阶细胞神经网络处于混沌状态;选取直方图显示图像的加密效果;选取白噪声攻击、高斯低通滤波攻击以及旋转攻击检验该算法的鲁棒性;选取UACI 理论值检验加密算法的敏感性;选取相关性系数分析相邻像素间的相关性;选取信息熵来衡量数据间的无序程度。

图6 原图

3.2 混沌系统证明

判断构造的五阶细胞神经网络是否处于超混沌状态的方法通常是利用Lyapunov 指数来证明。该指数又被称为李雅普诺夫指数,属于混沌运动判别中的一个重要指标。Lyapunov 指数为正则表明该系统处于混沌状态,反之则亦然。当高维相空间中存在至少2 个李雅普诺夫指数为正实数时,称这样的系统为超混沌系统[16− 17]。Lyapunov 指数为

求本文算法中超混沌系统的所有Lyapunov指数,结果发现,有2 个指数是大于0 的,说明构造的五阶细胞神经网络属于超混沌系统,如图7所示。

图7 Lyapunov 指数谱系图

由于超混沌系统中所有Lyapunov 指数中至少有2 个是大于0 的,所以形成的吸引子比一般混沌系统要复杂的多,密钥空间相对来说也更大,使信息加密过程更加高效。

3.3 加密效果及直方图分析

实验选取图6 进行加密,加密效果如图8 所示。图像的像素变化信息、加密效果,可以通过直方图直观地进行解读,好的加密算法会将重要信息更好地隐藏起来。如图9 所示,可观察出经本文算法加密后的图像直方图的分布变得更加均匀,说明信息被很好地隐藏。

将本文算法与三维Chen 映射方法[18]和二维Logistic 映射方法[19]做比较。设三维Chen 映射方法的初始状态为x0=0.271 8、y0=0.453 6、z0=0.783 9

图8 加密效果图

图9 原图与图像加密后的直方图

并且这3 个值作为此次加密的密钥,加密效果及直方图如图10 所示。二维的Logistic 映射的初始状态为x0=0.361 2、y0=0.563 9,加密效果及直方图如图11 所示。

图10 Chen 映射加密方法效果图及直方图

图11 Logistic 映射加密方法效果图及直方图

对比本文算法与Chen 映射、Logistic 映射2 种加密方法的密文图和直方图,可以发现本文算法的加密直方图分布得更均匀,说明本文算法的加密效果相对更优。

3.4 攻击条件下实验结果分析

3.4.1 白噪声攻击、高斯低通滤波攻击和旋转攻击

好的加密算法应具有一定抵抗攻击、干扰的能力,因此实验选取白噪声攻击、高斯低通滤波攻击以及旋转攻击3 种攻击方式来检验本文算法的鲁棒性能。白噪声攻击是在MATLAB 环境下利用imnoise()函数在原图上添加白噪声。高斯低通滤波攻击是利用高斯低通滤波器对图像进行滤波处理,使图像的频率域受到干扰,在MATLAB 中使用imfilter()函数进行处理。旋转攻击是在保持图像大小不变的基础上将图像旋转10°,在MATLAB中使用imrotate()函数进行处理。

解密过程是加密方法的逆过程,即先像素替换再像素置乱。在已知加密图像、加密密钥的前提下,通过混沌同步运算得到一个相同的超混沌系统,利用生成的超混沌序列与加密图像进行异或运算,实现初步解密,完成像素值的反替换操作;再利用幻方变换的逆变换过程实现像素值的反置乱操作,最终得到解密图像。利用本文加密方法对图像进行加密和解密操作,得到3 种攻击后的解密图,如图12 所示。

图12 3 种攻击后的解密图

由图可知,遭攻击后的解密图像虽存在一定的噪声影响,但与正确解密图像相差甚小,说明本文算法具有一定的抗攻击能力,具有较好的鲁棒性能。

3.4.2 差分攻击分析

差分攻击主要是将明文中某一像素值进行极小的修改后,再比较分析原始明文与改动后明文加密时的传播情况,若两者的加密效果呈现出相同规律,则可通过攻击的方式从中获取重要信息,轻易地获取密钥使得信息被窃取。因此优秀的加密算法应对明文的任何变化极其敏感并使信息无规律可循,这样才能有效抵抗差分攻击。

本文通过对统一平均变化强度(UACI)的评估来说明对明文进行微小改变后像素的变化程度,越近似UACI 理论值33.4635%,说明加密算法对待改变的敏感性能越好。UACI 的计算公式为

式中,W和H代表图像的宽和高。假设2 个明文图像中仅设置2 个像素值不同,密文图像中第(i,j)点的像素值,对应的C1(i,j)是明文加密图像中的像素值,C2(i,j)是细微改变后的密文图像中的像素值。利用本文加密算法和文献[7]、文献[20]与文献[16]的加密算法分别对图像进行加密,计算UACI 值,其结果如表1 所示。由表可知,本文算法的UACI 值最接近理论值,其敏感性最强,能较好地抵御差分攻击。

表1 4 种算法的UACI 值%

3.5 相关系数分析

3.5.1 图像相邻像素的相关性分析

为有效抵御外部攻击,加密后像素间的相关性应降低。本文利用图像相邻像素间的相关性系数rx,y,来验证算法对重要信息的保密程度[20]。相关性系数的取值范围为[−1,1],其绝对值越大越接近1,则像素间的相关程度越大,信息越容易泄露,其绝对值越接近0,信息的相关程度越低,对图像的保密程度越好,安全性能更高。相关性系数的计算公式为

式中:xi,yi是一对相邻像素值;N是像素对数。本文分别从垂直、水平和对角线3 个方向随机选取3000对相邻像素对进行测试,比较本文算法与文献[7]一种新三维混沌动力系统的加密方法、文献[20]一种相邻像素间比特置乱加密算法以及文献[16]基于Lorenz 混沌系统加密算法的相关性系数,其结果如表2 所示。由表可知,本文算法能较好地去除相邻像素间的相关性,提高了对信息的保护能力。

表2 图像相邻像素间相关性系数

3.5.2 图像信息熵分析

图像信息熵描述了像素灰度分布的聚集特征和空间特征所包含的信息量。信息熵可以用来衡量数据间的无序程度,图像信息的内部结构越混乱则加密效果越好,对应的信息熵也就越大。信息熵的计算公式为

式中:si为灰度值;p(si)表示si的发生概率。

计算图像信息熵的过程是首先遍历图像矩阵,统计矩阵中每个灰度值si的出现概率,接着利用式(19)计算灰度值的总期望值,该结果即为图像信息熵。

表3 示出利用Arnold 置乱、Logistic 映射和Chen 映射以及本文算法等4 种加密算法处理后的的信息熵计算结果。由表可知,本文算法较其他3 种映射系统的信息熵更大,因此,本文算法的加密效果更好。

表3 4 种加密算法处理图像后的信息熵结果

4 结束语

信息隐藏作为信息安全保密的重要手段,已然成为人们研究的重点方向。其中,图像隐藏技术通常先对保密图像进行加密预处理操作,再进行更加深度的信息隐秘操作。本文提出的加密算法结合像素置乱和像素替换2 种处理方式,并利用位平面分解技术、幻方变换置乱方法以及五阶CNN 超混沌系统来实现对灰度图像的加密操作。通过仿真实验,对加密直方图、密文图、像素相关性、鲁棒性及敏感性等方面进行了分析,其结果表明,本文算法较其他加密算法具有更好的加密性能。今后还将对该算法进行优化,继续提高该算法的抗攻击性,使其更加高效完善。

猜你喜欢
加密算法直方图加密
加密文档排序中保序加密算法的最优化选取
基于广义logistic混沌系统的快速图像加密方法
保护数据按需创建多种加密磁盘
基于整数矩阵乘法的图像加密算法
用直方图控制画面影调
加密与解密
例析频率分布直方图
中考频数分布直方图题型展示
教育云平台的敏感信息保护技术研究
AES加密算法的实现及应用