一种新的图像加密方法与流程

文档序号:11387686阅读:313来源:国知局
一种新的图像加密方法与流程

本发明属于图像处理领域,涉及一种使用新的图像加密方法,具体应用于图像加密过程中。



背景技术:

随着计算机网络通信技术和多媒体技术的发展,人类社会进入了数字时代。多媒体由于数据的直观性强、信息量大等特点使得它成为人类社会在信息利用方面的重要手段。尤其是数字图像,它比声音、文字等包含更多的信息量,因而在多媒体信息中占有举足轻重的地位,所以人们对通过网络安全的传输数字图像的需求也越来越迫切。混沌系统具有良好的伪随机性、长期的不可预测性、对初始值的高度敏感性等特性,这就决定了混沌系统可以应用于密码学领域。而当前许多基于混沌的加密算法存在敏感度、抗攻击能力、理论支持等方面的不足,故本发明提出了一种新的方法。

汉诺塔(又称河内塔)问题是源于印度的一个古老传说的益智游戏,游戏中有三根柱子分别三个命名为a、b、c,在柱子a上插有n个直径大小不相同,由小到大编号为1,2,3,...,n的圆盘,要求将a上的圆盘移至柱子c,并按同样的顺序叠排。移动必须遵守下列规则:

1、每次只能移动一个圆盘;

2、圆盘可以插在任意一个柱子上;

3、任何时刻都不能将一个较大的圆盘放在一个较小的圆盘上。

此问题的解决思路如下:

第一步,将a柱子上的n-1个圆盘按照规定移至到b柱子;

第二步,将编号为n的圆盘由a柱移至c柱;

第三步,利用a柱子,将b柱子上的n-1个圆盘按规定移至到c柱子。

当然,n=1时只需直接进行第二步即可。

wang[1]等提出了一种于logistic映射的图像交替加密算法(xwang,kguo.anewimagealternateencryptionalgorithmbasedonchaoticmap.nonlineardynamics,2014,76(4):1943-1950),wang[2]也提出了一种于耦合映射格子和“选择器”的图像加密方案(xywang,xmbao.anovelblockcryptosystembasedonthecoupledchaoticmaplattice.nonlineardynamics,2013,72(4):707-715),对其进行安全性分析可以发现其像素间的相关性抺灭的不够强烈,信息熵也显示出其混沌程度不够,故其抗攻击性不强。



技术实现要素:

本发明的目的在于解决敏感性低和抗攻击能力不足等问题,提出一种建立在成熟理论上的图像加密方法,本发明在解决此类问题的基础上提出了一种使用汉诺塔问题hanoi的基于混沌的图像加密方法。

为了达到上述目的,本发明的技术方案如下:

一种新的图像加密方法,包括以下步骤:

第一步:使用安全散列算法获得哈希值,在此基础上抽取部分哈希值经过变形,得到用于混沌系统的初始值。

所述的安全散列算法是最新的sha-3,因其原始信息的任何更改,无论多么小,都必将导致结果之间的显著差异这一特性,使得安全散列算法被广泛应用于加密应用程序中。采用下列公式得到用于混沌映射的初始值;

hash_value=sha3-512(sum)(1)

其中,sum表示原始图像像素值的和;d1,d2,d3,d4均是从哈希值hash_value上提取得到;在公式(2)使用之前需要明确知道从第几位的哈希值开始有效,且需要进行进制转换化为10进制后再计算结果。

第二步:使用混沌系统得到加密算法中所要用到的全部参数,包含汉诺塔游戏中每根柱子上所拥有的编号、左右图像分别用于加密的扩散数据以及对图像整体进行异域操作的数据。

所述的混沌系统为时空混沌系统,典型的时空混沌系统为耦合映射格子cml,其动力学公式为:

其中,ε是耦合参数,n是时间指数,j是空间指数,l是格子的数量,xn(j)的值是用于加密算法中的参数,且xn(j)∈(0,1)。映射函数f(x)是logistic映射如下:

f(x)=x=μx(1-x),x∈(0,1),μ∈[3.57,4](4)

第三步:第二步所得到的用于汉诺塔游戏的数据经预处理后得到的置乱编号与图像像素位置相对应。之后,进行汉诺塔游戏,将某一图像像素与每次汉诺塔移动到的柱子上的置乱编号相联的像素进行交换,从而实现像素置乱的目的,游戏结束后得到置乱图像。所述的用于汉诺塔游戏的数据为汉诺塔游戏中每根柱子上所拥有的编号。

所述的预处理具体为:

c(i)=(s(i)×1015+decimal×1014)%(m×n)+1(5)

其中,decimal为原始图像像素和的均值的小数部分,s(i)代表的是某根柱子上所捅有的编号,c(i)则表示为处理后用于游戏的置乱编号。

所述的汉诺塔游戏模式为:将三根柱子分别对应于相应编号的图像像素,游戏中的每次移动都是将某个柱子上编号的图像像素移到另一根柱子上,记录移动次数num。

所述的像素交换为:将移至的那根柱子上的第num个编号所对应的图像像素与原始图像的第num个像素值进行交换,依次类推。可见此次交换是从第一个像素值开始依次顺序交换;当然也可以从最后一个像素值开始倒序进行像素交换;也可以从中间分开,前半部分顺序,后半部分倒序进行像素交换;前半部分倒序,后半部分顺序进行像素交换,这些交换方式均可达到置乱效果。

第四步:对第二步中用于扩散步骤的数据进行处理,将第三步得到的置乱图像分块后得到左右两图像,分块后的两图像分别与处理后的扩散数据进行异或操作,之后对左右两图像进行合成。在此基础上,为了更好的破坏统计攻击,对合成图像再进行一次扩散操作,最终得到密文图像。复杂度越高,安全性也就越好。

所述的扩散数据的处理过程为:

el(i)=(fl(i)×1014+sum×108)%256(6)

er(i)=(fr(i)×1014+mean×1012)%256(7)

ew(i)=(dw(i)×1014)%256(8)

其中,mean表示为原始图像像素值的和sum的均值,fl(i)、fr(i)和dw(i)分别代表的是用于左右图像和整体数据的扩散数据。式(6)是用于对置乱图像的左边图像进行扩散的数据处理,式(7)则是用于右边图像进行扩散的数据处理,式(8)是在左右图像已扩散前提下再对新的整体图像进行扩散的数据处理。

所述的置乱图像分块方式为:将置乱图像左右均分,若图像列数为奇数,那么左边图像的列数比右边的少1;或对置乱图像进行上下分块;或对置乱图像进行对角分块。

本发明的有益效果为:密钥空间足够大来应对蛮力分析的攻击,密钥敏感性强可以能够有效抵抗已知/选择明文攻击和统计攻击,相关性弱及信息熵大逾期能够更好的破坏统计分析的攻击,因此本发明安全有效且适用。

附图说明

图1是本发明的加密流程图;

图2是本发明的加密效果图;其中,(a)原文图像lena;(b)置乱后的图像lena;(c)加密后的图像lena;(d)原文图像peppers;(e)置乱后的图像peppers;(f)加密后的图像peppers;(g)原文图像baboon;(h)置乱后的图像baboon;(i)加密后的图像baboon;

图3是本发明的密钥敏感性测试;其中,(a)成功解密的图像;(b)ε=ε+10-1解密的图像;(c)μ=μ+10-15解密的图像;(d)j=j+8解密的图像。

图4是本发明的直方图分布;其中,(a)原文图像lena的直方图;(b)加密后的图像lena的直方图;(c)原文图像peppers的直方图;(d)加密后的图像peppers的直方图;(e)原文图像baboon的直方图;(f)加密后的图像baboon的直方图;

图5为本发明的方法流程图。

具体实施方式

下面结合附图对本发明加密做更详细的描述。

一、加密算法的流程如下:

为了不失一般性,设灰度图像p为m×n大小,其中m为行数,n为列数。

1)将图像像素值转换为一维数组g(i),i∈[1,m×n],并计算图像p所有像素值的和δ,和的均值w以及均值的小数部分θ。

θ=w-floor(w)(11)

其中,函数floor是对数进行向下取整,本发明中的密钥之一即像素值的和δ。

2)使用公式(1)的哈希值,从第j位开始应用式(2)获得混沌系统的初始值x0(j),j=1,2,...,l。

3)根据公式(3)以及密钥设置值,对混沌系统进行若干次迭代后得到混沌序列xi(j)。

4)对混沌序列xi(j)按以下公式进行预处理,得到用于图像置乱过程中的数据z1(i)、z2(i)、z3(i)和用于图像扩散过程中的异或数据e1(i),e2(i)和e3(i)。

z1(i)=(xi(1)×1015+θ×1014)%(m×n)+1(12)

z2(i)=(xi(2)×1015+θ×1014)%(m×n)+1(13)

z3(i)=(xi(3)×1015+θ×1014)%(m×n)+1(14)

e1(i)=(xi(4)×1014+δ×108)%256(15)

e2(i)=(xi(5)×1014+ω×1012)%256(16)

e3(i)=(xi(6)×1014)%256(17)

5)汉诺塔游戏中的三根柱子上分别对应于相应的编号z1(i)、z2(i)、z3(i),之后按此数据进行游戏。游戏进行过程中,每次移动都是将一柱子上的某编号移到另一柱子上,可对应于图像上第i个像素值g(i)与移动到的那个柱子k(k=1,2,3)上第i个编号zk(i)相联系的图像像素值g(zk(i))进行交换,依此类推,直到游戏完成,此时可得到置乱后的图像pc,其像素矩阵为ch。

6)将上步中所获取的图像pc划分为左右均等的两份ch1和ch2,若图像列数为奇数,那么就让左边图像比右边图像的列数少1,当然若列数为偶数,那么左右图像的列数就相等。

7)用于扩散操作的e1(i),e2(i)和e3(i)数组,将其转换为矩阵表示分别为h1、h2和h。之后将图像矩阵ch1和混沌矩阵h1异或得到矩阵h3如式(18),同理ch2异或于h2得到h4,二者组合成为新的图像矩阵h。其中,xor函数表示按位异或。

h3=xor(ch1,h1)(18)

8)最后,将新矩阵h与混沌矩阵h二者进行对应的异域操作得到最新的矩阵eh,且获取到最终的加密图像pe。至此,算法结束。

二、对本发明解密做出说明如下:

本发明加密算法具有逆性,即图像解密是图像加密的逆过程。

1)用户拿到密钥,可使用上述说明的公式(1-4)来生成解密过程中所需要的所有参数序列,并按加密过程中的公式进行相应处理。

2)利用上述扩散过程的反操作,先对整体进行异或反操作,再对图像左右分半再进行异域的反操作,之后可得到置乱图像pc;

3)与加密过程中不一样的是再进行汉诺塔游戏时需要记下移动轨迹编号,之后利用编号记录将置乱图像中的像素值pci进行交换,同样这里是反操作,即从后往前进行,即i从m×n减至1;

4)此时,将每个位置上的像素值记为pi,利用pi复原为灰度图像p,p就是解密成功后的原文图像。

三、结合附图及表中的数据对算法进行分析如下:

表1本发明与现存的算法在图像lena的三个方向上相邻像素间的相关性系数的比较

表2本发明的信息熵以及与现存的算法的比较

表3明文图像改变一比特时密文图像的npcr和uaci值以及与现存算法的比较

表1显示出lena图像的原文和密文在三个方向上相邻像素的相关性系数,可以看出本发明有效的削弱了像素间的强相关性,增强了安全性;而一个系统越规律它的信息熵就越小,反之越混乱越大,表2中的信息熵均接近于8说明加密后的图像很混乱;因此,信息熵及相关性方面可以看出本发明能够很好的抵抗统计分析攻击。表3中给出了像素个数改变率(numberofpixelschangerate,npcr)和统一平均变化强度(unifiedaveragechangingintensity,uaci)并与其它的算法进行比较,很清晰表明了本发明对明文敏感;对密钥敏感性测试在于:若密钥在有效精度内作微小的改变就不能得到正确的明文图像,图3则是本发明对密钥敏感性进行测试的结果展示,可以看出算法具有很强的密钥敏感度,能够抵抗差分攻击;且本发明的密钥空间大于10118,可以说本发明能够有效应对暴力破解攻击;图4中各图像的明文直方图分布均带有规律性,而密文直方图分布相对均匀,说明了密文图像中各灰度像素值的出现的概率相等,成功隐藏了明文信息,能够应对统计攻击。

综上所述,本发明密钥空间大,密钥敏感性强,能够有效应对各种暴力破解攻击、统计分析攻击、已知明文攻击和选择明文攻击等,其安全性得到了加强。

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