一、实验内容
实验完成形式:
用MATLAB函数实现LSB信息隐藏和提取
实验选择载体:
512×512灰度图像
实验效果和分析:
1.完成基本的LSB信息隐藏及提取
2.能随机选择嵌入位进行信息隐藏及提取(考虑安全性因素)
3.能够计算PSNR,分析信息隐藏图像质量
4.完成对秘密信息的图像载体进行攻击,采用的攻击方法: jpeg压缩,resize缩放
5.计算每种攻击方法提取的秘密信息误码率
二、实验涉及到的相关算法
1.基本LSB信息隐藏及提取算法——图像的第一层是LSB层,替换后对原图像的影响较小,第8层为MSB层对原图像影响较大。
1)读入图像载体:gray=imread('lena_gray.bmp');
2)读入要隐藏的图像,并转换为二进制:woman=imread('woman_rgb.bmp'); woman_to_binary=im2bw(woman);
3)在图像载体的第一层隐藏图像:gray_set=bitset(gray,1,woman_to_binary);
4)提取隐藏的图像:gray_get_1=bitget(gray_set,1);
1)读入图像载体:gray=imread('lena_gray.bmp');
2)读入要隐藏的图像,并转换为二进制:woman=imread('woman_rgb.bmp'); woman_to_binary=im2bw(woman);
3)在图像载体的第一层隐藏图像:gray_set=bitset(gray,1,woman_to_binary);
4)提取隐藏的图像:gray_get_1=bitget(gray_set,1);
算法实现源代码:
gray=imread('lena_gray.bmp');
gray_8=bitget(gray,8);
gray_6=bitget(gray,6);
gray_7=bitget(gray,7);
woman=imread('woman_rgb.bmp');
woman_to_binary=im2bw(woman);
gray_set=bitset(gray,1,woman_to_binary);
gray_set_8=bitset(gray,8,woman_to_binary);
gray_get_8=bitget(gray_set_8,8);
gray_get_1=bitget(gray_set,1);
subplot(221),imshow(gray),title('原始图像');
subplot(222),imshow(logical(gray_8)),title('原始图像的第8层');
subplot(223),imshow(gray_set_8),title('在第8层隐藏信息后');
subplot(224),imshow(logical(gray_get_8)),title('获取隐藏的图像');
figure,%新打开一个窗口
subplot(221),imshow(gray),title('原始图像');
subplot(222),imshow(woman_to_binary),title('要