基于明文伪装加密与对比度增强的医学图像可逆信息隐藏
2023-05-11秦健豪李文沛
秦健豪,孙 昊,李文沛,石 慧
(辽宁师范大学 计算机与信息技术学院,辽宁 大连 116029)
0 引言
常态化疫情防控形势下,“5G+远程医疗”成为热点。然而,医疗数据安全问题一直是医疗行业的“老大难”。我国远程医疗技术应用尚处于起步阶,医学数据在安全传输上面临隐私泄露、恶意篡改、非法拷贝等巨大威胁。传统信息隐藏中,嵌入、提取操作会对载体图像造成永久性改变,这对于医学、军事、司法等强调载体内容精确性的领域是不可接受的。在此背景下,可逆信息隐藏作为多媒体安全中的热门研究方向之一,不仅可以完整提取水印信息,而且可以无损恢复载体信息,满足医学等领域的要求。
目前,经典的可逆信息隐藏算法(Reversible Data Hiding,RDH)包括无损压缩、差值扩展和直方图平移3 类。第1 类是基于无损压缩,该类算法是通过压缩原始数据获得不覆盖原始图像信息的空间。Celik 等[1]提出一般化的LSB 压缩算法,基于预测的条件熵编码将图像中未修改的部分作为辅助信息以提高压缩算法性能。为进一步提高安全性,Yama 等[2]提出一种基于压缩感知和数据加密的可逆信息隐藏算法,提高了压缩性能和安全性。第2 类是基于差值扩展(DE),该类算法则是通过扩展相邻像素点差值进行信息隐藏。最早由Tian[3]利用相邻像素之间的相关性实现基于DE 的可逆算法。为提高嵌入容量,Wang等[4]提出一种基于岭回归预测器的高精度误差预测算法,该算法可以获得更小的预测误差,具有更高的准确性。第3 类是基于直方图平移,该类算法通过对直方图特性进行调整以完成可逆信息的嵌入提取。该类算法最早由Ni等[5]提出,主要做法是统计每个灰度值的频率,用频率最高的两个灰度值像素实现嵌入,。Wang 等[6]提出自适应选择多直方图修改方式,对不同嵌入率下的性能进行优化。He 等[7]提出一种基于自适应多直方图修改的可逆信息隐藏算法,该算法结合像素距离和像素值排序机制实现了较好性能。
然而,上述可逆信息隐藏方法大多追求实现高容量和高PSNR,却忽略了医学图像具有大片背景区域的特点。鉴于此,很多学者提出了基于对比度增强的可逆信息隐藏技术(Reversible Data Hiding Based on Contrast Enhancement,RDH-CE),该类方法在实现秘密信息可逆嵌入提取的同时还能提高视觉效果和嵌入容量。Wu 等[8]率先提出基于像素直方图的对比度增强可逆信息隐藏算法,该方法选择直方图中最高的两个Bin 进行数据嵌入,通过重复该过程实现直方图均衡。在直方图偏移基础上,Gao 等[9]提出一种使用受控对比度增强(CCE)和整数小波变换(IWT)的新RDH 方案,该方案主要防止嵌入大量比特位时,图像对比度过度增强而导致的失真。Chen 等[10]从图像对比度增强、视觉失真减少、嵌入容量增量3 个角度对Wu 等[8]的工作进行改进,通过使直方图偏移过程适应直方图分布特征,提高了图像对比度,通过切断直方图位移中像素修改范围以减少图像视觉失真。然而,上述方法对医学图像纹理复杂区域的视觉效果具有一定局限性。为此,有学者进一步作出改进:Yang 等[11]将消息嵌入到医学图像纹理区域,以提高细节信息的质量,并且为了在增强纹理区域对比度的同时减少嵌入失真,还提出一种消息稀疏表示方法;Yang 等[12]采用直方图移位,将需要嵌入的秘密信息分别嵌入到感兴趣(Region Of Interest,ROI)区域或连续的非感兴趣(Region Of Non-Interest,RONI)区域中;欧博等[13]采用超像素分割医学图像,着重强调医学诊断感兴趣区域的可逆嵌入与对比度增强。为保护患者隐私,Yang 等[14]提出一种基于自适应纹理分类的RDHEI 算法,并基于明文加密将标记的医学图像加密为相似图像,有效增强了医学图像安全性。Kim 等[15]提出一种自动对比度增强可逆数据隐藏算法,该算法利用自动亮度保持方法适当增强对比度,实验结果表明,生成的增强图像在视觉和数量上均具有明显优势。
为了提高医学图像安全性,确保在数字信息内容不被泄露的同时嵌入附加信息,密文域可逆信息隐藏(Reversible Data Hiding in Encrypted Image,RDHEI)成为信息隐藏、多媒体技术与密文信号处理的交叉研究热点。RDHEI算法通常分为两类:基于VRAE(Vacating Room After Encryption )框架和基于RRBE(Reserving Room Before Encryption)框架的RDHEI。早在2008 年,Puech 等[16]通过分割加密后图像,在每个分块中隐藏附加信息,最后利用图像像素的局部标准差完成信息提取和图像恢复。然而,该方法一直未得到研究者关注,直到2012 年,Zhang[17]利用流密码加密原始图像,将加密图像分成大小相同的块,通过翻转分块中部分像素的LSB 隐藏附加信息,该算法能够利用自然图像像素相关性实现较好性能。这些给一系列基于RRBE 框架的RDHEI 算法研究带来了启发。吴友情等[18]结合MSB 和改进的哈夫曼编码,通过获得更加灵活的编码标记方式提高性能。
然而,这些算法存在信息提取和图像恢复过程不可分离的问题。为此,Ge 等[19]使用流密码置乱加密图像块,然后采用直方图平移的方法实现信息隐藏,最后在接收方提取信息并根据置乱秘钥和加密秘钥无损恢复图像。Zhang等[20]提出一种高保真的缩略图保护加密方案,该方案不仅准确实现加解密,而且缩略图更接近于原始明文图像,并具有较低的噪声。Zhou 等[21]提出一种利用参数二叉树标记像素的RDHEI 算法;Yin 等[22]改进了该算法,不再聚焦于小图像块内嵌入信息,而是利用整个图像的空间相关性隐藏信息,有效提高了容量。为进一步提高有效载荷,Yin等[23]提出一种基于多MSB 预测和哈夫曼编码的算法,通过获得更加灵活的编码标记进一步提高了性能。Wang等[24]使用一种结合块级流密码和块级重排列的加密方案,通过保留块中像素的相关性为数据隐藏腾出更多空间。Wang 等[25]对所有像素块进行重排列并加密,通过自适应预测MSB(Most Significant Bit,MSB)隐藏信息,该算法充分利用块内像素相关性,提升了嵌入容量。
为提高医学图像安全性,保护数据隐私,将上述RDHEI 算法与加密技术相结合,生成不可读代码,但很容易引起攻击者关注。本文打破传统观念,提出一种明文伪装加密算法,生成一幅与原始图像在视觉意义上不同的可读图像,以提高算法安全性。同时,为了提高容量,基于对比度增强技术完成信息隐藏。
1 基于明文伪装加密和对比度增强的RDH方案
首先基于纹理分割算法将医学图像分类分块,再基于对比度增强技术,通过拉伸图像直方图实现秘密数据隐藏,最后结合K-means 聚类算法将含密医学图像进行明文伪装加密。在明文伪装加密中,对K-means 分类信息作进一步排序,提高目标图像与标记图像像素块的适配度,使图像视觉效果更好。该方案包括4 个阶段:基于纹理区域划分的RDH-CE 算法、明文伪装加密、伪装解密、信息提取和恢复,整体流程如图1所示。
Fig.1 Overall flow of RDH based on plaintext camouflage encryption and contrast enhancement图1 基于明文伪装加密和对比度增强的可逆信息隐藏整体流程
1.1 基于纹理区域划分的RDH-CE算法
医学图像分析已广泛应用于良恶性肿瘤等重大疾病的临床判断等方面,其中病灶是重要诊断依据,通过对比度增强,不仅能够提高图像质量,也使病灶信息更加突出。本文提出一种基于对比度增强的可逆信息隐藏,首先将医学图像进行直方图拉伸,再将秘密信息隐藏到拉伸后的复杂纹理区域,最后将辅助信息隐藏到简单纹理区域,增强了对比度,不仅提高了嵌入率,而且提高了图像质量。基于纹理区域划分的RDH-CE 算法流程如图2所示。
1.1.1 图像直方图拉伸
为了增强图像对比度,首先对医学图像进行整体直方图拉伸,使得直方图中产生很多空bin。通过将数据隐藏到峰值bin 两侧以实现均匀分布,直方图拉伸如式(1)所示。
Fig.2 Flow of RDH-CE algorithm based on texture division图2 基于纹理区域划分的RDH-CE算法流程
其中,Io为原始图像像素,I为拉伸后像素,Imax和Imin为图像拉伸前的最大最小像素。因为该拉伸方法需要图像最大最小像素之差小于255,而大部分医学图像会有极少一部分像素接近或等于255,为了使得对比度增强效果更加明显,可以将这些极少的像素作为辅助信息并在取最大像素时忽略。
其中,P为图像的像素矩阵,h(x)为x像素值的数量。
1.1.2 图像纹理区域划分
基于复杂度计算[26]将整幅医学图像划分为复杂纹理区域和简单纹理区域,计算复杂度方法如式(3)所示,图3给出了子块像素示意图。
Fig.3 Xi and its surrounding pixels图3 Xi和周围的像素
根据划分规则M对整幅图像进行纹理区域划分,通过式(4)将图像分为复杂纹理区域和简单纹理区域,边缘像素认定为简单纹理区域内。
其中,划分规则M可根据图像自适应选择,P表示图像像素的数量,Xi表示第i个像素的复杂度,Tcomplex(n)和Tsimple(n)分别存储复杂纹理区域和简单纹理区域的像素位置。
1.1.3 复杂纹理区域数据隐藏
首先将图像分为N×N的块,分块大小N决定了复杂纹理区域的嵌入容量和嵌入后的图像质量,可根据具体图像自适应分块。
为提高准确性,将边界像素127 和128 舍弃,即舍弃这两种峰值bin,因此将126 和129 确定为阈值。遍历每个块,若该块复杂纹理区域直方图峰值bin 像素值小于126,则需要右侧为空bin(含密像素值为0~127);若峰值bin 像素值大于129(含密像素值为128~255),则需要左侧为空bin。为避免提取信息是无法判断含密像素,本文将峰值bin 像素值为127 和128 的两种情况舍弃。当满足空bin 时该块被标记为可嵌入块,遍历该块,将秘密信息s嵌入生成含密像素Ic′,如式(5)所示。
其中,Icm是复杂纹理区域直方图中峰值bin 的像素值。si∈{0,1}是要嵌入的秘密信息。h(Ic±1)是复杂纹理区域直方图中峰值bin像素左右两侧像素的数量。
重复嵌入,每一个可嵌入块的Icm转成8bit 二进制秘密信息优先嵌入到下一可嵌入块中。直到复杂纹理区域没有可供嵌入的空间或所有数据都被嵌入,而最后一个嵌入块的Icm和可嵌入块的位置作为辅助信息隐藏至简单纹理区域。
1.1.4 简单纹理区域数据隐藏
复杂纹理区域没有可供嵌入的空间后,可以选择将其余数据嵌入到简单纹理区域,这样既提高了嵌入率,也增加了对比度。边缘块的简单纹理区域多,并且像素值普遍偏低,而在病灶区附近,简单纹理区域较少且像素值偏高,从左到右从上到下遍历每个块的简单纹理区域,利用式(6)完成所有数据隐藏。
其中,Ism表示简单纹理区域直方图中峰值bin 的像素值。每个块的Ism转成8bit 二进制秘密信息将优先嵌入到下一个块中。
为了实现完全可逆,将M、N、Imax、Imin辅助信息与两个纹理区域位置集合隐藏。由于Tcomplex(n)和Tsimple(n)互补且复杂纹理一般较少,因而将辅助信息、Tcomplex(n)和Tsimple(n)通过文献[27]方法进行压缩。最后将信息总长度和压缩后的信息利用式(7)隐藏到从左到右从上到下第25 个像素及之后。
两个纹理区域最后一个嵌入块的Icm和Ism以及该嵌入块的位置则代替空出的前24 个像素的最低有效位(LSB),这24 个像素的LSB 序列也作为辅助信息嵌入简单纹理区域。
1.2 明文伪装加密
传统加密方法通常将原始图像转换为不可读代码以保护图像内容。该方法虽然能够起到对图像保护的作用,但更容易引来攻击者的好奇心和注意力。为了降低攻击者的关注,并提高图像安全性,本文提出明文伪装加密,该加密算法是将图像伪装成另一个完全不同的图像,伪装加密后图像在视觉上仍然有意义,从而减少了攻击者的注意力。明文伪装加密流程如图4所示。
Fig.4 Flow diagram of plaintext camouflage encryption图4 明文伪装加密流程
1.2.1 图像特征值计算
将图像分为m×n的不重叠子块,根据式(8)、式(9)分别计算每个子块的平均值u和标准差σ。
1.2.2 自适应图像块分类
本文对文献[27]的图像块聚类算法进行改进,提出一种自适应图像块分类算法,解决了加密块类和目标块类图像块数量不匹配,需要调整图像块造成的辅助信息增多的问题。首先,采用K-means[28]聚类算法,根据标准差对Target 图像块进行聚类,这样目标块就被聚类为K 类;然后,根据目标块的分类情况得到分类信息,根据分类信息对Marked 图像块进行分类;最后,在每个类中对加密块和目标块进行逐一匹配。
1.2.3 排序
对于复杂纹理块或简单纹理块,其标准差较为接近,但它们的平均值相差很大,如图4(e)所示。目标块和加密块在第j列中进行匹配,为了接近目标块,标记块中的像素需要移位,并且需将要移位的值作为辅助信息嵌入。由于标记块和目标块之间的平均差较大,因而辅助信息增加。为了减少辅助信息,进一步根据平均值对属于同一类的块进行排序,如图4(f)所示,这样匹配的块间不仅具有相似的标准差,而且还具有相似的平均值,减少了辅助信息。
1.2.4 移动旋转加密
为了更加接近目标块,像素pi需要通过式(10)进行移位才能获得加密像素。
为了使明文伪装加密图像更类似于目标图像,将每个标记块旋转到0°、90°、180°或270° 4个方向,并选择使旋转版本与相应目标块的最小均方根误差[29]变小的方向为最优方向,将块按照最优方向旋转。
1.2.5 嵌入辅助信息
为了实现完全可逆,将辅助信息N、K、匹配指数、旋转值利用哈夫曼编码对辅助信息进行压缩,以减少辅助信息位数,再将辅助信息序列嵌入到图像中,具体步骤如下:
Step1:使用A4N(The Average of Four Neighbors Predictor)预测方法,利用式(12)对像素Pi,j进行预测,图5 为像素分布图。
Fig.5 Pi,j and its surrounding pixels图5 Pi,j及周围像素
Step2:计算预测误差,得到预测误差序列ρi,如式(13)所示。
其中,I为原始图像像素值,ρi为该像素预测值。
Step3:由ρi生成预测误差直方图,基于阈值T利用直方图平移将辅助信息隐藏到图像中,如式(14)所示。
1.3 明文解密
接收方首先要将明文伪装的含密图像解密为真正的含密图像,具体步骤为:
Step1:根据式(15)得到辅助信息b:
Step2:根据式(16)得到原始像素I:
Step3:将图像分块,根据提取出来的辅助信息进行像素值的逆移动、图像块的逆旋转。
Step4:根据匹配索引,调整图像块排序,得到解密后的含密图像。
1.4 秘密信息提取和图像恢复
明文解密后得到含密图像,按照如下步骤提取数据并恢复图像:
Step1:从图像前24 个像素的最低有效位(LSB)中取出两个纹理区域最后一个嵌入块的Icm和Ism以及该嵌入块的位置。
Step2:从第25 个像素开始获取总长度和辅助信息如式(17)所示。
Step3:将获取的信息解压得到辅助信息和复杂纹理区域集合。
Step4:根据集合划分图像,再按照简单纹理区域、复杂纹理区域的顺序提取秘密信息并恢复像素。
Step4.1:简单纹理区域提取及恢复:
Step5:将图像拉伸恢复为原始图像,如式(20)所示。
2 实验结果及分析
2.1 基于对比度增强的RDH-CE算法分析与比较
本文基于对比度增强将图像拉伸,再依据复杂度将其划分为复杂纹理区域和简单纹理区域,最后按照不同方法在不同区域完成不同内容隐藏。图6 给出了划分规则M为20、分块大小N为16 时的实验结果,其中(a-c)为原始图像,(d-f)为对应的含密图像。
Fig.6 Original images and stego-images with an embedding rate of 0.1bpp图6 原始图像和嵌入率0.1bpp下的含密图像
为准确衡量对比度增强效果,本文采用相对对比度误差(Relative Contrast Error,RCE)[13]评价指标,RCE 的计算方式如式(21)所示。
其中,stdo和stds分别为原始图像和加密图像的标准差,RCE 低于0.5 代表该图像对比度没有增强,而高于0.5则代表该图像对比度增强有效,若是远远高于0.5 则代表过度增强。
为评价含密图像质量,本文采用PSNR 和SSIM 作为评价指标。不同嵌入率下本文算法与相关算法各性能指标比较结果如表1所示。
可以看出,随着嵌入率的增加,REC 值也在提升,表明图像对比度增强效果越好。本文REC 值在各嵌入率下均高于文献[13-14],表明本文算法对比度增强效果最好。对于PSNR 和SSIM,在各嵌入率下,本文算法均高于文献[14];高嵌入率(1bpp)下,本文算法高于文献[13];中低嵌入率下,本文算法略低于文献[13]。总体而言,本文算法各项指标相比其他文献具有明显优势。
2.2 明文伪装加密安全性测试与分析
明文伪装加密是一种特殊加密方式,不同于传统加密将图像加密成为不可读代码,容易引起攻击者好奇心和关注力,明文伪装加密是将图像伪装成另一幅完全不同的图像,很难引起攻击者好奇心,具有更好的安全性。
Table 1 Comparison of proposed algorithm and other algorithms under different embedding capacity表1 不同嵌入率下本文算法与相关算法比较
本文将从视觉效果和安全性指标两方面分析明文伪装加密的安全性。含密图像、目标图像和加密后含密图像如表2 所示,可以看出,原始含密图像和加密后含密图像完全不同,而加密后含密图像与目标图像基本相同,不仅很好地伪装了原始载密图像,而且可读有意义的加密图像可以极大降低攻击者的注意力,提高了安全性。
表3 给出了伪装加密图像分别与目标图像和原始含密图像的PSNR、SSIM 和NC。可以看出,伪装加密图像更加接近于目标图像,其与目标图像的PSNR、SSIM、NC 值均远远大于其与原始含密图像的PSNR、SSIM、NC 值。伪装加密图像更接近于目标图像,不仅表明伪装效果好,更保护了原始含密图像,有效提高了安全性。
2.3 实时性分析
本文算法的理论时间复杂度为O(m×n),其中m×n为载体图像尺寸。表4 给出了不同嵌入率下本文及相关算法运行时间结果比较,本文实际运行时间短,约为1.5s,远远低于文献[13-14]。因此,本文提出的算法具有较好的实时性。
3 结语
医学影像已成为医学科技创新领域的重要部分,医学图像安全性保护尤为重要。本文提出了一种基于明文伪装加密和对比度增强的RDH 算法,首先将医学图像进行直方图拉伸,增强图像对比度,有效提高了图像质量;然后将图像划分为复杂纹理区域和简单纹理区域,根据不同区域特点采用不同方法实现数据隐藏,有效提高了嵌入率;最后,基于伪装加密,将图像伪装成另一个完全不同的图像,伪装加密后图像在视觉上仍然较具意义,从而减少了攻击者的注意力,有效提高了安全性。在明文伪装加密中,对K-means 分类信息作进一步排序,提高目标图像与标记图像像素块的适配度,使图像视觉效果更好。实验结果表明,该算法具有较好的综合性能,不仅安全性高,较好解决了传统加密方法容易引起攻击者关注与攻击的问题,而且具有较好的图像质量、较高的容量,以及较好的实时性。因此,本文在医学图像隐私保护方面具有重要理论意义和实践推广价值。未来,将进一步将明文伪装加密与秘密共享,并与神经网络相结合,更好为医学图像隐私保护服务,为医疗领域提供安全与便利。
Table 2 Stego-images/target images/marked images表2 含密图像/目标图像/加密图像
Table 3 Comparison of evaluation indicators among marked images,stego-images and target images表3 加密图像分别与原始含密图像和目标图像各评价指标比较
Table 4 Comparison of execution time表4 运行时间比较