杨宇光,裴帅康
(北京工业大学 信息学部,北京 100124)
随着数字技术和网络通信的发展,网络中的数据量剧增.图像作为数据的重要载体,在开放的环境中,其传输、保存的安全性受到极大挑战.图像加密技术得到研究人员的广泛关注,提出了很多图像加密算法[1-5].由于图像数据量大、冗余度高,且像素间相关性强,因此传统的加密算法不适用于图像加密[1-2].混沌系统对初值敏感,能够产生随机性强、难以预测的随机序列,因此成为图像加密的有效手段之一[4-8].
文献[9]提出了一种新的2维混沌映射的图像加密算法,但是相比于高维混沌,该算法的密钥空间较小、密文图像的信息熵不高.文献[10]基于2维混沌映射提出了一种对遥感图片加密的算法,但该算法没有充分运用DNA (deoxyribonucleic acid)运算规则.文献[11]结合Fisher-Yates洗牌算法及DNA编码,提出了图像加密算法,该算法有很好的加密效果.文献[12]提出了基于DNA编码及混沌系统的彩色光场图像加密算法,但该算法安全性不强.文献[13]为了克服计算积分成像系统的不足,提出了基于元胞自动机及DNA编码的图像加密算法,该算法可以有效隐藏原始场景中的分布信息.文献[14]构建了一种随机数发生器,基于其产生的随机序列及DNA编码,提出了一种彩色图像加密算法,该算法使用了改进的低维混沌映射,但与现有算法相比,该算法的密钥空间较小.文献[15]提出了一种基于块间差异的图像加密算法,该算法只需对部分图像加密,且安全性较强.文献[16]提出了仅使用单一DNA编码规则的图像加密算法,但该算法的密钥没有与明文关联,存在安全隐患.该文拟提出基于双混沌系统和DNA编码的图像加密算法,以提高安全性和鲁棒性.
组成DNA的4种脱氧核苷酸分别是腺嘌呤(A)、胞嘧啶(C)、鸟嘌呤(G)、胸腺嘧啶(T).DNA的碱基互补与二进制系统中0与1互补类似,因此每个碱基使用两位二进制数字编码就可以产生24种编码方式[1-3],其中满足二进制互补规则的编码方式有8种.DNA的加、减、异或运算根据二进制系统中的对应规则进行.该文定义DADD,DSUB,DXOR分别为DNA的加、减、异或的运算符.
现有的一些基于DNA的图像加密算法只选取一种编码或一种运算规则进行加解密,单一DNA编码或运算规则的安全性较低.该文利用混沌序列动态确定DNA编码规则序号,以提高安全性.DNA编码规则的序号为
He,i=mod(floor(Yi×1015),8)+1,
(1)
其中:Yi(i=1,2,…,4MN)为混沌序列;M,N分别为加密图像的高度、宽度.
动态选择DNA的运算规则,可进一步增强加密算法的安全性.DNA运算规则的序号为
Ho,i=mod(floor(Wi×1015),3),
(2)
其中:Wi(i=1,2,…,4MN)为混沌序列.Ho,i为0时表示DADD、为1时表示DSUB、为2时表示DXOR.
定义超混沌Chen系统为
(3)
其中:x,y,z,w为超混沌系统的状态变量;a,b,c,d,r为超混沌系统的控制参数.当a=35,b=3,c=12,d=7和r∈(0.085,0.789)时,系统处于超混沌状态.图1展示了当a=35,b=3,c=12,d=7和r=0.5时超混沌Chen系统在平面和空间上的混沌吸引子.该系统具有两个正的李雅普诺夫指数,因此有更复杂的动力学行为,产生的混沌序列更随机和难以预测.从安全角度看,用超混沌系统产生的混沌序列构建的图像加密体系更加安全[17-18].该文利用超混沌Chen系统生成置乱序列,且控制编码、解码和运算.根据超混沌Chen系统生成的随机像素为
Hi=mod(floor(abs(Yi)×1015),256),
(4)
其中:Yi(i=1,2,…,4MN)为混沌序列.
图1 超混沌Chen系统在平面和空间上的混沌吸引子
该文提出基于2维Logistic混沌映射的明文关联初值生成方案,将该方案的结果作为后续超混沌Chen系统的初始值.定义2维Logistic混沌映射为
(5)
其中:α1,α2,β1,β2为混沌系统的控制参数;x0,y0为混沌系统的初始值.当α1∈(2.75,3.4],α2∈(2.75,3.45],β1∈(0.15,0.21],β2∈(0.13,0.15],x0,y0∈(0,1]时,系统处于混沌状态[15,19].相对于1维Logistic混沌映射,2维Logistic混沌映射的周期窗口少,其产生的混沌序列更适合图像加密.图2展示了α1=2.98,α2=3.25,β1=0.19,β2=0.15,x0=0.5,y0=0.5时2维Logistic混沌映射的混沌吸引子.由图2可知,2维Logistic混沌映射有较强的随机性.
图2 2维Logistic混沌映射的混沌吸引子
在混沌系统初值x0和y0的基础上对混沌系统进行迭代,得到2条长度均为1 000+max(M,N)×6的混沌序列L1和L2.为了获得更强的随机性,舍弃2条混沌序列的前1 000项.根据下式得到6个明文图像分割点
(6)
(7)
其中:Mmid和Nmid分别为「M/2⎤和「N/2⎤;fx1,fy1均取给定的初始偏移量;n∈{2,3,4,5,6};Xi表示第i个分割点Di(i=1,2,…,6)的横坐标,Yi表示第i个分割点Di的纵坐标.得到6个明文分割点坐标后,通过表1得到明文图像子区域的分割点坐标.
表1 明文图像子区域的分割点坐标
通过对角线的两个点(即分割点1,2)的坐标可确定子区域的范围.通过SHA-256算法得到5个子区域哈希值,记作Hi(i=1,2,3,4,5).通过5个哈希值间的逐位异或得到联合哈希值,记作Ha.SHA-256算法可将任意长的输入转换为长度256位的哈希值.将Ha分成等长的4部分:Ha1,Ha2,Ha3和Ha4.超混沌Chen系统初值为
(8)
其中:hex2dec()为16进制数转换为10进制数的函数;x0,y0,z0,w0为明文关联密钥.图3为基于2维Logistic混沌映射的明文关联初值生成方案的流程图.
图3 基于2维Logistic混沌映射的明文关联初值生成方案的流程图
将超混沌Chen系统作为伪随机序列生成器,其可同时输出4条随机性强的混沌序列,这些序列用于明文置乱、编码、解码及随机矩阵生成.
该文提出的基于双混沌系统和DNA编码的图像加密算法结构如图4所示.
图4 基于双混沌系统和DNA编码的图像加密算法结构图
加密过程的步骤如下:
(1) 读取明文图像,且将明文图像像素值矩阵记做I,矩阵大小为M×N.
(2) 设置2维Logistic混沌映射初始值xl0,yl0和初始偏移量f.根据第2章的初值生成方案,得到明文关联哈希值Ha.计算超混沌Chen系统的明文关联初始值xc′0,yc′0,zc′0,wc′0.
(3) 设置超混沌Chen系统初始值xc′0+xc0,yc′0+yc0,zc′0+zc0,wc′0+wc0,其中xc0,yc0,zc0,wc0为给定的初始值.进行1 000+5MN次迭代,得到4条混沌序列X,Y,Z,W.为了避免暂态效应,每条混沌序列的前1 000项均被舍弃.
(4) 取混沌序列X前3MN项,且记为X1.根据下标奇偶将X1分为奇序列X11和偶序列X12,奇序列用于行置乱,偶序列用于列置乱.行置乱时,将奇序列X11中的元素每M个分为1组,第1组记X11(1).将X11(1)按升序排序,得到索引序列Xindex(i),i=1,2,…,M.将明文矩阵的第i行与第Xindex(i)行进行交换,其余奇序列执行同样的操作.列置乱时,将偶序列X12中的元素每N个分为1组,之后的操作同行置乱.通过行列置乱,得到置乱图像I1.
(5) 将置乱图像I1逐列展开成列向量(记作L1),列向量的维数为MN×1.
(6) 取混沌序列Y的前4MN项,且记为Y1.利用Y1生成长度为4MN的DNA编码规则序列D1.利用混沌序列X的第3MN+1项至第4MN项以及混沌序列Z的第MN+1项至第4MN项,生成DNA编码规则序列D2.利用混沌序列X,Y,Z,W的第4MN+1项至第5MN项,生成DNA解码规则序列D3.通过DNA编码规则序列D1,将L1编码为碱基串L11.
(7) 取混沌序列Z的前MN项,且记为Z1.通过式(4),将Z1转换为随机像素列向量L2.通过DNA编码规则序列D2,将L2编码为碱基串L21.
(8) 取混沌序列W的前4MN项,且记为W1.利用式(2),生成DNA运算规则序列D4.根据D4的运算规则,将L11与L21进行DNA运算,得到碱基串L31.
(9) 通过DNA解码规则序列D3,对碱基串L31解码得到密文像素列向量L3.
(10) 将密文像素列向量恢复为大小为M×N的矩阵,从而得到密文图像.
解密是加密的逆过程,解密过程的步骤如下:
(1) 读取密文图像,且将其像素值矩阵记作C,矩阵大小为M×N.
(2) 将密文像素值矩阵C逐列展开为列向量(记作C1),列向量的维数为MN×1.
(3) 根据密钥中的明文关联哈希值,计算超混沌Chen系统的附加初值,结合密钥xc0,yc0,zc0,wc0设置超混沌系统的初值,迭代1 000+5MN次,得到4条混沌序列X,Y,Z,W,每条混沌序列的前1 000项均被舍弃.
(4) 取混沌序列X,Y,Z,W的第4MN+1项至第5MN项,将其组合为一个列向量.通过式(1)生成DNA编码规则序列Dde,1.将C1编码成密文碱基串Lde,1.
(5) 取混沌序列Z的前MN项,且记为Z1.利用式(4),将Z1转换为随机像素列向量C2.利用混沌序列X的第3MN+1项至第4MN项以及混沌序列Z的第MN+1项至第4MN项,生成DNA编码规则序列Dde,2.将C2编码成碱基串Lde,2.
(6) 取混沌序列W的前4MN项,且记为W1.利用式(2),生成DNA动态运算规则序列Dde,3.根据Dde,3的运算规则进行DNA运算,得到碱基串Lde,3.
(7) 取混沌序列Y的前4MN项,且记为Y1.利用Y1生成长度为4MN的DNA解码规则序列Dde,4.根据解码规则序列Dde,4将Lde,3解码为置乱像素列向量C3.
(8) 将置乱像素列向量C3恢复为大小为M×N的矩阵,从而得到置乱图像矩阵I1.
(9) 取混沌序列X的前3MN项,且记为X1.利用X1生成对置乱图像矩阵I1进行反置乱的规则.根据该规则进行反置乱,得到明文图像.
该文使用提出的算法对测试图集进行了一系列加解密实验.实验硬件为:Intel(R) Core(TM) i5-6300HQ CPU @ 2.30 GHz,8 GB RAM.实验软件为:Windows 10,MATLAB R2017a.初始密钥为:xl0=1,yl0=1,xc0=1,yc0=2,zc0=3,wc0=4.Lena,Cameraman,Pirate的明文图像、密文图像及解密图像如图5所示.由图5可知:密文图像为杂乱无章的噪声图,不能从密文图像中获取原图的任何信息,这说明该文算法具有很好的加密效果;解密后,解密图像与明文图像完全一致,表明该文算法是无损的.
图5 Lena,Cameraman,Pirate的明文图像、密文图像及解密图像
4.1.1 直方图
直方图能清晰展现图像各级灰度的分布情况.直方图的横坐标为灰度值,纵坐标为该灰度值的像素在图像中出现的次数.若加密算法只对图像的像素位置做调整,即只置乱不扩散,则加密前后的直方图不变.理想的密文图像的各级灰度分布均衡,其直方图是平滑的.图6 为Lena, Cameraman, Pirate图像加密前后的直方图.由图6可知,经过该文算法加密后,原有的灰度分布显著改变,密文的各级灰度分布均衡,表明该文算法具有较强的抵抗统计攻击的能力.
图6 Lena, Cameraman, Pirate图像加密前后的直方图
4.1.2 信息熵
信息熵的计算公式为
(9)
其中:p(mi)为灰度值mi出现的概率.位深为8的灰度图像,其灰度值mi共有28-1种,若其信息熵越接近8,则该图像包含的信息越随机、泄露图像中有效信息的可能性越小.表2展示了测试图像加密前后的信息熵.由表2可知,密文图像的信息熵的平均值可以达到7.999 27,表明经该文算法加密后的图像可以有效避免信息泄露.
表2 明密文图像的信息熵
4.1.3 相关性
通常情况下,明文图像相邻像素间有很强的相关性.性能优异的图像加密算法可以降低像素间的相关性,有效抵抗统计攻击.相关系数的定义式为
(10)
其中:xi,x′i为相邻像素的灰度值.
该文在Lena图像的水平、垂直、对角线方向随机选取5 000对相邻像素进行相关性分析,结果如图7所示.从图7可看出,对于明文图像,从3个方向上随机选取的相邻像素间具有很强的相关性,经该文算法加密之后,相邻像素间的相关性明显降低.
图7 Lena明文图像及密文图像的相邻像素间的相关性
表3展示了多种测试图像不同方向的相关系数.由表3可知,明文图像的3个方向上相关系数平均值接近1,表明相邻像素间的相关性很强,但密文图像的相关系数平均值的绝对值趋近于0,表明相邻像素间几乎无相关性,表明该文算法具有较强的抵抗统计攻击能力.
表3 多种测试图像不同方向的相关系数
4.2.1 密钥空间
图像加密算法为了能抵抗穷举攻击需足够大的密钥空间,若密钥空间大于2100则可以有效抵抗.该文设计的基于混沌的明文关联初值生成方案,可生成一个长度为256 bit的哈希值,此哈希值为密钥的一部分,另一部分为4个初始值;计算机精度为10-15,密钥空间可达到2454,远大于2100.因此,该文算法有足够大的密钥空间,可以抵抗穷举攻击.
4.2.2 密钥敏感性
若密钥微小变化能导致密文巨大变化,则认为密钥具有高敏感性.错误的密钥不能正确解密密文图像.对初始值xc0,yc0,zc0,wc0均增加10-15及哈希值Ha增加1 bit后的密文图像进行解密,得到解密图像如图8所示.从图8可看出,对密钥的初始值及哈希值中的任意1个进行微小改变后,均不能正确解密,表明该文算法的密钥具有较强的密钥敏感性.
图8 密钥敏感性测试结果
4.2.3 抗差分攻击
为了使算法能抗差分攻击,明文图像发生微小改变前后对应的密文图像间需有非常大的变化.像素改变率(number of pixels change rate,简称NPCR)和像素平均改变强度(unified average changing intensity,简称UACI)是描述算法抗差分攻击的两个指标,对于两幅图像I1,I2,NPCR和UACI的定义式分别为
(11)
其中:M×N表示图像的大小;I1(i,j),I2(i,j)分别表示图像I1,I2在(i,j)处的灰度值;F为图像最大的灰度值255.
NPCR,UACI的期望值分别为99.609 4%,33.463 5%[8].表4展示了多种测试图像在发生1个像素改变前后的密文图像间的NPCR及UACI.由表4可知,NPCR及UACI的平均值均接近对应的期望值,表明该文算法具有较强的抵抗差分攻击的能力.
表4 多种测试图像的1个像素发生改变前后的密文图像间的NPCR及UACI %
4.2.4 抗剪切攻击及抗噪声攻击
在网络环境中信息丢失或信息被干扰会经常发生,性能良好的算法在信息丢失或被干扰情况下应具有鲁棒性,即在密文图像丢失部分信息或被干扰情况下通过解密仍能提取明文图像包含的信息.
在抗剪切攻击分析中,分别剪切了密文图像的1/16,1/4,1/2后进行解密.抗剪切攻击的测试结果如图9所示.从图9可以看出,尽管密文损失了一部分甚至一半,明文图像的大致轮廓还能显示出来.
图9 抗剪切攻击的测试结果
在抗噪声分析中,对密文图像添加了3种高斯噪声,其参数分别为:①均值为0、方差为0.000 1;②均值为0、方差为0.001,③均值为0、方差为0.005.抗抗噪声攻击的测试结果如图10所示.从图10可看出,解密图像仍包含明文图像的绝大部分信息,表明该文算法在噪声环境中具有鲁棒性.
图10 抗噪声攻击的测试结果
为了对比不同文献算法的性能,表5展示了不同文献算法性能参数的平均值.由表5可知,相对于其他引用文献算法,该文算法水平及垂直方向的相关系数的绝对值最低,对角线方向的相关系数的绝对值仅高于文献[11,20] 的绝对值;该文算法的信息熵是最高的;该文算法的NPCR仅低于文献[4,10] 的NPCR;该文算法的UACI是最高的.因此,该文算法相对于其他引用文献算法具有较高的综合性能.
表5 不同文献算法性能参数的平均值
该文首先提出了基于混沌的明文关联初值生成方案,根据给定的混沌初值和明文图像确定输出的哈希值;在初值生成方案的基础上,提出了基于双混沌系统和DNA编码的图像加密算法.加解密实验结果表明:该文算法具有很好的加密效果,该文算法是无损的.对该文算法的性能分析结果表明:该文算法具有较强的抵抗统计攻击、穷举攻击、差分攻击的能力,可有效避免信息泄露,在噪声环境中具有鲁棒性.不同文献算法性能比较结果表明:相对于其他引用文献算法,该文算法具有较高的综合性能.