首页> 中国专利> 基于像素和DNA交叉动态混沌密码的图像加密方法和装置

基于像素和DNA交叉动态混沌密码的图像加密方法和装置

摘要

本发明涉及一种基于像素和DNA交叉动态混沌密码的图像加密方法和装置,方法包括以下处理:对明文图像的像素进行排序,获得第一索引矩阵,按照第一索引矩阵对明文图像进行第一混沌编码,得到第一中间图像;第一中间图像的行和列分别排序,求得行索引矩阵和列索引矩阵,按照行、列索引矩阵对第一中间图像进行置乱,得到第二中间图像;将第二中间图像的每一像素转化为4碱基DNA序列,根据第二混沌编码选择满足Watson‑Crick补码规则的8种DNA编码规则,采用上述8种DNA编码规则对第二中间图像的每一DNA序列进行互补DNA编码,得到第三中间图像,然后对第三中间图像进行DNA减法、加法和异或操作,得到第四中间图像;对所述第四中间图像进行相邻DNA编码,得到最终的密文图像。

著录项

  • 公开/公告号CN107590842A

    专利类型发明专利

  • 公开/公告日2018-01-16

    原文格式PDF

  • 申请/专利权人 山东师范大学;

    申请/专利号CN201710792142.X

  • 发明设计人 骆超;

    申请日2017-09-05

  • 分类号

  • 代理机构济南圣达知识产权代理有限公司;

  • 代理人张勇

  • 地址 250014 山东省济南市文化东路88号

  • 入库时间 2023-06-19 04:20:33

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-29

    授权

    授权

  • 2018-02-09

    实质审查的生效 IPC(主分类):G06T9/00 申请日:20170905

    实质审查的生效

  • 2018-01-16

    公开

    公开

说明书

技术领域

本发明涉及一种基于像素和DNA交叉动态混沌密码的图像加密方法和装置。

背景技术

近年来,随着计算机技术和网络技术的飞速发展,通信方式发生了巨大的变化。多媒体通信逐渐成为人们交换信息的重要手段。由于网络的开放性和共享性,对多媒体通信造成了巨大的潜在威胁。因此,图像的安全性和保密性也越来越重要。该图像具有相邻像素之间高相关性和冗余性的特点,这使得传统的加密方法(如DES,IDEA等)不再通用。

鉴于传统方法的局限性,混沌作为一门新兴的学科人才脱颖而出。混沌是非线性科学中一种确定性但不可预测的运动状态。混沌具有初始条件敏感性、伪随机性、遍历性等特点。因此,混沌与密码学密切相关。与传统的加密方法相比,基于混沌理论的图像加密方法在安全性、复杂性、速度等方面更具优势,近年来逐渐成为研究热点。

典型的混沌密码系统两分为两个阶段,即置乱和扩散。置乱是指改变图像像素的位置,而扩散就是改变像素值的大小。置乱与扩散相结合可以提高加密系统的安全性。但是,它还有一些缺点。一些加密系统按照这种方式已经被破解。主要原因是在设计方法时,没有充分考虑混沌动力学性能。为了克服这些缺点,基于耦合映象格子的时空混沌系统已应用于混沌密码学。CML具有更好的混沌动力学特征,包括更多的参数,更大的密钥空间,更长的周期等等。但是基于耦合格的一些加密方法与明文图像没有关联。输出密文图像只依赖于密钥,这已被证明是不安全的,不能抵抗所选择的明文/密文攻击。

近几年来已经提出了一些基于DNA序列的密码方法。DNA分子具有平行性和信息密度大的特点。一些研究发现,DNA技术可以提高密码系统的安全性,有效地抵御选择明文攻击。然而,由于计算机的精度有限,且低维混沌映射具有周期性。一些基于DNA技术的密码系统也被破解。研究人员发现如果该方法使用二进制编码,编码效率较低;如果密钥仅由混沌系统控制,则很容易被破解,同时如果加密系统仅基于没有扩散的置乱,则密文与明文不相关。虽有研究人员破解了一种基于DNA技术的加密系统,但他们发现只有一部分已知明文/密文可以用来重建等价密钥,密文图像不能抵抗差分攻击。

发明内容

针对现有技术中存在的不足,本发明提供了一种基于混沌密码系统的图像加密方法,具有足够大的密钥空间可以抵抗强力攻击,具有极高的安全性。

本发明的技术方案为:

一种基于混沌密码系统的图像加密方法,包括以下处理:

对明文图像的像素进行排序,获得第一索引矩阵,按照第一索引矩阵对明文图像的所有像素进行第一混沌编码,得到第一中间图像,所述第一混沌编码具有密钥A和密钥B,第一索引矩阵为密钥C;

将第一中间图像转化为M×N维矩阵,对M×N维矩阵的行和列分别排序,求得行索引矩阵和列索引矩阵,按照行、列索引矩阵对第一中间图像进行置乱,得到第二中间图像;所述行、列索引矩为密钥D;

将第二中间图像的每一像素转化为4碱基DNA序列,然后将第二中间图像转化为 M×(N×4)维矩阵,根据第二混沌编码选择满足Watson-Crick补码规则的8种DNA编码规则,采用上述8种DNA编码规则对M×(N×4)维矩阵中的每一DNA序列进行互补DNA编码,得到第三中间图像,所述第二混沌编码具有密钥E和密钥F,互补DNA编码具有密钥G;

然后对第三中间图像按照密钥H和密钥I,进行DNA减法、加法和异或操作,得到第四中间图像;

对所述第四中间图像按照密钥J进行相邻DNA编码,得到最终的密文图像。

进一步的,按照第一索引矩阵对明文图像的所有像素进行第一混沌编码,得到第一中间图像包括:

所述第一混沌编码采用混沌密码系统,混沌密码系统采用logistic映射,设定混沌密码系统的第一初始值和第一控制参数,采用混沌密码系统第一初始值和第一控制参数迭代混沌密码系统,生成第一系统序列;所述混沌密码系统的第一初始值和第一控制参数为密钥A;

设定logistic映射的第一初始值和第一控制参数;采用logistic映射的第一初始值和第一控制参数迭代logistic映射,生成第一映射序列,将所述第一映射序列作为状态变量代入第一系统序列中,对所述第一系统序列与明文图像的所有像素进行异或操作,得到第一中间图像;所述logistic映射的第一初始值和第一控制参数为密钥B。

进一步的,所述根据第二混沌编码选择满足Watson-Crick补码规则的8种DNA编码规则,采用上述8种DNA编码规则对M×(N×4)维矩阵中的每一DNA序列进行互补DNA编码包括:

所述第二混沌编码采用混沌密码系统,混沌密码系统采用logistic映射,设定混沌密码系统的第二初始值和第二控制参数,采用混沌密码系统第二初始值和第二控制参数迭代混沌密码系统,生成第二系统序列,根据所述第二混沌序列随机在所有可能的DNA编码规则中选择8种DNA编码规则;所述混沌密码系统的第二初始值和第二控制参数为密钥E;

设定logistic映射的第二初始值和第二控制参数,将所述logistic映射的第二初始值和第二控制参数输入logistic映射,迭代logistic映射,生成第二映射序列;所述logistic映射的第二初始值和第二控制参数为密钥F;

计算M×(N×4)维矩阵中行和行之间的汉明距离距离、列与列之间的汉明距离距离,利用循环移位函数对所述第二映射序列与行和行之间的汉明距离距离、列与列之间的汉明距离距离进行操作,完成DNA扰码的添加;

设定logistic映射的第三初始值和第三控制参数,将所述logistic映射的第三初始值和第三控制参数输入logistic映射,迭代logistic映射,生成第三映射序列;所述logistic映射的第三初始值和第三控制参数为密钥G;

根据所述第三映射序列选择使用DNA互补规则和DNA序列中每个碱基的迭代次数,对每一DNA序列进行互补编码。

进一步的,所述混沌密码系统的初始值、控制参数和logistic映射的初始值、控制参数通过SHA-256哈希方法生成。

进一步的,利用循环移位函数对所述第二映射序列与行和行之间的汉明距离距离、列与列之间的汉明距离距离进行操作包括:对两个汉明距离距离执行以下操作,生成两个行和列数组:

其中,Bi,Cj为第二映射序列,Hamming_Rowi为行和行之间的汉明距离距离,Hamming_Colj为列与列之间的汉明距离;M×(N×4)DNA矩阵Di在ith行执行右循环移位CircShift_Rowi次,其中CircShift_Rowi∈[1,N-1];同样,在jth列上执行“上”循环移位CircShift_Colj次,其中CircShift_Colj∈[1,M]。

进一步的,所述DNA互补规则包括:

规则1:(AT)(TC)(CG)(GA),规则2:(AT)(TG)(GC)(CA),规则3:(AC)(CT)(TG)(GA)

规则4:(AC)(CG)(GT)(TA),规则5:(AG)(GT)(TC)(CA),规则6:(AG)(GC)(CT)(TA)。

其中,所述对第三中间图像的每一DNA序列进行DNA减法、加法和异或操作,得到第四中间图像包括:

按照设定的第一DNA解码规则对第三中间图像进行解码,得到一个2位二进制序列,将此2位二进制序列进行排序,得到第三索引矩阵,按照所述第三索引矩阵将上述2位二进制序列转化为十进制值,每个十进制值均对应一种DNA操作,按照给定十进制值的对应DNA 操作对所述第三中间图像的每一DNA序列进行DNA减法、加法和异或操作,得到第四中间图像;所述第一DNA解码规则为为密钥H,第三索引矩阵为密钥I.

进一步的,按照给定十进制值的对应DNA操作对所述第三中间图像的每一DNA序列进行DNA减法、加法和异或操作包括:

通过第一DNA解码规则解码第三中间图像,得到一个长度为M×N×4的2位二进制序列,将此2位序列转换为十进制值,转换过程中对此2位二进制序列进行排序,得到第三索引矩阵,根据第三索引矩阵选择不同的DNA操作:

其中“+”,“-”和“XOR”分别是DNA加法操作,DNA减法操作和DNA异或操作,D″为第三中间图像,C″为第四中间图像,D″_deci为第三索引矩阵。

其中,对所述第四中间图像进行相邻DNA编码,得到最终的密文图像包括:

首先将所述第四中间图像转化为M×N维矩阵,然后对所述M×N维矩阵中的相邻DNA序列进行异或操作,按照设定的第二DNA解码规则对所述相邻两DNA序列异或操作的结果进行解码,得到一个二进制序列,将所述二进制序列与第一中间图像进行异或操作,然后再将所述异或操作的结果转化为十进制值,得到最终的密文图像;所述第二DNA解码规则为密钥J。

本发明还提出了一种基于混沌密码系统的图像加密装置,包括处理器,用于实现各指令;以及存储设备,用于存储多条指令,所述指令由处理器加载并执行:

对明文图像的像素进行排序,获得第一索引矩阵,按照第一索引矩阵对明文图像的所有像素进行第一混沌编码,得到第一中间图像,所述第一混沌编码具有密钥A和密钥B,第一索引矩阵为密钥C;

将第一中间图像转化为M×N维矩阵,对M×N维矩阵的行和列分别排序,求得行索引矩阵和列索引矩阵,按照行、列索引矩阵对第一中间图像进行置乱,得到第二中间图像;所述行、列索引矩为密钥D;

将第二中间图像的每一像素转化为4碱基DNA序列,然后将第二中间图像转化为 M×(N×4)维矩阵,根据第二混沌编码选择满足Watson-Crick补码规则的8种DNA编码规则,采用上述8种DNA编码规则对M×(N×4)维矩阵中的每一DNA序列进行互补DNA编码,得到第三中间图像,所述第二混沌编码具有密钥E和密钥F,互补DNA编码具有密钥G;

然后对第三中间图像按照密钥H和密钥I,进行DNA减法、加法和异或操作,得到第四中间图像;

对所述第四中间图像按照密钥J进行相邻DNA编码,得到最终的密文图像。

本发明的有益效果:

本发明的密钥空间足够大,包括通过利用SHA-256哈希方法生成作为H的数组的64位的哈希值;给定CML系统的控制参数ε02和初始值x′0(1)和x′0(2),logistic映射的初始值x0和y0;步骤9中使用的DNA解码规则(8种)的索引;第三索引矩阵以及DNA解码规则(8种)>-14,则密钥空间大小至少为2256×8×4×8×1014×5≈2.9645×10149。它比密钥空间2100的安全要求更大。因此,我们提出的方法可以抵抗强力攻击。

实验结果和理论分析表明,本发明可以抵抗差分攻击,暴力攻击,统计攻击和选择明文攻击。因此,所提出的方法具有极高的安全性。

附图说明

图1为本发明中一实施例的实验结果:(a)Lena的平面图像,(b)Lena的加密图像,(c)Lena 的解密图像,

图2为本发明中一实施例的实验结果:(d)Camera man的平面图像,(e)Camera man的加密图像,(f)Camera man的解密图像;

图3为本发明中一实施例的实验结果:(g)Peppers的平面图像,(h)Peppers的加密图像, (i)Peppers的解密图像;

图4为本发明中对一实施例试验敏感性的结果:

图5为本发明中对一实施例试验敏感性的结果:

图6为本发明中对一实施例的直方图统计结果;

图7为本发明中对一实施例的直方图统计结果;

图8为本发明中对一实施例的直方图统计结果;

图9为本发明中对一实施例的水平相关性结果;

图10为本发明中对一实施例的水平相关性结果;

图11为本发明中对一实施例的水平相关性结果;

图12为本发明中对一实施例的添加噪声后的结果;

图13为本发明中对一实施例的添加噪声后的结果;

图14为本发明中对一实施例遮挡攻击后的结果;

图15为本发明中对一实施例遮挡攻击后的结果。

具体实施方式:

下面结合附图与实施例对本发明作进一步说明:

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

本文提出了一种基于混沌密码系统和DNA技术特征的新型图像加密方法。主要思想是首先在图像像素级上进行加密,然后在像素级加密结果的基础上,再进行DNA级加密,具体包括以下步骤:

首先对明文图像的像素进行排序,获得第一索引矩阵,将明文图像的每个像素转化为与其对应的一维矩阵序列,按照第一索引矩阵对明文图像的所有像素进行第一混沌编码,得到第一中间图像;

第一混沌编码首先需要进行初始值与控制参数的设置,具体过程是:

首先通过哈希方法生成一部分密钥。哈希方法在密码学中占有重要地位。最常见的哈希方法是MD5,SHA-1和SHA-2等,它可以保证信息传输的完整性,在计算机中得到广泛的应用。哈希方法通常用来抵抗选择明文攻击。但是近年来,一些基于哈希方法的图像加密方法已被破解。破解的原因是因为只由哈希函数生成,而忽略了明文信息,本方法为了克服现有的不足,选取了安全性较好的SHA-256哈希方法,SHA-256哈希方法的复杂度为2256的,因此,密码系统可以抵抗强力攻击。首先生成一个64位的哈希值作为H的数组,如下式所示:

H=[h1,h2,...,h64]>

采用上述哈希数组,生成混沌密码系统的初始值和控制参数,此初始值和控制参数可视作一部分密钥。

混沌密码系统在本发明中采用基于耦合映象格子(CML)的系统,耦合映象格子是一种具有离散时间和离散空间的动态系统。它不仅对初始条件敏感,而且对边界条件也很敏感。近年来,它被广泛应用于混沌密码系统的设计中。虽然计算机的精度是有限的,任何混沌系统都有周期性窗口。CML系统可确保信息的安全。其一种定义如下:

xn+1(i)=(1-ε)f(xn(i))+εf(xn(i+1))>

其中i=1,2,...L,L是晶格长度。它在像素级别设置为20,并在使用CML系统时在DNA>n(L)=xn(0)。在本文中,ε是控制参数,x0(1)和x0(2)是初始值,此初始值和控制参数可视作一部分密钥。如果f是混沌映射,则系统的动态特性是混沌的。在本文中,我们选择传统的logistic映射为f,其动力学方程式如下:

f(x)=μx(1-x).(3)

其中μ∈(3.5699456,4)为logistic映射的控制参数,x∈(0,1)。

前述的采用哈希数组,生成混沌密码系统的初始值和控制参数、logistic映射控制参数的公式为:

其中,函数hex2dec(·)将十六进制数转换为十进制数,表示异或运算,mod(·)是模数运算符。

本方法中采用哈希数组生成混沌密码系统的初始值和控制参数、logistic映射控制参数包含了明文图像的信息,体现在sumPixel上,sumPixel表示明文图像的所有像素总和。

另外本发明除了生成上述的logistic映射的控制参数μ∈(3.5699456,4)以外,还需要设置 logistic映射的初始值,包括x0和y0,x0、y0以及控制参数可视作密钥B。

我们首先将初始值和控制参数x0(1)、x0(2)、ε01(可视为密钥A)输入至CML系统定义公式中,并迭代18次;结果序列x0(3)....x0(20)表示为x0(i),其中i是格数且i∈[1,20]。也就是说,格数是20。然后我们迭代CML系统200次,以增强混沌的效果。

设明文图像为M×N大小的图像P,其中M是行数,N是列数,继续迭代CML系统M×N次,得到序列Xh={x201(h),x202(h),...,x200+i(h)};x200+i(h)表示第h个状态变量在第200+i次迭代时的值。将x0,μ=μ2带入logistic映射并迭代M×N次,我们将得到的序列表示为>i,i=[1,2,...,M×N](可视作第一映射序列)。参数h的计算由下式所示,对于Xh(可视作第一系统序列)中每个值可以如下计算:

其中floor(·)代表四舍五入。

接下来,正如前文所说的,对明文图像的像素进行排序,获得第一索引矩阵(矩阵的索引被用作密钥C),将明文图像的每个像素转化为与其对应的一维矩阵序列Pi,按照第一索引矩阵对明文图像的所有像素进行第一混沌编码,得到第一中间图像Pi′,具体按照下面的公式计算:

其中表示异或运算,i=1,2,3,...,M×N。

然后将第一中间图像P′i转化为M×N维矩阵,对M×N维矩阵的行和列分别排序,求得行索引矩阵和列索引矩阵,按照行、和列索引矩阵对第一中间图像进行置乱,得到第二中间图像,这里设定第二中间图像的像素为P1″,也就是置乱之后的像素。

举例说明上述置乱过程:

我们利用函数sort(·)进行加扰。如果A是一个可以排序的序列,那么[B,index]=sort(A)。其中B是A排序后的序列,index是B中每个项对应A的一个索引。例如,A=[8 5 49 3]由函数sort(·) 来操作,我们可以得到B=[3 4 5 8 9]和index=[5 3 2 1 4],index被用来扰乱序列A并得到C=[9 4 5 3 8]。这样,第一中间图像P′i以M×N维矩阵形式表示,每个行和列中的所有元素按升序排序。利用每个行和列的索引序列index_Rowi和index_Colj对第一中间图像P′i进行置乱(两个序列用作密钥D),得到的矩阵是置乱图像C′i,j,也就是第二中间图像,其中i=1,2,...,M、j=1,2,...,N。至此,加密过程在像素级上结束。

接下来进入DNA级加密,我们采用DNA级加密的步骤包括:

在像素级加密图像的结果上,首先将第二中间图像的每一像素转化为4碱基DNA序列, DNA序列由4种脱氧核糖核酸构成,它们是腺嘌呤(A),鸟嘌呤(G),胞嘧啶(C)和胸腺嘧啶(T),其中A和T是互补的,G和C是互补的。因为0和1在二进制中是互补的,所以 00和11是互补的,01和10也是互补的。通过使用四个碱基A,T,G和C来编码00,11,01 和10。理论上,有24种DNA编码规则,但只有8种编码规则满足Watson-Crick补码规则,这些列于表1。在本文中,当图像在DNA水平上扩散时,我们首先将第二中间图像转化为 M×(N×4)维矩阵,通过混沌序列选择这8种编码规则来对每个像素进行加密。

表1 DNA编码规则

Rule1234567800AATTGGCC01CGGCATAT10GCCGTATA11TTAACCGG

例如,明文图像的两个像素的灰度值是“55”和“100”,它们对应的二进制值是“00110111”和“01100100”;可以使用DNA编码规则3将第一像素编码为DNA序列“GCAC”,并且可以使用DNA编码规则8将第二像素编码为DNA序列“TATC”。相反,如果我们根据表1 中的DNA编码规则对产生的DNA序列进行解码,就可以得到相应的二进制序列。

我们根据混沌序列选择上述8种DNA编码规则,按照第二混沌编码方式进行编码,具体的:

设定混沌密码系统的第二初始值和第二控制参数,也就是输入值x′0(1),x′0(2)和ε02(可视作密钥E),将它们带到混沌密码系统公式中并迭代CML>1′={x′201(1),x′202(1),...,x′200+M×N(1)},每个X′1(可视作第二系统序列)执行以下操作:

DNA_EncodeRulesi=floor(X′200+i×105)mod>

其中i=1,2,3,...,M×N,DNA_EncodeRulesi={1,2,...,8}是一个混沌序列,该序列为第二系统序列,其目的是选择满足Watson-Crick补码规则的8种DNA编码规则。将图像C′i,j转换为M×(N×4)维矩阵Di,将C′i,j的每个像素编码为4碱基DNA序列:

设置4个DNA子序列,并将其表示为我们利用等式(8)计算两个汉明距离d1和d2

d1=H(D1,D4),d2=H(D2,D3).>

我们将x′0=0.d1和μ=μ3(可视作密钥F),也就是logistic映射的第二初始值和第二控制参数,代入logistic映射并迭代M次以获得序列Bi,i=[1,2,...,M];将y′0=0.d2和μ=μ4(可视作密钥F),也就是logistic映射的第二初始值和第二控制参数,代入logistic映射并迭代N×4次以获得序列Cj,j=[1,2,...,N×4],序列Bi,i=[1,2,...,M]和序列Cj,j=[1,2,...,N×4]视为第二映射序列。

然后需要计算DNA矩阵Di的行和列之间的汉明距离。

在DNA编码设计中,汉明距离用于描述两个DNA序列的相异性。汉明距离是两个等长 DNA序列相应位置的不同碱基的数目。两个DNA序列之间汉明距离越大,两个序列中的碱基数量就越少。已知两个DNA序列X={x1x2...xn}和Y={y1y2...yn},Hamming距离H(X,Y)可以通过公式(9)计算:

由于矩阵Di总共具有M行,计算行和行之间的汉明距离的结果被表示为Hamming_Rowi,其中i=1,2,...,M-1。本文规定Mth行的值为N×4/2,并使数组Hamming_Rowi具有M个值;它等于行数。类似地,计算列和列之间的汉明距离的结果表示为Hamming_Colj,其中j=1,2,...,N×4-1。本文指定Nth列的值为floor(M/2)。这两个补充数组分别有M和N×4元素。其中>i∈[0,N×4],Hamming_Colj∈[0,M]。

我们对两个汉明距离数组执行以下操作,生成两个行和列数组,利用循环移位函数:

M×(N×4)DNA矩阵Di在ith行执行右循环移位CircShift_Rowi次,其中CircShift_Rowi∈[1,N-1];同样,我们在jth列上执行“上”循环移位CircShift_Colj次,其中CircShift_Colj∈[1,M]。因此,在>i′,其中i=1,2,3,...,M×N×4。

接着,将x0和μ1(可视作密钥G),可视为logistic映射的第三初始值和第三控制参数,代入logistic映射,并迭代M×N次以获得序列Ji,i=[1,2,...,M×N];把y0和μ2,同样可视为logistic>j,j=[1,2,...,M×N×4]。通过公式(11)计算两个序列,也就是第三映射序列:

根据DNA互补规则,DNA矩阵Di进行扩散操作。序列DNA_Rulesi定义了当前DNA序列使用哪种DNA互补规则,DNA_Roundsj定义了DNA序列中每个碱基的迭代次数。

例如,如“ATCG”,DNA_Rules=3和DNA_Roundsj=[2143];这意味着,该DNA序列选择DNA互补规则3,每个碱基的迭代次数是“2”、“1”、“4”和“3”,结果是“TGCT”。以这种方式扩散Di的所有DNA序列,得到的矩阵表示为D″i,也就是第三中间图像,中>

上述密钥B、密钥F和密钥G出自同一计算公式,也就是前述哈希数组,所以密钥B、密钥F和密钥G的取值可以相同,也可以不同。

DNA互补规则包括:

根据DNA序列中4个碱基之间的互补规则,需要DNA互补规则才能满足等式(14):

其中L(xi)是xi的碱基对,其与至少一个位位置不同,并且满足注入条件。因此,共有6>

规则1:(AT)(TC)(CG)(GA),规则2:(AT)(TG)(GC)(CA),规则3:(AC)(CT)(TG)(GA)

规则4:(AC)(CG)(GT)(TA),规则5:(AG)(GT)(TC)(CA),规则6:(AG)(GC)(CT)(TA)

同样,该方法通过混沌序列随机选取6组互补规则中的一条,以补充扩散过程中的每个 DNA序列。从而进一步提高扩散效果。

接下来,对第三中间图像的每一DNA序列进行DNA减法、加法和异或操作,得到第四中间图像;然后对第四中间图像进行相邻DNA解码,得到最终的密文图像。

根据传统的二进制加减运算和异或运算,我们设计了DNA加法运算、减法运算和异或运算。对应于8种DNA编码规则,还存在8种DNA加法、减法和异或运算。根据DNA编码规则7,它们的定义分别列在表2-4中。当图像在DNA水平上扩散时,通过混沌序列选择这3种操作,对相邻碱基和相邻DNA序列进行加密。例如,有“ACGT”和“CGTA”两个DNA 序列;每个DNA序列中的碱基的操作是在“ACGT”序列中,“A”和“C”可以使用DNA减法获得“A”,该结果(“A”)与“G”可以使用DNA XOR操作以获取“G”,该结果(“G”)与“T”可以使用DNA减法来获得“A”。这是为了达到扩散操作的像素点的目的。相邻DNA序列的加密是指直接对两个DAN序列进行操作。如果对“ACGT”和“CGTA”进行DNA异或操作,其结果为“CCGG”。我们可以发现,每行或每列的结果在表4是唯一的。换句话说,DNA XOR操作的结果是唯一的。在本方法中,DNA操作与混沌序列相结合,以扩散明文图像的像素值。

表2 DNA序列的加法操作

表3 DNA序列的减法操作

ACGTACATGCGCATGTGCATATGC

表4 DNA序列的异或操作

XORACGTAACGTCTGCAGCATGTGTAC

具体的,首先通过第一DNA解码规则解码D″i第三中间图像(该DNA解码规则的索引作为密钥H),得到一个2位二进制序列(长度为M×N×4)。将此2位序列转换为十进制值,转换过程中对此2位二进制序列进行排序,得到第三索引矩阵,记为D″_deci(该序列的索引作为密钥I),其中D″_deci∈{0,1,2,3}和i=1,2,3,...,M×N×4。根据D″_deci的值,选择不同的DNA>i,也就是第四中间图像:

其中“+”,“-”和“XOR”分别是DNA加法操作,DNA减法操作和DNA异或操作。如果i=1,设C″0=D″M×N×4;且2≤i≤M×N×4,我们总是使用公式(14),直到所有的碱基扩散。

将第四中间图像矩阵C″i转换为M×NDNA矩阵C″_Reshapei,这意味着每个元素在该矩阵中包含4个碱基。根据上文相邻DNA序列的加密规则,根据公式(15),该操作(顺序是从左到右,从上到下)与矩阵P′i相结合:

其中DNA_Decode(·)表示第二DNA解码规则(该DNA解码规则的索引用作密钥J),函数 bin2dec(·)将二进制数转换为十进制数。然后得到密文图像,用DNA_Cipheri表示。加密过程结束。

解密方法类似于加密,它只是加密的逆过程。具体步骤如下:

步骤1:输入密文图像DNA_Cipheri,和加密方法相同的初始值,控制参数和其他值。

步骤2:根据明文图像的SHA-256哈希值,通过哈希数组,生成混沌密码系统的初始值和控制参数、logistic映射控制参数。

步骤3:矩阵DNA_Cipheri与P′i相结合,由等式(15)反推。这意味着首先执行XOR操作,并将得到的序列从十进制转换为二进制,然后用DNA编码规则b对其进行编码。相邻的DNA>i。

步骤4:解密DNA矩阵中的碱基。矩阵D″i是根据D″_deci的值反向利用DNA操作规则获得的;我们将初始值x0和y0,控制参数μ1和μ2代入公式(3)并利用公式(11)计算两个序列DNA_Rulesi和DNA_Roundsj;我们利用这两个序列和公式(12)通过DNA互补规则解密矩阵D″i,得到矩阵D′i

步骤5:根据由公式(8)和公式(10)生成的两个序列的值,我们在jth列上执行“下”循环移位CircShift_Colj次;类似地,我们在ith行上执行右循环移位CircShift_Rowi次。

步骤6:矩阵DNA_EncodeRulesi是由公式(6)生成的,我们通过利用DNA解码规则对矩阵Di进行解码,并将其转换成十进制以获得M×N图像C′i,j

步骤7:通过序列index_Rowi和index_Colj的索引恢复图像C′i,j的像素位置,获得加扰之前图像P′i

步骤8:序列X′i是由公式(4)获得的,我们根据公式(5)对图像P′i反向使用异或操作,得到解密图像Pi

下面我们在不同的图像上进行了加密,具体的,我们设CML系统的控制参数ε02=0.66和初始值x0(1)′=0.12345和x0(2)′=0.67891,logistic映射的初始值x0=0.66666和y0=0.88888;作为H>

H=[a749f5f9e1f3d215a277a329341a51a72d26c69d8b9b3e40e36406def9199916]

提出的方法实验结果基于MATLAB R2015b平台,计算机配置为4.00GB RAM,Intel(R) Core(TM)i5-2410M CPU@2.30GHz和Windows 10操作系统。我们采用大小为256×256的“Lena”,“Camera man”和“Peppers”,作为多个测试的明文图像。仿真结果如图1、图2和图 3所示。另外,我们在彩色的lena图像上做了相关实验。

图1中包括(a)Lena的平面图像,(b)Lena的加密图像,(c)Lena的解密图像;

图2包括(d)Camera man的平面图像,(e)Camera man的加密图像,(f)Camera man的解密图像;

图3包括(g)Peppers的平面图像,(h)Peppers的加密图像,(i)Peppers的解密图像。

一个好的加密方法应该能够抵抗各种攻击,如暴力攻击,统计攻击,差分攻击和选择明文攻击等。为了验证本发明提出的加密方法,下面给出了一些具体验证:

我们采取密钥y0和在上述的第一DNA解码规则的索引为例来测试图像“Lena”的敏感性,实验结果如图4所示。图4(a)表示将密钥y0从0.88888变为0.888880000001时的加密图像;类似地,图4(b)示出了当步第一DNA解码规则的索引从DNA解码规则7改变为DNA解码规则3时的加密图像;图4(c)示出了图4(a)和图4(b)之间的差异。图5(d)表示出了当密钥x0(1)′从0.12345改变为0.123450000001时的解密图像,并且我们利用它解密图1(b)。我们可以发现密钥的微小变化导致明文和密文图像的戏剧性变化。因此,可以得出结论,我们提出的方法对密钥非常敏感。

我们对明文图像“Lena”进行1位的改变,坐标(100,100)的像素值从“55”变为“0”,明文图像如图5(e)所示。我们利用与图1(b)相同的密钥进行加密,加密图像如图5(f)所示,图5(g)显示出两个密文图像之间的差异。我们可以发现,明文图像中的微小变化导致了密文图像的巨大变化。因此,该方法对于明文图像也是敏感的,加密技术可以抵抗选择的明文攻击。

对于理论分析,我们提出的方法与明文图像相关,如果明文图像的像素被改变,它将影响前述中的sort(·)函数、汉明距离以及循环移位功能。因此,本发明的灵敏度性能非常高。

密文图像的直方图是该方法是否能抵抗统计分析的一个重要特征。直方图描述图像的像素值的分布。如果分布不均匀,攻击者可以通过统计分析获得一定数量的信息。通过分析密文图像的统计特性,使选择密文攻击更加容易。因此,即使在良好的密码体制中,直方图的分布也是很有必要的。

图6、图7和图8显示出了“Lena”,“Camera man”和“Peppers”的明文和密文图像的直方图。我们可以发现,在加密之前,明文图像的直方图是不均匀的,通过比较它们的直方图,加密后的密文图像对应的直方图也变得均匀。因此,我们提出的加密方法会使统计分析变得困难。

在明文图像中的相邻像素之间存在很高的相关性,容易受到统计攻击。因此,有必要减少相邻像素之间的相关性。我们利用公式(16)和公式(17)计算明文图像和密文图像的相邻像素之间的相关性。本文随机选择明文图像“Lena”中的10000对相邻像素及其对应的每个方向的密文图像。

从水平,垂直和对角线方向测试相邻像素之间的相关性,如图5所示。

其中,

表5列出了明文图像和密文图像“Lena”的相关系数。我们可以发现明文图像中相邻像素之间的相关性很高,加密后的密文图像的相关性低于表5。我们提出的加密方法在三个方向的相关系数基本上小于其值。因此,该方法可以有效抵抗统计攻击。

图9、图10和图11表示相邻像素之间的相关性验证结果,它包括(a)明文图像“Lena”中的水平相关性,(b)密文图像“Lena”中的水平相关性,(c)明文图像“Lena”中的垂直相关性,(d) 密文图像“Lena”中的垂直相关性,(e)明文图像“Lena”中的对角相关,(f)密文图像“Lena”中的对角相关。

表5 明文和密文相邻像素之间的相关性

信息熵反映信息的随机性,其值可以通过公式(18)来计算。越接近8,方法泄露信息的可能性就越小。表6列出了“Lena”,“Camera man”和“Peppers”的明文和密文图像的信息熵,并将它们与现有文献中的密文图像“Lena”的信息熵进行了比较。

其中p(si)表示符号si的概率。加密后,密文图像的信息熵应接近8。我们可以得出结论,利用我们从表6中提出的方法,在加密后难以泄露信息。因此,该方法具有良好的信息熵性能,能抵抗统计攻击。

表6 信息熵的比较

差分攻击是选择明文攻击的一种方式。攻击者对明文图像进行轻微的更改,然后对其进行加密,并找出两个加密图像之间的差异。它可以帮助攻击者找到明文和密文图像之间的相关性。差分攻击的两个重要特征是像素数量变化率(NPCR)和统一的平均变化强度(UACI)。它们的值可以通过公式(19)和公式(20)来计算,如下所示:

其中W和H分别表示图像的宽度和高度。c1和c2分别是明文图像的一个像素改变之前和之后的密文图像。如果c1(i,j)≠c2(i,j),令D(i,j)=1;否则,令D(i,j)=0。使用同一密钥对仅一个像素灰度值不同的两个明文图像进行加密。在前文中,我们对图5(f)进行了实验。现在我们将对“Camera>

表7 加密图像的NPCR和UACI

鲁棒性是测试密码抗干扰能力的重要特征。我们利用噪声攻击和遮挡攻击来测试我们提出的方法的鲁棒性。

在实际通信过程中,最重要的问题之一是噪声干扰。错误传播现象意味着加密图像中的错误将导致解密图像中的错误。常见的噪声类型有高斯噪声、椒盐噪声等,与其他噪声相比,椒盐噪声对密文图像的影响更大;因此,本实验只考虑明文图像加入椒盐噪声对我们提出的方法的影响。在明文图像中加入不同强度的椒盐噪声,利用相同的密钥进行加密和解密。图 12显示出了添加强度为0.01、0.05和0.1的椒盐噪声后的加密图像和解密图像。我们可以发现,即使噪声强度达到0.1,解密图像仍然可以被识别。因此,我们提出的方法可以抵抗噪声攻击。

图12和图13表示噪声攻击的实验结果,它包括:在明文图像中添加噪声强度(a)0.01, (b)0.05and(c)0.1之后的加密图像。(d),(e)和(f)相应的解密图像。

遮挡攻击是另一种鲁棒性测试,我们对加密图像进行1/16,1/4和1/2遮挡的图像进行解密。解密图像的质量随着遮挡尺寸的增加而减小。图14和图15示出了具有不同大小的遮挡和相应的解密图像的加密图像。

可以从实验结果的解密图像中识别明文图像的主要信息。因此,所提出的加密方法具有很强的鲁棒性,也可以抵抗遮挡攻击。

图14和图15是遮挡攻击的实验结果。加密图像具有(a)1/16,(b)1/4(c)1/2遮挡,(d),(e) 和(f)是相应的解密图像。

本发明提出了一种基于CML系统和DNA扩散序列的混沌图像加密方法。首先,利用SHA-256散列方法和明文图像相结合,生成CML系统的初始值和控制参数,logistic映射,在像素级进行第一轮加密;其次,通过混沌方法选择DNA编码规则,获得DNA矩阵;通过汉明距离,循环移位函数,DNA补充规则,DNA操作规则等操作,在DNA级别进行第二轮加密,最后得到密文图像。与基于DNA序列的其他图像加密方法相比,我们采用汉明距离结合循环移位函数进行加扰;DNA互补规则和DNA操作规则结合混沌序列进行扩散。实验结果和理论分析表明,该方法可以抵抗差分攻击,暴力攻击,统计攻击和选择明文攻击。因此,所提出的方法具有极高的安全性。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号