首页 > 范文大全 > 正文

自适应混沌的并行双向图像加密方案

开篇:润墨网以专业的文秘视角,为您筛选了一篇自适应混沌的并行双向图像加密方案范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要: 为了提高图像加密算法的运行速度,同时兼顾算法的安全性,提出了一种自适应混沌并行双向图像加密算法。算法对图像进行分组并行加密,用分组内的元素对两个一维混沌映射的参数及初始值进行扰动,并将生成的两个混沌序列相异或得到加密序列。采用正反双向加密,在正向加密后使用分组最后一个元素实现分组间扩散,最后通过反向加密将最后一个元素的变化扩散至整个分组。实验结果表明,算法执行速度快,且安全性高。

关键词: 并行加密; 自适应混沌; 双向加密; 图像加密算法

中图分类号: TN919⁃34; TP309.7文献标识码: A文章编号: 1004⁃373X(2014)08⁃0119⁃04

Parallel bidirectional image encryption algorithm based on self⁃adaptive chaos

LIU Zhu⁃hua

(College of Physics and Communication Electronics, Jiangxi Normal University, Nanchang 330022, China)

Abstract: In order to improve the running speed of image encryption algorithm and consider the security of the algorithm, a parallel bidirectional image encryption algorithm based on self⁃adaptive chaos is proposed. The grouping and parallel encryption for images is executed by this algorithm. Two one⁃dimensional chaotic maping parameters and original value are disturbed by elements in image groups. The encryption sequence is generated through two chaotic sequences’ XOR operation. The bidirectional encryption is adopted in the algorithm. Diffusion between groups is implemented by using the last element of every group after forward encryption. The change of the last element is spread to the whole group through reverse encryption. The experimental results show that the algorithm encrypts fast, and has high safety.

Keywords: parallel encryption; self⁃adaptive chaos;bidirectional encryption; image encryption algorithm

0引言

混沌系统对初始条件和参数非常敏感,同时具有类噪声特性,因此被广泛应用到保密通信系统设计中。许多学者已提出众多基于混沌的图像加密算法,有的使用超混沌系统[1⁃3],有的使用多混沌及复合混沌[4⁃8],有的则使用分段线性混沌[9⁃10]等。无论采用什么样的设计方法,安全性和运行速度是衡量算法性能好坏的两个重要指标。

对于需要大量数据运算的图像加密算法,并行计算可成倍地提高运算速度。并行加密模型是指多个PE(Processing Elements)同时加密一幅图像,并且每个PE都有独立的内存和计算资源,并通过数字通信实现PE之间的数据交换。一个好的图像并行加密算法应该满足良好的扩散效应、保证PE的计算负载平衡以及实现临界区域管理[11]。

Zhou等人提出了一种基于离散混沌映射的并行图像加密算法[11],对图像进行分组,采用AES算法对每个分组加密,然后分组之间进行像素重排,再对每个分组重复加密。算法使用K(Kolmogorov flow)变换进行分组间的像素重排,需要多次乘法运算,耗时较多。刘君等人针对Zhou的算法提出了改进措施[12],使用模256加法替代了分组Mixing操作中的异或运算,改善了扩散性能,像素重排采用了类似魔方旋转的操作,减小了计算开销,因此运行速度有所提高。Miraei等人提出了一种基于超混沌的并行子图加密算法[13],将图像分成上下左右四个子图操作,由于子图之间像素相互独立,因此不能获得良好的扩散效应。孙劲光等人提出了一种改进的图像分块加密算法[14],将矩形图像分成若干正方形图像,而每个正方形图像又分成上下左右四个子块,子块之间按水平、垂直和对角的方向进行扩散替代,加密过程中子块之间存在大量像素信息交换,不适合并行计算实现。

针对上述并行加密算法存在的问题,提出了基于两个一维混沌映射的并行双向加密算法。实验结果表明算法运行速度快,且安全性高。

1 算法设计

1.1 图像分组

大小为[m×n]的图像[I],假定由[r]个PE并行加密,且[m×n]能被[r]整除,令[l=(m×n)r]。将图像按从上至下、从左至右的顺序转换成序列,再按长度[l]划分成[r]组,用[Pi]表示,每组中的像素用[pi,j]表示,其中[i∈[1,r]],[j∈[1,l]]。

1.2 分组内正向加密

每个分组都需要一个长度为[l]的加密序列[Bi](用[bi,j]表示其中一个元素)。在生成[Bi]时,使用tent映射:

[xn+1=a-(1+a)⋅abs(xn)],[a∈(0,1),x0∈(0,1)] (1)

式中:[abs]为取绝对值,舍去前[k0]次迭代结果,生成长度为[l]的混沌序列,并取出小数点后12至14位对256取模,得序列[Xi]。以同样的方法,使用kent映射:

[xn+1=xna, 0

式中:[a∈(0,0.5),x0∈(0,1)]。

生成序列[Yi],则加密序列[Bi=XiYi]。为进一步提高算法安全性,在生成[Xi]和[Yi]时,用扰动因子[t0]、[t1],按式(3),式(4)分别对tent映射、kent映射的参数及初始值进行扰动,

[a=(k1+(0.99+0.01×t0255))2x0=(k2+t1255)2](3)

[a=(k3+(0.4+0.1×t0/255))2x0=(k4+t1255)2](4)

式中:[k1∈(0.99,1),k2∈(0,1),k3∈(0.4,0.5),k4∈(0,1),][k1]~[k4]为加密密钥,扰动因子[t0]由[pi,1]代入,[t1]由[(2×pi,1)mod256]代入。扰动使得[Bi]自适应于分组内容的变化而变化。

用[Ci]表示每个分组正向加密结果,[ci,j]为每个像素对应的密文。按式(5)实现分组内像素的正向替代与扩散。

[ci,1=pi,1,j=1ci,j=((pi,jbi,j-1)+(ci,j-1bi,j))mod256,j=2,3,…,l] (5)

由于[pi,1]用作混沌映射的扰动,因此正向加密从第二个像素开始。

1.3 分组间扩散

正向加密后,对每个分组最后一个密文[ci,l]按式(6)进行处理,用[ci,l′]表示处理后的结果。

[c1,l′=(i=1rci,l)mod256,i=1ci,l′=(ci,l+i=1rci,l)mod256, i=2,3,…,r] (6)

原图像任意像素值的变化,经正向加密后会扩散至对应分组的最后一个密文。而经过式(6)处理,这种变化会再次扩散至所有分组的最后一个密文。

1.4 分组内反向加密

分组内反向加密的方法与正向加密相同。不同之处在于处理密文像素的顺序,是从分组最后一个密文像素开始,以相反的方向处理至第一个密文像素。用[Ci′]表示每个分组反向加密结果,[ci,j′]表示反向加密后的每个密文,可按式(7) 实现分组内的反向替代与扩散,[当j=l-1,l-2,…,1时:]

[ci,j′=((ci,jbi,j+1)+(ci,j+1bi,j))mod256] (7)

注意,分组内第[l]个密文的处理结果在分组间扩散时已按式(6)得到。因此,反向加密实际是从倒数第二个密文像素开始。反向加密时加密序列[Bi]可按正向加密时相同的方法得到,但扰动因子[t0]由[ci,l]代入,[t1]由[(2×ci,l)mod256]代入。经反向加密,分组内最后一个密文的变化将扩散至分组内所有密文。

将所有的密文分组[C′i]按顺序排列,并转换为[m×n]的矩阵,可得到最终的密文图像。

从上述算法理论分析可知,经过正反两轮加密,任意一个像素的微小变化都会扩散至整个密文,满足并行算法扩散要求;另外,每个PE的加密对象都是大小相同的图像分组,因此保证了各个PE的计算负载平衡;最后,每个PE负责一个分组,不存在临界区域问题,因此不需要进行临界区域管理。本文算法能够满足图像并行加密算法的各项要求。

2 实验结果

实验测试采用Intel酷睿i5双核2.4 GHz的PC机模拟并行运行环境,在Windows7操作系统下使用Matlab 7.6编写测试程序。明文图像使用[512×512]的Man灰度图。加密算法密钥取[k0=100,][k1=0.992,][k2=0.002],[k3=0.422],[k4=0.012]。实验的目的是检测算法的执行速度与安全性能。

2.1 执行速度

本文算法需要正、反两轮加密。因此,为方便比较,将文献[11]和文献[12]算法的加密轮次也设定为两轮。同时,分组数(即PE的个数)设定为16。所有算法都重复运行50次,求得加密算法平均执行时间如表1所示。

表1加密算法执行时间比较

从表1可以看出本文算法的加密速度要明显优于文献[11]和文献[12]算法。主要原因是文献[11]采用K(Kolmogorov Flow)变换进行分组间的像素重排,需要多次乘法运算,耗时较多;文献[12]改进了像素重排方式,采用了类似魔方旋转的操作,减小了计算开销,因此运行速度得到提高,但分组之间数据读写量还是相对较大,除分组第一个元素外,其他所有元素的位置都要重排;而本文算法在进行分组间扩散时,只对分组最后一个元素进行操作,分组间数据读写量很少,因此,算法的执行速度得到明显提高。

2.2 扩散性能

攻击者可以通过对明文图像微小的改动来观察密文图像的变化,从中找到明、密文之间的某种关联,从而破译算法。如果明文微小的改动会导致密文非常大的变化(即算法的扩散能力很强),那么这种攻击就非常无力。可用像素变化率[NPCR]和像素平均强度变化率[UACI]来衡量算法的扩散性能。设[C1]为原明文加密结果,[C2]为原明文某一像素值加[1]后再加密的结果,则:

[NPCR=(m×n)-1⋅i,jD(i,j)UACI=(m×n)-1⋅i,jC1(i,j)-C2(i,j)255]

式中,当[C1(i,j)≠C2(i,j)]时[D(i,j)=1],否则[D(i,j)=0]。将明文图像最后一个像素值加[1],表2列出了各轮加密后密文的像素变化率[NPCR]和像素平均强度变化率[UACI]。两轮之后,[NPCR]一直稳定在[0.996],[UACI]稳定在[0.333]以上,说明算法具有良好的扩散性能。第1轮加密时,[NPCR]和[UACI]都近似为[0],原因是最后一个像素的变化不会影响第1轮正向加密时其他像素的加密结果;但经过分组间扩散之后,它的变化会扩散至每个分组的最后一个元素,再经第2轮反向加密扩散至整个密文。

2.3 抗统计攻击性能分析

对Man图像进行正、反2轮加密,效果如图1所示,密文与明文图像的视觉效果完全不同。可用信息熵来衡量图像中灰度值的分布情况,其定义为:[H=-ip(vi)⋅log2p(vi)]。其中,[vi]表示[L]级灰度图像的第[i]个灰度值,[p(vi)]表示图像中具有第[i]个灰度值的像素所占的比例。图像灰度分布越均匀,则信息熵越大,反之信息熵越小。对于[256]级的灰度图,信息熵最大值为[8]。原Man图像信息熵为[7.1926]。以上述初始密钥为起始值,按[0.000001]步长,连续微调密钥[k3]100次,计算密文图像信息熵均值为[7.9993],非常接近最大值[8],调整其他密钥参数可以得到类似的结果。从信息熵分析可知,本文算法的密文图像灰度分布十分均匀,能有效抵御统计攻击。

表2明文最后一个像素加1后密文图像NPCR和UACI结果

图1 Man图像加密效果

2.4 相关性分析

图像中水平、垂直及对角相邻像素的相关系数[rxy]可按:[rxy=Covx,yDx⋅Dy]计算得到。其中:

[Dx=N-1⋅i=1Nxi-Ex2,Covx,y=N-1⋅i=1Nxi-Exyi-EyEx=N-1⋅i=1Nxi]

式中[xi],[yi]代表相邻的像素值;[rxy]越接近于[1],则相邻像素相关性越高,越接近于[0],相关性越低。在初始密钥基础上,按[0.000001]步长连续微调密钥[k1][100]次,计算密文图像三个方向相关系数的均值,同时计算原图像三个方向的相关系数,如表3所示。

表3相邻像素相关系数

2.5 密钥空间分析

本文算法使用了两个混沌映射,共有[k1]~[k4]四个密钥,若每个密钥使用[16]位十进制实数表示(包括[1]位整数和[15]位小数),则密钥空间为[1016×4=1064],若考虑混沌映射迭代舍去数[k0]取[3]位十进制整数,则密钥空间可达[1067]。假设攻击者以每秒搜索[1016]([1]万万亿)个密钥的速度进行穷举攻击,需要[3.1709×1043]年以上才能搜索完所有密钥。因此,算法的密钥空间巨大,能有效抵御穷举攻击。

2.6 密钥敏感性分析

加密算法应该对密钥的变化非常敏感,两个具有微小差异的密钥,应该产生完全不同的密文结果。表4列出了微调密钥[k1]~[k4]后(加上[10-15]),密文之间的[NPCR]与[UACI]。结果表明密钥的微小变化会使密文图像截然不同,算法对密钥的微小变化非常敏感。

表4密钥敏感性

3 结语

本文给出了一种自适应混沌的并行双向图像加密算法,为了提高算法的执行速度,同时兼顾算法的安全性,提出:

(1) 对图像进行分组并行加密,使用分组的最后一个元素实现分组间的扩散,有效减少分组间的数据读写量,提高加密算法的执行速度;

(2) 每个分组进行正反两轮加密,通过反向加密将最后一个元素的变化扩散至分组内所有元素;

(3) 使用两个一维混沌映射生成混沌序列,并相互异或得到每个分组的加密序列,使用一维混沌能有效降低计算复杂度,而异或操作能有效改善加密序列的混沌特性;

(4) 生成加密序列时,用分组中的元素对混沌映射的参数及初始值进行扰动,使加密序列自适应于分组内容的变化而变化,能有效地抵御选择明文攻击,提高算法安全性。

与文献[11]和文献[12]算法比较,本文算法加密速度更快。另外,通过实验结果还表明算法密钥空间巨大,密钥敏感性强,两轮加密就能有效地降低密文相邻像素的相关性,且密文分布非常均匀,能有效抵御统计攻击;而且,算法扩散能力强,扩散效果后,能有效抵御差分攻击。

参考文献

[1] 唐宋,徐桂兰,李清都.基于高维超混沌系统和矩阵张量积的图像分组加密新算法[J].计算机应用,2012,32(8):2262⁃2264.

[2] PENG Jun, JIN Shang⁃zhu, LIAO Xiao⁃feng. A novel digital image encryption algorithm based on hyperchaos by controlling lorenz system [C]// Proceedings of the Fifth International Conference on Natural Computation, 2009:395⁃399.

[3] 刘云,郑永爱.基于混沌系统的彩色图像加密新方案[J].计算机工程与应用,2011,47(3):90⁃93.

[4] 卢辉斌,张鹏,国宪鹏,等.一种新的基于双混沌系统的图像加密方案[J].计算机工程与应用,2012,48(2):90⁃92.

[5] 段雪峰,关健,丁勇,等.基于多组混沌序列的彩色数字图像置乱算法[J].计算机工程,2012,38(9):114⁃116.

[6]李晓博,周诠.基于复合混沌的遥感影像加密算法[J].计算机工程与设计,2012,33(11):4086⁃4090.

[7]褚影,王小曼,刘鹏,等.基于时钟变换的复合混沌图像加密研究[J].吉林大学学报:信息科学版,2012,30(3):291⁃296.

[8]文昌辞,王沁,黄付敏,等.基于仿射和复合混沌的图像自适应加密算法[J].通信学报,2012,33(11):119⁃127.

[9] LIU Hong⁃jun, WANG Xing⁃yuan. Color image encryption based on one⁃time keys and robust c⁃haotic maps [J]. Computers and Mathematics with Applications, 2010, 59(10): 3320⁃3327.

[10] ZHANG Xiao⁃qiang, ZHU Gui⁃liang, MA Shi⁃long. Remote⁃sensing image encryption in hybrid domains [J]. Optics Communications, 2012, 286(7): 1736⁃1743.

[11] ZHOU Qing, WONG Kwo⁃kwo, LIAO Xiao⁃feng, et al. Parallel image encryption algorithm based on discretized chaotic map [J]. Chaos Soliton & Fractals, 2008, 29(11): 1081⁃1092.

[12] 刘君,周庆,胡月.一种新的图像加密并行算法[J].计算机工程,2010,36(11):20⁃24.

[13] MIRZAEI Omid, YAGHOOBI Mahdi, IRANI Hassan. A new image encryption method: parallel sub⁃image encryption with hyper chaos [J]. Nonlinear Dynamics, 2012, 67(1): 557⁃566.

[14] 孙劲光,汪洁,姜文涛,等.改进的分块算法在矩形图像加密中的应用[J].计算机应用研究,2013,30(1):282⁃284.