1、基于RRBE的结构要求内容所有者在加密之前对图像进行额外的预处理,因此不适应于轻量级客户端应用程序;
2、由于加密过程中邻近像素值之间的相关性被破坏,因此基于VRAE方案的嵌入率相对较低。
基于块的VRAE方案主要利用块内像素的相关性来腾出空间进行数据隐藏。
内容所有者首先将封面图像划分为块。然后,分组置换和按位流密码过程被应用于加密图像。
在接收到加密图像时,数据隐藏者分析图像块【采用全搜索算法分析块标记的最佳方式】并自适应地决定最优块类型标记策略。基于自适应分组编码,对图像进行压缩以腾出空闲空间,并将秘密数据加密嵌入到空闲空间。
根据授权,接收方可以恢复封面图像,提取秘密数据,或两者兼而有之。
更进一步说,该方案分成三个部分,A图像加密、B分块压缩和数据隐藏、C秘密数据提取和覆盖图像恢复
该操作发生在内容所有者方,具体的加密分为两个步骤,首先将图像分块,然后利用密钥对块进行置乱操作(块内不变),然后使用相同的密钥对每一个块应用流密码加密算法进行加密。
例如,设原始图像为,将图像分为大小的块,块内每一个元素的下标用表示,,如图:
那么,原始图像按照 块 进行索引的公式可计算为下式:
对分块后的矩阵使用加密密钥对块进行置乱操作。然后使用相同的密钥生成伪随机矩阵,进行同样的分块,最终大小为,对分块后的矩阵进行流密码异或加密操作获得。
数据隐藏者接收到加密图像之后,先对图像进行的不重叠分块处理,然后对每一个进行块标记,总共分为9类(0-8个连续相同的位平面)。具体而言,在每一个块内,作为参考像素,通过下式计算得到.
也就是说,将块内的三个像素分别与参考像素 进行异或操作,得到三个值,记录具有连续相同的值的比特平面数量(从上到下,块中要么全为0要么全为1),也就是说。
如图,给出0,3,4,7四种类型的块,其中白的块代表1,灰色的块代表0。
以Type3为例子,块内元素分别为251,232,233,234,和8位二进制对应关系为:
十进制 | 二进制 | |||||||
251 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
232 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 |
233 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 |
234 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 |
通过压缩相同位平面的数值获得冗余空间,所以参考像素、压缩类型、未被压缩的值(位平面中块内元素不等)都需要记录才能保证无损恢复。
如图, 加密像素对应的8个位平面,其中红色部分记录·块的类型,占用两个bit(00、01、10、11,所以分成了四种),橙色的依次记录三个像素 位平面中块内不同元素的值,以表格中的Type3为例,分别记录11 01 10 10 00 01 00 1,绿色部分为压缩相同的数值留出的空间,黄色共有8个bit,正好保存参考像素的值1110 1010。
给出一个具体的例子,注意这里的Original block是信息隐藏者接收的加密后的数据,Final block是指压缩完后并且在腾出空间嵌入秘密信息的像素值表示。
在之前的操作中,连续的相同的位平面可能有9种(0-8个连续相同的位平面),但是在压缩块的数据结构中,只用了两个bit来表示,而这种表示只能表示四种类型,所以提出一种自适应的块同步策略。就以上述提出的用2个bit作为块类型标记作为介绍。
其中T=0、1表示为00,T=2表示为01(有2位bit可压缩),T=3、4表示为10(有3位bit可压缩),T=5、6、7、8表示为11(有5位bit可压缩),其中由于压缩空间和参考像素需要的长度相矛盾,所以时表示不可嵌入块。虽然有些连续的空间没有利用,但是缩短了类型标签的代码,也算节省了空间。
根据上图,我们不得不思考根据不同的图像特征,如何确定 更合适,更能充分利用可用空间,优化压效率。比如不同的类标签长度可能在不同的图像中嵌入容量不同,如图:
因此,提出根据目标图像的实际块类型分布进行全面搜索,根据给定所有的块类型的数量来确定最优的方案。
记录所有块的连续空间的大小公式:
下式用来计算得到的整体空出的空间:【具体推导查看原文】
注意,不可嵌入块除了块类型的标记替换之外,其它不可以改变,被替换的数值作为辅助信息优先与秘密信息一同嵌入到腾出的空间中。图中紫色方块和蓝色方块。
数据隐藏者获得块标签类型等辅助信息后,通过将秘密信息进行加密,嵌入到冗余空间。
以上两个步骤给出下面的例子,如图: