1.一种高效的批量彩色图像加/解密方法,其特征在于,具体按照以下步骤实施:步骤1、利用堆叠算法将多个彩色明文图像进行堆叠,生成堆叠图像;具体如下:步骤1.1、假设有N张大小为mi×ni的彩色图像T′i,i=1,2,L,N,令m=max(m1,m2,Λ,mN),n=max(n1,n2,Λ,nN);m和n分别表示堆叠图像的高度和宽度,如果彩色明文图像的大小不等于m×n,则在彩色明文图像的右侧和底部填充0,得到大小为m×n的填充图像,通过这种方式使所有的图像尺寸均相同,将填充后的图像分别表示为T1,T2,L,TN;
步骤1.2、设T0表示堆叠图像,每一个图像Ti对应的矩阵记为MTi,i=1,2,Λ,N,堆叠图像的矩阵记为 堆叠算法定义如下:令
其中, 表示第i个填充图像的第s行第t列
处的像素值,通过公式(2),得到大小为m×n的堆叠图像T0;
步骤1.3、为实现在解密时将堆叠图像分离恢复成原始的彩色明文图像,需要记录每个彩色明文图像在堆叠图中所占的权重,将权重矩阵记为Qi,权重矩阵的定义如下:Qi记录每一个彩色明文图像在堆叠图像中所占的权重,解密后得到的图像是一个堆叠图像,矩阵Qi用于从堆叠图像中分离出N个彩色明文图像,最后得到解密的彩色明文图像;
步骤2、利用Hash函数SHA‑256生成初始密钥,初始密钥用于选择DNA编码规则并作为分段线性混沌映射PWLCM的初始参数和控制参数,指定任意图像作为SHA‑256的输入;具体如下:步骤2.1、随机挑选一个明文图像作为密钥图像记为T1,令W=SHA‑256(T1),W表示哈希函数SHA‑256生成的一个长为256位的宇符串,将W平均分为32段生成初始密钥的4个分量:W=w1||w2||Λ||w32 (5)通过式(6)‑(9)得到初始密钥,其中包含初值x0、y0和控制参数p1,p2,floor(·)表示下取整函数, 表示二进制数的按位异或运算;
步骤2.2、生成两个伪随机序列A4mn和Dmn,A4mn用于置乱DNA编码后的堆叠图像,Dmn用于DNA运算,分段线性混沌映射PWLCM的定义具体如下:
其中,0<xi<1,0<p<0.5为控制参数,Fp(xi)表示第i次的迭代结果,当0.5<xi<1时,令xi=1‑xi重新进行迭代,x0和p取不同的值时得到不同的混沌序列,使用两组控制参数x0,p1和y0,p2生成步骤2中两组不同的随机序列,其中,x0,p1生成长度为4mn的混沌序列A4mn,y0,p2生成长度为mn的混沌序列Dmn;
利用初始值x0和控制参数p1输入到公式(5)作为分段线性混沌映射PWLCM系统的迭代初值,迭代次数为4×m×n,得到长度为4×m×n的混沌序列A4mn,A4mn即为第一加密密钥;
利用初始值y0和控制参数p2输入到公式(5)作为分段线性混沌映射PWLCM系统的迭代初值,迭代分段线性混沌映射PWLCM系统m×n次,得到长度为m×n的混沌序列Dmn=(d1,d2,L,dm×n),Dmn即为第二加密密钥;
步骤3、对步骤1得到堆叠图像和步骤2分段线性混沌映射PWLCM得到的混沌序列进行DNA编码,得到两个编码后的DNA阵列;具体如下:步骤3.1、将Dmn中的值映射到0‑255内,实现对Dmn中的所有元素di进行DNA编码,i=1,2,Λ,m×n,映射过程用公式(11)实现:
15
d′i=mod(floor(di×10 ),256),i=1,2,L,mn (11)floor(·)表示下取整函数,d′i表示di映射后的值,将所有的d′i进行重新排列得到大小为m×n的矩阵D′,排列过程用公式(12)实现:步骤3.2、利用初始参数选择DNA编码规则,以增加随机性和减少人工干预:
20
g1=mod(floor(x0×10 ),8)+1 (13)
20
g2=mod(floor(y0×10 ),8)+1 (14)floor(·)表示下取整函数,mod(·)表示取模运算;g1和g2表示取模运算后得到的结果,g1和g2取值为1到8之间的整数,与以下8种DNA编码规则对应,8种DNA编码规则定义如下:规则1:A表示00,C表示01,G表示10,T表示11;
规则2:A表示00,C表示11,G表示01,T表示11;
规则3:A表示01,C表示00,G表示11,T表示10;
规则4:A表示01,C表示11,G表示00,T表示10;
规则5:A表示10,C表示11,G表示00,T表示01;
规则6:A表示10,C表示00,G表示11,T表示01;
规则7:A表示11,C表示01,G表示10,T表示00;
规则8:A表示11,C表示10,G表示01,T表示00;
根据g1对应的编码规则号,选取第g1个编码规则对堆叠图像T0进行编码,将编码后的矩阵记为TZ,同时根据g2对应的编码规则号,选择第g2个DNA编码规则对D′进行编码,得到大小为m×4n的DNA阵列MC;经过DNA编码后,所有的十进制像素值均表示为A,C,G,T四种碱基的形式,即假设如果图像中某一点的像素值为40,其二进制值为“00 10 10 00”,则根据DNA编码规则1,A表示00,C表示01,G表示10,T表示11,将40编码成DNA序列为“AGGA”;
步骤4、对步骤1中得到的堆叠图像进行加密处理:第一阶段,使用分段线性混沌映射PWLCM得到的加密密钥置乱步骤3中堆叠图像对应的DNA阵列;第二阶段,使用步骤3中的混沌序列生成的DNA阵列对第一阶段置乱后的DNA阵列进行DNA运算,以使像素分布更均匀,最终得到密文图像;具体如下:步骤4.1、先对经步骤3编码后的矩阵TZ进行转置,将转置后的矩阵记为TD,如式(15)所示:TD=(TZ)' (15)使用公式(16)将TD转换为一维序列:
R1=(c1,1,c1,2,L,c1,m,c2,1,c2,2,L,c2,m,L,c4n,1,c4n,2,L,c4n,m)R1是将阵列TD按照式(16)转换成的一维序列;
按从小到大的顺序对序列A4mn进行排序,得到一个有序的序列A′和其对应的索引序列Sy,如式(17)所示:(A′,Sy)=sort(A4mn) (17)sort(·)表示从小到大的排序函数,利用索引序列Sy对序列R1进行置乱,置乱规则如式(18)所示,生成的新序列记为R2:R2(j)=R1(Sy(j)),j=1,2,L,4×m×n (18)R2(j)表示序列R2中的第j个元素;
步骤4.2、按公式(19)对R2进行重排列,得到大小为m×4n的矩阵Ts:步骤4.3、使用公式(20)对Ts进行DNA运算,得到最终的DNA矩阵Te:步骤4.4、按照公式(21)选择第g3个DNA解码规则对Te进行解码,
20
g3=mod(floor(p1×10 ),8)+1 (21);
以使DNA矩阵Te可视化,得到大小为m×n的密文图像TG;
步骤5、对步骤4得到的密文图像进行解密:先对密文图像进行解密得到堆叠图像;然后对堆叠图像进行分离恢复明文图像。
2.根据权利要求1所述的一种高效的批量彩色图像加/解密方法,其特征在于,所述步骤5具体如下:步骤5.1、对密文图像TG进行解密:
利用分段线性混沌映射PWLCM生成与加密时相同的混沌序列,按照加密过程的逆运算,得到堆叠的明文图像Td;
步骤5.2、对堆叠图像进行分离恢复明文图像
令
s=1,2,Λ,m;t=1,2,Λ,n
利用步骤1.3中计算得到的每幅图像的权重矩阵Qi分离堆叠的图像,具体描述如下,令表示第i个权重矩阵中的第s行第t列的像素值,使用式(23)得到N张大小相同的图像,裁剪掉填充的0元素,获得N个恢复的彩色明文图像,如式(24)所示:T′i表示对步骤5中的密文图像TG进行解密后得到的N个解密后的彩色图像,解密图像与步骤1中进行堆叠的N个彩色明文图像一一对应。