用交叉耦合混沌系统实现来实现图像文件加密器原理是利用这种交叉耦合混沌系统同时生成两组混沌序列,并用其中一组来置乱图像,另外一组改变像素灰度值进行加密。这种使用单一耦合混沌系统同时置乱和图像加密算法,有别于目前用一个混沌系统置乱、用另一个混沌系统加密图像文件的主流加密算法。

一、交叉耦合混沌系统

1、 Logistic交叉耦合映射

Logistic方程又称作虫口模型,提供了每年一次无世代交叠的单一生物种群的生物繁衍模型。假使该生物种群每年繁殖两次(春秋各一次),那么新的生物繁衍模型可以通过对Logistic方程进行改进来得到。

在无世代交叠单一生物种群每年繁衍两次的虫口模型中,设春季的μ值为k,秋季的μ值为g,且k>g,得到如下方程:

图像文件加密如何采用交叉耦合混沌系统实现

将式(1)代入式(2),得:

图像文件加密如何采用交叉耦合混沌系统实现

由方程(2)可以得出:

图像文件加密如何采用交叉耦合混沌系统实现

将式(4)代入式(1),得:

图像文件加密如何采用交叉耦合混沌系统实现

令Xi =X2n,Xj =X2n+1,(i,j=0,1,...),式(3)、式(5)分别表示为:

图像文件加密如何采用交叉耦合混沌系统实现

变化后的式(6)由迭代方程的偶次迭代给出春季虫口方程,式(7)由迭代方程的奇次迭代给出秋季虫口方程。本质上,这两个方程组合成“Logistic交叉耦合映射”。通过MATLAB仿真,得到Logistic交叉耦合方程随参数k变化的X-K图(图1)。

图像文件加密如何采用交叉耦合混沌系统实现

观察图1,当g=2.7时,系统表现出典型的混沌动力学行为。

2、混沌序列相关性分析

根据混沌的定义容易知道,当选定适当系数使方程进入混沌状态时,方程将进行无限不循环迭代,因此不会出现重复的迭代值。任何人如果不得到迭代方程都无法预测下一个迭代值,这种迭代的结果可以用来产生随机序列。但是,受计算机精度的限制,如果不断从随机序列中获取随机数,随机序列一定会到达容量极限从而出现随机数重复出现的现象。对生成的序列进行相关性分析,可以检验其是否满足随机序列的要求。

不失一般性,取初始值seed=0.8,k=4,g=1.8,利用Logistlc交叉耦合映射生成混沌序列,绘制其归一化自相关图和互相关图(图2)。

图像文件加密如何采用交叉耦合混沌系统实现

从图2(a)可以看出交叉耦合混沌序列具有理想的_δ-like自相关特性。选择不同参数生成两组混沌序列,绘制出图2(b)的互相关图,互相关值仅仅在[-0.15,0.15]之间,表现出良好的互相关特性。这与理想的独立分布的随机序列的相关曲线一致。

综合以上分析可见,“Logistic交叉耦合映射”生成的混沌序列具有高度的随机性、复杂性和周期长等特性,有效地减少了有限字长效应的影响;完全满足用于图像加密混沌序列产生器的条件。

二、图像加密算法和解密算法

1、图像加密算法

设待加密的数字图像文件为I,其大小为MxN,使用如下图像加密算法给图像加密加密:

步骤1输入原图I,得到图像矩阵Immtxin,输入混沌系统的初始值seed和密钥Key。

步骤2利用偶次迭代的Logistic生成大小为M×N的“置乱模板”P;同时保存奇次迭代的Logistic混沌序列,用于改变像素灰度值。

步骤3对每个混沌序列值乘10000,然后“模256”运算,得到Uint8的随机整数。

步骤4按“置乱模板”对图像像素进行置乱:将ImmA-in中的像素值依次置乱到“置乱模板”每个元素指定的位置。

步骤5使用奇次迭代的Logistic混沌序列值和置乱后的图像矩阵元素进行异或运算(XOR)。

步骤6输出加密图像文件。

在上述图像及iam算法过程中,因为生成的混沌序列初始时会发生振荡,所以将映射生成的前300个序列值进行丢弃,从而保证生成的随机序列值更有利图像JJu密。步骤2中生成的“置乱模板”矩阵P,P= MxN。对P来说,其任一元素Pij∈[1,2,…,MxN],且Pij= Pkl,当且仅当i=k,j=l。

2、图像解密算法

图像解密算法是图像加密算法的逆过程,图像文件加密是先置乱后加密,所以图像文件解密时是先解密后逆置乱。

三、仿真实验与结果

选用大小为256x256、灰度值为256色的位图lena.bmp(图3(a))作为实验图片,仿真结果如图3。

图像文件加密如何采用交叉耦合混沌系统实现

四、仿真结果分析

1、 灰度直方图

图像文件加密如何采用交叉耦合混沌系统实现

2、密钥空间分析

Seed、k和g等三个参数作为加密系统的密钥,若设置精度为10-14,那么密钥空间大小将超过2260。显然,密钥空间足够阻止各种穷举攻击。

3、两相邻像素点的相关度分析

绘制基于交叉耦合混沌系统加密前后lena图像垂直方向相邻像素点灰度值的分布图。绘制过程中,在“原始图像lena”和“加密后的图像lena”的垂直方向各随机取3000对相邻像素点进行测试,测试结果如图5所示。

图像文件加密如何采用交叉耦合混沌系统实现

在“原始图像lena”和“置乱后的图像lena”各自的水平、垂直和对角线分别取3000对相邻像素点,进行“两相邻像素点的相关度”计算。测试结果如表1所示。

图像文件加密如何采用交叉耦合混沌系统实现

4、分别用错误和正确的密切对加密后的图像文件解密

用一组与正确密钥相近的参数进行解密,得到图6(a)所示的图像,可见图像信息在错误密码下的安全性。当采用正确密钥时,得到如图6(b)所示的正确图像,完全恢复图像信息。

图像文件加密如何采用交叉耦合混沌系统实现

使用本图像加密算法加密后图像的灰度直方图与加密前图像的灰度直方图比较,发生的改变很显著,而且前者的灰度分布均匀,说明本加密算法符合密码的扩散和混乱特性;对加密后图像相邻两像素的相关性进行检测,更进一步显示出超混乱和扩散性。对设计的交叉混沌序列发生器产生的随机序列进行自相关和互相关分析,自相关性大而互相关性小,表明该序列克服了单混沌系统潜在的动力学系统攻击的可能,扩大了密钥空间,具有较高的安全性能。对密钥的微小差异就不能解密加密图像文件,说明图像加密算法对加密密钥的敏感性,可有效地抵御差分攻击等方式的攻击。

小知识之交叉耦合

这种效应是解算系统弹性摆运动微分方程中出现的水平加速度和垂直加速度相乘的项。其物理意义为具有相同频率的水平加速度和垂直加速度同时作用于摆,使摆相对于零点位置和偏角以相同频率变动。这个周期性变化可造成十几至几十毫伽的测量误差。采用相互对称的两套弹性系统,或增强系统的阻尼,是消除这个效应的主要方法。也可以使用两台重力仪对称放置进行观测,来消除此效应。