Reversible Data Hiding in Encrypted Images Basedon Multi-MSB Prediction and Huffman Coding【2020】

总结

方法

基于多MSB预测和Huffman编码的大容量算法。

思路

首先,对原始图像每个像素的多个MSB进行自适应预测,并采用Huffman编码进行标记。

然后,通过流密码对标记后的图像进行加密。

最后,利用多MSB替换的方法,将空出的空间用于嵌入秘密信息。

Reversible Data Hiding in Encrypted Images Basedon Multi-MSB Prediction and Huffman Coding【2020】_第1张图片

方法实现

1、标签映射的生成

前置知识之中值边缘检测器(MED)

Reversible Data Hiding in Encrypted Images Basedon Multi-MSB Prediction and Huffman Coding【2020】_第2张图片

 中值边缘检测器的作用:通过像素x(i,j)周围的三个像素x_1,x_2,x_3计算x的预测值px(i,j).

 预测值得确定:

Reversible Data Hiding in Encrypted Images Basedon Multi-MSB Prediction and Huffman Coding【2020】_第3张图片

具体操作

m\times n的原始图像使用中值边缘检测器(MED)进行像素预测得到px(i,j)。然后将x(i,j)px(i,j)通过下式转化为八位二进制序列,标记为  x^k(i,j) 和 pk^k(i,j) ,其中 k=1,2,...,8

然后从高位(MSB)到低位(LSB)依次比较 x^k(i,j) 和 pk^k(i,j) 的值,相同值的位数就是 x(i,j)像素的标签。因为我们把真实像素值和预测像素值转换成八位二进制,所以像素的标签(假设为 t)就会出现9种情况,即    t=0,1,2,...,8

Reversible Data Hiding in Encrypted Images Basedon Multi-MSB Prediction and Huffman Coding【2020】_第4张图片

上标tMSB表示的是像素的前t个MSB。

当原始图像的像素值可以通过预测值获得的时候,我们就可以在该位置进行信息嵌入。所以通过标签 t 的产生,我们就可以在该像素嵌入(t+1)位的秘密信息。【前t个相同的位通过预测值就可以得到,第t+1位虽然不同,但是可以通过预测值的位置取反获得原始的真实值】

举个例子:

Reversible Data Hiding in Encrypted Images Basedon Multi-MSB Prediction and Huffman Coding【2020】_第5张图片

 所以像素x可以嵌入五位秘密信息。

注意:第一行第一列作为参考像素,不参与秘密信息的嵌入

2、图像加密

方式

流密码加密。

具体操作

首先使用密钥K_e生成伪随机矩阵r(m,n),转化为8位二进制得到r^k(i,j),然后与对应位置原像素的8位二进制进行异或计算,得到加密像素的8位二进制表示x_{e}^{k}(i,j)

 再通过下式,将二进制还原成十进制,得到加密像素x_e(i,j),可以输出加密图像I_e

Reversible Data Hiding in Encrypted Images Basedon Multi-MSB Prediction and Huffman Coding【2020】_第6张图片

3、Huffman编码

通过第一步生成的标签映射,我们可以计算出嵌入秘密信息的总量。

首先根据所要嵌入的图像,生成标签,然后统计各个标签所对应的像素个数,以像素个数为标准对标签进行Huffman编码,从大到小依次编码为\left \{ 00,01,100,101,1100,1101,1110,11110,11111 \right \},通过这种方式使标签转化成二进制。

以Lena(512×512)图像为例,如下表:-1为参考像素的个数。

进一步可以计算得到总的标签映射t对应的二进制长度 LM:其中n_t是标签为t的数量,c_t是 标签t对应的Huffman编码的长度。

4、标签映射的嵌入

一方面标签的存在就是为了还原原始图像,所以我们首先将标签嵌入到加密图像里,然后再嵌入秘密信息。另一方面,将标签嵌入到图像中后,剩下的额外空间才会被用来嵌入秘密信息。

将Huffman编码规则(二进制序列的长度)和二进制序列作为辅助信息。由于在还原像素的时候,我们需要知道当前像素的标签值,所以需要将标签嵌入到当前像素的前一个像素内,因此将部分辅助信息存储到第一行第一列的参考像素中。最后,根据标签图,将剩余的辅助信息和被替换的参考像素通过多MSB替换嵌入到加密图像中,得到最终的加密图像{I_{e}}',嵌入公式如下:

Reversible Data Hiding in Encrypted Images Basedon Multi-MSB Prediction and Huffman Coding【2020】_第7张图片

其中tI_e中当前像素x_e(i,j)的标签值,b _s是要嵌入的辅助信息。 

5、数据隐藏

数据隐藏之前需要从加密图像{I_{e}}'获得Huffman编码规则和标签映射。首先就是提取第一行和第一列的辅助信息提取Huffman编码规则和辅助信息长度,然后根据已有的规则和辅助信息长度得到当前像素的标签值t,提取出(t+1)bit的辅助信息。在得到所有的辅助信息后,我们可以根据Huffman编码规则恢复标签图。最后根据下式将用密钥K_d加密过的数据嵌入到剩余像素中,也就是图像加密保留的空间。最终得到了嵌有附加数据的加密图像{I_{ew}}'

6、数据提取和图像恢复

首先,合法的接收者会从{I_{ew}}'获得Huffman编码规则和标签映射,然后通过获得的标签可以提取参考像素以及附加数据,以上这些操作不需要密钥。

若接收者有附加数据密钥K_d,可以直接从{I_{ew}}'中获得秘密信息,但是不能重建原始图像。

若接收者有图像加密密钥K_e,利用密钥生成伪随机矩阵r,对图像进行解密,此时解密的图像中除了参考像素,其余每个像素的前(t+1)位与原始图像不同(由于嵌入了附加信息)。然后从上到下从左到右依次扫描除了参考像素之外的其它像素,根据MED来预测{x_{ew}}'(i,j)的预测像素px(i,j),然后再依据标签t就可以获得原始像素x(i,j)。重建过程如下式:

Reversible Data Hiding in Encrypted Images Basedon Multi-MSB Prediction and Huffman Coding【2020】_第8张图片

若接收者有K_dK_e则可以通过以上操作同时获得加密数据和原始图像。

学习笔记,禁止转载,如有侵权,联系立删!

多多指教~

你可能感兴趣的:(信息隐藏,计算机视觉,人工智能,图像处理,安全)