APP下载

可自纠错的联合式加密图像可逆数据隐藏算法

2021-01-29邱应强蔡灿辉曾焕强林晓丹钱振兴

西安电子科技大学学报 2021年1期
关键词:解密容量加密

邱应强,蔡灿辉,曾焕强,冯 桂,林晓丹,钱振兴

(1.华侨大学 信息科学与工程学院,福建 厦门 361021;2.复旦大学 计算机科学技术学院,上海 200433)

图像可逆数据隐藏技术具有在提取图像中的嵌入数据后可无失真恢复宿主图像的特性,在对图像内容敏感的军事、医学和法律论证等领域得到了广泛的应用,主要技术有差值扩展[1-2]和直方图修改[3-6]等。随着云计算的不断成熟,传统的本地数据存储和计算逐渐转向云端。然而,云计算的安全性和数据私密性保护问题制约了云计算产业的发展和应用。为了在云计算环境下兼顾数据安全与信号处理,加密域信号处理技术应运而生,其中有可逆数据隐藏技术与加密技术相结合发展而成的加密图像可逆数据隐藏技术。

按照嵌入数据提取和图像无失真恢复操作是否可分开进行,加密图像可逆隐藏分成分离式方法和联合式方法两类。分离式方法,顾名思义,嵌入数据提取和图像无失真恢复操作可独立开展,如ZHANG提出的加密后生成数据嵌入空间的可逆隐藏方法[7]、MA等人提出的加密前生成数据嵌入空间的方法[8]。最近,大多研究集中在加密前生成空间的方法以提高数据嵌入容量,如使用自适应整数变换技术生成不受流加密影响的大容量嵌入空间的方法[9],采用最高有效位预测生成嵌入空间的方法[10],基于多位高有效位预测与Huffman编码相结合的方法[11],使用二叉树编码压缩像素预测差值来生成嵌入空间的方法[12]等。由ZHANG提出的最早的加密图像可逆隐藏方法[13]属于联合式方法。该方法在图像加密后通过翻转各图像块部分像素的最低三位有效位来嵌入1比特数据,提取数据及恢复图像操作在图像解密后利用图像相关性联合进行;该方法数据嵌入容量较低,提高嵌入容量将导致提取数据误码及无法无失真恢复原图像的问题。此后,有学者不断改进联合式方法来降低提取数据误码率并提高嵌入容量,如利用相邻图像块的相关性并使用边缘匹配算法的改进方法[14],使用不同位置的多个相邻像素来评估图像块复杂度的改进方法[15],加密图像下采样分类分块后基于循环移位/数据交换算法嵌入数据的改进方法[16];这些方法提高了数据提取无误码条件下的最大数据嵌入容量,但嵌入容量仍然较低。数据提取误码问题限制了联合式加密图像可逆隐藏的发展。

为了消除数据提取误码问题并提高数据嵌入容量来满足更大容量的联合式方法的实际应用需求,文中提出了一种联合式加密图像可逆数据隐藏新算法。该算法首先通过图像加密前的预处理操作将纠错数据自嵌入到图像中,然后只需翻转加密图像部分像素最低若干有效位即可实现数据嵌入,图像解密后通过提取纠错数据实现嵌入数据100%正确提取及原图像无失真恢复,取得了良好的效果。

1 算法系统框图

本算法系统框架如图1所示,由发送端、云服务器端、接收端三方组成。在发送端,图像所有者对原始图像进行下采样,使用插值技术得到非采样像素预测值,通过计算非采样像素特定低位有效位翻转前后与预测值的方差得到标记数据,并通过自适应整数变换技术嵌入到采样像素中,原非采样像素和修改后的采样像素一并流加密处理后上传云端;在云端,数据嵌入者只需将加密图像中的非采样像素分组,根据其嵌入密钥,保留或翻转各分组像素特定低位有效位实现附加数据嵌入;在接收端,授权接收者先对载密加密图像进行解密操作,在下采样得到的采样像素中提取纠错标记并通过整数逆变换恢复原采样像素,进而可得到非采样像素预测值,计算比较当前非采样像素特定低位有效位翻转前后与预测值的方差,结合采样像素中提取的纠错标记,提取嵌入数据并解密得到附加数据,同时无失真恢复非采样像素,得到原始图像。

图1 算法系统框图

2 算法原理

2.1 插值预测纠错原理

2.1.1 图像下采样及插值预测

图2 像素分类及预测示意图

2.1.2 图像加密及加密域数据嵌入

图像加密前,需要通过2.2节介绍的整数变换对采样像素进行预处理。设预处理后图像为X′={x'(i,j), 1≤i≤2N, 1≤j≤2M},各像素x'(i,j)的8个比特数据从高位到低位可表示为x'(i,j,7),x'(i,j,6), …,x'(i,j,0)

(1)

y(i,j,k)=x'(i,j,k)⊕r(i,j,k) ,

(2)

其中,r(i,j,k)为加密密钥生成的二值随机数据。加密后的像素值为

(3)

得到加密图像Y={y(i,j), 1≤i≤2N, 1≤j≤2M}。

(4)

2.1.3 数据提取及图像恢复纠错原理

(5)

(6)

2.1.2节已经介绍了如何在加密图像中翻转非采样像素,实现数据嵌入,嵌入过程不对采样像素进行任何操作。在接收端,对载密加密图像Y'像素y'(i,j)各比特按下式解密:

z(i,j,k)=y′(i,j,k)⊕r(i,j,k) ,

(7)

因此,可正确提取嵌入像素并无失真恢复xp。所有恢复像素值重组即可无失真得到原图像。

2.2 基于自适应整数变换的可逆数据隐藏基本原理

由2.1节可知发送端需生成二值标记序列S,并在图像加密前将S无损压缩后的数据S′以可逆方式嵌入到采样像素中。下面将介绍基于自适应整数变换的可逆数据隐藏原理。

2.2.1 基于整数变换的可逆数据隐藏

文献[1]提出了用于图像可逆隐藏的一般化整数变换,文献[2]拓展该整数变换实现了自适应可逆隐藏。笔者将采用该技术在图像加密前把纠错数据嵌入到采样像素中。对于整数x,定义函数

(8)

a(xl)=round((xl,1+xl,2+xl,3+xl,4)/4) ,

(9)

下式整数变换可将d=(d1,d2,d3),di∈ [0, 2b-1](1≤i≤3,b∈)嵌入xl,得到

(10)

对应的嵌入数据提取和原像素值无失真恢复的整数逆变换公式为

(11)

2.2.2 自适应整数变换

通过式(10)将3b比特数据嵌入到xl后引入的失真可用欧几里德范数表示如下:

(12)

(13)

当xl∈Ab,使用参数b通过式(10)整数变换在xl中嵌入3b比特数据后将不会造成像素值溢出。若要求‖x'l-xl‖≤T(T为阈值),设max(b)≤ 3,则可按下列4种情况自适应选择参数b:

(14)

C=3e1+6e2+9e3-LLM′。

(15)

2.2.3 阈值自适应选择

根据上述讨论,需要嵌入到采样像素的数据包括无损压缩后的二值标记序列S和采样像素位置图LM′;选择合适的阈值T可控制数据嵌入引入失真。用折半法自适应选择最佳阈值的算法可用伪代码描述如下:

算法1最佳阈值T自适应选择算法。

T=Processing(C,T1,T2) /* 设输入C=LS′为嵌入容量,低阈值T1=0,大数值高阈值T2≫T1;输出T为最佳阈值*/

Begin /*算法开始 */

while(T2!=T1andT2!=T1+1)

若Ctemp>=C,则置T2=Ttemp;否则,置T1=Ttemp; /*调整阈值高门限或低门限*/

end while

若Ctemp>=C,则置T=T1;否则,置T=T2; /*确定最佳阈值T*/

returnT; /*返回最佳阈值T*/

End /* 算法结束 */

若确定的最佳阈值T等于最初设定的阈值T2,则表明采样像素无法嵌入非采样像素标记值,非采样像素的分组参数v太小,以致于无法实现算法自纠错功能。

3 算法实现步骤

算法系统由图像所有者、数据嵌入者、授权接收者三方分别完成图像预处理与图像加密、图像加密域嵌入数据、嵌入数据提取与原图像无失真恢复等操作。下面将从三方操作分别说明算法实现步骤。

3.1 图像预处理及图像加密实现步骤

步骤1 图像所有者对大小为2N×2M原图像X进行下采样,得到N×M大小的低分辨率图像Xl;

步骤2 使用插值技术,利用Xl预测X中其余3N×M个非采样像素的像素值;

步骤7 用加密密钥将预处理后的图像X′进行流加密,得到加密图像Y并上传云端。

3.2 加密图像中嵌入数据实现步骤

步骤1 数据嵌入者对加密图像Y进行下采样,提取其中的3N×M个非采样像素;

步骤3 对所有yp′根据1 bit待嵌入的加密数据,保持或翻转yp所有像素的最低u位有效位,得到yp′;

步骤4 将所有yp′替换Y中对应yp,得到载密加密图像Y′。

3.3 嵌入数据提取及原图像无失真恢复实现步骤

步骤1 授权接收者使用加密密钥对Y′直接解密得到载密图像Z,对Z进行下采样可得到X′l=Zl;

步骤2 将X′l分成2×2的互不重叠图像块,从中可提取出其中嵌入的辅助数据S′,S′解压缩得到二值标记序列S,并进一步通过对图像块整数逆变换无失真恢复得到原低分辨率图像Xl;

步骤4 将Z中3N×M个非采样像素也按特定顺序以每v个像素进行分组,得到zp;

步骤7 用嵌入密钥对所有提取数据解密,得到嵌入的附加数据,所有无失真恢复的像素重组,得到原图像。

4 实验结果与数据分析

为了验证所提出的算法,在配备Intel(R) Core(TM) i5-10 210 CPU、8 GB内存、Windows 10操作系统的笔记本电脑上,以Visual Studio 2017为软件平台开展实验。如图3所示,实验采用Lena、Baboon、Man、Lake、Goldhill、Boats、Couple和Tiffany这8幅大小为512×512的256级灰度图像作为宿主图像。

图3 实验测试图像

首先,采用自适应可逆整数变换参数maxb≤3、加密图像块翻转最低有效位位数u=3,测试各图像加密域的最大数据嵌入容量,并与现有的同类联合式加密图像可逆隐藏方法在保证嵌入数据100%正确提取及图像可无失真恢复的条件下取得最大数据嵌入容量进行比较。实验数据如表1所示,文中方法除Baboon、Lake在加密非采样像素分组长度v=3时取得最大数据嵌入容量65 536 bit,其余测试图像可在v=2时取得最大数据嵌入容量98 304 bit,所取得的最大数据嵌入容量远高于其他同类文献方法[13-16]。部分实验结果示意图如图4所示:图(a)为原图像Lena;图(b)为对图(a)预处理后的加密图像,与图(a)之间的峰值信噪比(PSNR)、结构相似度(SSIM)分别为9.58 dB、0.042 0;图(c)为加密域嵌入数据后的载密加密图像1,使用参数v=2嵌入98 304 bit数据,与图(a)之间的PSNR为9.58 dB、SSIM为0.042 3;图(d)为对图(c)直接解密得到的载密图像1,与图(a)之间的PSNR为32.58 dB、SSIM为0.940 7;图(e)为原图像Lake;图(f)为对图(e)预处理后的加密图像1,与图(e)之间PSNR为8.28 dB、SSIM为0.033 1;图(g)为使用参数v=3嵌入65 536 bit数据后的载密加密图像2,与图(e)之间PSNR为8.25 dB、SSIM为0.033 0;图(h)为对图(g)直接解密得到的载密图像2,与图(e)之间PSNR为31.04 dB、SSIM为0.940 8;从图(d)和图(h)中均可100%正确提取其中的嵌入数据,并无失真恢复原图像(PSNR为∞ dB、SSIM为1)。从实验结果可以看出,文中方法不仅可以保护图像内容隐私信息,还可实现更大的数据嵌入容量。

表1 不同联合式加密图像可逆数据隐藏方法最大数据嵌入容量比较 bit

笔者还采用加密非采样像素分组长度v依次为128、64、32、16、8、4、3、2进行了翻转最低有效位位数u分别为2和3的实验测试,可实现的数据嵌入容量依次分别为1 536、3 072、6 144、12 288、24 576、49 152、65 536和98 304 bit。表2给出了各种不同情况下对载密加密图像直接解密后的载密图像与原图像之间的峰值信噪比数据。由于文献[13-16]方法均通过修改图像块像素最低三位有效位实现数据嵌入,在嵌入数据“0”“1”等概率分布的条件下,其直接解密后的载密图像与原图像之间的峰值信噪比在理论上为37.92 dB,其解密载密图像质量与图像分块大小及相应的嵌入量无关。文中方法在保持或翻转最低三位有效位时,有3/4的像素需要进行类似的处理实现数据嵌入,而其余1/4作为采样像素在图像加密前的预处理过程中通过整数变换嵌入了纠错数据。从表2实验数据可以看出,文中方法在测试图像中可实现嵌入12 288 bit数据(除Baboon图像嵌入3 072 bit)的情况时,取得的解密载密图像PSNR>37.92 dB,结合表1数据可知取得的数据嵌入容量明显优于其他同类文献方法[13-16]。随着非采样像素分组长度的减少,需要嵌入到采样像素的纠错数据增多将导致解密载密图像质量逐渐下降,但进一步提高了数据嵌入容量,且可100%正确嵌入数据图像并无失真恢复原图像。文中方法可进一步将翻转的最低有效位减少到2位,理论峰值信噪比可达44.15 dB。

表2 不同数据嵌入量下直接解密的载密图像与原图像之间的峰值信噪比 dB

表2数据表明,在嵌入数据量较小的情况下,减少翻转的最低有效位位数可进一步提高解密载密图像质量。

表3 不同加密图像可逆数据隐藏方法的特性比较

表3对加密图像可逆信息隐藏方法进行了定性比较分析。在嵌入方式上,有加密前生成嵌入空间(Vacating Room Before Encryption,VRBE)方法和加密后生成嵌入空间(Vacating Room After Encryption,VRAE)方法。文献[8-12]方法属于VRBE,其他文献方法和文中方法属于VRAE。在数据提取方式上,文献[7-12]方法可独立进行嵌入数据提取和图像无失真恢复操作,属于分离式方法;而文献[13-16]方法和文中方法则要求图像解密后联合进行嵌入数据提取和图像无失真恢复操作,属于联合式方法。在嵌入容量上,由于VRBE方法在图像加密前可更好地利用图像相关性生成更大容量的嵌入空间,因此可取得更高的数据嵌入容量,如文献[8]方法可达0.5 bit/像素,文献[10]方法接近1.0 bit/像素,文献[9]、[11-12]方法可超过2.0 bit/像素;VRAE方法数据嵌入容量相对较低,文献[7]、[13-16]方法在提取数据无错误的条件下一般低于0.05 bit/像素,而文中方法提高了联合式VRAE方法的数据嵌入容量,可达0.375 bit/像素;关于直接解密的载密图像质量,文献[8-9]方法和文中方法(v=2)在嵌入一定的数据量时,解密载密图像PSNR大于40 dB,可取得较好的图像质量;文献[7]和文献[13-16]方法在嵌入数据量较小的情况下,解密载密图像PSNR大多为38 dB左右;而文献[10-12]方法在数据嵌入过程中将直接修改像素值的高位有效位,因此其解密载密图像质量较差。在嵌入数据提取误码和图像恢复失真方面,联合式方法[13-16]在较低数据嵌入量时可正确提取嵌入数据且无失真恢复原图像,但随着数据嵌入容量的增大,存在提取嵌入数据错误以及恢复图像失真的问题,其余方法则不存在提取嵌入数据错误和恢复图像失真的问题。

5 结束语

笔者提出了一种兼具自纠错和内容隐私保护功能的加密图像可逆数据隐藏新算法。该算法系统由三方组成:图像所有者对原始图像进行下采样,使用插值技术来预测非采样像素,以此来生成用于保障加密域嵌入数据正确提取的纠错数据,并以可逆方式嵌入到采样像素后再加密上传云端;数据嵌入者只需将加密图像非采样像素分组,通过保留或翻转各组像素特定低位有效位即可嵌入数据;授权接收者对载密加密图像解密后,可100%正确提取加密图像中嵌入的数据并无失真恢复原图像。实验结果表明,该算法解决了现有联合式方法数据提取存在误码的问题,同时大大提高了最大数据嵌入容量,并保持解密载密图像质量良好,可应用于军事、医学、云服务等众多领域。

猜你喜欢

解密容量加密
解密电视剧 人世间
基于广义logistic混沌系统的快速图像加密方法
炫词解密
水瓶的容量
保护数据按需创建多种加密磁盘
炫词解密
炫词解密
加密与解密
小桶装水
鼹鼠牌游乐场