一种针对MP3Stegz的隐写检测方法

文档序号:2829136阅读:374来源:国知局
专利名称:一种针对MP3Stegz的隐写检测方法
技术领域
本发明涉及一种音频隐写检测技术,尤其是涉及一种针对MP3Stegz的隐写检测方法。
背景技术
隐写术是信息隐藏的一个重要分支,它是一种将隐秘信息隐藏在宿主信号中且在第三方不知道其存在的情况下通过公共信道传播的技术。隐写检测技术则是隐写术的对立技术,其目的是揭示可疑载体信号中是否存在隐秘信息以致破坏隐蔽通信。作为目前互联网上最流行的音频格式之一,MP3音频得到了广泛的应用,因此针对MP3音频的隐写术和隐写检测技术也在博弈中不断发展。近年来出现了一些MP3音频的隐写工具,如MP3Stego、UnderMP3Cover、MP3Stegz等,与此同时针对各种隐写工具的隐写检测方法也被相继提出,如Qiao等人提出了一种针对MP3Stego的隐写检测方法、Jin等人提出了一种针对UnderMP3Cover的隐写检测方法等。然而,目前针对MP3Stegz隐写工具的隐写检测方法还未见具体报道。

发明内容
本发明所要解决的技术问题是提供一种针对MP3Stegz的隐写检测方法,其能够准确地检测出MP3音频是否被MP3Stegz隐写过,并且检测过程简单、计算复杂度低。本发明解决上述技术问题所采用的技术方案为:一种针对MP3Stegz的隐写检测方法,其特征在于包括以下 步骤:①以二进制流方式打开待检测的MP3音频文件;②从该MP3音频文件的二进制流中找出第一帧,并将找出的第一帧定义为当前帧;③判断当前帧中的第37 40个字节中的每个字节的8位二进制数是否均为字符“X”的ASC II码,且当前帧中的第41个字节的8位二进制数是否为字符“I” “9”中的任一个字符的ASC II码,如果是,则执行步骤④,否则,执行步骤⑤;④判断当前帧中的第42 56个字节中是否存在连续的两个字节满足以下条件:连续的两个字节中的第I个字节的8位二进制数为字符“#”的ASC II码,且连续的两个字节中的第2个字节的8位二进制数为字符”的ASC II码,如果存在,则确定该MP3音频文件经MP3Stegz隐写过,完成隐写检测,否则,执行步骤⑤;⑤判断当前帧是否为该MP3音频文件的二进制流中的最后一帧,如果是,则确定该MP3音频文件未经MP3Stegz隐写过,完成隐写检测,否则,从该MP3音频文件的二进制流中找出下一帧,将该帧作为当前帧,然后返回步骤③继续执行。所述的步骤②中从该MP3音频文件的二进制流中找出第一帧的过程为:从该MP3音频文件的二进制流中的第I个字节开始,逐字节查询,当检索到连续的两个字节各自的8位二进制数依次为11111111和1111101*时,确定这连续的两个字节中的第I个字节为该MP3音频文件的二进制流中的第一帧开始的字节,其中,*表示二进制数O或I。所述的步骤⑤中从该MP3音频文件的二进制流中找出下一帧的过程为:根据当前帧的帧头内的信息计算出当前帧的长度,从当前帧的最后一个字节之后的一个字节开始,逐字节查询,当检索到连续的三个字节各自的8位二进制数依次满足:为11111111、为
高4位不全为I,则确定这连续的三个字节中的第I个字节为该MP3音频文件的二进制流中的下一帧开始的字节,其中,*表示二进制数O或I一种针对MP3Stegz的隐写检测方法,其特征在于包括以下步骤:1)以二进制流方式打开待检测的MP3音频文件;2)从该MP3音频文件的二进制流中找出第一帧,并将找出的第一帧定义为当前中贞,再令count表示隐写的次序,count的初始值为O ;3)判断当前帧中的第37 40个字节中的每个字节的8位二进制数是否均为字符“X”的ASC II码,且当前帧中的第41个字节的8位二进制数是否为字符“I” “9”中的任一个字符的ASC II码,如果是,则执行步骤4),否则,执行步骤6);4)判断当前帧中的第42 56个字节中是否存在连续的两个字节满足以下条件:连续的两个字节中的第I个字节的8位二进制数为字符“#”的ASC II码,且连续的两个字节中的第2个字节的8位二进制数为字符”的ASC II码,如果存在,贝U令count=count+l,其中,此处“=”为赋值符号,然后执行步骤5),否则,执行步骤6);5)输出隐写的次序count、隐写的起始位置,并提取出隐写的隐秘信息的格式和隐写的隐秘信息加密后的大小,然后执行步骤6);6)判断当前帧是否为该MP3音频文件的二进制流中的最后一帧,如果是,则执行步骤7),否则,从该MP3音频文件的二进制流中找出下一帧,将该帧作为当前帧,然后返回步骤3)继续执行;7)判断count的值是否为0,如果是,则确定该MP3音频文件未经MP3Stegz隐写过,完成隐写检测,否则,确定该MP3音频文件经MP3Stegz隐写过,完成隐写检测。所述的步骤2)中从该MP3音频文件的二进制流中找出第一帧的过程为:从该MP3音频文件的二进制流中的第I个字节开始,逐字节查询,当检索到连续的两个字节各自的8位二进制数依次为11111111和1111101*时,确定这连续的两个字节中的第I个字节为该MP3音频文件的二进制流中的第一帧开始的字节,其中,*表示二进制数O或I。所述的步骤6)中从该MP3音频文件的二进制流中找出的过程为:根据当前帧的帧头内的信息计算出当前帧的长度,从当前帧的最后一个字节之后的一个字节开始,逐字节查询,当检索到连续的三个字节各自的8位二进制数依次满足:为11111111、为111#***、高4位不全为I,则确定这连续的三个字节中的第I个字节为该MP3音频文件的二进制流中的下一帧开始的字节,其中,*表示二进制数O或I。所述的步骤5)中隐写的起始位置为当前帧中的第41个字节的位置。所述的步骤5)中隐写的隐秘信息的格式由当前帧中的第42 56个字节中满足以下条件的连续两个字节中的第2个字节之后的三个字节确定:连续两个字节中的第I个字节的8位二进制数为字符“#,,的ASC II码,且连续两个字节中的第2个字节的8位二进制数为字符”的ASC II码。所述的步骤5)中隐写的隐秘信息加密后的大小由当前帧中的第40个字节,与第42 56个字节中满足以下条件的连续两个字节中的第I个字节之间的若干个字节确定:连续两个字节中的第I个字节的8位二进制数为字符“#,,的ASC II码,且连续两个字节中的第2个字节的8位二进制数为字符”的ASC II码。与现有技术相比,本发明的优点在于:I)通过分析MP3音频文件的每帧中的第37 41个字节及第42 56个字节,能够准确地检测出该MP3音频文件是否经MP3Stegz隐写过,且性能稳健、检测准确率高、计算复杂度低。2)通过分析MP3音频文件中被MP3Stegz隐写过的帧中的第41 56个字节,找到连续的两个字节满足以下条件:前一个字节的8位二进制数为字符“#”的ASC II码,后一个字节的8位二进制数为字符”的ASC II码;然后根据此帧的第40个字节到这满足条件的连续的两个字节的第I个字节之间的若干个字节,能够获得隐秘信息加密后的大小,根据这满足条件的连续的两个字节中的第2个字节之后连续的三个字节能获得隐秘信息的格式,通过分析MP3音频文件中被MP3Stegz隐写过的帧中的第41 56个字节,能够获得当次隐写的起始位置。
具体实施例方式以下结合实施例对本发明作进一步详细描述。MP3Stegz是目前流行的MP3隐写工具之一,它的隐写过程为:用由隐秘信息加密后转换成的字节替换可嵌帧的部分字节,同时它在隐写隐秘信息本身内容之前,会将隐秘信息的扩展名和加密后的大小隐写到MP3中。其整个隐写过程大致可分为两个部分:处理隐秘信息、隐写隐秘信息本身及其相关信息,处理隐秘信息部分主要完成:根据密码对隐秘信息进行加密,并提取扩展名和加密后的大小;隐写隐秘信息本身及其相关信息部分主要是根据隐写方法对前一部分提取的扩展名和大小以及隐秘信息的本身进行隐写。针对MP3Stegz的隐写原理,本发明提出了检测准确率高、计算复杂度低的针对MP3Stegz的隐写检测方法。实施例一:本实施例的隐写检测方法包括以下步骤:①以二进制流方式打开待检测的MP3音频文件。②从该MP3音频文件的二进制流中找出第一帧,并将找出的第一帧定义为当前帧。在此具体实施例中,步骤②中从该MP3音频文件的二进制流中找出第一帧的过程为:从该MP3音频文件的二进制流中的第I个字节开始,逐字节查询,当检索到连续的两个字节各自的8位二进制数依次为11111111和1111101*时,确定这连续的两个字节中的第I个字节为该MP3音频文件的二进制流中的第一帧开始的字节,其中,*表示二进制数O或1,即 1111101* 包括 11111010 和 11111011。③判断当前帧中的第37 40个字节中的每个字节的8位二进制数是否均为字符“X”的ASC II码,且当前帧中的第41个字节的8位二进制数是否为字符“I” “9”中的任一个字符的ASC II码,如果是,则执行步骤④,否则,执行步骤⑤。④判断当前帧中的第42 56个字节中是否存在连续的两个字节满足以下条件:连续的两个字节中的第I个字节的8位二进制数为字符“#”的ASC II码,且连续的两个字节中的第2个字节的8位二进制数为字符”的ASC II码,如果存在,则确定该MP3音频文件经MP3Stegz隐写过,完成隐写检测,否则,执行步骤⑤。⑤判断当前帧是否为该MP3音频文件的二进制流中的最后一帧,如果是,则确定该MP3音频文件未经MP3Stegz隐写过,完成隐写检测,否则,从该MP3音频文件的二进制流中找出下一帧,将该帧作为当前帧,然后返回步骤③继续执行。在此,判断当前帧是否为该MP3音频文件的二进制流中的最后一帧采用常见的技术,如当当前帧中的最后一个字节之后已无数据可供读入时,可确定该当前帧即为该MP3音频文件的二进制流中的最后一帧。在此具体实施例中,步骤⑤中从该MP3音频文件的二进制流中找出下一帧的过程为:根据当前巾贞的巾贞头内的信息(layer、bitratelndex、samplingFrequency、paddingBit)计算出当前帧的长度,从当前帧的最后一个字节之后的一个字节开始,逐字节查询,当检索到连续的三个字节各自的8位二进制数依次满足:为11111111、为111*****、高4位不全为I (对低4位不作要求),则确定这连续的三个字节中的第I个字节为该MP3音频文件的二进制流中的下一帧开始的字节,其中,*表示二进制数O或I。实施例二:本实施例的隐写检测方法包括以下步骤:I)以二进制流方式打开待检测的MP3音频文件。2)从该MP3音频文件的二进制流中找出第一帧,并将找出的第一帧定义为当前中贞,再令count表示隐写的次序,count的初始值为O。在此具体实施例中,步骤2)中从该MP3音频文件的二进制流中找出第一帧的过程为:从该MP3音频文件的二进制流中的·第I个字节开始,逐字节查询,当检索到连续的两个字节各自的8位二进制数依次为11111111和1111101*时,确定这连续的两个字节中的第I个字节为该MP3音频文件的二进制流中的第一帧开始的字节,其中,*表示二进制数O或1,即 1111101* 包括 11111010 和 11111011。3)判断当前帧中的第37 40个字节中的每个字节的8位二进制数是否均为字符“X”的ASC II码,且当前帧中的第41个字节的8位二进制数是否为字符“I” “9”中的任一个字符的ASC II码,如果是,则执行步骤4),否则,确定当前帧未经MP3Stegz隐写过,然后执行步骤6)。4)判断当前帧中的第42 56个字节中是否存在连续的两个字节满足以下条件:连续的两个字节中的第I个字节的8位二进制数为字符“#”的ASC II码,且连续的两个字节中的第2个字节的8位二进制数为字符”的ASC II码,如果存在,贝U令count=count+l,其中,此处“=”为赋值符号,然后执行步骤5),否则,执行步骤6)。5)输出隐写的次序count、隐写的起始位置,并提取出隐写的隐秘信息的格式和隐写的隐秘信息加密后的大小,然后执行步骤6)。在此,隐写的起始位置为当前帧中的第41个字节的位置,即为当前帧中的第37 40个字节中的每个字节的8位二进制数均为字符“X”的ASC II码的最后一个字节之后的一个字节。在此,隐写的隐秘信息的格式由当前帧中的第42 56个字节中满足以下条件的连续两个字节中的第2个字节之后的三个字节确定:连续两个字节中的第I个字节的8位二进制数为字符“#,,的ASC II码,且连续两个字节中的第2个字节的8位二进制数为字符”的ASC II码。假设当前帧中的第45个字节的8位二进制数为00100011,是字符“#”的ASC II码,当前帧中的第46个字节的8位二进制数为00101110,是字符”的ASC II码,则隐写的隐秘信息的格式由当前帧中的第46个字节之后的三个字节确定,即由当前帧中的第47个字节、第48个字节和第49个字节确定。在此,隐写的隐秘信息加密后的大小由当前帧中的第40个字节,与第42 56个字节中满足以下条件的连续两个字节中的第I个字节之间的若干个字节确定:连续两个字节中的第I个字节的8位二进制数为字符“#”的ASC II码,且连续两个字节中的第2个字节的8位二进制数为字符”的ASC II码。假设当前帧中的第45个字节的8位二进制数为00100011,是字符“ # ”的ASC II码,当前帧中的第46个字节的8位二进制数为00101110,是字符”的ASC II码,则隐写的隐秘信息加密后的大小由当前帧中的第40个字节与当前帧中的第45个字节之间的所有字节确定,即由当前帧中的第41 44个字节确定。6)判断当前帧是否为该MP3音频文件的二进制流中的最后一帧,如果是,则执行步骤7),否则,从该MP3音频文件的二进制流中找出下一帧,将该帧作为当前帧,然后返回步骤3)继续执行。在此,判断当前帧是否为该MP3音频文件的二进制流中的最后一帧采用常见的技术,如当当前帧中的最后一个字节之后已无数据可供读入时,可确定该当前帧即为该MP3音频文件的二进制流中的最后一帧。在此具体实施例中,步骤6)中从该MP3音频文件的二进制流中找出的过程为:根据当前巾贞的巾贞头内的信息(layer、bitrateIndex、samplingFrequency、paddingBit)计算出当前帧的长度,从当前帧的最后一个字节之后的一个字节开始,逐字节查询,当检索到连续的三个字节各自的8位二进制数依次满足:为11111111、为111*****、高4位不全为I (对低4位不作要求),则确定这连续的三个字节中的第I个字节为该MP3音频文件的二进制流中的下一帧开始的字节,其中,*表示二进制数O或I。
7)判断count的值是否为0,如果是,则确定该MP3音频文件未经MP3Stegz隐写过,完成隐写检测,否则,确定该MP3音频文件经MP3Stegz隐写过,完成隐写检测。上述实施例一仅检测了 MP3音频文件是否经MP3Stegz隐写过,而实施例二在实施例一的基础上,再输出了每次隐写的次序count、隐写的起始位置,并提取出了隐写的隐秘信息的格式和隐写的隐秘信息加密后的大小。为更好地说明本发明方法的有效性和可行性,利用实施例二给出的隐写检测方法进行隐写检测实验。隐写检测实验一:对未经MP3Stegz隐写过的MP3音频文件进行隐写检测的过程为:1、从因特网上随机下载一个MP3格式的音频文件(如testcase.mp3), testcase.mp3的重要参数如表I所列,然后以二进制方式打开testcase.mp3。表I MP3音频testcase.mp3的重要参数列表
权利要求
1.一种针对MP3Stegz的隐写检测方法,其特征在于包括以下步骤: ①以二进制流方式打开待检测的MP3音频文件; ②从该MP3音频文件的二进制流中找出第一帧,并将找出的第一帧定义为当前帧; ③判断当前帧中的第37 40个字节中的每个字节的8位二进制数是否均为字符“X”的ASC II码,且当前帧中的第41个字节的8位二进制数是否为字符“ I” “9”中的任一个字符的ASC II码,如果是,则执行步骤④,否则,执行步骤⑤; ④判断当前巾贞中的第42 56个字节中是否存在连续的两个字节满足以下条件:连续的两个字节中的第I个字节的8位二进制数为字符“#”的ASC II码,且连续的两个字节中的第2个字节的8位二进制数为字符”的ASC II码,如果存在,则确定该MP3音频文件经MP3Stegz隐写过,完成隐写检测,否则,执行步骤⑤; ⑤判断当前帧是否为该MP3音频文件的二进制流中的最后一帧,如果是,则确定该MP3音频文件未经MP3Stegz隐写过,完成隐写检测,否则,从该MP3音频文件的二进制流中找出下一帧,将该帧作为当前帧,然后返回步骤③继续执行。
2.根据权利要求1所述的一种针对MP3Stegz的隐写检测方法,其特征在于所述的步骤②中从该MP3音频文件的二进制流中找出第一帧的过程为:从该MP3音频文件的二进制流中的第I个字节开始 ,逐字节查询,当检索到连续的两个字节各自的8位二进制数依次为11111111和1111101*时,确定这连续的两个字节中的第I个字节为该MP3音频文件的二进制流中的第一帧开始的字节,其中,*表示二进制数O或I。
3.根据权利要求1或2所述的一种针对MP3Stegz的隐写检测方法,其特征在于所述的步骤⑤中从该MP3音频文件的二进制流中找出下一帧的过程为:根据当前帧的帧头内的信息计算出当前帧的长度,从当前帧的最后一个字节之后的一个字节开始,逐字节查询,当检索到连续的三个字节各自的8位二进制数依次满足:为11111111、为111*****、高4位不全为I,则确定这连续的三个字节中的第I个字节为该MP3音频文件的二进制流中的下一帧开始的字节,其中,*表示二进制数O或I。
4.一种针对MP3Stegz的隐写检测方法,其特征在于包括以下步骤: 1)以二进制流方式打开待检测的MP3音频文件; 2)从该MP3音频文件的二进制流中找出第一帧,并将找出的第一帧定义为当前帧,再令count表示隐写的次序,count的初始值为O ; 3)判断当前帧中的第37 40个字节中的每个字节的8位二进制数是否均为字符“X”的ASC II码,且当前帧中的第41个字节的8位二进制数是否为字符“I” “9”中的任一个字符的ASC II码,如果是,则执行步骤4),否则,执行步骤6); 4)判断当前帧中的第42 56个字节中是否存在连续的两个字节满足以下条件:连续的两个字节中的第I个字节的8位二进制数为字符“#”的ASC II码,且连续的两个字节中的第2个字节的8位二进制数为字符”的ASC II码,如果存在,则令c0unt=c0unt+l,其中,此处“=”为赋值符号,然后执行步骤5),否则,执行步骤6); 5)输出隐写的次序count、隐写的起始位置,并提取出隐写的隐秘信息的格式和隐写的隐秘信息加密后的大小,然后执行步骤6); 6)判断当前帧是否为该MP3音频文件的二进制流中的最后一帧,如果是,则执行步骤7),否则,从该MP3音频文件的二进制流中找出下一帧,将该帧作为当前帧,然后返回步骤3)继续执行; 7)判断count的值是否为0,如果是,则确定该MP3音频文件未经MP3Stegz隐写过,完成隐写检测,否则,确定该MP3音频文件经MP3Stegz隐写过,完成隐写检测。
5.根据权利要求4所述的一种针对MP3Stegz的隐写检测方法,其特征在于所述的步骤2)中从该MP3音频文件的二进制流中找出第一帧的过程为:从该MP3音频文件的二进制流中的第I个字节开始,逐字节查询,当检索到连续的两个字节各自的8位二进制数依次为11111111和1111101*时,确定这连续的两个字节中的第I个字节为该MP3音频文件的二进制流中的第一帧开始的字节,其中,*表示二进制数O或I。
6.根据权利要求4或5所述的一种针对MP3Stegz的隐写检测方法,其特征在于所述的步骤6)中从该MP3音频文件的二进制流中找出的过程为:根据当前帧的帧头内的信息计算出当前帧的长度,从当前帧的最后一个字节之后的一个字节开始,逐字节查询,当检索到连续的三个字节各自的8位二进制数依次满足:为11111111、为111*****、高4位不全为I,则确定这连续的三个字节中的第I个字节为该MP3音频文件的二进制流中的下一巾贞开始的字节,其中,*表示二进制数O或I。
7.根据权利要求6所述的一种针对MP3Stegz的隐写检测方法,其特征在于所述的步骤5)中隐写的起始位置为当前帧中的第41个字节的位置。
8.根据权利要求7所述的一种针对MP3Stegz的隐写检测方法,其特征在于所述的步骤5)中隐写的隐秘信息的格式由当前帧中的第42 56个字节中满足以下条件的连续两个字节中的第2个字节之后的三个字节确定:连续两个字节中的第I个字节的8位二进制数为字符“#”的ASC II码,且连续两个字节中的第2个字节的8位二进制数为字符”的ASC II码。
9.根据权利要求·8所述的一种针对MP3Stegz的隐写检测方法,其特征在于所述的步骤5)中隐写的隐秘信息加密后的大小由当前帧中的第40个字节,与第42 56个字节中满足以下条件的连续两个字节中的第I个字节之间的若干个字节确定:连续两个字节中的第I个字节的8位二进制数为字符“#”的ASC II码,且连续两个字节中的第2个字节的8位二进制数为字符”的ASC II码。
全文摘要
本发明公开了一种针对MP3Stegz的隐写检测方法,其先以二进制流方式打开待检测的MP3音频文件,然后按序从该MP3音频文件的二进制流中找到每一帧,接着通过分析每一帧中的第37~41个字节及第42~56个字节,确定每一帧是否经MP3Stegz隐写过,优点是通过分析该MP3音频文件的二进制流中的每帧中的第37~41个字节及第42~56个字节,能够准确地检测出该MP3音频文件是否经MP3Stegz隐写过,且性能稳健、检测准确率高、计算复杂度低。
文档编号G10L19/018GK103236265SQ201310119750
公开日2013年8月7日 申请日期2013年4月8日 优先权日2013年4月8日
发明者王让定, 金超, 严迪群, 余先敏, 孙冉, 羊开云, 马朋飞 申请人:宁波大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1