为了保障图像信息传输的安全性,我们提出了一种基于TD-ERCS混沌系统的多级混沌图像加密方案:利用TD-ERCS混沌系统生成多组离散混沌序列,选择一组生成地址索引表对像素地址进行全局置乱:以一定方式反复从余下几组混沌序列中选择一组,取其一个字节与置乱后图像进行像素灰度值加密操作直至所有像素点均被加密为止。

一、加密算法

1、混沌系统介绍

TD-ERCS系统是一类新的全域性离散混沌系统,具有零相关特性和稳定的概率分布特性,μ,xo,α称为TD-ERCS的种子参数,参数μ∈(O,1],初值xo∈[-1,1],α∈(O,π),切延迟参数m(m=2,4,5,6,....)。

TD-ERCS通过上述迭代关系将产生两个独立的实值序列{xn}和{kn}。

2、图像全局置乱矩阵生成

图像的相邻像素点间具有很强的相关性,为了打乱这种相关性,我们使用图像全局置乱矩阵来置乱原始图像的像素点位置,不失一般性,假设原始图像的维数是M×N,像素点的位置矩阵是Pi,j(i=O,l,,M=l;j=O,1,…n=l),分别对图像进行行置换和行内列置换。

首先,对图像进行行置换,算法设计如下:

(1)对于TD-ERCS混沌系统,任意给定一组符合要求的初始值(μ,xo,α,m),进行一定步数的迭代,得到去除混沌暂态且完全独立的混沌序列,Z={zi(xi,Yi)| i=l,2,...}和K={ki|Z=1,2,...},其中,Z序列可以分解为两个单独的序列。

(2)从Z混沌序列中取出序列{yi|i=l,2,...},令l={li|li= mod(yi×1010,M),i=l,2,…}。很明显,li∈[O,M-1]。从L序列中取出M个介于O到M-l之间的不同数据,同时把这些数据以{hi| i=l,2,…M}的形式记录下来,并且要求当i≠j时,h≠hj,同时,记录下这个时候从Z序列中取得的Yi的下标,用变量t来保存。

(3)根据{hi|i=1,2,…M}的形式重新排列矩阵Pi,j的行,即把h1行移动到第一行,h2行移动到第二行,这样就可以得到一个新的位置矩阵pi,j。

其次,在进行了行置换的图像矩阵Phij,的基础上,再进行行内的列置换,算法设计和行置换类似。

3、加密实现过程

图像加密的具体实现过程如下:

步骤1 通过前述的图像全局置乱矩阵的产生方法生成原始灰度图像的全局置乱矩阵。假设该矩阵的维数是M×N,将其像素点灰度值按照从上往下,从左至右的顺序序列化为集合B={B1,B2,…,BMxN}。

步骤2 对TD-ERCS生成的混沌序列做如下预处理,abs(xi)返回的是x的绝对值,很显然,经过预处理后的混沌序列{ xi}和{ki}中的任意值都是介于0.255之间的整数。

步骤3 使用公式ri= mod(abs(yi)×lOlo,2)生成{ri}序列,其中,i=t,t+l,….因ri∈[O,l],故可以根据ri的值来选择是用{xi}还是{ki}中的一个字节来生成{Di|i=1,2,…},用公式可表示为:

步骤4 加密操作是将{Di|i=1,2,…}中相应的一个字节与B={B1,B2,…,BMxN}中相应的一个字节的数据按照以下的公式做异或运算:

其中,符号+表示按位作异或操作,初始值Co置为128.上述处理过程直到集合B={Bi,Bz,…,BMxN}中的元素全部被加密后结束。

至此,得到了加密图像的像素集合C={C1,C2,…,CMxN},将该集合矩阵化之后便得到最终的加密图像。

二、试验分析

在实验中,加密方案采用256×256的标准灰度图像作为原始图像,TD-ERCS混沌系统的参数初始值分别为:μ=0.4,xo=0.8,α=0.9876,m=5,迭代200步后开始取值。

1、直方图分析

直方图是图像中每一灰度级与其出现频数之间的统计关系,用横坐标表示灰度级,纵坐标表示频数,直方图分析可以用来衡量加密算法的扰动性。
2、信息熵分析

信息熵反映的是图像中的灰度分布情况,分布越均匀,信息熵越大,包含的不确定信息就越多。

从表1中可以看出,置乱加密后的图像的信息熵基本上等于256纫灰度图像信息熵的最大值8,由此可知,加密图像的灰度分布是非常均匀的,攻击者要想通过对像素灰度值变化的统计分析来对加密方案进行攻击,无疑将极其困难。

3、两相邻像素点相关性分析

相关性分析是用统计分析的方法对算法的扩散性能进行分析,一般来说,原始图像的两个相邻像素往往具有较高的相关性,而加密后的图像冗余度分散到密文中,从而隐藏了明文的统计信息。

为了测试加密前后图像的相关性,我们做了相关仿真试验,实验中,随机从图像中选择了5000对相邻像素点,原始图像和加密图像中两个相邻像素点的相关性。

数据可知,加密后的图像相关系数远远小于加密前,这也证明了本加密方案具有良好的扩散性。

4、密钥敏感性测试

图2中(a)、(d)验证了本文的加密方案对初始参数的敏感性,而这些参数可以用来作为密钥,图2(a)是将加密方案中的参数μ=0.4改为μ=0.400000000001,而其余参数均保持不变的情况下得到的加密图像,图2(b)是对应的直方图;图2(c)是将加密方案中参数x0=0.8改为x0=0. 80000000001,其余保持不变得到的加密图像。

由上述实验结果可得出以下结论:本方案中混沌加密算法对密钥非常敏感,对密钥的一个微小变化都将会导致生成一个完全不相同的加密结果。

小知识之直方图

直方图(Histogram)又称质量分布图。是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型,纵轴表示分布情况。