信息隐藏实验十二基于SPA的音频隐写分析.docVIP

信息隐藏实验十二基于SPA的音频隐写分析.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
信息隐藏实验十二基于SPA的音频隐写分析

一、实验目的 了解抽样对分析(Sample Pairs Analysis,SPA)方法的基本原理,掌握使用SPA方法来判断音频文件是否经过LSB隐写,设计并实现一种基于SPA音频隐写分析的算法。 二、实验环境 (1)Windows 7操作系统; (2)MATLAB R2012b版本软件; (3)携密音频文件。 三、原理简介 LSB隐写分析方法有很多种,前面两次实验已经介绍了卡方和RS两种方法,本次实验介绍一种抽样对分析方法来分析音频文件是否经过LSB隐写。在SPA算法中,要用到RS算法中所定义的函数,即 (1) 式中:定义该函数为,用函数来描述信号的域相关性。在音频信号中,相邻抽样值之间具有很高相关性。因此选择相邻的抽样值对来构成一个抽样组。在LSB隐写之后,函数的期望值变为 (2) 函数的期望值变化为 (3) 在LSB隐写过程中(假设隐写率为),若秘密信息随机地嵌入到音频载体中,抽样值对将会有四种变化模型: (1)10模型:变化,不变化;。 (2)01模型:变化,不变化;。 (3)11模型:和都变化;。 (4)00模型:和都不变化;。 假设抽样值用比特的二进制表示,令为抽样值最重要的比特值,为LSB比特值。因此,。这样就能表示为:,。在下表1中对进行统计。 表 1 函数的期望值变化 0 0 0 0 实验数据表明,的抽样值对的数量和的抽样值对数量近似相等,而且,抽样值对的数量和抽样值对的数量近似相等。因此,这些对于式(3)不会有任何影响,由于LSB隐写方式并不会改变和的值,因此式(3)的变化主要是由那些的抽样值对所引起的。同时,和的抽样值对的数量要大于和的抽样值对的数量,因此式(3)值为正,也就是说,LSB隐写会增大的值。因此,本次实验将会集中分析时的抽样值对的情况。 对于比特的音频信号,LSB隐写嵌入的过程并不会引起抽样值前面比特的变化,也就是说,和不会改变。队友没有秘密信息的音频信号,当时抽样值对有四种情况:代表的值对;代表的值对;代表的值对;代表的值对。在LSB隐写嵌入之后,当时抽样值对也有四种情况:用分别代表。抽样值对有四种变化模式01,10,11,00。可通过构造一个有限状态机来模拟抽样对序列的变化情况,如下图1所示。 图 1 描述状态变化的有限状态机 用下列各式来反映序列和的相关性。符号代表抽样对序列的基数: (4) (5) (6) (7) 对于值对(用到的)和值对(用到的),发现在LSB隐写之前,近似相等(都用来表示),在LSB隐写之后几乎不变。因此能够通过或者来得到。上式变化如下: (8) 通过求解上面的方程可以得到隐写率: (9) 式中:;。 四、实验步骤 1. 音频文件LSB嵌入 本次实验中使用SPA方法来分析利用S-Tools工具生成的携密音频文件。 2. SPA分析 源代码spa.m如下: %基于相邻抽样值统计的隐写分析方法 close all; clear all; %读入音频文件 fid=fopen(.wav,r); %前44字节为头信息 status=fseek(fid,44,bof); a=fread(fid,[4,inf],uint8);%读入 all of the simples %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); D2=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)%求解隐写率 close all; function [b0,b3]=sumad(a) n=length(a); if(mod(n,2)==0) n=n; else a(n+1)=0; n=n+1; end b0=0; b3=0; for i=1:n/2 if(a(2*i-1)==a(2*i)) if((mod(a(2*i-1),2)==0)(mod(a(2*i),2)==0)) b0=b0+1; els

文档评论(0)

kabudou + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档