基于改进Arnold 映射二次置乱的图像加密算法∗

2019-07-31 09:55胡春杰嵇海祥牛智星
计算机与数字工程 2019年7期
关键词:明文分块加密算法

胡春杰 嵇海祥 牛智星 阮 聪 陈 翠

(1.江苏南水科技有限公司 南京 210012)(2.水利部南京水利水文自动化研究所 南京 210012)(3.水利部水文水资源监控工程技术研究中心 南京 210012)

1 引言

随着互联网技术的不断发展及普及,信息安全与存储问题越来越突出。数字图像因其形象、直观与生动等特点,成为人们多媒体交流的重要传输介质之一。为了确保图像在传输过程中的安全,最有效的方法就是对数字图像进行加密,图像加密成为信息安全领域中一个重要的研究热点。数字图像可以看成二维的序列,其数据量比文本大的多。传统的分块加密方法,加密效率比较低,不再适用于图像加密[1~2]。而混沌系统对初值敏感性、伪随机性等特征,可以产生多变复杂的伪随机序列,使得其应用到图像加密中非常契合。近年来,众多学者将混沌加密思想引入到图像加密中,越来越受到欢迎[3~8]。

文献[9]提出了经典的基于“置乱—扩散”的图像加密结构,取得了不错的加密效果。文献[10]先利用三维的猫映射对图像的置乱进行置乱,再通过Logistic 映射对图像的像素值进行替代加密,算法实现简单、执行时间短等优点,但不能抵抗选择明文攻击。文献[11]利用一维Logistic混沌映射对图像像素位置进行置换,再用Logistic 混沌映射进行像素值置乱,达到图像双重加密的效果,但由于单一的混沌映射加密,其算法密钥空间小,不能有效抵御穷举攻击。文献[12]提出了一种高效率的分块图像置乱算法,提高了加密的效率,但是没有解决Arnold变换周期问题,当攻击者破译扩散加密过程后,对置乱加密的破译就简单多了。

综合上述,本文提出一种基于改进Arnold映射二次置乱的图像加密算法。首先结合Logistic映射和改进的Arnold 映射先进行图像全局置乱再进行图像分块置乱,达到了图像二次置乱的效果,再将置乱图像中各个像素和前面相邻的像素进行位异或运算、交叉换位等操作,最终得到加密图像。实验数据表明,该算法解决了Arnold变换置乱效果差和周期性的问题,并且可以有效地抵御各种统计攻击。

2 理论知识

2.1 Arnold映射的改进

Arnold 映射[13]是在遍历理论的研究中提出的一种非线性映射,其方程公式定义如下:

其中(x,y)为明文图像的像素点,(xʹ,yʹ)为置乱后图像的像素点。参数a,b 均为正整数,N 是图像矩阵的阶数。将式(1)写成方程组的表达式为

为了加强图像置乱的效果,对方程进行非线性化处理,改进的方程表达式为

2.2 参数的设置

传统的Arnold映射具有周期性,在图像位置置乱时参数没有发生改变,经过一定次迭代后会恢复出原始明文图像。对于大小不同的图像,其变换周期也是不一样的,如表1 所示。当攻击者破解图像像素值替换与改变过程后,置乱阶段的破解就比较容易了,因此传统的Arnold 映射安全性不高,易破译。

表1 不同阶数N下的变换周期

为了解决上述Arnold 映射置乱安全性差的问题,引入Logistic 映射生成控制参数a,b,这样产生的Arnold 置乱矩阵不再具有周期性。Logistic 映射方程表达式如式(4)所示:

其中当3.5699<μ ≤4 时系统处于混沌状态。Arnold映射控制参数的具体过程如下[14]:

1)将式(4)方程迭代 300 次,减少暂态效应带来的不好影响。

2)生成Logistic 序列仔通过式(5)产生Arnold映射控制参数。

3 算法设计

设原始明文图像A 大小为m*n,图像加密算法的流程图如图1所示。

图1 图像加密流程图

3.1 像素值位置置乱

3.1.1 全局置乱

1)通过产生控制参数生成Arnold 映射混沌置乱方程,并对原始明文图像A 进行一次像素置乱变换。

2)重复步骤1)操作n1轮,得到置乱图像B。

3.1.2 图像分块置乱

将置乱后的图像B分解成大小为n*n 图像块,每块中有m*m 个像素点,可以用矩阵形式表示如下:

其中Bij为n*n矩阵,i,j=1,2,…m,将每个分块图像看成一个整体,然后对其进行置乱,得到相应的混乱的图像块,达到了图像二次置乱的效果,重复n2 轮直至每块图像的置乱完成,最终得到置乱图像C。

3.2 图像像素值的改变

首先对置乱图像C 中每个像素和它前面相邻的像素进行按位异或运算,然后对其异或运算的结果进行像素值的交叉换位,得出最终加密图像。其主要步骤如下:

1)设置乱图像C的第一个像素的灰度值为C(1)与255 进行异或,得到 Cʹ(1),再对 Cʹ(1)进行交叉换位,得到Q(1)。具体的换位操作如图2所示。

图2 交叉换位示意图

图 2中的 bit1,bit2,…,bit8 分别表示像素点灰度值的第 1,2,…,8 位。

2)置乱图像C 的第二个像素的灰度值C(2)与Q(1)进行异或操作,得到 Cʹ(2),再对 Cʹ(1)进行交叉换位,得到Q(2)。

3)依次将图像的每个灰度值 C(i)与 Q(i-1)进行异或,得到 Cʹ(i);依据交叉换位规则得到Q(i)。最后将一维Q(i)换成图像D,即得到最终加密图像D。

3.3 解密算法

解密过程为加密过程的相反过程,只要得到正确的密钥条件下,按照加密过程的相反操作处理就可以恢复得到原始明文图像。

4 仿真结果

本文算法采用在Matlab7.0 平台下进行仿真实验,硬件坏境为系统Win7,处理器为i5,内存4G 的PC 机。设置Logistic 映射初始值 x0=0.35,μ =3.7;全局置乱次数n1=200,分块置乱次数n2=200,运行得到加密图像,图3(b)为全局置乱置乱图,图3(c)为先全局置乱再分块置乱后得到的置乱图像。

图3 图像加密与解密

5 算法分析

5.1 直方图分析

图4(a)为明文图像的灰度直方图,图4(b)为密文图像的灰度直方图。从图4 可以看出,原始明文图像的像素点分布相当不均匀,而密文图像的像素点分布均匀平坦,有效地掩盖了明文图像的直方灰度信息,可以抵御图像像素值的统计破译。

图4 加密前后的灰度直方图

5.2 密钥空间分析

在本文算法中,密钥 key=(x0,μ,n1,n2),若仿真实验时计算机的坏境可以达到每个参数精度都有10-16,那么密钥空间可达1064,以及加上置乱过程有两个外层循环,因此想用使用穷举攻击破译密文图像,成功的概率是非常渺小的。

5.3 信息熵

信息熵可以衡量数字图像中所包含信息的不确定性,图像越是混乱,灰度值分布越均匀,其计算公式为

其中P(mi)是信源取第i 个符号mi的概率,由文献[14]可知,一个理想的随机图像信息熵最大值为8。通过式(6)计算得到本文加密后图像的信息熵为7.9900,与理论值8 非常接近,可以得出密文图像灰度分布是均匀的,能够有效地抵御熵攻击。

5.4 相邻像素点的相关性

一般情况下,一幅有实际意义的明文图像包含了大量的冗余信息,其相邻像素间相关性比较高。为了分析明文图像和加密图像的相关性,使用式(7)计算相关性:

式中n是像素点的个数;E(x)、E(y)分别是x、y的期望,cov(x,y)是 x,y 的协方差,r 是相邻像素相关系数,现分别从在明文图像和密文图像中垂直、水平、对角线方向上随便选取2000 对相邻的像素点,图5~图7 分别是明文原始图像和密文图像在三个方向上的像素的分布情况。

图5 垂直方向的相关性

由表2 可知,密文图像的相邻像素点相关性非常小,相关系数十分趋近于0。说明本算法具有良好的扩散性能。与其他加密算法相比较[5~6,8],本文加密算法的密文图像的r 系数较小,破坏相关性更好。

图6 水平方向的相关性

图7 对角方向的相关性

表2 相邻像素点的相关系数

5.5 差分攻击分析

为了测试一个像素值的变化对算法整体加密结果的影响,采用两种常见的措施[16]:像素变化率(NPCR)和统一平均变化程度(UACI)。NPCR 表示原始图像一个像素发生改变时,该密文图像的变化率。UACI用来测量原始图像和密文图像之间的平均变化程度。

6 结语

本文提出的是一种基于改进Arnold 映射二次置乱的图像加密算法,在置乱阶段利用改进Arnold映射进行图像置乱,不仅提高了图像置乱效果,而且引入了Logistic 映射产生控制参数,很好地解决了Arnold 映射具有周期性带来的安全性差的问题。全局置乱后再进行分块置乱,从而实现了对图像二次置乱,充分地削弱了图像的相关性,进一步提高图像的置乱度和置乱性能;最后再进行相邻像素间按位异或、交叉换位操作最终得到加密图像。通过仿真表明,该算法置乱效果好,安全性较好,非常适合图像的加密传输,具有良好的实用价值。

猜你喜欢
明文分块加密算法
面向量化分块压缩感知的区域层次化预测编码
钢结构工程分块滑移安装施工方法探讨
加密文档排序中保序加密算法的最优化选取
一种面向不等尺寸分块海量数据集的并行体绘制算法
分块矩阵初等变换的妙用
基于整数矩阵乘法的图像加密算法
奇怪的处罚
教育云平台的敏感信息保护技术研究
奇怪的处罚