一般混沌图像加密,都是对图像的整体像素置乱处理,其抵抗明文攻击能力较差。为此,我们提出了一种基于离散Hopfleld神经网络的彩色图象混沌加密算法。该算法采用自治三维混沌系统对彩色图像单像素比特位进行加密操作,通过利用三维混沌序列的其中一维置乱图像R、G、B分量的像素位置,用另外两维序列设置置乱每个像素比特位的权值和阈值,从而改变彩色图像各分量像素的位置和像素值,达到有效加密的效果。
一、新混沌系统
1、新混沌系统的构造
高维混沌系统较低维系统结构复杂,密钥空间大,敏感性更强,加密安全性更高。为此,我们设计了一个新的三维混沌系统,该系统具有5个平衡点,其物理模型如下:
其中a、b、c是系统的参数,且当参数a、b、c时,系统最大的Lyapunov指数为2.98,该系统进入典型混沌态(见图1)。
2、混沌系统敏感性
混沌系统的敏感性对加密非常重要,混沌系统迭代数次后,表现出对初值极端敏感,产生的序列波形会因微小的变化发生巨大的改变。图2描述了某一变量只相差10-10时,该混沌系统波形发生的巨大改变。
3、混沌系统分叉特性
系统参数发生改变时,会使系统平衡点发生相应变化,以致系统的运动轨迹也发生变动。图3为改变参数a时新混沌系统的分叉图,由图3可见,随着a在[15,50]范围内变化,系统在周期态、混沌态和周期态之间相互转变。
二、新混沌系统的彩色图像加密算法
1、图像像素位置置乱
设待加密的彩色图像大小为MxNx3,分离其三基色,得到二维R、G、B分量。利用式(1)产生三维混沌序列,迭代LxMxN次,舍去前三次,生成X、y、Z序列,其长度都为MxN。利用Z序列对尺像素位置置乱,y序列对G像素位置置乱,X序列对B像素位置置乱,下面以Z序列置乱R像素位置为例加以说明。
选取Z中[1,M]项作为Z1,[M+1,M+N]项作为Z2。先从R像素的第1行到第M行,按照式:
对应值对R循环右移。转置R,再从第1行到第N行按照式:
对应值对R循环右移。最后转置得到尺像素位置置乱。用y,X序列对G分量和B分量做类似的置乱操作。
2、图像像素置乱
将二维R、G、B像素值分别展开成一维向量I1k、I2h、I3k,k=1,2,…,MxN,再转换为二进制形式得到各分量像素值p1k,i、p2k,i、p3k,i,分别表示三基色的第南个像素值第:比特位,且满足:
另外,选取X、Y、Z序列进行预处理,得到序列Xk、Yk、Zk如下:
经式(5)处理后,将Xk、Yk、Zk转化为二进制形式Wlk,i、W2k,i、W3k,i,其中k、i代表第庇个序列值的第k比特位,这里i=8,转换关系如下:
基于离散Hopfield混沌神经网络,利用混沌序列的二进制流和图像像素的二进制形式产生像素置乱。权值q1k,i、q2h,i、q3k,i和阈值u1k,i、u2k,i、u3k,i,表示如下:
图像的R、G、B像素值置乱后得到密文m1k,i、m2k,i、m3k,i,加密算法如下:
加密时,反馈密文m10,i、m20,i、m30,i 由R、G、B分量像素值的最后一个二进制值p1m*n,i、p2m*n,i、p3m*n,i代入求得。按照式(11)进行像素置乱后,再将其像素值转化为十进制,组合加密后的R、G、B分量,得到像素置乱图像。图像解密是加密的逆过程,像素值解密算法如下:
解密时用已恢复出的p1m*n,i、p2m*n,i、p3m*n,i代替m10,i、m20,i、m30,i 求出原像素m11,i、m21,i、m31,i。
3、新混沌系统彩色图像加密解密步骤
Step1读入彩色图像,大小为MxNx3,分离图像三基色得到尺、G、B像素分量。设置新混沌系统式(1)的参数和初值,迭代LxM×N次,舍弃前三次得到三维混沌序列。
Step2按照前面内容对R、G、B像素值进行位置置乱。
Step3按照前面内容对R、G、B像素值进行像素置乱。
Step4组合R、G、B加密后的像素值,输出加密后的图像。
解密过程是加密的逆过程,按照式(12)解密出像素值,再组合为三维彩色图像。
三、实验结果及其安全性分析
1、加密解密实验结果
在Matlab7.O编程环境下,选用256 x256 x3的彩色图像加密。混沌系统的参数和初值为a=30,b=15,c=6,x0=2,y0=1,Zo =3,积分步长为h=0. 01,迭代舍弃前5500次。图4为该加密算法效果图,并仿真正确解密和初值误差为10-10的错误解密情况。
2、密钥敏感性
由图4d可看出,在其他条件不变的情况下,初值误差只有10-10的微小变化时,解密就发生错误。
由此可知,该算法的密钥敏感性很强。另外,对于笔者的新三维混沌系统,不同的参数、初值和迭代次数使加密密钥拥有很大的密钥空间。
3、统计特性分析
1)相邻像素的相关性
利用公式:
分别随机选取R、G、B像素中1 000对水平、垂直和对角相邻像素,进行相关性分析(见表1)。由表1可以看出,原图像的R、G、B相邻像素相关性非常高;而加密图像中各分量相邻像素相关系数接近于0,基本不相关,说明明文的统计特征已被扩散到随机的密文当中。
2)直方图分析
图5为加密前后各分量的直方图对比,图6为误差为10-10错误解密各分量直方图与原直方图的对比。由图5,图6可看出,加密后图像的三基色分量的直方图均匀分布,错误解密后分布仍均匀,所以该加密算法已经完全改变了原图像的统计特性。
3)抗差分攻击能力。利用像素变化率和像素平均强度变化率定量描述算法明文的敏感程度,验证加密算法的抗差分攻击能力。现改变彩色图像R分量的一个像素点p(i,j),得到不同的密文值m1(i,j),m2(i,j)。若m1(i,j)≠m2(i,j),则D(i,j)=1,反之,D(i,j)=O;代入下式:
其结果如表2所示。
由表2中R、G、B分量的NPCR和UACI值可知,该加密算法能有效地抵抗差分攻击。
4、抗干扰能力
对该混沌系统加密图像进行抗剪切、抗高斯噪声、抗椒盐噪声的试验,其结果如图7所示,证明该混沌加密算法有较好的鲁棒性,具有较高的抗干扰能力。
5、加密解密算法的效率
对图像像素进行多次位置置乱,这无疑会占用加密时间,相同置乱效果下,笔者的算法对单像素比特位置乱速度更快。图片加密时需要重复运行混沌系统7次,而笔者只需要一次就能达到很好的加密效果,加解密速度相对更快。分别用笔者的加密算法的算法对同一图片进行加密,加密操作需要11. 67 s,而笔者加密操作仅需0.23 s,由此可见,笔者的加密算法有很高的加密效率。
小知识之Hopfield
Hopfield是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。