为了实现对数字彩色图像信息的有效保护,提出了一种基于Lorenz混沌序列的彩色图像加密及抗剪切攻击解密算法。对Lorenz系统输出的三维混沌序列进行改进,使其具有理想的伪随机特性。根据这三维序列依次改变RGB三分量图像的像素位置和像素值,从而实现图像文件加密。

一、Lorenz混沌序列及其改进

Lorenz系统是一个经典的三维混沌系统,其动力学方程为:

彩色图像文件加密及抗剪切攻击解密算法

式中:σ,r,b为系统参数,当σ= 10,r= 28,b=8/3时,系统进入混沌状态。本文采用四阶Runge-Kutta数值积分方法来求解微分方程组。对于给定的初始条件(x0,y0,zo),可产生非周期、不收敛、对初始值(x0,y0,zo)极端敏感的三维混沌序列{(xi,yi,zi)|i=1,2,3,4,…)}。

以初始值xo=-1.01,yo =0,zo=1.02,积分步长h=0.001来计算Lorenz序列,求出各序列的105项,其x序列的后2000项、x序列的自相关性和x-z序列的互相关性如图1所示。

彩色图像文件加密及抗剪切攻击解密算法

按照Golomb对伪随机序列提出的3个公设,理想的混沌序列应具有均匀分布,自相关是δ函数,互相关是零的统计特性。由此可见,原方程产生的序列不是很理想的伪随机序列。

为此,本加密算法对原序列作如下改进:

(1)将序列的大小扩大10k倍(k=0,1,2,3,4,…);

(2)将序列映射到值域(-0.5,+0.5)。

计算公式为:

彩色图像文件加密及抗剪切攻击解密算法

式中:ruund取最近整数。上面的序列经公式(2)处理后k=4),其序列值和整体序列相关性如图2所示。此时,序列值分布均匀,自相关为理想的δ函数,互相关近似为零,是理想的伪随机序列。实验证明,原序列对于不同的初值,其序列相关性相差很大,而经改进后的序列的相关性却都几乎一致。

彩色图像文件加密及抗剪切攻击解密算法

二、加密算法

本文加密算法同时采用像素置乱和像素值扩散加密,使加密图像像素随机分布,以提高算法的抗剪切能力和抗像素特征值统计攻击能力,需要如下混沌序列。

设RGB彩色图像大小为m×n,由Lorenz系统产生的原序列经公式(2)处理后生成混沌序列:

1

序列{xi|i=1,2,3,…,m×n},{yi|i=1,2,3,…,m×n},{zi|i==1,2,3,…,m×n}依次用于彩色图像RGB分量的像素位置和像素值加密。

1、基于混沌序列的像素置乱

本文加密算法应用混沌序列的伪随机性和遍历性,由不重复的混沌序列决定将原像素(i,j)变换到(r0w,col)新位置。

将混沌序列{xi|i=1,2,3,…,m×n}按升序或降序排序得到新的有序序列{cxi|i=1,2,3,…,m×n},将cx(i)值用其在x中的位置索引值替代,即得到服从[1,m×n]的稳定整数(排序位置)分布的混沌随机序列{sxi|i=1,2,3,…,m×n},依此序列一一把R分量的像素(i,j)按行列顺序移位到(r0w,col)。

彩色图像文件加密及抗剪切攻击解密算法

式中:i=1,2,3,…,m,j=1,2,3,…,n。上式计算后,若col=0,则row= r0w-1,col=n。

同理,依次把GB分量的像素移位到新的位置。这样,原来同一像素位置的RGB分量的像素位置己在各自分量上随机分布在不同的位置。

2、基于异或运算的像素值扩散

本文加密算法采用根据随机条件随机选择混沌序列作为XOR异或操作数来加密RGB各分量的像素值,方法如下:

(1)可选的XOR操作数

将混沌序列变换为8位无符号整数作为可选择的XOR操作数:

1

式中:i=l,2,3,…,m×n,k≥4。

(2)RGB分量的像素值扩散

设RGB图像wK阿的某像素值A(i,j),则新像素值A(i,j)的RG分量为:

1

式中:rX,gY和bZ异或操作数的取值根据随机选择变量uptiurt由表1选择。uptiurt由下式计算:

彩色图像文件加密及抗剪切攻击解密算法

式中:T-X,Y,Z序列之一。i=1,2,3,…,m×n,k≥2。

表1给出了mX,mY和mZ的排列结果与序号一致的一种对应关系,通过对该排列结果进行全排列,可得到720种对应关系表。

彩色图像文件加密及抗剪切攻击解密算法

三、抗剪切攻击解密算法

本文加密算法是可逆算法,按加密算法反向运算即可得到无损原图像。为了抵抗恶意剪切或涂鸦等攻击,提出一种抗剪切攻击解密恢复算法。本算法的可靠性是基于本文加密算法的像素置乱和像素值扩散分布均匀的特性。本加密算法原理示意图如图3所示,图3(a)表示加密图像各像素值,图3(b)表示加密图像被剪切像素被F标记,图3(c)表示解密后的像素值和被剪切像素标记,本算法就是恢复F处的像素值。

彩色图像文件加密及抗剪切攻击解密算法

1、检测被剪切图像

解密前,检测被剪切像素。经过像素置乱和像素值变换双重加密后的图像,相邻像素几乎不相关,如图3(a)所示。如连续出现2—3个像素的像素值一样的,则认为这些像素是被剪切像素。在本文加密算法下,多次实验证明,取连续3个像素作为判断条件是很可靠的。

设用flagm×n×3无符号整数矩阵标记加密图像RGB各分量被剪切像素,并初始化为零。从第一行第一列开始逐行逐列扫描,如连续3个像素值相同,则与这些像素对应flag置1。

因为剪切边界邻域像素可能有与剪切区域像素值相同的像素被误判为剪切像素,所以取flag记录中被剪切像素最少的对回flag分量作为被剪切像素区域。

flag标志位(如图3(b)所示)需变换到被剪切像素在解密后的位置flag(如图3(c)所示)。

2、抗剪切恢复算法

为方便起见,本算法简称Np恢复算法,其基本思想是:图像解密后,被剪切像素己随机分散在整个图像,应用4邻域相邻像素的高度相关性,被剪切像素的像素值取值可以根据邻域像素决定。本算法是:

(1)根据jlg,恢复第1行、第1列、第w行和第n列被剪切像素值,取其邻值或邻值平均值;

(2)从第2行第2列像素开始,根据flg逐行逐列计算被剪切像素,如其右邻域像素不被剪切,则取左右邻域像素值平均值;否则,如其下邻域像素不被剪切,则取上下邻域像素值平均值;否则,如其下邻域像素被剪切,则取左邻域像素值和上邻域像素值的平均值。

四、本文加密算法的特点

由于改进后的Lorenz混沌序列具有更强的伪随机特性和更理想的相关特性,使得本文加密算法可靠实现:

(1)根据改进的三维序列分别移位RGB三基色分量的像素位置分布均匀,提高算法的抗剪切能力;

(2)采用多重随机选择异或操作数和足够多的随机操作数样本,使算法具有很强的像素值扩散能力,且像素值分布均匀;

(3)像素位置置乱均布和像素值均布两大前提保证了基于邻域相邻像素特性的加密图像抗剪切攻击恢复的有效实现。

基于邻域相邻像素特性的解密图像的抗剪切恢复算法,随着被剪切面积的增加,被剪切像素点的还原准确性逐渐下降,需进一步改进算法,提高恢复质量。

小知识之伪随机性

伪随机性(Pseudorandomness)是指一个过程似乎是随机的,但实际上并不是。例如伪随机数(或称伪乱数),是使用一个确定性的算法计算出来的似乎是随机的数序,因此伪随机数实际上并不随机。在计算伪随机数时假如使用的开始值不变的话,那么伪随机数的数序也不变。伪随机数的随机性可以用它的统计特性来衡量,其主要特征是每个数出现的可能性和它出现时与数序中其它数的关系。伪随机数的优点是它的计算比较简单,而且只使用少数数值很难推算出计算它的算法。