下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、上海电力学院高级程序设计(C)课程设计报告院 系:计算机科学与技术学院_专业年级:信息安全 2012 级_学生姓名: 涂桂花_ 学号: 20123333指导教师:魏为民_2015 年 4 月 14 日目:LSB 信息隐藏实验目录一、实验目的.1.二、实验内容和步骤.1.1. 操作环境.1.2. 系统配置.1.3. 操作步骤.1.4. 程序源代码. 5.三、实验结果 .5.1. 测试图片. 5.2. 测试结果. 5.3. 截屏.6.四、 实验小结.6.1. 遇到的问题总结合分析:. 62. 未解决的问题. 103. 实验效果和分析. 104. 总结:. 10附件:.111上海电力学院实验报告、实
2、验目的1.用MATLAB函数实现LSB信息隐藏和提取。2.了解信息隐藏的作用和实现方法原理。3.学会分析了解隐藏算法。、实验内容和步骤如操作环境、系统配置、操作步骤、程序源代码等。1.操作环境操作系统Windows 7旗舰版64位SP1 ( DirectX 11 )2.系统配置处理器AMD E1-2100 APU with Radeon HD Graphics双核3.操作步骤课程名称信息安全实验项目LSB信息隐藏实验女生名涂桂花学号201233专业信息安全同组人姓名无指导教师魏为民实验日期20154141)打开MATLAB件,新建文件夹名为“LSB”。22)在“Comma nd Win doW
3、窗口里输入“guide”,回车。a.如下图所示建立图形界面。将5个push butt on控件的“String”属性设置为下图相应3显示的名字,Tag属性设置为pbt+String名的格式。将4个axec控件的Tag属性设置 为如下图所显示的名字。LSB333JLfiig3)分别右键点击5个push butt on控件,View Callbacks-CallBacks.给每个控件添加Callback代码。再添加代码之前要为该fig文件命名。我在本次实验命 名为LSB3333.fig。各个控件的代码如下:% - Executes on butt on press in pbtCover.fun
4、cti onpbtCover_Callback(hObject, eve ntdata, han dles)% hObject han dle to pbtCover (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% han dles structure with han dles and user data (see GUIDATA)global gCover;gCover,sFile=loadimg();if isempty(gCover)msgbox( Cover image is
5、empty!,Warning, warn,modal);return ;end4axes(ha ndles.axCover);imshow(gCover);iH iW iL=size(gCover);sMsg=sFile, ,n um2str(iH), *,n um2str(iW),set(ha ndles.text1,Stri ng,sMsg);% - Executes on butt on press in pbtSecret.fun cti on pbtSecret_Callback(hObject, eve ntdata, han dles)% hObject handle to pb
6、tSecret (see GCBO)% eve ntdata reserved - to be defi ned in a future versi on of MATLAB% han dles structure with han dles and user data (see GUIDATA)global gSecret;gSecret ,sFile=loadimg();if isempty(gSecret)msgbox( Secret image is empty!, Warningreturn ;endaxes(ha ndles.axSecret);imshow(gSecret);iH
7、 iW iL=size(gSecret);% - Executes on butt on press in pbtEmbed.fun cti onpbtEmbed_Callback(hObject, eve ntdata, han dles)% hObject han dle to pbtEmbed (see GCBO)% eve ntdata reserved - to be defi ned in a future versi on of MATLAB% han dles structure with han dles and user data (see GUIDATA)global g
8、Cover gSecret gStego;if isempty(gCover)msgbox( Cover image is empty!, Warning ,return ;endif isempty(gSecret)msgbox( gSecret image is empty!,War ningreturn ;endHc,Wc丄c=size(gCover);Hs,Ws丄s=size(gSecret);sMsg=sFile,n um2str(iH),* ,n um2str(iW),set(ha ndles.text1,Str in g,sMsg);set(ha ndles.text2,Str
9、in g,Secret Image,n um2str(iL),;,n um2str(iL),;warn , modal);war n,moda l);warn , modal );5if (Hc=Hs) | (Wc=Ws) | (Lc=Ls)6disp( Error: Not Match! return ;endgStego = ui nt8(bitor(bita nd(gCover,254),bitshift(gSecret,-7);imwrite(gStego,emTmp.bmp );axes(ha ndles.axStego); imshow(gStego,);% - Executes
10、on butt on press in pbtExtract.fun cti on pbtExtract_Callback(hObject, eve ntdata, han dles)% hObject handle to pbtExtract (see GCBO)% eve ntdata reserved - to be defi ned in a future versi on of MATLABendend Hc,Wc丄c=size(gCover);Hs,Ws丄s=size(gSecret);if (Hc=Hs) | (Wc=Ws) | (Lc=Ls) disp( Error: Not
11、Match!);return ;endgStego = ui nt8(bitor(bitand(gCover,254),bitshift(gSecret,-7); imwrite(gStego,emTmp.bmpaxes(ha ndles.axStego);imshow(gStego,);endimExtract = ui nt8(bitand(255,bitshift(gStego,7); imwrite(imExtract,exTmp.bmpaxes(ha ndles.axExtract);imshow(imExtract);msgbox( Extracted Image: exTmp.b
12、mp);Finished););% han dles structure with han dles and user data (see GUIDATA)global gStego;global gCover gSecret;if isempty(gCover)msgbox( Cover image is empty! return ;Warningwarnmoda l);if isempty(gSecret)msgbox( gSecret image is empty!return ;Warningwarnmodal ););if isempty(gStego)msgbox( Stego
13、image is empty!return ;Warningwarnmoda l);7% - Executes on butt on press in pbtExit.fun cti onpbtExit_Callback(hObject, eve ntdata, han dies)% hObject handle to pbtExit (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% han dies structure with han dies and user data (see G
14、UIDATA)q=questdlg( Are you sure to exit?,figLSB, Yes , No , No);if strcmp(q, No)return ;enddelete *%delete (ha ndles.figLSB);delete (LSB3333);4)将测试图片或者图片文件夹放在LSB文件夹下。最后点击保存。4.程序源代码见附件。三、实验结果1.测试图片隐藏载体图Leno图片信息Lena修改日期:2006/12/15 10:57卩图博尺寸:512 x 512大小257 KB创建日期:2015/4/13 13:29隐藏秘密图:Boy图片信息J予Boy惨改日朋:
15、2014/3/21 16:12BMP囹像 尺寸:512 X 512大小:257 KB创逵日朗:2015/4/13 1332.测试结果 隐藏后的图片信息:K-emTmp修改曰朗:2015/4/14 14:41BMP图像 尺寸:S12 x 512大小257 KB创達日朝2015/4/14 14;41从隐藏后的图中提取出来的秘密图片信息:-exTmp2015/4/14 14:41BMPRT:512 x 512大小257 KB剖建日.期:2015/4/14 14:41893.截屏Cflver間ess fl9eMa g tSecret MessageExirttd制翦强 g0.四实验小结1.遇到的问题总
16、结合分析:(1)问题:点击退出按键后选择退出Yes,不能完全退出。解决方法:查看源代码,经过分析,代码没有错,但是没有实现退出该fig 图形窗体而是仅仅退出了询问是否退出的box 的小窗口。经过改正源代码后,可实现完全退出。更改后的代码如下【即将原来的delete (handles.figLSB )改为 delete (LSB3333)】:q=questdlg( Are you sure to exit?, figLSB , Yes , No , No);if strcmp(q, No)return ;end delete *%delete (ha ndles.figLSB);delete (
17、LSB3333);(2)问题:老师提供的代码会出现如下图片的一些问题10 没有选择 Secret Message 图片也能进行信息图片的隐藏和提取 没有添加 Cover 图片也能进行信息的隐藏和提取 没有添加 Cover 和 Secret 图片,不能进行信息隐藏,却能进行信息提取11解决方法:分析老师提供的源代码后,进行改进可解决上述出现的问题,即在没有 选择 Cover 图片或者 Secret 图片的时候,都不能进行信息隐藏和提取。结果截图 如下:12E:WATLAB-newR2D11Secret Image1roe,o&04 -02fl.80.5 secretrtsiageD6Ex
18、lrAltdLIess旳匕Ewt132.未解决的问题1问题描述:没有点击Cover控件和Secret控件选择Cover或者Secret图片或者不选 择,也能进行隐藏和提取。分析:没有设计代码判断axec控件是否有图片内容。2问题描述:对于不同格式或者不同大小或者灰白和彩色不同的图片不能进行信息图 片的隐藏和提取。分析:本实验代码只能对同种格式且大小相同的图片进行信息图片的隐藏和提取,对于不同格式大小相同或者格式相同大小不同的图片不能进行隐藏和提取。3.实验效果和分析1LSB算法的抗攻击能力 本实验算法比较简单,抗攻击能力弱。2随机选择嵌入位(安全性因素的考虑)本实验算法不能随机选择隐藏信息图片
19、的嵌入位,在本程序中设置的为程序默认值, 不能提供安全性,可设计随机生成0-7的随机数对信息图形的不同位置随机进行嵌入。再增加隐藏和提取的用户口令则会使安全性更好。3嵌入位均匀分布于载体每次对图像的一个字节的同一个位嵌入,都是同一个位置, 这导致分布不均匀。 若实现随机嵌入图像的不同字节时不同嵌入位可提高嵌入位的均匀分布于载体。4信息提取的检错/纠错本实验提取出来的图片和原本要隐藏的信息图片不一样。4.总结:本实验比较简单,在理解了图形信息隐藏的实质和代码的意义后就能很快理解和掌握。 不足的是不能将带算法优化已解决遇到的各种问题。将会在以后的学习当中注意知识的积累和灵活运行。14附件: 源代码
20、:fun cti on varargout = LSB3333(vararg in) % LSB3333 MATLAB code for LSB3333.fig%LSB3333, by itself, creates a new LSB3333 or raises the exist ing%sin glet on*% H = LSB3333 retur ns the han dle to a new LSB3333 or the handle to%the existi ng sin glet on*%LSB3333(CALLBACK,hObject,eve ntData,ha ndles,
21、.) calls thelocal%LSB3333( P roperty,Value,.)%existi ngsin glet on* Start ingare % applied to the GUI before LSB3333_Ope ningFcn gets called. An%un recog ni zed property n ame or in valid value makes property application % stop. All in puts are passed to LSB3333_Ope nin gFc n via vararg in.%*See GUI
22、 Opti ons on GUIDEs Tools me nu. Choose GUI allows onlyone%in sta nee to run (sin glet on).% % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text tomodify the respo nse to help LSB3333 % Last Modified by GUIDE v2.514-Apr-2015 10:08:25% Begi n in itialization code - DO NOT EDITgui_S in glet o
23、n = 1;gui_State = struct(gui_Name,mfile name,.gui_S in glet on,gui_S in glet on,gui_Ope nin gFc n,LSB3333_Ope nin gFcn,gui_OutputFc n,LSB3333_OutputFc n,gui_LayoutFc n, .gui_Callback,);if n argi n & ischar(varargi n1) gui_State.gui_Callback = str2fu nc(varargin1);endif n argoutvarargout1: nargou
24、t = gui_mai nfcn (gui_State, varargi n:);elsegui_mai nfcn (gui_State, vararg in :);end% End in itialization code - DO NOT EDIT%fun ctionnamed CALLBACK in LSB3333.M withthe givenin putarguments.creates a new LSB3333 or raises the from theleft, property value pairs15% - Executes just before LSB3333 is
25、 made visible.fun cti onLSB3333_Ope nin gFc n( hObject, eve ntdata, han dles, varargin)% This fun cti on has no output args, see OutputFc n.% hObject han dle to figure% eve ntdata reserved - to be defi ned in a future versi on of MATLAB% han dles structure with han dles and user data (see GUIDATA)%
26、varargin comma nd line argume nts to LSB3333 (see VARARGIN)% Choose default comma nd line output for LSB3333han dles.output = hObject;% Update han dles structureguidata(hObject, han dles);% UIWAIT makes LSB3333 wait for user respo nse (see UIRESUME)% uiwait(ha ndles.figure1);% - Outputs from this fu
27、n cti on are retur ned to the comma nd line.fun cti onvarargout = LSB3333_OutputFc n( hObject, eve ntdata, handles)% varargout cell array for returni ng output args (see VARARGOUT);% hObject han dle to figure% eve ntdata reserved - to be defi ned in a future versi on of MATLAB% han dles structure wi
28、th han dles and user data (see GUIDATA)% Get default comma nd line output from han dles structurevarargout1 = han dles.output;% - Executes on butt on press in pbtCover.fun cti onpbtCover_Callback(hObject, eve ntdata, han dles)% hObject han dle to pbtCover (see GCBO)% eve ntdata reserved - to be defi
29、 ned in a future versi on of MATLAB% han dles structure with han dles and user data (see GUIDATA) globalgCover;gCover,sFile=loadimg();16set(handles.text1.Str ing,sMsg);String, Secret Image );% - Executes on butt on press in pbtEmbed.fun cti onpbtEmbed_Callback(hObject, eve ntdata, han dles)% hObject
30、 han dle to pbtEmbed (see GCBO)% eve ntdata reserved - to be defi ned in a future versi on of MATLAB% han dles structure with han dles and user data (see GUIDATA)global gCover gSecret gStego;if isempty(gCover)msgbox( Cover image is empty!, Warning ,war n,moda l);return ;endif isempty(gSecret)msgbox(
31、 gSecret image is empty!, War ning , war n , modal );if isempty(gCover)msgbox( Cover image is empt y!,Warningreturn ;endaxes(ha ndles.axCover);imshow(gCover);iH iW iL=size(gCover);sMsg=sFile, ,n um2str(iH),*,n um2str(iW),set(ha ndles.text1,Stri ng,sMsg);,warn,modal);*,n um2str(iL),;% - Executes on b
32、utt on press in pbtSecret.fun cti on pbtSecret_Callback(hObject, eve ntdata, han dles)% hObject han dle to pbtSecret (see GCBO)% eve ntdata reserved - to be defi ned in a future versi on of MATLAB% han dles structure with han dles and user data (see GUIDATA)global gSecret;gSecret ,sFile=loadimg();if
33、 isempty(gSecret)msgbox( Secret image is empty!return ;end,Warning,warn , modal );axes(handles.axSecret);imshow(gSecret);iH iW iL=size(gSecret);sMsg=sFile, ,n um2str(iH),* ,n um2str(iW),*,n um2str(iL),;set(handles.text2.17return ;18endHc,Wc丄c=size(gCover);Hs,Ws丄s=size(gSecret);if (Hc=Hs) | (Wc=Ws) |
34、 (Lc=Ls)disp( Error: Not Match!);return ;endgStego = uin t8(bitor(bita nd(gCover,254),bitshift(gSecret,-7);imwrite(gStego,emTmp.bmp );axes(ha ndles.axStego);imshow(gStego,);% - Executes on butt on press in pbtExtract.fun cti onpbtExtract_Callback(hObject, eve ntdata, han dles)% hObject handle to pbtExtract (see GCBO)% eve ntdata reserved - to be defi ned in a future versi on of MATLAB% han dles stru
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于虚拟现实的智能蒙皮技术培训与模拟系统研究
- 快递公司网络运营面试宝典
- 2026年全网主流网红推广平台:传声港全矩阵生态解析
- 护理安全监控:智能监控系统的应用
- 护理环境中的患者疼痛评估
- 护理专业概述
- 新时代基础英语 3
- 2020年广东省广州市荔湾区九年级下学期毕业班阶段性训练道德与法治试题(含答案)
- 旅游行业HR面经典问题与回答方法
- 旅行社总经理面试要点与策略
- 《汽车车身结构认知与维修》 课件全套 项目1-5 汽车车身结构认知、车身焊接-汽车车身校正
- 【大学生对视力矫正手术的顾虑因素调查报告(后含问卷)6800字(论文)】
- 实训室文化建设设计
- 新人教版五年级下册英语全册教案(表格式)
- 23、资质证书使用与管理制度
- 企业人力资源管理师(三级)人力资源管理师考试题库及答案
- 土建生态环保和绿色施工环境管理培训ppt
- 酒瓶里的风景:勃艮第葡萄酒
- 药学分子生物学:第二章 DNA的复制、损伤和修复
- 2023-2024学年度新人教版必修二Unit4 History and Traditions基础巩固练习
- 施工组织设计(老旧小区改造及配套设施)
评论
0/150
提交评论