大家都知道传统的图像加密技术是一种基子像素置乱的加密算法,一般密钥和算法不能有效地分开。为此,我们提出了一个基于双一维混沌系统的图像文件加密算法,该算法利用双一雏混沌系统对图像进行替代和置换变换,采用双混沌系统扩大了密钥空间,并增加了密钥的复杂性;将替代和置换结合提高了加密的安全性。
一、双一维混沌系统及图像文件加密算法
1、双混沌系统
混沌系统具有以下几个适合作为密码系统的特性:
(1)遍历性:在有限区域内,混沌轨道上的点可以任意接近,这使得对系统参数及初始条件的预测十分困难。
(2)混合性:混沌轨道上术不规则性及系统局部扩展,使得混沌系统的输出类似于噪声。
(3)指数发散性:任意接近的两点随着迭代进行都会指数发散,因而混沌系统既具有混合特性又具有扩散特性,完全符合密码学的要求。
Logistic映射是一种非常简单却被广泛应用的混沌映射,本文采用的混沌系统之一就是由式(1)描述的Logistic映射系统。
其中O≤u≤4为分岔参数,xn∈(0,1)是系统的状态变量。当3.569 945 6…<u≤4时。Logistic映射工作于混沌状态,此时,由韧值加在Logistic映射的作用下产生的序列{xo,n;0,1,3…}是非周期、不收敛、对初值敏感的序列。当分岔参数u=4时,该序列的概率分布函数是:
由式(2)可以知道,Logiatic映射不满足一致分布,为了得到随机性更好的一致分布的随机系统,可将式(1)作如下变换:
变量y的分布函数为:
因而,变量y的概率分布函数为:
即式(3)在(0,1)区间满足一致分布。
本文加密采用的另一混沌系统为式(6)描述的正弦迭代映射:
其中l<b∈R,系统初值xo∈R,且O<xo<l。由式(6)产生的系统的Lyapunov指数是Inb>0,因而该系统是混沌的。
2、图像像素值替代算法
考虑一幅大小为M×N具有L级灰度的图像,设I(i,J)为(i,J)坐标处的像素值,其中1≤i≤M,1≤J≤N,I’(I,J)为(I,J)坐标处替代操作后图像的像素值,即要求设计一个映射f,使得:
为了使替代操作后的像素值I'(i,J)具有不可预测性,采用离散混沌系统产生密钥,利用混沌密钥实现对像素值的替代,替代操作可以由以下公式表示:
其中K(i,J)由式(3)的离散混沌系统产生,由式(3)的离散混沌系统所生成的序列具有完全不可预测性,具有非常好的密码学特性。为了使用于加密的混沌序列对初始值更加敏感,将初始值预迭代3 000次i:为了得到K(i,J)具体的值由下面的公式产生:
其中round(x)函数表示取与膏最接近的整数值,K(i,J)由序列yn的实数序列值中取小数点后第4位开始的连续3位数字组成的整数得到。将式(9)产生的整数密钥序列代入式(8)实现像亲值的替代加密,对所有的(i,j)点完成替代操作后,即完成了替代设计。
3、图像像素位置置换算法
传统的加密算法中的置换并没有多大的密码作用,因为它与密钥尤关,如DES,但置换设计可以有效地打乱输入明文的次序,能有效地掩盖明文的统计特性,从而能有效地抵御统计及预测分析。本文设计了一种依赖于密钥的图像转换方法。
考虑一幅大小为MxN具有l级灰度图像,设I(i,J)为(i,J)坐标处的像素值,其中1≤i≤M,1≤J≤N,I’(I,J)为(I,J)坐标置换操作后对应的新坐标,即要求设计一个映射f,使得:
为了使置换操作后的新坐标(i'J’)具有不可预测性,采用式(6)离散混沌系统产生,置换操作可以由以下公式表示:
其中1≤m≤M,1≤n≤N,且Zn和Zm由式(6)的混沌离散系统产生。
在生成新的置换坐标的过程中,要注意把前面任一相同的i’m(或j’m)值舍去,重新生成不同的值。通过实验发现,这样i'm和j’m的取值范围较小,发生相同的值的次数较多,舍去的取值较多,这样造成计算时间较长。因此,本文采取适当扩展取值范围的方法,具体的做法为:设计变量zoom为取值扩展因子,在取值时采用Zn=zoomxZN和Z,=zoornxZ(即置换操作采用式(12)来完成).由于舍去的相同值较少,因而大大提高了生成新的置换坐标的速度。将式(12)产生的序列组成MxN的矩阵,即完成了置换设计:
4、替代与置换结合的密码系统
本文完成了替代设计,即完成了密码算法的混淆作用设计,在上节中完成了置换设计,即完成了密码算法的扩散作用设计,该算法完成符合密码学的特性。为了像输出的密文对明文和密钥充分敏感,将替代设计与置换设计重复进行r轮。因此整个加密算法可以用框图表示如下:
二、实验结果与分析
选择Lenna图像(256x256),选择密钥参数分别为u=3.576 8,Xo=0.278 000,b=0.580 00将此双一维混沌图像加密算法用Matlab仿真,其仿真结果如下:图2是原始图像,图3是用此方法加密后的结果,图4是用u=3.576 8,X0=0.278 000,b=0.580 00,正确解密后的结果,图5是将u=3.576 8,Xo=0.278 001,b=0.580 00解密后的图像。
实验结果表明,本文所给的算法加密效果理想,加密后的图像没有留下原图的痕迹,而解密后的图像与原图像看不出差别,且密钥的细微差别便会导致无法正确解密图像。加密图像直方图起伏较小,各种像素值分布均匀,而且与已有的基于混沌映射的图像加密方法相比,由于本文所给方法是基于双一维混沌系统来生成整数伪随机序列的,这扩大了加密算法的密钥空间,所以算法的安全性得到了迸一步的提高。
小知识之一维
一维实际是指的是一条线,在理解上即为左-右一个方向(如:时间)。也可理解为点动成线,指没有面积与体积的物体。