大家都知道忆阻细胞自动机是一种全新的细胞自动机,它的响应会引起细胞状态和细胞问链接状态的变化。我们在分析了忆阻细胞自动机中的细胞问链接状态丰富变化的基础上,设计了一种全新的图像加密算法:以一个WXH的忆阻自动机阵列为公钥,以细胞的初始状态和细胞迭代次数为私钥,将细胞与相邻细胞间的一纽链接状态加权后设置成加密矩阵,同时采用像素王换方法对数字图像文件进行加密。

一、基于忆阻细胞自动机的数字图像加密算法

1、演化规则的设定

忆阻自动机是一种以动态激励结构的细胞自动机,每个细胞通过链接获得与它邻近细胞的信息。每个细胞的状态更新取决于它紧邻且彼此间链接是导通的那些细胞的状态,且每个细胞都通过同样的规则同步更新自己的状态。忆阻细胞自动机的细胞有3种状态:休眠状态、激励状态和抑止状态。每个链接有导通和截止两种状态,用状态0和状态1表示。每个链接的状态更新取决于它所连接的细胞状态。让u(x)= {y:|x-y|l00 =1}是元胞x的邻居。细胞x的一组输入链接{lxy:y∈u(x)}中,只有xt,yt∈(十,一)且xt=+、yt=-时链接lxy是导通的,反向的lyx则为截止的。

这里采用两种方法来计算活跃邻居细胞的加权和。

这里,当yt=+时,x(yt+)=1,其余情况下x(y=+) =0。

因此,我们考虑两种类型的忆阻自动机。如果σ+>0,则自动机A为休眠细胞被激活。如果∑+>1或σ+>0,则自动机A2为休眠细胞被激活。

Ai01(i-l或2)细胞自动机在响应激励的同时,在激励传播方向上的链接会转换为抑止状态。同理我们可以知道,Ai1o细胞自动机在响应激励的同时,在激励传播反方向上的链接会转换为抑止状态。

2、数字图像的加密算法设计

忆阻细胞自动机是二维细胞自动机,细胞分布在无穷大平面的格点上,而一般的图像都是有限长和有限宽的,这样为了在图像上应用忆阻细胞自动机,必须在技术上做一些处理。解决的方法是将自动机看作一个拓扑平面,即认为图像的上下左右边界都是吸收边界,亦即当细胞自动机的响应传递到边界上时,边界的细胞不产生响应,就好像激励被吸收了一样。这样我们就只用考虑图像的中间点有8个邻居,边界的细胞都默认处于休眠状态,不参与响应。

我们首先建立—个A101细胞自动机模块,如图1所示。

对它施加激励,待经过一段时间的响应达到平衡之后,细胞间的链接状态会产生很大的变化,然后将图1(e)链接状态赋值给A201细胞自动机模块,如图2所示,施加激励响应一段时间。然后,经过两种细胞自动机特有的初始状态响应,细胞间将会出现独特的连接状态,如图2(e)所示。其中黑色细胞表示激活状态,灰色细胞表示抑止状态,白色细胞表示休眠状态,箭头表示细胞间连接的导通状态。

这里,我们知道每两个细胞间的链接都是双向的,如果把通向代表同一个细胞x(3,3)的所有链接lux(w为x周围邻居的位置)定义为一组,就相当于定义了整个细胞自动机的所有链接。然后按照链接状态O为阻断、1为导通,将细胞x(i,j)的所有链接按图3的lx1-lx2的顺序从高位到低位排列为一个8位二进制数,再把该二进制数转化为一个十进制数,这样通过图2(e)中x(3,3)来分析细胞与周围邻居的链接(见图3)。

这样,对应要加密的图像,我们按照其像素多少生成两个二维忆阻细胞自动机阵列。忆阻细胞自动机中的每个细胞都会有一组链接响应,可对应于需加密图像的像素点产生一个数据矩阵,而每一个非边界细胞都有8条通向自己的链接,所代表的二进制数转换为十进制有O~255种可能,且每个细胞的链接状态都会有很大差异,因此使用忆阻细胞自动机的链接来进行图像加密十分可靠。

二、图像加密数值仿真实验

以灰度图像为例,说明如何使用忆阻细胞自动机对图像加密,对于W×H的灰度图像,首先生成W×H的二维忆阻细胞自动机阵列,然后采用两个初始状态D1和D2对忆阻细胞自动机进行两次激励,激励响应的次数组和如由加密方和解密方共同约定(注意;抑止太小,至少要等于W或H中最小者的1/2,否则会影响保密性),响应后得到的独特链接状态值和目标图像像素异或就可用于图像的加密和解密。

1、仿真实验

对200×188的灰度图像lena(如图4所示)进行加密时首先生成两个200X188的二维忆阻细胞自动机阵列,建立一个A101细胞自动机模块,对它施加激励,待经过一段轮次的响应达到平衡之后,细胞间的链接状态会产生很大的变化(选用有图像像素点数目0.08%的细胞为激活状态初始配置的初始激励,并设定激励响应次数t1=t2=100)。然后将细胞间的链接状态赋值给A901细胞自动机模块,再施加t2次激励响应。这时,经过两种细胞自动机特有的初始状态响应,细胞间将会出现独特的链接状态,如图5所示。然后把图4和图5相同位置的像素异或得出加密后的图像,如图6所示,再把加密后的密图(见图6)发送给接收方。

在进行解密时,接受方按照生成细胞自动机,同时采用相同激励和响应次数进行操作,然后将得到的链接转化图与得到的加密图像进行像素异或,即可得到解密后的图像,如图7所示,它与原始图像(见图4)完全相同。

这里可以看到,实验中的加密算法和解密算法实际上是分别用忆阻细胞自动机系统进行的完全相同的两次迭代处理产生的。忆阻细胞自动机动力学中的零误差特性产生完全同步的结果,为本实验的可行性提供了良好的数据支持。

2、安全性分析

1)密钥量大

在图像加密时,选取图像像素点数目0.08%的细胞为激活状态的初始配置。以188×200的lena图为例,需选择30个像素点的细胞为激活状态,则选择一组初始状态的密钥选取有C3760a种可能,那么两次迭代所选取的密钥量将会达到10zoo,再加上两次迭代时间的选择,将使得整个算法的密钥空间非常大,保密性更强;而由于忆阻细胞自动机的同步运行特性,使得庞大的密钥空间对加密和解密速度却没有太大的影响,且使用蛮力搜索攻击将遭遇不可思议的困难,对相同大小图像,这个密钥量远大手中臧鸿雁等基于离散混沌系统广义同步定理的数字图像加密方案的1076的密钥量,也大于朱从旭等使用一种基于广义Chen氏混沌系统的图像加密算法的1044的密钥量。

2)扩散性好

在加密和解密过程中,所产生的效果由系统中初始激活细胞的位置即密钥决定。从忆阻细胞自动机的动力学特性的式(1)和式(2)可以得到,忆阻细胞自动机进行迭代时,每个细胞的状态变化取决于与之相邻的细胞以及之间链接的状态。因此,初始状态的每一个激活细胞都会如图1和图2所示向周围扩张自己的影响。因此在初始时激活细胞位置的改变,将会在迭代记次后影响到邻近大范围细胞的状态,同时,我们也可以知道,细胞间的链接状态在迭代过程中与细胞状态息息相关,也就是说加密数据的产生与初始状态的激励紧密联系,即不同初始状态的系统在经过两轮设定的迭代次数后,逐步形成的链接状态将会产生惊人的不同,这就为我们的图像加密提供了良好的加密数据。

选用另一组初始细胞状态作为密钥,经过相同次数的迭代后生成的链接转化图像如图8所示。图9即为第一次实验的加密数据与第二次试验的解密数据相作用后的解密效果图。可以看到,选择不相同的初始状态所得到的解密数据无法解开加密图像。

3)统计特性

通常来说,每张图片都有自己的统计特性,如果图像的像素置换效果不好,可通过像素的统计特性进行破解,我们分析了原始图片和加密图片的统计特性(见图10)。

可以看出,经过加密后的像素能够被较均匀地转换,原图像的像素统计特性已经被完全改变,降低了原图像与加密后图像的相关性,增强了系统的抗破解能力。

小知识之细胞自动机

细胞自动机(cellular automata)为模拟包括自组织结构在内的复杂现象提供了一个强有力的方法。细胞自动机模型的基本思想是:自然界里许多复杂结构和过程,归根到底只是由大量基本组成单元的简单相互作用所引起。因此,利用各种细胞自动机有可能模拟任何复杂事物的演化过程。