1.一种基于分块DNA编码和均匀置乱的图像加密算法,包括以下步骤:
输入灰度图像I,大小为M行M列,Logistic混沌映射的初值x,y,μ1,μ2,分块数B,迭代数clp1,clp2,Lorenz混沌映射的初值x,y,z;
输出加密图像I',加密图像的处理过程包括:
(1)将灰度图像I转换成大小为M×M的二维矩阵I1;
(2)根据Logistic混沌理论的公式:x'=μ1x(1-x);y'=μ2y(1-y),其中x,y,μ1,μ2为初值,x,y的取值范围是大于0的实数,μ1,μ2的取值范围是大于3.57小于等于4的实数,x',y'是迭代后产生的值,产生两个序列分别为x={x1,x2,...,xB×B}和y={y1,y2,...,yB×B},对这两个序列分别进行如下操作:x(i)=mod(fix(abs(x(i))×108),10)+1,i=1,2,…B×B,y(i)=mod(fix(abs(x(i))×108),10)+1,i=1,2,…B×B,其中abs表示取数字绝对值操作,fix表示向下取整操作,mod表示取余,通过上述公式可将序列x、y变为[1-10]的随机数,根据Arnold cat变换,如公式(1)所示,结合均匀置乱的思想,可以得到新的公式,如公式(2)所示,利用序列x和y中的值对公式(2)中的ai,bi赋值,再根据公式(2)置乱图像I1,从而产生新的置乱后的图像I2;
(3)将图像I2转换成为M×M行8列的二进制二维矩阵I3,即每行是一个原始图像像素值的二进制;
(4)根据Lorenz混沌映射公式,x'=a′1(y-x);y'=a3x-xz-y;z'=xy-a2z,其中a′1=10,a2=8/3,a3=28,x,y,z为初值,取值范围是大于0的实数,x',y',z'是迭代后产生的值,产生三个序列,用A、B和C表示,序列A的长度为M×M,序列B的长度为M×M×8,序列C的长度为M×M×4,按照公式A=mod(fix((abs(A)-fix(abs(A)))×108),8)+1对序列A进行变化,其中fix表示向下取整操作,mod表示取余,abs表示绝对值,按照公式B=mod(fix((abs(B)-fix(abs(B)))×108),2)对序列B进行变化,按照公式C=mod(fix((abs(C)-fix(abs(C)))×
108),8)+1对序列C进行变化,变化后,序列A和C的值得范围变为[1-8],序列B的值得范围变为[0-1],根据序列A的值将矩阵I3的每个二进制元素进行左移位,如公式(3)所示,其中数字3表示左移3位,实际取值为1-8的随机数,从而产生新的二维矩阵I4,根据序列B的值产生自然DNA矩阵,在步骤6中说明,序列C用来选择DNA解码规则,在步骤8中说明;
(5)DNA的每个碱基A、C、G、T可以表示成两个二进制,按照A与T互补,C与G互补的原则,DNA编码规则如表1所示,将矩阵I4,以N/2;M/4;M/2;M×3/4为界,其中N/2将图像以垂直方向分为两块,M/4;M/2;M×3/4将图像以水平方向分为四块,共将图像分为8块,用B1,B2…B8分别表示,根据B的下标对应地在表1中选择1-8种规则,将I4的每一块中的每一行二进制用该种规则进行编码,I4转化成M行M×4列的DNA编码矩阵I5;
表1
(6)将长度为M×M×8的序列B转化成M行M×8列的二进制矩阵I6,按照步骤5说明,将矩阵I6分为8块,用B′1,B'2…B′8分别表示,根据B'的下标对应地在表1中选择1-8种规则,将I6的每一行用该种规则进行编码,将I6转化成M行M×4列的DNA编码矩阵I7;
(7)针对表1中的DNA编码规则,每一种规则对应一种DNA加法运算,如表2是DNA编码规则1的加法运算规则,表3、表4、表5、表6、表7、表8、表9分别是DNA编码规则2、3、4、5、6、7、8的加法运算规则,因为B1,B2…B8与B′1,B'2…B′8是以表1中的1-8种规则编码,根据B与B'的下标,选择对应的加法运算规则,使矩阵I5、I7进行加法运算,得到矩阵I8;
(8)步骤4中的序列C,取值范围为[1-8],按照序列C的每一个值,对应地在表1中选择1-
8种规则中的一种,将I8每一行的DNA编码用二进制表示,I8转化成大小为M行M×8列的二进制矩阵I9;
(9)把二进制矩阵I9转换成M行M列的十进制二维矩阵I10,最后再把二维矩阵I10转换成加密图像I′并保存输出。