在图像文件加密的过程中,图像置乱是一个非常重要的方法,为此,我们提出了一种利用分块置乱与RGB分量置乱相结合的方法对彩色图像进行位置置乱,并用密钥产生的混沌序列值与像素值进行异或达到置乱灰度值的效果,然后该算法较好的完成了彩色图像文件加密的方法。
一、混沌映射
混沌是复杂的系统,目前我们只是混沌系统已有的性质加以利用。经过对各种混沌系统产生序列的比较,Logistic映射生成的实值混沌序列和二值序列均有较好的初值敏感性和随机性。本文采用Logistic和Chen映射相结合的方法产生图像置乱所需要的混沌序列,有效的提高了敏感性和安全性。
1、Logistic映射
混沌现象是在非线性动力系统中出现的确定性的、类似随机的过程,这种过程既非周期又不收敛,并且对切始值有极其敏感的依赖性。
在一维混沌映射中,Logistic映射具有伪随机性的特点,其表达式如下所示:
当3.569946≤μ≤4。x0=(0,1)时,系统处于混沌状态。Logistic映射可以定义在(0,1)上,相应地得到定义在(0,1)范围内的随机序列{xn,n= 0,1,2……}。
2、Chen映射
Chen映射是一种普通的三维混沌映射。混沌系统表述如下式所示:
其中a=35,b=3,c=28,此系统处于混沌状态。
二、图像文件加密与解密算法
图像文件加密算法种类繁多,总体上可以分为图像位置置乱和改变图像像素值。如今,运用两种方法相结合,可以有效地提高图像置乱效果与抗攻击能力。本文中用控制混沌系统参数与明文相结合的方法产生混沌序列,并用其对图像进行分块处理与三基色像泰值置乱的方法来改变像素的位置与数值,以改变图像各像素的位置。同时,用Chen混沌系统产生的三维序列与置乱后的像素值进行异或,获得分布均匀的类噪声的密文。
1、密钥设计
现有研究成果在图像加密算法方面并未考虑对明文变化的敏感性。而彩色图像是由三基色构成,三个分量之间的相关性未被破换,所以单独对一个基色进行加密,并不能有效抵抗攻击,所以提出以下的密钥设计方式:
(1)分别对R、G、B三个基色求平均值,并取其小数部分作为产生Logistic序列初始值p和禹的条件,如下式所示:
其中,tr、tg、tb为RGB三基色相对应的平均值,Mod[.]表示取模处理。
(2)对Chen系统产生的xi,yi,zi和Logistic产生的μi序列进行修改,使两个混沌系统和彩色图像各分量的像素值充分联系,增大密钥空间,如下式:
由此产生的x1,y1,z1序列用于图像分块置乱和RGB分量置乱。
2、加密与解密步骤
我们采用分块置乱的方法,但单独使用分块处理会引起块状效应。同时,彩色图像像素各分量像素值之间存在相关性,采用交叉RGB各分量之间的像素值,达到置乱整个彩色图像像素值和加密的作用。同时采用大小为256x256,灰度级为256的彩色图像baboonRGB进行实验。
(1)分块置乱
取x1序列中的任意一段序列,长度为256(该长度根据图像分块的个数来设置)。对RGB三个分量分别进行分块处理,用{R1,R2...R256},{G1,G2…G256},{B1,B2...B256)表示。对x1,x2,x3分别序列进行排序,分别x1,x2,x3取其中任意两数之和为257所对应的位置,交换对应位置上像素块的值。以x1序列和R分量为例,xl(1)=237,xl(16)=20,则交换R1块和R16块的位置。然后,将像素大小为16x16的像素块进行第二次分块,将其分成4x4小块,分别为R11,R12,R13,R14。对其进行对应像素块的取值处理,将R11,R12,R13,R14各块中的第一个像素值集中放置在R‘11块中,将R11,R12,R13,R14各块中的第二个像素值集中放置在R'12块中,以此类推,完成一块像素值的位置置乱。以R1为列,将墨分为2x2的像素块{R11,R12,R13,R14}R11中的像素原为{1,2,5,6),经过置乱后R'11中的元素为{l,3,9,11}..…,其他分块按同样的方式进行置乱。
(2)RGB分量置乱
按上述步骤对整个彩色图像进行分块置乱,整个图像的像素值位置发生变化,但是像素值并没有发生变化且RGB三个分量之闻的相关性没有破坏,容易遭受明文攻击。把位置置乱后的RGB图像转换成3*65536的矩阵。利用Logistic,产生的长度为256x256序列进行处理,按式把其转化成1-3的实数序列,如下式利用xx序列对每一列进行上下翻转。当xx=l时,则上移一位,xx=2时则上移2位,xx=3时相当于保持不变。经过此操作,彩色图像的各个分量之间对应位置的像素值进行相应的置乱,以此破坏RGB三个分量之间的相关性。
(3)像素值置乱
对修改后的序列进行放大处理,取模并与像素值相异或,如下式所示。R'、G‘、B‘分别为像素值置乱后彩色图像的三个分量,合并后则为加密后的彩色图像RGB。
其中[]表示向下取整,HR、HG、HB为位置置乱后的彩色图像各个分量。
解密算法与加密算法的密钥相同,过程相反。
三、实验结果与安全性能分析
为了验证图像加密算法的安全性,本文引入了密钥空间、统计分析方法进行论证,本文采用大小为256x256,灰度级为256的彩色图像baboonRGB进行实验。在windows7环境下,用matlab7.1实现整个算法。图1为原始图像与加密后的图像。加密后的密图变得杂乱章,无法从密图中看出原始图像。
1、密钥空间分析
众所周知,图像加密的算法必须考虑对密钥的敏感性问题,如果密钥空间足够大,可以阻止攻击者利用穷举法进行解密操作。
本文所提出的算法,采用的密钥为K=(μ,xl,x,yz),其中μ,x1为明文控制的密钥,其他为外部密钥。一个原始图像大小为MxN,当计算机的精度为10-15时,若只考虑μ,xl时,密钥空间为2xl03o。若再考虑其他的密钥,则密钥空间几乎达到无穷大,足够抵抗穷举攻击。
2、统计分析
统计分析的性能是用来表征采用加密算法中混迭和扩散性能的强度是否可以抵抗统计攻击。我们可以从加密图像的直方图和相邻像素的相关性得出结论。
为了说明本文提出的加密算法具备混迭和扩散性能的强度,特别引入直方图进行分析。
图2分别为RGB三个分量加密前和加密后的直方图。比较两幅直方图,从结果可以看出,加密后的直方图分布得较为均匀。
小知识之置乱
所谓“置乱”,就是将图像的信息次序打乱,将a像素移动到b像素的位置上,b像素移动到c像素的位置上……使其变换成杂乱无章难以辨认的图像。