多级多层置乱图像加密算法依据信息密级,把置乱划分为初、中、高三个等级,通过逐步深化的置乱层,复杂像素位置变换,然后利用非对称椭圆曲线加密体制(ECC)对系列关键参数进行加密。该加密算法能够有效削减上述加密算法存在的缺陷,为提高数字图像文件加密质量探索了一条新途径。

一、置乱策略与实现

每幅用于交互的灰度图像文件,都是一个具有特定排列结构的二维像素矩阵,依据这一特征,改变像素的灰度值,即可获得置乱效果令人满意的图像文件。

1、初级置乱步骤设计与实现

设A=[aij]I×J,为一幅二维数字图像。L为一个数据队列,1≤Lk≤I×J,其中1≤k≤I×J。

第1步:随机选取图像矩阵A的像素点,aij∈A作为置乱图像第一层的起始点,依序扫描该点相若(i+1)>I或(i-1) <1,(j+1)>j,或(j-1) <1,则说明该像素点不存在,其灰度值将不再写入L队列。

第2步:将第1步写入L队列的像素点,分别作为置乱图像第二层的出发点,依序分别扫描各出发点相邻上、下、左、右的像素点,即ai-2,j,ai,j,,ai-1,j-1,ai-1,j+1;
ai,j,ai+2,j,ai+1,j-1,ai+1,j-1;ai-1,j-11,ai+1,j-1,ai,j-2,ai,j;ai-1,j+l,ai+1,j+1,ai,j,ai,j+2。依序将扫描点的灰度值插入队列L。若出发点在某个方向上的相邻像素点不存在或者已经被访问过,则其灰度值将不再写入队列L。

第3步:同理,籽第2步写入L队列的像素点,分别作为置乱图像第L层的出发点……直到遍历完所有的像素点为止。

第4步:应用随机函数,产生一个正整数1≤LK(Ixj-1),将aij,插入L队列的第K处。显然,L队列由IxJ个像素灰度值构成。

从L中的第1个像素值开始,依次以队列L中的J个像素为一行,可将L队列的一维像素元素转换为IxJ的二维矩阵数字图像加密新算法之多级多层置乱加密,即置乱图像矩阵。为增强置乱效果,以数字图像加密新算法之多级多层置乱加密为基础,重复上述步骤,可以获得多次置乱效果更佳的加密图像A'2,A'3,……,A'r。其中,r为对交互图像A置乱的层数。

示例:图1中,图a是一幅小沙弥读经的原始图像A,图b是以图a为基础,生成的置乱图像A'1;图c是以图b为基础,生成的置乱图像A’2;依序类推,得到6次置乱后的效果图,如图1中的b至g所示。图1中的c至g说明,第二次置乱后数据图像效果已经非常接近铺开的平毯状,置乱效果令人满意。

数字图像加密新算法之多级多层置乱加密

2、中级置乱步骤设计与实现

在初级置乱成果的基础上,采用伪装图像(以下简称为伪图像)与原始图像(以下简称为真图像)的叠加模式,可以获得质量更高的置乱效果图像。

第1步:选取一幅与真图像像素点数量相等或不相等的伪图像B,如图2所示。按照上节中的步骤1-4,获得置乱2次后的图像如图3所示。为便于定性讨论方便,定义真图像A与伪图像B的行列值相等,且相应各行的像素点的数量亦相等。

数字图像加密新算法之多级多层置乱加密

第2步:选取真图像与伪图像分别置乱后的示例图各一幅,按照叠加规则,定义叠加后的图像为D。

第3步:以图1(c)和图3叠加为例,图1(c)的第1个像素点作为D的第一个像素点,图3的第1个像素点作为D的第2个像素点,图1(c)的第2个像素点作为D的第3个像素点,图3的第2个像素点作为D的第4个像素点……以此类推,叠加后的数字图像如图4所示。

数字图像加密新算法之多级多层置乱加密

显然,以D为基础,按照上节中的步骤1-4,将会得到置乱效果更好、置乱过程更为复杂的置乱图像。由以上实现过程可以推知,由上节和本节得到的置乱效果应该能够满足一般意义上的置乱需求。如若不能,可以考虑对D的多次置乱,以获得更加满意的置乱图像。

由第3步可以推知,如果I×J足够大,图4的行列值构成方案将趋近于+00。当然,也可以用2幅以上的伪图像参与叠加过程,如果加密机能够满足效率要求,将会更加富有意义。

实际应用过程中,可以建立一个以伪图像为基础的伪置乱图像库,通过调用一幅置乱后的伪图像,直接参与叠加运算即可,而不必每次计算伪图像的置乱图像。

3、高级置乱步骤设计与实现

在中级置乱成果的基础上,将叠加后图像D分割成大小相等的图元,利用随机函数产生一个与图元块数一致的随机数列,按照得到的随机数列值,依序选取分割后的图元,组合成新图像,可获得质量更高的置乱图像。实现步骤如下:

第1步:选取真图像AIxJ与伪图像BIxJ各一幅,生成叠加图像。

第2步:以图4为例,按照设定的图元大小,将图像D分割为有64个元素的图元集,如图5所示。应用随机函数,生成一个分割后图元的新序列值,按照新的序列值改变分割后的图元位置,如图6所示。

数字图像加密新算法之多级多层置乱加密

第3步:按照图6所示的新的图元序列对其进行重新组合,生产新的置乱图像D’,如图7所示。

数字图像加密新算法之多级多层置乱加密

高级置乱的复杂度与分割的图元数量密切相关,分割的图元数量越多,图像的置乱效果也越好,反之依然。

二、置乱参数与置乱方案

置乱参数是加密操作的对象。依据前面给出的图1(a)、2和初、中、高三级不同层次的图像置乱步骤的参数分别提取。

1、初级置乱参数

数字图像加密新算法之多级多层置乱加密

表1是以图1(a)为例给出的初级置乱参数表。其中,栏3中的参数值是不同层次置乱时起始点的行列值。栏4中的1代表上邻点;2代表下邻点;3代表左邻点;4代表右邻点。在实际应用中,为了增加第三方解密的耗时,栏4相邻点的排列顺序可以随机选取24种排列方式之一。除栏1外,每层(次)置乱共有5个置乱参数。初级置乱参数的总数量取决于选择的置乱层(次)数。

2、中级置乱参数

表2给出了中级置乱的参数表,中级置乱最后的结果为图像D。真图像只有1幅,但伪图像可以>1幅。表2仅给出了伪图像为1幅时的参数列表,如果需要,读者可自行在表2中续添伪图像的相关参数。

数字图像加密新算法之多级多层置乱加密
用1代表真图像置乱后的图像,用2代表伪图像置乱后的图像;因此,图像D像素点排列顺序只有12或21两种。叠加时各图像像素点的取值个数均为一个随机数,实验结果表明,15<像素点的个数取值≤30比较合理。实际上,可以对D再次或多次进行初级置乱,但是,表2没有考虑这种更为复杂的置乱参数序列。

3、高级置乱参数

表3给出了高级置乱参数列表。高级置乱方案有两种:

数字图像加密新算法之多级多层置乱加密

①建立在初级置乱基础上的高级置乱模式,即初级置乱参数+新的图元序列值,由新的图元序列值可以推知分割的图元数,所以高级置乱参数中,可以略去分割的图元数。

②建立在中级置乱基础上的高级置乱模式。由初级置乱参数+中级置乱参数(表2中的序号2至4)+新的图元序列值,显然,建立在中级置乱基础上的高级置乱模式是使用参数最多的一种模式。

4、多级置乱方案

表4中的每种置乱方案都有多个层次,都可以独立使用。实际应用过程中,在确定一种方案类型后,可根据需要设定适当的置乱层。置乱层确定的原则是,在保证发送图像安全的基础上,选择耗时最少的置乱层方案,以提高加密解密效率。

数字图像加密新算法之多级多层置乱加密

三、加密、解密实验例证

以表4中的方案4,即初级+中级+高级的置乱方案为对象,以真图像图1(a),伪图像图2为出发点;以置乱效果图为基础,采用ECC加密体制实例验证如下:

1、Bob生成密钥步骤

(1)选定椭圆曲线为数字图像加密新算法之多级多层置乱加密基点数字图像加密新算法之多级多层置乱加密

(2)d=64,计算:Q=dN=64(503,174) - (1184,487);

(3)公开公有密钥[E1211(1,1),(503,174), 373,(1184,487)]。

2、Alice加密步骤

(1)获知Bob的公钥[E1511(1,1), (503,174), 373,(1184,487)];

(2)以真图像图1(a),伪图像图2为出发点;应用前面介绍的步骤,分别得到2次置乱图像图1(c)、图3。真图像置乱2次后,所对应的关键参数为[(512,512),1,(70,80), 1234, 39,2,(150,200), 1234, 66]。

(3)每次各取真、伪图像的18个像素点,按照表2设定的12排列顺序,生成的叠加图像如图4所示,中级置乱关键参数为[12,18,18];

(4)将图4分割成大小相等的64块图元,如图5所示。

应用随机函数,得到一个新的图元序列,即高级置乱所对应的关键参数[5,12,1,64,……,3,7,16,14]。按照新的图元序列,组合成最终加密图像D',如图7所示。明文数据S的系列关键参数值共79个,依次为{[(512,512),1,(70,80), 1234, 39,2,(150,200). 1234, 66],[12,18,18],[5,12,1,64,……,3,7,16,14]);

(5)依 据Bob公 钥[ Eisii(LI),(503,174), 373, (1184,487)], u=186, 计算:c1(x1,y1)=uN=186(503,174)= (565,604), C2(x2,y2)=UQ=186(1184,487)= (436,1162);

(6) si=512,则c1=(512' 436)mod1511= 1115;重复该计算过程,得到79个加密数据为:[1115, 1115,……,932,60];

(7)将如图7所示的最终加密图像D’,参数[565,604]和79个S的加密后的关键参数传送到Bob。

3、 Bob解密步骤

Bob收到Ahce的数据文件加密和图像加密文件D’的步骤如下:

(1)用私有密钥d=64,计算:C2(x2,y2)=dC1=186(1184,487)= (436,1162);

(2)X2-1=436-1= 655;

(3)计算s1= (1115' 655)mod1511- 512,恢复出明文数据S,以此方法计算出全部明文数据;

(4)依据明文数据的系列关键参数,恢复出原始图像,如图8所示。

数字图像加密新算法之多级多层置乱加密

小知识之置乱

所谓“置乱”,就是将图像的信息次序打乱,将a像素移动到b像素的位置上,b像素移动到c像素的位置上……使其变换成杂乱无章难以辨认的图像。