宦立鑫
(安徽理工大学 计算机科学与工程学院,安徽 淮南 232001)
0 引 言随着网络技术及互联网的蓬勃发展,数字图像作为一种可视化的交流方式在网络中的传输越来越频繁,这些图像经常不经意地记录着人们的日常生活,可能会导致敏感信息的泄露,图像加密可以有效地保护图像隐么内容的安全。传统的加密技术(如AES、DES)是针对文本信息加密设计的,在应用于图像加密时会由于图像信息的高冗余度以及相邻像素的强相关性而导致加密效率较低,因此不适用于图像加密;混沌对其初始值的敏感性、伪随机性以及混沌序列的遍历性符合图像加密的基本要求,因此混沌图像加密得到越来越广泛的关注。混沌系统通过产生伪随机序列来驱动置乱、扩散操作。置乱操作会改变像素的位置,使图像变得毫无意义;扩散操作使得像素之间相互作用,并尽可能地将一个像素的信息传播到所有像素。
现有的混沌图像加密算法大多是对完整的图像数据进行加密,然而在一幅图像中可能只有一部分数据是重要的,对于不重要的数据往往没有加密的必要,对整体图像进行加密不仅复杂度高,效率低,而且不能满足快速增长的图像数据要求。针对上述问题,本文提出一种选择性混沌图像加密算法,使用显著性目标检测算法识别出图像中的重要区域后仅对重要区域进行加密,这不仅保证了图像数据的安全性,而且提高了图像加密的效率。
1 重要区域分割选择性混沌图像加密算法包括两部分,即明文图像重要区域的选择以及重要区域的加密。如何选择明文图像的重要区域是图像加密算法应用的一个关键问题,这决定了图像加密算法的加密对象是否正确,如果加密对象不正确则失去了加密的意义。显著性目标检测可以模拟人的视觉感知定位图像中最引人注目即视觉上最显著的目标区域,并将其从背景中分割出来,这也是计算机视觉任务中常用的预处理步骤。
本文使用显著性目标检测对图像加密系统中的输入图像Lena、Cameraman进行预处理,识别出输入图像的重要区域,输出结果如图1所示,输出的显著图都准确地识别出输入图像的重要区域,并将其与背景进行了分割,这保证了图像加密算法的加密对象是准确的,使我们能够有效地对图像重要区域进行加密,为加密图像的安全性提供了保障。
图1 显著性目标检测输出结果
2 混沌图像加密算法2.1 Logistic映射Logistic映射是图像加密算法中常用的混沌映射之一,其数学定义为:
其中,∈[0,4]为该混沌映射的控制参数,x为混沌输出值,其取值范围为[0,1]。图2显示了Logistic映射的分岔图与Lyapunov指数,分岔图直观地描述了随着控制参数的变化,动力系统轨迹上点的分布变化情况,Lyapunov指数可以检验动力系统对初始条件微小变化的敏感性。由图2可知,3.569 945 67<≤4时,Logistic映射处于混沌状态,控制参数接近4时,其混沌性能最佳。
图2 Logistic映射混沌性能分析
2.2 密钥生成选择明文攻击通过观察明文图像的微小变化对密文的影响来破解加密算法,当一个图像加密算法对所有的明文图像都采用相同的密钥时,该图像加密算法将使用相同的密钥序列对这些图像进行加密,这导致加密后的图像很容易遭受选择明文攻击。一个安全的图像加密算法应该使用与明文图像相关的密钥,对每一幅明文图像都应该生成独属于这幅图像的密钥。本文图像加密算法的密钥包括Logistic映射的控制参数,初始值x以及预迭代次数NP。密钥生成方式如式(2)所示,其中sum表示对明文图像的所有像素值进行求和,由明文图像的所有像素值按位异或得到。由式(2)可知,本文图像加密算法的密钥与明文图像的像素值密切相关,即使明文图像的像素值发生细微的改变,图像加密算法的密钥也将完全不同,因此本文图像加密算法能够有效地抵抗选择明文攻击。
在通过显著性目标检测找出明文图像的重要区域后,使用混沌图像加密算法对该重要区域进行加密。具体加密步骤为:
步骤1:输入明文图像P,其中和分别为图像的宽度和高度。
步骤2:使用显著性目标检测识别出明文图像的重要区域,并将其从明文图像中分割出来,输出如图1所示的显著图。
步骤3:记录显著图中像素值大于250像素点的坐标,并记录这些坐标点的个数。明文图像中的这些坐标点即为图像加密算法需要加密的对象,将这些坐标点的横坐标存储于数组Rindex中,纵坐标存储于数组Cindex中。
步骤4:根据式(2)计算出加密过程所需的密钥,并将密钥输入Logistic混沌映射中。
步骤5:迭代Logistic映射+次,舍弃前次的迭代值以消除暂态效应带来的不良影响,得到长度为2的混沌序列={,,…,x}。取前个迭代值记为序列,后个迭代值记为。
步骤6:将混沌序列按从小到大的顺序排序得到′,并使用数组记录′中的元素在原序列中的位置。
步骤7:使用式(3)将混沌序列中的值转化为[0,255]之间的整数。
步骤8:使用以下公式对明文图像的重要区域进行置乱操作得到中间密文′。
步骤9:使用以下公式对中间密文′进行扩散操作得到最终密文。
当=1时
当1<≤时
解密过程为加密过程的逆过程,按相反的顺序执行各加密步骤即可将密文还原为明文图像。
3 实验结果与性能分析本文采用经典测试图像Lena、Cameraman作为加密对象,图像分辨率为512×512,加密效果如图3所示,显然这两幅图像中的人物为图像的重要区域,本文图像加密算法准确地识别出了这两幅图像中的重要区域,并对其进行了加密,经过加密处理后,明文图像中的重要区域信息得到了隐藏。
图3 加密效果
3.1 加密时间分析为了验证本文选择性图像加密算法在加密效率上的优势,使用同样的置乱、扩散算法分别对明文图像进行选择性加密与整体加密,对比两种加密方式的加密时间,对比结果如表1所示,对Lena和Cameraman图像进行整体加密所需的时间为1.5秒左右,而对这两副图像进行选择性加密只需不到1秒的时间即可完成对图像中重要区域的加密,与对整体图像进行加密相比节省了很多时间,提高了图像加密的效率。
表1 加密时间对比
3.2 加密区域直方图分析图像直方图表示图像中像素强度值的分布。一个安全的图像加密算法可以使加密后的图像具有均匀的直方图,以抵抗统计攻击。明文图像的重要区域加密前与加密后的直方图如图4所示,加密前的明文图像重要区域像素值分布十分不均匀,具有明显的统计特性,经过加密处理后,其灰度值在区间[0,255]上呈现均匀分布,这表明本文选择性图像加密算法打破了加密区域的统计特性,能够有效地抵抗统计攻击。
图4 直方图分析
3.3 相关性分析原始图像的相邻像素在水平、垂直和对角线方向上具有很高的相关性。一个理想的加密算法应该使加密图像中相邻像素的相关系数足够低,为了分析和比较明文图像和加密图像重要区域中相邻像素的相关性,从明文图像和加密图像的重要区域中随机选择每个方向上的1 000对相邻像素,使用式(7)计算他们的相关系数γ,其中x和y为图像重要区域中的两个相邻像素。计算结果如表2所示,明文图像重要区域中相邻像素的相关系数均接近1,而加密图像重要区域中相邻像素的相关系数均接近0,这表明本文图像加密算法打破了明文图像重要区域中相邻像素的强相关性。
表2 相邻像素相关性分析
密钥敏感度是指使用差别很小的两个密钥对同一幅图像进行加密,然后通过分析得到的两个密文图像之间的差异来确定算法的密钥敏感度。差异越大,表明密钥的敏感度越高。将原密钥的值更改10,分别使用原密钥和更改后的密钥对明文图像进行加密,计算两幅密文图像像素值的差异,对图像加密算法的密钥敏感度进行分析,如图5所示,由图5(c)可知,由于并没有对非重要区域进行加密,所以该区域不受密钥改变的影响,两幅密文图像非重要区域像素值的差异为0;对于重要区域,在对密钥进行改变后,两幅密文图像重要区域的像素值发生了很大的改变,这表明本文加密算法具有很高的密钥敏感度。
图5 密钥敏感性分析
3.5 加密区域信息熵分析信息熵是衡量信息随机性的重要指标,其计算方式为:
其中,表示图像,x表示图像中的像素,(x)表示像素x出现的概率。八位灰度图像的最大信息熵为8,本文测试图像的加密区域信息熵如表3所示,未进行加密时,测试图像重要区域的信息熵较低,随机性较弱;经过加密处理后,明文图像重要区域的信息熵都接近8,具有很强的随机性。
表3 加密区域信息熵分析
4 结 论本文提出了一种选择性混沌图像加密算法,使用显著性目标检测识别出明文图像的重要区域后仅对图像的重要区域进行加密,以提高图像加密的效率。在密钥生成阶段根据明文图像的像素值生成加密密钥以抵抗选择明文攻击,在扩散阶段引入前一密文与中间密文,实现密文反馈机制提高图像加密算法的安全性。通过加密时间分析、直方图分析、相关性分析、密钥敏感性分析以及信息熵分析,验证了本文图像加密算法的可靠性与安全性,在图像保密通信领域中具有广阔的应用前景。