基于细胞神经网络的图像混沌加密算法
2021-07-07孙炜皓
孙炜皓
(广东工业大学 自动化学院,广东 广州 510006)
随着网络与多媒体技术的快速发展,安全已经成为图像传输和存储领域的重要问题。加密是保证图像安全的一种重要手段,已被广泛运用于许多领域。混沌现象是非线性确定性系统中的一种类似随机的过程,适用于保密通信技术。细胞神经网络是由Chua和Yang提出的一种神经网络[1],而后被广泛应用于各个领域当中。细胞神经网络作为一种非线性动态系统,在很大的参数范围内,具有混沌吸引子和更复杂的动力学行为。
王勇等[2]将细胞神经网络产生的超混沌序列与AES算法结合来进行图像加密,任晓霞[3]运用六维细胞神经网络进行图像加密,刘玉明等[4]将四维细胞神经网络产生的超混沌序列应用到了图像加密当中。部分算法中存在密钥空间小,加密效率低,加密算法与明文无关,加密算法操作简单,安全性不高等问题。
笔者提出一种基于五维细胞神经网络的图像混沌加密算法,由五维细胞神经网络生成混沌序列,对混沌序列进行处理后用于加密算法。采用置乱-扩散-置乱方法,扩散过程将图像分为两部分,采用不同扩散方法。最后给出相关性测试、敏感性测试等结果。
1 五维细胞神经网络混沌系统
研究表明高维细胞神经网络可以产生复杂程度更高的超混沌行为,它的密钥空间较大,同时拥有两个以上的Lyaponuv指数,和一系列复杂并且难以预测的非线性行为,其模型动力学方程式为(1):
(1)
其中n的值为5,s11、s23和s33值为1,s13、s14、s45和s55值为-1,s22值为3,s31值为11,s32值为-12,s41值为92,s44值为202,其余参数值均为0,五维细胞神经网络系统如式(2):
(2)
当给定初始的值,神经网络系统具有两个正的Lyapunov指数。
用步长h=0.002的5阶Runge-Kutta算法求解方程(2),取初始值x1(0)=0.5,x2(0)=0.5,x3(0)=0.5,x4(0)=0.5,x5(0)=0.5,则五阶全互联细胞神经网络系统产生的混沌吸引子如图1所示。
图1 部分混沌吸引子
2 图像混沌加密算法
2.1 混沌序列生成
密钥K={x0,y0,z0,w0,t0,r1,r2},{x0,y0,z0,w0,t0}为状态初始值,{r1,r2}为随机数。
以密钥K中的{x0,y0,z0,w0,t0}作为式(2)的初始值,迭代细胞神经网络系统r1+r2次后,再继续迭代MN次,得到5个伪随机序列{xi},{yi},{zi},{wi}和{ti},i=1,2,…MN。通过式(3)生成矩阵X,Y,Z,W,T,U,V,大小为M×N。
(3)
其中mod为取模运算,k=1,2,…M,l=1,2,…,N,floor返回小于或等于t的最大整数。
2.2 加密与解密过程
加密过程为置乱-扩散-置乱,扩散部分将图像分为两部分,采用不同的扩散方法。加密流程图如图2所示。解密过程为加密过程的逆运算。
图2 图像混沌加密流程
2.2.1 置乱算法1
步骤1:明文图像P给定的一个像素点坐标(i,j),根据式(4)计算得到(m,n)的值。
(4)
如果m=i或Z(i,j),或n=j或W(i,j),或Z(i,j)=i或W(i,j)=j,则P(i,j)位置保持不变,否则P(i,j)与P(m,n)位置互换。
步骤2:当坐标(i,j)按照顺序遍历图像P中的所有像素点后重复步骤1,将图像P转化为图像A。
2.2.2 扩散算法
图像B的扩散算法1为:
步骤1:令i=1,j=1,将B(i,j)按式(5)变换为D(i,j)。
D(i,j)=B(i,j)+X(i,j)+r1mod256
(5)
步骤2:令j=j+1,将B(i,j)按式(6)变换为D(i,j)。
D(i,j)=B(i,j)+D(i,j-1)+X(i,j)mod256
(6)
如果j 步骤3:将B(i,j)按式(7)变换为D(i,j)。 D(i,j)=B(i,j)+sum(D(i-1,1toN))+X(i,j)mod256 (7) 转到步骤2,最后得到扩散后的图像B。 图像C的扩散算法2为: 步骤1:将C(M,j)按式(8)变换为E(M,j),j=N-1,N-2,…,1。 (8) 步骤2:将C(i,N)按式(9)变换为E(i,N),i=M-1,M-2,…,1。 E(i,N)=(C(i,N)+Y(i,N)+E(i+1,N))mod256 (9) 步骤3:将C(i,j)按式(10)变换为E(i,j),i=M-1,M-2,1;j=N-1,N-2,…,1。 E(i,j)=(C(i,j)+Y(i,j)+E(i+1,j)+E(i,j+1))mod256 (10) 得到扩散后的图像C。 将图像B与C拼接组成图像F,大小为M×N。 2.2.3 置乱算法2 步骤1:计算F(i,j)所在行的全部元素的和row。计算F(i,j)所在列的全部元素的和col。 步骤2:根据公式(11)计算坐标(m,n)的值。 (11) 步骤3:如果m=i或n=j,则F(i,j)与F(m,n)位置保持不变。否则,F(i,j)与F(m,n)位置互换。 步骤4:按照步骤1~3的方法,先置乱F的第M行,接着置乱F的第N列,按从左至右再从上至下的顺序置乱F的元素,最后得到置乱后的图像F。 经过上述操作后得到的图像F为密文图像。 仿真选用大小为256×256的灰度图像Lena和Cameraman作为明文。设置初始密钥k={0.5,0.5,0.5,0.5,0.5,30,100}。实验结果如图3所示。 图3 图像混沌加密和解密实验结果 直方图反映了图像灰度的分布情况,图4给出了Lena的明文图像与加密图像的直方图,可以看出明文图像像素值分布不均匀,密文图像像素值分布均匀,其中横坐标是灰度级,纵坐标是灰度级出现的频率。 (a)明文图像直方图 (b)密文图像直方图 一般情况下,明文图像的相邻像素在水平、垂直和对角方向上具有较强的相关性,密文图像的相邻像素相关系数接近于0。相邻像素相关系数结果如表1所示。 表1 相关系数 由表1可知明文的相关系数都接近于1,明文图像相邻像素相关性强,密文图像相关系数接近于0,近似无相关性。 Lena明文与密文图像在不同方向上的相关性如图5所示。 可以看出,明文图像的相邻像素点分布密集,集中在y=x直线上,说明相关性较强。密文图像像素分布于整个空间,近似无相关性。 (a)明文水平方向 (b)密文水平方向 明文敏感性分析是对仅存在一个像素点差别的明文,使用同一密钥进行加密,得到相应密文,对比两个密文的差别。通过引入图像像素值变化率(NPCR)和归一化像素平均改变强度(UACI)来判断敏感性。NPCR的理想值为0.996094,UACI的理想值为0.334635。 从表2中可以看到,测试数值与理想值较为相近,明文对于密文存在雪崩效应,两个差别微小的明文图像加密后得到的密文图像差别很大。 表2 明文敏感性分析结果 笔者提出一种基于五维细胞神经网络的图像混沌加密算法,使用五维细胞神经网络产生的混沌系统作为密钥源,使用置乱-扩散-置乱的方法对图像进行加密,算法与明文信息相关,增强破译难度,并给出了相关性测试、敏感性分析等结果。通过实验表明,算法的安全性和加密效果都较好。3 仿真实验结果及安全性能分析
3.1 数值仿真实验
3.2 直方图分析
3.3 相邻像素相关性分析
3.4 敏感性分析
4 结论