信息隐藏 - 图文
更新时间:2023-11-05 12:20:01 阅读量: 综合文库 文档下载
- 信息隐藏怎么设置推荐度:
- 相关推荐
LSB信息隐藏算法实现
一. LSB信息隐藏原理
LSB(least significant bit)算法是最早提出的一种典型的空间域信息隐藏算法。其信息嵌入过程是将待隐藏信息转化为二进制数据码流,然后将BMP文件图像数据部分的每个字节的奇偶性与上述二进制数码流进行比较。最后通过调整字节最低位的“0”或“1”,改变字节的奇偶性,使之与上述二进制数据流一致,即将信息嵌入到24位BMP图像中。
二、LSB信息隐藏与提取步骤
(1)、 LSB算法嵌入步骤
1、将原始载体图像的空域像素值由十进制转换到二进制表示 ,以大小的块图像为例 :
2、用二进制秘密信息中的每一比特信息替换与之相对应的载体数据的最低有效位,假设待嵌入的二进制秘密信息序列为[ 0 1 1 0 0 0 1 0 0 ],则替换过程如图所示。
第 1 页
3、将得到的含秘密信息的二进制数据转换为十进制像素值,从而获得含秘密信息的图像,如图所示。
(2)、 LSB算法提取步骤
1、 将得到的隐藏有秘密信息的十进制像素值转换为二进制数据,如图所示
2、将二进制数据的最低有效位提取出来,即为秘密信息序列[ 0 1 1 0 0 0 1 0 0 ]。如图所示。
第 2 页
三.源码说明
1、信息的嵌入代码 %嵌入秘密信息
Img = imread('C:\\Users\\郭栋\\Desktop\\image.jpg'); Double_img = double(Img);
fileId = fopen('C:\\Users\\郭栋\\Desktop\\test.txt','r'); [msg,len] = fread(fileId,'ubit1'); [m,n] = size(Double_img); flag = 1; for a = 1:n for b = 1:m
Double_img(a,b) = Double_img(a,b)-mod(Double_img(a,b),2) + msg(flag,1);
if flag ==len break; end
flag = flag + 1; end if flag ==len break; end end
第 3 页
Double_img = uint8(Double_img); imwrite(Double_img,'result.bmp'); subplot(1,2,1); imshow(Img); title('原图像'); subplot(1,2,2); imshow(Double_img); title('嵌入信息之后的图像'); 2、信息的隐藏提取过程 %提取秘密信息
img = imread('result.bmp'); img = double(img); [m,n] = size(img); xx =fopen('result.txt','a'); len = 160; p = 1; for a = 1:n for b = 1:m
if bitand(img(b,a),1)==1 fwrite(xx,1,'bit1'); result(p,1)=1; else
第 4 页
fwrite(xx,0,'bit1'); result(p,1)=0; end if p==len break; end p = p + 1; end if p == len break; end end fclose(xx);
四.实验结果分析
(1)、将原始图像和嵌入信息之后的图像进行对比:
(2)、test.txt记事本是需要隐藏得信息,result.txt记事本提取出来的信息,可以发现信息完
第 5 页
cda1 = cda0; for i = 1:k for j = 1:16
cda1(j + 30,i) = cda0(j + 30,i) + cdw0(j,i)*alpha; end end
(4)、 完成嵌入过程后进行逆DCT变换,显示原始图像和隐藏之后的图像 da1 = col2im(cda1,[8,8],[r,c],'distinct'); a1 = blkproc(da1,[8,8],'idct2'); figure(1);
subplot(1,2,1),imshow(a0,[]),title('原始图像'); subplot(1,2,2),imshow(a1,[]),title('隐藏之后的图像'); 2、 隐藏图像提取过程
(1)、对隐藏之后的图像进行DCT变换之后,反向实现隐藏图像的提取 dca0 = blkproc(a0,[8,8],'dct2'); dca1 = blkproc(a1,[8,8],'dct2'); cdca0 = im2col(dca0,[8,8],'distinct'); cdca1 = im2col(dca1,[8,8],'distinct'); for i = 1:k for j = 1:16
w1(j ,i) = (cdca1(j + 30,i) - cdca0(j + 30,i))/alpha; end end
w1 = reshape(w1,64,r1*c1/64); w = col2im(w1,[8,8],[r2,c2],'distinct'); w2 = blkproc(w,[8,8],'idct2');
(2)、显示隐藏图像和提取出来的隐藏图像 figure(2);
subplot(1,2,1),imshow(w0),title('隐藏图像'); subplot(1,2,2),imshow(w2),title('提取隐藏图像');
第 11 页
五.实验结果分析
(1)、将原始图像和有隐藏信息的图像进行对比:
原始图像 alpha=0.5时的图像
alpha=0.2时的图像 alpha=0.02时的图像
从上图的几幅图像当中alpha取值不同时藏有秘密信息的图像的不同效果,我们可以清楚的看出随着系数alpha值的增大,图像的破坏也越大,alpha=0.2或者alpha=0.5的情况下,还可以发现两者的图像相差基本不大,这就说明了,单纯的alpha对信息隐藏的不可见性的影响是有限的。主要是因为我们隐藏信息的数量是有限的,对图像的DCT系数改变的个数也是有限的,并且我们选的点是中频系数,并不包括主要的信息,所以对图像的能量能量的改变也是很有限的。
第 12 页
(2)、隐藏图像提取:
图像是分块以后进行的DCT变换,再经过随机选择后嵌入的秘密信息,在进行隐藏过程中由于部分隐藏位位0,所以有一部分隐藏图像不能提出出来,虽然进行不断的尝试,但是还是没能够解决。
五、小结
本实验基本对图像的隐藏与提取过程,但是没有成功实现对隐藏图像的完整提取。对于同一副图像来说,不同的嵌入强度alpha会使得图像的不可见性有明显的差异,并且alpha过大或者过小都会导致秘密信息无法提取出来;所以,在信息隐藏时要注意alpha的选取。在实验过程中实现了信息的提取,但是不能完全的提取,在图书馆以及网上查阅了很多资料,都没有找到一种好的解决方法,后来才知道没有量化,所以提取不全,由于时间原因以及自己能力有限,算法中还有一些不足。
第 13 页
第 14 页
正在阅读:
信息隐藏 - 图文11-05
防汛防台应急预案01-10
信号抽样及抽样定理 - 图文11-05
玉溪2022年学前教育特岗教师真题试卷四04-20
山东省泰安市2018届高三上学期期末考试语文试题及答案09-21
外研版八年级上册英语课文译文11-10
MBA排名:中国高校MBA排行榜100强(参考) - 图文01-04
第三章 企业设立与08-29
小学三、四年级体育导学案05-25
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 隐藏
- 图文
- 信息
- A卷中医心理学山东中医药大学应用心理学专业2007年级
- 几种热力学模型应用于二元合金中
- 与党组织失去联系党员查找情况记录表
- DSP课后习题答案
- 急诊科实习生带教的知识点
- 2018年厦门市小学毕业小升初模拟数学试题(共4套)附详细答案附答案
- 供配电课程设计报告
- 2012届高三理科数学一轮总复习第十二章 排列组合、二项式定理、概率(教师用书)
- 2004年空气动力学试题之二(补考)
- 高中记叙文《十八岁,他的青春》-精品
- 进化中的城市读书笔记
- 北师大版数学四年级上册路程、时间与速度优秀公开课教案(1)
- 应急预案控制程序
- 中级保育员历年试卷
- 七下历史复习题及答案 - 图文
- 2020年新人教版四年级数学下册第1-4单元堂堂清(原创) - 图文
- 建筑工程安全生产技术试题库
- 2018-2024年中国大麦行业市场竞争态势研究报告(目录) - 图文
- 上海交通大学物理期中考试卷2009-144A
- 北京天桥医院门诊管理系统需求分析