赵 桥,李 博,项融融
(中北大学 仪器与动态测试教育部重点实验室,太原 030051)
信息技术的飞速发展推动了社会各个领域的发展,改变了人们的工作和学习方式,社会生产力也得到极大的提升。在享受这个时代带来种种便利的同时,人们自身的信息安全也会受到威胁[1]。
在这种背景下,图像加密技术开始出现。图像加密是一门融合了图像处理和密码学等领域的新型交叉学科,它可以保护图像中的敏感数据,避免非授权访问或窃取、篡改图像。通过加密,只有授权的用户才能访问受保护的图像。此外,随着信息技术的不断发展,不法分子破译的手段也在不断提升。在此背景下,研究新的图像加密技术刻不容缓[2]。
混沌系统因为其初值敏感性、有界性、不可预测性等优点,刚好被运用在图像加密领域。近几年基因工程也在飞速发展,使人们的目光同样聚焦到生物学上。科学家们将DNA数据链可以携带大量信息的特征与二进制数据链的特点相比较[3],将生物学和计算机科学进行了特殊的结合,凭借DNA序列的一些优点,如具有很高的并行性和存储空间大等优点,研究出了基于DNA序列的图像加密方法。同时,研究者们将目光聚焦于混沌系统和DNA编码技术相结合的图像加密技术,事实也证明了基于混沌系统和DNA的图像加密技术是大有可为的。
针对混沌系统和DNA的图像加密技术,一些文献中已经提供了不同的思路和方法。文献[4]中研究者们初步将混沌系统和DNA序列相结合,提出一种新的图像加密技术,该算法虽然一定程度上可以保证加密图像的安全,但是没有对抗噪声和抗剪切性的分析,同时也不能很好地抵御外来攻击。文献[5]中研究者们将Logistic混沌系统和DNA编码相结合,得到了一种图像加密方案,该方案可以将8种DNA加密算法规则混合到一起,很明显地提高了算法的置乱和扩散效率,可以较好的抵御外部的明文攻击。文献[6]中研究出一种基于分块置乱和混沌系统的加密算法,该算法中的分块、分区域思想可以很好地应用到DNA的碱基运算过程中。文献[7]则是研究出一种同步排列扩散技术,可以在DNA序列的基础上对像素进行置乱和扩散。文献[8]中研究者们提出了一种基于混沌系统和DNA编码的图像加密算法,该算法将混沌系统和DNA很好的结合在一起,但是在实现过程中,DNA编码过程不是动态编码,碱基运算的复杂程度和混沌系统的稳定性都不够高。文献[9]中利用变步长约瑟夫遍历的方法,结合动态DNA编码规则,提出了一种全新的算法,该算法碱基运算规则复杂,有较好的安全性。文献[10]在混沌系统和DNA编码结合的基础上,引入了一种哈希函数,得到一种新的算法,该算法具有很好的抗差分攻击的能力,但其缺少相关的鲁棒性能。文献[11]将超混沌系统引入图像加密领域中,该算法一定程度上提高了算法的安全性,但其密钥空间不够大,不能很好地抵御穷举攻击。文献[12]将logistic混沌系统和动态DNA编码相结合,且拓展到了彩色图像加密领域,该算法的加密效果良好,但是该算法缺少相关鲁棒性能的分析。
由上述可知,虽然目前混沌系统结合DNA的加密算法已经取得了一些研究成果,但是依然存在一些问题,比如密钥空间较小、密文的熵值较低、抗攻击能力弱等,本文针对上述问题进行设计算法和深入研究。本文的主要贡献如下:
1)将普通的一维和多维混沌系统升级为Chen超混沌系统,同时结合了分段Logistic混沌映射,使系统可以更快进入混沌状态的同时,也变得更加稳定,加密效果更好。采用DNA编码规则进行编码,且动态DNA编码进一步增加了编码运算的多样性,让加密过程更安全。
2)将传统灰度数字图像的加密算法扩展至彩色数字图像,使得算法的应用范围更广泛。
密码学是一门研究信息保密的学科,涉及到加密、数字证书和其他安全计算技术等。它使用密码、密钥和数学算法等对数据进行特殊加密,以达到保护数据的目的。
现代密码学的核心思想是通过使用特定的加密算法来加密明文序列,接收者再通过特定的解密密钥对加密文件进行解密,得到最初的明文序列。具体的工作流程如图1所示。
图1 加密流程图
加密算法的好坏可以用不同的指标来进行衡量和比较。密钥空间越大,破解的难度就会呈几何倍的提升,抵御外来攻击的能力就会越强。直方图是否均匀分布也可以体现出加密算法的好坏,加密后的直方图分布越均匀,加密算法的效果越好。其他的一些性能指标,如相邻像素相关性、信息熵、抗差分攻击、密钥敏感性、抗噪声性能和抗剪切性能等也都可以分析出加密算法的好坏。
混沌理论是一个在复杂性科学领域里非常本质的理论。混沌是一种非常特殊的现象,它具有对初值的高度敏感性,有一定的边界,没有周期性。像被人们所熟知的“蝴蝶效应”理论,即“南美洲的一只蝴蝶扇一扇翅膀,就可能在佛罗里达州引起一场飓风”,这句话描述的就是一种典型的混沌现象。
混沌系统在图像加密领域中,根据不同的维度可以将其分为低维和高维混沌系统;根据混沌系统的Lyapunov指数是否有一个正数,可以将其分为普通混沌系统和超混沌系统。下面对一些常用的混沌系统进行介绍。
1.3.1 Logistic混沌系统
Logistic混沌映射[13]是一种一元二次的单峰映射,是生态学中的虫口模型,又叫Logistic迭代,可以用下式进行表示:
xk+1=μxk(1-xk)
(1)
图2为Logistic的映射分叉图,从图中可以看到,当μ=3 时,系统开始出现分叉;当μ增大到3.569 9时,系统开始出现混沌状态;当μ=4时,映射达到满映射,进入全混沌的状态。
图2 Logistic的映射分叉图
对Logistic混沌映射进行分段,具体公式如下:
(2)
式中,x0∈(-1,1),μ∈[0,2],且分段后增加了初始值的范围,减小了映射参数,使该系统可以更快的进入混沌系统。
1.3.2 Chen混沌系统
1999年,我国的陈关荣教授,在Lorenz系统的基础上进行了改进设计,提出了结构更为复杂的Chen系统[14]。
(3)
根据上式可得,当α=35,β=3,γ=28时,Chen系统进入混沌状态。
1.3.3 Chen超混沌状态
将Chen混沌状态作为基础,对其进行升级改造得到了四维的Chen超混沌状态,其密钥空间更大,系统复杂程度更高,加密效果也更好[15]。系统的动态方程如下:
(4)
上式中:a、b、c、d、e表示该系统的参数,x、y、z、q表示该系统的变量。当系统参数值a=35,b=7,c=12,d=3,e∈(0.085,0.798]时,可以计算出该系统的Lyapunov指数存在两个正值,此时的Chen混沌满足了超混沌的定义,即该系统是超混沌系统。
超混沌系统相比于高维和低维系统的内部更加复杂,因此其具有更好的加密效果。
DNA编码技术是一种将分子生物技术和计算机技术结合在一起的新学科。该技术利用DNA的伪运算进行信息隐藏和加密。
DNA的全称是脱氧核苷酸,是一种双链结构的高分子化合物[16],其由4种脱氧核苷酸组成,分别为:腺嘌呤(A)、鸟嘌呤(G)、胞嘧啶(C)、胸腺嘧啶(T)。其中A和T互补,G和C互补。因为计算机只有二进制0和1,而0和1是互补的,01和10互补,00和11也是互补的。因此,A、G、C、T可以用于计算机的编码,共有24种方案。但是由于互补原则,其中只有8种方案可使用,如表1所示。
表1 DNA编码和解码规则
如对一像素值为228的像素点进行编码时,先将其变为二进制编码“11100100”,对应8种不同的编码规则,即:AGCT,ACGT,GTAC,GATC,CTAG,CATG,TGCA,TCGA。当对一图像进行加密时,加密算法采用一种DNA编码规则,解密算法采用另一种DNA解码规则时,像素值可以被有效的加密,无法恢复原来的图像。DNA编码的多样特性可以使图像的加密过程更加安全。还是对像素值为228的图像进行加密,用规则2对其进行编码得到DNA序列为TGCA,再使用规则8对其进行解码得到二级制数00100111,其对应像素值为39,与原图像的像素值差距很大,因此DNA编码可以很好的保护图像信息的安全。
本文所提出的新算法大致包括了以下内容:Chen超混沌系统、DNA的编码解码和运算、区域分块运算、分段Logistic混沌映射和三通道红、绿、蓝彩色图像等几部分。
首先将彩色数字图像根据红、绿、蓝3个通道分为三个二维矩阵,并对3个矩阵进行DNA分区域编码处理;其次由Chen超混沌系统生成的序列决定了每个二维矩阵的DNA编码解码规则和运算规则,按照相应规则进行加密,加密后由分段Logistic生成相应的序列再次进行行、列置换,分段的Logistic混沌映射可以让系统更快的进入混沌状态;合并红、绿、蓝3个通道的3个矩阵,生成三维矩阵,最终得到相应的彩色加密图像。
DNA碱基之间的区域分块运算规则增加了编码运算的多样性,使得加密过程更加安全。分段Logistic混沌映射迭代得到的3个不同的混沌序列,一个用于与原始图像进行DNA运算,一个用于行置换,一个用于列置换,在增强密文图像的置乱效果的同时可以获得抗裁剪的特性,同时分段的Logistic混沌映射可以使系统更快进入混沌系统,更好地保证图像在传输过程中的安全性。具体加密流程如图3所示。
图3 具体加密流程图
1)读取一张大小为M×N的原始图像P,将其按照红(R)、绿(G)、蓝(B)3个通道分为三个二维矩阵,分别为P1、P2、P3。分离方式如下:
(5)
2)设置分块大小t,使1)中的P1、P2、P3矩阵都能分成t2个大小的块。
3)设定参数μ和初值x0作为加密的密钥,使μ为3.999,初始值x0进行如下处理:
(6)
其中:sum表示像素的总和,x0为P1和P2的灰度平均值。
4)对分段Logistic混沌映射迭代得到序列K,将K转换为M×N的二维矩阵,其范围规定在0到255。
(7)
X0、Y0、Z0、H04个值在算法中也可以作为密钥使用。
6)DNA共有8种编码方式,记为规则1到规则8。由Chen超混沌系统产生了4个序列X、Y、Z和H,将4个序列进行如式(8)处理。序列X决定三个二维矩阵编码的方式,序列Y决定R矩阵的DNA编码方式,序列Z决定三个二维矩阵和R的运算规则,序列H决定DNA的解码规则。序列Z决定4种DNA运算规则,序列X、Y、Z则是对应有8种DNA编码解码方式。
(8)
7)运算规则由序列Z决定,当Z=0时,采用加法运算;Z=1时,采用减法运算;Z=2时,采用异或运算;Z=3时,采用同或运算。
8)采用分区域分块运算,将当前的加密结果和前一块的再次进行DNA运算。DNA解码运算时DNA编码运算的逆过程,由序列H决定,把A、G、C、T解码成对应的数值。
9)获得两个Logistic混沌序列K1和K2,过程与3)类似。两个初值x01和x02根据式9产生。X01表示R通道和B通道的平均灰度值,x02表示G通道和B通道的平均灰度值,两个值可以作为本加密算法的密钥。
(9)
10)对9)中的序列K1和K2进行降序操作。对R、G、B这3个通道的矩阵进行置换,获得更好的置乱效果。
11)将三个二维矩阵进行合并成一个三维矩阵,得到加密后的图像。
2.3.1 解密算法整体框架
解密过程就是加密过程的逆过程,即解密过程中采取和加密过程的相反操作。解密过程要注意:1)要使用和加密时完全相同的密钥;2)DNA的解码是加密过程中DNA的编码,DNA的编码是加密过程中的解码。正确地进行解码操作才能得到和原图完全相同的解密图像。
2.3.2 解密过程具体步骤
解密过程的步骤即为加密过程的反过程。图4是解密算法的具体流程图。
图4 解密算法的具体流程图
本次的仿真过程借助Matlab 2018a平台,8 GB内存计算机,Win7 操作系统上实现。此实验中使用了经典的Lena和Peppers两种彩色图像,像素大小均为512 ×512 ,原图像如图5(a)所示。经过本章算法加密后的图像如图5(b)所示,从图像(b)我们可以清晰的看出,经过加密后的图像呈现出一种雪花状的噪声状态,完全隐藏了原始图像的信息,且通过和原图(a)的对比,看不到任何的相关信息,有很好的加密效果。解密后的图像如图5(c)所示,和原始彩色图像完全相同。由此可以得出结论,仅从仿真角度来看,本章算法可以达到很好的加密和解密效果。
图5 仿真结果图
3.1.1 密钥空间分析
Chen超混沌系统中的4个初值X0、Y0、Z0、H0可以作为算法的密钥,此外运用到了三次分段Logistic混沌映射,参数μ是相同的,三次的初值则不同,分别为x0、x01和x02,共有8个值作为算法密钥。通常在64位计算机操作系统下,浮点数的精度为10-16,则此算法的密钥空间容量为1016× 1016× 1016× 1016× 1016× 1016× 1016× 1016=10128。且该算法也可以设置3种不同的Logistic混沌映射的参数μ,此时密钥空间将增大到10160。当密钥空间的大小超过2100时,说明了该算法基本满足了密钥空间的安全需求。该算法密钥空间远大于安全密钥空间的基本要求,可以很好地抵御穷举攻击,保证信息的安全性[17]。
3.1.2 直方图分析
以色彩特征更为明显的图像Peppers为例,该算法的直方图仿真结果如图6所示。原始彩色图像R(红)、G(绿)、B(蓝)3个通道的直方图曲线十分陡峭,高低分布显著不同。而加密图像的直方图中,各线条均匀分布,高低在一定的数值上下波动。因此可以得出结论,本文算法具有很好的抵御统计分析的能力,即使被攻击,也不会被攻击者得到有用的信息[18]。
图6 加密前后R、G、B三通道图像的直方图
3.1.3 信息熵分析
信息熵可以表示一个系统的复杂程度,一个系统越是有序,信息熵就越低;相反的,一个系统越是复杂混乱,信息熵就越高。信息熵越接近8,密文信息越安全[19],信息熵的计算公式如式(10),式中mi表示图像的灰度值。
(10)
彩色图像Peppers在加密前后的3个通道R、G、B的信息熵值,以及和其他文献算法加密图像的比较如表2所示。
表2 原始图像和密文图像信息熵对比
由表2可以看出,加密图像的信息熵相较于原始图像有很明显的增加,且都非常接近理论信息熵的最大值8,说明了密文图像的混乱程度非常高。同时本文算法加密后的信息熵值总体大于文献[20]和文献[21]的加密算法,由此可以得出结论,该算法能够很好地抵御外部攻击,能保证密文信息的安全。
3.1.4 相邻像素点的相关性
相关性分析是分析图像像素之间的关联性强弱,一般明文图像相关系数很接近1,说明该图像的相关性高,体现在相关性系数点图上为图像总体呈线性分布。而加密算法则是要打破像素点之间的强关联系性,使相关系数降低。密文相关性越接近0,加密效果越好。经过仿真实验对水平、垂直和对角线3个方向的分析,随机选取5 000对相邻像素计算其相关性,计算公式如式(11):
(11)
式中,E(x),E(y)表示相邻像素点之间的期望值,n表示像素点的个数,cov(x,y)表示协方差,r(x,y)表示相关系数。
表3为彩色图像Peppers原始图像和密文图像分别在R(红)、G(绿)、B(蓝)3个通道的相邻位置相关性的数据对比,即相关性系数的大小比较。
表3 相关性系数大小比较
由表3可以得出,原始图像的R(红)、G(绿)、B(蓝)3个通道的水平、垂直和对角线系数都很大,很接近于1,说明加密前的图像像素点之间的相关性都很高。而密文图像的R、G、B3个通道的水平、垂直和对角线系数都很接近0,说明加密后的图像像素间基本没有关联性,从加密图像上得不到一点关于原图像的有用信息,加密效果良好。
3.1.5 密钥敏感性分析
密钥敏感性[22]分析主要是通过对初始密钥进行一个极小的改变,最终导致图像解密失败,这样就可以说该算法密钥敏感性高,可以很好地保证加密图像的安全性。除了根据均方差MSE判断外,还可以对初始密钥进行极小的改变,观察是否能解密出清晰的图像。本章在解密过程中,让初始密钥之一的μ产生极其微小的变化,由3.999变为3.999 000 001,利用修改后的密钥对其进行解密操作,不能得到清晰的解密图像如图7(a)所示。再对另一初始密钥x0的值进行改变,由0.547 5变为0.547 499 999 9,得到错误密钥下的解密图像如图7(b)所示。
图7 密钥改变时的解密图像
从图7中可以明显看出,即使初始密钥发生了极其微小的变化,解密后得到的图像也和原始图像完全不相同,没有任何联系。说明了本章设计的算法对密钥具有极高的敏感性,同样的算法安全性也高。
3.1.6 抗差分攻击能力分析
抗差分攻击则是对原始图像的一部分特定区域进行分析和攻击,最后得到不同像素点占总体像素点的部分数。对于一个加密算法而言,像素点的变化导致加密图像发生明显的改变,对加密结果的影响大,那么它就可以有效抵御差分攻击。NPCR和UACI是定量测试分析原始图像和加密图像的方法[23],具体计算方法如式(12)和(13)。
(12)
(13)
表4和表5为本章加密算法和与其他文献算法的对比结果,且比较对象都是Peppers图像,表对比结果可以看出本章算法具有很好的抗差分攻击能力。
表4 图像NPCR数据分析对比
表5 图像UACI数据分析对比
3.1.7 抗剪切性能分析
抗剪切能力是指在进行图片加密处理过程中,加密后的图片在遭遇剪切攻击时,可以保证加密后的形态不被歪曲或改变的功能。本次实验选取一张布满文字的数字图像,对其加密得到加密后的图像,并对加密图像进行剪切性攻击,最后对该图像进行解密操作,如图8所示。
图8 抗剪切性能效果图
从图8可以看出,虽然对密文图像的一些区域进行了剪切,但本章算法能够将对局部区域的破坏转移到整体图像上,虽然最终的解密图像没有原始图像清晰,但是本算法能确保关键信息的不丢失。如本实验的图像,经剪切后依旧能得到每个字的信息,没有被破坏遗漏,保持了整张图像的完整性。上述结果表明本章算法的抗剪切能力强,适用于包含细节关键信息图像的加密。
3.1.8 抗噪声性能分析
为了测试本章算法的抗噪声性能,分别对密文图像加入不同程度的噪声进行干扰。加入不同程度噪声后的解密图像结果示意图如图9所示。从图像中可以清楚的看到,随着噪声的程度加大,图片的质量也随着变差,越来越模糊,但是仍然能分辨出图像的主要信息,没有信息的丢失,说明了本章算法的抗噪声能力强,安全性能好。
图9 不同程度噪声下解密图像的效果图
峰值信噪比(PSNR)和均方误差(MSE)可以从抗噪声方面对图像质量进行评价。在加密后的图像中依次加入椒盐噪声密度为0到1,密度间隔为0.1的椒盐噪声得到对应的解密图像,MSE和PSNR的值分别可以由式(14)和式(15)计算,并绘制出相应的椒盐噪声密度-均方误差MSE曲线图和椒盐噪声密度-峰值信噪比PSNR曲线图如图10所示。
(14)
图10 R通道加入噪声后的MSE和PSNR曲线图
式中,用G和K分别表示原始图像和加密过后的图像的二维序列。分别可以具体表示为M={M(i,j)}和N={N(i,j)},i=1,2,…,M;j=1,2,…,N。
(15)
由图10可以看出,当椒盐噪声值密度小于0.4时,该算法抗噪声能力强;当椒盐噪声密度达到0.4时,图像基本处于失真状态,受噪声影响很大。
本文所提出算法包括以下内容:首先将彩色数字图像根据红、绿、蓝3个通道分为3个二维矩阵;其次由混沌系统生成的序列决定了每个二维矩阵的DNA编码解码规则和运算规则;合并红、绿、蓝3个通道的3个矩阵,生成三维矩阵,最终得到相应的彩色加密图像。通过仿真结果以及和其他算法的比较分析,可以得出结论:该算法和其他的算法相比,密钥空间更大,相关性系数极小,有良好的抗噪声和抗剪切性能,还能适用于彩色图像的加密,可以满足用户很高的加密需求。
未来的图像加密领域仍会有极大的发展空间,本文算法虽然能够有效保证图像加密的安全性,但是也存在着一些缺陷。该算法密钥空间很大,加密效果良好,且可以应用于彩色图像的加密设计,有良好的抗噪声和抗剪切性能,但是加密速度较慢,算法也更加复杂。以后的研究方向可以从下列几个方面进行入手:1)对算法的复杂度、安全性和加密速度之间要做出一定的平衡,做到最大程度的兼顾。2)与不同领域进行结合研究,如本文的所用到的DNA编码就是生物学领域的方法,还可以考虑与生态学、化学等领域相结合。3)将图像加密延伸到视频加密,图像加密是视频加密的基础,在算法方面可以朝着视频加密的方向去研究。