首页> 中国专利> 基于比特置换与动态DNA编码的混沌图像加密方法

基于比特置换与动态DNA编码的混沌图像加密方法

摘要

本发明提出了一种基于比特置换与动态DNA编码的混沌图像加密方法,用以解决现有基于混沌系统的图像加密方法的混沌动力学特性退化,影响混沌加密的安全性的问题。本发明首先利用Keccak算法计算给定DNA序列的散列值,并以此散列值生成混沌映射的初始状态值,采用超混沌Chen系统产生混沌映射索引对图像进行像素位置全局置乱,再结合Butterfly网络对每个像素进行比特位置乱,以实现位级别置乱;然后通过对图像进行动态DNA编码,并与给定的DNA序列进行异或运算,实现像素的替代;最后通过密文反馈来进一步增强其混淆和扩散特性。本发明不仅密钥空间大、对密钥的敏感性强,而且能有效抵御统计性分析和穷举分析等攻击操作。

著录项

  • 公开/公告号CN106952213A

    专利类型发明专利

  • 公开/公告日2017-07-14

    原文格式PDF

  • 申请/专利权人 郑州轻工业学院;

    申请/专利号CN201710157936.9

  • 申请日2017-03-16

  • 分类号G06T1/00(20060101);

  • 代理机构41125 郑州优盾知识产权代理有限公司;

  • 代理人张绍琳;栗改

  • 地址 450002 河南省郑州市金水区东风路5号

  • 入库时间 2023-06-19 02:49:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-03-06

    授权

    授权

  • 2018-02-27

    著录事项变更 IPC(主分类):G06T1/00 变更前: 变更后: 申请日:20170316

    著录事项变更

  • 2017-08-08

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

    实质审查的生效

  • 2017-07-14

    公开

    公开

说明书

技术领域

本发明涉及数字图像加密的技术领域,具体涉及一种基于比特置换与动态DNA编码的混沌图像加密方法。

背景技术

随着多媒体技术和网络技术的快速发展,数字图像处理已经广泛应用到了人类社会生活的各个方面,如:遥感、工业检测、医学、气象、通信、侦查和智能机器人等。因此,图像信息越来越得到重视。保护图像数据的安全就显得更加重要,尤其是在军事、商业和医疗等特殊领域。图像加密技术已成为一种有效保护所传输数字图像的方法。图像数据具有数据量大,相关性强、冗余度高等特点,现有的经典加密方法因其加密效率低,安全性不高等原因,已不能满足图像加密的需要。

作为一种复杂的非线性系统,混沌系统具有初值敏感性、伪随机性、非周期性等特点,与密码学所要求的特性相吻合。将混沌序列作为随机密钥,可以达到与一次一密相同的加密效果,在理论上也是不可破的。因此,混沌加密技术在信息安全领域,尤其是图像加密领域得到了广泛的应用。

目前,对于混沌序列的使用,大多数基于混沌系统的图像加密算法的混淆与扩散结构受计算机字长的限制,会导致混沌的动力学特性退化,特别是低维混沌系统,这严重影响了混沌加密的安全性。为此,许多学者使用超混沌系统来确保混沌序列的复杂性,以提高算法的安全性。但是,不可否认的是,单一的混沌映射构成的加密算法无法保证所加密的图像具有较高安全性。

DNA是生物体内遗传信息储存的重要载体,在生物体遗传代谢中发挥重要作用。由于其具有超大规模并行性、超高的存储密度、超低的能耗以及独特的分子结构与分子间识别机制决定了其突出的信息存储及信息处理能力。DNA分子在信息加密、隐藏、认证等信息安全技术领域具有巨大的发展潜力,为现代密码学的发展提供了一个新途径。

发明内容

针对现有基于混沌系统的图像加密方法的混沌动力学特性退化,影响混沌加密的安全性的问题,本发明借助于混沌映射对初始条件的敏感性与伪随机性,结合DNA分子固有的空间构型及独特的信息处理能力等优势,提出一种基于比特置换与动态DNA编码的混沌图像加密方法。

为了解决上述技术问题,本发明的技术方案是:一种基于比特置换与动态DNA编码的混沌图像加密方法,其步骤如下:

步骤一:将灰度图像I转换成大小为M×N的二维的图像矩阵I1;其中,M和N分别为图像矩阵I1的行和列的维数;

步骤二:利用Keccak算法对DAN序列SQ进行计算,得到一组散列值K,并生成混沌初始化参数;

步骤三:将超混沌Chen系统产生的索引序列B1按照升序排列,得到置换索引序列X,将置换索引序列X按照每行M个值进行填充可得到置换矩阵T,用置换矩阵T置乱图像矩阵I1中的像素位置,得到置乱后的图像矩阵I2

步骤四:根据编码规则将DNA序列SQ转化为二进制序列SQB;对二进制序列SQB中的位,按照每8位为一组进行分组,每组作为一个控制字节,取前M*N组得到序列SQB'={sqb′1,sqb′2,sqb′3,...,sqb′M*N};利用三级置乱的Butterfly置换网络,选择控制字节sqb′(i-1)*N+j作为控制位对图像矩阵I2中的任一个像素I2(i,j)进行置换;通过对图像矩阵I2中的所有像素进行三级置乱的Butterfly置换,得到新的图像矩阵I3;其中,i∈{1,2,…,M},j∈{1,2,…,N};

步骤五:将图像矩阵I3分为两个子矩阵,根据子图置乱与扩散方法,通过超混沌Chen系统产生的序列B2和序列B3分别对两个子矩阵进行置乱与扩散后,再恢复成一个矩阵,得到图像矩阵I4

步骤六:在DNA序列SQ的S处截取4×M×N个碱基序列,采用动态编码技术选择编码规则,将图像矩阵I4转换成长度为4×M×N的DNA序列DNA_S,并将序列DNA_S与DNA序列SQ做代数运算实现像素替代,得到的结果序列DNA_SD,利用编码规则将结果序列DNA_SD还原成图像矩阵,得到图像矩阵I5

步骤七:根据密文扩散技术,对图像矩阵I5中的每个像素与前一个像素的密文进行异或运算,得到图像矩阵I6并输出,其中,前一个像素的密文是指图像矩阵I6中的前一个元素。

所述DAN序列SQ为GenBank数据库中ID号为NZ_LOZQ01000068的DNA序列。

所述散列值和生成混沌初始化参数的方法为:散列值的长度为512比特,DNA序列SQ生成的散列值用十六进制表示为:9caa44db566cfe1f6a98c4991fffe891bb7d7f df840449a026e923e9feab60b8b7ed7a3933a757358c2c9441366976fab4bda222f9b5e4df814322e0dc12c13f,其二进制表示为{k1,k2,k3,…,k512},将其分为64组,每组包含8个比特位,则散列值为K={k′1,k′2,k′3,...,k′64};根据散列值K={k′1,k′2,k′3,...,k′64},按照如下公式计算超混沌Chen系统的初值x0,y0,z0和ω0

其中,v=6(u-1),u=1,2,3,4。

所述超混沌Chen系统产生的索引序列的方法是:超混沌Chen系统方程为:

其中,x、y、z和ω为系统的状态变量,u1、u2、u3、u4和r为系统的控制参数,在u1=35、u2=3、u3=12、u4=7和0.085≤r≤0.798时,系统表现为超混沌状态;

在给定初始状态值x0、y0、z0和ω0,使混沌系统处于超混沌状态下,通过迭代,产生4个给定长度的混沌序列,舍去起始端数据,从中取出L个不重复的值,可以得到4个离散实数值超混沌序列A1:{a11,a12,…,a1L};A2:{a21,a22,…,a2L};A3:{a31,a32,…,a3L};A4:{a41,a42,…,a4L}为统一实数序列的值域,仅取4个序列的小数部分,可以得到新的序列,分别为B1:{b11,b12,…,b1L};B2:{b21,b22,…,b2L};B3:{b31,b32,…,b3L};B4:{b41,b42,…,b4L},即:

其中,[x]表示取x的整数部分。

所述置换矩阵T中的元素Ti,j与索引序列X中的元素Xk对应关系如下:

Ti,j=X(i-1)*j+j;其中,k=(i-1)*j+j,i∈{1,2,…,M},j∈{1,2,…,N}。

所述三级置乱的Butterfly置换网络包括两种开关元件,开关元件均包含有一个待置换的位b,开关元件均有直通和交叉两种情况;开关元件为圆形元件和八边形元件,圆形元件是一种被动选择元件,圆形元件对应的两个通道的下一层哪一个位置没有被占用,选择没有被占用的通道;八边形元件的底端包含一个控制位,当控制位为1时,选择交叉,当控制位为0时,选择直通。

所述三级置乱的Butterfly置换网络的上端为源端、下端为终端、控制字节C={c8,c7,c6,c5,c4,c3,c2,c1},中间包含了3级置换,级与级之间为蝶式变换;置换网络从右向左进行,总是有八边形的元件先做出通道的选择;三级置乱的Butterfly置换网络包括一级置乱网络、二级置乱网络和三级置乱网络;一级置乱网络从右到左的低4位为八边形元件和高4位为圆形元件,一级置乱网络的低4位的八边形元件的控制位分别是控制字节C中的控制位c1、c2、c3和c4;二级置乱网络的第1、2、5、6位为八边形元件和第3、4、7、8位为圆形元件,二级置乱网络的第1、2、5、6位的八边形元件的控制位分别为c5、c6、c7和c8;三级置乱网络的第1、3、5、7位为八边形元件和第2、4、6、8位为圆形元件,三级置乱网络的第1、3、5、7位的八边形元件的控制位分别为:和其中,为同或运算。

所述子图置乱的方法为:图像矩阵I3中的每个像素值可用一个8位二进制序列表示,将每个像素值的二进制序列中的第1、3、5、7位取出作为一个字节的低4位,高4位补0,形成一个字节,作为一个新的像素值按照对应的位置重新生成一个子矩阵,得到子矩阵Sub_I;将每个像素值的二进制数中的第2、4、6、8位作为一个字节的低4位,高4位补0,按照对应的位置生成另外一个子矩阵Sub_II;先后对超混沌Chen系统产生的序列B2截取长度为M和N的混沌序列y1和y2,然后将这两个序列分别按升序排列,得到两个新的有序的序列y1’和序列y2’,确定混沌序列y1和y2中每一个元素在序列y1’和y2’中所在的位置,形成位置索引序列YM和YN;利用索引序列YM和YN分别对子矩阵Sub_I的所有行进行左移和上移置乱,即根据位置索引序列YM中元素YMi的值对子矩阵Sub_I的第i行进行循环左移YMi位(i=1,2,…,M),对子矩阵Sub_I的第j列进行上移,将其循环上移YNj位(j=1,2,…,N);先后对超混沌Chen系统产生的序列B3截取长度为M和N的序列,并排序生成索引序列ZM和ZN,根据索引序列ZM和ZN分别对子矩阵Sub_II进行右移和下移置乱;对两个子矩阵进行移位置乱后,再按照拆分子矩阵的原理,将两个子矩阵Sub_I和Sub_II恢复成一个图像矩阵。

所述密文扩散的方法是:将图像矩阵I5按照行优先的顺序转换为长度为M×N的一维序列SI={si1,si2,si3,…siM×N},设密文扩散后的序列为SD={sd1,sd2,sd3,…sdM×N},密文扩散的公式如下:

其中,初始化元素sd(0)=k′1,t=1,2,…M*N,k′1为前面产生的散列值K的前8位二进制位;

将SD序列转化为大小M×N的二维矩阵,得到图像矩阵I6

所述的动态编码技术是指:根据图像矩阵I={Ii,j}中待编码像素所在矩阵中的位置与前面产生的散列值K共同决定选择编码规则的一种,即对像素Ii,j所选择的DNA编码规则计算如下:

i∈{1,2,…,M},j∈{1,2,…,N},s=Mod((i-1)*N+j-1,510)+1;ksks+1ks+2是由产生的散列值K的第s位、s+1位和s+2位组成的三位二进制位,Bin2dec(ksks+1ks+2)为将二进制数转为十进制数的函数。

本发明将比特置换与动态DNA编码技术相结合,首先利用Keccak算法对给定的DNA序列计算散列值作为混沌映射的初值,采用超混沌Chen系统产生混沌映射索引对图像进行像素位置全局置乱;用给定的DNA序列作为控制位,结合Butterfly网络对比特置乱,以实现位级别置乱;通过对图像进行动态DNA编码,并与给定的DNA序列进行异或运算,实现像素的替代,进一步提高了加密的安全性;最后通过密文反馈来进一步增强算法的混淆和扩散特性。本发明不仅密钥空间大、对密钥的敏感性强,而且能有效抵御统计性分析和穷举分析等攻击操作,安全性高。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的流程图。

图2为本发明Butterfly置换网络的置换元件。

图3为本发明Butterfly置换网络的比特置换网络。

图4为本发明实验的原图像、加密图像和解密图像。

图5为本发明Lena图像加密前后灰度直方图

图6为本发明加密图像与原始图像水平、垂直及对角方向相邻像素相关性比较。

具体实施方式

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

如图1所示,一种基于比特置换与动态DNA编码的混沌图像加密方法,第一,像素内置乱,借助于Butterfly网络实现每个像素的比特位置乱;第二,像素位置置乱变换,利用超混沌Chen系统产生的混沌序列构成需要的置换索引,通过置换索引将图像像素位置进行置乱变化;第三:像素替代与密文扩散,将原始图像的每个像素的值转换成DNA序列,然后与DNA编码序列库中的序列进行运算,再通过密文反馈进行迭代置换。本发明利用超混沌Chen系统、Keccak算法、比特置换、DNA序列库以及自身像素灰度值之间的变换与运算达到混淆与扩散的目的,从而实现对数字图像的加密,具体步骤如下:

步骤一:将灰度图像I转换成大小为M×N的二维的图像矩阵I1,其中,M和N分别为灰度图像的行维数和列维数。

步骤二:利用Keccak算法对DAN序列SQ进行计算,产生一组散列值K,并生成混沌初始化参数。

核酸数据库是所有已知核酸信息集合的一个数据资料库,它包含核酸的核苷酸序列,单核苷酸多态性、结构、性质以及相关描述等内容。序列在数据库中的ID号被称为序列代码,它具有唯一性和永久性。随着测序技术的快速发展,核酸数据库的规模正在以指数方式增长,到目前为止能够公开获取的DNA序列已经超过1.63亿条。如此巨大规模的数据库,相当于一个天然的密码本,为图像加密技术提供了一个全新的思路和解决方案。本发明DNA序列主要用于密文扩散,以及散列值的产生。

DNA分子由四种脱氧核苷酸组成,分别是:腺嘌呤A、胞嘧啶C、鸟嘌呤G和胸腺嘧啶T。对于两个单链DNA分子,可以通过核苷酸之间的氢键形成一个稳定的DNA分子。碱基的化学结构确定了碱基互补配对的原则,也称为Watson-Crick碱基配对原则,即腺嘌呤A和胸腺嘧啶T之间通过两个氢键配对,鸟嘌呤G和胞嘧啶C之间通过三个氢键配对。这一天然的四进制组合,正好与半导体通断所形成的二进制类似。因此,运用碱基的排列组合可以进行信息的存储和计算。

如果按照A→00,C→01,G→10,T→11进行对应编码,则互补数字配对及与碱基对的互补配对及吻合,这样共有8中编码组合满足互补配对规则,如表1所示。

表1. 8种编码规则

对于灰度图像来说,每个像素的灰度值可以用8位二进制数表示,如果采用DNA编码,只需要编码4个碱基序列;转换成DNA序列以后,就可以将DNA序列的转换规则用到图像处理中。在加密图像中,为达到像素值扰乱的目的,同时定义了如下碱基运算规则。

根据互补配对规则,针对A→00,C→01,G→10,T→11编码,这里给出一种碱基之间的运算规则,如表2-表4所示,针对其他编码,同样可以建立类似的运算规则。

表2.异或运算规则

XORACGTAACGTCCATGGGTACTTGCA

表3.加法运算规则

ADDACGTAACGTCCGTAGGTACTTACG

表4.减法运算规则

SubACGTAATGCCCATGGGCATTTGCA

Keccak算法是一种标准的单向散列函数算法。散列函数可以根据任意长度的消息计算出固定长度的散列值。将散列值附在消息之后发出或者以消息一同存储,可以防止消息在存储和传输过程中被修改。消息不同,产生的散列值也不同,消息中哪怕只有1比特的改变,散列值就会完全不用。利用这一特点,通过选择合适的消息,利用Keccak散列函数生成的散列值与图像进行运算来改变图像的像素值。同时,对该散列值进行相应的修正来设定混沌系统的初值和系统参数,来进一步提高加密的安全性。Keccak算法在输入数据长度上限方面没有长度限制,可以生成任意程度的散列值。

散列值K的长度选择512比特,可以表示为K={k1,k2,k3,…,k512}。比如GenBank数据库中ID号为NZ_LOZQ01000068的DNA序列所生成的散列值为(十六进制表示):9caa44db566cfe1f6a98c4991fffe891bb7d7fdf840449a026e923e9feab60b8b7ed7a3933a757358c2c9441366976fab4bda222f9b5e4df814322e0dc12c13f。如果将其分为64组,每组包含8个比特位,则为K={k′1,k′2,k′3,...,k′64}。

根据散列值K={k′1,k′2,k′3,...,k′64},按照如下公式计算超混沌Chen系统的初值x0,y0,z0,ω0

其中,v=6(u-1),u=1,2,3,4。

步骤三:将超混沌Chen系统产生的索引序列B1按照升序排列,得到置换索引序列X,将置换索引序列X按照每行M个值进行填充可得到置换矩阵T,用置换矩阵T置乱图像矩阵I1中的像素位置,得到置乱后的图像矩阵I2

混沌作为一种特有非线性现象,具有良好的伪随机性、轨道的不可预测性、对初始状态及结构参数的极端敏感性、迭代的不重复性等一系列优良特性,广泛被应用于保密通信中。与低维混沌系统相比,高维超混沌系统有更多正性李雅昔诺夫指教、更加复杂和难以预测的动力学特性,能有效解决低维混沌系统动力学特性退化问题,保密性强,实现简单,密钥空间大。2005年,李等人通过状态反馈控制构建了超混沌Chen系统,其方程为:

其中,x、y、z和ω为系统的状态变量,u1、u2、u3、u4和r为系统的控制参数,在u1=35、u2=3、u3=12、u4=7和0.085≤r≤0.798时,系统表现为超混沌状态。

在给定初始状态值x0,y0,z0和ω0,使混沌系统处于超混沌状态下,通过迭代,产生4个给定长度的混沌序列;舍去序列的起始端数据,从中取出L个不重复的值,可以得到4个离散实数值超混沌序列A1:{a11,a12,…,a1L};A2:{a21,a22,…,a2L};A3:{a31,a32,…,a3L};A4:{a41,a42,…,a4L}为统一实数序列的值域,仅取4个序列的小数部分,可以得到新的序列,分别为B1:{b11,b12,…,b1L};B2:{b21,b22,…,b2L};B3:{b31,b32,…,b3L};B4:{b41,b42,…,b4L},则:

其中,[x]表示取x的整数部分。

图像置乱技术是通过对图像像素矩阵的重排,破坏图像矩阵的相关性,可以很大限度的提高隐蔽载体的鲁棒性,所以图像置乱是信息隐藏中非常常用的一项技术,以此实现信息的加密,达到安全传输图像的目的。

给定二维矩阵I,图像置乱主要是寻找一个二维可逆映射T作为置乱矩阵,当矩阵I经过置乱矩阵T变换后得到二维矩阵I’。则I与I’的对应关系为:

Ii,j=I'p,q

其中,p=div(Ti,j-1,M)+1,q=mod(Ti,j-1,M)+1,i∈{1,2,…,M},j∈{1,2,…,N}。M和N为二维矩阵I的行数和列数。

根据超混沌Chen系统产生的序列B1,按照升序排列,得到置换索引序列X,将索引序列X按照每行M个值进行填充可得到置换矩阵T,用于图像像素的位置置乱。置换矩阵T中的每个元素Ti,j与索引序列X中的每个元素Xk对应关系如下:

Ti,j=X(i-1)*j+j,k=(i-1)*j+j,i∈{1,2,…,M},j∈{1,2,…,N}

步骤四:根据编码规则将DNA序列SQ转化为二进制序列SQB;对二进制序列SQB中的位,按照每8位为一组进行分组,每组作为一个控制字节,取前M*N组得到序列SQB'={sqb′1,sqb′2,sqb′3,...,sqb′M*N};利用三级置乱的Butterfly置换网络,选择控制字节sqb′(i-1)*N+j作为控制位对图像矩阵I2中的任一个像素I2(i,j)进行置换;通过对图像矩阵I2中的所有像素进行置换,得到新的图像矩阵I3;其中,i∈{1,2,…,M},j∈{1,2,…,N}。

DNA序列SQ转化为二进制序列SQB的编码规则为表1中的规则1。

置乱是密码算法中隐藏明文信息的重要手段,通过位置置换来实现明文到密文的扩散。而比特置换提供了字节操作所无法实现的混乱扩散等功能。Butterfly是一种常见的通讯交换网络。Butterfly网络和逆Butterfly网络连接一起可以组合成一种可重排非阻塞网,能实现从输入端到输出端的所有置换。因此,Butterfly置换网络可以用来构造实现任意置换操作的比特单元实现像素内置换。Butterfly置换网络包括两种开关元件,分别为圆形元件和八边形元件,用于控制比特置换,如图2所示。圆形元件和八边形元件均有直通和交叉两种情况,每个开关元件中包括一个待置换的位b,八边形元件的底端包含一个控制位c。对于八边形的开关元件,当c=1时,选择交叉,c=0时,选择直通。而对于圆形元件,是一种被动选择元件,要看它对应的两个通道的下一层哪一个位置没有被占用,只能选择没有被占用的通道。根据Butterfly网络的设计原理,计算从右向左进行,总是有八边形的元件先做出通道的选择。一旦八边形的元件运算结束,剩下的圆形元件有且仅有一种通道被选择。为了达到置换的目的,本发明实现三级置乱,通过对Butterfly网络进行改进,仅需要一个控制字来控制一个给定字节位的置换。三级置乱的Butterfly置换网络的上端为源端、下端为终端、控制字节C={c8,c7,c6,c5,c4,c3,c2,c1},中间包含了3级置换,级与级之间为蝶式变换;网络从右向左进行,总是有八边形的元件先做出通道的选择;三级置乱的Butterfly置换网络包括一级置乱网络、二级置乱网络和三级置乱网络;一级置乱网络从右到左的低4位为八边形元件和高4位为圆形元件,一级置乱网络的低4位的八边形元件的控制位分别是控制字节C中的控制位c1、c2、c3和c4;二级置乱网络的第1、2、5、6位为八边形元件和第3、4、7、8位为圆形元件,二级置乱网络的第1、2、5、6位的八边形元件的控制位分别为c5、c6、c7和c8;三级置乱网络的第1、3、5、7位为八边形元件和第2、4、6、8位为圆形元件,三级置乱网络的第1、3、5、7位的八边形元件的控制位分别为:和其中,为同或运算,如图3所示。

比如给定待置换字节B=10100101,控制字节C=10011001,则中间字节S=00111100和字节T=10011001,则输出字节D=01100110,实现了字节10100101到字节01100110的位置换。输入待置换字节B=10100101和控制字节C=10011001,则对于第一级置乱,有B的低4位为八边形元件,根据控制位先做出选择通道,高4位仅有的通道做出选择。得出第一级置换结果字节S=00111100,同时作为第二级置换的输入字节。在第二级置换中,字节S的第1、2、5、6位为八边形元件,根据给定控制位先做出通道的选择;剩余的位对剩余的通道进行选择,得到中间字节T=10011001。字节T同时为第三级的输入字节,在第三级置换中,T字节的第1、3、5、7位有八边形元件所控制,根据控制字节C的部分位,首先做出通道的选择,剩余的位对剩余的通道做出选择,得到最终输出字节D=01100110;最终实现了字节B=10100101再控制字节C=10011001的作用下置换为字节D=01100110。本发明明文图像经过比特级置乱后,不仅像素位置改变了,同时像素值也得到了改变,进一步提高了安全性。

步骤五:将图像矩阵I3分为两个子矩阵,根据子图置乱与扩散方法,通过超混沌Chen系统产生的序列B2和序列B3分别对两个子矩阵进行置乱与扩散后,再恢复成一个矩阵,得到图像矩阵I4

像素位置全局置乱阶段的操作将实现对图像像素位置的全局置乱,以打破相邻像素的相关性,仅对图像进行位置置乱,而不改变像素值是不安全的,很难抵御明文攻击。为增强加密算法的安全性,结合视觉密码加密原理,将图像分成两个子图,进一步置乱像素值以实现像素扩散。

针对灰度图像的二维矩阵I,每个像素值可用一个8位二进制序列表示,即:Ii,j=(b8b7b6b5b4b3b2b1)i,j,其中,bk∈{0,1},k=1,2,…,8,i∈{1,2,…,M},j∈{1,2,…,N},b8代表最高位,b1代表最低位。将每个像素的二进制数中的第1、3、5和7位取出作为一个字节的低4位,高4位补0,形成一个字节,作为一个新的像素值,按照对应的位置重新生成一个子矩阵,得到子矩阵Sub_I;同样,将每个像素的二进制数中的第2、4、6和8位作为一个字节的低4位,高4位补0,按照对应的位置生成另外一个子矩阵Sub_II。这样一幅灰度图像可以由这2个子图中的子矩阵所确定,并且图像中每个像素点值的信息都分布在这两个子矩阵中。

根据超混沌Chen系统产生的序列B2,先后截取长度为M和N的混沌序列y1和y2,然后将这两个序列分别按升序排列,得到两个新的有序序列y′1和y′2。确定混沌序列y1和y2中每一个元素在有序序列y′1和y′2元素所在的位置,形成位置索引序列YM和YN。首先,对子矩阵Sub_I的所有行进行左移置乱,根据序列YM中元素YMi的值对子矩阵Sub_I的第i行进行循环左移YMi位(i=1,2,…,M)。然后对子矩阵Sub_I的所有列进行上移置乱;比如第j列,将其循环上移YNj位(j=1,2,…,N);同理,根据混沌产生的序列B3,先后截取长度为M和N的序列,并排序生成索引序列ZM和ZN,根据索引序列ZM和ZN对子矩阵Sub_II进行右移和下移置乱。通过分别对每个子矩阵Sub_I和Sub_II进行移位置乱后,再按照拆分子矩阵的原理,将两个子矩阵恢复成一个图像矩阵I4来实现密文的置乱与扩散。

步骤六:在DNA序列SQ的S处截取4×M×N个碱基序列,采用动态编码技术选择编码规则,将图像矩阵I4转换成长度为4×M×N的DNA序列DNA_S,并将序列DNA_S与DNA序列SQ做代数运算实现像素替代,得到的结果序列DNA_SD,利用编码规则将结果序列DNA_SD还原成图像矩阵,得到图像矩阵I5

像素置乱通过矩阵初等变化快速的将图像的位置进行打乱,破坏了相邻像素之间的相关性,但无法有效地抵抗密码学攻击,进一步通过像素替换和密文扩散能够彻底混淆明文图像和密文图像之间的关系。使用复杂的非线性替代变换可以达到比较好的混淆效果,替代加密常用手段包括模运算和加运算,加运算能够使像素值与其他值关联,进而使各像素值的分布更加均为,消除置换图像的纹理特征。

将图像矩阵中的每个像素值通过编码规则转换成DNA序列,并与给定的DNA序列进行代数运算,进而达到像素替代的目的。DNA序列运算可以是加、减或异或运算。这里针对每一个像素均采取动态DNA编码技术,动态DNA编码技术是根据图像矩阵I中待编码像素所在矩阵中的位置与前面产生的散列值共同决定选择表1中编码规则的一种,也即对像素Ii,j所选择的DNA编码规则计算如下:

i∈{1,2,…,M},j∈{1,2,…,N},s=Mod((i-1)*N+j-1,510)+1;ksks+1ks+2由散列值K的第s位、s+1位和s+2位三位二进制位组成,Bin2dec(ksks+1ks+2)为将三位二进制数转为十进制数的函数。

由于每个像素值可以由8位二进制表示,因此每个像素被编码为4个碱基。因此,编码后的序列DNA_S长度为4×M×N。如原始图像的第37行和第54列的像素值是108,用二进制表示为[01101100],根据动态编码技术,应选择规则为R37,54=8,用DNA编码规则8进行编码,得到该像素的DNA序列为[GCAT]。

将序列DNA_S与给定DNA序列SQ做代数运算。代数运算可以是表2、表3或表4中的其中一种运算。比如选择表2的异或运算:

其中,f=1,2,3,…,4×M×N。

最后,对结果序列DNA_SD选择编码规则1,恢复成图像矩阵。

步骤七:根据密文扩散技术,对图像矩阵I5中的每个像素与前一个像素的密文进行异或运算,得到图像矩阵I6并输出,其中,前一个像素的密文是指图像矩阵I6中的前一个元素。

密文扩散操作使明文的微小变化可以扩散到整个密文,从而打乱明文图像与密文图像的关系,可以有效抵抗选择明文等密码学攻击手段,实现密文扩散。将图像矩阵I5按照行优先的顺序转换为长度为M×N的一维序列SI={si1,si2,si3,…,siM×N},设密文扩散后的一维序列为SD={sd1,sd2,sd3,…sdM×N},密文扩散的公式如下:

其中,初始化元素sd(0)=k′1,t=1,2,…M*N,k′1为前面产生的散列值K的前8位二进制位。将序列SD转化为大小M×N的二维矩阵,得到图像矩阵I6

图像解密算法是上述过程的逆过程。这里不再阐述。本发明也适用于彩色图像的加密,只需将像素的值进行RGB分解处理即可。

应用Matlab软件编程实现来验证本发明的可行性,采用大小为256*256的lena灰度图像,原始图像如图4(a),利用本发明得到的加密图像如图4(b)所示,利用本发明的逆过程对图4(b)的解密图像如图4(c)所示。本发明所采用的密钥主要用于像素置乱和扩散过程,分别是:超混沌Chen系统初值参数r=0.6,核酸数据库的DNA序列选择ID号为NZ_LOZQ01000068的序列,起始位置为S=1,其他参数均有DNA序列的散列值生成。

如果计算精度为10-14,密钥的空间即可达到10100,可见本发明具有足够的空间来抵抗穷举攻击。为了测试密钥的灵敏度,对于超混沌Chen系统映射,将超混沌Chen系统的初始值x0的初值增加0.0000000001,其他密钥不变的情况下,无法正确解密出原图像,可见本发明具有较强的密钥灵敏性。当然,这里的x0是由DNA序列所产生的散列值计算所得,本发明真正的密钥是DNA序列与起始位置S,如果将DNA序列中的碱基更换一个,将导致散列值完全不一样,这样产生的混沌系统初始值会变化更大。

图像的统计信息在一定程度上可以曝露出原始图像灰度值的分布规律,能否改变原始图像的统计分布也是图像加密中至关重要的指标。本发明对图像像素灰度值运算操作的目的即是为抵御攻击方进行灰度统计攻击。图4(a)中原始图像的灰度直方图如图5(a)所示,图4(b)中加密图像的灰度直方如图5(b)所示。由图5可以得出,异或处理及置换运算使所得加密图像灰度分布非常均匀,这说明了该算法具有很好的抵御统计分析能力,使攻击者不能够分析出原始灰度值分布范围。

一般原始图像中像素的相关性比较大,为了阻止统计分析,必须降低相邻像素的相关性,随机选取加密图像和原始图像各2500对像素对,观测其水平、垂直和对角方向的像素相关性,结果如表5所示。原始图像水平方向、竖直方向、对角方向的相邻像素相关性分别如图6(a)、图6(c)和图6(e)所示,加密图像的水平方向、竖直方向、对角方向的相邻像素相关性分别如图6(b)、图6(d)和图6(f)所示。从表5可以看出,加密前的图像像素之间具有较大的相关性,经过加密后,图像像素之间相关性大大减少。这表明加密图像的相邻像素已基本不相关,原始图像的统计特征已被扩散到随机密文图像中。表5和图6给出了原始图像与加密图像相邻像素对之间的相关性比较。

表5相邻像素相关性比较

信息熵是一种测试不确定性的指标。计算公式如下:

其中,p(mi)表示信息mi出现的概率。对于灰度图像矩阵I来说,信息m有256种状态,最小值0,最大值为255。则根据上式可知,当信息熵为8时,表明信息是完全随机的。也就是说,密文信息熵越大,信息越安全。本发明的图4(b)加密图像得到的密文图像的信息熵为7.9893,这表明密文的信息泄露极小,进一步证明了本发明的安全性。

本发明通过比特置换、混沌映射与DNA序列库之间的运算实现图像像素位置的置乱变换与像素值的扩散,基于比特置换与DNA编码相结合,使其能有效抵抗明文攻击,差分攻击和统计攻击,密钥空间大,安全性高。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号