顼 聪, 刘朝霞, 陶永鹏
(大连外国语大学 软件学院,辽宁 大连 116044)
可逆数据隐藏(reversible data hiding,RDH)是将机密数据嵌入到载体信息中,接收者可以提取嵌入的数据并恢复载体信息的技术,在军事、医疗和法律等领域都有广泛的应用。目前的可逆信息隐藏方法主要有无损压缩[1-2]、图像直方图平移[3-4]和差值扩展[5-7]3类。近年来,为了更好地提高图像传输的安全性和信息传输的效率,已有研究者将图像加密和可逆信息隐藏两大技术相结合用于图像网络传输。文献[8]提出一种密文域可逆信息隐藏算法,通过加密图像分块,并将其中1/2像素的3 个最低有效位(least significant bit,LSB)反转来嵌入信息,并且利用差值函数实现信息提取和图像恢复;文献[9]提出的算法采用块级预测器生成加密图像并预测误差序列,根据预测的误差序列,使用了差异扩展方法嵌入机密数据;文献[10]提出了一种通过冗余空间传输的信息隐藏算法,利用原始图像的像素相关性,将原始图像的冗余空间传输到加密图像,从而提高加密图像中的信息嵌入量,但其直接解密的图像质量不佳;文献[11]提出一种基于差值直方图平移的密文域可逆信息隐藏算法,选择差值直方图平移作为切入点,采用分组方法获取差值进行信息嵌入,提高了解密图像质量,但是其特定图像分组方法和边缘嵌入模式影响了直方图的分布形态,限制了信息的嵌入量;文献[12]提出了一种异或置乱框架下的邻域预测可逆信息隐藏算法,该算法通过异或置乱的方式提高了加密图像的安全性,并在图像解密阶段,通过邻域预测的方法预测携密像素,有效提高了直接解密图像质量,但在图像恢复阶段,采用5个邻域模板计算像素差值的方法并不能完全恢复原始图像。
针对上述问题,本文利用预测差值扩展技术计算复杂度低并且具有较大嵌入容量的优点,提出在加密图像中基于多分类预测误差扩展的信息隐藏方法。与传统的加密图像信息隐藏方法相比,创新点在于根据加密图像像素位置的不同,将中值边缘检测器(median edge detector,MED)、菱形检测器和均值检测器等多种预测方法组合,进行像素预测,计算差值,获得分布更加尖锐的差值直方图,从而提高隐藏数据的嵌入量。设计特定的平滑函数区分加密图像的可嵌入区和非可嵌入区,对数据嵌入过程中产生的溢出及附属参数信息自嵌入处理,提高直接解密后图像的视觉效果。最后给出算法的实现描述,即信息的嵌入和根据密钥实现信息的抽取和图像的无损恢复。
算法包括3个阶段,即图像加密阶段、机密数据嵌入阶段以及数据提取和图像恢复阶段。算法框架如图1所示。将原始图像I分成不重叠的块,块内的像素使用加密密钥Key1异或加密,然后使用加密密钥Key2进行块的位置置换,生成加密图像Ie。数据隐藏者对加密的图像Ie使用多分类像素预测误差扩展方法生成相应的差值直方图,获取更多的峰值点,嵌入使用数据隐藏密钥Kh加密的机密数据,生成标记的加密图像Iew。接收方使用数据隐藏密钥Kh可以从标记的加密图像Iew中提取嵌入的机密数据;仅使用加密密钥可以直接得到在视觉上类似于I的解密图像Iw;同时使用加密和隐藏密钥时,接收方可以成功提取嵌入数据,并恢复原始图像I。
图1 算法框架
算法在图像加密阶段分为按位异或和图像子块置换2个步骤,以确保图像传输的安全性。
首先将大小为M×N的图像I划分为U个非重叠块,U=M×N/32。 基于简化的考虑,假设文中的M和N都可以被3整除。计算公式为:
(1)
(2)
计算加密后的像素值,即
(3)
然后根据加密密钥Key2置换块的位置,置换后块内像素关联性保持不变,得到加密图像Ie。
基于多分类预测误差扩展的信息隐藏方法采用多种预测器对图像子块内的像素进行预测,根据预测的像素值建立起预测误差扩展直方图,在峰值点进行机密信息的迭代嵌入,并对数据嵌入过程中产生的附属信息做自嵌入处理。
根据加密图像块中像素的不同位置,将像素分成3个位置集合,并采用不同的方式进行像素值预测,使生成的预测误差最小。一个加密的图像块中各像素的位置关系如图2所示。
图2 图像块内像素位置关系
具体的图像块内像素的预测方法如下:对于图像块4个边角位置像素,如图2中x1、x3、x7、x9,其预测值采用文献[13]提出的MED方法预测。计算公式为:
(4)
其中,xr、xc和xd表示与目标像素px在同行、同列和对角线方向的相邻像素。对于图像块4个边中间位置像素x2、x4、x6、x8,预测值由其相邻的垂直或水平方向2个像素数据的平均值来计算;对于图像块中心位置像素x5,其预测值采用文献[14]提出的菱形预测因子预测,即
(5)
其中:xru、xrd为目标像素px的上侧和下侧元素;xcl、xcr为目标像素px的左侧和右侧元素。通过上述过程,计算出像素块内像素的预测值。
(6)
其中,hEk(e)为序列Ek中的预测差值等于e时的次数。预测误差扩展嵌入机密数据的公式为:
(7)
(8)
恢复预测差值的计算公式为:
(9)
针对机密数据嵌入过程中产生的溢出及参数信息,本文采用了自适应性的自嵌方式进行处理,如图3所示。
图3 秘密数据的自嵌入过程
加密图像首先被分离成IA和IB2个子图,其中IA包含前2行,剩余行在IB中。经过数据隐藏密钥加密的机密数据和子图像IA的最低有效位(least significant bits,LSBS)串联在一起形成有效负载M,将嵌入到子图像IB的平滑区域中。
IB子图平滑和复杂区域块如下划分:
(10)
当Cb 输入:大小为M×N原始图像I,机密信息m。 输出: 嵌入机密信息的标记图像Iew。 (1) 将I分离成IA和IB2个子图,其中IA包含前2行,剩余行在IB,对IA子图采用流加密,并记录IA子图的LSBS。 (2) 将IB子图划分成不重叠3×3块,利用文中第2节的加密方法对IB子图加密,并对IB的每个子块进行平滑区域块和复杂区域块的划分。 (3) 对所有平滑区域的块按照3.1节进行差值预测,对秘密信息用隐藏密钥加密后按照3.2节进行信息嵌入。 (4) 对于IB子图嵌入信息后产生的溢出及参数信息,按照3.3节以自嵌入的方式嵌入到IA子图的LSBS中。 (5) 将嵌入信息后的IA子图和IB子图连接生成标记的加密图像Iew。 输入:大小为M×N标记的加密图像Iew。 输出:原始图像图像I,机密信息m。 (1) 将Iew分离成IA和IB2个子图,其中IA子图包含前2行,剩余在IB子图,读取IA子图的LSBS获取辅助的附属信息。 (2) 对IB子图划分成不重叠3×3块,根据(1)获取的附属信息,进行块平滑区域和复杂区域的块划分。 (3) 按照3.2节对IB子图平滑区域进行基于预测差值扩展方法的信息提取和图像恢复。 (4) 从步骤(3)获取到的信息中分离出机密信息和IA图的LSBS位像素值。 (5) 利用隐藏密钥对提取的机密信息解密获取m,同时置回IA图的最低有效位(LSBS)。 (6) 用加密密钥对IA和IB子图进行解密,连接后恢复原始图像I。 使用Lena图像演示本文的算法,结果如图4所示。图4中:图4a所示为原始图像;图4b所示为嵌入率为r=0.5 bit/像素的标记加密图像;图4c所示为标记的解密图像,峰值信噪比(peak signal to moise ratio,PSNR)为46.27 dB;图4d所示为原始图像,PSNR无穷大。 由图4可以看出,即使嵌入了0.5 bit/像素的机密数据,图4c具有较高的视觉质量。并且可以无损恢复原始图像(图4d)。 图4 算法的示例 本文算法使用了平滑函数进行嵌入分区,使得复杂区域不用于信息的嵌入,对图像改动较少,同时多分类预测差值扩展方法能够保证可嵌区域具有很高的嵌入容量,因此图像在获得较高信息嵌入率下仍然有很好的直接解密效果,并且通过密钥能够无损地恢复原始图像。 在自适应性嵌入时,Tp决定了平滑区域的大小。图像在不同嵌入量下,阈值Tp从1到8递增时,对应的解密后标记图像的PSNR变化情况如图5所示。 使PSNR最大的Tp即为最佳阈值。从图5可以看出,当Tp=1 时,图像质量最稳定,故选取阈值Tp=1。 图5 阈值和解密标记图像的PSNR关系示例 为了测试算法的嵌入性能,从数据库中选择了4张测试图像使用如下不同的嵌入策略:多分类预测差值(multi-class prediction error expansion,MPEE)、单一预测方法(median edge detector prediction error expansion,MEDPEE)、菱形预测因子(diamond prediction error expansion,DPEE)下的加密图像可逆信息隐藏方法(reversible data hiding encrypted image,RDHEI)进行比较。这些方法分别表示为MPEERDHEI、MEDPEERDHEI、DPEERDHEI。比较结果见表1所列。从表1可以看出,在不同的嵌入率下本文提出组合预测策略方案相比单一预测算法有更好的直接解密的图像质量,预测像素更为准确,对图像的改动最小。 表1 各种嵌入率下解密标记图像的PSNR 单位:dB 在实验中选取Lena、Boat和Airplane 3幅图像进行测试,比较本文算法与其他类似算法的嵌入率与直接解密后的图像PSNR曲线,如图6所示。 图6 不同算法的性能比较 从图6可以看出,本文算法与文献[11,15-16]算法相比,相同嵌入率下的解密图像的PSNR更高。本文算法生成的差值直方图具有更多的峰点,同时对图像像素改动值很小,因此在测试曲线中表现出更好的率失真性能。 本文提出了一种预测差值扩展的加密图像可逆信息隐藏方法,根据图像像素位置的不同将多种预测方法组合起来进行像素预测和差值扩展,在信息具体嵌入过程中通过平滑函数和像素选择的方式使嵌入点定格在高度相关的区域和像素上。与传统的差值扩展方法和其他嵌入算法相比,该算法获得了更好的直方图分布,产生更多的空间冗余,表现出更好的率失真性能。后续将进一步改进算法,提高算法的嵌入率。4 算法实现
4.1 嵌入算法
4.2 信息抽取和图像恢复算法
5 实验结果与分析
5.1 算法的示例
5.2 阈值选择
5.3 不同嵌入策略下的比较
5.4 不同算法的性能比较
6 结 论