为解决一维混沌加密系统密钥空间和安全性差等问题,我们提出了一种基于时钟变换的复合混沌图像加密方法。该加密算法使用分段线性混沌映射,k阶Chebychev映射以及一维Logistic映射相复合的方式产生像素位置置乱矩阵和像素值变换矩阵。我们利用系统时钟变化法,随机改变复合混沌系统的多级初始参数,从而提高了图像信息传输的安全性,达到了近似“一次一密”的安全思想。
一、时变参数的混沌图像文件加密和解密原理
笔者采用系统时钟变化法使复合混沌系统的初始参数随机改变。发送端首先获取系统的时钟信息,并将其进行RSA加密,通过公钥信道传输的方式传输给接收端,在发送端利用时变的时钟信息修改混沌系统的多级参数,并完成图像文件的加密,加密后的密文通过秘密信道传输到接收端。其文件加密和解密框图如图1所示。
二、时变参数复合混沌加密系统
时变参数复合混沌加密系统用到的3个混沌模型。
1)分段线性混沌映射
当O<p<1时,该模型的Lyapunov指数为正,处于混沌状态。
2)Logistic映射
其中O≤u≤1,u为控制参数,该映射在3. 569 945 6<u<4时,系统进入混沌状态。
3)k阶Chebychev映射
其定义区间为(-1,1),当参数k=6时,Chebychev系统的Lyapunov指数为1.791733---,映射工作于混沌状态。
基于以上3种模型,设计了时变参数的复合混沌加密系统(见图2)。
此加密方案的核心技术在于:首先,利用系统时间信息扰动分段线性混沌映射的控制参数p,对于同一个密钥xo,一级分段线性混沌映射可以等效为多个不同的模型,从而提高了破解混沌参数户的难度;其次,利用系统时间信息锁定二级Cbebychev映射的初始参数值,即当密钥和控制参数一定时,由于系统时钟所带来的序列索引号不同,可使二级灰度变化矩阵不同,从而提高了加密系统的安全指数。通过以上方式,使复合混沌系统的动力学行为更为复杂,并达到了位置置乱矩阵及灰度变化矩阵实时变化的目的,即便是同一幅图像,在不同的时刻加密,所得到的密文也可以截然不同,做到了“一次一密”的加密效果。系统时间信息由年,月,日,时,分,秒组成(精确到毫秒)具体的加密步骤如下所述。
1)将年,月,日时间信息按次序转换为百位,十位,个位的数字,并进行相加操作,经过线性变换映射为0—1的数值。由初始密钥经分段线性混沌映射生成长度为图像行数M的混沌序列,并将此序列作为Logistic的初始值。这样由每个初始值经过N-1次迭代i生成N个序列,共能得到M×N个混沌序列。
2)对1中所产生的M×N个混沌序列,以行为主序,依次排列成MXN位矩阵J。对J中的元素按由大到小的原则进行排序,并按行优先的方式生成矩阵G,则由G中的每个元素在原矩阵中的位置坐标形成一级位置置乱矩阵C。
3)同样将数值化的时,分,秒时间信息取整并相加,映射为O~M的一个数值,将其作为1)中M个混沌序列的一个索引号,将M中对应于此索引号的数值作为k阶Chebychev映射的初始值。迭代产生M×N个混沌序列,经过线性变换,以行为主序,生成二级灰度变换矩阵H,利用矩阵C和H最终实现图像文件的二级加密。
解密算法是加密算法的对称逆过程。
首先利用3)中产生的二级灰度变换矩阵H与密文图像进行按位异或操作,得到位置置乱后的图像P,再用一级位置置乱矩阵C将P置换回去,这样便可以解密出原始图像。
三、仿真实验
下面以cameraman(256×256)图像为例,利用Matlab7.O进行的实验仿真。系统加密过程中选择的密钥分别为xo=0.17,u=3.581,k=5以及时变的时钟信息,时钟信息是通过在算法开始前,利用Matlab自带的clock函数获得。在本次仿真实验中,加密前获得的系统时间是2014-11-07-10-05-45.234。在错误参数解密过程中,并没有改变系统更为敏感的密钥xo,u,k的值,而只单单通过系统时钟的变化使Chebychev映射的初始值有所差异,解密算法开始时获得的时间是2014-11-07-10-10-13.187。仿真结果如图3所示:图3a和图3b分别是原明文图像和加密后的图像,图3c和图3d分别是明文图像的直方图以及加密后图像的直方图。图3e和图3f分别为正确参数解密的图像和错误参数解密的图像,图39和图3h分别为正确参数解密图像的直方图和错误参数解密图像的直方图。
从图3可以看出,原始图像被充分的置乱与替代,直观上根本无法看出原始图像的任何痕迹。利用正确的密钥所解密出的图像与原图像基本一致,看不出差异;当解密密钥与加密密钥存在差别时,也不能正确地解密出原始图像。
四、性能分析
1、原理角度分析
从系统由一级混沌映射同时驱动两个二级混沌映射,主要实现的功能是置乱和替代。不同的是,利用时变的时钟信息改变一级混沌系统的控制参数,每次换一个混沌参数P,相当于更换了一个混沌方程。在每次加密过程中,不仅改变了一级混沌控制参数,而且还改变了二级混沌映射的初始参数,从而提高了产生的混沌序列的复杂性,极大地增强了加密后图像抵抗强行攻击的能力。
2、密钥空间和密钥敏感性分析
系统的密钥是1个四元组,由分段线性映射初始值xo,Logistic映射的控制参数u,Cheby chev系统的控制参数以及一个时变的密钥(本方案是系统时钟)构成。所以大大增加了密钥的个数和密钥空间,是单个一维混沌系统密钥空间的许多倍,完全可以抵抗穷举法的攻击。
密文对密钥的敏感性:对同一明文图像,采用两个略有差异的密钥分别进行加密,两次加密时仅仅系统时钟这个密钥不同,其余密钥均不发生变化,系统时间是在加密算法开始前获得的:一个是2014-11-07-22-7-48.218;另一个2014-11-07-15-22-14-23.203,然后将得到的两个加密图像进行对比。图4反映了利用上述两个不同密钥加密后得到的密文图像的差别。图4是取两个密图前256个密文像素的差值绘制出来的分布图。由图4结果可知,相同的明文在密钥发生细微变化时t密文会有显著变化,这反映了密文对密钥的敏感性诉多次实验表明,任何密钥细小的改变都会使密文发生显著的变化。由第3节中的仿真结果可知,即使密钥有很小的差异也无法解密出原图像,使用枚举搜索很难对加密图像进行解密,这也说明本算法具有较好的安全性。
3、直方图分析
直方图是描绘一幅图像在每种灰度值上像素的个数,它反映出一幅图像中像素的分布情况。对比图3c和图3d可见,原始图像的像素在各种灰度级上的分布很明显是不均匀的,但经过复合混沌系统置乱与替代后的密文图像像素在各种灰度级上的分布趋于均匀(像素在0~255的范围内取值概率基本上是等同的),所以加密算法破坏了原有图像的统计规律,有较好的密文扩散性。
4、像素相关性分析
另外还对两个相邻垂直方向的像素,两个相邻水平方向的像素和两个对角相邻像素的明文图像/密文图像相关性分别进行了分析。这里是对第2节中明文图像图3a以及其加密后的密文图像图3b进行了像素相关性分析。分析过程如下:首先从每幅图像上随机的选择16 384对相邻像素,然后利用:
计算他们的相关系数:
其中x和y是对应于图像中两个相邻像素的灰度值。在数值计算中,使用下列离散公式:
图5描述了明文与密文水平方向相邻像素的相关性。明文/密文点(i,j)处的像素值,明文/密文点(i,j+1)处的像素值。
同时表1还给出了3种方向上的相关系数。,由结果可以看出在密文图像上相邻像素有很小的相关性,但在明文图像中这两个相邻像素的相关性却很高。
小知识之Lyapunov指数
Lyapunov指数是衡量系统动力学特性的一个重要定量指标,它表征了系统在相空间中相邻轨道间收敛或发散的平均指数率。对于系统是否存在动力学混沌, 可以从最大Lyapunov指数是否大于零非常直观的判断出来: 一个正的Lyapunov指数,意味着在系统相空间中,无论初始两条轨线的间距多么小,其差别都会随着时间的演化而成指数率的增加以致达到无法预测,这就是混沌现象。