信息隐藏报告范例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第x讲隐写中的±1编码
本讲提要
隐写中的±1编码是指在隐写嵌入过程中,通过对载体样点值进行+1或−1操作表达不同的隐蔽信息。±1编码方法本质上是一种三元编码,与矩阵编码类的二元编码方法相比,在同等嵌入效率条件下具有更高的负载率,理论上可以达到更优的隐写性能。
本讲详细介绍了现有研究中出现的几种±1编码方法的原理和特点,归纳并阐述了通过加减覆盖集进行±1编码隐写嵌入的步骤。本讲还介绍了一种通过扩展方式构造加减覆盖集的方法,能够通过调节参数组合的取值获得不同的加减覆盖集,满足不同的隐写负载率或嵌入效率需求。
x.1 基本概念
为了便于表述,首先介绍本讲使用的符号标记。令x={x1,x2,⋯,x n},x i∈ℝ表示长度为n的原文样点值序列,ℝ为每个样点值的动态范围;m={b1,b2,⋯,b m},b i∈{0,1}表示长度为m的隐蔽信息比特序列;y={y1,y2,⋯,y n},y i∈ℝ表示嵌入隐蔽信息后的隐文样点值序列。
给定原文x和隐蔽信息m,隐写嵌入过程可表示为寻找满足如下条件的y
f(y)=m(1)
D(x,y)(2)
min
y
其中,公式(1)中的映射f:ℝn→{0,1}m由隐写嵌入者和接收者共享,保证接收者能够正确提取隐蔽信息;公式(2)中的函数D(∙,∙)衡量了嵌入前后原文和隐文的差异,若存在多个满足公式(1)的序列y,则根据公式(2)选择其中使D(x,y)最小的y作为嵌入后的序列,确保隐写嵌入过程对载体的扰动最小,隐写的隐蔽性最高。
公式(1)和(2)给出的是一种一般性的表述,对于每种具体的隐写方法,公式中的映射f和函数D(∙,∙)均具有不同的形式。例如,对于矩阵编码类的隐写方法[1]-[4]有f(y)=Hy,H为校验矩阵;且由于嵌入过程只修改原文样点值的LSB位,因此D(x,y)退化为嵌入过程中修改位置的数量。基于BCH编码[5][6]和格编码[7][8]的隐写方法也可以用类似的形式表达。
接收者提取隐蔽信息的过程可表示为
m=f(y)(3)基于二元编码和三元编码的隐写方法均可用上述公式(1)-(3)表示,其区别在于将载体样点值x i修改为y i的方式。图1列出了几种典型隐写算法的修改方式,其中(a)和(c)所表示的方法均可等价为二元编码,即通过两种不同的方式修改载体样点值x i,从而表达不同的隐蔽信息比特;而(b)所示的±1编
图1 典型隐写算法的修改方式
衡量隐写方法性能的主要指标包括负载率α和嵌入效率e 两种。负载率α的物理意义是每占用一个嵌入位置平均所能承载的隐蔽信息比特数,计算公式为
α=m n
(4)
嵌入效率e 的物理意义是,平均每修改一个位置所能表达的信息比特数,计算公式为
e =αd =m n E (K )n
=m E (K )
(5) 其中,d 称为平均修改量(expected number of modifications per pixel, ENMPP ),E (K )表示嵌入过程中总修改次数的期望值。
这里以一组对比数据直观的比较二元编码与三元编码的性能差异。例如,使用(7,4)汉明码的矩阵编码隐写方法是一种典型的基于二元编码的隐写方法,该方法在7个样点值中嵌入3比特隐蔽信息,即m =3,n =7,因此负载率α=37⁄;嵌入时最多修改1个位置,其修改次数的期望值为
E (K )=1×0+7×123=7
8
(6) 因此嵌入效率为
e =
m E (K )=247
≈3.4 (7)
另一方面,如果使用±1编码方法,只需占用4个样点值即可嵌入3比特隐蔽信息(具体嵌入过程可参见
5.2节第2小节的示例),即m =3,n =4,因此负载率α=34⁄;嵌入时同样最多修改1个位置,嵌入效率e ≈3.4不变。从这个例子可以直观的看出,使用±1编码方法进行隐写嵌入,可以在同等嵌入效率情况下获得更高的负载率;反之,如果限定相同的负载率,则±1编码方法可以达到更高的嵌入效率。
需要特别指出的是,二元编码方法可以通过一种“双层嵌入”的机制提高负载率。该机制的原理与传统意义的编码方法不同,且实现较为复杂,通常需要依赖湿纸编码协助接收者定位第二层中的有效嵌入位置。这种双层嵌入机制不在本讲讨论范围之内,其具体嵌入步骤可参见文献[9]。
x.2 基于±1编码方法的隐写方法
1. LSB Matching Revisited
LSB Matching Revisited (下称LSBM -R )是Mielikainen [10]提出的一种基于±1编码的隐写方法,通过对载体样点值进行+1或−1操作表达不同的信息,提高隐写的嵌入效率。该方法以一对样点值x ={x 1,x 2}为嵌入对象,嵌入2比特的隐蔽信息m ={b 1,b 2}。该方法的特点在于,使用两个样点值的奇偶关系表达额外的信息比特,使修改后的样点值y ={y 1,y 2}满足
LSB (y 1)=b 1 LSB (⌊y 1
2
⌋+y 2)=b 2
(8)
公式(8)可改写为公式(1)所表达的一般形式[11]
f(y)=(y1+2y2)mod 4=m4(9)
可以验证,对y1,y2进行+1或−1操作时会获得不同的映射值f(y)。上式中的m4表示将待嵌入的隐蔽信息m转化为整数后模4的余数。
LSBM-R方法占用2个样点值嵌入2比特隐蔽信息,即m=2,n=2,负载率α=1;嵌入时修改次数的期望值
E(K)=1×0+3×1
22
=
3
4
(10)
因此嵌入效率为
e=
m
E(K)
=
8
3
≈2.7(11)
2. Generalized LSB Matching
Li等人[11]提出了一种称为G-LSB-M(generalized LSB matching)的隐写方法,将LSBM-R方法的思想推广到更一般的形式(LSBM-R方法为该形式在n=2情况下的一种特例)。该方法的映射f的一般表达式为
f(y)=(∑a i y i
n
i=1)
mod 2m
≜ay T(12)
其中向量a={a1,a2,⋯,a n},a i∈ℤ2m,ℤ2m表示2m阶有限循环群(其中元素为0∼2m−1的整数)。向量a是影响负载率和嵌入效率的关键因素,其构造方法将稍后做详细论述。以下结合实例讲解具体的嵌入过程。本讲涉及到的计算,如无特殊说明均在有限循环群ℤ2m上进行,即计算结果均需要取模2m的余数。
假设隐写者与接收者通过某种安全信道或密钥协商过程确定向量a={1,2,3,4}。给定载体样点值序列x={41,248,245,124}和隐蔽信息m={1,0,1},隐写者首先计算
w=m23−ax T=(5−(1×41+2×248+3×245+4×124))
mod 23
=(5−1768)mod 8=5
(13)
随后,寻找满足f(s)=as T=w的向量s={s1,s2,⋯,s n},s i∈{0,±1}。s i∈{0,±1}这个限制条件,确保了隐写嵌入过程中只对载体样点值进行+1或−1修改。在这种情况下,as T的计算结果可直观理解为向量a中元素a i的加减线性组合。当满足条件的s存在多个时,选择其中非零元素最少的一个。对于上述例子,一个容易找到的向量s={1,0,0,1}(1+4=5);但注意到上述运算是在8阶有限循环群上进行的,因此可以找到另一个满足条件的向量s={0,0,−1,0}(−3=5)。显然后者的非零元素个数更少,因此选择s={0,0,−1,0}作为隐写嵌入过程的修改向量。
最后,计算嵌入隐蔽信息后的样点值序列y
y=x+s={41,248,245,124}+{0,0,−1,0}={41,248,244,124}(14)
即可完成嵌入过程。
接收者接收到y={41,248,244,124}后,计算
m=ay T=(1×41+2×248+3×244+4×124)
=(1765)mod 8=5={1,0,1}
(15)
即可提取出隐蔽信息。
在这个例子中,隐写者占用4个嵌入位置嵌入了3比特隐蔽信息,负载率α=34
⁄;嵌入过程只修