首页> 中国专利> 一种用于压缩数字音频的秘密信息密写及提取方法

一种用于压缩数字音频的秘密信息密写及提取方法

摘要

本发明公开了一种用于压缩数字音频的秘密信息密写及提取方法,优点在于通过对每个哈夫曼码表中的所有码字进行层层分类,再确定所有有效码字的基,通过有效码字的基来密写数据,基越大,密写的信息量越多,因此本发明方法的密写容量要比现有的使用基为2的二进制方式密写方法的密写容量大很多;选择主数据的可变长码字作为密写秘密信息的对象,且通过替换可变长码字对应的属性来实现可变长码字的修改,使修改后的可变长码字能够保持与原始的可变长码字的码字长度和符号位均不变,因此密写秘密信息后不会改变原始的音频码流的结构,从而避免了由于密写操作导致整个数字音频的编码比特率增加和文件长度改变等问题,有效保证了秘密信息密写的安全性。

著录项

  • 公开/公告号CN101546559A

    专利类型发明专利

  • 公开/公告日2009-09-30

    原文格式PDF

  • 申请/专利权人 宁波大学;

    申请/专利号CN200910097620.0

  • 申请日2009-04-13

  • 分类号

  • 代理机构宁波奥圣专利代理事务所(普通合伙);

  • 代理人程晓明

  • 地址 315211 浙江省宁波市江北区风华路818号

  • 入库时间 2023-12-17 22:44:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-27

    未缴年费专利权终止 IPC(主分类):G10L19/00 授权公告日:20110706 终止日期:20140413 申请日:20090413

    专利权的终止

  • 2011-07-06

    授权

    授权

  • 2010-01-20

    实质审查的生效

    实质审查的生效

  • 2009-09-30

    公开

    公开

说明书

技术领域

本发明涉及一种数字密写方法,尤其是涉及一种用于压缩数字音频中的秘密信息的密写及提取方法。

背景技术

自从20世纪90年代初以来,信息隐藏技术作为信息安全中的重要课题引起了国际学术界的普遍重视。数字密写是信息隐藏技术的一个重要分支,数字密写的目的是以具有明确内容的数字对象如图像、音频或视频等作为数字载体,在数字载体中隐藏秘密信息,要求秘密信息的密写不改变原始的数字载体的视觉或听觉效果,同时不改变数字载体的文件大小和文件格式,从而使秘密信息能以不引起外界注意的方式通过公开信道进行传输。目前,已有许多用于未压缩数字音频的数字密写技术,但由于数字音频在未经压缩之前往往数据量巨大,直接导致数字音频的传输和存储成本相当高,因此目前互联网上95%以上的数字音频均是以压缩编码的格式出现,而这些用于非压缩数字音频的密写技术无法适用于压缩数字音频,当然可以先将压缩格式的数字音频完全解码到非压缩数字音频,然后再利用这些用于非压缩数字音频的密写方法进行秘密信息的密写和提取,可这样做,会导致复杂度和计算量显著增加,同时还不能很好地保证密写方法与压缩标准之间的兼容。另一方面,现有的绝大多数用于非压缩数字音频的数字密写方法不能有效抵抗压缩攻击,即隐藏有秘密信息的数字音频经过压缩处理之后会造成秘密信息的永久性丢失。

为解决现有的用于非压缩数字音频的密写方法存在的不足,相关研究人员提出了多种针对压缩数字音频的数字密写方法,其中有一种方法是通过修改高频区码字的符号位来写入秘密信息,当写入的秘密信息为1,如果码字符号为负,则修改成正,否则不做修改。当写入的秘密信息为0,如果码字符号为正,则修改成负,否则不做修改。该方法是使用二进制作为写入的基本进制,所以每修改一次符号只能嵌入一位比特,密写的容量受到限制。另外一些密写方法是通过修改帧信息中的参数来写入秘密信息,同样这些方法也是使用二进制方式密写,而且这类方法密写后会引起压缩数字音频的文件长度的改变,从而使压缩比特率增加,无法有效保证数字密写的安全性。

发明内容

本发明所要解决的技术问题是提供一种能够与压缩编码标准保持兼容,具有较高的密写容量,且能有效保证密写安全性的用于压缩数字音频中的秘密信息的密写及提取方法。

本发明解决上述技术问题所采用的技术方案为:一种用于压缩数字音频中的秘密信息的密写方法,包括以下步骤:

①对MPEG编码器给出的每个可用的哈夫曼码表中的所有码字进行分类,首先将每个哈夫曼码表分成无效码字集合和有效码字集合,然后根据有效码字集合中各个有效码字的码字长度和符号位将有效码字集合分成多个子集,每个子集中的所有有效码字的码字长度和符号位均相同,再根据每个子集中的有效码字个数确定相应子集中的所有有效码字的基,最后对每个子集中的所有有效码字按量化系数的大小排序,并对每个子集中的每个有效码字标上属性;

②定义需要密写秘密信息的压缩数字音频为待密写数字音频,对待密写数字音频的音频码流以音频帧为单位进行解码,得到音频帧的帧信息和主数据,根据帧信息确定主数据进行可变长编码所使用的哈夫曼码表,并根据确定的哈夫曼码表确定主数据所使用的所有可变长码字;对主数据所使用的所有可变长码字按每两个可变长码字为一个码字对进行秘密信息的密写,当码字对中的其中一个可变长码字或两个可变长码字属于确定的哈夫曼码表中的无效码字集合时,不进行秘密信息的密写,当码字对中的两个可变长码字均属于确定的哈夫曼码表中的有效码字集合时,进行秘密信息的密写,在秘密信息的密写过程中,首先确定两个可变长码字在有效码字集合中分别对应的属性和对应的基,根据两个可变长码字各自的基计算需密写秘密信息中的二进制值的位数,然后从秘密信息中取相应位数的二进制值,并将相应位数的二进制值转化成十进制值,再将十进制值转化成由两个可变长码字各自的基所对应进制的数据组成的二位数,最后利用由两个可变长码字各自的基所对应进制的数据组成的二位数修改码字对中的各个可变长码字;所有码字对处理完毕后得到含密主数据,将含密主数据与帧信息重新组合成新的音频帧;继续对待密写数字音频的音频码流以音频帧为单位进行解码,重复上述过程直至处理完对整个音频码流的秘密信息的密写,得到含密数字音频。

所述的步骤①的具体过程为:①-1、定义正在处理的哈夫曼码表为当前哈夫曼码表,定义当前哈夫曼码表中正在处理的码字为当前码字,如果当前哈夫曼码表中不存在与当前码字的码字长度相同且符号位相同的其他码字时,则将该当前码字定义为无效码字,否则,将该当前码字定义为有效码字;①-2、重复步骤①-1找出当前哈夫曼码表中所有的无效码字和所有的有效码字,将所有的无效码字组成的集合定义为无效码字集合,记为CWN,将所有的有效码字组成的集合定义为有效码字集合,记为CWV;①-3、根据有效码字集合CWV中各个有效码字的码字长度和符号位将有效码字集合CWV分成M个子集,第1个子集表示为第2个子集表示为第M个子集表示为其中,N1表示第1个子集所包含的有效码字的个数,N2表示第2个子集所包含的有效码字的个数,NM表示第M个子集所包含的有效码字的个数,每个子集中的所有有效码字的码字长度和符号位均相同;①-4、再根据每个子集中所包含的有效码字的个数计算每个子集中的所有有效码字的基,对于第i个子集,计算该子集中所有有效码字的基,记为bibi=4Ni4NiNi{2,3},其中,i∈[1,M],Ni表示第i个子集所包含的有效码字的个数;①-5、将每个子集中的所有有效码字按量化系数x和y的大小进行排序,并对排序后的每个有效码字标上属性,对于第i个子集中的第j个有效码字,其属性标为Ci,j-1,其中,i∈[1,M],j∈[1,Ni];所述的步骤②的具体过程为:②-1、定义需要密写秘密信息的压缩数字音频为待密写数字音频,该秘密信息为一串由二进制值组成的二进制序列,对待密写数字音频的音频码流以音频帧为单位进行解码,得到音频帧的帧信息和主数据;②-2、定义刚解码完毕的音频帧为当前音频帧,根据当前音频帧的帧信息确定当前音频帧的主数据进行可变长编码所使用的哈夫曼码表,并根据确定的哈夫曼码表确定当前音频帧的主数据所使用的所有可变长码字;②-3、对当前音频帧的主数据所使用的所有可变长码字按每两个可变长码字为一个码字对进行秘密信息的密写,定义待密写的码字对为当前码字对,判断当前码字对中的两个可变长码字属于确定的哈夫曼码表中的无效码字集合CWN还是有效码字集合CWV,如果当前码字对中的其中一个可变长码字或两个可变长码字属于确定的哈夫曼码表中的无效码字集合CWN,则不进行秘密信息的密写,并执行步骤②-7;如果当前码字对中的两个可变长码字均属于确定的哈夫曼码表中的有效码字集合CWV,则继续执行;②-4、确定当前码字对的两个可变长码字在有效码字集合CWV中分别对应的属性和对应的基,记当前码字对的属性为{Cp,u,Cq,v},记属性为Cp,u的可变长码字的基为bp,记属性为Cq,v的可变长码字的基为bq,再根据bp和bq计算需密写秘密信息中的二进制值的位数R,其中,符号为向下取整符号;②-5、从秘密信息中取R位二进制值,并将R位二进制值转化成十进制值WR,再将十进制值WR转化成由属性为Cp,u的可变长码字的基bp所对应进制的数据和属性为Cq,v的可变长码字的基bq所对应进制的数据组成的二位数(dp,dq),dq=WRmodbq,dp=(WR-dq)/bqmodbp;②-6、利用由两个可变长码字各自的基所对应进制的数据组成的二位数(dp,dq)对当前码字对的属性{Cp,u,Cq,v}进行替换,对于属性为Cp,u的可变长码字,如果umodbp=dp,则不修改该可变长码字的属性,对该可变长码字不进行替换处理,否则,修改该可变长码字的属性,记修改后的属性为Cp,u′,其中,u′=u-r,r=(umodbp)-dp,判断u′≥Np是否成立,如果成立再将u′调整为u′=u-r-bp,其中,Np表示第p个子集所包含的有效码字的个数,然后用属性为Cp,u′的有效码字替换属性为Cp,u的可变长码字,得到新的属性为Cp,u′的可变长码字;对于属性为Cq,v的可变长码字,采用相同的方法进行处理;②-7、重复执行步骤②-3至②-6对下一对码字对进行秘密信息的密写,直至处理完当前音频帧的主数据中的所有码字对,得到含密主数据,将含密主数据和帧信息重新组成一个新的音频帧;②-8、继续对待密写数字音频的音频码流以音频帧为单位进行解码,然后执行步骤②-2至②-7,直至处理完对整个音频码流的秘密信息的密写,得到含密数字音频。

在对待密写数字音频的整个音频码流密写秘密信息之前,在嵌入端先利用密钥将秘密信息置乱,秘密信息的置乱采用现有的置乱算法,密钥作为采用的置乱算法的参数,密钥的位数根据采用的置乱算法确定。

对每个子集中的所有有效码字按量化系数的大小进行排序时,采用从大到小的方式进行排序或从小到大的方式进行排序。

一种对所述的用于压缩数字音频中的秘密信息进行提取的方法,包括以下步骤:

1)、对MPEG编码器给出的每个可用的哈夫曼码表中的所有码字进行分类,首先将每个哈夫曼码表分成无效码字集合和有效码字集合,然后根据有效码字集合中各个有效码字的码字长度和符号位将有效码字集合分成多个子集,每个子集中的所有有效码字的码字长度和符号位均相同,再根据每个子集中的有效码字个数确定相应子集中的所有有效码字的基,最后对每个子集中的所有有效码字按量化系数的大小排序,并对每个子集中的每个有效码字标上属性;

2)、定义已密写有秘密信息的压缩数字音频为含密数字音频,对含密数字音频的音频码流以音频帧为单位进行解码,得到音频帧的帧信息和含密的主数据,根据帧信息确定含密的主数据进行可变长编码所使用的哈夫曼码表,并根据确定的哈夫曼码表确定含密的主数据所使用的所有可变长码字;对含密的主数据所使用的所有可变长码字按每两个可变长码字为一个码字对进行秘密信息的提取,当码字对的其中一个可变长码字或两个可变长码字属于确定的哈夫曼码表中的无效码字集合时,不进行秘密信息的提取,当码字对中的两个可变长码字均属于确定的哈夫曼码表中的有效码字集合时,进行秘密信息的提取,在秘密信息的提取过程中,首先确定两个可变长码字在有效码字集合中分别对应的属性和对应的基,根据两个可变长码字各自的基计算待提取的秘密信息的位数,然后根据两个可变长码字各自的基计算由基对应进制的数据组成的二位数,再根据计算得到的由基对应进制的数据组成的二位数计算码字对中已密写的秘密信息的十进制值,最后将十进制值转化成具有相应位数的二进制值,得到待提取的秘密信息中的二进制值;所有码字对处理完毕后得到含密的主数据中已密写的秘密信息;继续对含密数字音频的音频码流以音频帧为单位进行解码,重复上述过程直至处理完对整个音频码流的秘密信息的提取,得到含密数字音频中已密写的秘密信息。

所述的步骤1)的具体过程为:1)-1、定义正在处理的哈夫曼码表为当前哈夫曼码表,定义当前哈夫曼码表中正在处理的码字为当前码字,如果当前哈夫曼码表中不存在与当前码字的码字长度相同且符号位相同的其他码字时,则将该当前码字定义为无效码字,否则,将该当前码字定义为有效码字;1)-2、重复步骤1)-1找出当前哈夫曼码表中所有的无效码字和所有的有效码字,将所有的无效码字组成的集合定义为无效码字集合,记为将所有的有效码字组成的集合定义为有效码字集合,记为;1)-3、根据有效码字集合中各个有效码字的码字长度和符号位将有效码字集合分成M个子集,第1个子集表示为第2个子集表示为第M个子集表示为其中,表示第1个子集所包含的有效码字的个数,表示第2个子集所包含的有效码字的个数,表示第M个子集所包含的有效码字的个数,每个子集中的所有有效码字的码字长度和符号位均相同;1)-4、再根据每个子集中所包含的有效码字的个数计算每个子集中的所有有效码字的基,对于第i个子集,计算该子集中所有有效码字的基,记为bi=4Ni4NiNi{2,3},其中,i∈[1,M],表示第i个子集所包含的有效码字的个数;1)-5、将每个子集中的所有有效码字按量化系数x和y的大小进行排序,并对排序后的每个有效码字标上属性,对于第i个子集中的第j个有效码字,其属性标为Ci,j-1,i[1,M],j[1,Ni];所述的步骤2)的具体过程为:2)-1、定义待提取秘密信息的压缩数字音频为含密数字音频,该秘密信息为一串由二进制值组成的二进制序列,对含密数字音频的音频码流以音频帧为单位进行解码,得到音频帧的帧信息和含密的主数据;2)-2、定义刚解码完毕的音频帧为当前音频帧,根据当前音频帧的帧信息确定当前音频帧的含密的主数据进行可变长编码所使用的哈夫曼码表,并根据确定的哈夫曼码表确定当前音频帧的含密的主数据所使用的所有可变长码字;2)-3、对当前音频帧的含密的主数据所使用的所有可变长码字按每两个可变长码字为一个码字对进行秘密信息的提取,定义待提取秘密信息的码字对为当前码字对,判断当前码字对中的两个可变长码字属于确定的哈夫曼码表中的无效码字集合还是有效码字集合如果当前码字对中的其中一个可变长码字或两个可变长码字属于确定的哈夫曼码表中的无效码字集合则不进行秘密信息的提取,并执行步骤2)-7;如果当前码字对中的两个可变长码字均属于确定的哈夫曼码表中的有效码字集合则继续执行;2)-4、确定当前码字对的两个可变长码字在有效码字集合中分别对应的的属性和对应的基,记当前码字对的属性为记属性为的可变长码字的基为记属性为的可变长码字的基为再根据和计算当前待提取的秘密信息的位数R′,其中,符号为向下取整符号;2)-5、根据属性为的可变长码字的基和属性为的可变长码字的基计算由基和分别对应进制的数据组成的二位数dp=umodbp,dq=vmodbq;2)-6、根据由基和分别对应进制的数据组成的二位数计算当前码字对中已密写的秘密信息的十进制值WR=dq+dp×(bq)1,然后将转化成R′位二进制值,得到待提取的秘密信息中的二进制值;2)-7、重复执行步骤2)-3至2)-6对下一对码字对进行秘密信息的提取,直至处理完当前音频帧的含密的主数据的所有码字对,得到含密的主数据中已密写的秘密信息;2)-8、继续对含密数字音频的音频码流以音频帧为单位进行解码,然后执行步骤2)-2至2)-7,直至处理完对整个音频码流的秘密信息的提取,得到含密数字音频中已密写的秘密信息。

在得到含密数字音频中已密写的秘密信息之后,在提取端利用嵌入端所使用的密钥对提取出的秘密信息进行反置乱,秘密信息的反置乱采用秘密信息置乱时所采用的置乱算法进行反置乱。

对每个子集中的所有有效码字按量化系数的大小进行排序时,采用从大到小的方式进行排序或从小到大的方式进行排序。

与现有技术相比,本发明的优点在于:

①在对每个哈夫曼码表中的所有码字进行分类时,首先根据是否存在与本身码字的码字长度和符号位均相同,分成两个集合即无效码字集合和有效码字集合,然后根据码字长度和符号位将有效码字集合分成多个子集,而每个子集中的所有有效码字的码字长度和符号位均相同,再根据每个子集中的有效码字个数确定相应子集中的所有有效码字的基,根据有效码字的基来密写数据,基越大,密写的信息量越多,因此本发明方法的密写容量要比现有的使用基为2的二进制方式密写方法的密写容量大很多;

②选择主数据的可变长码字作为密写秘密信息的对象,且通过替换可变长码字对应的属性来实现可变长码字的修改,使修改后的可变长码字能够保持与原始的可变长码字的码字长度和符号位均不变,因此密写秘密信息后不会改变原始的音频码流的结构,从而避免了由于密写操作导致整个数字音频的编码比特率增加和文件长度改变等问题,有效保证了秘密信息密写的安全性;

③由于秘密信息的整个密写和提取过程直接在数字音频的音频码流中完成,不需要经历深度解码再编码的过程,从而有效避免了由于压缩而导致秘密信息受损的风险。

附图说明

图1为哈夫曼码表的大值区的码流结构示意图;

图2为哈夫曼码表的小值区的码流结构示意图;

图3为第9个哈夫曼码表的信息表示示意图;

图4为第9个哈夫曼码表分成的9个子集的信息表示示意图;

图5为秘密信息密写的流程框图;

图6为秘密信息密写过程示意图;

图7为秘密信息提取的流程框图;

图8为秘密信息提取过程示意图。

具体实施方式

以下结合附图实施例对本发明作进一步详细描述。

实施例一:一种用于压缩数字音频中的秘密信息的密写方法,本密写方法处理的对象为一个压缩数字音频的音频码流,该音频码流主要是采用MPEG标准压缩,不过本密写方法并不局限于音频码流,也不局限于一个特定的压缩标准。MPEG编码器采用哈夫曼编码,因此音频码流的表现形式为哈夫曼码字,也称为可变长码字VLC(VariableLength Coding)。MPEG编码器给出了34个可用的哈夫曼码表,共4995个码字。

由于哈夫曼码表中的可变长码字根据量化后的MDCT(Modified Discrete CosineTransform,修正的离散余弦变换)系数按频率大小分成大值区、小值区和零区,其中对于大值区,每两个MDCT系数为一组进行编码,其码流结构如图1所示;对于小值区,则每四个MDCT系数为一组进行编码,其码流结构如图2所示;而对于零区,不作编码。在图1和图2中,hcod表示可变长码字,sign1、sign2、sign3和sign4分别表示所对应MDCT系数的符号位,为零的系数没有符号位。通过对哈夫曼编码的实验发现:并不是所有的码字都会出现在码流中,因此在编码过程中,码字的使用上存在冗余信息。本密写方法正是利用这些冗余信息,通过替换码流中的码字来密写秘密信息,密写时,根据事先分类好的码字信息,对不同的码字使用不同的进制来密写数据。由于任意的替换码字势必会引起码流结构的混乱,所以在码字替换前后,要保证其长度和符号位都相等。以下为本密写方法的具体步骤:

①在秘密信息密写前,需要对MPEG编码器给出的34个可用的哈夫曼码表中的所有码字进行分类,首先将每个哈夫曼码表分成无效码字集合和有效码字集合,然后根据有效码字集合中各个有效码字的码字长度和符号位将有效码字集合分成多个子集,每个子集中的所有有效码字的码字长度和符号位均相同,再根据每个子集中的有效码字个数确定相应子集中的所有有效码字的基,最后对每个子集中的所有有效码字按量化系数的大小进行排序,并对每个有效码字标上属性。

对每个子集中的所有有效码字按量化系数的大小进行排序时,可以采用从大到小的方式进行排序或采用从小到大的方式进行排序;通过对每个子集中的所有有效码字按量化系数从大到小或从小到大进行排序,可可有效保证每个子集中相邻的两个有效码字所对应的量化系数在数值上最为接近,从而使得替换后的码字与原始码字最接近,因此减少了替换后因码字的差异而引起的失真。

在此具体实施例中以哈夫曼码表9为例,分类的具体过程为:

①-1、定义正在处理的哈夫曼码表9为当前哈夫曼码表,定义当前哈夫曼码表中正在处理的码字为当前码字,如果当前哈夫曼码表中不存在与当前码字的码字长度相同且符号位相同的其他码字时,即在哈夫曼码表9中找不到与当前码字自身的码字长度相同且符号位相同的其他码字,则将该当前码字定义为无效码字,否则,将该当前码字定义为有效码字。

①-2、重复步骤①-1找出当前哈夫曼码表中所有的无效码字和所有的有效码字,无效码字如图3所示的哈夫曼码表9中的码字111、码字01001、码字000000111、码字100、码字0111和码字0001011,有效码字为除列出的6个无效码字外其余的码字,将所有的无效码字组成的集合定义为无效码字集合,记为CWN,即CWN={111,01001,000000111,100,0111,0001011},将所有的有效码字组成的集合定义为有效码字集合,记为CWV

①-3、根据有效码字集合CWV中各个有效码字的码字长度和符号位将哈夫曼码表9中的有效码字集合CWV分成9个子集,如图4所示,第1个子集由码字长度为3且符号位为1的2个有效码字组成,第1个子集为{101,110};第2个子集由码字长度为4且符号位为2的2个有效码字组成,第2个子集为{0101,0110};第3个子集由码字长度为6且符号位为1的2个有效码字组成,第3个子集为{001110,001111};第4个子集由码字长度为8且符号位为1的2个有效码字组成,第4个子集为{00001111,00001110};第5个子集由码字长度为9且符号位为2的3个有效码字组成,第5个子集为{000000001,000000110,000000000};第6个子集由码字长度为6且符号位为21的4个有效码字组成,第6个子集为{000110,001000,001001,000111};第7个子集由码字长度为7且符号位为2的6个有效码字组成,第7个子集为{0001000,0001010,0000101,0001001,0000110,0000100};第8个子集由码字长度为8且符号位为2的6个有效码字组成,第8个子集为{00000111,00000101,00000001,00000100,00000110,00000010};第9个子集由码字长度为5且符号位为2的3个有效码字组成,第9个子集为{00101,01000,00110},每个子集中的所有有效码字的码字长度和符号位均相同。9个子集的前后顺序可任意排序,本实施例中的9个子集的前后顺序为图4所示的顺序。

①-4、再根据每个子集中所包含的有效码字的个数计算每个子集中的所有有效码字的基,对于第i个子集,计算该子集中所有有效码字的基,记为bibi=4Ni4NiNi{2,3},其中,Ni表示第i个子集所包含的有效码字的个数。如哈夫曼码表9中的9个子集,第1个子集、第2个子集、第3个子集和第4个子集各个子集中所包含的有效码字的基均为2,即b1=b2=b3=b4=2,第5个子集和第9个子集各个子集中所包含的有效码字的基均为3,即b5=b9=3,第6个子集、第7个子集和第8个子集各个子集中所包含的有效码字的基均为4,即b6=b7=b8=4。

①-5、将每个子集中的所有有效码字按MDCT量化系数x和y的大小进行排序,可从大到小进行排序也可从小到大进行排序,本实施例中采用从小到大的方式进行排序,对从小到大排序后的每个有效码字标上属性,对于第i个子集中的第j个有效码字,将其属性标为Ci,j-1,哈夫曼码表9中各个有效码字的属性如图4所示,如有效码字0000110的属性为C7,4,表示该有效码字为第7子集中的第5个有效码字,图4中所示的每个子集中各个相邻有效码字的量化系数值最接近。

②秘密信息的密写流程框图如图5所示,定义需要密写秘密信息的压缩数字音频为待密写数字音频,对待密写数字音频的音频码流以音频帧为单位进行解码,得到音频帧的帧信息和主数据,根据帧信息确定主数据进行可变长编码所使用的哈夫曼码表,并根据确定的哈夫曼码表确定主数据所使用的所有可变长码字;对主数据所使用的所有可变长码字按每两个可变长码字为一个码字对进行秘密信息的密写,当码字对中的其中一个可变长码字或两个可变长码字属于确定的哈夫曼码表中的无效码字集合时,不进行秘密信息的密写,当码字对中的两个可变长码字均属于确定的哈夫曼码表中的有效码字集合时,进行秘密信息的密写。在秘密信息的密写过程中,首先确定两个可变长码字在有效码字集合中分别对应的属性和对应的基,根据两个可变长码字各自的基计算需密写秘密信息中的二进制值的位数。然后从秘密信息中取相应位数的二进制值,并将相应位数的二进制值转化成十进制值,再将十进制值转化成由两个可变长码字各自的基所对应进制的数据组成的二位数,也就是说,将一个十进制数转化成一个分别由两个不同的基对应的两位数,如:(10)10=(3)4(1)3,表示一个值为10的十进制数转化成个位为3进制和十位为4进制的一个二位数,其对应的值分别为1和3。最后利用由两个可变长码字各自的基所对应进制的数据组成的二位数修改码字对中的各个可变长码字;所有码字对处理完毕后得到含密主数据,将含密主数据与帧信息重新组合成新的音频帧;继续对待密写数字音频的音频码流以音频帧为单位进行解码,重复上述过程直至处理完对整个音频码流的秘密信息的密写,得到含密数字音频。

为了提高隐秘通信的安全性,在对待密写数字音频的整个音频码流密写秘密信息之前,可在嵌入端先利用密钥将秘密信息置乱,秘密信息的置乱采用现有的置乱算法,密钥作为采用的置乱算法的参数,密钥的位数根据采用的置乱算法确定,再利用置乱处理后的秘密信息进行密写。

秘密信息为由一串二进制值组成的二进制序列,在此具体实施例中假设待密写的秘密信息为“0101101111”,或认为经置乱处理后的秘密信息为“0101101111”。

密写秘密信息“0101101111”的具体过程为:

②-1、定义需要隐藏二进制秘密信息的数字音频为待密写数字音频,对待密写数字音频的音频码流以音频帧为单位进行解码,得到音频帧的帧信息和主数据。

②-2、定义刚解码完毕的音频帧为当前音频帧,根据当前音频帧的帧信息得到当前音频帧的主数据的二进制比特流,假设在此具体实施例中该主数据的某一段比特流为“000010000110000001100000100101001000”,并假设该主数据进行可变长编码所使用的哈夫曼码表为哈夫曼码表9,并根据确定的哈夫曼码表9确定当前音频帧的这段比特流所使用的可变长码字,得到可变长码字为{0000100,00110,00000110,0000100,101,001000}。

②-3、对当前音频帧的这段可变长码字按每两个可变长码字为一个码字对进行秘密信息的密写,定义待密写的码字对为当前码字对,在此假设当前码字对为第1对码字对,即由当前音频帧的主数据的第1个和第2个可变长码字组成的码字对{0000100,00110},判断当前码字对{0000100,00110}中的两个可变长码字属于哈夫曼码表9中的无效码字集合CWN还是有效码字集合CWV,根据查找哈夫曼码表9得出当前码字对{0000100,00110}中的两个可变长码字均属于哈夫曼码表9中的有效码字集合CWV,然后继续执行。

②-4、确定当前码字对的两个可变长码字在有效码字集合CWV中分别对应的属性和对应的基,记当前码字对{0000100,00110}的属性为{Cp,u,Cq,v},在此可变长码字“0000100”的属性为C7,5,可变长码字“00110”的属性为C9,2,即p=7,u=5,q=9,v=2,当前码字对{0000100,00110}的属性为{C7,5,C9,2};记属性为Cp,u的可变长码字的基为bp,记属性为Cq,v的可变长码字的基为bq,在此可变长码字“0000100”的基bp=b7=4,可变长码字“00110”的基bq=b9=3。再根据bp和bq计算需密写秘密信息中的二进制值的位数R,其中,符号为向下取整符号。

②-5、从秘密信息“0101101111”的第一位开始读取R位二进制值,本例中R=3,即所读取二进制值为“010”,并转化成十进制值WR,WR=2,再将十进制值WR转化成由属性为Cp,u的可变长码字的基bp所对应进制的数据和属性为Cq,v的可变长码字的基bq所对应进制的数据组成的二位数(dp,dq),dp为属性为Cp,u的可变长码字的基bp所对应进制的数据,dq为属性为Cq,v的可变长码字的基bq所对应进制的数据,dq=WRmodbq=2mod3=2,dp=(WR-dq)/bqmodbq=(2-2)/3mod4=0。当读取完R位二进制值后需将记录下一次读取的开始位置,即K=K+R,其中,式左边的K表示下一次操作时所取二进制值的开始位置,式右边的K表示当前取的R位二进制值的第1位二进制值在秘密信息中的位置。除采用记录位置的方法来实现顺序取秘密信息中的二进制值外,也可采用丢弃二进制值的方法,即当前取出即将其丢弃。

②-6、利用由属性为Cp,u的可变长码字的基bp所对应进制的数据和属性为Cq,v的可变长码字的基bq所对应进制的数据组成的二位数(dp,dq)=(0,2)对当前码字对{0000100,00110}的属性{C7,5,C9,2}进行替换,对于属性为C7,5的可变长码字“0000100”,由于umodbp≠dp,即5mod4≠0,所以修改该可变长码字“0000100”的属性,记修改后的属性为Cp,u′,其中,u′=u-r,r=(umodbp)-dp,即u′=5-(5mod4)+0=4,由于Np=N7=6,u′<Np,u′不需要再调整。然后用属性为Cp,u′即C7,4的有效码字“0000110”替换属性为C7,5的可变长码字“0000100”,得到新的属性为C7,4的可变长码字“0000110”。对于属性为C9,2的可变长码字“00110”,采用相同的方法修改该可变长码字的属性,由于vmodbq=2mod3=2,而dq=2,在vmodbq=dq的情况下,保持原可变长码字不变,即不修改该可变长码字“00110”。

②-7、重复执行步骤②-3至②-6分别对由第3个可变长码字和第4个可变长码字组成的第2对码字对及由第5个可变长码字和第6个可变长码字组成的第3对码字对进行秘密信息的密写。第3个可变长码字和第4个可变长码字的属性为{C8,4,C7,5},密写秘密信息后,新的属性为{C8,3,C7,5},第5个可变长码字和第6个可变长码字的属性为{C1,0,C6,1},密写秘密信息后,新的属性为{C1,1,C6,3},因此当前音频帧的主数据通过秘密信息“0101101111”密写后得到的含密主数据对应的可变长码字变为{0000110,00110,00000100,0000100,110,000111},如图6所示。最后将含密主数据和帧信息重新组成一个新的音频帧。

②-8、继续对待密写数字音频的音频码流以音频帧为单位进行解码,然后执行步骤②-2至②-7,直至所有的秘密信息的写入音频码流中,最后得到含密数字音频。

本密写方法先是对MPEG音频的码字进行分类,然后借助于混合进制系统来进行大容量密写。在此混合进制系统的基本概念可以理解为:在常用的十进制或二进制中,每一位的基都是相同的(10或2),事实上,也可以定义不同基的进制系统。记x=(dn-1dn-2···d1d0)bn-1bn-2···b1b0,x是混合进制表示的值,d0,d1,…dn-1是x不同位的值,b0,b1,…bn-1是对应的不同基。x在十进制下的转换公式为:x=d0+Σi=1n-1(diΠj=0i-1bj).本密写方法以两个码字作为一个码字对来密写,即每一次写入的秘密信息可以表示成一个混合基的两位数,wR=d1+d0×(b1)1wR≤b0×b1。其中wR为一次写入的数据量(十进制值),b0,b1分别为当前两个码字对应的基,而d0、d1分别为当前两个码字写入的数据量。

实施例二:一种对上述的用于压缩数字音频中的秘密信息进行提取的方法,本提取方法处理的对象为一个含秘密信息的数字音频,在此具体实施例中处理的对象为实施例一中得到的含密数字音频。本提取方法包括以下步骤:

1)、在秘密信息密写前,需要对MPEG编码器给出的34个可用的哈夫曼码表中的所有码字进行分类,首先将每个哈夫曼码表分成无效码字集合和有效码字集合,然后根据有效码字集合中各个有效码字的码字长度和符号位将有效码字集合分成多个子集,每个子集中的所有有效码字的码字长度和符号位均相同,再根据每个子集中的有效码字个数确定相应子集中的所有有效码字的基,最后对每个子集中的所有有效码字按量化系数的大小排序,并对每个子集中的每个有效码字标上属性。

由于在此具体实施例中处理的对象为上述通过密写方法产生的含密数字音频,因此在此仍以哈夫曼码表9为例,分类的具体过程为:

1)-1、定义正在处理的哈夫曼码表9为当前哈夫曼码表,定义当前哈夫曼码表中正在处理的码字为当前码字,如果当前哈夫曼码表中不存在与当前码字的码字长度相同且符号位相同的其他码字时,即在哈夫曼码表9中找不到与当前码字自身的码字长度相同且符号位相同的其他码字,则将该当前码字定义为无效码字,否则,将该当前码字定义为有效码字。

1)-2、重复步骤1)-1找出当前哈夫曼码表中所有的无效码字和所有的有效码字,无效码字如图3所示的哈夫曼码表9中的码字111、码字01001、码字000000111、码字100、码字0111和码字0001011,有效码字为除列出的6个无效码字外其余的码字,将所有的无效码字组成的集合定义为无效码字集合,记为即CWN={111,01001,000000111,100,0111,0001011},将所有的有效码字组成的集合定义为有效码字集合,记为

1)-3、根据有效码字集合中各个有效码字的码字长度和符号位将哈夫曼码表9中的有效码字集合分成9个子集,如图4所示,第1个子集由码字长度为3且符号位为1的2个有效码字组成,第1个子集为{101,110};第2个子集由码字长度为4且符号位为2的2个有效码字组成,第2个子集为{0101,0110};第3个子集由码字长度为6且符号位为1的2个有效码字组成,第3个子集为{001110,001111};第4个子集由码字长度为8且符号位为1的2个有效码字组成,第4个子集为{00001111,00001110};第5个子集由码字长度为9且符号位为2的3个有效码字组成,第5个子集为{000000001,000000110,000000000};第6个子集由码字长度为6且符号位为21的4个有效码字组成,第6个子集为{000110,001000,001001,000111};第7个子集由码字长度为7且符号位为2的6个有效码字组成,第7个子集为{0001000,0001010,0000101,0001001,0000110,0000100};第8个子集由码字长度为8且符号位为2的6个有效码字组成,第8个子集为{00000111,00000101,00000001,00000100,00000110,00000010};第9个子集由码字长度为5且符号位为2的3个有效码字组成,第9个子集为{00101,01000,00110},每个子集中的所有有效码字的码字长度和符号位均相同。9个子集的前后顺序可任意排序,本实施例中的9个子集的前后顺序为图4所示的顺序。

1)-4、再根据每个子集中所包含的有效码字的个数计算每个子集中的所有有效码字的基,对于第i个子集,计算该子集中所有有效码字的基,记为bi=4Ni4NiNi{2,3},其中,表示第i个子集所包含的有效码字的个数。如哈夫曼码表9中的9个子集,第1个子集、第2个子集、第3个子集和第4个子集各个子集中所包含的有效码字的基均为2,即b1=b2=b3=b4=2,第5个子集和第9个子集各个子集中所包含的有效码字的基均为3,即b5=b9=3,第6个子集、第7个子集和第8个子集各个子集中所包含的有效码字的基均为4,即b6=b7=b8=4.

1)-5、将每个子集中的所有有效码字按MDCT量化系数x和y的大小进行排序,可从大到小进行排序也可从小到大进行排序,本实施例中采用从小到大的方式进行排序,对从小到大排序后的每个有效码字标上属性,对于第i个子集中的第j个有效码字,将其属性标为哈夫曼码表9中各个有效码字的属性如图4所示,如有效码字0000110的属性为表示该有效码字为第7子集中的第5个有效码字,图4中所示的每个子集中各个相邻有效码字的量化系数值最接近。

2)、定义已密写有秘密信息的压缩数字音频为含密数字音频,对含密数字音频的音频码流以音频帧为单位进行解码,得到音频帧的帧信息和含密的主数据,根据帧信息确定含密的主数据进行可变长编码所使用的哈夫曼码表,并根据确定的哈夫曼码表确定含密的主数据所使用的所有可变长码字;对含密的主数据所使用的所有可变长码字按每两个可变长码字为一个码字对进行秘密信息的提取,当码字对的其中一个可变长码字或两个可变长码字属于确定的哈夫曼码表中的无效码字集合时,不进行秘密信息的提取,当码字对中的两个可变长码字均属于确定的哈夫曼码表中的有效码字集合时,进行秘密信息的提取,在秘密信息的提取过程中,首先确定两个可变长码字在有效码字集合中分别对应的属性和对应的基,根据两个可变长码字各自的基计算待提取的秘密信息的位数,然后根据两个可变长码字各自的基计算由基对应进制的数据组成的二位数,再根据计算得到的由基对应进制的数据组成的二位数计算码字对中已密写的秘密信息的十进制值,最后将十进制值转化成具有相应位数的二进制值,得到待提取的秘密信息中的二进制值;所有码字对处理完毕后得到含密的主数据中已密写的秘密信息;继续对含密数字音频的音频码流以音频帧为单位进行解码,重复上述过程直至处理完对整个音频码流的秘密信息的提取,得到含密数字音频中已密写的秘密信息。

提取秘密信息的流程框图如图7所示,具体过程为:

2)-1、定义待提取二进制秘密信息的数字音频为含密数字音频,对含密数字音频的音频码流以音频帧为单位进行解码,得到音频帧的帧信息和主数据。

2)-2、定义刚解码完毕的音频帧为当前音频帧,根据当前音频帧的帧信息得到当前音频帧的含密主数据进行可变长编码所使用的哈夫曼码表,在此具体实施例中该主数据的码字比特流为“000011000110000001000000100110000111”,该主数据进行可变长编码所使用的哈夫曼码表为哈夫曼码表9,并根据得到的哈夫曼码表9确定当前音频帧的含密主数据所使用的所有可变长码字,所有可变长码字为{0000110,00110,00000100,0000100,110,000111}。

2)-3、对当前音频帧的含密主数据所使用的所有可变长码字按每两个可变长码字为一个码字对进行秘密信息的提取,定义待提取秘密信息的码字对为当前码字对,在此假设当前码字对为第1对码字对,即由当前音频帧的主数据的第1个和第2个可变长码字组成的码字对{0000110,00110},判断当前码字对{0000110,00110}中的两个可变长码字属于确定的哈夫曼码表中的无效码字集合还是有效码字集合根据查找哈夫曼码表9得出当前码字对{0000110,00110}中的两个可变长码字均属于确定的哈夫曼码表中的有效码字集合然后继续执行。

2)-4、确定当前码字对的两个可变长码字在有效码字集合中分别对应的的属性和对应的基,记当前码字对{0000110,00110}的属性为在此可变长码字“0000110”的属性为C7,4,可变长码字“00110”的属性为C9,2,即p=7,u″=4,q=9,v″=2,当前码字对{0000110,00110}的属性为{C7,4,C9,2};记属性为的可变长码字的基为记属性为的可变长码字的基为可变长码字“0000110”的基为bp=b6=4,可变长码字“00110”的基为bq=b8=3.再根据和计算当前待提取的秘密信息的最大位数R′,其中,符号为向下取整符号。

2)-5、根据属性为的可变长码字的基和属性为的可变长码字的基计算由基和分别对应进制的数据组成的二位数dp=umodbp=4mod4=0,dq=vmodbq=2mod3=2.

2)-6、根据由基和分别对应进制的数据组成的二位数计算当前码字对{0000110,00110}中已密写的秘密信息的十进制值WR=dq+dp×(bq)1=2+0×(3)1=2,然后将WR=2转化成3位二进制值“010”,即得到待提取的秘密信息中的二进制值“010”。

2)-7、重复执行步骤2)-3至2)-6分别对由第3个可变长码字和第4个可变长码字组成的第2个码字对及由第5个可变长码字和第6个可变长码字组成的第3个码字对进行二进制秘密信息的提取。从由第3个可变长码字和第4个可变长码字组成的第2对码字对中提取得到的二进制值为“1101”;从由第5个可变长码字和第6个可变长码字组成的第3对码字对中提取得到的二进制值为“111”,如图8所示。最后得到含密主数据中已密写的秘密信息“0101101111”。

2)-8、继续对含密数字音频的音频码流以音频帧为单位进行解码,然后执行步骤2)-2至2)-7,直至处理完对整个音频码流的秘密信息的提取,得到含密数字音频中已密写的秘密信息。在得到含密数字音频中已密写的秘密信息之后,在提取端利用嵌入端所使用的密钥对提取出的秘密信息进行反置乱,秘密信息的反置乱采用秘密信息置乱时所采用的置乱算法进行反置乱,以得到原始的秘密信息。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号