1.一种基于忆阻超混沌系统、元胞自动机和DNA计算的图像加密方法,其特征在于:包含如下步骤:
步骤1.利用SHA256函数对大小为M×N的明文图像P进行计算,得到一组256位的哈希值并将它作为图像密钥Key,将256位的图像密钥Key换算为32个十进制数k1,k2,...,k32,计算基于Chua电路的忆阻超混沌系统的初始状态值;
步骤2.将得到的初始状态值带入忆阻超混沌系统进行迭代,得到4个大小分别为1×
4MN的状态值矩阵X=[x1,1,x1,2,...,x1,4MN],Y=[y1,1,y1,2,...,y1,4MN],Z=[z1,1,z1,2,...,z1,4MN],W=[w1,1,w1,2,...,w1,4MN],对状态值矩阵X、Y、Z进行修正得矩阵X1=[x′1,1,x′1,2,...,x′1,4MN]、Y1=[y′1,1,y′1,2,...,y′1,4MN]、Z1=[z′1,1,z′1,2,...,z′1,4MN],使得x′1,h、y′1,h、z′1,h∈[1,8],对状态值矩阵W进行修正得矩阵W1=[w′1,1,w′1,2,...,w′1,4MN],使得w′1,h∈[0,1],h∈[1,4MN],将X1、Y1、Z1、W1分别按行重组为大小为M×4N的矩阵X_1,Y_1,Z_
1,W_1;
步骤3.对重组后的矩阵X_1、Y_1、Z_1进行分组,记A1=[X_1,Y_1],A2=[X_1,Z_1],A3=[Y_1,Z_1],利用明文的第一个像素选取将要用于DNA动态编码所需的规则数矩阵R1和R2,并使R1=Ai(1),R2=Ai(2),i=1,2,3,其中,选取R1和R2的规则如下:index=mod(P(1),3)+1;
如果index=1,那么i=1,Ai=A1,此时R1=X_1,R2=Y_1;
如果index=2,那么i=2,Ai=A2,此时R1=X_1,R2=Z_1;
如果index=3,那么i=3,Ai=A3,此时R1=Y_1,R2=Z_1;
其中,index是设定的一个变量,X_1、Y_1、Z_1表示修正重组后的状态值矩阵,P(1)表示明文图像的第一个像素值,mod(a,b)表示a对b取模,i∈[1,3];
步骤4.将明文图像P按位展开,得到八个位平面并重组为大小为M×8N的矩阵U,令D(i,j)=[U(i,2*j-1),U(i,2*j)],将矩阵U中每两个元素为一组,作为D中的一个元素,i∈[1,M],j∈[1,4N];
步骤5.将矩阵D、R1、R2分别分割成p×q个分块矩阵,每个分块矩阵的大小为m×n,且满足m×p=M,n×q=4N,并将分割后的矩阵分别按行重组为大小为1×pq的一维矩阵并记为D_1、R_1、R_2,其中用D_1[k]、R_1[k]、R_2[k]分别表示D_1、R_1、R_2中第k块的分块矩阵,k=1,2,...,p×q;
步骤6.从矩阵W_1的第一个元素开始按行依次选取2mn个元素,重新组成大小为m×2n的矩阵,并将该矩阵作为元胞自动机演变的初始构型C0;
步骤7.对初始构型C0进行演变,其中Ck代表第k次演变后得到的构型,在进行第k次演变时,演变规则由第k-1次经过扩散后获得的DNA图像块决定,k=1,2,...,p×q;
步骤8.将D_1中第k块分块矩阵D_1[k]按照R_1中第k块分块矩阵R_1[k]中的编码规则进行DNA编码,并将编码后的矩阵记为DNA(D_1[k]);对演变得到的元胞构型Ck按照R_2中第k块分块矩阵R_2[k]中对应的编码规则进行DNA编码,并将编码后的矩阵记为DNA(Ck),k=
1,2,...,p×q;
步骤9.对得到的编码矩阵DNA(D_1[k])进行扩散操作;
步骤10.令k=k+1,循环执行步骤7-10,直到所有的分块都完成DNA加密;
步骤11.将加密过的所有分块DNA矩阵重组为M×4N的矩阵并按照规则数矩阵R1中对应的规则数进行DNA解码操作,得到一个大小为M×8N的二进制矩阵Q1,然后对矩阵Q1进行十进制转换操作,得到一个大小为M×N的十进制密文矩阵Q2,即为加密后的密文图像。
2.根据权利要求1所述的基于忆阻超混沌系统、元胞自动机和DNA计算的图像加密方法,其特征在于:所述步骤1中基于Chua电路的忆阻超混沌系统的表达式为:,
其中,h(x)=m1x+0.5(m0-m1)×(|x+1|-|x-1|), x,y,z,w代表忆阻超混沌系统的状态变量,a、b、c、d、e、m0、m1是忆阻超混沌系统的控制参数,并且当a=30,b=36,d=2.5,e=3.5,m0=-0.5,m1=-0.1且c∈[0.073,0.162]时,系统处于超混沌状态;并通过公式:,
计算基于Chua电路的忆阻超混沌系统的状态变量的初始状态值x0,y0,z0和w0,其中,sum(k21,k22,...,k32)表示对k21,k22,...,k32进行求和,max(k21,k22,...,k32)表示求k21,k22,...,k32的最大值, 代表取x和y的异或。
3.根据权利要求2所述的基于忆阻超混沌系统、元胞自动机和DNA计算的图像加密方法,其特征在于:所述步骤2具体包含如下步骤:
步骤2.1、将通过步骤1计算得到的初始状态值x0,y0,z0和w0带入基于Chua电路的忆阻超混沌系统迭代N0次,其中 得到大小分别为1×4MN的状态值矩阵X=[x1,1,x1,2,...,x1,4MN],Y=[y1,1,y1,2,...,y1,4MN],Z=[z1,1,z1,2,...,z1,4MN],W=[w1,1,w1,2,...,w1,4MN];
步骤2.2、对状态值矩阵X、Y、Z、W分别通过修正公式进行修正得矩阵X1、Y1、Z1、W1,其中修正公式如下:X1=mod((abs(x1,h)-floor(x1,h))×1014,8)+1,Y1=mod((abs(y1,h)-floor(y1,h))×1014),8)+1,Z1=mod((abs(z1,h)-floor(z1,h))×1014,8)+1,W1=mod((abs(w1,h)-floor(w1,h))×1014,2),其中,x1,h,y1,h,z1,h,w1,h分别代表状态值矩阵X、Y、Z、W中的第h个值,h∈[1,M×4N];abs(x)表示对x取绝对值,floor(x)表示取不大于x的最大整数,mod(a,b)表示a对b的取模运算;
步骤2.3、将X1、Y1、Z1、W1分别按行重组为大小为M×4N的矩阵X_1,Y_1,Z_1,W_1。
4.根据权利要求3所述的基于忆阻超混沌系统、元胞自动机和DNA计算的图像加密方法,其特征在于:
步骤7具体包含如下步骤:
步骤7.1、通过如下公式:
决定元胞自动机演变规则,其中, 表示在t+1时刻处于位置(i,j)处的中心元胞的状态值, 表示在时刻t处于位置(i,j)处的中心元胞的状态值, 分别表示在时刻t处于中心元胞的上、左、下、右的邻居元胞的状态值,L、VM、VT、VL、VD、VR是值为0或1的变量;如果L=1,表示规则是非线性规则,否则就是线性规则,VM、VT、VL、VD、VR分别控制中间、上、左、下、右五个元胞是否参与元胞演变过程,如果VM、VT、VL、VD、VR中对应的值为0,则表示其对应的元胞不参与演变;L、VM、VT、VL、VD、VR的值由步骤7.2中的演变规则rule(k)决定;
步骤7.2、通过公式:
确定元胞自动机演变规则数,其中,rule(k)表示元胞进行第k次演变时的规则数,DNA(E(k-1))表示前一个经过扩散后获得的DNA分块矩阵,sum(DNA(E(k)))表示对第k个扩散后的DNA矩阵的每个元素的ASCII码值求和,当k=1时,E(0)=C0,C0表示元胞的初始构型,k=
1,2,...,p×q;
步骤7.3、将步骤7.2中计算得到的rule(k)转变为二进制,即求得L、VM、VT、VL、VD、VR的值,同时根据步骤7.1)确定元胞演变的函数。
5.根据权利要求4所述的基于忆阻超混沌系统、元胞自动机和DNA计算的图像加密方法,其特征在于:
所述步骤9中扩散操作具体包含:通过公式:
,
对得到的编码矩阵DNA(D_1[k])进行扩散操作。