一种基于超混沌系统和多级置乱的图像加密方法与流程

文档序号:15099357发布日期:2018-08-04 15:21阅读:790来源:国知局
本发明涉及数字图像加密
技术领域
,尤其涉及一种基于超混沌系统和多级置乱的图像加密方法。
背景技术
:随着信息技术的发展,作为一种重要的媒介,图像通过互联网广泛传播,如何防止图像被非法传播是近年来的研究热点之一,因为图像具有容量大、相关性强和冗余性高等特点,传统的加密方法,比如高级数据加密标准(ADES)、国际数据加密算法(IDEA)等,往往都不能直接应用于图像加密。混沌系统具有一些天然的特点:伪随机性、对初始值及参数的极度敏感性、遍历性和不可预测性,这些特点为图像加密提供了有利条件,已有大量采用混沌系统来进行图像加密的成果;图像加密的操作一般分成两种:扩散和置乱,前者主要改变图像中像素内容,后者主要改变图像中像素的位置,已有的成果存在一些缺点,比如说,采用的混沌系统的维度低或者参数少,抗破解能力低;加密操作只在像素级进行,未充分利用更低级别数据的信息;扩散操作与置乱操作独立进行,未将两者有机结合起来,单一的混沌映射构成的加密算法无法保证所加密的图像具有较高安全性。DNA是生物体内遗传信息储存的重要载体,在生物体遗传代谢中发挥重要作用,由于其具有超大规模并行性、超高的存储密度、超低的能耗以及独特的分子结构与分子间识别机制决定了其突出的信息存储及信息处理能力,DNA分子在信息加密、隐藏、认证等信息安全
技术领域
具有巨大的发展潜力,为现代密码学的发展提供了一个新途径。为了提高图像加密的效果,本算法采用一种超混沌系统和DNA计算方法,在像素级、位级和DNA级分别对图像进行置乱、加密,达到了理想的图像加密效果。技术实现要素:为了解决上述问题,本发明提出一种基于超混沌系统和多级置乱的图像加密方法。具体的,一种基于超混沌系统和多级置乱的图像加密方法,包括以下步骤:S1.通过超混沌系统得到超混沌序列K;S2.将原始图像转换为大小为L=H×W的二维矩阵,其中H和W分别为矩阵的行和列的维数;S3.将原始图像像素信息转化为一维向量序列P,通过所述超混沌序列K对所述序列P执行二进制位转换、DNA转换并分别对其像素级、位级及DNA级置乱及加密,得到加密后的二进制位序列B2;S4.将所述序列B2转换为加密图像。进一步的,所述超混沌系统方程为其中x、y、z、ω为系统的状态变量,a、b、c、d、e、f、g为系统的控制参数,当a=35,b=3,c=35,d=5,e=1,f=0.2,g=0.3时,系统呈现出超混沌行为,所述超混沌序列K的生成具体方法为:给定初始状态值x0、y0、z0、ω0令系统处于超混沌状态下,通过迭代产生4个混沌序列,将前j-1次产生的混沌序列丢弃,将第j次迭代生成的4个状态值按Sj={xj,yj,zj,ωj}进行合并并对其进行N次迭代,得到超混沌序列进一步的,所述步骤S3的具体实施方法为:S31.将原始图像像素信息转化为一维向量序列P,通过所述超混沌序列K得到索引序列,并用得到的索引序列对所述序列P执行像素级置乱,得到序列P0;S32.从所述超混沌序列K中提取相邻的L项,按映射算法将其映射到[0,255]区间,得到序列S,将所述序列P0与所述序列S执行异或操作,得到序列P1;S33.将所述序列P1编码成二进制位序列B;S34.通过所述超混沌序列K得到索引序列,并用得到的索引序列对所述序列B执行位级置乱,得到序列B0;S35.根据DNA编码规则将所述序列B0编码为DNA序列D;S36.生成MASK图像序列M并根据所述DNA编码规则将其编码为DNA序列D1;S37.对所述序列D执行DNA级置乱,得到置乱后的DNA序列D0,根据DNA运算规则对所述序列D0和所述序列D1中的第i个核酸碱基进行运算加密,得到DNA序列D2;S38.根据所述DNA编码规则对所述序列D2中的第i个核酸碱基进行DNA解码,得到二进制位序列B2。进一步的,所述步骤S31的具体实施方法为:从所述超混沌序列K中提取前L项作为一个子序列并按升序排序,获取原始数据在排序后序列中的位置,即索引序列i1x,x=1、2、…L,并根据索引序列i1x对像素信息进行置乱,即得到置乱后的像素信息序列P0。进一步的,所述步骤S34的具体实施方法为:从所述超混沌序列K中提取相邻的8L项作为一个子序列并按升序排序,获取原始数据在排序后序列中的位置,即索引序列i2x,x=1、2、…L…8L,并根据索引序列i2x对位级信息进行置乱,即得到置乱后的位级信息序列B0。进一步的,所述DNA编码规则包括8种编码子规则,分别为规则1、2、3、4、5、6、7、8,待编码序列对应的编码子规则按照公式Rule=mod(Si,8)+1计算确定,其中,Si是按照所述映射算法得到的序列,mod是取模运算符,其运算结果是“Rule”,根据“Rule”的值选择对应的编码子规则;所述DNA运算规则包括加法运算规则、减法运算规则及异或运算规则,所述DNA运算规则通过公式Op=mod(Si,3)+1计算确定,其中,Si是按照所述映射算法得到的序列,mod是取模运算符,当Op的值为1、2、3时,分别表示DNA加法、减法、异或运算;所述映射算法为:其中ki和Si分别是映射前后的值,mod是取模运算符,|·|是绝对值运算符,是向下取整运算符。进一步的,所述步骤S35的具体实施方法为:从所述超混沌序列K中提取相邻的4L项,按所述映射算法将其映射到[0,255]区间,得到序列S1,通过公式Rule=mod(Si,8)+1得到每对二进制位对应的编码子规则,根据对应的编码子规则对所述序列B0中的第i对二进制位进行DNA编码得到DNA序列D,其中i=1,2,…,4L。进一步的,所述步骤S36的具体实施方法为:从所述超混沌序列K中提取相邻的L项,根据映射算法将其映射到[0,255]区间,生成MASK图像序列M,将所述序列M编码成位序列B1,从所述超混沌序列K中提取相邻的4L项,根据映射算法将其映射到[0,255]区间,得到序列S2,通过公式Rule=mod(Si,8)+1得到每对二进制位对应的编码子规则,根据对应的编码子规则对所述序列B1中的第i对二进制位进行DNA编码得到DNA序列D1,其中i=1,2,…,4L。进一步的,所述步骤S37的具体实施方法为:从所述超混沌序列K中提取相邻的4L项作为一个子序列并按升序排序,获取原始数据在排序后序列中的位置,即索引序列i3x,x=1、2、…L…4L,并根据索引序列i3x对DNA级信息进行置乱,即得到置乱后的DNA级信息序列D0,从所述超混沌序列K中提取相邻的4L项,根据映射算法将其映射到[0,255]区间,得到序列S3,根据所述DNA运算规则对所述序列D0和所述序列D1中的第i个核酸碱基进行运算加密,得到DNA序列D2,其中i=1,2,…,4L。进一步的,所述步骤S38具体实施方法为:从所述超混沌序列K中提取相邻的4L项,根据所述映射算法将其映射到[0,255]区间,得到序列S4,通过公式Rule=mod(Si,8)+1得到每对二进制位对应的编码子规则,根据编码子规则对所述序列D2的第i个核酸碱基进行逆向解码,得到二进制序列B2,其中i=1,2,…,4L。本发明的有益效果在于:采用超混沌系统和DNA编码的计算方法,对原始图像序列进行二进制位编码、DNA编码,结合混沌映射加密的方法对其进行多次加密运算,在像素级、位级和DNA级分别对图像进行置乱、加密,密钥敏感性高,有效提高了图像的加密效果,能有效抵御统计性分析和穷举分析等攻击操作,安全性高。附图说明图1是本发明的流程图;图2(a)是本发明实验的原始图像;图2(b)是本发明实验的加密图像;图2(c)是本发明实验的密钥微小变化的解密图像;图3(a)是本发明实验的原始图像灰度直方图;图3(b)是本发明实验的加密图像灰度直方图;图4(a)是本发明实验的原始图像水平方向相邻像素分布图;图4(b)是本发明实验的加密图像水平方向相邻像素分布图;图5是本发明的概要流程图。具体实施方式为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。如图1所示,一种基于超混沌系统和多级置乱的图像加密方法,包括以下步骤:S1.通过超混沌系统得到超混沌序列K;S2.将原始图像转换为大小为L=H×W的二维矩阵,其中H和W分别为矩阵的行和列的维数;S3.将原始图像像素信息转化为一维向量序列P,通过超混沌序列K对序列P执行二进制位转换、DNA转换并分别对其像素级、位级及DNA级置乱及加密,得到加密后的二进制位序列B2;S4.将序列B2转换为加密图像。混沌作为一种特有非线性现象,具有良好的伪随机性、轨道的不可预测性、对初始状态及结构参数的极端敏感性、迭代的不重复性等一系列优良特性,广泛被应用于保密通信中,与低维混沌系统相比,高维超混沌系统有更多正的李雅普诺夫指数、更加复杂和难以预测的动力学特性,能有效解决低维混沌系统动力学特性退化问题,保密性强,实现简单,密钥空间大,本实施例中,超混沌系统以0.001s为时间步长,采用四阶Runge-Kutta法进行求解,其方程为:其中x、y、z、ω为系统的状态变量,a、b、c、d、e、f、g为系统的控制参数,当a=35,b=3,c=35,d=5,e=1,f=0.2,g=0.3时,系统呈现出超混沌行为,超混沌序列K的生成具体方法为:给定初始状态值x0、y0、z0、ω0令系统处于超混沌状态下,通过迭代产生4个混沌序列,将前j-1次产生的混沌序列丢弃,将第j次迭代生成的4个状态值按Sj={xj,yj,zj,ωj}进行合并并对其进行N次迭代,得到超混沌序列进一步的,所步骤S3的具体实施方法为:S31.将原始图像像素信息转化为一维向量序列P,通过超混沌序列K得到索引序列,并用得到的索引序列对序列P执行像素级置乱,得到序列P0;S32.从超混沌序列K中提取相邻的L项,按映射算法将其映射到[0,255]区间,得到序列S,将序列P0与序列S执行异或操作,得到序列P1,扩散操作使明文的微小变化可以扩散到整个密文,从而打乱明文图像与密文图像的关系,可以有效抵抗选择明文等密码学攻击手段,实现密文扩散;S33.将序列P1编码成二进制位序列B;S34.通过超混沌序列K得到索引序列,并用得到的索引序列对序列B执行位级置乱,得到序列B0;S35.根据DNA编码规则将序列B0编码为DNA序列D;S36.生成MASK图像序列M并根据DNA编码规则将其编码为DNA序列D1;S37.对序列D执行DNA级置乱,得到置乱后的DNA序列D0,根据DNA运算规则对序列D0和序列D1中的第i个核酸碱基进行运算加密,得到DNA序列D2;S38.根据DNA编码规则对序列D2中的第i个核酸碱基进行DNA解码,得到二进制位序列B2。进一步的,步骤S31的具体实施方法为:从超混沌序列K中提取前L项作为一个子序列并按升序排序,获取原始数据在排序后序列中的位置,即索引序列i1x,x=1、2、…L,并根据索引序列i1x对像素信息进行置乱,即得到置乱后的像素信息序列P0。进一步的,步骤S34的具体实施方法为:从超混沌序列K中提取相邻的8L项作为一个子序列并按升序排序,获取原始数据在排序后序列中的位置,即索引序列i2x,x=1、2、…L…8L,并根据索引序列i2x对位级信息进行置乱,即得到置乱后的位级信息序列B0。进一步的,DNA编码规则包括8种编码子规则,分别为规则1、2、3、4、5、6、7、8,这里针对每一个像素均采取DNA编码技术,待编码序列对应的编码子规则按照公式Rule=mod(Si,8)+1计算确定,其中,Si是按照映射算法得到的序列,mod是取模运算符,其运算结果是“Rule”,根据“Rule”的值选择对应的编码子规则;DNA分子由四种脱氧核苷酸组成,分别是:腺嘌呤A、胞嘧啶C、鸟嘌呤G和胸腺嘧T。对于两个单链DNA分子,可以通过核苷酸之间的氢键形成一个稳定的DNA分子;碱基的化学结构确定了碱基互补配对的原则,也称为Watson-Crick碱基配对原则,即腺嘌呤A和胸腺嘧啶T之间通过两个氢键配对,鸟嘌呤G和胞嘧啶C之间通过三个氢键配对;这一天然的四进制组合,正好与半导体通断所形成的二进制类似,因此,运用碱基的排列组合可以进行信息的存储和计算,本实施例定义了如下的DNA编码规则:规则规则1规则2规则3规则4规则5规则6规则7规则800AATTCCGG01CGCGATAT10GCGCTATA11TTAAGGCCDNA运算规则包括加法运算规则、减法运算规则及异或运算规则,DNA运算规则通过公式Op=mod(Si,3)+1计算确定,其中,Si是按照映射算法得到的序列,mod是取模运算符,当Op的值为1、2、3时,分别表示DNA加法、减法、异或运算;对于灰度图像来说,每个像素的灰度值可以用8位二进制数表示,如果采用DNA编码,只需要编码4个碱基序列,转换成DNA序列以后,就可以将DNA序列的转换规则用到图像处理中,像素置乱通过矩阵初等变化快速的将图像的位置进行打乱,破坏了相邻像素之间的相关性,但无法有效地抵抗密码学攻击,进一步通过像素替换和密文扩散能够彻底混淆明文图像和密文图像之间的关系,使用复杂的非线性替代变换可以达到比较好的混淆效果,替代加密常用手段包括模运算和加运算,加运算能够使像素值与其他值关联,进而使各像素值的分布更加均为,消除置换图像的纹理特征,将图像矩阵中的每个像素值通过编码规则转换成二进制位序列,再根据上述的DNA编码规则将其编码为DNA序列,并与给定的DNA序列进行代数运算,进而达到像素替代的目的,DNA序列运算可以是加、减或异或运算,本实施例中,为达到像素值扰乱的目的,本实施例定义了如下的DNA运算规则:加法运算++AGCTACTAGGTCGACAGCTTGATC减法运算--AGCTACTGAGTCAGCAGCTTGATC异或运算映射算法为:其中ki和Si分别是映射前后的值,mod是取模运算符,|·|是绝对值运算符,是向下取整运算符。进一步的,步骤S35的具体实施方法为:从超混沌序列K中提取相邻的4L项,按映射算法将其映射到[0,255]区间,得到序列S1,通过公式Rule=mod(Si,8)+1得到每对二进制位对应的编码子规则,根据对应的编码子规则对序列B0中的第i对二进制位进行DNA编码得到DNA序列D,其中i=1,2,…,4L。进一步的,步骤S36的具体实施方法为:从超混沌序列K中提取相邻的L项,根据映射算法将其映射到[0,255]区间,生成MASK图像序列M,将序列M编码成位序列B1,从超混沌序列K中提取相邻的4L项,根据映射算法将其映射到[0,255]区间,得到序列S2,通过公式Rule=mod(Si,8)+1得到每对二进制位对应的编码子规则,根据对应的编码子规则对序列B1中的第i对二进制位进行DNA编码得到DNA序列D1,其中i=1,2,…,4L。进一步的,步骤S37的具体实施方法为:从超混沌序列K中提取相邻的4L项作为一个子序列并按升序排序,获取原始数据在排序后序列中的位置,即索引序列i3x,x=1、2、…L…4L,并根据索引序列i3x对DNA级信息进行置乱,即得到置乱后的DNA级信息序列D0,从超混沌序列K中提取相邻的4L项,根据映射算法将其映射到[0,255]区间,得到序列S3,根据DNA运算规则对序列D0和序列D1中的第i个核酸碱基进行运算加密,得到DNA序列D2,其中i=1,2,…,4L。进一步的,步骤S38具体实施方法为:从超混沌序列K中提取相邻的4L项,根据映射算法将其映射到[0,255]区间,得到序列S4,通过公式Rule=mod(Si,8)+1得到每对二进制位对应的编码子规则,根据编码子规则对序列D2的第i个核酸碱基进行逆向解码,得到二进制序列B2,其中i=1,2,…,4L。为更直观的展示本发明的加密算法的具体实施过程,这里以4×4的图像为例说明本发明的实施过程,此处以x=0.12,y=0.34,z=0.56,w=0.78为初始值,丢掉最初的1000次迭代结果,具体实施过程为:(1)原始图像的像素值如表a所示;(2)对原始图像进行置乱后的结果如表b所示,再进行像素级异或操作后的结果如表c所示;(3)对表c进行二进制编码的结果如表d所示,对其进行位级置乱,结果如表e所示;(4)根据DNA编码规则,对表e进行编码,得到的结果如表f所示;(5)根据混沌序列生成一个如表g所示的DNA级的Mask图像;(6)对表f的图像进行DNA级置乱,结果如表h所示;(7)依据DNA运算规则,对表g与表h进行运算,得到如表i所示的结果;(8)对表i进行DNA解码,得到如表j的二进制编码,其对应的最终加密结果如表k所示。进一步的,本实施例应用Matlab软件编程实现来验证本发明的实施结果,采用本发明所述加密算法对256×256的灰度Lena图像进行加密,如图所示,图2(a)、2(b)、2(c)分别为原始图像,加密图像以及使用微小变化的密钥进行解密的图像(x=0.12+1e-15,y=0.34,z=0.56,w=0.78),可见,即使密钥有细微的变化,也不能正确地对图像进行解密,表明了加密算法对密钥非常敏感。直方图反映了图像的像素分布,一般来讲,原始图像的像素分布很不均匀,而良好的加密图像的直方图呈现较好的均匀分布特性,即,良好的加密图像的直方图呈扁平形态,原始图像和加密图像的直方图如图3(a)和图3(b)所示,可以看出,加密图像的直方图非常扁平,表明提出的算法具有抗统计攻击的能力。信息熵用来反映一个系统的复杂度,对于256级灰度图来讲,其理想值是8,一个好的图像加密算法生成的加密图像的信息熵应是接近于理想值的,本实施例中,Lena原始图像和加密图像的信息熵分别为7.2283和7.9971,加密图像的信息熵非常接近于理想值,表明该算法具有良好的抗熵攻击的能力。相关性分析是另一个图像加密算法分析方法,分别从原始图像和加密图像中随机取出4000对水平方向相邻的像素点,原始图像和加密图像的水平方向相邻像素分布分别如图4(a)和4(b)所示,可以看出,原始图像的水平方向相邻像素值沿对角线分布,表明原始图像具有很强的相关性;而加密图像的对应值则较均匀地分布在整个平面,表明原始图像的强相关性被打破,加密图像的相邻像素的相关性非常弱。以上实施例证明了本发明提出的算法在原始图像的像素级、二进制位级及DNA级执行置乱、加密得到的加密图像密钥敏感性强,安全性高,具有很强的加密效果。需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和单元并不一定是本申请所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、ROM、RAM等。以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1