预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共18页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

个人收集整理资料,仅供交流学习,勿作商业用途个人收集整理资料,仅供交流学习,勿作商业用途个人收集整理资料,仅供交流学习,勿作商业用途个人收集整理资料,仅供交流学习,勿作商业用途/NUMPAGES18CentralSouthUniversity信息隐藏实验报告学院:信息科学与工程学院班级:信息安全1201学号:0909121724姓名:吕秋言时间:2018年6月实验一:基于图像的LSB信息隐藏实验目的该实验为验证性实验。目的是通过实验使学生掌握经典信息隐藏算法,在Matlab环境下,编写基于图像的LSB信息隐藏算法程序。用Matlab函数实现LSB信息隐藏及提取,并进行分析。b5E2RGbCAP实验要求1、实验前要做好充分准备,包括:复习实验所涉及的知识点,掌握Matlab编程语言和调试环境。2、实验时注意记录实验过程中产生的数据、出现的问题及解决问题的方法。3、理论联系实际,认真分析实验结果,回答思考题。4、实验后完成实验报告,并附相关截图。实验环境计算机<安装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>}实验内容与步骤基本演示环境:matlabLSB,LeastSignificantBits,最低有效位,将图像加密处理。这次将通过位平面的切割之后,嵌入一张隐私图片,一些人的隐私交流很有可能通过这个,比如美国的某某人,当然这个只是最简单的。DXDiTa9E3d位平面切割是将数字图像分解为位平面,比如上一篇文章讲到的图片的8位的数据类型,可以让我们每一位所起的作用。一边学的时候也带着疑问,为什么用bitget呢。RTCrpUDGiT经过实验也证明自己的想法是正确的,首先bitget(X,Y>是拿到X二进制的值的Y位。[plain]viewplaincopy>>bitget(1,1>ans=1>>bitget(1,2>ans=0>>那么我们可以想想,一幅8位的数字图像<无符号类型),最高是11111111<二进制),即2^8-1,255,用大腿一想,当然是第八位起决定性作用,假如有一百万零一这个数字,少了最前面的一个一和最后面的一个一可是两码事。5PCzVD7HxA举个例子,我切除图像的一部分:[plain]viewplaincopy>>q=f(122:130,122:130>。>>imwrite(q,'verysmall.jpg'>。>>f=imread('verysmall.jpg'>f=155154149141134129129130127171169166161157154154154148173171170170171171169168163165164164167170172171169165166166167169171172172171168174175175174170169169170175179182181174164159160164172184186185174160152155160161182185180167154149148148149每个像素点的值这么大。接下来:[plain]viewplaincopy>>t=bitget(f,8>t=111111110111111111111111111111111111111111111111111111111111111111111111111111111>>最高位是决定性作用的一层。所以,要嵌入图像,就要嵌入到第一层,影响最小。[plain]viewplaincopy>>f=imread('lina.jpg'>。>>g=bitget(f,8>。这样g虽然是第八层的图像,但是都是二进制最高位的值,非0即1,而在为灰度图像看来,都是黑色。需要转换成二值图像。jLBHrnAILg[plain]viewplaincop