基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写方法转让专利

申请号 : CN201811284843.3

文献号 : CN109660693B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 罗向阳包震坤张祎杨春芳刘粉林王道顺王平甘军军张月

申请人 : 中国人民解放军战略支援部队信息工程大学

摘要 :

本发明涉及信息隐藏技术领域,尤其涉及基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写方法。基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写方法,包括:确定修改区域;设计相应的失真函数;利用纠错编码对待嵌入消息进行编码;利用鲁棒隐写嵌入纠错编码;进行JPEG压缩;利用隐写的译码得到含错的信息流,并使用纠错编码的译码进行纠错;得到原始嵌入的消息。本发明能够在更大范围中抵抗不同质量因子的JPEG压缩攻击,且能以高概率保证嵌入消息能被完整地提取出来,同时,承载相同秘密消息的情况下,本发明具有更强的抗检测性。

权利要求 :

1.基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写方法,其特征在于,包括以下步骤:步骤1:确定修改区域;

所述步骤1包括:

步骤1.1:对JPEG图像进行解码,得到DCT系数的分块;

步骤1.2:将DCT系数的分块对应到虚拟隐写载体的元素上;

步骤1.3:建立鲁棒信道;

步骤2:为虚拟隐写载体的元素设计相应的失真函数;

步骤3:利用纠错编码对待嵌入消息进行编码;

步骤4:利用鲁棒隐写嵌入纠错编码;所述纠错编码为串行级联码,所述串行级联码由外码和内码两部分组成;

步骤5:进行JPEG压缩;

步骤6:利用隐写的译码得到含错的信息流,并使用纠错编码的译码进行纠错;

步骤7:得到原始嵌入的消息。

2.根据权利要求1所述的基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写方法,其特征在于,编码时,串行级联码按照先编外码再编内码的顺序进行;译码时,按照和编码时的反向顺序进行。

3.根据权利要求1所述的基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写方法,其特征在于,在设计串行级联码时所述外码使用卷积码且所述内码使用RS编码。

4.根据权利要求1所述的基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写方法,其特征在于,所述步骤3包括:步骤3.1:使用码率为2/3的(3,2,5)卷积码对待嵌入消息进行外编码,得到外码码字,并对输出的外码码字进行打孔;

步骤3.2:对打孔后的外码码字进行交织操作;

步骤3.3:使用码率为3/4的(200,150,8)RS编码对交织操作后的外码码字进行内编码。

5.根据权利要求3或4所述的基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写方法,其特征在于,卷积码的译码为维特比译码算法,且码深度为25。

6.根据权利要求3或4所述的基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写方法,其特征在于,RS编码的译码为最小距离译码,且码深度为25。

说明书 :

基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写

方法

技术领域

[0001] 本发明涉及信息隐藏技术领域,尤其涉及基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写方法。

背景技术

[0002] 隐写术是一种利用公开载体构建隐蔽通讯信道的技术。近些年,随着移动通讯技术的发展,越来越多的数字载体通过智能移动终端进行接送,然而由于带宽、资费、流量等限制,终端往往会对在这类信道传输的载体进行有损压缩,从而导致经典的隐写术在这类情况下无法正确的提取嵌入消息。因此,研究能在这类信道中完整的提取嵌入消息,且较鲁棒水印算法具有更强抗隐写检测性的隐写算法,具有很高的实用价值。
[0003] 已有的鲁棒隐写算法DCRAS(DCT Coefficient Relationship Based Adaptive Steganography)比传统的JPEG自适应隐写算法在抵抗JPEG压缩的性能上有很大提升,且较鲁棒水印算法具有更强的抗检测性。但是该算法在抵抗JPEG压缩时,在JPEG压缩攻击的质量因子与载体图像质量因子不同时,秘密消息难以完全正确提取出来,这种情况下,提取出的消息存在1%左右的错误,从而导致一些实际应用中的问题,研究如何降低此错误率,保证消息能够高概率的完全正确提取出,同时提高其安全性,即抗检测性,是目前鲁棒隐写需要解决的问题。

发明内容

[0004] 针对上述鲁棒隐写需要解决的问题,本发明提出基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写方法,提高了嵌入消息的正确提取率和安全性。
[0005] 为了实现上述目的,本发明采用以下技术方案:
[0006] 基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写方法,包括以下步骤:
[0007] 步骤1:确定修改区域;
[0008] 步骤2:设计相应的失真函数;
[0009] 步骤3:利用纠错编码对待嵌入消息进行编码;
[0010] 步骤4:利用鲁棒隐写嵌入纠错编码;
[0011] 步骤5:进行JPEG压缩;
[0012] 步骤6:利用隐写的译码得到含错的信息流,并使用纠错编码的译码进行纠错;
[0013] 步骤7:得到原始嵌入的消息。
[0014] 优选地,所述步骤1包括:
[0015] 步骤1.1:对JPEG图像进行解码,得到DCT系数的分块;
[0016] 步骤1.2:将DCT系数的分块对应到虚拟隐写载体的元素上;
[0017] 步骤1.3:建立鲁棒信道。
[0018] 优选地,所述步骤2指为虚拟隐写载体的元素设计相应的失真函数。
[0019] 优选地,所述纠错编码为串行级联码,所述串行级联码由外码和内码两部分组成。
[0020] 优选地,编码时,串行级联码按照先编外码再编内码的顺序进行;译码时,按照和编码时的反向顺序进行。
[0021] 优选地,在设计串行级联码时所述外码使用卷积码且所述内码使用RS编码。
[0022] 优选地,所述步骤3包括:
[0023] 步骤3.1:使用码率为2/3的(3,2,5)卷积码对待嵌入消息进行外编码,得到外码码字,并对输出的外码码字进行打孔;
[0024] 步骤3.2:对打孔后的外码码字进行交织操作;
[0025] 步骤3.3:使用码率为3/4的(200,150,8)RS编码对交织操作后的外码码字进行内编码。
[0026] 优选地,卷积码的译码为维特比译码算法,且码深度为25。
[0027] 优选地,RS编码的译码为最小距离译码,且码深度为25。
[0028] 与现有技术相比,本发明具有的有益效果:
[0029] 本发明提出针对鲁棒隐写的新的纠错编码,该编码由卷积码和RS编码两部分组成,其中卷积码为外码,RS编码为内码,内、外码中间利用交织器进行级联,并设定适合的编码参数,利用此编码改进后的鲁棒隐写算法能够在更大范围中抵抗不同质量因子的JPEG压缩攻击。
[0030] 本发明针对如何进一步提高鲁棒隐写算法抗压缩性和抗检测性的问题,在鲁棒隐写算法的基础上提出基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写方法,通过设计串行级联码,利用卷积码和RS编码的特点,并结合打孔技术,提出一种适用于鲁棒隐写的高纠错能力、高码率的串行级联码,并在它的基础上对鲁棒隐写算法进行了改进,本发明能以高概率保证嵌入消息能被完整地提取出来,同时,承载相同秘密消息的情况下,本发明提出的方法具有更强的抗检测性。

附图说明

[0031] 图1为本发明基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写方法的基本流程示意图之一。
[0032] 图2为本发明基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写方法的基本流程示意图之二。
[0033] 图3为本发明基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写方法的串行级联码的构造示意图。
[0034] 图4为本发明基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写方法的卷积码的结构示意图。

具体实施方式

[0035] 为了便于理解,对本发明的具体实施方式中出现的部分名词作以下解释说明:
[0036] RS编码:是Irving S.Reed和Gustave Solomon提出的一类基于有限域上一元多项式的线性分组编码。
[0037] 下面结合附图和具体的实施例对本发明做进一步的解释说明:
[0038] 实施例一:
[0039] 如图1所示,本发明的一种基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写方法,包括以下步骤:
[0040] 步骤S101:确定修改区域;
[0041] 步骤S102:设计相应的失真函数;
[0042] 步骤S103:利用纠错编码对待嵌入消息进行编码;
[0043] 步骤S104:利用隐写嵌入纠错编码;
[0044] 步骤S105:进行JPEG压缩;
[0045] 步骤S106:利用纠错编码的译码得到含错的信息流,并进行纠错;
[0046] 步骤S107:得到原始嵌入的消息。
[0047] 实施例二:
[0048] 如图2所示,本发明的另一种基于串行级联码和DCT系数相对关系的JPEG图像鲁棒隐写方法,包括以下步骤:
[0049] 步骤S201:确定修改区域,包括:
[0050] 步骤S2011:对JPEG图像I进行解码,得到一系列量化取整后DCT系数D的8×8分块Dk={Dk(i),i=1,2,...,64},其中,k=1,2,...,B,B为图像8×8分块的总块数,Dk(i)表示第k个量化DCT分块中第i个系数;
[0051] 步骤S2012:利用DCT系数Dk(i)与相邻分块相同块内位置DCT系数均值 的相对关系,将4个相邻DCT系数对应到一个长度为l1的虚拟隐写载体 上的元素xj上,1
≤j≤l1,满足:
[0052]
[0053] 步骤S2013:建立鲁棒信道:
[0054] 在X作为载体的基础上建立鲁棒信道,即确定如何将X嵌入消息后得到的载密映射到原载体{Dk}1≤k≤B上:
[0055]
[0056] 确定式(2)中σki的值,设且T1,T2为给定的阈值且T1
[0057]
[0058] 其中,T1=15,T2=30,得到嵌入0时的参数集 和嵌入1时的参数集[0059] 步骤S202:为虚拟隐写载体的元素设计相应的失真函数:
[0060] 将抗检测性能较强的J-UNIWARD算法失真函数 与提出的鲁棒信道结合,且预先知道所遭受JPEG压缩攻击的质量因子qf,可以将载体图像IMG使用质量因子为qf的JPEG压缩进行一次压缩,压缩后得到 其图像DCT系数 的8×8分块和邻域均值 利用这个预处理得到的 和 设计出X上的
失真函数DFR(xj,yj):
[0061]
[0062] 其中, 和 分别为DCT系数Dk(i)在嵌入消息后修改幅度为1和2的J-UNIWARD失真值 且wet_cost表示湿点失真值,通常设为较大值,令STC编码在进行嵌入时尽可能不修改该点。之后便可使用式(4)所定义的失真函数在鲁棒载体X上利用STC编码嵌入秘密消息得到载密对象Y,并利用式(2)对载体进行实际的修改,从而得到嵌入秘密消息后能抵抗JPEG压缩的载密载体。
[0063] 步骤S203:利用纠错编码对待嵌入消息进行编码,所述纠错编码为串行级联码,所述串行级联码由外码和内码两部分组成;串行级联码的基本构造如图3所示,其中,编码时,串行级联码按照先编外码再编内码的顺序进行;译码时,按照和编码时的反向顺序进行;步骤S203进一步包括:
[0064] 步骤S2031:使用码率为2/3的(3,2,5)卷积码对待嵌入消息进行外编码,得到外码码字,并对输出的外码码字进行打孔,具体如下:
[0065] 一个卷积码也可表示为(n,k,t),其中,n为编码器输出的数据分组比特长度,k为编码器输入的数据分组比特长度,t为卷积码约束长度。
[0066] 将待嵌入的秘密消息比特序列 msgi∈{0,1}每2比特分为一组,如果l2不为偶数,则在最后补一个0比特,得到分组后的消息序列其中cmi=(msg2i-1,msg2i)。
[0067] 构建的所使用的外码为一个典型的码率为2/3的(3,2,5)卷积码,对分组消息序列cm进行编码,得到外码码字序列 l4=3l3,卷积码的结构如图4所示。
[0068] 可以看出,该卷积码的特点是其输出的码字不止与当前输入的信息比特组有关,还与其之前的t-1个输入的信息比特组有关,其编码特点是具有迭代性。同时,该卷积码编码器每输入2比特信息,将会输出3比特的卷积码字,即表示该串行级联码的码率为2/3。为使码率进一步提高,使用打孔矩阵PM对编码后的码字进行打孔:
[0069]
[0070] 矩阵PM中的三列分别表示外码码字序列oc中的三组码字(oc3i-2,oc3i-1,oc3i)T,i=v,v+1,v+2输出比特如何取舍,打孔前将编码器的输出比特序列按照PM的列数进行分组,如果矩阵中元素为“1”则表示其对应的输出比特被保留,如果矩阵中元素为“0”则表示对应的输出比特被舍去。矩阵PM的设计思想是:oc3i-2是原序列元素,所以在打孔时应对该序列元素全部保留;同时,oc3i-1和oc3i作为卷积迭代信息的输出元素,所以在打孔时oc2和oc1中的元素在同一时刻上不能同时舍去,即打孔矩阵的下两行的同一列不同时为“0”。当将外编码器得到的码序列按照式(5)进行打孔后,得到打孔后的外码码字序列ocpunc,外码的码率变为(6/9)×(9/7)=6/7。
[0071] 步骤S2032:得到外编码码字ocpunc后,将其进行交织操作,以减少内外码之间的相关性从而提高级联码的性能,使用的交织器是随机交织,即通过一个密钥seed控制的伪随机生成器将外编码序列进行随机置乱,得到置乱后的外编码码字iocpunc,接着再进行内编码。
[0072] 步骤S2033:使用码率为3/4的(200,150,8)RS编码对交织操作后的外码码字进行内编码,具体如下:
[0073] 将RS编码的编码参数记为(N,K,M),其中N为编码器输出的数据分组比特长度,N≤2M,K为编码器输入的数据分组比特长度,M为GF(2M)的本原多项式的阶数,码率为K/N,设参M
数 使用的参数为(200,150,8),伽罗华域GF(2),M=8上码率为3/4的RS编码,伽罗华域GF(2M)的本原多项式PRM(x)设为:
[0074] PRM(x)=x8+x4+x3+x2+1(6)
[0075] RS编码拥有2M-1=255个码字,其中每个码字都可以看成是伽罗华有限域GF(2M)中的一个元素,而RS编码的生成多项式g(x)的构造为:
[0076] g(x)=(x+α1)(x+α2)…(x+α2T)=x50+g49x49+…+g1x+g0(7)
[0077] 其中,α是GF(2M)中的素元,gi∈GF(2M),i=0,1,...,49。
[0078] 完成上述RS编码预操作后,将交织操作后的外码码字iocpunc进行实际的RS编码:首先把iocpunc按照RS编码的参数K=150进行分组(在码字尾部补零使其能够被K整除),得到待RS编码的分组序列 其对应的信息多
项式为:
[0079]
[0080] 编码后的码字由前面K=150个信息码元符号,后面N-K=50个纠正码元构成,而为(i)了得到其对应的多项式,首先将信息码,即待编码的码字对应的多项式m (x)提升N-K=50阶,即乘以x50;然后与生成多项式g(x)相除得到余数r(x);最后计算出x50m(i)(x)+r(x)即为编码后的码字所对应的多项式,其可抵抗的最长连续错误比特长度T=25。
[0081] 步骤S204:利用鲁棒隐写嵌入纠错编码;
[0082] 作为一种可实施方式,利用STC编码隐写嵌入纠错编码。
[0083] 步骤S205:公开信道进行JPEG压缩。
[0084] 步骤S206:利用STC译码得到含错的信息流,使用纠错码的译码方法进行纠错:
[0085] 外码的译码即卷积码的译码为维特比译码算法,且码深度为25;内码的译码即RS编码的译码为最小距离译码,且码深度为25;
[0086] 译码时按照先译内码再译外码的顺序、即先内解码再外解码的顺序进行。
[0087] 步骤S207:得到原始嵌入的消息:根据STC编码提取算法得到嵌入的消息;
[0088] 经过JPEG压缩后图像记为 其图像DCT系数、分块以及邻域均值分别记为和 提取出的载密载体记为 其提取规则如下:
[0089]
[0090] 以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。