基于细胞神经网络的图像混沌加密算法

2021-07-07 13:44孙炜皓
内蒙古科技与经济 2021年10期
关键词:明文加密算法密文

孙炜皓

(广东工业大学 自动化学院,广东 广州 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为密文图像。

3 仿真实验结果及安全性能分析

3.1 数值仿真实验

仿真选用大小为256×256的灰度图像Lena和Cameraman作为明文。设置初始密钥k={0.5,0.5,0.5,0.5,0.5,30,100}。实验结果如图3所示。

图3 图像混沌加密和解密实验结果

3.2 直方图分析

直方图反映了图像灰度的分布情况,图4给出了Lena的明文图像与加密图像的直方图,可以看出明文图像像素值分布不均匀,密文图像像素值分布均匀,其中横坐标是灰度级,纵坐标是灰度级出现的频率。

(a)明文图像直方图

(b)密文图像直方图

3.3 相邻像素相关性分析

一般情况下,明文图像的相邻像素在水平、垂直和对角方向上具有较强的相关性,密文图像的相邻像素相关系数接近于0。相邻像素相关系数结果如表1所示。

表1 相关系数

由表1可知明文的相关系数都接近于1,明文图像相邻像素相关性强,密文图像相关系数接近于0,近似无相关性。

Lena明文与密文图像在不同方向上的相关性如图5所示。

可以看出,明文图像的相邻像素点分布密集,集中在y=x直线上,说明相关性较强。密文图像像素分布于整个空间,近似无相关性。

(a)明文水平方向

(b)密文水平方向

3.4 敏感性分析

明文敏感性分析是对仅存在一个像素点差别的明文,使用同一密钥进行加密,得到相应密文,对比两个密文的差别。通过引入图像像素值变化率(NPCR)和归一化像素平均改变强度(UACI)来判断敏感性。NPCR的理想值为0.996094,UACI的理想值为0.334635。

从表2中可以看到,测试数值与理想值较为相近,明文对于密文存在雪崩效应,两个差别微小的明文图像加密后得到的密文图像差别很大。

表2 明文敏感性分析结果

4 结论

笔者提出一种基于五维细胞神经网络的图像混沌加密算法,使用五维细胞神经网络产生的混沌系统作为密钥源,使用置乱-扩散-置乱的方法对图像进行加密,算法与明文信息相关,增强破译难度,并给出了相关性测试、敏感性分析等结果。通过实验表明,算法的安全性和加密效果都较好。

猜你喜欢
明文加密算法密文
一种支持动态更新的可排名密文搜索方案
加密文档排序中保序加密算法的最优化选取
基于模糊数学的通信网络密文信息差错恢复
支持多跳的多策略属性基全同态短密文加密方案
密钥共享下跨用户密文数据去重挖掘方法*
DES加密算法的实现
基于整数矩阵乘法的图像加密算法
奇怪的处罚
奇怪的处罚
奇怪的处罚