本发明属于数字图像处理
技术领域:
,尤其涉及一种数字图像加密方法,可用于保密通信等信息安全领域。
背景技术:
:图像加密技术已成为网络安全的一个重要分支,对于数字图像信息的安全性需求,目前主要考虑四个方面,即:保密性、完整性、鉴别性和不可抵赖性。由于混沌具有低功耗、低复杂度、安全性高和方便性以及易于软件仿真实现等特性,使用混沌对图像加密可以很好的满足以上数字图像加密需要达到的四个要求,进而可以有效地保护图像数据,防止图像信息被攻击者所窃取,所以对于图像加密,使用比较多的是混沌加密技术。目前,在图像加密中应用比较广泛的几种混沌映射有猫映射、逻辑映射和时空混沌映射,其中猫映射可以被认为是一个在随时间周期变化的在外场中做一维运动的质点所产生的,也可以被描述为在有限区域内反复做拉伸和折叠的变换;逻辑映射从数学形式上来看是一个非常简单的混沌映射,但此系统具有极其复杂的动力学行为,在保密通信领域的应用十分广泛;时空混沌映射展示了在时间和空间上的混沌特性,并且通常是由耦合常微分方程、偏微分方程、或耦合映像格子拟合而成的,且使用最广泛的是基于耦合映像格子CML模型生成的。近几年来,有许多基于混沌的数字图像加密方法的相关专利,张强、薛香莲、魏小鹏的专利(专利公开号:CN101706946A)基于DNA序列与多混沌映射的数字图像加密方法,通过使用DNA序列来解决混沌算法密钥空间小和易被分析预测的缺点;张军、鲍泓、刘元盛、吴晶晶、李月琴的专利(专利公开号:CN102722856B)基于三维Lorenz混沌映射的DCT域的数字图像加密方法,利用DCT变换、Lorenz置乱变换和逆DCT变换实现对图像的加密;付冲、陈俊鑫的专利(专利公开号:CN103167213A)基于Cat映射与超混沌Lorenz系统的数字图像加密方法,引入与明文相关的密钥流生成机制来加密图像;付冲、温昊祥、熊清的专利(专利公开号:CN103258312A)具有快速密钥流生成机制的数字图像加密方法,在扩散阶段的每次混沌迭代都可生成多个密钥流元素,且个数与明文相关;杜翠霞、张定会、张宗楠的专利(专利公开号:CN103440613A)超混沌Rossler系统的彩色图像加密方法,利用Rossler系统产生混沌序列,有效的扩大了密钥空间;柴秀丽、史春晓、丁文珂、甘志华、王俊、程云龙的专利(专利公开号:CN104008520A)基于SHA-384函数、时空混沌系统、量子混沌系统和神经网络的彩色图像加密方法,将多个混沌映射用于置乱和扩散阶段。这些加密方法多是基于多个混沌映射或者超混沌系统来增加密钥空间和置乱与扩散的复杂性,对明文的敏感度相对较低,在抵抗已知明文攻击时不十分安全。技术实现要素:本发明的目的在于针对上述已有技术的不足,提出一种基于明文和密钥构造加密参数的数字图像加密方法,以加深明文、密文和密钥之间的相互影响,增强对明文攻击的抵抗性,提高保密通信的安全性。为实现上述目的,本发明包括:(1)用混沌映射对数字图像进行加密,该混沌映射包括三维猫映射和时空混沌映射:(1a)设原始明文图像的大小为N×N,将其看成一个N×N的二维数组,共有N×N个像素值,其中N≥256;(1b)用三维猫映射对原始明文图像进行置乱处理,改变图像中每一个像素点所在的位置;(1c)用三维猫映射的四种不同变换矩阵Am对置乱后的图像进行初步混淆,改变该图像的像素值,将改变后的像素值按照从左到右、从上到下的顺序存入数组p[u],其中m=1、2、3、4,u∈[0,N×N-1];(1d)用时空混沌映射对初步混淆后的图像进行扩散和深度混淆,将得到的数据按从左到右、从上到下的顺序依次存入加密数组c[u],完成对图像的第一轮加密;(2)设第一轮深度混淆后的图像为新的明文图像,重复(1a)到(1d),对其进行第二轮加密,如此重复多轮,得到最终的加密图像,其中每轮加密映射的初始值为上轮迭代所得的最后一次值。本发明的优点在于:1.本发明通过用三维猫映射的四种变换矩阵对图像进行置乱和初步混淆,增加了密钥空间和算法的复杂性;2.本发明通过用明文和密钥构造时空混沌映射的加密参数来完成扩散和深度混淆,加强了明文对密文的影响;3.本发明通过对每轮加密的密钥进行改变,增加了密文的复杂性;仿真结果表明:本发明设计的图像加密方法可有效的抵抗各种已知攻击。附图说明图1为本发明的实现流程图;图2为对本发明的密钥敏感性仿真结果图;图3为对本发明的图像直方图仿真结果图;图4为对本发明的像素相关性仿真结果图。具体实施方式以下参照附图,对本发明的技术方案和效果作进一步详细说明。参照图1,本发明的实现步骤如下:步骤1:用混沌映射对数字图像进行加密。所述混沌映射,包括三维猫映射和时空混沌映射:(1a)设原始明文图像的大小为256×256,将其看成一个256×256的二维数组,共有65536个像素值;(1b)用三维猫映射对原始明文图像进行置乱处理,改变图像中每一个像素点所在的位置:(1b1)对原始明文图像的65536个像素值从左到右、从上到下依次编号为0~65535;(1b2)将每三个连续编号的像素设为一组,根据三维猫映射公式获得新位置编号:三维猫映射的公式如下:xn+1yn+1zn+1=Axnynznmod1]]>该公式左侧的xn+1、yn+1、zn+1依次为右侧xn、yn、zn的下一状态值,xn、yn、zn表示n时刻x、y、z三个状态值;A是满足其行列式值|A|=1的线性转移矩阵,该线性转移矩阵有以下四种不同变换矩阵:A1=1+axazbyazay+axaz+axayazbybz+axby+axazbybzazbz+1ax+aybz+axayby+axazbz+axayazbybzby+axbxbybxaxbx+ayby+axaybxby+1]]>A2=1+bxbzaybzby+bxbz+aybxbybzaz+aybx+ayazbxbzazbz+1bx+azby+aybxby+azbxbz+ayazbxbybzay+axaybxaxaxbx+ayby+axaybxby+1]]>A3=ayby+azbz+axazby+ayazbybz+1az+axazbxay+axaz+ayazbzbz+axby+aybybzaxbx+1ax+aybzbybx1]]>A4=ayby+azbz+aybxbz+ayazbybz+1bz+axbxbzby+bxbz+azbybzaz+aybx+ayazbyaxbx+1bx+azbyayax1]]>其中,ax、ay、az、bx、by、bz的初始值均为由密钥设置的正整数;本实例用三维猫映射获得新位置编号是用将原来连续的三个位置编号j、j+1、j+2分别作为n时刻x、y、z三个状态值,由三维猫映射公式获得的下一状态值即为新位置编号u、v、w:uvw=Ajj+1j+2mod(N×N)]]>其中j的取值范围为[0,65532];u、v和w的取值范围均为[0,65535];变换矩阵A是四种不同变换矩阵A1、A2、A3、A4中的任意一种;(1b3)将原来连续的三个位置编号与新得到的三个位置编号对应的像素值进行两两交换,即将编号j对应的像素值与编号u对应的像素值进行交换,将编号j+1对应的像素值与编号v对应的像素值进行交换,将编号j+2对应的像素值与编号w对应的像素值进行交换;将剩下的最后一个像素与此时的第一个像素交换位置;(1c)选用三维猫映射的四种不同变换矩阵A1、A2、A3、A4对(1b)置乱后的图像进行初步混淆,每次都将改变后的像素值按照从左到右、从上到下的顺序存入数组p[u],其中u∈[0,65535]:(1c1)用2bits的密钥选取三维猫映射的矩阵Am,其中m=1、2、3、4:当密钥为00时,选取第一种矩阵A1:当密钥为01时,选取第二种矩阵A2:当密钥为10时,选取第三种矩阵A3:当密钥为11时,选取第四种矩阵A4:(1c2)按照从左到右、从上到下的顺序,将(1b)置乱后的图像按每三个连续像素设为一组,用选取的第m种矩阵Am对此时的像素值进行更新:用原始像素值a[j]、a[j+1]、a[j+2]分别作为n时刻x、y、z三个状态值,由三维猫映射公式获得的下一状态值即为更新后的像素值p[j]、p[j+1]、p[j+2]:p[j]p[j+1]p[j+2]=Ama[j]a[j+1]a[j+2]mod256;]]>(1c3)将剩下的最后一个未处理的像素与此时的第一个像素交换位置,将改变后的像素值按照从左到右、从上到下的顺序存入数组p[u];(1c4)重复(1c1)到(1c3)四次,将最终得到的数据按从左到右、从上到下的顺序存入数组p[u];(1d)用时空混沌映射对(1c)初步混淆后的图像进行扩散和深度混淆:(1d1)迭代时空混沌映射1000次消除瞬时效应,使其进入混沌状态:时空混沌映射的公式如下:xn+1(i)=(1-ϵ)f(xn(i))+ϵ2{f[xn(i-1)]+f[xn(i+1)]}f(x)=λx(1-x),x∈[0,1],λ∈[0,4]]]>设该公式中的耦合格子长度L=6,参数λ=4;用密钥设置其六个初始值x0(1)、x0(2)、x0(3)、x0(4)、x0(5)、x0(6);用原始明文图像的像素值和密钥构造耦合常数ε:ϵ=sum+A[h1][h2]510,]]>该公式中的sum是原始明文图像中所有像素的异或和;h1、h2均是8bits的密钥,取值范围均为[0,255];A[h1][h2]表示原始明文图像第h1行、第h2列位置处的像素值;(1d2)继续迭代时空混沌映射,将每次迭代得到的六个数据依次存入序列q0[k]中,并将序列q0[k]更新为:q[k]=q0[k]×216mod256,其中k∈[0,65531];(1d3)将(1c)初步混淆后的数组p[u]每六个连续像素设为一组,用更新后序列q[k]中的数据对其进行更新,得到更新后的像素值:c[6α+β]=q[6α+β]⊕[(p[6α+β]+∂q[6α+β])mod256],]]>其中ɑ∈[0,10921],β=0、1、2、3、4、5,是由更新后的序列q[k]控制的可变参数:即每次更新都用不同的值;序列q[6ɑ+β]中的6ɑ+β即为更新后序列q[k]中的k,数组p[6ɑ+β]中的6ɑ+β即为数组p[u]中的u;(1d4)将最后剩下的四个未处理的像素与此时最前边的四个像素交换位置;(1e)将(1d)得到的数据按从左到右、从上到下的顺序依次存入加密数组c[u],完成对图像的第一轮加密。步骤2:设第一轮深度混淆后的图像为新的明文图像,重复(1a)到(1d),对其进行第二轮加密,如此重复多轮,得到最终的加密图像,其中每轮加密映射的初始值为上轮迭代所得的最后一次值。本发明的解密即为加密的逆过程,用于解密的公式如下:p[6α+β]=[(c[6α+β]⊕q[6α+β])-∂q[6α+β]+256∂]mod256.]]>本发明的效果可通过以下理论分析和仿真实验进一步说明:1.本发明的安全性分析:1)密钥空间分析本发明加密过程使用的密钥:用密钥设置三维猫映射的6个初始值,每个8bits,共48bits;用密钥设置时空混沌映射的6个初始值,每个16bits,共96bits;用密钥设置h1和h2的值,每个8bits,共16bits;用密钥设置选择变换矩阵Am的8bits密钥,共168bits的密钥,远大于抵抗穷举攻击所需的128bits。2)改变密钥仿真图像的加解密效果,结果如图2,其中:图2(a)为明文图像,图2(b)是本发明用原始密钥ε=0.394118对图2(a)的加密图像,图2(c)是本发明用改变后密钥ε=0.3941180000000001对图2(a)的加密图像,图2(d)是图2(b)和图2(c)的直接异或结果,由图2(d)可知,当密钥改变很小时,图像的加密效果相差很大;图2(e)是本发明用原始密钥ε=0.394118对图2(b)的加密图像进行解密的图像,图2(f)是本发明用改变后密钥ε=0.3941180000000001对图2(b)的加密图像进行解密的图像,由图2(e)和图2(f)可知,当密钥改变很小时,图像的解密效果相差很大,故本发明加密方法具有很强的密钥敏感性。3)对加解密图像的直方图进行仿真,结果如图3,其中:图3(a)为明文图像,图3(b)是用本发明对图3(a)进行加密的图像,图3(c)是用本发明对图3(b)进行解密的图像,图3(d)、图3(e)、图3(f)分别是图3(a)、图3(b)、图3(c)对应的直方图;由图3(d)和图3(e)可知,加密前图像的像素值分布有一定的规律,加密后的图像像素值分布非常均匀,表明本发明的加密方法能很好的隐藏明文之间的统计规律。4)对现有明文图像和用本发明对明文图像加密后图像的相邻像素相关性进行仿真,结果如图4,其中:图4(a)是明文图像在水平方向上相邻像素间的相关性图,图4(b)是明文图像在垂直方向上相邻像素间的相关性图,图4(c)是明文图像在斜对角方向上相邻像素间的相关性图,由图4(a)、图4(b)、图4(c)可见,明文图像相邻像素间密切相关,有很强的相关性;图4(d)是本发明对明文图像加密后的图像在水平方向上像素间的相关性图,图4(e)是本发明对明文图像加密后的图像在垂直方向上像素间的相关性图,图4(f)是本发明对明文图像加密后的图像在斜对角方向上像素间的相关性图,由图4(d)、图4(e)、图4(f)可见,本发明的密文图像相邻像素间的相关性几乎为零,表明本发明的加密方法能很好的消除相邻像素间的相关性。当前第1页1 2 3