APP下载

基于DNA编码的安全高效的图像加密算法

2018-02-27李孝东周彩兰黄林荃

计算机应用与软件 2018年1期
关键词:明文加密算法密钥

李孝东 周彩兰 黄林荃

1(武汉理工大学计算机科学与技术学院 湖北 武汉 430070) 2(华中师范大学大学计算机科学与技术学院 湖北 武汉 430079)

0 引 言

随着互联网突飞猛进的发展,图像的安全不断吸引着人们的眼球,为了保护图像信息的不被泄露,许多图像加密算法被提出和实现。由于数字图像具有信息量大、冗余度高、相邻像素相关性高等特点,传统经典的数据加密技术例如RSA[1]、DES[2-3]、 AES[4-5]等并不适合加密图像信息。混沌系统[6-8]有很多很好的特性,例如初始值敏感性、参数敏感性、状态遍历性、混合和相似随机性等,正是由于这些优质特性,才越来越多地利用混沌映射对图像信息加密。由于混沌系统与密码学之间有着微妙的联系,许多基于混沌映射的图像加密技术被提出与实现。本文采用Lorenz混沌映射[9-10]产生的伪随机数列对彩色图像进行位置置换。DNA[11-15]计算的很多优良的特性最近被发现,例如:大规模的计算并行性、巨大的存储空间和微小的能量损失等特点,所以,利用DNA互补规则来加密信息的技术取得了很大的进步。目前的基于DNA加密算法,通常是利用DNA作为要加密内容的运载体,通过先进的生物技术为技术手段,从而可以使用在一系列的应用中,比如加密、授权、校验和认证等。但是,目前DNA编码的图像加密算法还存在没有克服的问题,主要包括三点:DNA编码规则单一有限,DNA运算规则有限,对图像、密钥的敏感性很低等。针对上述所提出的加密算法中存在的问题,本文提出的算法将以DNA的计算以及编码规则结合混沌映射的优良特性,采用混沌映射的随机性来随机确定DNA编解码规则以及随机决定DNA运算;提出一种新的DNA同或运算,增加了运算的选择空间;利用SHA-256对原图来产生外部密钥,只要原图有微小的改变,SHA-256的哈希字符串就会存在巨大的差别,从而秘钥和明文图像之间就建立了密切的联系,提高了密钥的敏感性以及明文的敏感性,有效地抵制选择明文攻击,查分攻击等一系列攻击。

1 相关工作及本文贡献

基于DNA编码和混沌映射的图像加密算法目前正在兴起,一般的基于混沌的图像加密算法包括两个部分,置乱和扩散。这两个过程可以依次进行也可以同时进行。基于DNA编码的图像加密也包括两个阶段。编码阶段和解码阶段,在第一阶段,原始图像根据DNA规则进行编码,与此同时,生成DNA掩码矩阵并对其进行DNA编码。然后,对编码的原图和编码的DNA掩码矩阵进行DNA运算。最后,通过解码DNA运算的结果,可以得到加密的图像。在整个过程中,一切随机性的操作都是由混沌映射决定的。利用混沌映射是从数学角度来加密图像,但是利用DNA编码技术是从生物角度来加密图像。Enayatifar等[11]提出了基于遗传算法和DNA序列的图像加密算法。在这个研究中,通过logistic混沌映射和DNA编码规则来得到DNA掩码的初始值,然后通过遗传算法获取最佳的DNA掩码。Liu等[14]提出了基于混沌和DNA互补规则算法,首先由分段线性混沌映射产生随机数组,然后通过随机数组对图像依次进行行与列的置乱,最后,对置乱后的图像每个像素进行编码并且转化为碱基对。Huang等[15]提出了基于超混沌和DNA序列算法。在这个算法中,由一个四维超混沌系统得到的伪随机序列,将其转化为DNA序列,用以扩散原始图像。经过几轮的置乱,可以得到最终的加密图像。

本文提出的算法中,特定的DNA编码规则和运算规则都是由混沌映射随机决定的。由Lorenz混沌映射生成三条混沌映射随机序列,由数学运算分别对原图的R、G和B分量进行位置置换,与此同时,由三条混沌序列生成R、G和B分量相对应的DNA掩码矩阵。然后随机选择8种编码规则逐行对原图的分量以及掩码矩阵进行编码,图像的每一行的编码规则都是由混沌映射随机决定的。编码后的掩码矩阵与编码后的原图的分量逐行进行随机的DNA运算,保证了图像的每一行的DNA运算都是随机选择的。最后对编码后的图像进行解码,得到最终的加密图像。本文的主要贡献包括:

(1) 由混沌映射随机决定DNA编码规则与DNA运算,逐行进行DNA编码与运算。保证了图像的每一行的DNA编码与运算都是随机选择的。

(2) 提出DNA同或运算规则,与加、减和异或运算一起,扩大了运算的随机性。

2 系统理论基础

2.1 Lorenz映射

本文所采用的Lorenz映射的定义如下,Lorenz映射的描述参考文献[9-11]:

(1)

式中:x、y和z组成了整个系统的状态,a、b和c是系统的参数。当a=10,b=8/3,c=28时,系统进入了混沌状态。

2.2 一维Logistic混沌映射

本文所采用的一维Logistic映射[16-17]的定义如下:

f(x)=ux(1-x)x∈[0,1]

(2)

式中:u是常数。仅考虑当x∈[0,1],f(x)∈[0,1]时的情形,所以u还是要满足0

2.3 安全哈希算法(SHA-256)

哈希函数主要用于提供完整的安全服务,他们也提供安全服务的身份验证,当它们用于数字签名和消息身份验证代码算法相结合。SHA-256是一个广泛用于加密的哈希函数,加密之后会生成了256位的二进制哈希值,通常表现为64位编码的十六进制的一串数字。根据参考文献,由于它良好的安全性,即使原始图像有一个像素的改变,将会导致两幅图像最后得到的哈希值完全不一样。本文将256位的外部密钥K分为8块,所以可以得到32个分段密钥ki(i=1,2,…,32)。给定的256位外部密钥如下:

K=k1,k2,…,k32

(3)

Lorenz混沌映射和Logistic混沌映射的初始值分别通过式(4)与式(5)生成:

(4)

(5)

2.4 DNA序列

Deoxyribonucleic acid(DNA)是一种由四种核苷酸组成的分子结构。腺嘌呤(A),胸腺嘧啶(T),胞嘧啶(C),鸟嘌呤(G)和构成了核苷酸的主要组成部分。根据DNA的配对规则,A与T配对,C与G配对。根据DNA的互补配对规则,一共有八种合法的组合,如表1所示。

表1 DNA编码规则表

在对图像的加密过程中,每个8 bit的像素点的灰度值,可由4个编码的DNA序列表示,例如,一个像素灰度值为201,二进制序列表示为11001001,按照DNA规则将它进行编码,我们可以得到8种组合:TACG、TAGC、ATCG、ATGC、CGTA、CGAT、GCTA和GCAT。除此之外,本算法还对DNA序列进行不同的运算来加密图像。DNA异或运算、加法运算、减法运算分别在表2-表4中列出。

表2 DNA同或运算

表3 DNA加法运算

表4 DNA减法运算

为了扩大运算的随机性,本文提出了另外一种新的DNA同或运算规则如表5所示,从表中可以看出每一行或者每一列都是唯一确定的。换句话说,如同加、减、异或运算一样,同或运算的结果是唯一的。本算法将会运用这些运算规则来改变图像的像素值。

表5 DNA同或运算

3 加密与解密算法

3.1 加密算法

算法首先将大小为M×N的原始彩色图像三分量分离得到R、G、B分量并将其转换为一维序列。再应用Lorenz映射产生的三条混沌序列xn、yn、zn分别对三个分量进行位置置换,并重新转化成二维数组生成R′、G′、B′,并将xn、yn、zn转换为二维数组记作Mx、My、Mz。然后逐行对Mx、My、Mz、R′、G′、B′随机DNA编码,编码之后的图像分别记作:Mex、Mey、Mez以及Re′、Ge′、Be′。然后对Re′与Mex,Ge′与Mey,Be′与Mez逐行进行随机DNA运算,最后将得到的结果根据八种规则随机进行DNA解码。最后转换成十进制的像素灰度值,三分量合并可得到加密图像具体的步骤如下:

第一步:输入原彩色图像P(M,N),这里M和N分别为图像的长和宽。

第四步:对xn、yn和zn做如下处理:

(6)

式中:函数sort()是一个排序下标函数,lx、ly、lz分别是在xn、yn、zn升序排列之后重新生成的一个新的下标数组。fx、fy、fz分别是xn、yn、zn升序排列之后得到的一个新序列。

第五步:将原彩色图分解为R、G、B三个分量,并将其转化为一维序列分别记作Vr(M×N)、Vg(M×N)、Vb(M×N)。对Vr、Vg和Vb进行位置置乱,置乱依据如公式:

(7)

第六步:将Vr′、Vg′、Vb′转换为三个二维矩阵。记作:R′(M,N)、G′(M,N)和B′(M,N)。同时根据xn、yn、zn生成三个二维矩阵,生成密钥图像,记作:Mx、My、Mz。

(8)

第七步:对Mx、My、Mz以及R′(M,N)、G′(M,N)、B′(M,N)逐行从表1中选取编码规则进行随机的DNA编码,编码规则由式(2)和式(9)决定。

rule=⎣x×8」+1

(9)

rule是指特定的规则,是整个编码过程的关键。式(2)的初始值由式(5)计算得出。DNA编码规则如表1所示。图像的每一行的像素值按照指定的规则进行DNA编码,不同的行有不同的编码规则。每一个像素点包含8 bits,根据DNA编码规则,8 bits能够被分为4种核苷酸。原始图像的大小为M×N,通过逐行DNA编码之后,每幅图像的大小为4×M×N。

第八步:在生成编码后的密钥图像与编码后的三个原图分量分别进行逐行DNA运算,编码后的Mex、Mey、Mez分别与编码后的Re′、Ge′、Be′进行逐行DNA运算。每一行指定的DNA运算由式(2)和式(10)决定。关于DNA运算的细节如表2到表4所示。

operation=⎣x×4」+1

(10)

式(2)的初始值由式(5)计算得出。这里operation指的是具体的DNA运算。根据选中的DNA运算逐行对两幅图像进行运算,在此期间,四种DNA运算(XOR, +, -, XNOR)将会由Logistic混沌映射选择。运算完成之后,生成的DNA编码三幅图像大小均为4×M×N。

第九步:分别随机解码经过DNA运算之后的三幅图像。解码规则根据式(9)。然后合并解码之后的三幅图像。至此,图像加密完成。

3.2 解密算法

解密算法与加密算法相似,实质就是图像加密的逆过程。但是有一些细节与加密过程不同,特别是在进行DNA减法运算时,在接收者解密图像之前,他们已经拥有了加密图像所使用的密钥。密钥要比加密图像更早传送到接收者。本文的解码算法如下:

第一步:提取加密图像的三分量,根据加密算法第七步中所描述的规则的逆过程,对加密图像的分量分别进行DNA随机编码。

第二步:生成三幅密钥图像以及经过DNA随机编码的密钥图像。具体的步骤参考加密算法的第六步。

第三步:利用编码的密钥图像与编码的加密图像进行DNA运算。指定的DNA运算在加密算法的第八步有详细的描述。这里应该注意到,有四种DNA运算。DNA加、减、异或和同或运算。DNA加法,异或和同或运算时是对称的运算,但是DNA减法运算时是不对称的运算。所以在进行解密时,DNA加法和异或运算可以继续使用在解密算法中。然而DNA减法应该根据指定的DNA编码规则重新定义,这是解密算法的关键。例如,根据表4,A-A=C, A-C=G, A-T=A, A-G=T。当做逆运算时,C-A=A, G-C=A, A-T=A, T-G=A,但是A-C=G, C-G=G, T-A=G, G-T=G,这是由于减法运算的不对称性造成的。因此,在设计解密算法时,在进行DNA减法运算时要重新设计减法运算规则。

第四步:解码由第三步得到的DNA编码图像,可以得到三幅DNA解码的图像。但是此时得到的还是位置置乱的图像。

第五步:将上一步的图像转化成一维序列,记作:Vr′、Vg′和Vb′是置乱的序列。要想得到没有置乱的序列Vr、Vg和Vb,必须对加密步骤的第五步进行逆操作。公式如下:

(11)

式中:lx、ly、lz为加密算法第四步、第五步所提到的。

第六步:将第五步产生的三幅图像结合到一起,就形成了解密之后的最终图像。

4 性能分析

为了验证本算法的性能,本文做了如下实验:直方图分析、相关性分析、密钥空间分析、信息熵测试、密钥敏感性和抗查分攻击分析等。这里我们选取了大小为256×256的Lena彩色图像作为测试对象,使用MATLAB 7.12仿真加密与解密操作,对每一种分析方法进行了详细介绍。

4.1 直方图分析

直方图反映了图像中每个像素值的个数,理想的加密算法所加密的图像的直方图如果呈现得越平滑,表明提出的加密算法越好。从图1与图2中的对比中可以发现,密文图像的直方图非常平滑,而且可以看出与明文图像的直方图不存在任何关系。所以,本文突出的算法不会让攻击者通过分析密文图像得到任何有用的统计信息,因此可以预防统计攻击。

图1 明文图像的直方图

图2 密文图像的直方图

4.2 相关性测试

在原始图像中,相邻像素之间是具有很强的相关性的。一个好的图像加密算法应该打破相邻像素之间的相关性。本实验从明文图像以及密文图像随机抽取了2 000组相邻像素进行计算分析。相关性的计算公式如下:

(12)

式中:x、y分别代表相邻两像素的像素值,rxy即为两相邻像素的相关性。图3呈现了明文图像和密文图像在水平方向上相邻两像素点的相关性。(a) 明文图像Lena-R水平方向相邻的像素分布;(b) 明文图像Lena-G水平方向相邻的像素分布;(c) 明文图像Lena-B水平方向相邻的像素分布;(d) 密文图像Lena-R水平方向相邻的像素分布;(e) 密文图像Lena-G水平方向相邻的像素分布;(f) 密文图像Lena-B水平方向相邻的像素分布。

图3 明文图像与密文图像在水平方向上相邻的像素分布

从表6中可以看出,密文图像两相邻像素点的像素值的相关性明显小于明文图像两相邻像素值的相关性,而且相关性非常低。因此可以肯定,明文图像经过该加密系统的处理后,无论从哪个方向,其相邻像素点的像素值的相关性都得到了有效的降低。

表6 明文图像和密文图像相邻像素值的相关性

4.3 密钥空间分析

合格的加密算法必须对密钥非常敏感,并且必须具备足够大的密钥空间,来阻止恶意的强力攻击。理论证明密钥空间必须大于2100时加密系统的安全性才能得到的保障[19]。本文提出的算法中的密钥有:

(2) 通过SHA-256生成的256位的哈希值;

(3) Logistic混沌映射的u值。

4.4 信息熵测试

信息熵用于测量系统的复杂性,本文用这个指标来衡量加密算法的性能。根据信息熵的定义,图像的信息量为:

(13)

式中:mi(i=0,1,…,M-1)代表像素值,M表示像素值的数目,p(mi)(i=0,1,…,M-1)表示每个像素值出现的概率。由图像的信息熵可知像素值的分布情况,信息熵的结果越接近理想值8,则加密图像的像素值分布就越一致。由表7得出,本文提供的算法加密后的图像的信息熵十分接近于理想值8。可以证明加密后的图像的像素值是平均分布的。表8中将本算法的信息熵分别与其他几种算法的信息熵进行了比较,充分体现了该加密系统在信息熵的优势。

表7 信息熵结果

表8 信息熵比较

4.5 密钥敏感性分析

图4 密钥敏感性分析测试图

4.6 抗差分攻击分析

为了抵制查分攻击,加密图像要与明文图像具有相关性,这就是说如果明文图像发生了很小的改变,可以导致加密图像发生很大的变化。在本文中,我们使用了SHA-256的哈希字符串来生成系统需要的密钥,所以我们把加密图像和明文图像建立了联系。像素改变率(NPCR)及平均一致改变强度(UACI)就是用来衡量整个加密系统对于发生微小的改变是否敏感。在原图中随机挑选某一个像素并对其发生改变,如果加密图像发生了很大的改变。可以证明算法具有抵制查分攻击的能力。

明文图像与其对应的加密图像分别表示为P1和C1。然后对明文图像改变一个随机选择的像素值。修改的明文图像和对应的加密图像分别表示为P2和C2,此时需要定义矩阵D,大小与C1和C2相同,如果C1(i,j)=C2(i,j),D(i,j) = 0;否则,D(i,j) = 1。则NPCR和UACI的计算如公式:

(14)

(15)

式中:M表示图像的长,N表示图像的宽度,像素改变率和平均一致改变强度结果,如表9所示。从实验数据可以看出明文图像仅仅进行一个像素的变化就会导致密文图像发生很大的变化,从而证明本文的加密算法具有抗差分攻击能力。

表9 像素改变率和平均一致改变强度

5 结 语

本文在DNA运算过程中,加入了DNA同或运算。通过这种改进,不仅提高了加密的随机性,而且像素扩散效果更加明显。除此之外,本文选取随机性非常好的Lorenz混沌映射,通过该映射产生的伪随机序列对图像的像素进行置换,达到图像置乱的效果。为了增强加密算法的灵敏度,本算法通过一维Logistic映射随机决定8种DNA编码方式逐行对图像进行随机编码,并且通过Logistic映射随机决定4种DNA运算规则逐行对图像进行DNA运算。仿真结果表明,本加密算法具有很高的安全性,能抵御各种典型的攻击,具有很高的可靠性。

[1] Patel P,Patel Y.Secure and Authentic DCT Image Steganography through DWT-SVD Based Digital Watermarking with RSA Encryption[C]//Fifth International Conference on Communication Systems and Network Technologies.IEEE,2015:736-739.

[2] Sensarma D.GMDES:A Graph Based Modified Data Encryption Standard Algorithm with Enhanced Security[J].Ijret Org,2014,3(3):653-660.

[3] Zibideh W Y,Matalgah M M.Modified data encryption standard encryption algorithm with improved error performance and enhanced security in wireless fading channels[J].Security & Communication Networks,2015,8(4):565-573.

[4] Wadi S M,Zainal N.High Definition Image Encryption Algorithm Based on AES Modification[J].Wireless Personal Communications,2014,79(2):811-829.

[5] Nandu K J,Kumar R G.Security Enhanced Image Encryption using Password based AES Algorithm[J].International Journal of Engineering & Technical Research,2015,V4(6).

[6] Wang X,Guo K.A new image alternate encryption algorithm based on chaotic map[J].Nonlinear Dynamics,2014,76(4):1943-1950.

[7] Tang Z,Zhang X,Lan W.Efficient image encryption with block shuffling and chaotic map[J].Multimedia Tools and Applications,2015,74(15):1-20.

[8] Akhshani A,Akhavan A,Mobaraki A,et al.Pseudo random number generator based on quantum chaotic map[J].Communications in Nonlinear Science & Numerical Simulation,2014,19(1):101-111.

[9] Li J,Xing Y,Qu C,et al.An image encryption method based on tent and Lorenz chaotic systems[J].2015 6th IEEE International Conference on Software Engineering and Service Science (ICSESS),2015:582-586.

[10] Fu C,Li W J,Meng Z Y,et al.A Symmetric Image Encryption Scheme Using Chaotic Baker Map and Lorenz System[C]//International Conference on Computational Intelligence and Security.IEEE,2013:724-728.

[11] Enayatifar R,Abdullah A H,Isnin I F.Chaos-based image encryption using a hybrid genetic algorithm and a DNA sequence[J].Optics & Lasers in Engineering,2014,56(5):83-93.

[12] Zhang Y.Cryptanalysis of an Image Encryption Algorithm Based on Chaotic Modulation of Arnold Dual Scrambling and DNA Computing[J].Advanced Science Focus,2014,2(1):67-82.

[13] Zhou S,Wang B,Zheng X,et al.An Image Encryption Scheme Based on DNA Computing and Cellular Automata[J].Discrete Dynamics in Nature and Society,2016,2016(2):1-9.

[14] Liu H,Wang X,Kadir A.Image encryption using DNA complementary rule and chaotic maps[J].Applied Soft Computing,2012,12(5):1457-1466.

[15] Huang X,Ye G.An image encryption algorithm based on hyper-chaos and DNA sequence[J].Multimedia Tools and Applications,2014,72(1):57-70.

[16] Wu G C,Baleanu D.Discrete fractional logistic map and its chaos[J].Nonlinear Dynamics,2014,75(1-2):283-287.

[17] 杨璐,邵利平,郭毅,等.基于迷宫置换和Logistic混沌映射的图像加密算法[J].计算机应用,2014,34(7):1902-1908.

[18] Norouzi B,Seyedzadeh S M,Mirzakuchaki S,et al.A novel image encryption based on row-column,masking and main diffusion processes with hyper chaos[J].Multimedia Tools and Applications,2015,74(3):781-811.

[19] Wang X Y,Zhang Y Q,Zhao Y Y.A novel image encryption scheme based on 2-D logistic map and DNA sequence operations[J].Nonlinear Dynamics,2015,82(3):1269-1280.

[20] 张永红,张博.基于Logistic混沌系统的图像加密算法研究[J].计算机应用研究,2015,32(6):1770-1773.

[21] Wang X,Teng L,Qin X.A novel colour image encryption algorithm based on chaos[J].Signal Processing,2012,92(4):1101-1108.

[22] Devaraj P,Kavitha C.A Coupled Chaos Based Image Encryption Scheme Using Bit Level Diffusion[M]//Security in Computing and Communications.Springer International Publishing,2015:238-246.

猜你喜欢

明文加密算法密钥
加密文档排序中保序加密算法的最优化选取
幻中邂逅之金色密钥
幻中邂逅之金色密钥
密码系统中密钥的状态与保护*
DES加密算法的实现
基于整数矩阵乘法的图像加密算法
TPM 2.0密钥迁移协议研究
奇怪的处罚
奇怪的处罚
奇怪的处罚