首页> 中国专利> 一种基于压缩域的MP3自适应隐写方法

一种基于压缩域的MP3自适应隐写方法

摘要

本发明涉及多媒体信息安全领域,具体涉及一种基于压缩域的MP3自适应隐写方法,包括秘密信息的嵌入和秘密信息的提取两个步骤。本发明方法以原始音频信号经过子带滤波器转换及量化编码后的频域系数为隐写的基本单位,利用信息编码工具Syndrome Trellis Codes(STC)进行自适应嵌入信息并实现正确信息提取。经大量实验证明,本隐写方法与现有的基于频域系数修改的音频隐写方法相比,具有更高的嵌入容量及安全性。因此,本发明方法对隐秘通信等应用领域具有重要意义。

著录项

  • 公开/公告号CN106228981A

    专利类型发明专利

  • 公开/公告日2016-12-14

    原文格式PDF

  • 申请/专利权人 中山大学;

    申请/专利号CN201610634457.7

  • 发明设计人 张悦;骆伟祺;

    申请日2016-08-03

  • 分类号G10L15/06(20130101);G10L19/018(20130101);G10L25/03(20130101);

  • 代理机构44102 广州粤高专利商标代理有限公司;

  • 代理人林丽明

  • 地址 510275 广东省广州市海珠区新港西路135号

  • 入库时间 2023-06-19 01:08:44

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-07-19

    授权

    授权

  • 2017-01-11

    实质审查的生效 IPC(主分类):G10L15/06 申请日:20160803

    实质审查的生效

  • 2016-12-14

    公开

    公开

说明书

技术领域

本发明涉及多媒体信息安全领域,更具体地,涉及一种基于压缩域的MP3自适应隐写方法。

背景技术

音频隐写是信息隐藏技术的一个重要分支。目前的基于压缩域的MP3音频隐写算法依据隐写操作发生的位置分为三种类型:量化编码前隐写,边量化边隐写及哈夫曼熵编码隐写。量化编码前隐写的方法面对的挑战是如何正确提取秘密信息,哈夫曼熵编码隐写方法会直接降低隐写音频的听觉质量,而边量化边隐写可以在保证隐写音频听觉质量、隐蔽性的同时实现完整秘密信息的正确提取。经典的MP3stego音频隐写工具采用的隐写方法即为边量化边隐写,但其每个颗粒仅可以嵌入1个比特,嵌入容量低且安全性不高,因而不足以满足实际应用中的信息嵌入要求。

发明内容

本发明为克服上述现有技术所述的不足,提供一种基于压缩域的MP3自适应隐写方法。该方法基于信息编码工具STC,选取原始音频信号经过MP3量化编码后的频域系数作为嵌入载体,通过各频域系数修改代价的设定自适应地修改嵌入载体的若干位以达到秘密信息嵌入的目的,并可以实现秘密信息的正确提取。其中,信息编码工具STC可以根据嵌入单元设定的修改代价,自适应选取合适的频域系数进行修改,以实现最小化所有频域系数的修改代价之和。嵌入单元设置的代价值越大,该频域系数被期望修改的几率就越低。本发明可嵌入的秘密信息容量大,隐蔽性高,且经实验证明,本发明方法可有效抵抗现有的基于压缩域的MP3音频隐写分析方法,安全性更高。

为了实现上述发明目的,本发明的技术方案如下:

一种基于压缩域的MP3自适应隐写方法,包括秘密信息的嵌入和秘密信息的提取两个步骤;秘密信息的嵌入操作发生在MPEG-1Layer3(MP3)音频编码中频域系数的量化编码过程中;

所述秘密信息的嵌入为边量化边嵌入,包括如下子步骤:

(11)预编码获取原始音频量化编码时可嵌入秘密信息的颗粒总数N;

(12)依据可隐写颗粒总数N和秘密信息长度L设定各项参数;

(13)判断当前颗粒是否进行隐写并选定嵌入载体;

(14)设置信息编码工具STC修改频域系数的代价;

(15)利用STC进行秘密信息的嵌入;

所述秘密信息的提取包括如下子步骤:

(21)解码下一颗粒参数,并判断该颗粒是否为可隐写颗粒;

(22)获取信息嵌入的各项参数;

(23)判断当前颗粒是否为最后一个隐写颗粒;

(24)判断当前颗粒是否有嵌入信息,有则提取信息。

优选地,Layer3每个编码帧包含两个颗粒,每个颗粒包含576个频域系数,被分为大值区、小值区及零值区,且有块类型参数包含长块、短块、起始块及终止块等值,其中所述步骤(11)中可嵌入秘密信息的颗粒需同时满足如下条件:①颗粒块类型不是短块;②颗粒大值区频域系数总数≥50。

优选地,所述步骤(12)依据可隐写颗粒总数N和秘密信息长度L设定各项参数,包括如下子步骤:

(121)依据可隐写颗粒数N及秘密信息文件的比特数L,得到每个颗粒需嵌入的平均比特数

(122)由于使用STC工具嵌入秘密信息时,针对每组频域系数,最低需嵌入的秘密信息比特数为10;若平均比特数AvgBits<10,设间隔参数将除第1、2个可隐写颗粒外所有可隐写颗粒划分为若干个间隔,在每个间隔中随机选取一个颗粒进行秘密信息的嵌入,嵌入容量m=10;根据秘密信息的容量,会产生个间隔,可标记为{Interv1,Interv2,Interv3,…,Intervn}。由初始密钥key生成n个范围在[1,Interval]内的随机数{k1,k2,k3,…,kn},其中对随机数ki的随机种子为key+i。针对第i(1≤i≤n)个间隔Intervi,选择该间隔中第ki个颗粒进行秘密信息的嵌入;

(123)平均比特数AvgBits≥10,则设定间隔参数Interval为1,即每个可嵌入秘密信息的颗粒均需嵌入AvgBits个比特的信息,嵌入容量m=AvgBits;嵌入容量的选择用如下公式直观说明:

>m=10,AvgBits<10AvgBits,AvgBits10>

(124)第1、2个可隐写颗粒用于嵌入参数信息,最后一个嵌入秘密信息的颗粒从最后一个间隔Intervn中选择,标记为N’,其嵌入秘密信息的长度为finalBits,计算公式如下:

N’=2+(n-1)×Interval+kn

>finalBits=m,ifL>mod>m=0(L>mod>m)+m,ifL>mod>m0.>

优选地,步骤(13)对颗粒逐个进行量化编码,直到所有颗粒量化结束,并判断当前颗粒是否进行隐写,包含如下子步骤:

(131)选定颗粒量化后的频域系数,获取频域系数编码的大值区及块类型参数,若块类型不为短块且大值区频域系数总数≥50,则当前颗粒为可隐写颗粒,可隐写颗粒计数count加1,进行下一步骤;否则对下一个颗粒进行量化,重复本步骤;其中,可隐写颗粒计数count的初始值为0;

(132)可隐写颗粒计数count=1、2时分别嵌入步骤(12)中的参数信息,可隐写颗粒N’嵌入秘密信息文件最后finalBits比特信息;

(133)计算当前颗粒所处的间隔序号i,若该颗粒在其所处的间隔Intervi中处于第ki个位置,其中随机数ki的随机种子为初始密钥key与序号i的和,即key+i,则进行下一个步骤,否则量化下一个颗粒并返回步骤(131);

(134)选定当前颗粒大值区的所有频域系数作为STC操作的嵌入载体,记为Cover。

优选地,步骤(14)中设置信息编码工具STC修改嵌入载体中各频域系数的代价,其具体过程为:量化编码操作对每个颗粒的576个频域系数进行整体量化编码;每组颗粒量化前的系数记为序列{XR1,XR2,XR3,…,XR576},量化后的系数记为序列{IX1,IX2,IX3,…,IX576}。为了能让STC可以根据频域系数组的值自适应地修改若干位,需要对每个频域系数设定修改的代价,记为costs;具体设计原则如下:

①对于第i位量化后的频域系数IXi,修改的代价包含三种代价:在原值上减1的代价、保持不变的代价、在原值上加1的代价;

②考虑到在频域系数IXi上的修改会影响到IXi所在的比例因子频带的实际失真,在设定修改代价之前需要评估频域系数IXi加减1对实际失真的影响,即将IXi加减1后的失真与IXi所在的比例因子频带sb的平均失真DT(sb)对比,其中量化后的每个频域系数IXi与量化前的系数XRi的失真计算公式以及比例因子频带sb的平均失真计算公式如下:

>DT(IXi)=(|XRi|-IXi4/3×2qstep/4)2>

>DT(sb)=Σlow(sb)high(sb)DT(IXi)BW(sb)>

其中qstep表示量化编码步骤的量化步长,BW(sb)表示频带sb的宽度即该频带包含频域系数的个数,low(sb)表示频带sb下边界,high(sb)表示频带sb的上边界。

③此外,为了避免修改后的频域系数组大值区与小值区边界混淆,将大值区最后4位频域系数的修改代价值设为无穷大,即不对其进行修改。对于第i位量化后的频域系数IXi,按如下两种情况设定其修改代价costs:

情况1:IXi≠0and>

规定函数

情况2:IXi=0or>

其中,length(Cover)表示嵌入载体Cover的长度,也即当前量化颗粒大值区频域系数的总数。

优选地,步骤(15)利用信息编码工具STC进行秘密信息的嵌入,具体是:依据设定好的各频域系数的修改代价和当前颗粒需嵌入的秘密信息,对选定的嵌入载体做STC操作,自适应地选取嵌入载体中的若干位进行修改以达到信息嵌入的目的,并实现最小化嵌入载体所有频域系数的修改代价之和;若成功嵌入则重新计算修改后的频域系数的各项参数,需保证对修改后的频域系数进行哈夫曼编码所需要的比特位数要小于当前颗粒可用于编码的最大位数,满足条件则对下一个颗粒进行秘密信息的嵌入,否则需要对当前颗粒重新进行信息嵌入;返回(13)步骤。

优选地,所述秘密信息的提取操作发生在MPEG-1Layer 3(MP3)音频解码中哈夫曼解码还原频域系数的过程中,具体子步骤为:

(210)解码还原下一个颗粒的块类型参数、大值区的参数及该颗粒的576个频域系数;若块类型不为短块且大值区频域系数总数≥50,则当前颗粒为可隐写颗粒,可隐写颗粒计数count加1,进行下一步骤;否则重复本步骤;其中可隐写颗粒计数count的初始值为0;

(220)若当前可隐写颗粒计数count=1、2,提取嵌入到第1、2个隐写颗粒中的参数:每个颗粒嵌入的秘密信息比特数m,初始密钥key,间隔Interval,终止颗粒N’,终止颗粒嵌入比特数finalBits;

(230)若当前可隐写颗粒计数count=N’,则将大值区内的所有频域系数当作提取载体,提取的秘密信息长度为finalBits,并利用STC工具对提取载体做解码操作得到该颗粒嵌入的finalBits比特秘密信息;整合解码所得的所有二进制流秘密信息即为最终的秘密信息文件,终止解码操作,否则进行下一步骤;

(240)从密钥key生成随机数组{k1,k2,k3,…,kn},对ki∈[1,Interval],且随机数ki的随机种子为key+i。若当前颗粒在其所处的第i个间隔Intervi中处于第ki个位置,则选取当前颗粒大值区内的所有频域系数作为提取载体,提取的秘密信息长度为m,并利用STC工具对提取载体进行解码得到该颗粒嵌入的m比特秘密信息。返回步骤(210)。

与现有技术相比,本发明技术方案的有益效果是:

1)利用MP3Stego、本发明提出的基于压缩域的MP3自适应隐写方法生成不同嵌入容量的隐写音频,其中MP3Stego采用最高嵌入容量即每个颗粒嵌入1bit,本发明描述的自适应隐写方法分别嵌入1bit、5bits、10bits。针对每一种情况,采用三种通用的隐写分析特征,一半样本作为训练集,另一半样本作为测试集,并利用优化参数的SVM分类器进行训练测试,本发明描述的隐写方法检测率较MP3Stego有大幅降低(接近50%),安全性更好。

2)利用MP3Stego、本发明提出的基于压缩域的MP3自适应隐写方法生成不同嵌入容量的隐写音频,其中MP3Stego采用最高嵌入容量即每个颗粒嵌入1bit,本发明描述的自适应隐写方法分别嵌入1bit、5bits、10bits。针对每一种情况,采用本发明描述的方法生成的隐写音频信噪比更高,音频质量更好。

附图说明

图1所示为采用本发明进行秘密信息嵌入、提取的算法流程示意图。

图2所示为频域系数的参数示意图。

图3所示为隐写颗粒选取示意图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。下面结合附图和实施例对本发明的技术方案做进一步的说明。

图1所示为采用本发明进行秘密信息嵌入、提取的算法流程示意图。

其中秘密信息的嵌入过程如图1(a)、1(b)所示,包括如下子步骤:(11)预编码获取原始音频量化编码时可嵌入秘密信息的颗粒总数N;(12)依据可隐写颗粒总数N和秘密信息长度L设定各项参数;(13)判断当前颗粒是否进行隐写并选定嵌入载体;(14)设置信息编码工具STC修改频域系数的代价;(15)利用STC进行秘密信息的嵌入。

每个步骤具体说明如下:

(11)预编码获取原始音频可嵌入秘密信息的颗粒总数N。Layer3每个编码帧包含两个颗粒,量化编码后每个颗粒包含576个频域系数,被分为大值区、小值区及零值区,且有块类型参数取值分别为长块、短块、起始块和终止块,如图2所示。其中可嵌入秘密信息的颗粒需同时满足如下条件:①颗粒块类型不是短块;②颗粒大值区频域系数总数≥50。

(12)设定嵌入秘密信息时所需参数,包括如下子步骤:

①依据可隐写颗粒数N及秘密信息文件的比特数L,可得每个颗粒需嵌入的平均比特数

②由于使用STC工具嵌入秘密信息时,针对每组频域系数,最低需嵌入的秘密信息比特数为10,因此需对平均比特数AvgBits<10的情况设间隔参数将除第1、2个可隐写颗粒外所有可隐写颗粒划分为若干个间隔,每个间隔中随机选取一个颗粒嵌入信息,嵌入容量m=10;

根据秘密信息的容量,会产生个间隔,如图3所示,表示为{Interv1,Interv2,Interv3,…,Intervn}。由初始密钥key生成n个范围在[1,Interval]内的随机数{k1,k2,k3,…,kn},每个随机数对应相应间隔内随机颗粒的选择。生成随机数方法如图3所示,每个随机数的随机种子设定为key+i,因此每个初始key都对应一组特定的随机数序列。针对第i(1≤i≤n)个间隔,选择该间隔中第ki个颗粒进行秘密信息的嵌入,过程如图3所示。

③若平均比特数AvgBits≥10,则Interval为1,即每个可嵌入秘密信息的颗粒均需嵌入AvgBits个比特的信息,嵌入容量m=AvgBits。嵌入容量的选择可用如下公式直观说明:

>m=10,AvgBits<10AvgBits,AvgBits10>

④第1、2个可隐写颗粒用于嵌入参数信息,最后一个嵌入秘密信息的颗粒从最后一个间隔Intervn中选择,标记为N’,其嵌入秘密信息的长度为finalBits,计算公式如下:

N’=2+(n-1)×Interval+kn

>finalBits=m,ifL>mod>m=0(L>mod>m)+m,ifL>mod>m0.>

(13)逐个对颗粒进行量化编码,直到所有颗粒量化结束,并判断当前颗粒是否进行隐写,包含如下子步骤:

①选定颗粒量化后的频域系数,获取频域系数编码的大值区及块类型参数,若大值区频域系数总数≥50且块类型不为短块,则当前颗粒为可隐写颗粒,可隐写颗粒计数count加1,进行下一步骤;否则对下一个颗粒进行量化,重复本步骤;其中可隐写颗粒计数count的初始值为0;

②可隐写颗粒计数count=1、2时分别嵌入步骤(12)中的参数信息,可隐写颗粒N’嵌入秘密信息最后finalBits比特信息;

③计算当前颗粒所处的间隔序号i,若该颗粒在其所处的第i个间隔Intervi中处于第ki个位置,其中ki是以key+i为随机种子生成的随机数,则进行下一个步骤,否则量化下一个颗粒并返回步骤①。

④选定当前颗粒的所有大值区的频域系数作为STC操作的嵌入载体,记为Cover。

(14)设置STC修改嵌入载体中各频域系数的代价:量化编码操作对每个颗粒的576个频域系数进行整体量化编码。每组颗粒量化前的系数由序列{XR1,XR2,XR3,…,XR576}表示,量化后的系数记为{IX1,IX2,IX3,…,IX576}。为了能让STC可以根据频域系数组的值自适应地修改若干位,需要对每个频域系数设定修改的代价,记为costs。具体设计原则如下:

①对于第i位量化后的频域系数IXi,修改的代价包含三种代价:在原值上减1的代价、保持不变的代价、在原值上加1的代价;

②考虑到在频域系数IXi上的修改会影响到IXi所在的比例因子频带的实际失真,在设定修改代价之前需要评估频域系数IXi加减1对实际失真的影响,即将IXi加减1后的失真与IXi所在的比例因子频带sb的平均失真DT(sb)对比,其中量化后的每个频域系数IXi与量化前的系数XRi的失真计算公式以及比例因子频带sb的平均失真计算公式如下:

>DT(IXi)=(|XRi|-IXi4/3×2qstep/4)2>

>DT(sb)=Σlow(sb)high(sb)DT(IXi)BW(sb)>

其中qstep表示量化编码步骤的量化步长,BW(sb)表示频带sb的宽度即该频带包含频域系数的个数,low(sb)表示频带sb下边界,high(sb)表示频带sb的上边界。

③此外,为了避免修改后的频域系数大值区与小值区边界混淆,将大值区最后4位频域系数的修改代价值设为无穷大,即不对其进行修改。对于第i位量化后的频域系数IXi,按如下两种情况设定其修改代价costs:

情况1:IXi≠0and>

规定函数

情况2:IXi=0or>

其中,length(Cover)表示嵌入载体Cover的长度,也即当前量化颗粒大值区频域系数的总数。

(15)依据设定好的各频域系数的修改代价和当前颗粒需嵌入的秘密信息,对嵌入载体做STC操作,选取嵌入载体中的若干位进行修改以达到信息嵌入的目的,并实现最小化嵌入载体各频域系数的修改代价之和;若成功嵌入则重新计算修改后的频域系数组的各项参数,需保证对修改后的频域系数进行哈夫曼编码所需要的比特位数要小于当前颗粒可用于编码的最大位数,满足条件则对下一个颗粒进行秘密信息的嵌入,否则需要对当前颗粒重新进行信息嵌入;返回(13)步骤。

本发明秘密信息的提取操作发生在MPEG-1Layer 3(MP3)音频解码中哈夫曼解码还原频域系数的过程中,如图1(c)所示,包括步骤:(21)解码下一颗粒参数,判断该颗粒是否为可隐写颗粒;(22)获取信息嵌入的各项参数;(23)判断当前颗粒是否为最后一个隐写颗粒;(24)判断当前颗粒是否有嵌入信息,有则提取信息。

(21)解码还原下一个颗粒的块类型参数,大值区的参数及该颗粒的576个频域系数;若大值区频域系数总数≥50且块类型不为短块,则当前颗粒为可隐写颗粒,可隐写颗粒计数count加1,进行下一步骤;否则重复本步骤;其中可隐写颗粒计数count的初始值为0;

(22)若当前可隐写颗粒计数count=1、2,提取嵌入到第1、2个可隐写颗粒中的参数:每个颗粒嵌入的秘密信息比特数m,密钥key,间隔Interval,终止颗粒N’,终止颗粒嵌入比特数finalBits;

(23)若当前可隐写颗粒计数count=N’,将大值区内的所有频域系数当作提取载体,提取的秘密信息长度为finalBits,并利用STC工具对提取载体做解码操作得到该颗粒嵌入的finalBits比特秘密信息;整合解码所得的所有二进制流秘密信息即为最终的秘密信息文件,终止解码操作,否则进行下一步骤;

(24)从密钥key生成随机数组{k1,k2,k3,…,kn},对ki∈[1,Interval|,且随机数ki的随机种子为key+i。若当前颗粒在其所处的第i个间隔Intervi中处于第ki个位置,则选取当前颗粒大值区内的所有频域系数作为提取载体,提取的秘密信息长度为m,并利用STC工具对提取载体进行解码得到该颗粒嵌入的m比特秘密信息。返回步骤(21)。

下面将结合具体的实验数据对本发明做更进一步的分析说明:

1、音频集合:

本实施例中,原始音频信号采用无损的WAV格式音频;利用5000个单声道长度为20秒的无损WAV音频做测试,采用8Hz编码器对原始WAV音频进行MP3压缩编码,并在编码过程中进行隐写操作。

2、隐写工具及方法

MP3Stego工具

本发明提出的基于压缩域的MP3自适应隐写方法

3、通用型隐写分析特征

“M.Y.Qiao,A.H.Sung,and Q.Z.Liu.MP3audio steganalysis.InformationScience.231(2013),123-134.”论文提出Qiao294-D隐写分析特征;

“D.Q.Yan,R.D.Wang,X.M.Yu,and J.zhu.Steganalysis for MP3stego usingdifferential statistics of quantization step.Digitall Signal Processing.23(2013)1181-1185.”论文提出Yan2-D隐写分析特征;

“C.Jin,R.D.Wang,D.Q.Yan.Stegnalysis of MP3Stego with embedding-rateusing Markov feature.Multimed.Tools.Appl.DOI,10,1007/s 11042-016-3264-y.”论文提出Jin338-D隐写分析特征;

4、安全性能分析:

利用MP3Stego、本发明提出的基于压缩域的MP3自适应隐写方法生成不同嵌入容量的隐写音频,其中MP3Stego采用最高嵌入容量即每个颗粒嵌入1bit,本发明描述的自适应隐写方法分别嵌入1bit、5bits、10bits。针对每一种情况,采用三种通用的隐写分析特征,一半的样本用作训练集,另一半的样本用作测试集,采用优化参数的SVM分类器进行训练测试,下表1列出了各种情况下的检测率。可以看出本发明描述的自适应隐写方法检测率较MP3Stego有大幅降低(接近50%),安全性更好。

表1

5、音频质量分析:

利用MP3Stego、本发明提出的基于压缩域的MP3自适应隐写方法生成不同嵌入容量的隐写音频,其中MP3Stego采用最高嵌入容量即每个颗粒嵌入1bit,本发明描述的自适应隐写方法分别嵌入1bit、5bits、10bits。针对每一种情况,计算隐写MP3音频和未进行秘密信息嵌入的MP3音频解压回空域后与原始WAV音频的信噪比,单位dB。

下表2列出了各种情况下的信噪比。可以看出采用本发明描述的自适应隐写方法隐写的音频信噪比数值有显著的提升,音频质量更好。

表2

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号