一种基于DNA编码的图像加密方法与流程

文档序号:16090910发布日期:2018-11-27 23:00阅读:496来源:国知局
本发明涉及信息安全
技术领域
,具体涉及一种基于DNA编码的图像加密方法。
背景技术
:现有的图像加密方法都普遍存在安全性不足的问题,例如基于像素位置变换的加密技术,如果在攻击者直到加密方法和密文时,就很容易得到明文,由于迭代是存在周期的,通过若干次迭代就可以恢复明文,而基于随机序列的加密技术在已知明文和选择明文攻击的时候安全性较差。技术实现要素:针对现有技术的不足,本发明旨在提供一种基于DNA编码的图像加密方法,加密后图像可以有效抵抗已知明文的攻击,安全性更强,加密效果更好。为了实现上述目的,本发明采用如下技术方案:一种基于DNA编码的图像加密方法,包括如下步骤:S1产生加密密钥;具体为:1.1)原始密钥表示如下:CC1:a1,b1,c1,d1,x1,y1,z1,w1;CC2:u2,x2,u3,x3,u4,x4;CC3:a2,b2,x5,y2;CC4:a3,x6,y3,z3,待加密图像记为IMAGE,IMAGE的大小记为Ir×Ic,其中Ir表示IMAGE的行数,Ic表示IMAGE的列数;1.2)利用哈希算法求取IMAGE的特征值:1.3)对IMAGE的特征值求取MD5,记为MD,对128位MD值每8位分成一组,共分成16组,记为MD=md1,md2,...,md16,并进行系列变换:对上述密钥中对应的x1、y1、z1、w1、x2、y2、x3、y3、z3、x4、x5、x6进行更新,从而产生新的加密密钥;S2对原图像进行DNA编码:将原图像IMAGE按01、00、11、10对DNA的四种核苷酸A,C,G,T编码后,转换成预处理的12层DNA分子结构;S3产生改进的四维超混沌劳伦兹序列:运用改进的四维超混沌劳伦兹系统:将上述新的加密密钥中的x1,y1,z1,w1作为系统的x、y、z、w的初始值,a1,b1,c1,d1作为系统参数,通过四阶龙格-库塔算法生成超混沌劳伦兹序列,产生四维混沌序列SX,SY,SZ,Sζ;S4利用步骤S3中产生的四维混沌序列SX,SY,Sz,Sζ对步骤S2中得到的12层DNA分子结构进行置乱,得到新的12层DNA分子结构;S5连续点置换突变:利用Logistic系统:Sn←-θSn-12+θSn-1及S←1/4-round(|1000S|)+|1000S|,参数θ∈[3.57,4],θ←u2与S1←x2作为Logistic系统的输入,迭代产生随机序列流,通过S←round|10mS|mod4+1变换使得本步骤所产生的随机序列流为区间{1,2,3,4}上的序列;利用变换后的序列和置换突变对步骤S4得到的新的12层DNA分子结构进行突变;突变方式为:当S为1时A变为C,C变为A,G变为T,T变为G;当S为2时A变为G,C变为T,G变为A,T变为C;当S为3时A变为T,C变为G,G变为C,T变为A;当S为4时A变为A,C变为C,G变为G,T变为G;S6DNA分子层间交叉突变:将θ←u3与S1←x3作为Logistic系统Sn←-θSn-12+θSn-1及S←1/4-round(|1000S|)+|1000S的输入,迭代产生随机序列流,通过S←round|10mS|mod12+1变换使本步骤中产生的随机序列流为区间{1,2,...,12}上的序列,其中m为大于3的正整数;根据变换后的序列的取值对经过步骤S5处理最终得到的12层DNA分子结构的相邻DNA分子进行交叉互换;S7DNA分子内交叉突变:将θ←u4与S1←x4作为Logistic系统Sn←-θSn-12+θSn-1及S←1/4-round(|1000S|)+|1000S|的输入的输入,迭代产生随机序列流,通过S←round|10mS|mod12变换使本步骤得到的随机序列流为区间{1,2,...,12}上的序列,其中m为大于3的正整数;根据变换得到的序列的取值对经过步骤S6处理最终得到的12层DNA分子结构的DNA分子内部实现交叉突变;S8DNA加法与减法运算:8.1)将DNA分子结构作为被加数,通过Henon系统:vn←b2hn-1及产生加数序列;其中初始值h1←x5,v1←y2;8.2)通过H(i)←-round(H(i)×10α)+H(i)×10α及V(i)←-round(V(i)×10β)+V(i)×10β变换产生混沌序列H(i),V(i);其中2≤α≤(r-lg(SL(H(i)))),2≤β≤(r-lg(SL(V(i)))),10-r为计算机的最大精度;8.3)通过H(i)←round(1000(H(i)+1/3))mod4及V(i)←round(1000(V(i)+1/3))mod4变换将H(i)与V(i)映射到{1,2,3,4}中,利用编码00、01、10、11对H(i)与V(i)序列进行编码;8.4)在加密过程中DNA分子结构以01、00、11、10编码的形式作为被加数,Henon序列以00、01、10、11编码的形式作为加数,对结果以11、10、01、00的形式进行DNA解码得到和序列;S9DNA异或加密:引入三维的统一混沌系统:以作为系统的输入,通过四阶龙格-库塔算法产生R,G,B统一混沌序列,然后对混沌序列R,G,B分别进行模4操作,对R,G,B统一混沌序列进行映射变换;将每个12碱基的DNA分子分成3组由4碱基组成的小分子D1,D2,D3,利用R,G,B序列通过变换分别对每组小分子DNA进行异或加密,以完成图像加密。进一步地,步骤1.2)的具体方法为:对于RGB三通道图像,求特征值时,遍历图像的所有像素点,对于每个像素点选取第k值,k的计算方式为k=(i×Ic+j)mod3,i=1,2,...,Ir;j=1,2,...,Ic,当k分别为1,2,3时,对应分别为R、G、B的值;将每个像素点取到的值求和得到的最终值就是图像的特征值。进一步地,步骤S2的具体过程为:IMAGE的每一个像素点由三个八位二进制R,G,B组成,将G分为两个四位二进制分别补充到R值后面与G值前面,形成两个12位二进制数,然后将两个所述12位二进制数的对应位结合,生成12个二位二进制,编码成对应的氨基酸,形成一个由12个氨基酸组成的DNA分子序列;对IMAGE的每一个像素点都进行上述操作,重组成12层的DNA分子结构。进一步地,步骤S4的具体过程为:对步骤S3中产生的四维混沌序列SX,SY,SZ,Sζ的前Ir个元素和后Ic个元素进行排序,产生四个长度为Ic的索引序列和四个长度为Ir的索引序列;利用所述长度为Ic的索引序列和长度为Ir的索引序列对步骤S2中得到的12层DNA分子结构的12个DNA分子层的碱基分子进行置乱,碱基分子进行重组产生新的12层DNA分子结构。本发明的有益效果在于:本发明采用基于DNA编码的混沌加密策略,利用哈希算法得到图像的特征值,产生加密密钥,从而可以有效的抵抗已知明文攻击;通过DNA编码、DNA突变算法、混沌系统,加强了随机性,使得密文与原始图像的区别更大,难以找到规律恢复原文,可以有效的抵抗已知明文攻击。具体实施方式以下将对本发明作进一步的描述,需要说明的是,以下实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实施例。一种基于DNA编码的图像加密方法,包括如下步骤:S1产生加密密钥。本实施例中使用的密钥表示如下:CC1:a1,b1,c1,d1,x1,y1,Z1,w1;CC2:u2,x2,u2,x3,u4,x4;CC3:a2,b2,x5,y2;CC4:a3,x6,y3,z3。待加密图像记为IMAGE,IMAGE的大小记为Ir×Ic,其中Ir表示IMAGE的行数,Ic表示IMAGE的列数。然后利用哈希算法求取IMAGE的特征值:对于RGB三通道图像,求特征值时,遍历图像的所有像素点(可以按照从(0,0)开始,按照从左向右、从上向下的顺序),对于每个像素点选取第k值,k的计算方式为k=(i×Ic+j)mod3,i=1,2,...,Ir;j=1,2,...,Ic,当k分别为1,2,3时,对应分别为R、G、B的值;将每个像素点取到的值求和得到的最终值就是图像的特征值。用公式表示如下:ICV=IMAGE(i,j)[(i×Ic+j)mod3]+ICV;其中,i=1,2,…,Ir;j=1,2,...,Ic,令k=(i×Ic+j)mod3,则当IMAGE(i,j)[k]中k取1,2,3,分别表示像素点IMAGE(i,j)的R,G,B值;最终求的ICV即为IMAGE的特征值。对IMAGE的特征值求取MD5,记为MD,对128位MD值每8位分成一组,共分成16组,记为MD=md1,md2,...,md16,并进行系列变换:对上述密钥中对应的x1、y1、z1、w1、x2、y2、x3、y3、z3、x4、x5、x6进行更新,从而产生新的加密密钥;S2对原图像进行DNA编码,将原图像IMAGE按01、00、11、10对DNA的四种核苷酸A,C,G,T编码后,转换成预处理的12层DNA分子结构;具体为:IMAGE的每一个像素点由三个八位二进制R,G,B组成,将G分为两个四位二进制分别补充到R值后面与G值前面,形成两个12位二进制数,然后将两个所述12位二进制数的对应位结合,生成12个二位二进制,编码成对应的氨基酸,形成一个由12个氨基酸组成的DNA分子序列;对IMAGE的每一个像素点都进行上述操作,重组成12层DNA分子结构。S3产生改进的四维超混沌劳伦兹序列。运用改进的四维超混沌劳伦兹系统:将上述新的加密密钥中的x1,y1,z1,w1作为系统的x、y、z、w的初始值,a1,b1,c1,d1作为系统参数,通过四阶龙格-库塔算法生成超混沌劳伦兹序列,产生四维混沌序列SX,SY,SZ,Sζ。S4对步骤S2中得到的12层DNA分子结构进行置乱:对步骤S3中产生的四维混沌序列SX,SY,SZ,Sζ的前Ir个元素和后Ic个元素进行排序,产生四个长度为Ic的索引序列和四个长度为Ir的索引序列;利用所述长度为Ic的索引序列和长度为Ir的索引序列对步骤S2中得到的12层DNA分子结构的12个DNA分子层的碱基分子进行置乱,碱基分子进行重组产生新的12层DNA分子结构。S5连续点置换突变:利用Logistic系统:Sn←-θSn-12+θSn-1及S←1/4-round(|1000S|)+|1000S|,参数θ∈[3.57,4],θ←u2与S1←x2(即步骤S1中产生的新的加密密钥中的u2、x2)作为Logistic系统的输入,迭代产生随机序列流,通过S←round|10mS|mod4+1变换使得所产生的随机序列流为区间{1,2,3,4}上的序列。利用变换后的序列和置换突变(突变方式如表1所示)对步骤S4得到的新的12层DNA分子结构进行突变。表1置换突变序列ACGT1CGAT2TACG3GGAC4CTCAS6DNA分子层间交叉突变。将θ←u3与S1←x3(即新的加密密钥中的u3、x3)作为Logistic系统Sn←-θSn-12+θSn-1及S←1/4-round(|1000S|)+|1000S|的输入,迭代产生随机序列流,通过S←round|10mS|mod12+1变换使本步骤中产生的随机序列流为区间{1,2,...,12}上的序列,其中m为大于3的正整数。根据变换后的序列的取值对经过步骤S5处理最终得到的12层DNA分子结构的相邻DNA分子进行交叉互换。S7DNA分子内交叉突变。将θ←u4与S1←x4(新的加密密钥中的u4、x4)作为Logistic系统Sn←-θSn-12+θSn-1及S←1/4-round(|1000S|)+|1000S|的输入的输入,迭代产生随机序列流,通过S←round|10mS|mod12变换使本步骤得到的随机序列流为区间{1,2,...,12}上的序列,其中m为大于3的正整数。根据变换得到的序列的取值对经过步骤S6处理最终得到的12层DNA分子结构的DNA分子内部实现交叉突变。S8DNA加法与减法运算。将经过步骤S7处理最终得到的DNA分子结构作为被加数,通过Henon系统:vn←b2hn-1及产生加数序列;其中初始值h1←x5,v1←y2(新的加密密钥中的x5、y2),通过H(i)←-round(H(i)×10α)+H(i)×10α及V(i)←-round(V(i)×10β)+V(i)×10β变换产生混沌序列H(i),V(i);其中2≤α≤(r-lg(Sl(H(i)))),2≤β≤(r-lg(Sl(V(i)))),10-r为计算机的最大精度;通过H(i)←round(1000(H(i)+1/3))mod4及V(i)←round(1000(V(i)+1/3))mod4变换将H(i)与V(i)映射到{1,2,3,4}中,利用编码00、01、10、11对H(i)与V(i)序列进行编码。在加密过程中DNA分子结构以01、00、11、10编码的形式作为被加数,Henon序列以00、01、10、11编码的形式作为加数,对结果以11、10、01、00的形式进行DNA解码得到和序列,i表示序列的长度,即rows(行数)*cols(列数)*6。S9DNA异或加密。引入三维的统一混沌系统:以(来自新的加密密钥)作为系统的输入,通过四阶龙格-库塔算法产生R,G,B统一混沌序列,然后对混沌序列R,G,B分别进行模4操作,对R,G,B统一混沌序列进行映射变换;将每个12碱基的DNA分子分成3组由4碱基组成的小分子D1,D2,d3,利用R,G,B序列通过变换分别对每组小分子DNA进行异或加密,以完成图像加密。对于本领域的技术人员来说,可以根据以上的技术方案和构思,给出各种相应的改变和变形,而所有的这些改变和变形,都应该包括在本发明权利要求的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1