基于偏X型细胞自动机的图像加密方法
梁士利1, 柴宗谦1, 张玲2, 吴颜生1, 曹春雷1
1.东北师范大学 物理学院,长春 130024
2.长春理工大学 理学院,长春 130024

作者简介:梁士利(1968-),男,教授,博士.研究方向:信息安全.E-mail:lsl@nenu.edu.cn

摘要

提出了一种基于二维二态五邻居可逆细胞自动机(CA)的图像加密算法。本方法首先对X型结构类型的 CA进行了分析测试,提出了具有明显密钥混淆效应的偏X2型结构CA;其次在进行CA每次迭代加密时,对迭代结果进行矩阵转置运算处理;随后采用具有混沌行为的9d62(hex)规则一维四邻居CA产生密钥图像;最后算法在CA边界条件中插入密钥信息,并参与细胞自动机加密迭代。实验结果表明,采用基于偏X2型CA结构和新型密钥设计,相比于传统的密钥与尾数据做单一异或的运算方法,提高了密钥在整个加密体系的参与度和敏感性,降低了CA迭代次数,明文扩散率提高了36.14%。

关键词: 图像处理技术; X2型结构CA; 图像加密; 扩散率
中图分类号:TP399 文献标志码:A 文章编号:1671-5497(2017)05-1653-08
Image encryption method based on partial X type cellular automaton
LIANG Shi-li1, CHAI Zong-qian1, ZHANG Ling2, WU Yan-sheng1, CAO Chun-lei1
1.College of Physics,Northeast Normal University,Changchun 130024,China
2.College of Science, Changchun University of Science and Technology,Changchun 130022,China
Abstract

In this paper, an image encryption algorithm based on two-dimensional, two state and five neighbor reversible Cellular Automaton (CA) is proposed. First, this method is applied to analyze several X type neighbor structures of CA, and a partial X type structure of CA is put forwarded, which has obvious key confounding effect. Second, in each CA encryption iteration, the results are processed with matrix transpose operation; then the key image with one-dimensional four neighbor CA is generated, which has chaotic behavior at the rules of 9d62 (hex). Finally, the key information is put into the CA boundary conditions, so that the key is involved in each cellular automaton iteration. Experimental results show that using partial X2 type CA structure and new model of key design can improve the sensitivity of the key in the encryption system. Compared with traditional single XOR operation, the new method can also reduce the number of CA iterations, thus, possessing advantages in plaintext diffusion rate and obfuscation key, the diffusion rate is increased by 36.14%.

Key words: image processing technology; X2 structure CA; image encryption; diffusion rate
0 引 言

在细胞自动机(CA)的加密应用中, 规则的可逆性以及信息的迭代扩散性是首先考虑的问题, 细胞自动机的可逆性依赖于其动力学模型和规则的选取, 传统的细胞自动机要达到较好的加密效果通常依赖较高的迭代次数, 然而增加迭代次数势必影响加密效率, 因此如何保证规则的可逆性, 又在加解密效果和运算效率这两者之间找到较为平衡的解决方法成为了该领域的研究的热点问题。

Zhang等[1]提出了一种利用细胞自动机将图像分8层位面进行迭代的方法, 现将图像进行灰度化处理, 然后0~255的灰度值通过此方法能够转变为8个位面的0, 1值, 这样正好符合大部分细胞自动机二态演化的特性, 实现了图像的并行高效加密。Souyah等[2]提出了一种高效的基于四分树切割的图像加密CA算法。袁野等[3]提出了基于X型结构的变邻居混合细胞自动机加密方法, 该方法能有效的提高明文扩散性, 且密钥空间较大。TralicC等[4]提出了基于像素分离和细胞自动机的图像加密算法, 该算法的鲁棒性较为理想。宫珊[5]着重研究了基于Y型细胞自动机的加密系统, 并对产生混沌行为的一维四邻居9d62(hex)规则进行了系统研究, 发现其在一维四邻居规则中具有最大混沌行为, 但整体加密系统迭代次数高达256次。吴颖芝等[6]提出了一种密钥参与尾数据异或运算的加密模式, 该方法有效的通过密钥保护了加密过程中产生的尾数据, 并用循环移位方式对文字ASCII码进行演化, 但该文章并不涉及图像加密。Chen等[7]和Souyah等[8], Chai等[9]将图像加密技术与压缩感知相结合, 大大降低了密文图像数据量, 提高了密文图像传输效率。

本文在前人研究的基础上, 在二维二态五邻居细胞自动机的邻居结构上做了进一步的研究, 首先从五邻居CA结构方面切入, 找到了一种提高密钥混淆性的偏X2型的CA结构; 其次在CA迭代循环过程中加入了矩阵转置运算; 最终密钥嵌入边界条件, 这一设计使即将生成的密文信息仅在CA迭代这一环节就受到密钥和明文信息的双重影响, 提高了密钥在加密运算中的参与度和敏感性;

1 二维细胞自动机邻居结构分析

本文加密系统的核心采用的是二维二态五邻居细胞自动机, 传统的以三邻居细胞自动机为核心的加密系统有着规则空间较小, 安全性较低的缺点, 而过多的邻居选择虽然有助于提升明文扩散效应, 却降低了加密系统的效率, 而且结构笨重, 不易执行, 如Moore型和扩展Moore型; 因此本文选取五邻居细胞自动机机, 该CA的规则空间大小达到 225, 满足一般需求。另一方面, 不同邻居结构的选型对加密效果也有很大影响, 具体影响体现在明文扩散性, 密钥敏感性的差异上。如下给出几种常见五邻居结构的公式, 并对X型以及多种变种X型结构进行了进一步的研究。

von Neumann型邻居公式:

Si, jt+1=f( Si, j-1t, Si, j+1t, Si, jt, Si-1, jt, Si+1, jt, Si, jt-1)

X型邻居公式:

Si, jt+1=f( Si-1, j-1t, Si-1, j+1t, Si, jt, Si+1, j-1t, Si+1, j+1t,

Si, jt-1)

偏X2型邻居公式

Si, jt+1=f( Si-1, j-1t, Si-2, j+1t, Si, jt, Si+1, j-1t, Si+2, j+1t,

Si, jt-1)

通过实验发现, 在该加密系统中, 邻居结构不同对密钥敏感性的影响较大。其中X型结构效果并不理想, 基于X型的变种偏X2型的密钥混淆性最好, 具体效果在实验分析部分有详细阐述。

2 可逆细胞自动机构建
2.1 可逆规则与可逆性证明

偏X型细胞自动机与经典T型细胞自动机原理一致, 这种可逆的细胞自动机依靠相邻2个时刻的全局状态演化, 而初始迭代是没有前驱状态的, 因此我们通过另一个混沌规则细胞自动机, 以明文图像信息为种子, 演化出一个初始状态S1的前驱S0。偏X型邻居细胞自动机具有T型邻居细胞自动机的特征, 如果细胞的当前时刻邻居状态相同, 而前一时刻状态不同, 其邻域函数规则演化状态互补, 则该细胞自动机是可逆并且其逆细胞自动机就是其自身。

St+1=F(St, St-1)关系式表达了下一时刻状态由前面相邻两状态决定。

以X型邻居为例说明, 对于 Si, jt+1=f( Si-1, j-1t, Si-1, j+1t, Si, jt, Si+1, j-1t, Si+1, j+1t, Si, jt-1), 若有 Si, jt+1= Si, jt-1, 则有 Si, jt-1=f( Si-1, j-1t, Si-1, j+1t, Si, jt, Si+1, j-1t, Si+1, j+1t, Si, jt+1), 若二者不等, 则有 Si, jt+1= S-i, jt-1(互补状态), 可推出: S-i, jt-1=f( Si-1, j-1t, Si-1, j+1t, Si, jt, Si+1, j-1t, Si+1, j+1t, S-i, jt+1)。

由于该演化规则互补, 有: Si, jt-1=f( Si-1, j-1t, Si-1, j+1t, Si, jt, Si+1, j-1t, Si+1, j+1t, Si, jt+1)推出:St-1=F(St, St+1), 可逆性证毕。

本文采用96699669H可逆规则作为主CA的迭代规则, 文献[5]对可逆规则的选取进行了详细说明, 表1给出了前驱状态为 Si, jt-1=0时的可逆规则真值表, 当前驱状态为 Si, jt-1=1时真值表取反即可。

表1 可逆规则表 Table 1 Reversible rule
2.2 图像分为8层参与迭代的思想

大多数应用于加密系统的细胞自动机一般为二态细胞自动机, 二态细胞自动机演化过程之中只有0, 1两个状态, 如何将灰度图像的0~255灰度值进行二态化就十分重要, 直接对图像进行二值化处理只会让图像损失部分信息, 即发生图像失真, 文献[4]提出了将图像分为8个位面图的思想, 每个位面图的信息只含有0和1。在此作简要说明:

I为图像的灰度值, mod为取余数运算, 高层位面到低层位面顺序为Layer8~Layer1,

Layer8=I/27

Layer7=(I mod27)/26

Layer6=(I mod26)/25

Layer5=(I mod25)/24

Layer4=(I mod24)/23

Layer3=(I mod23)/22

Layer2=(I mod22)/21

Layer1=(I mod21)/20

由8个位面复原一副图像时, 只需将每个位面的数据乘以其权值即可还原图像。公式如下所示:

Image=Layer8* 27+Layer7* 26+Layer6* 25+Layer5* 24+Layer4* 23+Layer3* 22+Layer2* 21+Layer1

3 加密系统设计以及密钥运算
3.1 密钥嵌入边界条件

细胞自动机的边界条件是其迭代过程中不可缺少的环节, 常规的边界条件设置方法有边界补零, 和边界补1以及循环边界条件等方法, 边界条件设置的不同, 最终迭代结果也有显著差异。本文从提高密钥在加密系统中参与度的方面考虑, 提出了一种将密钥嵌入到细胞自动机边界条件的设计方法。

取密钥种子图像I_KEY, 行数为m, 列数为n, 使用混沌规则的细胞自动机对其进行迭代。取迭代结果的第n-1, n列作为左边界; 第1, 2列作为右边界; 第m-1, m行作为上边界, 第1, 2行为下边界, 其余四角空余位以0填充, 如图1所示。

图1 密钥嵌入边界条件的示意图Fig.1 Key embedding boundary condition

3.2 密钥参与尾数据异或

受到文献[3]的尾数据与密钥进行异或运算的启发, 首先将密钥图像I_KEY分为8个位面, 分别与Sn对应的8个位面进行按位异或运算:

ScipN=SNXOR key

式中:I_KEY为密钥种子图像, I_Image为明文图像, tempImage()函数代表混沌规则的细胞自动机的输出。S0为初始迭代的前驱状态, 该状态由明文图像内容决定, 即以I_Image为种子, 由混沌行为的细胞自动机迭代n次得到尾数据Sn。随后将此数据与以I_KEY为种子产生的图像按位异或, 最终获得受密钥保护的密文信息, 具体过程如图2所示。

图2 密钥对尾数据进行保护Fig.2 Key protects tail data

3.3 历次迭代结果进行矩阵转置

单一对明文图像进行细胞自动机迭代的方法虽然简便, 却存在明文扩散性差的缺点, 仅仅依靠提高迭代次数的方法无疑增加了计算成本, 而且降低系统运行效率。考虑到计算效率的问题, 本文采用将历次迭代结果进行行列矩阵转置的方法来提高明文扩散性, 这种轻量级的转置运算对系统运行效率造成的影响较低, 同时也能达到置乱的目的, 转置运算的效果分析在实验部分有详细阐述。

3.4 密钥空间

该算法采用m× n的图像作密钥, 结合加密系统的五邻居细胞自动机规则选取, 因此其密钥空间巨大, 密钥空间公式为:

Keyspace= 225× 2mn

式中:m, n为密钥图像行列数, 本文加密示例Lena图像仅为300* 300, 则其密钥空间高达232× 2300× 300, 因此该算法可有效抵抗穷举攻击。

3.5 整体加密算法设计

首先将待加密的明文图像I_Image, 和密钥种子图像I_KEY分为8个位面图, 输入具有混沌行为的一维二态四邻居细胞自动机tempImge(), 用以产生好的随机图像, 其中该细胞自动机采用9d62(hex)规则; 其次, 将输出的tempImge(I_Image)作为原图像的前驱状态, tempImge(I_KEY)嵌入主CA迭代的边界条件; 再次, 设主CA的迭代次数n, 每次迭代后的结果经过矩阵转置运算后再次进入CA迭代, 直到循环n次, 产生尾数据Sn; 最终, 尾数据Sn与前面已经生成的tempImge(I_KEY)进行按位异或运算得到密文图像。流程图如图3所示。解密是加密的逆过程, 此处不再赘述。

图3 整体加密算法流程图Fig.3 Flow chart of whole encryption algorithm

4 实验分析
4.1 CA五邻居结构对密钥混淆性的分析

密钥混淆性统计的是密钥仅有一位变化, 按此密钥解密图像出错位数有多少; 图4为按照错误密钥解密的效果图, 这里的密钥仅有一位出错, 选取CA迭代次数n=100, 采用控制变量法, 以下各图仅CA邻居结构不同, 其他参数完全一致。根据以下图表可以发现, 偏X2型细胞自动机邻居结构下的解密出错位数明显高于其他情况, 即按偏X2型结构迭代的细胞自动机的密钥混淆性更好。故本文采用偏X2型邻居结构。

图4 不同邻居结构下的解密图Fig.4 Decryption graphs with different neighborhood structures

表2 密钥混效率 Table 2 Mixing efficiency of key
4.2 转置运算效果综合分析

明文扩散性是指, 当原图像仅一位变化时, 加密后密文图像变化多少位, 加入转置运算后明文扩散性具有明显的提升, 密钥混淆性也有小幅度提升; 以偏X2型为例, 选取CA迭代次数n=100, 加密Lena图像, 混淆性比较如图5所示; 由于扩散性的比较是两个密文图像对照, 故只在表3中给出数据。

表3 转置运算对混淆率和扩散性的影响 Table 3 Influence of transpose operations on aliasing and diffusivity
图5 转置运算的影响Fig.5 Influence of transpose operation
4.3 相关性分析

首先, 关注加密前后灰度直方图的变化, 对比效果如图6所示。评价加密算法的好坏一个重要的指标就是密文相关性大小, 对于图像而言, 有水平相关性, 垂直相关性, 和对角相关性。其次, 本文相关性指标如图7所示。如下公式中N为像素点数, E(x)为期望, D(x)为方差, rxy为相关系数, cov(x, y)为协方差。

E(x)=1Ni=1Nx(i)D(x)=1Ni=1N[x-E(x)]2rxy=cov(x, y)D(x)D(y)cov(x, y)=1Ni=1N[x(i)-E(x)][y(i)-E(y)]

图6 加密前后图像以及灰度直方图Fig.6 Original image and gray histogram before and after encryption

图7 相关性系列分析Fig.7 Correlation series analysis

表4 相关性分析 Table 4 Correlation series analysis
4.4 雪崩效应测试

所谓雪崩效应是明文的扩散特性的一种程度:即明文中的任意一比特位发生变化时, 经过n次迭代得到密文中接近有一半的比特位发生变化, 密文中变化的比特位数越接近50%, 说明雪崩效应越明显。雪崩效应实质上反应了一种不稳定的平衡状态, 是衡量加密算法的重要指标。本文提出的算法的雪崩效应走势, 如图8所示。

图8 雪崩效应走势图Fig.8 Avalanche effect chart

表5 雪崩效应 Table 5 Avalanche effect
5 结束语

本文从传统的冯诺依曼型邻居结构的细胞自动机出发, 在研究X型邻居结构及其变种结构时, 找到了一种提高密钥混淆性的偏X2型的CA结构; 为了降低细胞自动机的迭代次数, 同时不损失扩散性, 本文的CA图像迭代过程中加入了矩阵转置运算, 对每一次的迭代结果进行矩阵转置运算, 形成了一个CA结合图像转置的循环迭代过程, 这一改进使得该算法的明文扩散率提高了36.14%; 随后, 提出将密钥信息的一部分嵌入在主CA迭代的边界条件中, 综合前面偏X2型结构等多种因素的影响, 使得密钥混淆率高达98.32%, 该算法的密钥混淆性在同类算法中较为突出; 该算法采用300* 300的图像作密钥, 因此其密钥空间巨大, 高达 225× 2300× 300=290032, 可以有效的抵抗穷举攻击; 该算法的雪崩效应在85次迭代时产生, 这一指标不是十分理想, 还需要进一步的完善。

The authors have declared that no competing interests exist.

参考文献
[1] Zhang Xing, Zhang Hong, Xu Chun-gen. Reverse iterative image encryption scheme using 8-layer cellular automata[J]. KSII Transactions on Internet & Information Systems, 2016, 10(7): [本文引用:1]
[2] Souyah A, Faraoun K M. Fast and efficient rand omized encryption scheme for digital images based on Quadtree decomposition and reversible memory cellular automata[J]. Nonlinear Dynamics, 2015, 84(2): 715-732. [本文引用:1]
[3] 袁野, 陈炬桦. 一种基于二维变邻居混合可逆细胞自动机的加密算法[J]. 小型微型计算机系统, 2015, 36(11): 2594-2598.
Yuan Ye, Chen Ju-ye. An encryption algorithm based on two dimensional voriable neighborhood reversible celluor automata[J]. Small Microcompater System, 2015, 36(11): 2594-2598. [本文引用:1]
[4] Tralic D, Grgic S. Robust image encryption based on balanced cellular automaton and pixel separation[J]. Radio engineering, 2016, 25(3): 548-555. [本文引用:1]
[5] 宫姗. 一种基于混合细胞自动机的加密算法研究[D]. 长春: 东北师范大学物理学院, 2016.
Gong Shan. Study of an encryption algorithm based on hybrid cellular automata[D]. Changchun: College of Physics, Norteest Normal University, 2016. [本文引用:1]
[6] 吴颖芝, 郝立波, 陈炬桦. T型邻居细胞自动机的分组加密方法[J]. 通信学报, 2009, 30(f增刊2): 52-60.
Wu Ying-zhi, Hao Li-bo, Chen Ju-ye. Block encryption method for T-type neighbor cellulav automata[J]. Journal of Communications, 2009, 30(Sup. 2): 52-60. [本文引用:1]
[7] Chen T, Zhang M, Wu J, et al. Image encryption and compression based on kronecker compressed sensing and elementary cellular automata scrambling[J]. Optics & Laser Technology, 2016, 84: 118-133. [本文引用:1]
[8] Souyah A, Faraoun K M. An image encryption scheme combining chaos-memory cellular automata and weighted histogram[J]. Nonlinear Dynamics, 2016, 86(1): 1-15. [本文引用:1]
[9] Chai X, Gan Z, Chen Y, et al. A visually secure image encryption scheme based on compressive sensing[J]. Signal Processing, 2017, 134: 35-51. [本文引用:1]
[10] Macêdo H B, Oliveira G M B, Ribeiro C H C. A comparative study between the dynamic behaviours of stand ard cellular automata and network cellular automata applied to cryptography[J]. International Journal of Intelligent Systems, 2016, 31(2): 189-207. [本文引用:1]