1.一种基于离散型Hopfield神经网络的图像加密算法,其特征在于,它包括以下步骤:S1:基于Hopfield神经网络的三阶神经网络产生密钥流,利用密钥流对彩色图像的R、G、B三通道进行同时置乱扩散操作,得到置乱扩散后的R_3,G_3,B_3三个通道矩阵;
S2:再对得到置乱扩散后的R_3,G_3,B_3三个通道矩阵进行二次扩散操作,得到输出密文图像。
2.根据权利要求1所述的基于离散型Hopfield神经网络的图像加密算法,其特征在于:密钥流的产生与明文图像相关且为是一次一密的加密。
3.根据权利要求1所述的基于离散型Hopfield神经网络的图像加密算法,其特征在于:在R、G、B三通道进行同时置乱扩散涉及的算法中加入外部密钥。
4.根据权利要求1所述的基于离散型Hopfield神经网络的图像加密算法,其特征在于:图像加密涉及的算法是基于MATLAB实现,算法对称的,解密过程是加密过程的逆过程。
5.根据权利要求1所述的基于离散型Hopfield神经网络的图像加密算法,其特征在于,三阶神经网络具体形式如下:
为了确认其伪随机性,对Hopfield神经网络进行了NIST随机性测试,当p值大于0.01时,认为它通过了测试。
6.根据权利要求1所述的基于离散型Hopfield神经网络的图像加密算法,其特征在于:对彩色图像的R、G、B三通道的加密过程如下:(1)分别计算R,G,B三通道像素值的和,分别标记为sum(R),sum(G),sum(B)。通过如下公式计算神经网络系统的初始值,其中c1,c2以及c3是外部密钥:其中,mod是取模运算;
(2)将神经网络系统迭代1000+M×N次,为了避免瞬态效应,将前1000次的数值舍弃,得到序列:
明文图像中每个通道的每一个像素值都有可能置换到本通道或另外两个通道中新的位置上,并改变此像素本身的值。通过公式(4)产生的序列首先得到三个决定通道置乱位置的矩阵X1_1,X2_1以及X3_1:其中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计算如下:
14
m=1+mod((abs(X1(i,j)))×10 ,M) (9)
14
n=1+mod((abs(X1(i,j)+abs(X2(i,j)))×10 ,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计算如下:
14
m=1+mod((abs(X2(i,j)))×10 ,M) (14)
14
n=1+mod((abs(X2(i,j)+abs(X3(i,j)))×10 ,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)
14
m=1+mod((abs(X1(i,j)+abs(X3(i,j)))×10 ,N) (19)
14
n=1+mod((abs(X1(i,j)+abs(X2(i,j))+abs(X3(i,j)))×10 ,N) (20)当B通道置乱扩散结束后得到三个新的矩阵R_3,G_3,B_3。
7.根据权利要求6所述的基于离散型Hopfield神经网络的图像加密算法,其特征在于:对矩阵R_3,G_3,B_3进行二次扩散过程如下:(1)通过序列X1,X2以及X3得到三个中间图像矩阵X1_2,X2_2以及X3_2(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的三个通道。