随着信息网络化飞速发展,图像网络交互在诸多领域得到应用,图像交互的安全问题倍受人们关注,目前解决这一问题,最好的办法,就是将图像加密。那么,我今天就给大家推荐一个新的图像加密算法——基于魔方变换的图像加密算法。

一、魔方变换原理

魔方变换的原理来源于魔方玩具,魔方玩具是一个分割成若干子块的立方体结构,转动子块可以在魔方的表面上拼凑成特定的图案,也可以把拼好的图案打乱。基于这个思想,可以对数字图像进行类似的置乱变换。一幅二维数字图像可以看成是一个矩阵IM*X,矩阵中各个元素Ikl(k=1,2,...,M;l=1,2,....,N)表示图像中象素点(k,l)的灰度值。

按照魔方玩具的规则,对图像矩阵的各行各列进行“转动”,考虑到图像矩阵的二维性,引入循环移位的思想,“转动”某一行Ik可以看作是对该行按某个方向循环移动hk位。为方便起见,称_hk为移位参数,hk可以由特定的算法确定。对图像矩阵的各列可以同样处理。当每一行每一列都进行了一次循环移位后完成一次变换操作,得到一幅新的图像I'M*N,即:I'M*N=p(IM*N),p表示从IM*N到I’M*N的变换映射。我们将这种变换称为魔方变换。实际应用中可以按上述步骤进行多次迭代以得到期望的加密效果。

二、基于魔方变换的图像加密算法

1、加密算法描述

传统的加密方法中用于对明文进行置乱的算子是事先确定的,不仅会带来密文数据量的膨胀,而且容易受到差分密码分析的攻击。本文采用由密钥控制产生的序列对图像文件加密,增强了安全性。

首先由输入的X0按(2)式生成混沌序列并处理成为自然数序列,以该序列中的各元素作为移位参数对图像矩阵IM*N进行n次魔方变换。其中输入的X0和n共同组成密钥。

加密算法只是对图像象素点的位置加以重新排列,并没有改变象素点的灰度值,故加密后的图像与原图拥有相同的灰度直方图。但直方图与图像本身没有严格的一一对应关系,即仅凭直方图无法推知图像本来面目,所以这一点不会影响加密的安全性。

考虑到文件加密和解密的速度问题,基于魔方变换的图像加密算法仅在空域对图像进行处理,这样就避免了图像从空域到频域的变换及其逆变换的操作,从而减少了程序的时间复杂度,提高了处理速度。

2、用混沌序列生成移位参数

对一幅数字图像IM*N进行n次迭代的魔方变换,置乱算法中有移位参数hk的确定问题,这也是图像文件加密中的一个重要的问题。经研究表明非线性动力学系统在一定的控制参数范围内会出现混沌现象,产生的混沌序列具有确定性、伪随机性、非周期性和不收敛等性质,并且对初始值有极其敏感的依赖性。这些特性对于图像文件加密很有意义,可以把初始值作为密钥的一部分,把生成的混沌序列适当处理后作为移位参数集合H。

一个一维离散时间非线性动力学系统定义如下:

Xk+1=τ(xk)       (1)

其中Xk∈V,k=0,1,2,...,称之为状态。τ:V→V是一个映射,将当前状态Xk映射到下一个状态Xk+1。从初始值X0开始反复应用(1)式即可得到序列{Xk|k=0,1,2,...,},称之为离散时间动力学系统的一条轨迹。

一类非常简单却被广泛研究和应用的动力学系统是Logistic映射,定义如下:

Xk+1=μxk(1-Xk)

其中0≤μ≤4称为分支参数。当μ=4时该映射的概率分布函数为:

魔方变换及其在数字图像加密中的应用

则可以计算混沌序列轨迹点的均值为:

魔方变换及其在数字图像加密中的应用

独立取两个初始值x0和y0,则序列的互相关函数为:

魔方变换及其在数字图像加密中的应用

序列的联合概率分布函数ρ(x,y)=ρ(x)*ρ(y),序列的自相关函数等于delta函数δ(l)。这些统计特性表明:混沌序列的遍历统计特性等同于白噪声,这一点正是图像文件加密所需要的。经过简单的变量代换,Logistic映射可以在区间(-1,1)上定义,形式如下:

Xk+1=1-λ*X2k           (2)

其中λ∈[0,2],当λ=2时称为满映射。

3、加密算法步骤

Step1、输入参数:

(1)输入图像文件InImage,矩阵表示为IM*N,图像宽为N,高为M;

(2)输入初始值X0和迭代次数n。

Step2、参数计算:

(1)取λ=2,由(2)式生成混沌序列{xk|k=0,1,2,...,(M+N)*n-1};

(2)对上述序列进行适当处理,得到自然数混沌序列,即混沌映射的轨迹点所形成的序列{hk|k=0,1,2,...,(M+N)*n-1},作为魔方变换移位参数集合H。

Step3、加密操作:

(1)对图像逐行进行参数为hk的循环移位,然后再逐列进行移位。各行列的移位参数不同;

(2)重复(1)操作n次。

Step4、得到加密输出图像文件OutImage。

4、解密算法步骤

在得到加密图像文件和正确的密钥X0、n的情况下,只需进行加密过程的逆操作即可得到正确的解密图像。

基于魔方变换的图像加密算法用来给图像加密以增强加密的效果和安全性。

小知识之矩阵:

矩阵用来表示统计数据等方面的各种有关联的数据。这个定义很好地解释了Matrix代码制造世界的数学逻辑基础。