信息隐藏 实验十 LSB信息隐藏的卡方分析
lsb信息隐藏
![lsb信息隐藏](https://img.taocdn.com/s3/m/1500965577232f60ddcca168.png)
LSB算法的信息隐藏实验单位:三系一队姓名:马波学号:3222008030LSB信息隐藏实验一、实验目的1.掌握LSB算法原理2.熟悉信息隐藏与提取的流程3.锻炼算法的程序实现能力二、实验原理1.信息隐藏用秘密信息比特替换载体中的最不重要部分,可以达到对信息隐藏的目的。
在数字图像中,每个字节的最低位对图像信息的影响最小,因此将数字图像的最低位用信息比特替换可以实现信息隐藏。
由于载体图像的每个字节只隐藏一个秘密信息比特,所以只有当载体图像的大小是秘密信息大小的8倍以上时才能完整的将秘密信息隐藏。
提取信息位并隐藏的示意图:2.信息提取在隐藏了秘密信息的数字图像中,每个字节的最低位就是秘密信息比特位,只需将这些信息比特提取出来并组合,就可以恢复出原来的秘密信息。
提取信息示意图:三、实验内容A.将秘密信息隐藏在载体的最低位,检验算法的鲁棒性(1)读入秘密信息(此实验中秘密信息为二值图像)(2)把秘密信息的比特位放入载体的最低位(3)给隐藏了秘密信息的图像加入大小为1的噪声加入噪声大小为1时:加入噪声为2时:B.将秘密信息隐藏在载体的最高位,检验算法的鲁棒性(1)读入秘密信息(此实验中秘密信息为二值图像)(2)把秘密信息的比特位隐藏在载体的最高位(3)分别给隐藏了秘密信息的图像加入大小为1和2的噪声C.将秘密信息隐藏在载体的第三位,检验算法的鲁棒性(1)同A中的(1)(2)把秘密信息比特位隐藏在载体的第三位(3)分别给隐藏了秘密信息的图片加入大小为1、2和3的噪声五、实验总结1.当秘密信息隐藏在最低位时,对载体的改变小,载体质量较高。
但鲁棒性较差,有噪声干扰时很容易发生信息丢失从而无法恢复出秘密信息2.当秘密信息隐藏在最高位时,图像的鲁棒性增强,受到较大噪声干扰时仍能恢复出秘密信息,但对图像的改变较大,隐藏的位数越高图像的质量越低。
3.当隐藏的信息位介于最低位和最高位时,选择合适的位置,既可以提高信息隐藏的鲁棒性,又对图像的质量影响不大,所以,进行信息隐藏时可以考虑LSB的改进。
信息隐藏实验(LSB隐写,随机LSB隐写,RS隐写分析)
![信息隐藏实验(LSB隐写,随机LSB隐写,RS隐写分析)](https://img.taocdn.com/s3/m/71906f837375a417876f8f50.png)
信息隐藏实验二LSB隐写分析姓名:周伟康学号:班级:一:实验要求1、针对自己实现的隐写算法(嵌入、提取),计算隐蔽载体的PSNR值,通过PSNR值来评估隐写对图像质量的影响,并与主观感受做对比。
2、实现一种隐写分析方法,对隐蔽载体进行检测(卡方、RS……)二:实验步骤1、编写随机选点函数,完善顺序和随机两种LSB信息嵌入和提取。
%随机间隔选点函数%[row, col] = randinterval(test, 60, 1983);function [row, col] = randinterval(matrix, count, key)[m, n] = size(matrix);interval1 = floor(m * n / count) + 1;interval2 = interval1 - 2;if interval2 == 0error('载体太小,不能将秘密消息隐藏其内!');endrand('seed', key);a = rand(1, count);%initializerow = zeros([1 count]);col = zeros([1 count]);r = 1; c = 1;row(1,1) = r;col(1,1) = c;for i = 2 : countif a(i) >= 0.5c = c + interval1;elsec = c + interval2;endif c > nr = r + 1;if r > merror('载体太小,不能将秘密消息隐藏其内!');endc = mod(c, n);if c==0c = 1;endendrow(1, i) = r;col(1, i) = c;end选取8*8的矩阵测试2、对比原始图像和隐藏信息后图像,计算隐蔽载体的均方差(MSE)进而计算峰值信噪比(PSNR),评估隐写对图像质量的影响。
信息隐藏实验报告-信息隐藏技术
![信息隐藏实验报告-信息隐藏技术](https://img.taocdn.com/s3/m/9f859e4c30b765ce0508763231126edb6f1a7698.png)
实验目的隐写分析以及变换域隐写技术实验内容针对LSB隐写的卡方分析a)实现针对LSB隐写的卡方分析b)分析实验性能针对LSB隐写的RS分析a)实现针对LSB隐写的RS分析b)分析实验性能JPEG压缩算法a)分析JPEG压缩算法的主要流程Jsteg隐写算法a)实现Jsteg隐写算法b)分析实验性能F3隐写算法a)实现F3隐写算法b)分析实验性能实验工具及平台■Windows+Matlab□其它:(请注明)实验涉及到的相关算法1、与实验内容选择的项目对应;2、请使用流程图、伪代码、NS 图或文字方式描述,不要..贴代码 卡方隐写分析卡方隐写分析主要利用了LSB 隐写后图像的值对效应。
它需要LSB 隐写满足如下的条件:1. 嵌入信息中0、1的分布较为均匀,即各为50%左右。
由于信息嵌入到载体之前通常需要经过加密操作,因此这一点是容易满足的。
2. 图像需要有较多的像素点被嵌入信息。
当嵌入信息较少时,卡方分析的效果并不精确。
卡方分析的原理是:若设ℎj 表示图像载体中灰度值为j 的像素数量,如果载体图像没有使用LSB 隐写算法,那么ℎ2i 和ℎ2i+1的值通常相差较大,而LSB 隐写方法将秘密信息取代图像的最低位,由于秘密信息通常是加密过的,因此可以看成0、1分布均匀的比特流。
在嵌入过程中只存在2i →2i +1而不存在2i →2i −1的变换,因此使得ℎ2i 和ℎ2i+1的值趋于一致,我们能够借助改变的统计特性判断图像是否经过隐写。
我们首先定义ℎ2i ∗=ℎ2i +ℎ2i+12,由LSB 隐写算法的性质我们可以知道在嵌入前后该值是不变的。
由中心极限定理,我们有ℎ2i −ℎ2i+1√(2ℎ2i ∗)→N(0,1) 因此r = ∑(ℎ2i −ℎ2i ∗)2ℎ2i ∗k i=1服从卡方分布。
结合卡方分布的密度计算函数我们可以计算出载体被隐写的可能性为:p =1−12k−12T(k −12)∫exp (−t 2)t k−12−1dt r0 当p 的值接近于1时,我们可以推断出载体图像中含有秘密信息。
2021年信息隐藏实验报告
![2021年信息隐藏实验报告](https://img.taocdn.com/s3/m/a78066dbb90d6c85ed3ac67e.png)
信息隐藏试验汇报试验题目【一】实现空域图像水印方法中LSB算法: 原始图像选择大小为512*512elain图像或者goldhill图像, 选择一个LSB水印算法以及合适水印序列; 利用选定水印嵌入算法将水印信息嵌入到原始图像中。
在嵌入水印以后图像中提取水印, 是否能够判定图像中含有水印, 同时计算含水印图像峰值信噪比。
将含有水印图像缩小为256*256以后, 再放大为512*512, 这时再提取水印, 是否能够判定图像中含有水印。
试验结果缩略图: lsb.fig试验程序% LSB 算法:clear;A=imread('elain.bmp');B=A;message='www`s homework';m=length(message);n=size(A);k=1;for i=1:n(1)for j=1:n(2)if k<=m %假如消息输入完成则为0h=bitget(double(message(k)),8:-1:1);elseh=[0,0,0,0,0,0,0,0];endc=bitget(A(i,j),8:-1:1);if mod(j,8) == 0p=8;elsep=mod(j,8);endv=0;for q=1:7v=xor(v,c(q));endv=xor(v, h(p) );B(i,j)=bitset(A(i,j),1,v);if mod(j,8) == 0k=k+1;endendend% 提取信息out=char;tmp=0 ;t=1;for i=1:n(1)for j=1:n(2)c=bitget(B(i,j),8:-1:1);v=0;for q=1:8v=xor(v,c(q));endif mod(j,8)==0p=1;elsep=9-mod(j,8);endtmp=bitset(tmp,p,v);if mod(j,8)==0out(t)=char(tmp);t=t+1;tmp=0;endendend%显示图像figure;subplot(1,2,1);image(A);axis('square');title('原始图像');subplot(1,2,2);imshow(B);axis('square');title('加入水印后图像');out试验题目【二】实现基于扩频图像水印算法: 原始图像选择大小为512*512elain图像或者goldhill图像, 水印图像选择为以XXX印或者XX之印(XXX为自己名字)为图案、合适大小二值黑白图像, 再选择一个基于扩频图像水印算法; 利用选定水印嵌入算法将水印信息嵌入到原始图像中。
信息隐藏实验十LSB信息隐藏的卡方分析
![信息隐藏实验十LSB信息隐藏的卡方分析](https://img.taocdn.com/s3/m/ccf77ef5970590c69ec3d5bbfd0a79563d1ed472.png)
信息隐藏实验十LSB信息隐藏的卡方分析信息隐藏是一种将秘密信息嵌入到载体数据中的技术。
嵌入信息的最广泛应用之一是最低有效位(LSB)信息隐藏。
在LSB信息隐藏中,秘密信息位嵌入到像素的最低有效位中,而保持其他位不受影响。
该技术在数字音频、图像和视频领域得到广泛应用。
卡方分析是一种统计方法,用于衡量统计数据的拟合程度。
在LSB信息隐藏中,卡方分析可以用于分析嵌入数据的随机性。
通过计算嵌入数据和原始数据之间的差异,可以评估嵌入信息与载体数据的一致性。
LSB信息隐藏的实验中,首先需要得到原始的载体数据。
这可以是一幅图像、一段音频或一段视频。
然后,选择一个合适的秘密信息进行嵌入。
秘密信息可以是一串文本、一张图像或一个视频片段。
接下来,将秘密信息的二进制表示按位进行嵌入到载体数据的最低有效位中。
此时,嵌入数据已准备好。
进行卡方分析的下一步是计算频数。
对于每个像素,统计其最低有效位(被嵌入数据所占据的位)出现1和0的频数。
同时,计算原始数据中最低有效位出现1和0的频数。
比较两组频数可以得到嵌入数据和原始数据之间的差异。
卡方分析可以用来评估嵌入数据的随机性。
根据卡方分布表,可以计算卡方值。
通过比较卡方值和临界值,可以判断嵌入数据的随机性是否达到了预期。
如果卡方值小于临界值,则表明嵌入数据的分布与原始数据的分布存在显著差异,嵌入数据不具备较好的随机性。
LSB信息隐藏的卡方分析还可以用于评估嵌入数据的容量。
通过计算嵌入数据和原始数据之间的差异,可以推断嵌入数据的容量。
如果嵌入数据的容量越大,则嵌入数据与原始数据的差异越大。
卡方分析可以帮助评估嵌入数据的最大容量,以便在实际应用中选择合适的嵌入容量。
LSB信息隐藏的卡方分析还可以用于检测嵌入数据的存在。
通过比较卡方值和临界值,可以判断嵌入数据是否存在于载体数据中。
如果卡方值大于临界值,则可以得出嵌入数据的存在性。
这在数字取证和数字水印领域具有重要意义。
LSB信息隐藏的卡方分析是一种有力的工具,用于评估嵌入数据的随机性、容量和存在性。
信息隐藏实验报告一图像的位平面,LSB和MSB
![信息隐藏实验报告一图像的位平面,LSB和MSB](https://img.taocdn.com/s3/m/651b23c58662caaedd3383c4bb4cf7ec4afeb686.png)
信息隐藏实验报告一实验名称:图像的位平面,LSB 和MSB一、实验目的图像的位平面,LSB 和MSBLSB(Least Significant Bits):最不重要位(或最低有效位) MSB(Most Significant Bits):最重要位。
二、实验内容⑴用“按位与”运算清image 的第2、3、4、5、6、7位,结果分别保存在图像矩阵data02、 data03、 data04、 data05、 data06、 data07中,并显示所得结果;⑵用“按位与”运算取image 的第2、3、4、5、6、7位,结果分别保存在图像矩阵data12、 data13、 data14、 data15、 data16、 data17中,并显示所得结果;⑶用“按位与”运算清image 的第1-2、1-3、1-4、1-5、1-6、1-7位,结果分别保存在图像矩阵data02、 data03、 data04、 data05、 data06、 data07中,并显示所得结果; ⑷用“按位与”运算取image 的第3-8、4-8、5-8、6-8、7-8位,结果分别保存在图像矩阵data13、 data14、 data15、 data16、 data17中,并显示所得结果;⑸将彩色图像dsc.jpg 读入图像矩阵image ,重做上面的⑴-⑷项要求;⑹取彩色图像矩阵image 的某个分量(R 、G 、B 均可),重做上面的⑴-⑷项要求;三、实验环境matlab7.0四、基本原理(算法思想)时域是对应于变换域而言的,即不对信号做任何频率变换而得到的信号域就是时域。
对于图像载体,其信号空间也就是像素的取值空间。
我们选择了RGB 颜色空间下的像素作为分析对象。
在RGB 颜色空间中,每一个像素都有三个分量,即红(Red)、绿(Green)、蓝(Blue)分量。
五、实验结果与结论(主要的程序代码、运行结果)⑴用“按位与”运算清image 的第2、3、4、5、6、7位,结果分别保存在图像矩阵data02、 data03、 data04、 data05、 data06、 data07中,并显示所得结果;教师签名2007.11实验时间成绩评 定信息隐藏 课程名称同组人姓 名 05软件工程班 级 计算机科学与技术系别⑵用“按位与”运算取image的第2、3、4、5、6、7位,结果分别保存在图像矩阵data12、data13、 data14、 data15、 data16、 data17中,并显示所得结果;⑶用“按位与”运算清image的第1-2、1-3、1-4、1-5、1-6、1-7位,结果分别保存在图像矩阵data02、 data03、 data04、 data05、 data06、 data07中,并显示所得结果;⑷用“按位与”运算取image的第3-8、4-8、5-8、6-8、7-8位,结果分别保存在图像矩阵data13、 data14、 data15、 data16、 data17中,并显示所得结果;⑸将彩色图像dsc.jpg读入图像矩阵image,重做上面的⑴-⑷项要求;代码略清image的第2、3、4、5、6、7位取image的第2、3、4、5、6、7位清image的第1-2、1-3、1-4、1-5、1-6、1-7位⑹取彩色图像矩阵image的某个分量(R、G、B均可),重做上面的⑴-⑷项要求;代码image=imread('dsc.jpg');%将彩色图像读入图像矩阵image A=image(:,:,1);下略清image的第2、3、4、5、6、7位取image的第2、3、4、5、6、7位清image的第1-2、1-3、1-4、1-5、1-6、1-7位六、实验总结通过这次实验使我对图像的位平面有了一定的认识。
LSB图像信息隐藏实验
![LSB图像信息隐藏实验](https://img.taocdn.com/s3/m/b3dd09d56f1aff00bed51ed8.png)
LSB图像信息隐藏实验【实验环境】ISES客户端注:请将信息隐藏测试载体放在指定目录下:C:\ISES【实验步骤】一、信息嵌入(一)选择载体图片注:载体图片有BMP、JPG、GIF、PNG四种格式,这里只以JPG格式图片为例。
(1)选择载体图片,进入该实验,点击“选择载体图片”按钮选择合适的要嵌入信息的载体图片,如图4.1.1-1所示。
图4.1.1-1选择载体图片(2)点击“二进制展示”按钮可以二进制形式查看图片,如图4.1.1-2所示。
图4.1.1-2以二进制查看图片(3)点击“计算”按钮,可查看图片信息,如图4.1.1-3所示。
图4.1.1-3查看图片信息(二)选择要隐藏文件(1)点击“选择要隐藏的文件”按钮选择要嵌入的信息文件,并点击“计算”按钮查看信息内容。
如图4.1.1-4所示。
需注意的是要嵌入的信息数据大小应小于载体容量,且最好为文本文件,以便对比观察原始信息与提取的信息。
图4.1.1-4选择要隐藏文件(2)点击“二进制转换”按钮,查看隐藏信息的二进制流,如图4.1.1-5所示。
图4.1.1-5以二进制流形式查看隐藏信息(三)嵌入信息(1)点击“嵌入”按钮,将隐藏信息嵌入到载体图片中,并另存为成新的带有隐藏信息的图片,如图4.1.1-6所示。
图4.1.1-6嵌入信息成功(2)点击“确定”按钮,弹出图片对比窗口,如图4.1.1-7所示。
图4.1.1-7图片对比窗口(3)可通过选项卡选择图片对比及细节对比,以对比原始载体图片和嵌入信息后的载体是否存在视觉上的可觉察的变化,并观察载体文件嵌入前后的细节变化。
(四)观察嵌入信息过程(1)点击“读取信息”及“读取水印”按钮,读取载体的一个字节信息及水印的一位信息,如图4.1.1-8所示。
图4.1.1-8读取信息(2)点击“嵌入1”按钮,执行嵌入操作,如图4.1.1-9所示。
图4.1.1-9嵌入信息(3)点击“嵌入”按钮,循环执行上述过程将全部信息嵌入到载体图片中,并保存、对比结果。
LSB图像信息隐藏实验
![LSB图像信息隐藏实验](https://img.taocdn.com/s3/m/ea758302e518964bcf847ce2.png)
学号:姓名:专业年级班级:实验室:组别:实验日期:message=fopen('Message.txt','r');[msg,msg_len]=fread(message,'ubit1') %按位以二进制形式读取文本内容与长度[m,n]=size(image1) %读取行和列p=1; %p为秘密信息的位计数器[row,col]=randinterval(image1,msg_len,1996);for i=1:msg_lenimage1(row(i),col(i))=image1(row(i),col(i))-mod(image1(row(i),co l(i)),2)+msg(p,1);if p==msg_lenbreak;end ;p=p+1;end%还原图像Hide_image(:,:,1)=image1;Hide_image=uint8(Hide_image);imwrite(Hide_image,'Hide_image.tif');%输出隐藏信息的图像subplot(121);imshow(image);title('未嵌入信息的图片');subplot(122);imshow(Hide_image);title('嵌入信息的图片');else ['the photo is not a rgb style']fclose('all');end实验算法2:读取LSB 隐藏的信息1.读取已经隐藏信息的图像。
如果为RGB 图像,则读取图像的一层(该层为嵌入信息的那层)。
2.用与LSB 算法中相同的随机数种子产生相同的一串随机数。
随机数串的长度由LSB 中获得(长度不得大于图像大小)。
用同一个伪随机生成算法,相同的种子,来产生像素点位置,可以确保隐藏时和提取1.读取已经隐藏信息的图像。
LSB图像信息隐藏
![LSB图像信息隐藏](https://img.taocdn.com/s3/m/6b89f6f8846a561252d380eb6294dd88d0d23dee.png)
LSB图像信息隐藏1.实验⽬的(1)了解信息隐藏中最常⽤的LSB算法特点,掌握LSB算法原理,设计并实现⼀种基于图像的LSB隐藏算法(2)了解如何通过峰值信噪⽐来对图像质量进⾏客观评价,并计算峰值信噪⽐2.实验内容(1)LSB隐藏算法(2)计算峰值信噪⽐3.实验原理 任何多媒体信息,在数字化时,都会产⽣物理随机噪声,⽽⼈的感观系统对这些随机噪声不敏感。
替换技术就是利⽤这个原理,通过使⽤秘密信息⽐特替换随机噪声,从⽽完成信息隐藏⽬标。
BMP灰度图像的位平⾯,每个像素值为8bit⼆进制值,表⽰该点亮度。
图像⾼位平⾯对图像感官质量起主要作⽤,去除图像最低⼏个位平⾯并不会造成画⾯质量的明显下降。
利⽤这个原理可⽤秘密信息(或称⽔印信息)替代载体图像地位平⾯以实现信息嵌⼊。
算法选⽤最低位平⾯来嵌⼊秘密信息。
最低位平⾯对图像的视觉效果影响最轻微,但很容易受噪声影响和攻击,解决办法可采⽤冗余嵌⼊的⽅式来增强稳健性。
即在⼀个区域(多个像素)中嵌⼊相同的信息,提取时根据该区域中的所有像素判断。
4.实验记录(1)隐藏算法算法分为三个部分实现:隐藏算法提取算法测试脚本1)隐藏算法源代码hide_lsb.m⽂件:function o=hide_lsb(block,data,I) %block:隐藏的最⼩分块⼤⼩ data:秘密信息 I:原始载体si=size(I);lend=length(data);% 将图像划分为M*N个⼩块N=floor(si(2)/block(2));M=min(floor(si(1)/block(1)),ceil(lend/N));o=I;for i=0:M-1% 计算每⼩块垂直⽅向起⽌位置rst=i*block(1)+1;red=(i+1)*block(1);for j=0:N-1% 计算每⼩块隐藏的秘密信息的序号idx=i*N+j+1;if idx>lendbreak;end;% 取每⼩块隐藏的秘密信息bit=data(idx);% 计算每⼩块⽔平⽅向起⽌位置cst=j*block(2)+1;ced=(j+1)*block(2);% 将每⼩块最低位平⾯替换为秘密信息o(rst:red,cst:ced)=bitset(o(rst:red,cst:ced),1,bit);endend;2)提取算法源代码dh_lsb.m⽂件:function out=dh_lsb(block,I) % block:隐藏的最⼩分块⼤⼩ I:携密载体si=size(I);% 将图像划分为M*N个⼩块N=floor(si(2)/block(2));M=floor(si(1)/block(1));out=[];% 计算⽐特1判决阈值:即每⼩块半数以上元素隐藏的是⽐特1时,判决该⼩块嵌⼊的信息为1thr=ceil((block(1)*block(2)+1)/2);idx=0;for i=0:M-1% 计算每⼩块垂直⽅向起⽌位置rst = i*block(1)+1;red=(i+1)*block(1);for j=0:N-1% 计算每⼩块图像隐藏的秘密信息序号idx=i*N+j+1;% 计算每⼩块⽔平⽅向起⽌位置cst=j*block(2)+1;ced=(j+1)*block(2);% 提取⼩块最低位平⾯,统计1⽐特个数,判决输出秘密信息tmp=sum(sum(bitget(I(rst:red,cst:ced),1)));if(tmp>=thr)out(idx)=1;elseout(idx)=0;end;end;end;3)测试脚本源代码test.m⽂件:fid=1;len=10;% 随机⽣成要隐藏的秘密信息d=randsrc(1,len,[0,1]);block=[3,3];[fn,pn]=uigetfile({'*.bmp','bmp file(*.bmp)';},'选择载体');s=imread(strcat(pn,fn));ss=size(s);if(length(ss)>=3)I=rgb2gray(s);elseI=s;end;si=size(I);sN=floor(si(1)/block(1))*floor(si(2)/block(2));tN=length(d);% 如果载体图像尺⼨不⾜以隐藏秘密信息,则在垂直⽅向上复制填充图像if sN<tNmultiple=ceil(tN/sN);tmp=[];for i=1:multipletmp=[tmp;I];end;I=tmp;end;% 调⽤隐藏算法,把携密载体写⾄硬盘stegoed=hide_lsb(block,d,I);imwrite(stegoed,'hide.bmp','bmp');[fn,pn]=uigetfile({'*.bmp','bmp file(*.bmp)';},'选择隐蔽载体');y=imread(strcat(pn,fn));sy=size(y);if(length(sy)>=3)I=rgb2gray(y);elseI=y;end;% 调⽤提取算法,获得秘密信息out=dh_lsb(block,I);% 计算误码率len=min(length(d),length(out));rate=sum(abs(out(1:len)-d(1:len)))/len;y=1-rate;fprintf(fid,'LSB:len:%d\t error rate:%f\t error num:%d\n',len,rate,len*rate);通过运⾏测试代码,对灰度图xxx3.bmp⽂件进⾏LSB算法的信息隐藏,并⽣成⽂件bide.bmp。
信息加密与解密实验11-2 LSB图像信息隐藏原理
![信息加密与解密实验11-2 LSB图像信息隐藏原理](https://img.taocdn.com/s3/m/b35111dd856a561252d36fae.png)
上机实验报告一、实验目的:1、掌握LSB图像信息隐藏原理2、简单使用matlab工具二、实验环境计算机一台Matlab三、实验内容(一)预备知识1、信息隐藏信息隐藏( Information Hiding)又称为信息伪装,是指在不使信息载体本身发生显著变化的前提下,将需要保密传递的信息隐藏到载体中,从而达到隐蔽传递目的的技术。
信息隐藏原理图2、图像的数据表示对下图所示8×8(64个像素点)的图像,每一个像素点的灰度值量化时可以取值为0到255(用8bit表示)。
因此,分辨率为m×n的数字图像文件就可以用m×n×8的三维矩阵存储。
图中从高到低可分为8个位平面,分别对应着8个灰度值比特位所在的平面。
对于数字图像,这8个位平面在图像中所代表的重要程度是不同的,其最低的1至2个比特位基本上是噪声,所在的位平面没有太多图像的有用信息,对这些位平面信息的改变,对整个图像没有明显的影响。
3、LSB算法的原理图像的能量集中在高几层位平面,图像对高几层的修改比较敏感;图像的最低位平面甚至是最低的几层位平面几乎不含有信息量,对修改不敏感;可以用保密信息去替换原始载体的最低位平面或最低几层位平面,从而实现信息隐藏,而又不致使载体发生视觉上的可察觉性改变。
4、LSB算法描述用所要隐藏的二值图像去替换载体图像8层位平面中的最低层,这就是LSB (least-significant bits)嵌人算法的核心。
提取隐藏信息时,只需要将载体图像最低层位平面取出,恢复成二值图像即可。
(二)使用LSB算法实现图像信息隐藏1、安装matlab7.12、桌面上找到matlab7.1的快捷方式,打开lsb代码(代码可在lsb中找到),修改“Current Folder”的路径为代码路径。
3、找到readme.txt可以查看.m文件里的大概内容,在左侧分别双击lsbmain.m,submain.m,先后运行程序。
基于LSB的信息隐藏技术及分析
![基于LSB的信息隐藏技术及分析](https://img.taocdn.com/s3/m/afb71c3c77232f60dccca149.png)
基于LSB的信息隐藏技术及分析作者:邹小敏来源:《科学与财富》2019年第15期摘要:信息隐藏是利用数字媒体本身的数据冗余性以及人类感知能力的局限性,借助密码学、混沌理论、编码压缩技术等对信息本身及隐藏位置进行保密的技术,能够使秘密信息嵌入到公开载体却不为人知,从而以“存在级”的安全级别去完成信息的安全输出,对信息起到有效的保护。
本文主要介绍基于LSB( Least Significant Bits)的信息隐藏技术的设计及性能分析。
关键词:信息隐藏;LSB;数字水印;信息安全0 前言现阶段,安全通信的实现方法主要是加密技术、安全信道技术和信息隐藏技术等,在考虑代价和安全性的情况下,信息隐藏技术的安全通信是最为安全、可靠、廉价的实现方法。
信息隐藏技术不仅可以应用公用信道,而且可以将明文隐藏到普通媒体中,使攻击者难以发现秘密信息的存在,从而真正达到安全通信的目的。
基于LSB的信息隐藏技术则是将秘密信息比特替换载体中的最低有效位,即将秘密信息替换载体中最不重要的部分,从而达到秘密信息不被发现的作用,达到安全通信的效果。
1 基于LSB的信息隐藏的概要设计基于LSB的信息隐藏的设计主要考虑不可见性和容量性的原则,以下介绍一下算法设计两个主要部分,隐藏算法和提取算法。
(1)隐藏算法:我们首先将载体图像和预隐藏的图像信息转成二进制数据,每一个像素在RGB空间下都有一个坐标值;然后我们对于载体图像像素R、G、B分量每一分量的8个bit的最后一位进行修改,每一像素总共修改3个LSB最低有效位,最后将秘密图像信息按顺序填入每一像素的3个最低有效位中,实现RGB图像的信息隐藏。
(2)提取算法:是隐藏算法的逆过程。
对隐藏后的结果图像像素的后三位按顺序进行提取,并拼接成一个字符串,然后将其转换为uint8型,最后将其输出。
2 基于LSB的信息隐藏算法的可行性分析LSB隐藏算法是基于最低位平面嵌入隐藏信息的算法,图像高位平面对图像感官质量起主要作用,去除图像最低几个位平面并不会造成画面质量的明显下降;最低位平面对图像的视觉效果影响最轻微,满足人类视觉冗余性,可以达到信息隐藏的不可见性。
LSB信息隐藏实验
![LSB信息隐藏实验](https://img.taocdn.com/s3/m/3aa9bfacb0717fd5360cdc60.png)
实验一:LSB信息隐藏实验【实验目的】:一、掌握MATLAB基本操作二、实现LSB信息隐藏和提取【实验内容】:(请将你实验完成的项目涂“■”)实验完成形式:■ 用MATLAB函数实现LSB信息隐藏和提取□ 用MATLAB命令行方式实现LSB信息隐藏和提取□ 其它:(请注明)实验选择载体:□ 256×256灰度图像 □ 256×256RGB图像 ■ 任意大小的RGB图像实验效果和分析:■ 分析了LSB算法的抗攻击能力■ 能随机选择嵌入位(考虑安全性因素)■ 嵌入位均匀分布于载体■ 信息提取的检错/纠错■ LSB隐写分析□ 其它:(请注明)【实验工具及平台】:■ Windows+Matlab □ 其它:(请注明)【实验涉及到的相关算法】:1、与实验内容选择的项目对应;2、请使用流程图、伪代码、NS图或文字方式描述,不要..贴代码1.海明码选择得是(7,4)海明码,它可以纠正一位错误,编码和解码分别用两个函数实现,关于它的算法,这里就不赘述了。
2.为了能随机选择嵌入位,我选择了Md5函数来选择嵌入位。
选择嵌入位的时候有3个密钥参与,提高了安全性,而且使嵌入位均匀分布于载体。
3.Lsb的嵌入方法是先将要隐藏的信息以二进制的形式读入,再随机选择它们要嵌入的位置。
如果要隐藏的信息的某一位为1,则它要嵌入的载体图象相应位置的像素值mod2的值为1;如果要隐藏的信息的某一位为0,则它要嵌入的载体图象相应位置的像素值mod2的值为0。
Lsb的提取方法是先将确定隐藏信息嵌入的位置。
如果该位置的像素值mod2的值为1;则此处隐藏的信息的1,如果该位置的像素值mod2的值为0;则此处隐藏的信息的0。
下面是整个算法的流程图:提取流程图【实验分析】:1、 请尽量使用曲线图、表等反映你的实验数据及性能2、 对照实验数据从理论上解释原因3、 如无明显必要,请.不要..大量粘贴....实验效果图 1.Lsb 的抗攻击能力比较差,下图是JPEG 压缩率与隐藏信息误码率的关系曲线:由上图可以看出,当存在轻微的jpeg 压缩,lsb 的误码率就达到了50%,这就很不理想了。
lsb隐写分析实验
![lsb隐写分析实验](https://img.taocdn.com/s3/m/c965d3f49a89680203d8ce2f0066f5335b81675e.png)
lsb隐写分析实验实验三:LSB 隐写分析实验【实验⽬的】:1、理解LSB 隐写分析的思想和⽅法;2、掌握基于视觉分析的LSB 的隐写分析⽅法,以及基于卡⽅检验的LSB 隐写分析⽅法;3、能够分析上述隐写分析⽅法的能⼒;4、能够独⽴编写上述两种隐写分析matlab 程序并实现分析。
【实验内容】:(请将你实验完成的项⽬涂“■”)实验完成形式:■⽤MATLAB 函数实现LSB 隐写分析□⽤MATLAB 命令⾏⽅式实现LSB 隐写分析□其它:(请注明)实验选择载体:■ 512×512灰度图像□ 256×256RGB 图像□任意⼤⼩的RGB 图像实验效果和分析:■分析了视觉攻击对空域LSB 算法隐写分析的能⼒■分析了⼴义卡⽅检测对空域LSB 算法隐写分析的能⼒□分析了⼴义卡⽅检测对频域LSB 算法隐写分析的能⼒■⽐较不同隐写攻击抗⼴义卡⽅检测的能⼒■其它:分析了不同嵌⼊信息、不同参数下及使⽤了不同嵌⼊⽅法后⼴义卡⽅检测的分析能⼒【实验⼯具及平台】:■ Windows+Matlab □其它:(请注明)【实验涉及到的相关算法】:1、视觉攻击的流程图:2、⼴义卡⽅检测法流程图【实验分析】⼀、视觉攻击说明:本实验分别⽤图1嵌⼊30%的信息、图2嵌⼊60%的信息,来作最后⼀个位平⾯的⽐较图1 图2图3 原图为图1,嵌⼊率为30%图4 原图为图2,嵌⼊率为60%结论:通过视觉攻击分别对原图和隐写图的最后⼀个位平⾯的提取,可以很清晰的看出来,不含隐藏信息的平⾯的0和1是随机地均匀的分布;⽽隐藏了信息的平⾯的左边部分有明显的整齐的横条,它们是LSB被修改后像素值2i<->2i+1变化后形成的图像特征;⽽且嵌⼊率不同,横条占有的区域⾯积也不同。
单看隐写图的平⾯,就可以看出图像有异样(被划分成两部分),含整齐横条的部分则为嵌⼊了信息的部分。
⼆、空域⼴义卡⽅检测⽅法1、分析结果图表说明:⼀下四个图和表格,是嵌⼊了不同⽐例的信息量的图像分割成5*5个⼤⼩相同的样本进⾏检测的分析结果,其中嵌⼊信息为伪随机序列。
信息隐藏 实验十 LSB信息隐藏的卡方分析
![信息隐藏 实验十 LSB信息隐藏的卡方分析](https://img.taocdn.com/s3/m/746c55d16529647d272852c7.png)
实验十 LSB信息隐藏的卡方分析一,实验目的:了解什么就是隐写分析,隐写分析与信息隐藏与数字水印的关系。
掌握基于图像的LSB隐写的分析方法,设计并实现一种基于图像的LSB卡方隐写分析方法。
二,实验环境1, Windows XP 操作系统2, Matlab软件3, BMP格式图片文件三,实验原理隐写术与隐写分析技术就是互相矛盾又就是相互促进的,隐写分析就是指对可疑的载体信息进行攻击以达到检测、破坏,甚至提取秘密信息的技术,它的主要目标就是为了揭示媒体中隐蔽信息的存在性,甚至只就是指出媒体中存在秘密信息的可疑性。
图像LSB信息隐藏的方法就是用嵌入的秘密信息取代载体图像的最低比特位,原来图像的7个高位平面与代表秘密信息的最低位平面组成含隐蔽信息的新图像。
虽然LSB 隐写在隐藏大量信息的情况下依然保持良好的视觉隐蔽性,但使用有效的统计分析工具可判断一幅载体图像中就是否含有秘密信息。
目前对于图像LSB信息隐藏主要分析方法有卡方分析、信息量估算法、RS 分析法与GPC分析法等。
卡方分析的步骤就是:设图像中灰度值为j的象素数为hj,其中0≤j≤255。
如果载体图像未经隐写,h2i与h2i+1的值会相差很大。
秘密信息在嵌入之前往往经过加密,可以瞧作就是0、1 随机分布的比特流,而且值为0与1的可能性都就是1/2。
如果秘密信息完全替代载体图像的最低位,那么h2i与h2i+1的值会比较接近,可以根据这个性质判断图像就是否经过隐写。
定量分析载体图像最低位完全嵌入秘密信息的情况:嵌入信息会改变直方图的分布,由差别很大变得近似相等,但就是却不会改变h2i+h2i+1的值,因为样值要么不改变,要么就在h2i与h2i+1之间改变。
令显然这个值在隐写前后就是不会变的。
221*22i iih hh++=2212i ih hq+-=如果某个样值为2i,那么它对参数q 的贡献为1/2;如果样值为2i+1 ,对参数q 的贡献为-1/2。
LSB信息隐藏实验报告
![LSB信息隐藏实验报告](https://img.taocdn.com/s3/m/f4baea79a5e9856a561260e1.png)
Centr al South University信息隐藏实验报告学院: 信息科学与工程学院班级:信息安全1201学号:0909121724姓名:吕秋言时间: 2018年6 月实验一:基于图像的LSB信息隐藏一、实验目的该实验为验证性实验。
目的是通过实验使学生掌握经典信息隐藏算法,在Matlab环境下,编写基于图像的LSB信息隐藏算法程序。
用Matlab函数实现LSB信息隐藏及提取,并进行分析。
b5E2RGbCAP二、实验要求1、实验前要做好充分准备,包括:复习实验所涉及的知识点,掌握Matlab编程语言和调试环境。
2、实验时注意记录实验过程中产生的数据、出现的问题及解决问题的方法。
3、理论联系实际,认真分析实验结果,回答思考题。
4、实验后完成实验报告,并附相关截图。
三、实验环境计算机<安装Visual C++ 6.0和Matlab 6.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,Least Significant Bits,最低有效位,将图像加密处理。
LSB图片信息隐藏隐藏实验
![LSB图片信息隐藏隐藏实验](https://img.taocdn.com/s3/m/86f4bb9102020740bf1e9b62.png)
上海电力学院高级程序设计(C)课程设计报告LSB信息隐藏实验题目:院系:计算机科学与技术学院专业年级:信息安全2012级学生姓名:涂桂花学号:指导教师:魏为民2015年4月14日目录一、实验目的 0二、实验内容和步骤 01. 操作环境 02. 系统配置 03. 操作步骤 04. 程序源代码 (3)三、实验结果 (3)1. 测试图片 (3)2. 测试结果 (3)3.截屏 (4)四.实验小结 (4)1. 遇到的问题总结合分析: (4)2. 未解决的问题 (4)3. 实验效果和分析 (4)4. 总结: (5)附件: (5)上海电力学院实验报告课程名称实验项目姓名学号班级专业同组人姓名指导教师魏为民实验日期一、实验目的1.用MATLAB函数实现LSB信息隐藏和提取。
2.了解信息隐藏的作用和实现方法原理。
3.学会分析了解隐藏算法。
二、实验内容和步骤如操作环境、系统配置、操作步骤、程序源代码等。
1.操作环境操作系统 Windows 7 旗舰版 64位 SP1 ( DirectX 11 )2.系统配置处理器AMD E1-2100 APU with Radeon HD Graphics 双核3.操作步骤1)打开MATLAB软件,新建文件夹名为“ LSB ”。
2)在“Command Window”窗口里输入“guide”,回车。
a.如下图所示建立图形界面。
将5个push button控件的“String”属性设置为下图相应显示的名字,Tag属性设置为pbt+String名的格式。
将4个axec控件的Tag属性设置为如下图所显示的名字。
3)分别右键点击5个push button控件,View Callbacks->CallBacks.信息安全 LSB信息隐藏实验涂桂花20123333 201225信息安全无给每个控件添加Callback代码。
再添加代码之前要为该fig文件命名。
我在本次实验命名为LSB3333.fig。
信息隐藏 实验十 LSB信息隐藏的卡方分析
![信息隐藏 实验十 LSB信息隐藏的卡方分析](https://img.taocdn.com/s3/m/b8ff800158f5f61fb73666de.png)
实验十 LSB 信息隐藏的卡方分析一,实验目的:了解什么是隐写分析,隐写分析与信息隐藏和数字水印的关系。
掌握基于图像的LSB 隐写的分析方法,设计并实现一种基于图像的LSB 卡方隐写分析方法。
二,实验环境1, Windows XP 操作系统 2, Matlab 软件 3, BMP 格式图片文件 三,实验原理隐写术和隐写分析技术是互相矛盾又是相互促进的,隐写分析是指对可疑的载体信息进行攻击以达到检测、破坏,甚至提取秘密信息的技术,它的主要目标是为了揭示媒体中隐蔽信息的存在性,甚至只是指出媒体中存在秘密信息的可疑性。
图像LSB 信息隐藏的方法是用嵌入的秘密信息取代载体图像的最低比特位,原来图像的7个高位平面与代表秘密信息的最低位平面组成含隐蔽信息的新图像。
虽然LSB 隐写在隐藏大量信息的情况下依然保持良好的视觉隐蔽性,但使用有效的统计分析工具可判断一幅载体图像中是否含有秘密信息。
目前对于图像LSB 信息隐藏主要分析方法有卡方分析、信息量估算法、RS 分析法和GPC 分析法等。
卡方分析的步骤是:设图像中灰度值为j 的象素数为hj ,其中0≤j ≤255。
如果载体图像未经隐写,h2i 和h2i+1的值会相差很大。
秘密信息在嵌入之前往往经过加密,可以看作是0、1 随机分布的比特流,而且值为0与1的可能性都是1/2。
如果秘密信息完全替代载体图像的最低位,那么h2i 和h2i+1的值会比较接近,可以根据这个性质判断图像是否经过隐写。
定量分析载体图像最低位完全嵌入秘密信息的情况:嵌入信息会改变直方图的分布,由差别很大变得近似相等,但是却不会改变h2i+h2i+1的值,因为样值要么不改变,要么就在h2i 和h2i+1之间改变。
令 显然这个值在隐写前后是不会变的。
221*22i i i h h h ++=2212i i h h q +-=如果某个样值为2i ,那么它对参数q 的贡献为1/2;如果样值为2i+1 ,对参数q 的贡献为-1/2。
信息隐藏实验(LSB隐写,随机LSB隐写,RS隐写分析)..
![信息隐藏实验(LSB隐写,随机LSB隐写,RS隐写分析)..](https://img.taocdn.com/s3/m/f5da9d3b0722192e4536f6ef.png)
信息隐藏实验二LSB隐写分析姓名:周伟康学号:班级:一:实验要求1、针对自己实现的隐写算法(嵌入、提取),计算隐蔽载体的PSNR值,通过PSNR值来评估隐写对图像质量的影响,并与主观感受做对比。
2、实现一种隐写分析方法,对隐蔽载体进行检测(卡方、RS……)二:实验步骤1、编写随机选点函数,完善顺序和随机两种LSB信息嵌入和提取。
%随机间隔选点函数%[row, col] = randinterval(test, 60, 1983);function [row, col] = randinterval(matrix, count, key)[m, n] = size(matrix);interval1 = floor(m * n / count) + 1;interval2 = interval1 - 2;if interval2 == 0error('载体太小,不能将秘密消息隐藏其内!');endrand('seed', key);a = rand(1, count);%initializerow = zeros([1 count]);col = zeros([1 count]);r = 1; c = 1;row(1,1) = r;col(1,1) = c;for i = 2 : countif a(i) >= 0.5c = c + interval1;elsec = c + interval2;endif c > nr = r + 1;if r > merror('载体太小,不能将秘密消息隐藏其内!');endc = mod(c, n);if c==0c = 1;endendrow(1, i) = r;col(1, i) = c;end选取8*8的矩阵测试2、对比原始图像和隐藏信息后图像,计算隐蔽载体的均方差(MSE)进而计算峰值信噪比(PSNR),评估隐写对图像质量的影响。
1-连续LSB替换隐写的卡方检测docx
![1-连续LSB替换隐写的卡方检测docx](https://img.taocdn.com/s3/m/2cf15e6f1611cc7931b765ce05087632311274ac.png)
2 卡方检测【实验目的】1. 了解什么是隐写分析;2. 实现卡方检测算法,检测连续LSB 隐写. 判断图片中是否隐藏了消息;3. 对于隐藏了消息的图片,基于卡方检验设计一种方法,尽可能准确定位消息的嵌入位置。
【实验环境】1. Matlab7.1或以上版本;或者VC6.0;2. BMP 灰度图像【实验原理及方法】 1. 隐写分析的概念与分类图像隐写检测可分为两大类,一类是针对某一(些)特定隐写方法的检测,另一类是通用检测(有时又称盲检测)。
前者由于假定已知隐写方法的相关知识,因此往往具有较好的检测效果,有的甚至能比较准确地估计隐藏信息的长度,但这类检测方法的适用面较窄,而且由于实际检测中往往无法获得隐写方法的相关知识,因此实用性不强。
通用检测方法并不针对某一(些)特定的隐写方法,而在只拥有检测对象的情况下,对其是否含有隐藏信息做出判断,因此具有更强的实用性。
本节介绍的卡方检测属于特定检测方法,是针对连续实验一中的LSB 隐写算法而设计的。
2.卡方检测原理对待检测的图像,要判断其中是否含有秘密信息,通常采用的方法是进行统计分析。
对空域图像而言,LSB 替换隐写主要是将像素灰度值的最低有效位用秘密信息替换。
即:如果待嵌入的秘密信息比特与隐藏该比特的像素的灰度值的最低有效位相同,就不改变原始载体;反之,则要改变灰度值的最低位,即进行2i ↔2i +1之间的翻转。
嵌入的秘密信息可看作0,1随机分布的比特流,而且值为0或1的概率都为1/2。
设图像中灰度值为j 的像素数量为h j ,那么,如果秘密信息完全替换了载体图像像素的最低位,h 2i 和h 2i +1的值会比较接近,而如果图像未经过信息嵌入,h 2i 和h 2i +1的值会相距较远一些。
对LSB 替换隐写而言,隐写会改变直方图,但不会改变h 2i +h 2i +1的值,因为像素的灰度值要么不变,要么在h 2i 、h 2i +1之间互换。
记2122*2++=i i i h h h (1) 2122+-=i ih h q (2) 如果某个像素灰度值为2i ,它对参数q 的贡献为1/2;如果值为2i +1,则其对参数q 的贡献为-1/2。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验十 LSB 信息隐藏的卡方分析
一,实验目的:
了解什么是隐写分析,隐写分析与信息隐藏和数字水印的关系。
掌握基于图像的LSB 隐写的分析方法,设计并实现一种基于图像的LSB 卡方隐写分析方法。
二,实验环境
1, Windows XP 操作系统 2, Matlab 软件 3, BMP 格式图片文件 三,实验原理
隐写术和隐写分析技术是互相矛盾又是相互促进的,隐写分析是指对可疑的载体信息进行攻击以达到检测、破坏,甚至提取秘密信息的技术,它的主要目标是为了揭示媒体中隐蔽信息的存在性,甚至只是指出媒体中存在秘密信息的可疑性。
图像LSB 信息隐藏的方法是用嵌入的秘密信息取代载体图像的最低比特位,原来图像的7个高位平面与代表秘密信息的最低位平面组成含隐蔽信息的新图像。
虽然LSB 隐写在隐藏大量信息的情况下依然保持良好的视觉隐蔽性,但使用有效的统计分析工具可判断一幅载体图像中是否含有秘密信息。
目前对于图像LSB 信息隐藏主要分析方法有卡方分析、信息量估算法、RS 分析法和GPC 分析法等。
卡方分析的步骤是:设图像中灰度值为j 的象素数为hj ,其中0≤j ≤255。
如果载体图像未经隐写,h2i 和h2i+1的值会相差很大。
秘密信息在嵌入之前往往经过加密,可以看作是0、1 随机分布的比特流,而且值为0与1的可能性都是1/2。
如果秘密信息完全替代载体图像的最低位,那么h2i 和h2i+1的值会比较接近,可以根据这个性质判断图像是否经过隐写。
定量分析载体图像最低位完全嵌入秘密信息的情况:嵌入信息会改变直方图的分布,由差别很大变得近似相等,但是却不会改变h2i+h2i+1的值,因为样值要么不改变,要么就在h2i 和h2i+1之间改变。
令 显然这个值在隐写前后是不会变的。
如果某个样值为2i ,那么它对参数q 的贡献为1/2;如果样值为2i+1 ,对
221
*22i i i h h h ++=
221
2
i i h h q +-=
参数q 的贡献为-1/2。
载体音频中共有 2h2i*个样点的值为2i 或2i+1,若所有样点都包含1比特的秘密信息,那么每个样点为2i 或2i+1的概率就是0.5。
当2h2i*较大时,根据中心极限定理,下式成立:
其中->N(0,1)表示近似服从正态分布 所以
服从卡方分布。
上式中,k 等于h2i 和h2i+1所组成数字对的数量, h2i*为0的情况不计在内。
r 越小表示载体含有秘密信息的可能性越大。
结合卡方分布的密度计算函数计算载体被隐写的可能性为:
如果p 接近于1,则说明载体图像中含有秘密信息。
四,实验结果 1,原图像
2,直方图
由于所有的数据画出的直方图过于密集,所以选取80:99这之间的像素值。
*
221
22*
*
222(0,1)
2i i i i i
i
N h h +=→*2
22*1
2()k
i i i i h h r h =-=∑
112
10
21
1exp()21
2()2
r
k k t p t dt k ---=---Γ⎰
80828486889092949698100
原图80:99
80828486889092949698100
隐写后80:99
3,不同隐写率下的图像
隐写率0.3
隐写率0.5
隐写率0.7
4,P值分析
由所有的P值可以看出,当隐写率为0.3的时候,P[1]—P[40]的值都接近1;当隐写率为0.5的时候,P[1]—P[64]的值都接近1;当隐写率为0.7的时候,P[1]—P[91]的值都接近1。
五,实验结果
完成实验之后,可以得出如下结论:
依据卡方分析函数,可以判定载体图像中是否含有秘密信息。
但是这要求秘密信息必须嵌满所有像素。
六,代码附录
1,hist_change.m
[fn,pn]=uigetfile({'*.jpg','JPEG files(*.jpg)';'*.bmp','BMP files(*.bmp)'},'select file to haide'); name=strcat(pn,fn);
I=rgb2gray(imread(name));
sz=size(I);
rt=1;
row=round(sz(1)*rt);
col=round(sz(2)*rt);
msg=randsrc(row,col,[0 1;0.5 0.5]);
stg=I;
stg(1:row,1:col)=bitset(stg(1:row,1:col),1,msg);
nI=sum(hist(I,[0:255]),2)';
nS=sum(hist(stg,[0:255]),2)';
x=[80:99];
figure;
stem(x,nI(81:100));
figure;
stem(x,nS(81:100));
2,Stgprb.m
function p=StgPrb(x)
n=sum(hist(x,[0:255]),2);
h2i=n([3:2:255]);
h2is=(h2i+n([4:2:256]))/2;
filter=(h2is~=0);
k=sum(filter);
idx=zeros(1,k);
for i=1:127
if filter(i)==1
idx(sum(filter(1:i)))=i;
end
end
r=sum(((h2i(idx)-h2is(idx)).^2)./(h2is(idx)));
p=1-chi2cdf(r,k-1);
3,test.m
clear all;
[fn,pn]=uigetfile({'*.jpg','JPEG files(*.jpg)';'*.bmp','BMP files(*.bmp)'},'select file to haide'); name=strcat(pn,fn);
t=imread(name);
I=t(1:512,1:512);
sz=size(I);
for k=1:3
rt=0.3+0.2*(k-1);
row=round(sz(1)*rt);
col=round(sz(2)*rt);
msg=randsrc(row,col,[0 1;0.5 0.5]);
stg=I;
stg(1:row,1:col)=bitset(stg(1:row,1:col),1,msg);
imwrite(stg,strcat(pn,strcat(sprintf('stg_% d_',floor(100*rt)),fn)),'bmp');
i=1;
for rto=0.1:0.01:1
row=round(sz(1)*rto);
col=round(sz(2)*rto);
p(k,i)=StgPrb(stg(1:row,1:col));
i=i+1;
end
end。