针对当前的元胞自动机加密系统不具备记忆功能,使其安全性和加密速度不理想;且目前的图像加密算法都忽略考虑时间延迟现象,无法体现加密的真实过程。对此,我们提出了一种可逆线性记忆元胞自动机与时间延迟函数,采用三者相融合的加密算法来克服上述问题;并将非线性耦合置乱方法引入算法中。
该图像加密算法首先将迭代一维线性分段映射所得到的一维数组,该数组通过非线性耦合置乱方法后得到一个置乱数组,并利用该数组对初始图像进行置乱处理,改变像素位置;然后将时间延迟引入到Logistic映射中,利用可逆线性记忆元胞自动机的演变规则对三者相融合所生成的时间延迟伪随机数组进行迭代,得到迭代数组。
一、可逆线性记忆元胞自动机
元胞自动机( cellular automata,CA)是由m个相同元胞的数组构成的,包括了四个部分:元胞、元胞邻域、元胞空间以及演变规则。其每个元胞均可维持一个状态值z,z∈(0,1),并在离散的时间步长内根据演变规则来异步更新。用来表示第i个元胞,半径r的对称领域矢量可定义为ni。
用qi(t)为第i元胞在第t时刻的状态,则r的元胞自动机的局部转换函数为:
则可逆线性元胞自动机的局部转换函数为:
由于当前的可逆线性元胞自动机不具有记忆功能,其每个元胞都是根据它的邻居元胞条件来更新其状态,而且只能在其前一个时间步更新。为此,提出可逆线性记忆元胞自动机,使其具备记忆贮存功能。
考虑到邻居元胞在t时刻以及t-1时刻、t-2时刻、...的状态,从而有助于确定其在t+1时刻的状态,则第忌阶线性记忆元胞自动机的局部转换函数为:
式(4)中,fi是元胞半径为r的线性记忆元胞自动机的局部转换函数,其中1≤i≤m,且利用时间延迟伪随机序列来迭代该演变规则。
为了线性记忆元胞自动机能够可逆,成为可逆线性记忆元胞自动机,设立如下定义:
如果fk(nit-k+l)= qit-k+l,则线性记忆元胞自动机是可逆的,成为可逆线性记忆元胞自动机,其演变规则如下:
二、时间延迟函数
时间延迟作为自然界必然的规律,在图像加密领域中的混沌序列生成过程中也是如此。采用logistic映射作为序列的生成器,其模型如下:
设定初值面o,对模型(6)进行迭代得到数组x={x1,X2,X3,...,xn}。
由时间延迟函数公式(7)将时间延迟引入到数组面中,不断迭代更新,得到关于时间延迟数组x={x1,X2,X3,...,xn}。
在式(7)中,tk表示生成对应的伪随机数X1,X2,X3,…,Xn的第后个时间延迟值,这个时间延迟值由logistic映射模型式(6)控制。
因时间延迟造成了额外的时间成本。因此,需要限制时间延迟值Tk,以降低计算成本,若时间延迟Tk在t时间间隔步骤范围内,如以下模型:
式(8)中,floor(h)代表是与X相距最小的X整数,mod(h,t)代表的是h对t取余。
三、可逆线性记忆CA融合时间延迟的图像加密算法
加密算法的流程图如图1所示。
1、加密算法描述
步骤1:令明文图像大小为MxN,设定好初值vo,迭代一维线性分段混沌映射,得到一维数组v={v0,v1,v2,...,vM×N}。一维线性分段混沌映射模型如下:
式(9)中,v∈[O,1]以及p∈[O,0.5]视为密钥。
步骤2:根据得到的数组构造非线性耦合置乱方法,得到置乱数组v'={v0',v1',v2',...,vM×N'}。
式(10)中,后为本文所需的密钥。
步骤3:设定好logistic映射的初值xo,并进行迭代计算,得到数组x={x1,X2,X3,...,xn},由logistic控制时间延迟值Tk,根据时间延迟函数式(7)将时间延迟引入到数组x={x1,X2,X3,...,xn}中,得到一组时间延迟数组x={x1,X2,X3,...,xn}。
步骤4:对步骤3得到的时间延迟数组进行修正,并对修正得到结果按照从小到大顺序进行排列,得到一组新数组x'={x1',X2',X3',...,xn'}修正模型如下:
步骤5:根据本文的演变规则模型式(5)对新数组进行迭代计算,迭代时间为t,取该时刻的迭代数组x'={x1',X2',X3',...,xn'}根据像素扩散机制对置乱图像进行扩散加密处理,像素扩散机制为:
可逆线性记忆元胞自动机的演变规则为:
由于解密过程是加密过程的逆过程。
四、仿真结果分析
采用因特尔3 GH z双核CPU,4 GB的内存,操作电脑系统Windows XP。借助MATLAB仿真软件对本文加密算法的安全性能进行验证。输入一个边长L为256的正方形明文图像dolphin,色灰度为256,加密时间为635 mso,如图2(a)所示。仿真结果如图2(b)和2(c)所示。从图2中可知,经过非线性耦合置乱后,初始图像的信息得到了充分扰乱。
1、灰度直方图
图像像素灰度直方图能够直接反映出图像像素的分布状况口从图3(a)可知,初始图像的灰度分布不均匀;而经过非线性耦合置乱后的像素灰度直方图与3(a)相同,如图3(b)所示,表明它们的伪随机性以及冗余性较低,安全性较低,易受到攻击。被本文加密算法处理后的灰度直方图发生了质的变化,如图3(c)所示,其像素分布均匀,表明算法能够显著提高密文的伪随机性与冗余性。这一结果表明加密新算法具有较好加密质量,算法高度全。
2、密钥空间
高度安全的加密系统的密钥空间应是巨大的。根据图1可知,基于可逆线性记忆CA融合时间延迟的图像加密算法的密钥空间由四部分所决定,分别是一维线性分段混沌映射的初值v0,控制参数p、Logistic模型产生的序列初始值xo以及可逆线性记忆CA迭代时间to假设计算精度达到10 -16,则算法的密钥空间为(1016)4×1016 =1 080,该值显著大于2100。可见,算法的密钥空间是巨大的,足以抵抗穷举攻击。
3、密钥敏感性分析
安全的加密系统应有极强的初值密敏感性能,很好地符合“雪崩效应”。现对初值v0的敏感性能进行了测试,对v0进行增加或减掉一个非常小的干扰值β(β=10-16),其他的密钥参数不变。仿真结果如图4所示,其中,图4(a)是未修改密钥得到的密文;图4(b)是修改后的密钥(v0+β)加密得到的密文;图4(c)是(v0-β)密钥加密得到的密文。从图中可知,当初值发生了极其微小的变动,进行加密后的密文发生了质的变化。所提供的方法来计算初值%的敏感系数,得到该系数为0.9993。这表明本文算法具有极强的密钥敏感性能,能够较好地满足“雪崩效应”。
4、相邻两像素点的相关性分析
由于图像的相邻像素之间一般都具有强烈的相关性。因此,理想的加密算法应能够显著降低或者消除这个不利因素,从而提高该加密系统的安全性。在初始与密文图像中随意择取1600对相邻像素点,用相关系数rxy,来表征。rxy的计算模型如下:
式中,x与y代表的是图像相邻像素点的灰度值。
图5是加密前后图像里任意两个相邻像素点在y轴方向上的相关性测试结果。从图中可以看到,明文图像的相邻像素值逐渐变为一条对角线,如图5(a)所示,这表明初始图像相邻像素间具有强烈的相关性,达到0. 978 3,与1非常接近;而经过本文加密算法处理后,其像素值均匀地布满了整个灰度平面,如图5(b)所示,其相关性得到了有效消除,约为0.000 11,趋于0。
其他两个方向的相邻像素点的相关性实验结果见表1。从表中可知,初始图像相邻像素间的相关性较强烈;而经过本文算法处理后的密文图像的相关性显著降低,任意两个相邻的像素点几乎是不相关的。
5、抗差分攻击性能测试
优异的加密系统应该具备超强的抗差分攻击能力,本文利用NPCR与UACI来评估该性能:
式(19)中,NPCR代表像素数量变化率;UACI为平均强度变化率。
通过式(17)一式(19)来计算得到其NPCR为99. 46%,UACI为33. 57%,分别如图6(a)与6(b)所示。图6也显示了在迭代计算1次时,该算法就拥有较强的抗差分攻击能力。可见,提出的加密新算法具有极强抗差分攻击性能。
6、时间延迟数组的自相关性测试
伪随机数组或序列的自相关性对加密质量有着重要影响。在利用伪随机数组或序列对图像加密时,数组的自相关性越低,其加密效果越好;反之,则不利于加密系统的安全性。自相关性应该满足以下关系:
式中,m为步长,若f(m)随着步长m变动时,其变化幅度很小,则显示该数组或序列具有理想的自相关性。
为了验证引入时间延迟对加密算法的优势,截取相关间隔[ -3 000,3 000]对X轴方向的自相关性进行仿真测试口测试结果如图7所示,从图中可以看到,相比于图7(a)而言,将时间延迟引入到一维数组后,其自相关性得到了有效消除,如图7(b)所示,当步长m不断变化时,自相关系数变化的程度相当小。可见,将时间延迟引入到数组或序列中,能够使序列的自相关性达到理想状态,具有更好的伪随机性,从而进一步提高加密系统的安全性。
小知识之CA
CA中心又称CA机构,即证书授权中心(Certificate Authority ),或称证书授权机构,作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。