首页 LSB信息隐藏实验报告

LSB信息隐藏实验报告

举报
开通vip

LSB信息隐藏实验报告个人收集整理资料,仅供交流学习,勿作商业用途CentralSouthUniversity信息隐藏实验报告学院:信息科学与工程学院班级:信息安全1201学号:0909121724姓名:吕秋言时间:2018年6月实验一:基于图像的LSB信息隐藏一、实验目的该实验为验证性实验。目的是通过实验使学生掌握经典信息隐藏算法,在Matlab环境下,编写基于图像的LSB信息隐藏算法程序。Matlab函数实现LSB信息隐藏及提取,并进行分析。b5E2RGbCAP二、实验要求1、实验前要做好充分准备,包括:复习实验所涉及的知识点,掌握...

LSB信息隐藏实验报告
个人收集整理资料,仅供交流学习,勿作商业用途CentralSouthUniversity信息隐藏 实验报告 化学实验报告单总流体力学实验报告观察种子结构实验报告观察种子结构实验报告单观察种子的结构实验报告单 学院:信息科学与工程学院班级:信息安全1201学号:0909121724姓名:吕秋言时间:2018年6月实验一:基于图像的LSB信息隐藏一、实验目的该实验为验证性实验。目的是通过实验使学生掌握经典信息隐藏算法,在Matlab环境下,编写基于图像的LSB信息隐藏算法程序。Matlab函数实现LSB信息隐藏及提取,并进行 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 。b5E2RGbCAP二、实验要求1、实验前要做好充分准备,包括:复习实验所涉及的 知识点 高中化学知识点免费下载体育概论知识点下载名人传知识点免费下载线性代数知识点汇总下载高中化学知识点免费下载 ,掌握Matlab编程语言和调试环境。2、实验时注意记录实验过程中产生的数据、出现的问题及解决问题的方法。个人收集整理资料,仅供交流学习,勿作商业用途3、理论联系实际,认真分析实验结果,回答思考题。4、实验后完成实验 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 ,并附相关截图。三、实验环境计算机<安装VisualC++6.0和Matlab6.5以上版本)四、实验原理隐秘算法核心是将我们选取的像素点的最不重要位依次替换成秘密信息,以达到信息隐秘的目的。嵌入过程包括选择一个图像载体像素点的子集{j1,,jl(m>},然后在子集上执行替换操作像素cji←→mi,即把cji的LSB与秘密信息mi进行交换(mi可以是1或0>。一个替换系统也可以修改载体图像像素点的多个比特,例如,在一个载体元素的两个最低比特位隐藏两比特、三比特信息,可以使得信息嵌入量大大增加但同时将破坏载体图像的质量。在提取过程中,找出被选择载体图像的像素序列,将LSB(最不重要位>排列起来重构秘密信息,算法描述如下:p1EanqFDPw嵌入过程:for(i=1。i<=像素序列个数。i++>si←cifor(i=1。i<=秘密消息长度。i++>将选取的像素点的最不重要位依次替换成秘密信息sji←cji←→mi提取过程:for(i=1。i<=秘密消息长度。i++>{i←→ji//序选取mi←LSB(cji>2/19个人收集整理资料,仅供交流学习,勿作商业用途}五、实验内容与步骤基本演示环境:matlabLSB,LeastSignificantBits,最低有效位,将图像加密处理。这次将通过位平面的切割之后,嵌入一张隐私图片,一些人的隐私交流很有可能通过这个,比如美国的某某人,当然这个只是最简单的。DXDiTa9E3d位平面切割是将数字图像分解为位平面,比如上一篇文章讲到的图片的8位的数据类型,可以让我们每一位所起的作用。一边学的时候也带着疑问,为什么用bitget呢。RTCrpUDGiT经过实验也证明自己的想法是正确的,首先bitget(X,Y>是拿到X二进制的值的Y位。[plain]viewplaincopy>>bitget(1,1>2.ans=4.5.16.3/19个人收集整理资料,仅供交流学习,勿作商业用途>>bitget(1,2>8.ans=10.11.012.>>那么我们可以想想,一幅8位的数字图像<无符号类型),最高是11111111<二进制),即2^8-1,255,用大腿一想,当然是第八位起决定性作用,假如有一百万零一这个数字,少了最前面的一个一和最后面的一个一可是两码事。5PCzVD7HxA举个例子,我切除图像的一部分:[plain]viewplaincopy1.>>q=f(122:130,122:130>。2.>>imwrite(q,'verysmall.jpg'>。3.>>f=imread('verysmall.jpg'>4.f=6.7.1551541491411341291291301274/19个人收集整理资料,仅供交流学习,勿作商业用途8.1711691661611571541541541489.17317117017017117116916816310.16516416416717017217116916511.16616616716917117217217116812.17417517517417016916917017513.17918218117416415916016417214.18418618517416015215516016115.182185180167154149148148149每个像素点的值这么大。接下来:[plain]viewplaincopy1.>>t=bitget(f,8>2.5/19个人收集整理资料,仅供交流学习,勿作商业用途t=4.5.6.7.8.9.10.11.12.13.11111111011111111111111111111111111111111111111111111111111111111111111111111111114.>>6/19个人收集整理资料,仅供交流学习,勿作商业用途最高位是决定性作用的一层。所以,要嵌入图像,就要嵌入到第一层,影响最小。[plain]viewplaincopy1.>>f=imread('lina.jpg'>。2.>>g=bitget(f,8>。这样g虽然是第八层的图像,但是都是二进制最高位的值,非0即1,而在为灰度图像看来,都是黑色。需要转换成二值图像。jLBHrnAILg[plain]viewplaincopyt=logical(g>。接下来,我把自己的话嵌入到照片中。[plain]viewplaincopy1.>>b=imread('love.jpg'>。>>c=im2bw(b>。这次是反过来,我们是要把一幅8位数据类型的图像嵌入到位图中,那首先要把8位的数据转换成二进制,用上面的im2bw。xHAQX74J0X先看看嵌入到影响最大的一层的效果如何:[plain]viewplaincopy7/19个人收集整理资料,仅供交流学习,勿作商业用途1.>>w=bitset(a,8,c>。>>imshow(w>接下来,嵌入到第一层:[plain]viewplaincopy1.>>w=bitset(a,1,c>。2.>>imshow(w>8/19个人收集整理资料,仅供交流学习,勿作商业用途几乎是看不到什么的,当你想看看你嵌入什么图像时,只需要把被替换的第一层取出。[plain]viewplaincopy1.>>y=bitget(w,1>。>>imshow(logical(y>>1、随机选取图像载体像素,实现隐秘消息的嵌入与提取<1)隐秘消息的嵌入%文件名:randlsbhide.m%函数功能:本函数将完成随机选择LSB的信息隐秘,载体选用灰度BMP图9/19个人收集整理资料,仅供交流学习,勿作商业用途%输入格式举:[ste_cover,len_total]=randlsbhide(′glenna.bmp′,′message.txt′,′scover.bmp′,2001>LDAYtRyKfE%参数说明:%input是信息隐蔽载体图像%file是秘密消息文件%output是信息隐秘后的生成图像%key是随机间隔函数的密钥function[ste_cover,len_total]=randlsbhide(input,file,output,key>Zzz6ZB2Ltk%读入图像矩阵cover=imread(input>。ste_cover=cover。ste_cover=double(ste_cover>。%将文本文件转换为二进制序列f_id=fopen(file,′r′>。[msg,len_total]=fread(f_id,′ubit1′>。%判断嵌入消息量是否过大[m,n]=size(ste_cover>。Iflen_total>m*nerror(′嵌入消息量过大,请更换图像′>。end%p作为消息嵌入位数计数p=1。10/19个人收集整理资料,仅供交流学习,勿作商业用途%调用随机间隔函数选取像素点[row,col]=randinterval(ste_cover,len_total,key>。%在LSB隐秘消息fori=1:len_totalste_cover(row(i>,col(i>>=ste_cover(row(i>,col(i>>-mod(ste_cover(row(i>,col(i>>,2>+msg(p,1>。dvzfvkwMI1ifp==len_totalbreak。endp=p+1。endste_cover=uint8(ste_cover>。imwrite(ste_cover,output>。%显示实验结果subplot(1,2,1>。imshow(cover>。title(′原始图像′>。subplot(1,2,2>。imshow(output>。title(′隐藏信息的图像′>。11/19个人收集整理资料,仅供交流学习,勿作商业用途<2)编写函数比较两幅图像区别%文件名:compare.m%函数功能:本函数完成显示隐秘前后两幅图像的区别%输入格式举例:F=compare(′blenna.bmp′,′scover.bmp′>%参数说明:%original是原始载体图像%hided是隐秘后的图像%F是差值矩阵functionF=compare(original,hided>%读取原始载体图像矩阵W=imread(original>。W=double(W>/255。12/19个人收集整理资料,仅供交流学习,勿作商业用途%读取隐秘后图像矩阵E=imread(hided>。E=double(E>/255。%将两图像矩阵相减,显示效果%注意,MATLAB中矩阵相减只支持double型imshow(mat2gray(F>><3)隐秘消息的提取%文件名:randlsbget.m%函数功能:本函数将完成提取隐秘于LSB上的秘密消息%输入格式举:result=randlsbget(′scover.jpg′,56,′secret.txt′,2001>rqyn14ZNXI%参数说明:%output是信息隐秘后的图像13/19个人收集整理资料,仅供交流学习,勿作商业用途%len_total是秘密消息的长度%goalfile是提取出的秘密消息文件%key是随机间隔函数的密钥%result是提取的消息functionresult=randlsbget(output,len_total,goalfile,key>EmxvxOtOcoste_cover=imread(output>。ste_cover=double(ste_cover>。%判断嵌入消息量是否过大[m,n]=size(ste_cover>。frr=fopen(goalfile,′a′>。%p作为消息嵌入位数计数器,将消息序列写回文本文件p=1。%调用随机间隔函数选取像素点[row,col]=randinterval(ste_cover,len_total,key>。fori=1:len_totalifbitand(ste_cover(row(i>,col(i>>,1>==1fwrite(frr,1,′bit1′>。result(p,1>=1。elsefwrite(frr,0,′bit1′>。result(p,1>=0。14/19个人收集整理资料,仅供交流学习,勿作商业用途endifp==len_totalbreak。endp=p+1。endfclose(frr>。2、顺序选取图像载体像素,实现隐秘消息的嵌入与提取<1)隐秘消息的嵌入%文件名:lsbhide.m%函数功能:本函数将完成在LSB上的顺序信息隐秘,载体选用灰度BMP图%输入格式举例:[ste_cover,len_total]=lsbhide(′glenna.bmp′,′message.txt,′scover.bmp′>SixE2yXPq5%参数说明:%input是信息隐蔽载体图像,为灰度BMP图%file是秘密消息文件%output是信息隐秘后生成图像%ste_cover是信息隐秘后图像矩阵%len_total是秘密消息的长度,即容量15/19个人收集整理资料,仅供交流学习,勿作商业用途function[ste_cover,len_total]=lsbhide(input,file,output>6ewMyirQFL%读入图像矩阵cover=imread(input>。ste_cover=cover。ste_cover=double(ste_cover>。%将文本文件转换为二进制序列f_id=fopen(file,′r′>。[msg,len_total]=fread(f_id,′ubit1′>。%判断嵌入消息量是否过大[m,n]=size(ste_cover>。iflen_total>m*nerror(′嵌入消息量过大,请更换图像′>。end%p作为消息嵌入位数计数%生成信息隐秘后图像imwrite(ste_cover,output>。%显示实验结果subplot(1,2,1>。imshow(cover>。title(′原始图像′>。subplot(1,2,2>。imshow(output>。title(′隐藏信息的图像′>。16/19个人收集整理资料,仅供交流学习,勿作商业用途<2)调用函数compare.m比较两幅图像区别<3)隐秘消息的提取17/19个人收集整理资料,仅供交流学习,勿作商业用途%文件名:lsbget.m%函数功能:本函数将完成提取隐秘于LSB上的秘密消息%输入格式举例:result=lsbget(′scover.bmp′,56,′secret.txt′>kavU42VRUs%参数说明:%output是信息隐秘后的图像%len_total是秘密消息的长度%goalfile是提取出的秘密消息文件%result是提取的消息functionresult=lsbget(output,len_total,goalfile>ste_cover=imread(output>。ste_cover=double(ste_cover>。%判断嵌入消息量是否过大[m,n]=size(ste_cover>。frr=fopen(goalfile,′a′>。%p作为消息嵌入位数计数器,将消息序列写回文本文件六:实验小结:通过这次实验使我掌握经典信息隐藏算法,在Matlab环境下,编写基于图像的LSB信息隐藏算法程序。用Matlab函数实现LSB信息隐藏及提取,并进行分析,对顺序嵌入隐秘消息和随机嵌入隐秘消息两种方法的实现结果进行比较。通过比较可得,顺序嵌入隐秘18/19个人收集整理资料,仅供交流学习,勿作商业用途消息比随机嵌入隐秘消息更有序,代码更复杂,要求更严格,同时隐秘性也更好。y6v3ALoS89申明:所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。19/19
本文档为【LSB信息隐藏实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
春雨书屋
从事直销行业多年,精通保健品等知识。
格式:doc
大小:593KB
软件:Word
页数:21
分类:
上传时间:2022-11-06
浏览量:1