一种DNA乱序编码和混沌映射的图像加密和解密方法与流程

文档序号:13935270
一种DNA乱序编码和混沌映射的图像加密和解密方法与流程

本发明涉及图像加密领域,尤其涉及一种DNA乱序编码和混沌映射的 图像加密和解密方法。



背景技术:

近几年随着互联网的发展,智能设备的普及,更多的人们开始使用互 联网传输各种数据,图像作为良好的信息载体,有着数据量大、冗余度高 的特点,并且人类对图像信息表现出高效的感知能力,大量的数字图像通 过互联网进行传输,但由于互联网具有开放性,传输的数据很容易被截取、 捕获。图像加密逐渐成为研究热点。

1963年美国著名气象学家Lorenz,无意间发现混沌现象后,对混沌 现象的研究就没有停息,相继出现了混沌同步、混沌控制等领域的研究成 果。同时混沌系统具有的遍历性、伪随机性、对初始条件的极端敏感性、 长期不可预测等特点都非常适合应用于密码系统中。许多研究人员将不同 领域的知识引入密码学中,以期设计出更好的加密系统。使用生物DNA序 列并行计算的特点对图像编码、运算,并结合混沌理论对图像进行加密是 一种新的加密方法。但由于一些算法的结构缺陷,例如:单一的DNA编码 方式、一味的提高混沌系统的维数及复杂度而不去改善加密结构等。一些 基于DNA编码及混沌的加密算法陆续被指出存在不同程度的安全问题,且 混沌系统主要贡献于加密系统的是其产生的伪随机序列,如果没有良好的 算法结构去抵抗密码攻击,攻击者很可能直接破解出该随机序列,而不用 关心混沌系统是否复杂。



技术实现要素:

本发明针对现有方式的缺点,提出一种DNA乱序编码和混沌映射的图 像加密和解密方法,用以解决现有技术存在的上述问题。

根据本发明的第一个方面,提供了一种DNA乱序编码和混沌映射的图 像加密方法,包括如下步骤:

S101.设置混沌系统的密钥:读取原图像大小m*n,密钥u0、x0、u1、x1, 并计算明文图像的信息熵h0

S102.所述混沌系统根据密钥产生加密矩阵:生成两个一维Logistic映 射,彼此进行按位抽取,生成的四个随机加密矩阵:Zb1{i,j}m*8n、Zb2{i,j}m*8n、 Z3{i,j}m*8n以及Z4{i,j}m*8n,并对Zb1{i,j}m*8n和Zb2{i,j}m*8n分别进行随机加密以进行 DNA标准编码,得到对应的DNA矩阵Zdna_1{i,j}m*4n、Zdna_2{i,j}m*4n

S103.DNA编码:将明文图像A{i,j}m*n二进制化后,按第一预设方式进 行DNA编码得到Adna{i,j}m*4n

S104.DNA乱序编码:将Adna{i,j}m*4n按第二预设方式以及Zdna_1{i,j}m*4n进 行DNA乱序编码得到Bdna{i,j}m*4n

S105.DNA加法:将Bdna{i,j}m*4n按第三预设方式与Zdna_2{i,j}m*4n进行DNA 加法得到Cdna{i,j}m*4n

S106.DNA解码:将Cdna{i,j}m*4n按第一预设方式的编码方式,进行DNA 解码,得到二进制矩阵Kb{i,j}m*8n

S107.二维混沌置乱:依据Z3{i,j}m*8n和Z4{i,j}m*8n两个随机加密矩阵进行行 列互换,置乱Kb{i,j}m*8n,得到K'b{i,j}m*8n

S108.将K'b{i,j}m*8n恢复为灰度图像,即得到密文图像K{i,j}m*n

进一步的,所述步骤S102中的生成两个一维Logistic映射,彼此进行 按位抽取,生成的四个加密矩阵是指,将两个Logistic映射进行相互按位抽 取随机数的方法,产生随机加密矩阵。

进一步的,所述第一预设方式是指:1依次经过A、C、G、T编码后依次 为00、01、10、11,2依次经过A、C、G、T编码后依次为00、10、01、11, 3依次经过A、C、G、T编码后依次为01、00、11、10,4依次经过A、C、G、 T编码后依次为01、11、00、10,5依次经过A、C、G、T编码后依次为10、 00、11、01,6依次经过A、C、G、T编码后依次为10、11、00、01,7依次 经过A、C、G、T编码后依次为11、01、10、11,8依次经过A、C、G、T编 码后依次为11、10、01、00。

进一步的,所述第二预设方式是指:A依次经过A、C、G、T编码后依次 为C、G、A、T,C依次经过A、C、G、T编码后依次为G、C、T、A,G依次经 过A、C、G、T编码后依次为A、T、C、G,T经过A、C、G、T编码后依次为 T、A、G、C。

进一步的,所述第三预设方式是指:A依次经过A、C、G、T编码后依次 为A、C、G、T,C依次经过C、A、T、G编码后依次为G、C、T、A,G依次经 过A、C、G、T编码后依次为T、G、A、C,T经过A、C、G、T编码后依次为 T、G、C、A。

根据本发明的第一个方面,提供了一种DNA乱序编码和混沌映射的图 像解密方法,包括如下步骤:

S201.设置混沌系统密钥:读取密文K{i,j}m*n图像大小m*n,密钥u0、 x0、u1、x1,以及明文图像的信息熵h0

S202.所述混沌系统根据密钥产生加密矩阵:生成两个一维Logistic映 射,彼此进行按位抽取生成的四个加密矩阵:Zb1{i,j}m*8n、Zb2{i,j}m*8n、Z3{i,j}m*8n以及Z4{i,j}m*8n,并将Zb1{i,j}m*8n、Zb2{i,j}m*8n两个随机矩阵进行DNA标准编码, 得到对应的DNA矩阵Zdna_1{i,j}m*4n、Zdna_2{i,j}m*4n;其具体步骤为:

读取图像大小m*n,密钥u0、x0、u1、x1,并计算明文图像的信息熵h0, 利用h0小数点后第3位、12位、14位修改混沌系统初始密钥并对初始位置b0赋值;按下式进行抽取:

b0=floor(mod(103*h0,10));

x0=x0+b12*10-12

x1=x1+b14*10-14

其中:

b12=floor(mod(1012*h0,10))

b14=floor(mod(1014*h0,10))

然后由两个Logistic映射按各自密钥u0、x0、u1、x1,分别产生m*8n 个随机数,生成序列L1(k)、L2(k)并合成m*8n大小的随机矩阵Z3{i,j}m*8n、 Z4{i,j}m*8n,i∈[1,m],j∈[1,8n];按下式分别抽取L1(k),L2(k)中相应位,并作 为彼此下一次抽取的初始位;

其中,初始位置为b0且b0=0,1,2…9;

重复上步,其中k=1,2,3…m*8n,直到L1(k)、L2(k)序列被遍历,得到序 列ak,bk

由序列ak,bk合成m*8n大小的随机矩阵a{i,j}m*8n、b{i,j}m*8n,按式得到二进制随机矩阵Zb1{i,j}m*8n,Zb2{i,j}m*8n

S203.将图像密文图像K{i,j}m*n二进制化后,得到K'b{i,j}m*8n

S204.逆二维混沌置乱:依据Z3{i,j}m*8n和Z4{i,j}m*8n,两个混沌矩阵,进行 行列互换,逆置乱K'b{i,j}m*8n,得到Kb{i,j}m*8n

S205.DNA编码:将图像Kb{i,j}m*8n,按第一预设方式中的一种进行DNA 编码得到Cdna{i,j}m*4n

S206.DNA加法:将Cdna{i,j}m*4n按第三预设方式与Zdna_2{i,j}m*4n进行DNA 加法得到Bdna{i,j}m*4n

S207.逆DNA乱序编码:将Bdna{i,j}m*4n按第二预设方式以及 Zdna_1{i,j}m*4n进行逆DNA乱序编码得到Adna{i,j}m*4n

S208.设置混沌系统密钥:读取密文K{i,j}m*n图像大小m*n,密钥u0、 x0、u1、x1,以及明文图像的信息熵h0

进一步的,所述S203的具体步骤为:

使用生成的置乱矩阵Z3{i,j}m*8n、Z4{i,j}m*8n对图像K'b{i,j}m*8n进行逆置 乱,读取图像K'b{i,j}m*8n行列大小为:x、y,且max_m=2*x-1、 max_n=2*y-1,接着计算倍率:a1=10i、b1=10k;重复上步,其中 i,k=1,2,…10,直到a1>max_m,b1>max_n,得到a1,b1;计算置乱坐标并按 下式置乱:

其中:

X3(i,j)=mod(floor(a1*Z3(i,j)),x)

Y4(i,j)=mod(floor(b1*Z4(i,j)),y)

重复上步直到将矩阵K'b{i,j}m*8n遍历s0次,得逆置乱后的矩阵 Kb{i,j}m*8n

进一步的,所述第一预设方式是指:1依次经过A、C、G、T编码后依次 为00、01、10、11,2依次经过A、C、G、T编码后依次为00、10、01、11, 3依次经过A、C、G、T编码后依次为01、00、11、10,4依次经过A、C、G、 T编码后依次为01、11、00、10,5依次经过A、C、G、T编码后依次为10、 00、11、01,6依次经过A、C、G、T编码后依次为10、11、00、01,7依次 经过A、C、G、T编码后依次为11、01、10、00,8依次经过A、C、G、T编 码后依次为11、10、01、00。

进一步的,所述第二预设方式是指:A依次经过A、C、G、T编码后依次 为C、G、A、T,C依次经过A、C、G、T编码后依次为G、C、T、A,G依次经 过A、C、G、T编码后依次为A、T、C、G,T经过A、C、G、T编码后依次为 T、A、G、C。

进一步的,所述第三预设方式是指:A依次经过A、C、G、T编码后依次 为A、C、G、T,C依次经过C、A、T、G编码后依次为G、C、T、A,G依次经 过A、C、G、T编码后依次为G、T、A、C,T经过A、C、G、T编码后依次为 T、G、C、A。

与现有技术相比,本发明的有益效果是:

1、本发明的加密方法是一种以混沌加密技术中的一维Logistic混沌 映射、DNA编码计算为基础,再综合DNA乱序编码、基于多个一维Logistic 混沌映射的按位抽取算法以及二维混沌置乱的加密方法,具有低复杂度、 高性能、安全可靠的图像加密算法特性;

2、本发明加密和解密方法均利用混沌系统按本文相应算法产生的随机 矩阵,结合明文图像矩阵进行DNA乱序编码,并用二维混沌置乱进行加密图像 的比特级置乱来代替DNA碱基对互补替换,降低加密成本的同时,也使加密算 法具有良好的加密结构可有效抵抗各种密码攻击行为。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的 描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描 述中将变得明显和容易理解,其中:

图1为本发明实施例的一种DNA乱序编码和混沌映射的图像加密方法 流程图;

图2为本发明实施例的图像加密流程图;

图3为本发明实施例的一种DNA乱序编码和混沌映射的图像解密方法 流程图;

图4为本发明实施例的图像解密流程图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明 实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

在本发明的说明书和权利要求书及上述附图中的描述的一些流程中, 包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以 不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102 等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。 另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执 行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是 用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一” 和“第二”是不同的类型。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进 行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分例,实 施而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有 作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范 围。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语 (包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员 的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术 语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除 非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

因此,为了有效抵抗选择明文攻击,已知明文攻击等密码攻击行为,改 善加密结构,解决DNA编码透明等加密问题,提供了一种DNA乱序编码和混 沌映射的图像加密和解密方法。

实施例一

如图1所示,提供了本发明一个实施例的一种DNA乱序编码和混沌映 射的图像加密方法,该方法包括步骤S101-S108:

S101.设置混沌系统的密钥:读取原图像大小m*n,密钥u0、x0、u1、x1, 并计算明文图像的信息熵h0

S102.混沌系统根据密钥产生加密矩阵:生成两个一维Logistic映射, 彼此进行按位抽取,生成的四个随机加密矩阵:Zb1{i,j}m*8n、Zb2{i,j}m*8n、 Z3{i,j}m*8n以及Z4{i,j}m*8n,并对Zb1{i,j}m*8n和Zb2{i,j}m*8n分别进行随机加密以进行 DNA标准编码,得到对应的DNA矩阵Zdna_1{i,j}m*4n、Zdna_2{i,j}m*4n

S103.DNA编码:将明文图像A{i,j}m*n二进制化后,按第一预设方式进 行DNA编码得到Adna{i,j}m*4n

S104.DNA乱序编码:将Adna{i,j}m*4n按第二预设方式以及Zdna_1{i,j}m*4n进 行DNA乱序编码得到Bdna{i,j}m*4n

S105.DNA加法:将Bdna{i,j}m*4n按第三预设方式与Zdna_2{i,j}m*4n进行DNA 加法得到Cdna{i,j}m*4n

S106.DNA解码:将Cdna{i,j}m*4n按第一预设方式的编码方式,进行DNA 解码,得到二进制矩阵Kb{i,j}m*8n

S107.二维混沌置乱:依据Z3{i,j}m*8n和Z4{i,j}m*8n两个随机加密矩阵进行行 列互换,置乱Kb{i,j}m*8n,得到K'b{i,j}m*8n

S108.将K'b{i,j}m*8n恢复为灰度图像,即得到密文图像K{i,j}m*n

进一步的,步骤S102中的生成两个一维Logistic映射,彼此进行按位 抽取,生成的四个加密矩阵是指,将两个Logistic映射进行相互按位抽取随 机数的方法,产生随机加密矩阵。

进一步的,第一预设方式是指:1依次经过A、C、G、T编码后依次为00、 01、10、11,2依次经过A、C、G、T编码后依次为00、10、01、11,3依次 经过A、C、G、T编码后依次为01、00、11、10,4依次经过A、C、G、T编 码后依次为01、11、00、10,5依次经过A、C、G、T编码后依次为10、00、 11、01,6依次经过A、C、G、T编码后依次为10、11、00、01,7依次经过 A、C、G、T编码后依次为11、01、10、11,8依次经过A、C、G、T编码后依 次为11、10、01、00。

进一步的,第二预设方式是指:A依次经过A、C、G、T编码后依次为C、 G、A、T,C依次经过A、C、G、T编码后依次为G、C、T、A,G依次经过A、 C、G、T编码后依次为A、T、C、G,T经过A、C、G、T编码后依次为T、A、 G、C。

进一步的,第三预设方式是指:A依次经过A、C、G、T编码后依次为A、 C、G、T,C依次经过C、A、T、G编码后依次为G、C、T、A,G依次经过A、 C、G、T编码后依次为T、G、A、C,T经过A、C、G、T编码后依次为T、G、 C、A。

具体的,如图2所示,一种DNA乱序编码和混沌映射的图像加密方法的 详细步骤为:

a.设置混沌系统密钥:读取图像大小m*n,密钥u0、x0、u1、x1,并计算 明文图像的信息熵h0

b.混沌系统根据密钥产生加密矩阵:生成两个一维Logistic映射,彼此 进行按位抽取生成的四个加密矩阵:Zb1{i,j}m*8n、Zb2{i,j}m*8n、Z3{i,j}m*8n以及 Z4{i,j}m*8n,并将Zb1{i,j}m*8n、Zb2{i,j}m*8n两个随机矩阵进行DNA标准编码,得到 对应的DNA矩阵Zdna_1{i,j}m*4n、Zdna_2{i,j}m*4n。其步骤为:

读取图像大小m*n,密钥u0、x0、u1、x1,并计算明文图像的信息熵h0 (保留小数点后15位),利用h0小数点后第3位、12位、14位修改混沌系统 初始密钥并对初始位置b0赋值。按下式进行抽取:

b0=floor(mod(103*h0,10))

x0=x0+b12*10-12

x1=x1+b14*10-14

其中:

b12=floor(mod(1012*h0,10))

b14=floor(mod(1014*h0,10))

然后由两个Logistic映射按各自密钥u0、x0、u1、x1,分别产生m*8n 个随机数(精度保留小数点后10位),生成序列L1(k)、L2(k)并合成m*8n大 小的随机矩阵Z3{i,j}m*8n、Z4{i,j}m*8n,i∈[1,m],j∈[1,8n]。按下式分别抽 取L1(k),L2(k)中相应位,并作为彼此下一次抽取的初始位。

其中初始位置为b0且b0=0,1,2…9。重复上步,其中k=1,2,3…m*8n,直到L1(k)、L2(k)序列被遍历,得到序列ak,bk。由序列ak,bk合成m*8n大小的 随机矩阵a{i,j}m*8n、b{i,j}m*8n,按下式得到二进制随机矩阵Zb1{i,j}m*8n, Zb2{i,j}m*8n

c.DNA编码:将图像明文图像A{i,j}m*n二进制化后,按表一8种方式中 的一种进行DNA编码得到Adna{i,j}m*4n。具体步骤为:

每取Adna{i,j}m*8n中的两位二进制,按照表一,编码为对应的DNA碱基。

表一:

d.DNA乱序编码:将Adna{i,j}m*4n按表二以及Zdna_1{i,j}m*4n进行DNA乱序 编码得到Bdna{i,j}m*4n。具体步骤为:以查表的方式对DNA编码后的 Adna{i,j}m*4n进行替换,例如Zdna_1{0,0}m*4n=A;Adna{0,0}m*4n=C,则 Bdna{0,0}m*4n=G。

表二:

e.DNA加法:将Bdna{i,j}m*4n按表三与Zdna_2{i,j}m*4n进行DNA加法得到 Cdna{i,j}m*4n

表三:

f.DNA解码:将Cdna{i,j}m*4n按表一中的编码方式,进行DNA解码,得 到二进制矩阵Kb{i,j}m*8n

g.二维混沌置乱:依据Z3{i,j}m*8n和Z4{i,j}m*8n,两个混沌矩阵,进行行列互 换,置乱Kb{i,j}m*8n,得到K'b{i,j}m*8n。具体步骤为:

使用生成的置乱矩阵Z3{i,j}m*8n、Z4{i,j}m*8n对图像Kb{i,j}m*8n进行置乱, 读取图像Kb{i,j}m*8n行列大小为:x、y,且max_m=2*x-1、 max_n=2*y-1,接着计算倍率:a1=10i、b1=10k。重复上步,其中i,k=1,2,…10,直到a1>max_m,b1>max_n,得到a1,b1。计算置乱坐标并按 下式置乱:

其中:

X3(i,j)=mod(floor(a1*Z3(i,j)),x)

Y4(i,j)=mod(floor(b1*Z4(i,j)),y)

重复上步直到将矩阵Kb{i,j}m*8n遍历s0次,得置乱后的矩阵K'b{i,j}m*8n

h.将K'b{i,j}m*8n恢复为灰度图像,即得到密文图像K{i,j}m*n

如图3所示,提供了本发明实施例的一种DNA乱序编码和混沌映射的 图像解密方法,解密过程为加密的反过程,该方法包括步骤S201-S208:

S201.设置混沌系统密钥:读取密文K{i,j}m*n图像大小m*n,密钥u0、 x0、u1、x1,以及明文图像的信息熵h0

S202.混沌系统根据密钥产生加密矩阵:生成两个一维Logistic映射, 彼此进行按位抽取生成的四个加密矩阵:Zb1{i,j}m*8n、Zb2{i,j}m*8n、Z3{i,j}m*8n以 及Z4{i,j}m*8n,并将Zb1{i,j}m*8n、Zb2{i,j}m*8n两个随机矩阵进行DNA标准编码,得 到对应的DNA矩阵Zdna_1{i,j}m*4n、Zdna_2{i,j}m*4n;其具体步骤为:

读取图像大小m*n,密钥u0、x0、u1、x1,并计算明文图像的信息熵h0, 利用h0小数点后第3位、12位、14位修改混沌系统初始密钥并对初始位置b0赋值;按下式进行抽取:

b0=floor(mod(103*h0,10));

x0=x0+b12*10-12

x1=x1+b14*10-14

其中:

b12=floor(mod(1012*h0,10))

b14=floor(mod(1014*h0,10))

然后由两个Logistic映射按各自密钥u0、x0、u1、x1,分别产生m*8n 个随机数,生成序列L1(k)、L2(k)并合成m*8n大小的随机矩阵Z3{i,j}m*8n、 Z4{i,j}m*8n,i∈[1,m],j∈[1,8n];按下式分别抽取L1(k),L2(k)中相应位,并作 为彼此下一次抽取的初始位;

其中,初始位置为b0且b0=0,1,2…9;

重复上步,其中k=1,2,3…m*8n,直到L1(k)、L2(k)序列被遍历,得到序 列ak,bk

由序列ak,bk合成m*8n大小的随机矩阵a{i,j}m*8n、b{i,j}m*8n,按式得到二进制随机矩阵Zb1{i,j}m*8n,Zb2{i,j}m*8n

S203.将图像密文图像K{i,j}m*n二进制化后,得到K'b{i,j}m*8n

S204.逆二维混沌置乱:依据Z3{i,j}m*8n和Z4{i,j}m*8n,两个混沌矩阵,进行 行列互换,逆置乱K'b{i,j}m*8n,得到Kb{i,j}m*8n

S205.DNA编码:将图像Kb{i,j}m*8n,按第一预设方式中的一种进行DNA 编码得到Cdna{i,j}m*4n

S206.DNA加法:将Cdna{i,j}m*4n按第三预设方式与Zdna_2{i,j}m*4n进行DNA 加法得到Bdna{i,j}m*4n

S207.逆DNA乱序编码:将Bdna{i,j}m*4n按第二预设方式以及 Zdna_1{i,j}m*4n进行逆DNA乱序编码得到Adna{i,j}m*4n

S208.设置混沌系统密钥:读取密文K{i,j}m*n图像大小m*n,密钥u0、 x0、u1、x1,以及明文图像的信息熵h0

进一步的,S203的具体步骤为:

使用生成的置乱矩阵Z3{i,j}m*8n、Z4{i,j}m*8n对图像K'b{i,j}m*8n进行逆置 乱,读取图像K'b{i,j}m*8n行列大小为:x、y,且max_m=2*x-1、 max_n=2*y-1,接着计算倍率:a1=10i、b1=10k;重复上步,其中 i,k=1,2,…10,直到a1>max_m,b1>max_n,得到a1,b1;计算置乱坐标并按 下式置乱:

其中:

X3(i,j)=mod(floor(a1*Z3(i,j)),x)

Y4(i,j)=mod(floor(b1*Z4(i,j)),y)

重复上步直到将矩阵K'b{i,j}m*8n遍历s0次,得逆置乱后的矩阵 Kb{i,j}m*8n

进一步的,第一预设方式是指:1依次经过A、C、G、T编码后依次为00、 01、10、11,2依次经过A、C、G、T编码后依次为00、10、01、11,3依次 经过A、C、G、T编码后依次为01、00、11、10,4依次经过A、C、G、T编 码后依次为01、11、00、10,5依次经过A、C、G、T编码后依次为10、00、 11、01,6依次经过A、C、G、T编码后依次为10、11、00、01,7依次经过A、C、G、T编码后依次为11、01、10、00,8依次经过A、C、G、T编码后依 次为11、10、01、00。

进一步的,第二预设方式是指:A依次经过A、C、G、T编码后依次为C、 G、A、T,C依次经过A、C、G、T编码后依次为G、C、T、A,G依次经过A、 C、G、T编码后依次为A、T、C、G,T经过A、C、G、T编码后依次为T、A、 G、C。

进一步的,第三预设方式是指:A依次经过A、C、G、T编码后依次为A、 C、G、T,C依次经过C、A、T、G编码后依次为G、C、T、A,G依次经过A、 C、G、T编码后依次为G、T、A、C,T经过A、C、G、T编码后依次为T、G、 C、A。

具体的,,如图4所示,一种DNA乱序编码和混沌映射的图像解密方法的 详细步骤为:

a.设置混沌系统密钥:读取密文K{i,j}m*n图像大小m*n,密钥u0、x0、 u1、x1,以及明文图像的信息熵h0

b.混沌系统根据密钥产生加密矩阵:生成两个一维Logistic映射,彼此 进行按位抽取生成的四个加密矩阵:Zb1{i,j}m*8n、Zb2{i,j}m*8n、Z3{i,j}m*8n以及 Z4{i,j}m*8n,并将Zb1{i,j}m*8n、Zb2{i,j}m*8n两个随机矩阵进行DNA标准编码,得到 对应的DNA矩阵Zdna_1{i,j}m*4n、Zdna_2{i,j}m*4n。其步骤为:

读取图像大小m*n,密钥u0、x0、u1、x1,并计算明文图像的信息熵h0, h0的取值保留小数点后15位,利用h0小数点后第3位、12位、14位修改混 沌系统初始密钥并对初始位置b0赋值;按下式进行抽取:

b0=floor(mod(103*h0,10))

x0=x0+b12*10-12

x1=x1+b14*10-14

其中:

b12=floor(mod(1012*h0,10))

b14=floor(mod(1014*h0,10))

然后由两个Logistic映射按各自密钥u0、x0、u1、x1,分别产生m*8n 个随机数,随机数的精度保留小数点后10位,生成序列L1(k)、L2(k)并合成 m*8n大小的随机矩阵Z3{i,j}m*8n、Z4{i,j}m*8n,i∈[1,m],j∈[1,8n]。按下 式分别抽取L1(k),L2(k)中相应位,并作为彼此下一次抽取的初始位。

其中,初始位置为b0且b0=0,1,2…9;重复上步,其中k=1,2,3…m*8n, 直到L1(k)、L2(k)序列被遍历,得到序列ak,bk

由序列ak,bk合成m*8n大小的随机矩阵a{i,j}m*8n、b{i,j}m*8n,按式得到二进制随机矩阵Zb1{i,j}m*8n,Zb2{i,j}m*8n

c.将图像密文图像K{i,j}m*n二进制化后,得到K'b{i,j}m*8n

d.逆二维混沌置乱:依据Z3{i,j}m*8n和Z4{i,j}m*8n,两个混沌矩阵,进行行列 互换,逆置乱K'b{i,j}m*8n,得到Kb{i,j}m*8n;具体步骤为:

使用生成的置乱矩阵Z3{i,j}m*8n、Z4{i,j}m*8n对图像K'b{i,j}m*8n进行逆置 乱,读取图像K'b{i,j}m*8n行列大小为:x、y,且max_m=2*x-1、 max_n=2*y-1,接着计算倍率:a1=10i、b1=10k;重复上步,其中 i,k=1,2,…10,直到a1>max_m,b1>max_n,得到a1,b1

计算置乱坐标并按下式置乱:

其中:

X3(i,j)=mod(floor(a1*Z3(i,j)),x)

Y4(i,j)=mod(floor(b1*Z4(i,j)),y)

重复上步直到将矩阵K'b{i,j}m*8n遍历s0次,得逆置乱后的矩阵 Kb{i,j}m*8n

e.DNA编码:将图像Kb{i,j}m*8n,按表四8种方式中的一种进行DNA编码 得到Cdna{i,j}m*4n;具体步骤为:

每取Kb{i,j}m*8n中的两位二进制,按照表四,编码为对应的DNA碱基。

表四:

例如,第一次取Kb{1,7}m*8n中的两位二进制分别为00和10,按照表四, 编码为对应的DNA碱基A和G;

第二次取Kb{3,6}m*8n中的两位二进制分别为10和01,按照表四,编码为 对应的DNA碱基T和T;依次类推。

值得注意的是,本发明中的举例只是为了让本领域的技术人员易于理解, 在算法应用中往往较为复杂。

f.DNA加法:将Cdna{i,j}m*4n按表五与Zdna_2{i,j}m*4n进行DNA加法得到 Bdna{i,j}m*4n

表五:

g.逆DNA乱序编码:将Bdna{i,j}m*4n按表六以及Zdna_1{i,j}m*4n进行逆DNA 乱序编码得到Adna{i,j}m*4n;具体步骤为:以查表的方式对Bdna{i,j}m*4n进行 替换,例如Zdna_1{0,0}m*4n=A;Bdna{0,0}m*4n=G,则:Adna{0,0}m*4n=C

表六:

h.设置混沌系统密钥:读取密文K{i,j}m*n图像大小m*n,密钥u0、x0、 u1、x1,以及明文图像的信息熵h0

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述 描述的混沌系统,模块和相关工作单元的具体工作过程,可以参考前述方 法实施例中的对应过程,在此不再赘述。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的 普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进 和润饰,这些改进和润饰也应视为本发明的保护范围。

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