您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 信息隐藏实验十二基于SPA的音频隐写分析
一、实验目的了解抽样对分析(SamplePairsAnalysis,SPA)方法的基本原理,掌握使用SPA方法来判断音频文件是否经过LSB隐写,设计并实现一种基于SPA音频隐写分析的算法。二、实验环境(1)Windows7操作系统;(2)MATLABR2012b版本软件;(3)携密音频文件。三、原理简介LSB隐写分析方法有很多种,前面两次实验已经介绍了卡方和RS两种方法,本次实验介绍一种抽样对分析方法来分析音频文件是否经过LSB隐写。在SPA算法中,要用到RS算法中所定义的函数,即11211(,,,)nniiifxxxxx(1)式中:定义该函数为()fG,用()fG函数来描述信号的域相关性。在音频信号中,相邻抽样值之间具有很高相关性。因此选择相邻的抽样值对1(,)iixx来构成一个抽样组。在LSB隐写之后,函数()fG的期望值变为1'''11(())()niiiEfGExx(2)函数()fG的期望值变化为1'''111(())(())(()())niiiiiEfGEfGExxExx(3)在LSB隐写过程中(假设隐写率为),若秘密信息随机地嵌入到音频载体中,抽样值对1(,)iixx将会有四种变化模型:(1)10模型:ix变化,1ix不变化;2(10)/2/4p。(2)01模型:1ix变化,ix不变化;2(01)/2/4p。(3)11模型:ix和1ix都变化;2(11)/4p。(4)00模型:ix和1ix都不变化;2(00)(1/2)p。基于SPA的音频隐写分析1假设抽样值用B比特的二进制表示,令Y为抽样值最重要的1B比特值,U为LSB比特值。因此,2XYU。这样就能表示为:2ixnk,12ixmj。在下表1中对''11()()iiiicExxExx进行统计。表1函数()fG的期望值变化nmnmnm0,0kj00,0kj2/20,0kj00,1kj0,1kj2/20,1kj1,0kj1,0kj2/21,0kj1,1kj01,1kj2/21,1kj0实验数据表明,01kjnm、、的抽样值对的数量和10kjnm、、的抽样值对数量近似相等,而且,01kjnm、、抽样值对的数量和10kjnm、、抽样值对的数量近似相等。因此,这些对于式(3)不会有任何影响,由于LSB隐写方式并不会改变n和m的值,因此式(3)的变化主要是由那些nm的抽样值对所引起的。同时,0,0kj和1,1kj的抽样值对的数量要大于0,1kj和1,0kj的抽样值对的数量,因此式(3)值为正,也就是说,LSB隐写会增大()fG的值。因此,本次实验将会集中分析nm时的抽样值对的情况。对于B比特的音频信号,LSB隐写嵌入的过程并不会引起抽样值前面1B比特的变化,也就是说,m和n不会改变。队友没有秘密信息的音频信号,当nm时抽样值对1(,)iixx有四种情况:0b代表0,0kj的值对;1b代表0,1kj的值对;2b代表1,0kj的值对;3b代表1,1kj的值对。在LSB隐写嵌入之后,当nm时抽样值对1(,)iixx也有四种情况:用''''0123bbbb、、、分别代表。抽样值对1(,)iixx有四种变化模式01,10,11,00。可通过构造一个有限状态机来模拟抽样对序列的变化情况,如下图1所示。基于SPA的音频隐写分析2图1描述状态变化的有限状态机用下列各式来反映序列0123,,,bbbb和''''0123,,,bbbb的相关性。符号代表抽样对序列的基数:'222200123||(1/2)(/2/4)(/2/4)(/4)bbbbb(4)'222210123||(/2/4)(1/2)(/4)(/2/4)bbbbb(5)'222220123||(1/2)(/2/4)(/2/4)(/4)bbbbb(6)'222230123||(/2/4)(1/2)(/4)(/2/4)bbbbb(7)对于1,0,1nmkj值对1(,)iixx(1d用到的)和1,1,0nmkj值对1(,)iixx(2d用到的),发现在LSB隐写之前,1212bbdd、、、近似相等(都用b来表示),在LSB隐写之后12,dd几乎不变。因此能够通过1d或者2d来得到b。上式变化如下:22'2003222'0322'2303(1)()()224()(1)()24224()()(1)422bbbbbbbbbbbb(8)通过求解上面的方程可以得到隐写率:2111kk(9)式中:'''10324kbbbb;'244kbb。基于SPA的音频隐写分析3四、实验步骤1.音频文件LSB嵌入本次实验中使用SPA方法来分析利用S-Tools工具生成的携密音频文件。2.SPA分析源代码spa.m如下:%基于相邻抽样值统计的隐写分析方法closeall;clearall;%读入音频文件fid=fopen('hidden.wav','r');%前44字节为头信息status=fseek(fid,44,'bof');a=fread(fid,[4,inf],'uint8');%读入allofthesimples%a=fread(fid,5000,'uint8');%初始化各个统计量B0=0;B1=0;B2=0;B3=0;B=0;D1=0;D2=0;D=0;k1=0;k2=0;%求各个统计量[B0,B3]=sumad(a);B1=sumb(a);B2=sumc(a);x=[B1,B2];B=mean(x);%取x的算术平均值D1=sume(a);基于SPA的音频隐写分析4D2=sumf(a);y=[D1,D2];D=mean(y);%取y的算术平均值k1=B0+B3+2*B-4*D;k2=4*B-4*D;z=1-sqrt(k2/k1)%求解隐写率closeall;运行上述代码,可得此携密文件的隐写率为0.3119。五,实验总结完成了基于SPA的音频隐写分析六,附录附录一sumad的源代码如下:function[b0,b3]=sumad(a)n=length(a);if(mod(n,2)==0)n=n;elsea(n+1)=0;n=n+1;endb0=0;b3=0;fori=1:n/2if(a(2*i-1)==a(2*i))if((mod(a(2*i-1),2)==0)&(mod(a(2*i),2)==0))b0=b0+1;elseif((mod(a(2*i-1),2)==1)&(mod(a(2*i),2)==1))b3=b3+1;endendend基于SPA的音频隐写分析5附录二sumb的源代码如下:functionb1=sumb(a)%a=[1,3,4,2,3,4,7,7,9,4]n=length(a);if(mod(n,2)==0)n=n;elsea(n+1)=0;n=n+1;endb1=0;fori=1:n/2if((a(2*i)-a(2*i-1))==1)if((mod(a(2*i-1),2)==0)&(mod(a(2*i),2)==1))b1=b1+1;endendend附录三sumc的源代码如下:functionb2=sumc(a)%a=[1,3,4,2,3,4,7,7,9,4]n=length(a);if(mod(n,2)==0)n=n;elsea(n+1)=0;n=n+1;endb2=0;fori=1:n/2基于SPA的音频隐写分析6if((a(2*i-1)-a(2*i))==1)if((mod(a(2*i-1),2)==1)&(mod(a(2*i),2)==0))b2=b2+1;endendend附录四sume的源代码如下:functiond1=sume(a)%a=[1,3,4,2,3,4,7,7,9,4]n=length(a);if(mod(n,2)==0)n=n;elsea(n+1)=0;n=n+1;endd1=0;fori=1:n/2if((a(2*i-1)-a(2*i))==1)if((mod(a(2*i-1),2)==0)&(mod(a(2*i),2)==1))d1=d1+1;endendend附录五sumf的源代码如下:functiond2=sumf(a)%a=[1,3,4,2,3,4,7,7,9,4]n=length(a);if(mod(n,2)==0)n=n;基于SPA的音频隐写分析7elsea(n+1)=0;n=n+1;endd2=0;fori=1:n/2if((a(2*i)-a(2*i-1))==1)if((mod(a(2*i-1),2)==1)&(mod(a(2*i),2)==0))d2=d2+1;endendend
本文标题:信息隐藏实验十二基于SPA的音频隐写分析
链接地址:https://www.777doc.com/doc-2693251 .html