混沌动力系统具有很好的初始敏感性、伪随机性以及遍历性,使得混沌动力系统广泛应用到信息的加密和隐藏的应用上。作为重要信息媒体的数字图像具有很大的信息量,使得传统的加密方法不适合应用到图像文件加密上。那么,今天我就给大家介绍一种基于Arnold变换的混沌轨道遍历性的数字图像加密方法:

一、基于Arnold变换的混沌轨道遍历性的数字图像加密原理

一般在图像加密过程中置乱度和密钥空间越大,加密效果越好。利用二维和三维Arnold变换混沌轨道的遍历性,我们提出了一个新的空间置乱方法。传统的二维和三维Arnold变换是直接利用Ar2nold变换对像素位置进行变换,变换的初始值是全体像素位置,变换一次引起的置乱效果并不是很理想,变换的密钥就是变换矩阵的整数系数,范围与图像的大小一样,因此密钥空间不大。本文所提出的置乱方法,在(0,1)区间上随机选取初始值并将变换矩阵系数扩大到正实数域,利用Arnold变换的轨道混沌遍历性。使图像像素位置与混沌轨道相近点相应的轨迹序号对应,来进行位置的变换,达到图像位置置乱的目的。与基于二维和三维Arnold变换传统置乱方法比较,本算法具有更大的密钥空间和更好的置乱度。

为了进一步增加图像的加密效果,在利用Arnold变换进行空间置乱之后,运用耦合映向格子(CML)映射的混沌性质生成混沌系列,经过按位异或运算实现灰度值的扩散,有效抵御统计攻击。数值实验表明该算法加密效果良好,密钥空间大,提高加密强度,符合密码学的要求。

二、三维Arnold混沌变换

经典二维Arnold混沌变换形式为:

基于Arnold变换的混沌轨道遍历性的数字图像加密

变换(1)是保面积变换,该变换矩阵的特征值基于Arnold变换的混沌轨道遍历性的数字图像加密<1,对应的最大Lyapunov指数为1nσ1=019624>0,所以二维Arnold变换是混沌的,引入两个参量a,b得到更一般的形式:

基于Arnold变换的混沌轨道遍历性的数字图像加密

进一步地将(2)式扩展到三维空间,构造三维Arnold混沌变换,过程如下:

在x-y-z三维空间中扩展变换(2)式,保持z方向值不变,在x-y平面上类似于二维Arnold变换得到如下变换(3):

基于Arnold变换的混沌轨道遍历性的数字图像加密

类似地可以得到式(4)、(5):

基于Arnold变换的混沌轨道遍历性的数字图像加密

级联(3)、(4)、(5),得到下面一般的三维变换:

基于Arnold变换的混沌轨道遍历性的数字图像加密

其中:

基于Arnold变换的混沌轨道遍历性的数字图像加密

ax,bx,ay,by,az,bz都是正整数,并且det(A)=1。

取ax=bx=ay=by=az=bz=1得基于Arnold变换的混沌轨道遍历性的数字图像加密,矩阵A的特征值:σ1=711842>1,σ2=012430<1,σ3=015728<1,对应最大Lyapunov指数为lnσ1=119719>1,与对应二维Arnold变换最大Lyapunov指数比较,三维Arnold变换为混沌性更强的混沌系统。

三、加密算法

1、 基于三维Arnold变换的图像置乱

(1)二维矩阵数据堆积为三维矩阵数据:设数字图像数据为二维矩阵A,记A=(amn)M×N,M,N为矩阵的行列数,按矩阵的列(行)顺序依次读取矩阵A的元素amn并依次(从最底层开始,填满每一层,在每一层中按列顺序依次放置)放至三维矩阵B中,矩阵B的大小为I×J×K+R,满足条件:M×N=I×J×K+R,其中当M,N为素数时R为较小正整数,否则取R=0,记B=(bijk)I×J×K+R。

(2)取初始点(x0,y0,z0),其中x0,y0,z0∈(0,1),由三维Arnold变换(6)可以得到(x0,y0,z0)迭代的轨道点(xn,yn,zn),n=1,2,…M×N;量化轨道点(xn,yn,zn),令sn=Lxn×I」, tn=Lyn×J」, un=Lzn×K」,其中Lx」表示不大于x的最大整数。

(3)因为混沌动力系统具有遍历性,混沌轨道的点可以任意接近区域中的任意点,因此通过该混沌轨道量化得到的地址可以遍历三维矩阵B的任意位置,从而根据该位置遍历的次序对图像进行重新排序,便可以达到图像置乱的目的。在上述对序列量化取整得到序号的过程中,一个序列值可能会出现多次,从而发生碰撞,破坏了置乱过程一一对应的关系,故需索引矩阵Index。取大小为I×J×K+R索引矩阵Index=0,即未遍历到的点位置标志为零。遍历过程中当发生碰撞时,取第一次得到的序列的位置即可,即若Index(sn,tn,un)=0(表明位置(Sn,Tn,Un)的点未遍历到),将矩阵B在(sn,tn,un)处的值B(sn,tn,un)依次放置在向量I(k)中,即I(k)=B(sn,tn,un),k=1,2,…,T,T≤M×N-R,并令Index(si,ti,ui)=1(表明位置(sn,tn,un)的点已遍历到)。

(4)由于计算精度和量化处理的关系,点(x0,y0,z0)经过M×N次迭代得到的轨道点经过量化取整后仍会有少数像素点位置未能遍历到,所以利用索引矩阵Index检查混沌轨道未遍历到的像素点所在位置,即若Index(i,j,k)=0(即表明该位置的像素点未遍历到),i=0,1,…,I,j=0,1,…,J,k=0,1,…,K,此时将三维矩阵B在(i,j,k)处的值B(i,j,k)依次放置在向量I(k’)中,即I(k’)=B(i,j,k),k’=T+1,T+2,…,M×N-R;对于R≠0时,即位置(i,j,k)的点,其中0<i<I,0<j<J,k=K+1,也依次放置在向量I(k’),即I(k’)=B(i,j,k),k’=M×N-R,M×N-R+1,…,M×N,0<i<I,0<j<J,而k=K+1。

(5)将向量I(k)按行或按列存储为二维矩阵C,完成一次置乱。

(6)重复步骤(2)、(3)、(4)进行多次置乱,提高置乱度。

为了检验本文置乱方法的效果,分别利用传统的Arnold变换置乱和本文提出的置乱方法对256×256的Lena图像进行置乱,采用卢振泰等提出的图像置乱程度评价方法对置乱度评价。置乱度定义为:

基于Arnold变换的混沌轨道遍历性的数字图像加密

其中I为原始图像,I’为加密后图像,N1,N2,N3,N4分别为图像的水平,垂直,主对角线,次对角线相邻元素差值的平方和,即:

基于Arnold变换的混沌轨道遍历性的数字图像加密

实验数据表1表明,本文提出的置乱算法比传统的置乱算法更有效。

基于Arnold变换的混沌轨道遍历性的数字图像加密

图1-图3分别是运用传统二维Arnold置乱和本文的二维与三维Arnold置乱方法进行3,26,64次置乱效果图,其中二维Arnold变换系数矩阵A中参数取a=1,b=1,三维Arnold变换系数矩阵A中参数取ax=bx=ay=by=az=bz=1。

基于Arnold变换的混沌轨道遍历性的数字图像加密

基于Arnold变换的混沌轨道遍历性的数字图像加密

基于Arnold变换的混沌轨道遍历性的数字图像加密

从图2,图3与图1比较可以看出本文的二维和三维Arnold变换的置乱算法置乱3次时,比传统二维Arnold变换置乱效果好。同时注意到传统的二维Arnold变换置乱具有周期性,但本文提出的置乱算法周期可以非常大,置乱效果可以很稳定。

2、基于耦合映像格子(CML)映射的灰度值置乱扩散

Logistic映射为xn+1=axn(1-xn),xn∈(0,1)。当参数a∈(315699456,4]时,Logistic映射处于混沌状态。为了应对统计分析和差分分析的攻击,得到更好的扩散效果,通过Logistic映射构造如下CML映射:

基于Arnold变换的混沌轨道遍历性的数字图像加密

其中f为Logistic映射,n=0,1,2…,y1,2(i)∈[-1,1],ε∈(0,1),并取ε=0199。用数值方法,将a作为参数,a分别从21001到410和31601到410变化时的Lyapunov指数的图形,见图4。

基于Arnold变换的混沌轨道遍历性的数字图像加密

从图4可见,CML系统最多可以有两个正Lyapunov指数,通过实验得到当a>318540,CML系统有两个正Lyapunov指数,所以CML系统是混沌的。取参数a=410,运用CML混沌系统对图像灰度值扩散。扩散算法如下:

(1)取初始值y1(0),y2(0),由(7),(8),得到均匀分布的混沌系列y1(n),y2(n),y1(n),y2(n)∈(0,1),n=1…M×N。

(2)取Y1(n)=[y1(n)×256],Y2(n)=[y2(n)×256],将Y1,Y2按列分别构成大小为M×N矩阵D1,D2,利用矩阵D1,D2与C按位异或运算即:D1⊕D2⊕C,从而改变C的灰度值,达到灰度值的扩散。

上述整个加密过程是可逆的,解密过程对算法反操作便可以实现。

四、加密安全分析

1、密钥空间和密钥敏感性分析

一个好的加密系统应该具有对密钥高度敏感性,应具有足够大的密码空间可以抵抗非法攻击。在加密过程中密钥个数达11个,包括三维Arnold置乱过程9个密钥和灰度值扩散过程的两个密钥。三维Arnold置乱过程9个密钥为ax,bx,ay,by,az,bz,x0,y0,z0,密钥空间大小至少为28×6×1016×1016×1016=218147×1062,同时还必须知道所堆积矩阵的大小,进一步扩大了密码空间,加大了破解的难度;在灰度值扩散中需要2个密钥,密钥空间为1016×1016=1032。可见本文算法可以达到足够大的密钥空间。

密钥敏感性测试:对256×256大小Lena图像加密。假设两组初值密钥分别为:

基于Arnold变换的混沌轨道遍历性的数字图像加密

而两组密钥其他部分均为y1(0)=013,y2(0)=016,ax=bx=ay=by=az=bz=1,加密次数为5次。本文用以下方法测试密钥敏感性:

基于Arnold变换的混沌轨道遍历性的数字图像加密

其中I,I’为使用不同密钥加密得到的密文,n(I-I’)为I,I’灰度值不同的数目,M×N为图像的大小。通过实验表明:虽然初始密钥x0只差10-15,但Cdr=9913729%。

图5(a)为原始Lena图像;图5(b)为x0=01123456789654321,y0=018,z0=015加密得到的加密图像;图5(c)为x0=01123456789654322,y0=018,z0=015加密得到的加密图像;图5(d)图为图5(b)与图5(c)的差别图像;图5(e)为x0=01123456789654322,y0=018,z0=015对图5(b)的解密结果;图5(f)为x0=01123456789654321,y0=018,z0=015对(b)图解密结果。

1c

2、统计分析

本文提出的灰度值置乱算法可以有效的对图像灰度进行置乱,如图7通过原图像与加密图像的灰度值直方图比较后看出加密后的直方图分布比较均匀。

基于Arnold变换的混沌轨道遍历性的数字图像加密

分别从原图和加密图随机选取1000个相邻(垂直、水平、对角)像素点判断其相关性,将灰度值显示如图8;计算相关系数;结果如表2。从数值结果可以看出,本文的加密算法可以有效去除相关性,有效抵御统计和差分等攻击。

基于Arnold变换的混沌轨道遍历性的数字图像加密

为了检验本文的加密方案的鲁棒性,我们对图像进行剪切,压缩等攻击进行实验,实验结果如图8,其中Jpeg压缩的品质因子为60。通过攻击实验表明,该加密算法有较好的鲁棒性。

基于Arnold变换的混沌轨道遍历性的数字图像加密

数值实验表明本文的加密算法具有更好的加密效果,更大的密钥空间以及更高的安全性,可以有效地抵抗了统计分析以及剪切、压缩等攻击。

小知识之Arnold变换

Arnold变换是一种常用的图像置乱技术,Arnold变换的定义如下:
对任意N*N矩阵(所有元素都相同的矩阵除外),设i,j为矩阵元素原始下标,经过Arnold变换后新下标为i',j',且满足下式:
i'=(i+j)mod N
j'=(i+2j)mod N
i,j:0,1,.........N-1
Arnold变换具有周期性,即经过若干次变换后,矩阵回到最初状态,且周期T与N的大小有关。理论基础没找到,但可以用程序来进行计算,可以设i,j从一个点出发,不断使用以上变换,再次回到这个起点时,经历的变换次数就是周期。