APP下载

基于改进PVO自适应嵌入的加密域图像可逆信息隐藏方法∗

2021-11-08侯思祖马红月项洪印

计算机与数字工程 2021年10期
关键词:分块复杂度信噪比

侯思祖 马红月 项洪印

(华北电力大学电气与电子工程学院 保定 071003)

1 引言

可逆信息隐藏(Reversible Data Hiding,RDH)是一种将秘密信息嵌入到原始图像中,并保证在提取隐藏数据后可以无差错地恢复原始图像的技术。可应用于军事、医疗等要求原始图像不允许有任何变化的敏感领域中。典型的RDH方法,如差值扩展[1~2]、直方图平移[3]、无损压缩[4~5]是利用自然图像的冗余来嵌入信息。加密技术是利用加密密钥将原始图像转化为毫无意义的图像来保护图像内容。信息隐藏技术和加密技术在数据保护方面发挥着不同的功能。近年来云服务日渐普及,内容所有者对信息的安全考虑愈加重视,经常出现在向云端发送数据之前对其进行加密的情况,加密域可逆信息隐藏技术则可以在恢复上传数据的前提下对其进行传输和处理。

现有的加密域可逆信息隐藏一般分为四种类型:第一种是对加密图像进行数据压缩预留出空间来嵌入秘密信息[6~8],此类方式操作复杂,计算量大;第二种是加密前先进行预处理操作,以便于在确定信息嵌入位置[9~11],此类方式嵌入失真小,嵌入容量大,但需要内容所有者不仅要加密数据,还有为信息隐藏者做准备工作,在实际中并不适用;第三种是利用加密技术的同态性来嵌入数据[12~13],此类方法安全性好,但数据加密后计算复杂度急剧增加,对信息隐藏的工作挑战性很大。第四种是直接对图像进行加密,然后对加密图像进行信息的嵌入。

文献[14]通过翻转部分加密图像像素的低三位将1 bit秘密数据嵌入到图像中,并利用像素之间的相关性恢复图像,但此方法存在误码率较高和嵌入容量低的问题。文献[15]针对此问题提出用全部像素的波动函数描述图像平滑度来降低信息提取误码率,但嵌入容量依旧很低。文献[16]利用像素的最低有效位进行信息的嵌入,使得信息提取误码率有所降低,峰值信噪比也有一定改善,但提升并不明显。文献[17]算法针对块内图像的平滑程度不会因分块置乱加密而下降的特点,利用像素预测和排序技术(Pixel-Value-Ordering,PVO)对加密图像进行处理,使得每个图像块至多可嵌入2 bits信息,嵌入容量和峰值信噪比明显提升,还保证了可逆性和可分离性,但同时嵌入容量受限于分块数量和分块大小。文献[18]是针对自然图像进行的处理,算法充分开发了平滑块的嵌入容量,根据局部复杂性自适应地将数据划分为三种嵌入数据嵌入到块中,提高了自然图像平滑块的像素利用率。

为提高加密图像的嵌入容量和嵌入质量,本文结合PVO算法与自适应嵌入思想,提出一种基于改进PVO自适应嵌入的加密图像的可逆信息隐藏方法。此方法充分利用置乱加密图像块的平滑程度不会因为置乱技术而下降的特点,将加密图像块根据局部复杂度自适应分为多个等级,每个等级确定相应的嵌入方式,越平滑块可嵌入数据越多,其中使用块中未修改的像素与该块周围像素来估计块复杂度;并对块内像素根据灰度值大小进行升序排列,将排序后的中间值作为目标像素,分块内其他值作为参考像素,参考像素根据相关性强度自适应地嵌入秘密信息。结果表明,本文算法嵌入容量和嵌入质量都有较好的提升。

2 改进PVO

2.1 图像块的等级分类

图1 扫描方式及分块方式

由于Arnold置乱加密图像分块内像素点只是打乱顺序,像素灰度值的大小并未发生任何改变,块内像素灰度值排序后,其平滑程度不会因置乱变换而下降。为此,为了实现在平滑区域嵌入更多像素这一目标,将平滑区域根据块复杂度划分多个等级,每个等级所能嵌入数据的容量根据所在等级而确定,并且每个等级其相应的嵌入方式也不同。具体来说,首先将分块加密图像进行像素灰度值排序,然后计算排序后像素的中间位置m1和m2,当像素数量为奇数时,m1=n/2,m2=n/2+1,当像素数量为偶数时,m1=m2=(n+1)/2,m的取值取决于n的大小,n为分块图像的像素个数取决于分块大小,分块越大,n越大,m值越大。其中值为分块等级最大限定值,光滑区域的块粗糙度可划分为m等级的任何一级。我们假设将平滑块最大等级设为t等级,将t等级的划分如式(1)所示。

其中,j∈{1,…,k},PEA大于中间位置像素的预测误差,PEI为小于中间位置像素的预测误差。

2.2 块复杂度

块复杂度描述所选图像区域内像素的灰度值分布,用来反映特定位置、特定方向和特定范围内各像素的灰度值变化程度。通过对区域内像素复杂度进行约束,秘密信息可以自适应地选择约束范围内的目标像素进行嵌入,记该约束条件为块复杂度Δ。目标像素在块复杂度Δ范围内才会用来信息的嵌入,其他不满足条件的则不嵌入信息,可以有效地减少像素不必要的修改,降低整体图像的失真程度。使用块中未修改的像素与该块周围像素来估计块复杂度。

由于经过等级划分后的分块图像,xf(t+)1,…,xf(n-t)块内像素在嵌入信息过程中并未发生改变,为未修改像素,将此类像素结合邻域像素来计算块复杂度,使得对块内平滑度描述的更加精确,块复杂度Δ的定义如式(3)所示。

其中,μ为局部粗糙度像素均值;n1,n2图像分块大小;n为图像块像素个数。Δ≥νT为粗糙块,像素之间相关性较弱,不用来嵌入信息;Δ≤νT为平滑块。平滑块再进一步进行等级划分。平滑程度最好的则可嵌入2t bits信息,平滑程度最低则可嵌入2 bits信息。如图2所示Airplane图在PVO算法与本文算法的预测误差直方图,明显看出,本文算法可嵌入点超过50000 bits,PVO算法可嵌入点为35000 bits,本文算法嵌入容量大大增加,证明改进PVO算法的优越性。

图2 PVO算法与本文算法的预测误差直方图

3 加密域信息隐藏与可逆恢复

本文提出算法包括图像加密、水印嵌入、水印提取和图像解密及恢复四个阶段。内容所有者将原始图像分为大小相同互重叠分块,利用加密密钥K1对原始图像进行块内像素置乱加密得到图像I',再利用加密密钥K2对分块进行置乱变换,得到加密图像I''。信息隐藏者对内容所有者提供的加密图像进行同样的分块处理,对块内像素按灰度值大小进行升序排列后,计算中间位置的像素灰度值大小xf(m),用xf(m)预测其他位置像素值并嵌入秘密信息;数据接收者通过辅助信息和密钥K1和K2可以提取数据并通过Arnold逆变换恢复出原始图像。

3.1 Arnold置乱加密

在图像加密阶段,使用Arnold置乱技术对原始图像进行加密处理。一幅M×N大小图像的二维Arnold变换定义如式(4)所示。

其中,a,b,c,d∈Z,并且满足 |ad-bc|>0为加密密钥,(x,y)为原始图像像素坐标,(x′,y′)为置乱变 换 后 图 像 像 素 坐 标,其 中x,y,x′,y′∈(1 ,…,n)。本文采用Arnold置乱加密,包括块内置乱块间置乱,可明显提高传统置乱加密的运算速度。具体地,将大小为M×N的原始图像分为若干个n1×n2大小不重叠的块(其中M,N分别为n1,n2的整数倍),然后对分块采用式(4)对块内像素进行置乱变换,形成块内加密图像I',然后继续用式(4)对分块进行置乱变换得到最终加密图像。如图3为置乱变换原理图,原始图像先经过横向错切变换,在进行纵向错切变换,最后进行取模处理,得到图像的一次置乱变换。加密图像由多次置乱变换得到。

图3 Arnold置乱变换原理图

3.2 数据自适应嵌入

内容所有者将加密图像发送给信息隐藏者。信息隐藏者对加密图像进行信息的嵌入。具体步骤如下。

步骤一:首先将大小为M×N加密图像I分成l个大小相同的非重叠块A={ }A1,A2,…,Al,其中,的定义如式(5)所示。

其中,n1,n2为分块的大小,通过光栅扫描方式将二维分块图像转为一维矩阵Ai= {x1,x2,…,xn},n为分块内包含n个像素,i∈{1 ,2,…,k}为分块图像数量,按灰度值大小将一维矩阵Ai升序排列后得到新的序列为一一映射关系。

步骤二:扫描分块图像,标记溢出分块位置图。对于新的序列B,块内像素若出现0或255两种情况时,分块有可能发生溢出,若在此情况进行信息嵌入则不能保证算法的可逆性。所以此类分块不嵌入信息,并对该分块以序号0做标记,其他不会发生溢出的分块以序号1作标记,表示该分块可进行嵌入处理。将标记信息以辅助信息形式嵌入到图像中,保证信息提取时的可逆性。针对每个分块都进行标记处理,会形成很长的标记序列,导致辅助信息过长从而影响净荷容量的问题,利用算术编码对标记序列进行数据压缩得到压缩序列c。

步骤四:根据相关性强度自适应确定不同分组平滑块的嵌入方式。具体来说,对于相同等级的平滑块划分成的一组Gk,k∈{ }1,…,t,采用相同的嵌入方式,嵌入公式如式(6)和式(7):

步骤五:当所有秘密嵌入完成后,记录最后嵌入位置作为辅助信息,辅助信息还包括图像分块大小(n1,n2),压缩位置图c,等级t的大小,粗糙度阈值vT。将辅助信息嵌入到图像最后位置中的最低有效位(LSB)中,所替换的LSB作为秘密信息嵌入到图像中保证提取数据的完全可逆性。

3.3 信息提取和图像恢复

数据接收者在收到含有秘密信息的加密图像后,先对图像进行数据提取得到秘密信息,再对提取数据后的加密图像进行置乱逆变换得到恢复图像。

步骤一:为了确定嵌入位置,需提取辅助信息,因此对含有秘密信息的加密图像进行光栅扫描,扫描顺序同嵌入过程相反,然后对位置图进行解压处理。这样通过位置图和像素值可确定其嵌入位置。

步骤二:将图像分成与嵌入过程中相同的图像块,对于每一分块的像素值先进行预测,因此要保证预测方法和预测像素的唯一性,才能满足可逆信息隐藏唯一性的要求,进而保证提取信息过程的可逆性。

图像像素提取公式如式(8)和式(9)。

其中,b A为xf(n-k)用来预测大于其灰度值的像素时的恢复比特;b I为xf(k+1)用来预测小于其灰度值的像素时的恢复比特。恢复加密图像如式(10)和式(11)所示。

其中,j∈{1,…,k},与信息提取后的加密像素。

步骤三:对恢复的加密图像进行逆变换,恢复原始图像,逆变换如式(12)所示。

4 实验结果与分析

本实验选取图4所示的6幅尺寸大小为512×512的标准灰度图像进行实验,其中包括:“Lena”、“Lake”、“Boat”、“Airplane”、“baboon”、“Barbara”等图像。采用Matlab R2014a软件进行测试。

图4 标准测试图像

4.1 实验结果主观评价

利用大小为512×512的未压缩的Lena灰度图像作为原始图像进行实验,其中嵌入秘密信息为5000 bits。实验结果如图5所示,图(a)为Lena的原始灰度图像;图(b)在4×4分块下的加密图像,加密图像在视觉上完全不能看出原始图像特征,加密效果良好;图(c)是含有5000 bits秘密信息的加密图像;图(d)是将含有秘密信息的加密图像进行信息提取后的图像;图(e)是将嵌入信息并将图像进行解密后的恢复图像,恢复图像与原始图像的PSNR值为108.131,说明解密图像与原始图像完全相同,该算法可无失真地恢复原始图像,证明了算法的可逆性,即可以完全无差错提取数据并可以无损恢复原始图像。

图5 Lena不同阶段图像

本算法峰值信噪比会因参数不同所得结果不同,其中最受影响的两个参数为分块大小和等级的划分。因此,表2和3分别列出Lena和Boat两幅图在不同净荷负载下,在不同等级和不同分块下的峰值信噪比的仿真结果。

表1 Lena在不同等级和嵌入容量下的峰值信噪比

表2 Lena在不同等级和嵌入容量下的峰值信噪比

从表2和表3在不同嵌入数、不同分块以及不同等级下的峰值信噪比可以看出:

表3 分块大小为3×3时的嵌入容量(bit)

1)在相同嵌入容量和等级下,分块越大,峰值信噪比越高,嵌入质量越好,在Lena图中,在设置最大等级t=1时,3×3分块、4×4分块和5×5分块,嵌入信息为10000 bits下,PSNR值分别为60.478,60.935,61.013。其中在5×5分块下嵌入质量最好。相差的PSNR值分别为0.457、0.078。可见分块越大,图像质量相差越小。

2)一般来看,等级t设置的越高,PSNR值越低,图像嵌入质量保真度会降低,但也有特殊情况,在Boat图中,嵌入容量为5000 bit,设置等级t为1和2时,PSNR值分别为62.381、62.447,等级为2时的峰值信噪比等级为1时要高,主要取决于加密图像分块内的平滑程度,若分块内平滑程度较高,嵌入数据较多时,分块内嵌入质量可能会下降,嵌入数据的分块则会减小,有可能会提高整体的嵌入质量。

3)如图中,在嵌入数据为15000 bit和10000 bit情况下,等级t设置过低会导致数据无法完全嵌入,嵌入容量有限,从而可以看出等级的提升会提升图像的嵌入容量。

4.2 实验结果客观评价

4.2.1 嵌入容量

对图4中4幅图像进行嵌入容量的分析,原始图像分别采用3×3、4×4和5×5的分块方式进行加密,得到的加密图像在防溢出处理得到位置图后用算术编码方法进行压缩,采用本文方案选择与加密方式相同的分块方式进行预测,得到不同分块下的净荷嵌入容量。本文算法分别与文献[9]中Ma的算法、文献[14]中Zhang的算法和文献[18]中PVO算法的嵌入容量进行对比。

表4 分块大小为4×4时的嵌入容量(bit)

表5 分块大小为5×5时的嵌入容量(bit)

通过对比不同分块下的嵌入容量可以看出:

1)分块越大,嵌入容量越小,PVO算法在3×3与5×5分块平均嵌入容量分别为14828和5807,降低了255%,本文算法在3×3与5×5分块平均嵌入容量分别为65598和60534,降低了5067比特,降低并不明显,分块大小的选择对于本文算法与PVO算法对比影响降低明显。

2)相同分块大小下,本文算法与其他三种算法相比明显提高了净荷嵌入容量,并且分块越大提升的越明显,如表中所示分块为3×3、4×4和5×5时分别平均最多提升了50770比特,53602比特和54727比特。主要是因为本文算法随着分块的增加,净荷容量减小的并不明显,而另外三种方法严重受限于分块的大小,分块增加,净荷容量迅速下降。

3)本文算法并未对小分块进行对比,原因是本文算法针对小分块(上下文像素为4以下)无法进行信息的嵌入,在分块大小2×2时,中间位置的预测像素为两个,本文只针对中大块进行分析,也是本文算法所存在的缺陷。

4.2.2 峰值信噪比

表6和表7分别列出了加密分块为4×4情况下,在净荷负载为5000比特和7000比特时文献[9]中Ma的算法、文献[14]中Zhang的算法和文献[18]中PVO算法的峰值信噪比(PSNR)性能对比。

表6 净荷负载为5000比特的PSNR性能(dB)

表7 净荷负载为7000比特的PSNR性能(dB)

通过对比四种算法在5000净荷负载和7000净荷负载的峰值信噪比可以看出本文相对其他三种方法在峰值信噪比都有不同程度的提高,本文算法与PVO算法对比,PSNR值略有提高,对比Barbara图,本文算法与PVO的PSNR值在净荷容量为5000比特时相差仅0.33。在Airplane图中两算法相差1.423,主要原因是本文算法在平滑图中优越性表现较为明显。

明显看到,PVO在Baboon加密图像中信息均无法嵌入,是因为,对于PVO算法来说,4×4分块属于大分块,PVO算法嵌入容量严重受限于分块大小,又因为Baboon图像平滑程度较低,导致PVO算法在4×4嵌入容量低,使信息无法嵌入。

为进一步证明本算法的性能。图6显示了本文算法与其他三种算法的实验结果,主要是在嵌入不同比特下所对应的峰值信噪比。

图6 不同嵌入比特对应的峰值信噪比

可以明显看出,本文算法在嵌入容量上有明显提升,在嵌入质量上与PVO对比稍有提升,与另外两种传统方法相比优势明显。

5 结语

根据Arnold置乱加密图像的特点及可逆信息隐藏技术的特点,利用置乱图像分块内像素相关性高的特点,对分块内图像按平滑度进行分等级的嵌入信息从而提高嵌入容量,并重新定义粗糙度从而提高嵌入质量。仿真结果表明,本文提出的基于Arnold置乱加密域图像的可逆信息隐藏方法与传统方法相比在嵌入质量和嵌入容量方面有明显提高,无论在主观评价还是客观评价都表现优良,在加密域可逆信息隐藏中是一种行之有效的方法。

猜你喜欢

分块复杂度信噪比
面向量化分块压缩感知的区域层次化预测编码
全球大地震破裂空间复杂度特征研究
两种64排GE CT冠脉成像信噪比与剂量对比分析研究
钢结构工程分块滑移安装施工方法探讨
数字经济对中国出口技术复杂度的影响研究
Kerr-AdS黑洞的复杂度
分块矩阵初等变换的妙用
非线性电动力学黑洞的复杂度
分块NMF及其在图像压缩中的应用
小波包去噪在暂态电能质量信号去噪中的应用