信息隐藏实验十LSB信息隐藏的卡方分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验十LSB信息隐藏的卡方分析
一,实验目的:
了解什么是隐写分析,隐写分析与信息隐藏和数字水印的关系。掌握基于图像的LSB隐写的分析方法,设计并实现一种基于图像的LSB卡方隐写分析方法。
二,实验环境
1,Windows XP操作系统
2,Mat lab 软件
3,BMP格式图片文件
三,实验原理
隐写术和隐写分析技术是互相矛盾乂是相互促进的,隐写分析是指对可疑的载体信息进行攻击以达到检测、破坏,共至提取秘密信息的技术,它的主要目标是为了揭示媒体中隐蔽信息的存在性,其至只是指出媒体中存在秘密信息的可疑性。
图像LSB信息隐藏的方法是用嵌入的秘密信息取代载体图像的最低比特位,原来图像的7个高位平面与代表秘密信息的最低位平面组成含隐蔽信息的新图像。虽然LSB隐写在隐藏大量信息的情况下依然保持良好的视觉隐蔽性,但使用有效的统计分析工具可判断一幅载体图像中是否含有秘密信息。
目前对于图像LSB信息隐藏主要分析方法有卡方分析、信息量估算法、RS 分析法和GPC分析法等。卡方分析的步骤是:设图像中灰度值为j的象素
数为hj,其中0WJW255。如果载体图像未经隐写,h2i和h2i+l的值会相差很大。秘密信息在嵌入之前往往经过加密,可以看作是0、1随机分布的比特流,而且值为0与1的可能性都是1/2。如果秘密信息完全替代载体图像的最低位,那么h2i和h2i+l的值会比较接近,可以根据这个性质判断图像是否经过隐写。定量分析载体图像最低位完全嵌入秘密信息的情况:嵌入信息会改变直方图的分布,由差别很大变得近似相等,但是却不会改变
h2i+h2i+l的值,因为样值要么不改变,要么就在h2i和h2i+l 之间改变。令显然这个值在隐写前后是不会变的。
如果某个样值为2i,那么它对参数q的贡献为1/2:如果样值为2i+l , 对参数q的贡献为T/2。载体音频中共有2h2i*个样点的值为2i或2i+l, 若所有样点都包含1比特的秘密信息,那么每个样点为2i或2i+l的概率就是0.5。当2h2i*较大时,根据中心极限定理,下式成立:其中->N(0, 1)表示近似服从正态分布所以他厂心》
服从卡方分布。
上式中,k等于h2i和h2i+l所组成数字对的数量,h2i*为0的情况不计在内。r越小表示载体含有秘密信息的可能性越大。结合卡方分布的密度计算函数计算载体被隐写的可能性为:
如果P接近于1,则说明载体图像中含有秘密信息。
四,实验结果
1,原图像
2,直方图由于所有的数据画出的直方图过于密集,所以选取80:99这之间的像素值。
原图80:99
隐写后80:99
3,不同隐写率下的图像
隐写率0. 3
隐写率0. 5
隐写率0. 7
4,P值分析
由所有的P值可以看出,当隐写率为0.3的时候,P[l]-P[40]的值都接近1;当隐写率为0.5的时候,P[l]-P[64]的值都接近1;当隐写率为0.7的时候,P[ll—P[91]的值都接近1。
五,实验结果
完成实验之后,可以得出如下结论:
依据卡方分析函数,可以判定载体图像中是否含有秘密信息。但是这要求秘密信息必须嵌满所有像素。
六,代码附录
1,hist_change. m
[fn, pn] =uigetfile ({' *. jpg',' JPEG files(*. jpg)' bmp',' BMP
files(*. bmp)select file to haide');
name=streat(pn, fn);
I=rgb2gray(imread(name));
sz=size(I);
rt=l;
row=round (sz (1 )*rt);
col二:round (sz (2)*rt);
msg^randsrc(row, col, -0 l;0・ 5 0.5]);
stg二I;
stg (1: row, 1: col)二bitset (stg (1: row, 1: col), 1, msg); nl=sum(hist(I, [0:255]),2)'; nS=sum(hist(stg, [0:255]), 2);
X二[80:99];
figure;
stem(x, nl (81:100));
figure;
stem(x, nS (81:100));
2,Stgprb・ m
function p二StgPrb(x)
n=sum(hist (x, [0:255]),2);
h2i=n([3:2:255]);
h2is二(h2i+n([4:2:256]))/2;
f i11 er= (h2 i s^=0);
k=sum(filter);
idx二zeros(1, k);
for i=l:127
if filter(i)=4
idx(sum(fliter (1:i)))二i;
end
end
r=sum(((h2i(idx)-h2is(idx)). 2)./ (h2is (idx)));
p=l-chi2cdf(r, k~l);
3,test・ m
clear all:
[fn, pn] =uigetfile ({' *. jpg' , ' JPEG files (*. jpg)' ;' bmp', ' BMP files(*・bmp)'}J select file to haide');
name=strcat(pn,fn);
t=imread(name);
I=t(1:512,1:512);
sz二size (I);
for k=l:3
rt=0. 3+0. 2*(k-l);
row=round(sz(1)*rt);
col二round (sz (2)*rt);
msg^randsrc(row, col, .0 l;0・ 5 0.5]);
stg=I;