《信息隐藏技术》
实验报告
实验3:LSB信息隐藏攻击实验
杭州电子科技大学 网络空间安全学院
一、实验目的 1.主要内容
对实验1中信息隐藏后的图像进行隐写分析。 2.基本要求
要求学生能够将没有嵌入信息的图像和隐藏信息的图像区分开来。
二、实验内容及实现过程步骤
1.可视攻击
针对LSB算法,通过可视攻击进行视觉比较,观察含隐藏信息与不含隐藏信息图像的不同。
原图
嵌入LSB水印
提取最低有效位
提取最低有效位
2.概率分布分析方法(χ分析)
统计LSB信息隐藏后,图像的像素灰度值的直方图,结合χ分布密度函数计算载体含有秘密信息的概率值。
2
2
部分分块概率为1,不确定含有秘密信息
大部分分块的概率为1,可以确定含有秘密信息
部分分块概率为1,不确定含有秘密信息
大部分分块的概率为1,可以确定含有秘密信息
三、实验结果分析
计算隐秘分析算法判断结果的错误率:
FP (false positive):没有嵌入隐藏信息的图像错误地判断为嵌入了隐藏信息 FN (false negative):嵌入隐藏信息的图像错误地判断为没有嵌入隐藏信息
判断标准:超过半数的分块概率为1,判别为加密 少于半数的分块概率为1,判别为原始图像 FP:4/9 FN:0/9
误判原因分析,图像像素值较低
四、实验小结
(包括小组分工,组员各自的贡献点;通过实验得出的结论;对隐写分析加深的理解)
设计算法:邢征宇(卡方分析)
刘煜程(可视攻击)
结果分析:单志晗(FP)
梁经纬(FN)
总结:
1. 能够真正理解两种方法的思想和每一个处理步骤的作用,才能真正写出 matlab 程序并进行结果分析; 2. 8 位的像素值从 0 开始到 255,但是数组的下标从 1 开始到 256,所以像素值的 2i 对应数组下标 2i-1,像素值的 2i+1 对应数组下标 2i, 像素值只存在 2i->2i+1 的变换, 对应于只存在 2i-1->2i 的下标值变换,在编写代码时需注意此类细节,否则实验结果将大打折扣;
3. 当实验结果与预期的有偏差,不仅仅是检查理解实验有偏差、程序是否正确,而且需要改变不同的实现方法、不同的参数以及利用不同的图像来进行测试和比较,这样才可能更快判断出问题出在哪里,并找到解决办法,而且有的时候不一定是代码有误的问题。
五、代码附录 可视攻击代码略 卡方分析代码: clear;
im1=imread('lena.bmp'); N=4; %分为4X4块; K=128; 8X128像素;
BLOCK = zeros(K,K);%存放当前块 r=0; a=1;
hx=zeros(1,128); pr=zeros(1,16); pc=zeros(1,16);
for p=1:N %从1到4循环 for q=1:N %从1到4循环 x=(p-1)*K+1; y=(q-1)*K+1;
BLOCK=im1(x:x+K-1,y:y+K-1);%取相应元素保存到BLOCK中 [h,x]=imhist(BLOCK); %取当前分块的灰度直方图 for i=1:128
hx(i)=(h(2*i-1)+h(2*i))/2; if hx(i)~=0
r=r+(h(2*i-1)-hx(i))^2 / hx(i); end end pr(a)=r;
pc(a)=1-chi2pdf(r,127); a=a+1; r=0;
end end
subplot(2,1,1) plot(pr);
title('r=sum(h2i-h2i*)^2/h2i*'); subplot(2,1,2) plot(pc);
title('p=1-chi2pdf(r,127)');