目录
1.摘要
利用(7,4)汉明码的一致性校验矩阵(Parity check matrix)对灰度图像素值最低有效位进行编码,使校验矩阵与编码后数据的乘积为待隐藏的秘密信息,实现信息嵌入与提取,其理论嵌入效率约为3.43、嵌入率约为0.43bpp(bits per pixel)。
2. 信息嵌入
2.1 获取载体数据
将图像分块,具体分块方式及大小取决于实际需要,如下图所示,以将lena灰度图分割为4×4大小的块为例,获得每块的像素值。
提取块像素的最低有效位,作为拟用于隐藏信息的原始载体数据。按每7个元素为一组对原始载体数据进行分组,即每7个像素的最低有效位为一组载体数据。分组大小取决于校验矩阵,此处取每7个元素为一组,是因为(7,4)汉明码的一致性校验矩阵(Parity check matrix)大小为3行7列,取其列数即为7。
将载体数据用列向量形式表示,以上图第1组载体数据为例,可表示为列向量X。分块中不足一组的数据,可从下一分块取差额补足,例如上图分组后剩2个元素,可先从下一块取5个元素构成一个包含7个元素的分组,再对下一块其余元素进行分组,以此类推即可完成所有载体数据分组。
2.2 计算载体修改位置
假设需要隐藏的秘密信息为二进制序列110,将其用列向量s表示如下。
(7,4)汉明码的一致性校验矩阵为H如下所示,为一个3行7列的矩阵,若将每个列向量作为1个3bits的二进制数转换为十进制,从左到右的数值依次为1、2、3、4、5、6、7。
计算校验矩阵H与载体X的“乘积”,“乘积”加引号是因为此处采用的不是线性代数中矩阵与向量的乘积运算,计算过程中需将加法运算替换为异或运算。下例中表示“乘积”,表示异或。
计算特征值d,d为将秘密信息s与c进行异或运算得到的结果。
定位载体修改位置,并对原始载体X进行修改获得含密载体Y。即找出校验矩阵H中与d相等的列向量所在的列数,记为i;将载体X中的第i行元素取反得到含密载体,记为Y。上例中,H中与d相同的列为第3列,即,将列向量X的第3行元素取反,获得含密载体Y如下。
2.3 输出含密载体图像
用Y替换原始载体图像中X所在位置的像素的最低有效位,根据前面的例子,即将原始载体图像(右图)中第1行的第3像素值由原来的49改为48。
重复上述步骤,根据秘密信息长度,完成对相关像素值修改后,即可获得含密载体图像。
3. 信息提取
3.1 获取含密载体数据
采用嵌入信息时使用的方法对含密载体图像进行分块,获得每块的像素值。如下图所示,以前述lena灰度图为例,将其分割为4×4大小的块,并提取每块的像素值。
提取块像素的最低有效位,作为拟用于提取秘密信息的含密载体数据。与嵌入时一样,按每7个元素为一组对载体数据进行分组,即每7个像素的最低有效位为一组载体数据。
将含密载体数据用列向量形式表示,以上图第1组载体数据为例,可表示为列向量。
3.2 提取秘密信息
计算校验矩阵H与含密载体数据的“乘积”,计算结果即为提取到的秘密信息。其中,“乘积”加引号是因为此处采用的不是线性代数中矩阵与向量的乘积运算,与信息嵌入过程一样,计算过程中需将加法运算替换为异或运算。
从上述计算结果易知,,即秘密信息提取成功。
4. 结论
基于(7,4)汉明码的隐写技术,可通过对原始载体数据进行编码获得含密载体,实现信息的嵌入和提取。理论嵌入效率约为3.43,即平均每修改1bit数据可嵌入3.43bits秘密信息,嵌入率约为0.43bpp(bits per pixel),即平均每个像素可嵌入0.43bits秘密信息,拥有较高嵌入效率和可观的嵌入容量。