APP下载

面向位平面的自嵌入式可逆数据隐藏方法

2021-05-10王兴田陶永鹏

小型微型计算机系统 2021年5期
关键词:分块机密解密

顼 聪,王兴田,陶永鹏,朱 毅

(大连外国语大学 软件学院,辽宁 大连 116044)

1 概 述

可逆数据隐藏(RDH)是将机密数据嵌入到载体信息中,接收者可以提取嵌入的数据并恢复载体信息的技术,在军事,医疗和法律等领域都有广泛的应用.现有的很多RDH方法将机密数据嵌入到数字图像中,如图像素排序[1,2],直方图平移[3,4],差值扩展[5,6]及利用差值扩展和直方图平移的组合[7]进行信息隐藏.这些方法利用原始图像的冗余信息以可逆的方式嵌入机密数据,但并不适用于加密图像领域.而随着云计算技术的发展,大量用户隐私数据需存储在云服务器上,在上传之前应该进行加密保护.因此加密图像中的RDH(RDHEI)引起了许多研究者的关注.RDHEI技术允许数据隐藏者将数据嵌入到加密图像中,而无需知道图像的内容,接收者可以提取嵌入的数据并恢复原始图像[8].

Zhang[9]提出了一种加密图像的可逆信息隐藏方法:图像拥有者采用流加密方法得到一个加密图像,数据隐藏者翻转数据块内像素的3个最低有效位来嵌入秘密信息.由于受到有效嵌入位数的影响,该方法的嵌入率并不高.文献[10]中数据隐藏者将加密图像分成3个集合,又将每个集合分为长度不同的组,分别压缩获取空间进行信息嵌入.该方法在一定程度上提高了数据嵌入率,但是在图像恢复过程中有误差存在.王子池[11]等提出将加密图像分块并根据信息隐藏密钥在每块中伪随机地选取多个集合,通过修改其中一个集合来嵌入信息.该方法的缺点是数据的提取和图像的恢复不能分别独立执行,具有相当的局限性.在文献[12]中数据隐藏者将加密的块分为对应于原始图像中平滑和复杂区域的两组,通过压缩与平滑区域相对应的块集合中的LSB,制造可用空间进行信息嵌入.该方法的嵌入率受到平滑和复杂区域区分函数的影响,表现并不稳定.文献[13]提出了一种基于最高有效位的可逆信息隐藏方法,通过对基于块的最高有效位平面重排机制,压缩图像的最高有效位平面来嵌入机密数据.该方法利用最高位平面进行信息嵌入,数据的嵌入量并不高.文献[14]提出采用块级预测器来生成加密图像的预测误差序列,根据预测误差序列,使用差异扩展方法嵌入机密数据.其直接解密后的图像误差较大.文献[15]提出的方法是通过预先对原始图像进行重排处理,在进行加密前预留嵌入信息的冗余空间,加密后进行信息嵌入.该方法本质上仍然是利用块级元素间相关性,制造冗余空间进行数据嵌入.

针对上述方法的问题,借助于图像位平面的思想,提出一种基于位平面自嵌入式的可逆信息隐藏算法,该算法将灰度图像看成8个位平面的集合,目标转向对图像多个低位平面进行信息嵌入,位平面被划分成同一元素块和非同一元素块,并采用不同的嵌入方法嵌入机密数据.该方式有效的提高了机密数据的嵌入量和嵌入率,同时该算法利用自嵌入的方式存储必要的参数信息,保证加密图像的可逆性恢复.

2 算法框架结构

图1 算法框架结构图

3 图像加密

(1)

(2)

(3)

(4)

式中s代表后续要进行数据嵌入的低位平面数,为了直接解密后的图像质量,算法中s的值不宜超过3,最后合成加密后的像素值,计算如公式(5)所示.

(5)

4 面向位平面的自嵌入式可逆数据隐藏

收到加密图像Ie之后,数据隐藏者选择加密图像Ie第l位平面El用于数据嵌入,l∈{0,2,…,s-1}.El可以视为一个大小为M×N的二进制图像,像素值为0或1.图像被分成大小为H×H的非重叠块(与加密时分块大小相同).其中由非全黑或全白像素组成的块用CB表示,由全白或全黑像素组成的块用FB表示,并可以进一步表示为全黑像素块FBB,全白像素块FBW.

4.1 图像处理

以图像块为单位按照光栅扫描顺序进行图像第1次扫描,建立位平面图像块的类型流St,如果扫描的块为FB类型,则St相应位的值为1,如果为CB类型,则相应位的值为0.重新排列图像块,使得CB块依据扫描获得的先后顺序排列于图像的上方,FB块排列于图像下方.接着对下方含有FB块的子图像进行第2次光栅扫描,建立类型流Sf,如果扫描的块为全黑像素的FB块,则Sf相应位的值为1,如果是全白像素的FB块,则相应位的值为0.在第1次重排图像基础上对含有FB块的子图像进行2次重排,使得所有全黑像素块依据2次扫描获得的先后顺序排列在前,全白像素块排列在后.如图2所示.

图2 图像重排示例图

假设图像4×4分块,左1为原图,第1次扫描后生成的块的类型流St=010110111,左2为第1次重新排列块序后的生成图.对左2的含有FB块的子图像进行2次扫描后生成的类型流Sf=100100,左3为第2次重排后的最终生成图.

4.2 数据嵌入

数据隐藏者将机密数据嵌入到各低位平面的FB和CB块中.在嵌入之前,对机密数据使用数据隐藏密钥Kh加密,最后生成嵌入机密数据的标记加密图像Iew.

4.2.1 CB块的数据嵌入方式

CB通常位于原始图像的边缘区域,并且块中的像素值并不一致,像素间产生的冗余空间较少,因此利用二值图像像素的空间相关性,构建如图3所示的嵌入单元进行少量信息嵌入.

图3 嵌入单元图

其中P、Pr、Pb、Pd各代表一个像素位置,数据嵌入过程中将CB块内像素按照嵌入单元进行划分,将经数据隐藏密钥Kh加密后的机密数据以直接替换的方式嵌入到目标像素P中.而目标像素相邻的同行Pr、同列Pb、对角线像素Pd在此过程中保持不变,计算出嵌入率为0.25bpp.

进一步计算出该位平面图像中CB块的最大嵌入容量,如公式(6)所示:

CECl=H×H×n0*0.25

(6)

式中n0表示CB的数目,H为图像块的大小,0.25为CB块最大嵌入率.接着计算原始目标像素P的预测值P′,并构建误差序列Le.因为选择的Pr、Pb、Pd是目标像素P的周边相邻像素,根据二值图像中的像素相关性,预测值计算公式(7)如下:

(7)

式中round()表示四舍五入函数.计算目标像素的预测差值的绝对值e=|P-P′|,并构建误差序列Le={e1,e2,e3…},因为像素的相关性,Le的大部分值为0,小部分为1.通过运行长度编码[16]可以对该序列无损压缩生成Ls,并嵌入到FB块中.

4.2.2 FB块的数据嵌入方式

在FB类型块中,由于所有像素值相同,所以具有较多冗余空间,可以进行大量的信息嵌入.为了能够无损恢复原始加密图像,FB类型块除了嵌入机密数据外还需要自嵌入4.1生成的类型流St、Sf,4.2.1生成的CB块的压缩误差序列Ls,St流、Ls流各自结束位置的块坐标.数据嵌入的方式是通过直接替换位像素的方式,将信息嵌入到FB块的所有像素中.具体过程如下:首先从第1个FB块开始依次嵌入St流的各比特位,并记录嵌入St流的最后一个块的位置坐标ZS=(x,y).接着从下一个FB块开始嵌入Sf和Ls流,并记录嵌入Ls流的最后一个块的位置坐标ZL=(x,y).将ZS和ZL后分别嵌入到图像的最后的两个FB块中,剩余的其他FB块用来嵌入加密的机密数据.利用公式(8)计算该位平面FB块的最大嵌入容量:

FECl=(H×H)×(n1-2)-Lt-Lf-La

(8)

其中M和N表示原始图像的大小,n1表示FB块的数量,H为图像的分块大小,Lt为类型流St的长度(CB块和FB块的总数和),Lf为类型流Sf的长度(全白FB块和全黑FB块的总数和),La为压缩误差序列Ls的长度.

加密的机密数据嵌入到FB和CB后,利用公式(9)计算该位平面图像最大嵌入容量:

ECl=CECl+FECl

(9)

其他可嵌入位平面处理方式相同,利用公式(10)计算整个图像的多位平面的最大嵌入容量如下:

(10)

式中 MAX为用于嵌入数据的最大低位平面数.

进而计算图像的嵌入率为公式(11):

(11)

最终生成标记加密图像Iew.

4.3 数据提取和图像恢复

数据接收者仅使用数据嵌入密钥Kh可以准确提取机密数据,仅使用加密密钥Ke可以获得轻微失真的原始图像,同时使用两个密钥可以提取数据并无损恢复图像.接收到的标记加密图像其结构如图4所示.

图4 标记加密图像结构图

标记的加密图像由4部分组成,数据1区是CB块部分,嵌入了少量机密数据.附属参数1区由部分FB块组成,自嵌入了类型流St、Sf和压缩误差序列Ls等附属参数信息.数据2区由大部分FB块组成,嵌入了较多的机密数据.附属参数2区由图像最后的两个FB块组成,自嵌入了St及Ls流的结束块的位置坐标ZL和ZS.接收者接收到标记的加密图像Iew,获取标记的加密位平面,重新划分成U个非重叠块,块大小为H×H,与数据嵌入时相同.

4.3.1 只有隐藏密钥Kh,获取机密数据

读取接收图像中附属参数2区,确定类型流St及序列流Ls各自结束位置的块坐标ZS和ZL.因为类型流St大小固定为M*N/H*H,所以可从ZS处向前读取出类型流St,并解析出图像FB块的数目n1和CB块的数目n0;从ZS处的下一FB块开始向后读取n1位可获取类型流Sf,并解析出全黑像素FB块和全白像素FB个数;接着向后读取到ZL,可获取压缩序列Ls流.通过以上方式能够确定出数据1区和数据2区的位置,从而从数据1区各个嵌入单元的P位置和数据2区各FB块的所有位置读取出加密的机密数据,并利用Kh解密,获得机密数据.

4.3.2 只有密钥Ke,解密获得近似的原始图像

利用和4.3.1相同的读取方式读取类型流St、Sf,确定出数据1区的位置及FB区中全黑像素块FBB和全白像素块FBW的具体分布,通过公式(7)预测数据1区各个嵌入单元P位置像素.由于二值图像像素的空间相关性,预测值大部分是准确的,而嵌入单元的Pr、Pb、Pd位置的像素值保持不变.所有FBB区恢复成全黑像素,所有FBW区恢复成全白像素.接着利用类型流Sf先恢复子图像FB区的块顺序,接着通过St流恢复整个图像的原始块排列,最后用加密密钥Ke解密,可以取得令人满意的图像视觉效果.

4.3.3 使用Kh和Ke进行数据提取和图像无损恢复

利用和4.3.1相同的读取方式确定出数据1区的位置及FB区中全黑像素块FBB和全白像素块FBW的分布,获取类型流Sf、St和序列Ls.通过4.3.1的方法提取秘密数据并用Kh解密获得原始嵌入信息;通过4.3.2中的方法能够无损恢复所有区域的FB块.用对应的RLE压缩算法对序列Ls无损解压缩,获得数据1区原始预测误差序列Le={e1,e2,e3…},同时利用公式(7)预测数据1区的P位置像素,新的预测值与Le元素一一对应.如果对应的Le元素为0,说明P位置预测值正确,预测值即为真值,否则翻转预测值获得真值,从而完数据1区的无损恢复.最后利用类型流Sf、St恢复原始图像排序,并用加密密钥解密,可以完全无损恢复原始图像I.

5 实验与结果分析

5.1 特定参数下算法的测试

选择图像大小512×512的标准灰度图像Man,利用算法进行测试,测试条件参数设为嵌入的低位平面数λ=3,图像分块大小为4×4,测试结果如图5所示.

图5 算法测试图

图5(a)显示了标准的灰度图像Man;图5(b)是其相应的加密结果Ie;图5(c)显示了标记的加密图像Iew,计算出嵌入率τ为1.876 bpp;图5(d)是标记的解密图像IwPSNR=47.96 dB;图5(e)是恢复图像,PSNR无穷大.

显然,在特定参数下,该算法在保证具有很高嵌入率的前提下,直接解密后仍然有很好的可视效果.并且可以无损恢复原始图像.

5.2 不同参数设置对算法的影响

图像的不同分块大小会影响到低位平面中FB和CB的数量,进而影响到图像的机密数据嵌入率.为了获得不同分块大小和最大嵌入率的关系,从BOSSBase[17]中随机选择1000张,大小为512×512 的8阶灰色图像作为测试集,在嵌入的低位平面数λ=3条件进行关系测试,结果如图6所示.

图6 分块大小和最大嵌入率图

可以看到当图像的分块大小H=4时,MER最大.当H=2或3时,MER较H=4小.这是因为当将原始图像分为2×2或3×3块时,类型流的值非常大,将有更多的FB块用于类型流的自嵌入,从而降低机密数据的嵌入率;而当H>4时也MER逐渐下降,这是因为分块过大,会使得具有同样元素的FB块的数量减少,对应的CB块的数量增加,减少的数据嵌入量,从而导致MER逐渐下降.因此,H=4是最佳分块大小.

在不同的低位嵌入平面数及分块大小条件下对算法测试,通过图像最大嵌入率和对应的直接解密后图像的PSNR值来评估不同因素对算法的影响.选择5幅纹理不同的标准图像进行测试,结果如表1-表3所示.

表1 第1LSB位平面嵌入数据实验数据表

表2 第1、2 LSB位平面嵌入数据实验数据表

表3 第1、第2、第3 LSB位平面嵌入数据实验数据表

可以看到用于嵌入的低位平面数越多,数据嵌入量就越大,嵌入率就越高,但是直接解密后失真的像素数也会增多,从而降低直接解密后的图像质量.这是因为随着嵌入的低位平面数增多,FB块CB块的数量增加,但是过多的CB块会使得解密后的误差像素增加,从而降低解密后的图像视觉质量.一般说来嵌入低位平面数为3即λ=3,会在保证足够嵌入率的前提下取得较好的直接解密图像的视觉效果.另外可以看到具有复杂纹理的图像在同等条件下嵌入率和解密后的图像PSNR值会低一些.这是因为复杂纹理的图像会形成较少的FB块,从而导致可用嵌入空间较少.

5.3 不同算法最佳嵌入率对比测试

算法设置嵌入低位平面数λ=3,分块大小H=4,文献[13]和文献[15]均取性能最佳设置参数,测试结果如表4所示.

表4 不同算法间最大嵌入率的对比

可以看到提出的算法嵌入率最高,这是因为提出算法的多个位平面参与数据嵌入,并且通过FB块CB块的划分方式,调用了较多的像素位参与信息嵌入.

表5 不同算法在相同嵌入率下解密图像质量比较

可以看到,在相同嵌入率的条件下,提出的算法仍然可以获得更好的标记解密图像质量.这是因为FB块CB块的划分方式,使得FB块可以完全恢复,而利用二进制像素位的相关性的预测方法使得CB块只有极少数的误差像素存在,故能获得更好的解密图像质量.

6 结束语

针对目前RDHEI的算法中隐藏容量低、失真率高的问题.提出一种面向位平面自嵌入式的加密图像可逆数据隐藏方法,对原始图像加密后,对加密图像的低位平面进行不同类型的分块,采用不同嵌入规则以实现较高的数据嵌入量,同时利用自嵌入图像位平面参数的方式保证图像的完全可逆性恢复.实验结果表明,提出的算法实现了数据提取,图像解密和图像恢复的分离操作,相比于其他RDHEI算法,本算法的嵌入率有显著的提高,并且具有良好的率失真性能.未来在图像加密和分块规则方面可以做进一步的改善,以更好的提高安全性和嵌入量.

猜你喜欢

分块机密解密
面向量化分块压缩感知的区域层次化预测编码
解密电视剧 人世间
钢结构工程分块滑移安装施工方法探讨
炫词解密
炫词解密
炫词解密
分块矩阵初等变换的妙用
分块NMF及其在图像压缩中的应用
爱宠大机密
魔法洞大探险之四 机密,机密!