基于离散型Hopfield神经网络的图像加密算法

2021-07-06 02:14徐子同于正同时培燕
计算机技术与发展 2021年6期
关键词:明文加密算法密钥

徐子同,高 涛,于正同,时培燕

(长安大学 信息工程学院,陕西 西安 710054)

1 概 述

随着网络媒体的快速发展,越来越多的图像数据通过公共网络进行传输,保证信息传输的安全性至关重要。一种可以保证图像完整性的加密方式是将明文图像转为类噪声图像再传输,这种信息隐藏方式提高了传输的安全性,目前,越来越多的图像加密算法被提出。由于图像的特殊性,例如数据容量大、像素间的相关性高以及数据冗余等,传统的数据加密算法如DES、AES以及IDEA[1-2]等不适用于图像加密。近些年,各种类型的加密算法被大量提出[3-14],例如,基于混沌的图像加密[3-6]、基于压缩感知的图像加密[7-8]、基于遗传算法的图像加密等等。离散型Hopfield神经网络是一种稳定的反馈型的神经网络,文中使用三阶神经网络系统,使得图像加密的安全性得到了显著提升。

图像加密的主要思想是改变图像像素值的大小以及改变像素值的位置,即对图像进行扩散和置乱。在传统的加密方案中,置乱过程和扩散过程是分开进行的,攻击者可以通过分开攻击来破解加密方案,这种加密方法很可能会被选择明文攻击。其次,根据密钥是否明文相关,加密算法可以分为两类:第一,加密过程中密钥与明文图像没有关联,是非一次一密的加密方案。此方案中,由于明文图像与密钥相互独立,不同的明文图像加密用到的密钥流是唯一确定的,因此,这种类型的加密方案容易被选择明文攻击。例如文献[15]已经被攻击[16],攻击者选取一幅像素值全为零的特殊图像作为明文图像,加密后得到密文图像,通过对比明文图像和密文图像可以得到加密过程中的两个密钥流,再通过三次异或操作得到密钥图像,完成对加密方案的攻击。第二,加密过程中密钥与明文图像相关联,是一次一密的加密方案。此方案中,由于密钥与明文相关联,并且是一次一密的加密方案,因此,每一幅不同的明文图像加密后都将产生与之对应的一个密钥,并且该密钥需要与方案中其他的固定密钥一起传送给解密方才能完成解密。

为了克服以上加密方案的缺点,该文提出了一种与明文相关的通道关联的同时置乱扩散加密方案。在该加密方案中,密钥流的产生与明文图像相关,不同像素和的明文图像将产生不同的密钥流,但是加密方案中用到的初始密钥是固定的,解密方只需要得到固定的密钥就可以解密图像。这种方案解决了与明文无关的加密方案容易被选择明文攻击的缺点,并且采用同时置乱扩散的方式提高算法的安全性,使得加密算法能够更好地抵抗选择明文攻击。

2 离散型Hopfield神经网络

Hopfield神经网络最早是由美国物理学家Hopfield于1982年提出的[17]。它主要用于模拟生物神经网络的记忆机制。Hopfield神经网络是一种全连通的神经网络。三阶神经网络具体形式如下:

(1)

(2)

为了确认其伪随机性,对Hopfield神经网络进行了NIST随机性测试[18],当p值大于0.01时,认为它通过了测试。结果见表1。随机性测试结果表明,基于权值矩阵的Hopfield混沌神经网络具有伪随机性。

表1 NIST随机性测试

3 提出的加密算法

该文所提出的图像加密算法包括彩色图像R、G、B三通道关联的同时置乱和扩散算法以及二次扩散算法,加密过程中输入明文图像P,输出密文图像C;解密过程与之相反。假设图像大小为M×N,加密过程具体步骤如下所述,加密流程框图如图1所示。

图1 算法流程

3.1 通道关联的同时置乱扩散

为了更好地抵抗攻击,该文提出了彩色图像通道关联的同时置乱扩散算法,并且在加密过程中用到了明文图像的有效信息,即使明文图像只有1 bit的差别,加密后图像也会大不相同。具体的加密过程如下:

(1)分别计算R、G、B三通道像素值的和,分别标记为sum(R)、sum(G)、sum(B)。通过如下公式计算神经网络系统的初始值,其中c1、c2以及c3是外部密钥:

(3)

其中,mod是取模运算。

(2)将神经网络系统迭代1 000+M×N次,为了避免瞬态效应,将前1 000次的数值舍弃,得到序列:

(4)

明文图像中每个通道的每一个像素值都有可能置换到本通道或另外两个通道中新的位置上,并改变此像素本身的值。通过公式(4)产生的序列首先得到三个决定通道置乱位置的矩阵X1_1,X2_1以及X3_1:

(5)

其中,abs为取绝对值的操作。

进而分别产生三个通道新的像素位置,具体过程如下:当X1_1(i,j)=1时,矩阵R中像素值R(i,j)和R(m,n)交换位置,再根据如下公式执行扩散操作改变像素R(i,j)的值:

R(i,j)=bitxor(R(i,j),R(m,n))

(6)

当X1_1(i,j)=2时,矩阵R中像素值R(i,j)和G(m,n)交换位置,根据如下公式执行扩散操作改变像素R(i,j)的值:

R(i,j)=bitxor(R(i,j),G(m,n))

(7)

当X1_1(i,j)=3时,矩阵R中像素值R(i,j)和B(m,n)交换位置,根据如下公式执行扩散操作改变像素R(i,j)的值:

R(i,j)=bitxor(R(i,j),B(m,n))

(8)

其中,像素值行位置m和列位置n计算如下:

m=1+mod((abs(X1(i,j)))×1014,M)

(9)

n=1+mod((abs(X1(i,j)+

abs(X2(i,j)))×1014,N)

(10)

当R通道置乱扩散结束后得到三个新的矩阵R_1,G_1,B_1。

当X2_1(i,j)=1时,矩阵G_1中像素值G_1(i,j)和G_1(m,n)交换位置,用如下公式执行扩散操作改变像素G_1(m,n)的值:

G_1(i,j)=bitxor(G_1(i,j),G_1(m,n))

(11)

当X2_1(i,j)=2时,矩阵G_1中像素值G_1(i,j)和R_1(m,n)交换位置,再根据如下公式执行扩散操作改变像素G_1(i,j)的值:

G_1(i,j)=bitxor(G_1(i,j),R_1(m,n))

(12)

当X2_1(i,j)=3时,矩阵G_1中像素值G_1(i,j)和B_1(m,n)交换位置,再根据如下公式执行扩散操作改变像素B_1(i,j)的值:

G_1(i,j)=bitxor(G_1(i,j),B_1(m,n))

(13)

其中,像素值行位置m和列位置n计算如下:

m=1+mod((abs(X2(i,j)))×1014,M)

(14)

n=1+mod((abs(X2(i,j)+

abs(X3(i,j)))×1014,N)

(15)

当G通道置乱扩散结束后得到三个新的矩阵R_2,G_2,B_2。

当X3_1(i,j)=1时,矩阵B_2中像素值B_2(i,j)和B_2(m,n)交换位置,再根据如下公式执行扩散操作改变像素B_2(i,j)的值:

B_2(i,j)=bitxor(B_2(i,j),B_2(m,n))

(16)

当X3_1(i,j)=2时,矩阵B_2中像素值B_2(i,j)和R_2(m,n)交换位置,再根据如下公式执行扩散操作改变像素B_2(i,j)的值:

B_2(i,j)=bitxor(B_2(i,j),R_2(m,n))

(17)

当X3_1(i,j)=3时,矩阵B_2中像素值B_2(i,j)和G_2(m,n)交换位置,再根据如下公式执行扩散操作改变像素B_2(i,j)的值:

B_2(i,j)=bitxor(B_2(i,j),G_2(m,n))

(18)

m=1+mod((abs(X1(i,j)+

abs(X3(i,j)))×1014,N)

(19)

n=1+mod((abs(X1(i,j)+abs(X2(i,j))+

abs(X3(i,j)))×1014,N)

(20)

当B通道置乱扩散结束后得到三个新的矩阵R_3,G_3,B_3。

3.2 二次扩散算法

为了提高加密算法的安全级别,对矩阵R_3,G_3,B_3进行二次扩散,过程如下:

(1)通过序列X1,X2以及X3得到三个中间图像矩阵X1_2,X2_2以及X3_2。

(21)

(2)执行扩散操作。

R_4=bitxor(R_3,X1_1)

(22)

G_4=bitxor(G_3,X2_2)

(23)

B_4=bitxor(B_3,X3_3)

(24)

R_4,G_4,B_4即加密图像C的三个通道。

提出的加密算法是对称的,解密过程是加密过程的逆过程。

4 仿真结果

整个加密算法是基于MATLAB实现的,使用的测试图像分别为Lena(256×256)。实现加密方案的密钥以及仿真时的取值如表2所示。

表2 密钥及其仿真时的取值

仿真结果如图2所示。在图2中,第一列的图像为明文图像,第二列为加密后的图像,最后一列为解密后的图像。由结果可以看出,这个加密方案是可行的。

图2 仿真结果

5 安全性分析

5.1 密钥空间

当一个加密方案中密钥空间大于2100时,可以认为该加密方案是安全的,可以抵抗暴力攻击。加密算法的密钥包括明文图像R,G,B三个通道的像素和以及外部密钥c1,c2,c3,如果计算机的计算精度为10-14,则提出的算法的密钥空间为(1014)6≈2289,所以认为加密方案是安全的。

5.2 密钥敏感性分析

一个安全有效的加密方案应该保证在加密和解密过程中都是对密钥敏感的,即当密钥取值发生微小的变化时,解密结果将会完全不同。为了测量加密方案的敏感性,选择测试图像Lena(256×256),它的加密后的图像以及解密后的图像分别如图3所示。当分别改变R通道的像素和以及外部密钥c1的值,改变后的数值如表3所示。

表3 密钥改变值分析

图3 密钥敏感性分析结果

5.3 直方图分析

图像加密算法抵抗统计攻击的能力可以通过加密后图像的直方图来直观地体现出来。直方图反映了各个不同灰度级的像素个数,直方图越均匀平坦,加密算法抵抗统计攻击的能力越好。选择的测试图像为Lena。

通常,直方图方差用如下公式计算:

其中,V={v0,v1,…,v255},向量中的每一个值vi(i=0,1,…,255)代表图像中灰度值为i的数量。var(V)是向量V的方差。方差的值越小,直方图越均匀。

由以上分析可知,提出的加密算法加密后图像的直方图更加平坦,能够有效地抵抗统计攻击。

5.4 相关性分析

通常一幅明文图像信息量很大,每一个像素与其相邻像素之间的相关性很高。然而,为了抵抗各种统计攻击,要求加密后图像的像素之间的相关性近似为零。明文图像Lena及其加密后图像的相关分布显示,提出的图像加密算法足够抵抗统计攻击。

5.5 抵抗一些典型攻击

通常情况下,对加密系统分析时有四种典型的攻击形式:唯密文攻击、选择密文攻击、已知明文攻击和选择明文攻击。其中,选择明文攻击是对密码系统最有威胁的一种,一般来说,如果一个加密方案能够抵抗选择明文攻击,那么它也有足够的能力去抵抗其他类型的攻击。在提出的方案中,有一些步骤是为了抵抗选择明文攻击而设计的。

加密方案主要的两个步骤:神经网络系统初始值的产生是与明文图像像素和以及外部密钥有关的,即使在外部密钥相同的条件下,不同的明文图像也会产生不同的序列。

6 结束语

该文使用三阶神经网络对彩色图像进行通道间的同时置乱扩散,可以有效地避免置乱和扩散分开攻击对加密算法的影响,实验结果表明,该算法有良好的加密性能,可以抵抗各种攻击。

猜你喜欢
明文加密算法密钥
加密文档排序中保序加密算法的最优化选取
幻中邂逅之金色密钥
幻中邂逅之金色密钥
Android密钥库简析
奇怪的处罚
教育云平台的敏感信息保护技术研究
一种改进的加密算法在空调群控系统中的研究与实现
奇怪的处罚
奇怪的处罚