信息隐藏报告范例

第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,1m由隐写嵌入者和接收者共享,保证接收者能够正确提取隐蔽信息;公式(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×1
23
=
7
8(6)
因此嵌入效率为
e=
m
E K
=
24
7
≈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={x1,x2}为嵌入对象,嵌入2比特的隐蔽信息m={b1,b2}。该方法的特点在于,使用两个样点值的奇偶关系表达额外的信息比特,使修改后的样点值y={y1,y2}满足
LSB y1=b1
LSB y1
2
+y2=b2
(8)
公式(8)可改写为公式(1)所表达的一般形式[11]
f y=y1+2y2mod 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=1mod 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−1768mod 8=5
tc轴承
(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
=1765mod 8=5={1,0,1}
(15)
即可提取出隐蔽信息。
在这个例子中,隐写者占用4个嵌入位置嵌入了3比特隐蔽信息,负载率α=34;嵌入过程只修
改了一个样点值,其嵌入时修改次数的期望值E K可通过穷举w的所有取值(0~2m−1)计算获得。对于w的各种取值,修改向量s即其非零元素个数如表1所示。可以计算出其修改次数的期望值
玻璃丝包线
E K=1×0+7×1
8
=
7
8
(16)
因此嵌入效率为
e=
m
E K
=数字标签
24
7
≈3.4(17)
表1a=1,2,3,4对应的修改向量列表
3.加减覆盖集的概念和示例
通过上述分析可以看出,向量a是影响隐写负载率和嵌入效率的关键因素。如何设计向量a是构造有效的±1编码隐写方法的难点。Li等人[11]提出了有限循环上加减覆盖集的概念,以描述±1编码中所需的向量a的性质。对于有限循环ℤ2m上的一个集合a={a1,a2,⋯,a n},如果对于任意的w∈ℤ2m,都存在一个向量s={s1,s2,⋯,s n},s i∈0,±1,使得as T=w成立,则称a为ℤ2m上的一个加减覆盖集。
加减覆盖集的物理意义是,通过该集合上元素的加减线性组合能够表达(覆盖)有限循环ℤ2m上的所有整数。这种特性确保了隐写者在嵌入过程中一定能够到满足f s=as T=m2m−ax T的修改向量s完成嵌入。加减覆盖集a中元素的个数n决定了隐写负载率,元素的具体取值组合则会影响计算出的修改向量s中非零元素的个数,从而影响嵌入效率。
以有限循环ℤ8为例,w∈ℤ8=0,1,2,⋯,7。显然,a1=1,2,3,4,5,6,7是ℤ8的一个加减覆盖集,容易验证
(1)对w=0,s=0可满足as T=w;
(2)对w的其他取值,令s w=1,其余s i=0可满足as T=w。
注意对于有限循环ℤ8,其对应的隐蔽信息为3比特,因此使用a1进行隐写嵌入时,负载率α=37,修改次数期望E K=78,嵌入效率e=247。事实上,使用a1进行隐写嵌入的方法等价于使用7,4汉明码的矩阵编码。文献[1]在论述F5的嵌入过程时即给出了一种与公式(12)相似的表达方式。
上一小节中给出的示例a2=1,2,3,4是ℤ8的另一个加减覆盖集,其负载率α=34,嵌入效率e=247,隐写性能全面优于a1。为了进一步说明加减覆盖集对隐写性能的影响,另举a3=1,2,3为例,容易验证a3也是ℤ8的一个加减覆盖集,如表2所示。
表2a=1,2,3对应的修改向量列表
a3包含3个元素,因此嵌入负载率α=1;借助表2容易计算其修改次数期望值
E K=1×0+6×1+1×2
8
=1(18)
因此嵌入效率为
e=
m
E K
=3(19)
与a2相比,使用a3进行隐写嵌入时负载率更高、嵌入效率却略有下降。由此可以看出,不同的加减覆盖集a对应着不同的负载率和嵌入效率,如何根据需要构造相应的加减覆盖集是设计±1编码隐写方法的关键。
4.加减覆盖集的构造方法
Li等人在文献[11]中提出的G-LSB-M方法中,在确定了隐写负载率(即确定加减覆盖集a的元素个数)
后,通过穷举搜索寻嵌入效率最高的加减覆盖集。当m>6时,穷举搜索的计算复杂度过高难以实现。为了解决这一问题,可使用扩展方法构造加减覆盖集。
扩展方法的基本思路是从有限循环ℤ2m的全集合a u={0,1,2,⋯,2m−1}出发,在保持加减覆盖特性不被破坏的前提下,逐渐削减集合中的元素个数,去除其中的冗余元素,从而获得最终用于隐写嵌入的扩展加减覆盖集。仍以上节所举的a1=1,2,3,4,5,6,7和a2=1,2,3,4为例,比较二者可以看出,a1中的元素5,6,7均可用其余元素的加减线性组合表达(5=−3,6=−2,7=−1),因此去掉这三个元素得到的a2仍为ℤ8的加减覆盖集。可见,除去那些能够用其他元素的加减线性组合表达的“冗余元素”,不会破坏加减覆盖集的特性。
基于这种思想设计的扩展加减覆盖集方法包含一个只需执行一次的固定步骤(下称“固定扩展”)和一个可重复执行多次的迭代步骤(下称“可重复扩展”),每次扩展之后获得的集合都仍然保持有限循环上的加减覆盖特性,且元素个数比扩展前更少。其中,可重复扩展步骤包含若干设计参数,使用不同的参数取值组合可生成不同的扩展加减覆盖集,获得不同的嵌入效率和负载率。
以下结合一个m=10的实例介绍扩展加减覆盖集的方法。有限循环ℤ210的全集合为a u= {0,1,2,⋯,1023}。首先通过固定扩展步骤,去除元素0以及全集合a u中的后半部分元素,得到的a0={1,2,3,⋯,512}仍为ℤ210的加减覆盖集。随后,保留a0中的前p个元素不变,将剩余元素划分为若干组,长效复合肥
每组包含2p+1个元素(最后一组的元素数量可能不足2p+1个,但这并不影响可重复扩展步骤的实施)。以p=2为例,a0可划分为
a0={1,2,3,4,5,6,7,8,9,10,11,12⋯,508,509,510,511,512}(20)

本文发布于:2024-09-22 04:07:18,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/212766.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:嵌入   隐写   加减   覆盖   方法
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议