基于量子混沌映射和DNA编码的图像加密算法的制作方法

文档序号:15689907发布日期:2018-10-16 21:52阅读:238来源:国知局

本发明涉及一种图像加密算法,采用量子混沌映射以及dna动态编码对图像进行加密的算法。



背景技术:

随着计算机网络以及多媒体的迅速发展,图像信息的安全越来越受到重视,继而出现了多种加密的技术,如des、rsa等,然而绝大多数加密技术是对文本加密提出的,这并不适用于具有较大数据量的图像。基于混沌的加密技术具有实现简单,加密速度快,安全性高等特点,已越发体现其在加密领域的优势,混沌技术已成为近些年的主要加密技术。其中量子混沌解决了传统混沌的“不动点”和“稳定窗”的问题,系统的随机性更好,敏感性更强,使得量子混沌加密技术的安全性更高。最近几年,基于dna计算思想的图像加密方法逐渐出现,dna含有四个碱基,分别是腺嘌呤a(adenine)、胸腺嘧啶t(thymine)、鸟嘌呤g(guanine)与胞嘧啶c(cytosine)。这四个碱基中,a与t互补,g与c互补。图像像素值的二进制正好也是由0和1组成,可以将二进制用这四个碱基进行表示,从而可以使图像像素值重新编码,达到图像加密的目的。

本文将量子混沌加密和dna加密应用到图像加密领域,提出了一种基于量子混沌映射和dna动态编码的图像加密算法,很大地提高了安全性。



技术实现要素:

本发明的目的是提供一种基于量子混沌映射和dna动态编码的图像加密算法。首先采用量子logistic混沌产生随机序列对图像进行循环移位进行置乱;然后采用量子混沌映射对图像进行动态dna编码;再采用lorenz混沌进行dna加法、异或对图像进行扩散;最后采用量子混沌对图像进行dna解码得到密文图像。通过以上几部分结合得到加密后的图像的加密算法,该算法可以通过给定不同的混沌初值对量子图像加密。

为了达到上述目的,本发明采用如下技术方案:

基于量子混沌映射和dna编码的图像加密算法,包括以下步骤:

输入:灰度图像i,大小为m行n列(m和n为正整数),lorenz混沌系统的参数a,b,c和初值x,y,z,量子logistic混沌系统的参数β,r和初值x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4;

输出:加密图像i′;

(1)将灰度图像i转换成大小为m×n的二维矩阵i1。

(2)采用量子logistic混沌映射产生四组混沌序列,根据量子logistic混沌映射公式其中β是耗散参数,r是控制参数,x,y,z为复数,x*,z*分别为x,z的复共轭;将x,y,z都取实数,则迭代后的所有值也都是实数,初值和参数的取值分别为x∈[0,1],y∈[0,0.1],z∈[0,0.2],x*=x,z*=z,β∈[6,+∞)和r∈[0,4];根据给定的四组不同的初值,xn经过迭代得到四个序列,分别记为a={a1,a2,...,am×2},b={b1,b2,...,bn×2},c={c1,c2,...,cm×n×4},d={d1,d2,...,dm×n×4},其中序列a,b,c,d的长度分别为m×2,n×2,m×n×4,m×n×4;将序列分别作如下操作:a(i)=mod(fix(a(i)×108),m)+1,i=1,2,…,m×2;b(i)=mod(fix(b(i)×108),n)+1,i=1,2,…,n×2;c(i)=mod(fix(c(i)×108),8)+1,i=1,2,…,m×n×4;d(i)=mod(fix(d(i)×108),8)+1,i=1,2,…,m×n×4;其中,fix表示向下取整操作,mod表示取余,操作后随机序列a中的内容变为[1~m]的随机数,将随机序列b中的内容变为[1~n]的随机数,将随机序列c,d中的内容变为[1~8]的随机数;根据序列a中的前m个值将图像i1的每行进移位,根据序列b中的前n个值将移位后的图像的每列再进移位,假如图像的第一行若为[1234]且a(1)=3,则第一行移位后为[2341];图像的第一列若为[25913]t且b(1)=2,则第一列移位后为[91325]t。然后再根据序列a的后m个值对每行进移位,根据序列b的后n个值对每列进行移位,经过四次移位操作使图像充分置乱,产生新的置乱后的图像i2。

(3)将图像i2转换成为m×n的二进制二维矩阵i3,即i3中的每个元素为i2中对应元素的二进制;

(4)根据lorenz混沌映射产生三组随机序列,根据lorenz混沌公式其中a=10,b=8/3,c=28x,y,z为初始值,分别取值为大于零的实数,为迭代后的值,产生三个随机序列,分别记为x={x1,x2,…,xm×n×4},y={y1,y2,…,ym×n×16},z={z1,z2,…,zm×n×4},序列x和z的长度为m×n×4,序列y的长度为m×n×16,分别对这三个随机序列序列x,y和z进行如下操作:x=mod(fix((abs(x)-fix(abs(x)))×1010),8)+1,y=mod(fix((abs(y)-fix(abs(y)))×1010),2),z=mod(fix((abs(z)-fix(abs(z)))×1010),8)+1,其中abs表示取绝对值操作,fix表示向下取整操作,mod为取余操作,通过上述公式可将序列x和z变为[1-8]的随机数,将序列y变为[0-1]的随机数。

(5)根据序列c中的值,随机选择表1中的dna编码规则,对二进制矩阵i3的每两位二进制数进行dna编码,产生dna矩阵i4。如i3中第一个值为11000110且c(1)=3,c(2)=2,c(3)=7,c(4)=5,则编码后为gact。

(6)根据序列c中的值,随机选择表1中的dna编码规则,对序列y的前m×n×8个二进制序列的每两位进行dna编码,产生自然dna矩阵i5。如序列y的第1到第8位为01101110且c(1)=3,c(2)=2,c(3)=7,c(4)=5,则dna编码为acat。

(7)根据序列x中的值随机选择8种dna加法规则,将两个dna矩阵i4,i5相加,得到dna矩阵i6。如两个dna序列分别为gact和acat,且x(1)=3,x(2)=5,x(3)=1,x(4)=8,则dna加法后得到的dna矩阵为cgct。

(8)根据序列c中的值,随机选择表1中的dna编码规则,对序列y的后m×n×8个二进制序列的每两位进行dna编码,产生自然dna矩阵i7;

(9)根据序列z中的值随机选择8种dna异或规则,将两个dna矩阵i6,i7异或得到dna矩阵i8;

(10)根据序列d中的值,随机选择表1中的dna编码规则,对dna矩阵i8进行解码得到二进制矩阵i9;

(11)将二进制矩阵i9转为十进制矩阵i10,然后将i10转换为加密图像i′;

(12)dna的每个碱基a、c、g、t可以表示成两个二进制,按照a与t互补,c与g互补的原则,dna编码规则如表1所示;针对表1中的dna编码规则,每一种规则对应一种dna加法运算,如表2是dna编码规则1的加法运算规则,表3、表4、表5、表6、表7、表8、表9分别是dna编码规则2、3、4、5、6、7、8的加法运算规则。表10-表17为表1中对应的dna异或规则。

表1

附图说明

图1是原始图像,图2是加密效果图,图3是解密效果图。

图4是原始图像灰度直方图。图5是加密图像灰度直方图。

具体实施方式

1、量子logistic混沌映射的初值x1=0.4347,x2=0.7823,x3=0.4547,x4=0.8823,y1=0.0563,y2=0.0362,y3=0.0463,y4=0.0262,z1=0.1384,z2=0.1134,z3=0.1284,z4=0.1434,参数β=6,r=3.99。lorenz混沌映射的参数分别为a=10,b=8/3,c=28,初值分别为x0=25.384,y0=7.235,z0=18.347。

2、图1-图3是针对512×512的lena灰度图像进行仿真实验得到的加密解密效果图。图1为lena原图像,图2为对原图像加密后的加密图像,图3为解密图像。

3、图4是对lena图像加密前的图像进行灰度直方图分析的效果图,图5为lena加密图像的灰度直方图。通过比较能够发现,加密前的灰度直方图的像素值都集中在一些值上,并且有明显的波峰和波谷,但加密后图像的灰度直方图像素分布是相对均匀的,这说明了利用该加密算法得到的加密图像很难被统计性的攻击破解。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1