基于dna序列与多混沌映射的数字图像加密方法

文档序号:6583520阅读:244来源:国知局

专利名称::基于dna序列与多混沌映射的数字图像加密方法
技术领域
:本发明涉及DNA计算领域和数字图像加密的领域,特别涉及一种数字图像加密方法,主要是利用DNA序列的编码特性结合多混沌映射来实现数字图像的加密。
背景技术
:在当今社会,计算机网络改变了人们的通信方式,人们可以通过网络便捷地传输各种多媒体信息。由于网络的开放性,多媒体信息安全与保密越来越引起人们的重视。数字图像是多媒体通信中的重要信息载体,因而如何保护图像信息成为了普遍关注的问题。由于混沌具有类随机、初值敏感性以及难以预测等特性,成为研究者们关注的焦点。根据置乱的对象来分,基于混沌的图像加密方法可以分为两类像素位置置乱和像素值置乱。像素位置置乱的特点是加密效率高,效果好,但算法的安全性不高,难以抵抗统计攻击;像素值置乱的特点是算法安全性高,但加密效果不好,效率低。此外,传统的基于混沌的像素值的加密算法均是用单一混沌映射产生的混沌序列直接与像素的灰度值叠加来实现图像的加密。大量文献指出,利用单一混沌映射实现的图像加密算法有安全性较低,混沌序列易破译以及密钥空间小等缺点。DNA加密系统是近年来伴随着DNA计算的研究而出现的密码学新领域,其特点是以DNA为信息载体,以现代生物技术为实现工具,挖掘DNA固有的高存储密度和高并行性等优点,实现加密、解密等密码学功能。已有的基于DNA加密的算法大多要用生物实验进行操作,由于生物实验设备昂贵,实验环境难以控制,实验灵敏性高等缺点,目前基于DNA加密的研究还是理论多于实践。
发明内容为了克服上述加密方案的缺点,本发明提出一种基于DNA序列和多混沌映射的数字图像加密方法,摆脱了DNA加密中的复杂生物操作,单纯的利用DNA编码的特性并结合多混沌序列来同时实现像素位置和像素置的置乱,并提高数字图像加密算法的效果以及安全性。本算法对图像的加密效果较好,密钥空间大,对密钥的敏感性强,能够有效地抵抗穷举攻击以及统计攻击。本发明的技术方案是该算法首先通过Cubic映射和小波函数产生的混沌序列置乱图像的像素位置,然后利用DNA序列的编码、取补、解码等规则结合由Logistic映射产生的混沌序列来扰乱图像的像素值。附图1所示为本发明算法流程图,其具体包括以下技术环节1.混沌序列的产生本发明算法中,用Cubic映射、小波函数映射和Logistic映射来实现图像加密。其中Cubic映射和Logistic映射的特性是学者们众所周知的。这里我们着重介绍一下小波函数的特性。(1)Cubic映射4(1)0,1,2,…,当iiG[3.2,4]时,产生混沌序列。Cubic映射定义如下xn—!=iixn3+(l_ii)xn其中xnG[-1,1],n=(2)小波函数映射小波函数在一定的条件下迭代也能够产生混沌现象。在一个一维小波函数构成的迭代公式(2)中x肝,=A:(l—《)eq5(~0.5(jc"+^)2)(2)当k=1.33,xG(0,1),iiG[-0.77,_0.29]时会出现混沌现象。小波函数映射的分叉图和Ly即皿ov指数图见图2。(3)Logistic映射Logistic映射是一种典型的混沌映射,其定义如下xn+1=iixn(l-xn)(3)其中yG,xnG(O,l),n=0,1,2,…。当0<ii《3.569945时,该动力系统从稳定状态分叉产生倍周期;当3.569945<y《4时,该动力系统进入混沌状态。本发明中,由Cubic映射与小波函数产生的混沌序列,是直接通过初值x。、y。产生的实数混沌序列,而为了与DNA序列相作用,必须将由Logistic映射产生的混沌序列转换成二值序列。根据所有的由任意初值产生的混沌实数序列来定义一个阈值函数f(x),取阈值为0.5,则f(x)定义如下,、「0,0<x《0.5;"X)=<|yV7ll,0.5<x^l;(4)通过f(x)就可以把混沌实数序列转换成二值序列。2.DNA序列加密单链DNA序歹lj由四种碱基A(adenine)、C(cytosine)、G(guanine)、T(thymine)组成,其中A与T、C与G互补。用00、01、10、11分别对DNA序列中的四个碱基进行二进制编码,共有4!=24种编码组合。由于二进制数字0与1互补,从而00与11互补,Ol与10互补,故在24种数字编码中,有8种编码满足碱基互补配对准则,见表1。表1DNA序列的8种编码、解码映射准则1234567800—-A00—-A00—-C00—-c00—-G00—-G00—-T00—-T01—-C01—-G01—-A01—-T01—-A01—-T01—-C01—-G10—-G10—-C10—-T10—-A10—-T10—-A10—-G10—-C11—-T11—-T11—-G11—-G11—-C11—-C11—-A11—-A首先,将这8种规则映射到(0,1)之间的8个子区域中,例如(O,O.125]区域表示规则1,(0.125,0.25]表示规则2……;然后,用两个种子(keyl,key2)随机的产生两个(0,1)之间的随机数,以此来选择不同的DNA编码、解码规则,不同的编码、解码规则使得图5像的加解密不同;最后,将原始图像转换成二值序列,按照选择的编码、解码准则,实现图像的加密。实例如原始图像的第一个像素值是用DNA编码映射准则1进行编码得到DNA序列[CAGT],然后将上述DNA序列用DNA解码映射准则5进行解码得到二值序列[11010010]。3.基于DNA序列与多混沌映射的图像加密算法具体步骤如下(1)输入8位灰度图像A(m,n),m、n为图像A的行列维数;(2)利用Cubic映射和小波函数分别以初值x。,y。,系统参数y"y2产生两个混沌序列{xm}、{yn};(3)将这两个序列按升序排列,得到两个新序列{x/}、{yn'};(4)将{x/}、{yn'}各元素所在的位置之值替换原序列{xj、{yn}中的该元素,得到两个新的序列km"},{yn〃};(5)用这两个序列作为置乱矩阵的行地址和列地址,用此矩阵对图像像素位置进行置乱,得到灰度图像B(m,n);(6)将图像B转化成一维的二值序列M,由于每个像素值可以由8位二进制表示,所以length(M)=mXnX8;(7)将序列M,按照种子key1选取的DNA映射规则进行编码,得到长度为mXnX8/2的DNA序歹ljN;(8)利用Logistic混沌映射,在初值为z。,系统参数为y3的条件下,产生长度为mXnX8/2的混沌序列Zi;(9)利用阈值函数f(x)将混沌序列转化成二值序列,当Zi=1时,该位置的碱基取补,否则不变;(10)将改变后的DNA序列按照种子key2选取的DNA映射规则进行解码操作,还原成二值序列,重构图像矩阵,得到加密后的灰度图像。其中,步骤(1)_(5)是图像像素位置的置乱过程,步骤(6)-(10)是图像的像素值扰乱过程。图像的解密过程是加密的逆过程,这里不再累赘。本发明的有益效果从上述算法分析,攻击者必须具备四组密钥8个密钥参数,即Cubic映射初值(x。)、系统参数(y》,小波函数初值(y。)、系统参数(y2),Logistic映射初值(z。)、混沌系统参数(P》、DNA编码密钥(keyl)、DNA解码密钥(key2),才能顺利对图像进行解密,大大提高了图像的安全性;与传统的基于混沌的加密方案比,本发明具有加密效果好,密钥空间大,密钥灵敏性高以及抗穷举攻击与统计分析攻击等优点;与基于DNA密码系统的加密方案比,本发明可对数字图像进行加密,相对于复杂的生物操作,本算法易于实现与控制。图1本发明算法流程图;图2小波函数的分叉图和exponent指数图;图3本发明的结果6图4密钥灵敏性测试图;图5原始图像和加密图像的直方图;图6原始图像和加密图像水平方向像素间的相关图。具体实施例方式结合附图对本发明的实施过程作详细的说明,但不局限于本实施例。在MATLAB7.1环境下,对128X128的lena灰度图像,在<formula>formulaseeoriginaldocumentpage7</formula>的条件下进行仿真实验。实验流程如图l所示。步骤l:输入lena灰度图像A(m,n),见附图3(a),m、n为图像A的行列维数,其中m=128,n=128。图像A可表示成矩阵形式见式(5);<formula>formulaseeoriginaldocumentpage7</formula>步骤2:利用Cubic映射和小波函数分别以初值x。=0.3,y。=0.1,系统参数y:=3.6,ii2=-0.5,产生两个混沌序列<formula>formulaseeoriginaldocumentpage7</formula>步骤3:利用公式(6)对序列X,Y执行升序排列;<formula>formulaseeoriginaldocumentpage7</formula>函数Sort()为索引排序函数,X',Y'为序列X,Y升序后得到的新序列,X",Y〃为其对应的索引值;步骤4:用公式(7)来置乱图像A的位置,得到置乱后的图像B(m,n),见附图<formula>formulaseeoriginaldocumentpage7</formula>步骤5:将图像B转换成一维的二进制序列M,M的长度为mXnX8;步骤6:由种子keyl=1986选取的DNA映射规则是规则7,用规则7对序列M进行DNA编码,得到DNA序列N,<formula>formulaseeoriginaldocumentpage7</formula>步骤7:利用Logistic混沌映射,在初值为z。=0.36,系统参数为P3=3.9的条件下,产生长度为mXnX8/2的混沌序列Z<formula>formulaseeoriginaldocumentpage7</formula>步骤8:利用阈值函数f(x)将混沌序列转化成二值序列,当Zi=1时,N(i)的碱基取补,否则N(i)不变;步骤9:将改变后的DNA序列,按照种子key2=1选取的DNA映射规则6进行解码操作,还原成二值序列,重构图像矩阵,得到加密后的灰度图像,见附图3(c)。图像解密是加密的逆过程,解密图见附图3(d)。为了更好的说明该加密算法的安全性,本发明分别对密钥空间,密钥的灵敏性,灰度直方图以及像素之间的相关性等进行了分析。1.密钥空间分析在本发明中,共有8个密钥,分别是x。,i^,y。,ii2,z。,ii3,keyl,key2,其中x。G[-1,-l],hG[3.2,4],y。G[o,l],ii2G[-0.77,-0.29],z。G[o,l],y3G[3.569945,4],keyl,key2是随机数。如果计算精度为10—14,计算除去随机数之外的密钥空间为1014X1014X1014X1014X1014X1014=1084,可见该算法具有足够大的密钥空间来抵抗穷举攻击。2.密钥灵敏性分析为了测试密钥的灵敏性,使用微小差异的密钥进行解密,附图4为解密后的结果。图4(a)表示&=0.30000000000001,其它密钥不变的解密图;与图4(a)—样,图4(b)、图4(c)分别表示y。=0.10000000000001,z。=0.36000000000001,其它密钥不变的解密图;图4(d)表示错误DNA映射规则下的解密图。图4(a)、(b)、(c)可以说明,只要密钥中存在微小的差异,都不能恢复原图像。可见,该算法具有较强的密钥灵敏性,可以有效的抵抗穷举攻击。3.灰度直方图分析我们通过直方图的比较,来分析加密前后图像统计特性的改变。从附图5(a)、(b)可以看出,加密前后图像的直方图发生了较大的变化。加密前的图像象素比较集中,即在(0,255)的两端象素分布比较少,而中间分布的较多,而加密后的图像象素分布比较均匀,两图像相似度较低,攻击者难以利用像素灰度值的统计特性恢复原图像。由此可见,该算法具有很好的抵御统计分析能力。4.相关性分析原始图像像素间的相关性很高,为了破坏统计攻击,必须降低加密图像的相关性。我们从原始图像和加密图像中随机的选取在水平方向、垂直方向以及对角方向上3000对相邻像素点,然后利用公式(S)-(ll)计算像素间的相关性。cov(x,力、=(8)(9)/=〗,4p,-刷)2譜(a"=i5jXx'-£W)其中x和y是两相邻像素间的灰度值。(10)(11)原始图像加密图像水平方向0.92480.0023垂直方向0.9547-0.01618原始图像加密图像对角方向0.88860.0015表2.原始图像和加密图像中两相邻像素的相关系数原始图像和加密图像水平方向的相关性见附图6(a)、(b),相关系数分别是0.9248和0.0023.其它方向的相关系数见表2。从图6(b)和表2可以看出加密图像的像素间的相关性很低,几乎接近0,再次说明,本算法具有很强的抗统计攻击能力。本实例中的数据只为方便说明加密算法的过程,该发明的实施及加密效果不依赖于具体数值。权利要求基于DNA序列与多混沌映射的数字图像加密方法,其特征在于,该方法包括如下步骤(1)输入8位灰度图像A(m,n),m、n为图像A的行列维数;(2)利用Cubic映射和小波函数分别以初值x0,y0,系统参数μ1,μ2产生两个混沌序列{xm}、{yn};(3)将这两个序列按升序排列,得到两个新序列{xm′}、{yn′};(4)将{xm′}、{yn′}各元素所在的位置之值替换原序列{xm}、{yn}中的该元素,得到两个新的序列{xm″},{yn″};(5)用这两个序列作为置乱矩阵的行地址和列地址,用此矩阵对图像像素位置进行置乱,得到灰度图像B(m,n);(6)将图像B转化成一维的二值序列M,每个像素值由8位二进制表示,length(M)=m×n×8;(7)将序列M,按照种子key1选取的DNA映射规则进行编码,得到长度为m×n×8/2的DNA序列N;(8)利用Logistic混沌映射,在初值为z0,系统参数为μ3的条件下,产生长度为m×n×8/2的混沌序列zi;(9)利用阈值函数f(x)将混沌序列转化成二值序列,当zi=1时,该位置的碱基取补,否则不变;(10)将改变后的DNA序列按照种子key2选取的DNA映射规则进行解码操作,还原成二值序列,重构图像矩阵,得到加密后的灰度图像。2.根据权利要求l所述的基于DNA序列与多混沌映射的数字图像加密方法,其特征在于,所述的步骤(7)中按照种子keyl选取的DNA映射规则进行编码的方法为首先,建立满足碱基互补配对原则的DNA编码、解码映射规则,见表1;表1DNA序列的8种编码、解码映射规则<table>tableseeoriginaldocumentpage2</column></row><table>其次,将(O,l)区域划分为8个子区域,每个子区域对应一种映射规则(0,0.125]映射规则1(0.125,0.25]映射规则2(0.25,0.375]映射规则3(0.375,0.5]映射规则4(0.5,0.625]映射规则5(0.625,0.75]映射规则6(0.75,0.875]映射规则7(0.875,1]映射规则8再次,用整数keyl作为种子利用随机函数来产生一个(O,l)之间的随机数,再用这个随机数来选取对应的DNA映射规则;最后,用选取的DNA映射规则对步骤(6)得到的图像进行编码,编码时首先将图像转换为一维的二进制矩阵,然后利用选取的DNA映射规则进行编码得到DNA序列矩阵N。3.根据权利要求1所述的基于DNA序列与多混沌映射的数字图像加密方法,其特征在于,所述的步骤(9)中碱基取补的方法为首先,将步骤(8)中产生的混沌序列{Zi},i=1,2…mXnX8/2,按照阈值函数f(x)转化成二值序列,见公式(a):然后,判断Zi是否等于l,如果等于1则对Ni,i=1,2…mXnX8/2取补,否则Ni不变,这里A的补是T,C的补是G,反之亦然;最后,得到取补后的DNA序列矩阵。4.根据权利要求l所述的基于DNA序列与多混沌映射的数字图像加密方法,其特征在于,所述的步骤(10)中按照种子key2选取的DNA映射规则进行解码操作的方法为首先,按照权利要求2所述,用整数key2作为种子利用随机函数来产生一个(0,1)之间的随机数;其次,按照权利要求2所述,根据产生的随机数来选取DNA映射规则;最后,按照选取的DNA映射规则对步骤(9)得到的序列矩阵进行解码,得到一个二进制的一维矩阵,再将其转变成大小为(mXn,8)的矩阵,对这个矩阵进行十进制转换后得到大小为(mXn,l)的矩阵,通过矩阵重构得到加密图像,其大小是(m,n)。全文摘要本发明公开了一种新的数字图像加密方法。该方法属于DNA计算和图像加密领域,提出了一种基于DNA序列和多混沌映射的数字图像加密算法。传统的基于混沌的加密算法具有密钥空间小,混沌系统易于被分析与预测等缺点;并且现存的基于DNA加密系统大多都要通过复杂的生物操作,难以实现。为了克服上述缺点,本发明首先利用Cubic映射和小波函数产生的二维混沌序列置乱图像像素的位置,然后用DNA序列与由Logistic映射产生的混沌序列相作用来扰乱图像的像素值。实验结果表明,该算法易于实现,对图像的加密效果较好,密钥空间大,对密钥的敏感性强,能够有效地抵抗穷举攻击、统计攻击。文档编号G06N3/12GK101706946SQ20091022032公开日2010年5月12日申请日期2009年11月26日优先权日2009年11月26日发明者张强,薛香莲,魏小鹏申请人:大连大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1