LSB图像隐写

合集下载

信息隐藏实验(LSB隐写,随机LSB隐写,RS隐写分析)

信息隐藏实验(LSB隐写,随机LSB隐写,RS隐写分析)

信息隐藏实验二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),评估隐写对图像质量的影响。

lsb隐写详讲

lsb隐写详讲

lsb隐写详讲上周末给⼤家培训了lsb隐写,但由于时间仓促,讲得可能过快,导致部分同学未能领悟,故作此⽂,以帮助各位同学们领悟!⾸先,给⼤家讲讲什么叫位图我们不妨把冠希的照⽚放⼤看看放⼤后可以注意到,这个图⽚其实是由⼀个个不同颜⾊的格⼦从左到右从上到下排列组成的。

对,就是如此多不同颜⾊的格⼦这样排列组成了这张好看图⽚!这就叫位图!什么?你觉得我给你的这个解释太粗糙?那我来点⽐较学术的解释(已经知道什么叫位图的同学可以略过):那么现在我们来说,假如我现在有⼀串信息⽐如说这么⼀串"JUST{Guan_xi_ge}"这串信息我们想要隐藏进冠希的这个照⽚,这样我们想要传递给别⼈的信息可以以图⽚为载体传给别⼈,即便被某个坏⼈截获了他也很难知道我们真的要传递的信息是什么,因为我们要传递的信息已经被隐藏或者说被隐写进了这个图⽚!!那么,怎么隐写呢?这次给⼤家讲解的隐写⽅式便是LSB(最低有效位)隐写。

在前⽂中,我们已经介绍了位图,⽽LSB隐写便是专门针对这种格式的图⽚的⼀种隐写⽅式。

前⽂中说到位图是由⼀个个密密⿇⿇的各种颜⾊的⼩⽅格⼀⾏⼀⾏的排列⽽成的精美图⽚。

这个⼩⽅格,我们称其为"像素点"。

⽽这些像素点的颜⾊各种各样才能组成我们眼前这副彩⾊的图,那么我们的计算机是怎么识别变化每个像素点的颜⾊的呢?⼤家应该都知道红(R)、绿(G)、蓝(B)三元⾊吧,通过调配这三种颜⾊,我们可以得到所有的颜⾊,⽽在计算机中,每个像素点的颜⾊便是通过调配其R、G、B的所占成分(值)从⽽得到的,也就是说,每个颜⾊的像素点,在计算机看来其实都是⼀组R、G、B的值。

如下图,我们选中⽩⾊,识别出其R、G、B的值分别为255、255、255。

在计算机看来,R、G、B这三种颜⾊中每个颜⾊对应的值都是⼀个8位⼆进制数,因此,在计算机读⼊时,实际上这三元⾊的值分别为11111111,11111111,11111111,所以,对于计算机⽽⾔,它看到的这么⼀个像素点实际上就是11111111 11111111 11111111这么⼀个⼆进制串,我们称其为该像素点的RGB码(⼆进制),为了⽅便⼈阅读,我们⼈常常将这串⼆进制串写作⼗六进制形式,也就是#ffffff,这也是这个像素点的RGB码(⼗六进制)。

LSB图像信息隐藏实验

LSB图像信息隐藏实验

学号:姓名:专业年级班级:实验室:组别:实验日期:课程名称保密技术实验实验课时实验项目名称和序号1.LSB图像信息隐藏实验同组者姓名实验目的1. 掌握对图像的基本操作。

2. 能够用 LSB 算法对图像进行信息隐藏3. 能够用 LSB 提取算法提取隐藏进图像的信息4. 能够反映 jpeg 压缩率与误码率之间的关系实验环境Windows+matlab实验内容和原理1.用 MATLAB 函数实现 LSB 信息隐藏和提取2.分析了 LSB 算法的抗攻击能力3.能随机选择嵌入位(考虑安全性因素)实验步骤方法关键代码实验算法 1:LSB 嵌入1.读取一副 256*256 大小的图片,判断是否为 RGB 图像。

若为 RGB 图像,则读取图像的一层信息(如 R 层)。

通过读取图像的尺寸大小来判断是否为RGB图像。

RGB图像是三维多彩图,size有3个参数,最小参数是3,只要判断读取到的图像大小大于2,就确定读入的是RBG图像2.以二进制形式读取要嵌入到图片里的消息。

并读取消息的长度(嵌入消息的长度不能超过图像位数)。

3.产生与消息长度一致的一串随机数(不能相同)。

自定义一个randinterval函数来实现伪随机数的生成产生的伪随机数是代表消息要隐藏的像素位置(行和列的信息)随机数代码:function [row,col]=randinterval(matrix,count,key)%randinterval.m%参数说明%matrix是载体矩阵,即要隐藏信息的图层%cout为要嵌入信息的像素数量%key为自定义秘钥,随机种子[m,n] = size(matrix);interval1 = floor(m * n/(count+eps)) + 1;interval2 = interval1 - 2;if interval2 == 0error('载体太小不能把秘密信息隐藏进去');endrand('seed',key);a = rand(1, count);row = 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;end4.按照产生的随机数的序列依次将图片层的最后一位改为消息的信息。

07.1基于LSB的隐写与隐写分析

07.1基于LSB的隐写与隐写分析

f2i1

a
2

f2i

f2i1
a 2 f2i1
f2i f2i1
2020/1/30
信息隐藏和数字水印
22
直方图补偿隐写
特点
隐写后直方图不再趋于相等,2法失效 嵌入量降低:部分载体用于补偿
2020/1/30
信息隐藏和数字水印
23
RS分析方法
对图像分块,以Zigzag方式扫描排列成一个 向量(x1,…,xn)
30
RS分析方法
则非负翻转后有三类像素
没有被翻转
灰度值未变,像素比例为(1-a/21b
经历一次翻转
灰度值变化1,像素比例为(1-a/2ba/21 ba/2bab
经历二次翻转
灰度值回到原始值,像素比例为ab/2
隐写像素 隐写灰度值变化比 翻转比例 不变比例 F1比例 F0比例
2020/1/30
信息隐藏和数字水印
32
RS分析方法
如果对隐写图像进行非正翻转,也有三类 像素
没有翻转的 经历一次翻转的 经历二次翻转的
F1和F-1,像素值变化为2,两次翻转不会抵消
所以, R-M与S-M的差距不会随a增大而减小
2020/1/30
信息隐藏和数字水印
33
RS分析方法
RS分析失效
抗GPC分析性能:
修改像素值时,穿越P0和P1平面簇的可能性相 同
GPC分析失效
2020/1/30
信息隐藏和数字水印
52
改进的LSB隐写
抗卡方分析性能:
灰度为 j 的像素中会有大约一半不变,大约四 分之一变为j+1,剩余大约四分之一变为 j-1

LSB图像信息隐藏实验

LSB图像信息隐藏实验

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隐写算法的研究

《新技术讲座》课程课程大作业作业名称:基于数字图像LSB隐写算法的研究姓名:其他组员:学号:班级:完成时间:2013年11月2日基于图像LSB隐写算法的研究(XX大学XX学院XX XX地联系方式)摘要:本文先对信息隐藏技术、隐藏模型、隐写术、隐写算法等进行了简单介绍,然后借助软件matlab7.0,采用空域隐写算法LSB将秘密信息嵌入数字图像,完成隐写;接着将嵌入的秘密信息提取出来,通过计算其峰值信噪比PSNR来评估该隐写算法的不可感知性,证实了LSB嵌入时在图像的最不重重要位加载秘密信息,一定程度上加强了秘密信息的不可感知性;再通过缩小和放大二倍来分析隐写算法的鲁棒性,试验结果表明,该算法计算量低,在低嵌入率时检测结果准确,优势明显,而对嵌入率较高的载秘图像,需要修正后才能达到常规检测的标准;最后,在实验总结基础上提出了一些建议,并对未来进行了展望。

关键词:信息隐藏技术隐写算法LSB信息嵌入信息提取PSNR不可感知性鲁棒性第一部分1.引言随着计算机技术、信息处理技术和计算机网络技术的飞速发展,Intemet在世界范围内得到了大力推广,各种数字信息的制作、传输、存储和处理由此变得越来越简单。

通过互联网,人们可以快捷高效地获得图像、声音和文本等各种多媒体数据,分享海量的信息资源。

各种机密信息,如个人的信用卡账号逐渐在网络通信中出现。

然而,全球互联网是一个开放的系统,虽然普通用户可以通过网络方便、快捷地交流信息,但是随之而出现的问题也十分严重:个人的隐私的安全如帐号、个人信息、密码口令、电子邮件等能否得到保障;多媒体作品的版权能否得到应有的保护;电子商务中的企业机密能否不被商业间谍所窃取;涉及到国家安全、政府绝密的文件在网络中能否被安全地传输等。

因此,蓬勃发展的网络使得信息传输和交流更加简单易行的同时,也对关系国家安全、经济发展乃至个人隐私等方而的信息安全提出了更高的要求。

国内外各界已经高度重视如何在既能有效地保证各种信息的安全这个大前提下,也能充分利用Internet便利的问题,由此一门新兴的交叉学科——信息隐藏诞生了。

LSB图像信息隐藏

LSB图像信息隐藏

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。

lsb图像信息隐藏课程设计

lsb图像信息隐藏课程设计

lsb图像信息隐藏课程设计一、课程目标知识目标:1. 学生能理解图像信息隐藏的基本概念,掌握LSB(最低有效位)算法的原理和应用。

2. 学生能描述LSB算法在图像处理和信息安全领域的实际应用场景。

3. 学生能解释LSB算法中涉及的颜色空间转换、图像编码和解码过程。

技能目标:1. 学生能运用LSB算法实现简单的图像信息隐藏,具备基本的图像处理技能。

2. 学生能运用编程工具(如Python等)实现LSB算法,提高实际操作能力。

3. 学生能通过案例分析和实践,学会运用LSB算法解决实际问题。

情感态度价值观目标:1. 学生对图像信息隐藏产生兴趣,提高对信息安全的认识和重视。

2. 学生通过小组合作完成任务,培养团队协作和沟通能力。

3. 学生在学习过程中,培养积极探索、勇于创新的精神。

分析课程性质、学生特点和教学要求:1. 课程性质:本课程为信息技术课程,旨在让学生了解图像信息隐藏的基本原理和方法,提高信息安全意识。

2. 学生特点:学生为初中生,对新鲜事物充满好奇,具备一定的编程基础和图像处理知识。

3. 教学要求:注重理论与实践相结合,以学生为主体,充分调动学生的积极性,培养实际操作能力和创新精神。

二、教学内容1. 图像信息隐藏概述:介绍图像信息隐藏的基本概念、分类和应用场景,使学生了解LSB算法在图像信息隐藏中的地位和作用。

- 教材章节:第3章 图像信息隐藏技术- 内容:3.1 节 图像信息隐藏的概念及分类;3.2 节 LSB算法简介2. LSB算法原理:讲解LSB算法的基本原理,包括颜色空间转换、图像编码和解码过程。

- 教材章节:第3章 图像信息隐藏技术- 内容:3.3 节 LSB算法原理;3.4 节 颜色空间转换3. LSB算法实现与应用:分析LSB算法在实际应用中的优势和局限,并通过案例讲解其实现过程。

- 教材章节:第3章 图像信息隐藏技术- 内容:3.5 节 LSB算法实现与应用;3.6 节 LSB算法的优势与局限4. 实践操作:安排学生进行LSB算法的实践操作,包括使用编程工具实现LSB 算法、分析实际案例等。

信息隐藏实验报告LSB隐写分析

信息隐藏实验报告LSB隐写分析

《信息隐藏技术》实验报告实验3:LSB信息隐藏攻击实验杭州电子科技大学网络空间安全学院一、实验目的1.主要内容对实验1中信息隐藏后的图像进行隐写分析。

2.基本要求要求学生能够将没有嵌入信息的图像和隐藏信息的图像区分开来。

二、实验内容及实现过程步骤1.可视攻击针对LSB 算法,通过可视攻击进行视觉比较,观察含隐藏信息与不含隐藏信息图像的不同。

原图嵌入LSB 水印2.概率分布分析方法(χ2分析)统计LSB 信息隐藏后,图像的像素灰度值的直方图,结合χ2分布密度函数计算载体含有秘密信息的概率值。

提取最低有效位 提取最低有效位部分分块概率为1,不确定含有秘密信息大部分分块的概率为1,可以确定含有秘密信息部分分块概率为1,不确定含有秘密信息大部分分块的概率为1,可以确定含有秘密信息三、实验结果分析计算隐秘分析算法判断结果的错误率:FP (false positive):没有嵌入隐藏信息的图像错误地判断为嵌入了隐藏信息FN (false negative):嵌入隐藏信息的图像错误地判断为没有嵌入隐藏信息判断标准:超过半数的分块概率为1,判别为加密少于半数的分块概率为1,判别为原始图像FP:4/9FN:0/9误判原因分析,图像像素值较低四、实验小结(包括小组分工,组员各自的贡献点;通过实验得出的结论;对隐写分析加深的理解)设计算法:邢征宇(卡方分析)刘煜程(可视攻击)结果分析:单志晗(FP)梁经纬(FN)总结:1. 能够真正理解两种方法的思想和每一个处理步骤的作用,才能真正写出matlab 程序并进行结果分析;2. 8 位的像素值从0 开始到255,但是数组的下标从1 开始到256,所以像素值的2i 对应数组下标2i-1,像素值的2i+1 对应数组下标2i,像素值只存在2i->2i+1 的变换,对应于只存在2i-1->2i 的下标值变换,在编写代码时需注意此类细节,否则实验结果将大打折扣;3. 当实验结果与预期的有偏差,不仅仅是检查理解实验有偏差、程序是否正确,而且需要改变不同的实现方法、不同的参数以及利用不同的图像来进行测试和比较,这样才可能更快判断出问题出在哪里,并找到解决办法,而且有的时候不一定是代码有误的问题。

lsb隐写分析实验

lsb隐写分析实验

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个⼤⼩相同的样本进⾏检测的分析结果,其中嵌⼊信息为伪随机序列。

lec2-LSB隐写术

lec2-LSB隐写术

LSB算法的思想就是直 接在图像的最低位用秘 密信息进行替换
19
一个替换嵌入的实验
原始图像Lena
秘密图像Baboon
20
嵌入一个相同大小的黑白图像的函数
function out=MySimpleEmbedding(src,secr,place) if(size(src)~=size(secr)) error('The size must be same for simplicity!'); end [row,col]=size(src); for i=1:row for j=1:col out(i,j)=bitset(src(i,j),place,secr(i,j)); end End % bitset(src,place,secr);
10
图像的RGB颜色模型
绝大部分可见光谱可用 红、绿和蓝 (RGB) 三色光 按不同比例和强度的混合来 表示。在颜色重叠的位置, 产生青色、品红和黄色。 因为 RGB 颜色合成产 生白色,它们也叫作加色。 将所有颜色加在一起产生白 色──就是说,所有光被反 射回眼睛。例如,显示器通 过红、绿和蓝荧光粉发射光 线产生彩色。
14

RGB的一个问题
有一个长宽各为200个象素,颜色数 为16色的彩色图,如果用RGB来表示, 问需要的存储空间有多大? 200×200×3,约120k字节 。
15
YCbCr模型
YCbCr是DVD、摄像机、数字电视等视频产品中, 常用的色彩编码方案。主要原因是可以进行数据 压缩 ,同时还可以和黑白视频兼容。
联系后面,我们可以发现所谓灰度图 像的像素值就是YCbCr中每个像素的亮度 分量值。
7
灰度图像பைடு நூலகம்二值化方法

基于LSB图像隐藏和解密算法深度讲解

基于LSB图像隐藏和解密算法深度讲解

基于LSB图像隐藏和解密算法深度讲解 本⼈错误之处,欢迎指正。

LSB(LeastSignificant Bits)加密算法:将秘密信息嵌⼊到载体图像像素值的最低有效位,也称最不显著位,改变这⼀位置对载体图像的品质影响最⼩。

普及⼀下常识:RGB图像,蓝⾊,红⾊,绿⾊混合⽽成的彩⾊图像,读取后由三个⼋位m*n的矩阵组成,m*n代表图像的⼤⼩,也就是像素的多少,⼋位指的是⼀个像素占了⼋位⼆进制的⼤⼩,转为⼗进制也就是0-255。

最低有效位是低四位,本系统使⽤低四位进⾏储存数据。

本次仿真实验通过MATALB进⾏仿真,并且只分析灰⾊图像,原因是因为彩⾊图像是三个灰度图像代表了三种颜⾊混合⽽成。

编写两个界⾯,如下图所⽰: 本次讲解给出的代码加密算法代码和解密算法代码,涉及到的界⾯算法不与给出和解释。

算法思想:1,读⼊⼀个m*n的灰度图像,把每⼀位的像素的低四位⽤或运算清0,得到我称之为的“载体图像”。

2,读⼊信息图像,也就是需要隐藏的图像(也可以是其他的信息),将图像的⼋位拆开成⾼四位和低四位。

3,在载体前6个的低四位数据中,放⼊信息图像的⼤⼩信息。

3,按照先⾼后低的顺序,存⼊载体图像,先从左到右,再换下⼀⾏。

4,解密⽆⾮就是上⾯步骤的逆序⽽已。

看完思想后,⼀般情况下就可以⾃⼰尝试写程序了,其实⽤C语⾔对位操作更加⽅便,但是,考虑到需要显⽰图⽚,所以决定使⽤MATLAB进⾏仿真。

此处只提供加密和解密的算法,供需要的⼈学习,界⾯只是单纯的调⽤,所以在这没必要介绍。

%%%%%%%%%加密算法%%%%%%%%%%%clc;close all;clear;Inimage=imread('2222.jpg');Inimage=rgb2gray(Inimage);%真彩转灰度imwrite(Inimage,'car.jpg');figure(1);subplot(221),imshow(Inimage);title('原图');carrierl=bitand(Inimage,240);%清空低四位subplot(222),imshow(carrierl),title('清空低四位');%读取信息%text=158;text=imread('mess3.jpg');text=rgb2gray(text);imwrite(text,'messss.jpg');subplot(223),imshow(text),title('信息图');textu8=uint8(text);%读取输⼊图⽚的⼤⼩[m,n]=size(Inimage);m=double(m);n=double(n);%清空低四位数据after=carrierl;%读取信息⼤⼩[m1,n1]=size(textu8);%计数器count=1;count=double(count);%前六位⽤来放信息⼤⼩的信息m1,n1bit4=m1;%提出⾼⾼四位hhtext=bitand(bit4,3840);%右移⼋位位hhtext=bitshift(hhtext,-8);%提出⾼四位hightext4=bitand(bit4,240);%右移四位hightext4=bitshift(hightext4,-4);%提出低四位lowtext=bitand(bit4,15);%计算第⼏⾏locationy=ceil(count/n);%计算第⼏列locationx=count-(locationy-1)*n;%放⼊⾼四位after(locationy,locationx)=bitor(carrierl(locationy,locationx),hhtext); count=count+1;%计算第⼏⾏locationy=ceil(count/n);%计算第⼏列locationx=count-(locationy-1)*n;%放⼊⾼四位after(locationy,locationx)=bitor(carrierl(locationy,locationx),hightext4); count=count+1;locationy=ceil(count/n);locationx=count-(locationy-1)*n;%放⼊低四位after(locationy,locationx)=bitor(carrierl(locationy,locationx),lowtext); %计数count=count+1;bit4=n1;%提出⾼⾼四位hhtext=bitand(bit4,3840);%右移⼋位位hhtext=bitshift(hhtext,-8);%提出⾼四位hightext4=bitand(bit4,240);%右移四位hightext4=bitshift(hightext4,-4);%提出低四位lowtext=bitand(bit4,15);%计算第⼏⾏locationy=ceil(count/n);%计算第⼏列locationx=count-(locationy-1)*n;%放⼊⾼四位after(locationy,locationx)=bitor(carrierl(locationy,locationx),hhtext); count=count+1;%计算第⼏⾏locationy=ceil(count/n);%计算第⼏列locationx=count-(locationy-1)*n;%放⼊⾼四位after(locationy,locationx)=bitor(carrierl(locationy,locationx),hightext4); count=count+1;locationy=ceil(count/n);locationx=count-(locationy-1)*n;%放⼊低四位after(locationy,locationx)=bitor(carrierl(locationy,locationx),lowtext); %计数count=count+1;%开始载⼊数据for i=1:m1for j=1:n1bit4=textu8(i,j);%提出⾼四位hightext4=bitand(bit4,240);%右移四位hightext4=bitshift(hightext4,-4);%提出低四位lowtext=bitand(bit4,15);%计算第⼏⾏locationy=ceil(count/n);%计算第⼏列locationx=count-(locationy-1)*n;%放⼊⾼四位after(locationy,locationx)=bitor(carrierl(locationy,locationx),hightext4); %计数count=count+1;locationy=ceil(count/n);locationx=count-(locationy-1)*n;%放⼊低四位after(locationy,locationx)=bitor(carrierl(locationy,locationx),lowtext); %计数count=count+1;endendsubplot(224),imshow(after),title('载⼊信息后');%保存图⽚,为tif格式⽆损耗imwrite(after,'after.tif');capity=num2str(m*n+4);messc=num2str(m1*n1);xlabel(['总像素容量为:',capity,';载体信息⼤⼩为',messc],'Color','b'); %%%%%%%%解密算法%%%%%%%%%%%%%clc;clear;close all;Inimage2=imread('after.tif');figure(1);subplot(221),imshow(Inimage2);title('原图'); %%%%%%读取图⽚的⼤⼩信息%%%%%%%提取⾼⾼四位m1hh=bitand(Inimage2(1,1),15);%提取⾼四位m1high=bitand(Inimage2(1,2),15);%提取低四位m1low=bitand(Inimage2(1,3),15);%⾼四位左移m1high=bitshift(m1high,4);%⾼⾼四位左移⼋位m1hh=double(m1hh);m1hh2=bitshift(m1hh,8);%合成数据m1=double(m1high+m1low)+m1hh2;%提取⾼⾼四位n1hh=bitand(Inimage2(1,4),15);%提取⾼四位n1high=bitand(Inimage2(1,5),15);%提取低四位n1low=bitand(Inimage2(1,6),15);%⾼四位左移n1high=bitshift(n1high,4);%⾼⾼四位左移⼋位n1hh=double(n1hh);n1hh=bitshift(n1hh,8);%合成数据n1=double(n1high+n1low)+n1hh;m1=double(m1);n1=double(n1);%%%%%%%开始读出数据,⽣成图⽚%%%%% %⽣成2个空⽩矩阵messagehigh=zeros(m1,n1);messagelow=zeros(m1,n1);result=zeros(m1,n1);%载体⼤⼩[m,n]=size(Inimage2);%初始化数值count=1;oddc=0;evenc=0;for i=1:mfor j=1:n%信息读取结束⾃动跳出if count==m1*n1*2+4break;%前四位已经读取elseif(count>6)dataout=bitand(Inimage2(i,j),15);locount=count-6;if rem(locount,2)==0evenc=evenc+1;%计算第⼏⾏locationy=ceil(evenc/n1);%计算第⼏列locationx=evenc-(locationy-1)*n1; messagelow(locationy,locationx)=dataout;elseoddc=oddc+1;%计算第⼏⾏locationy=ceil(oddc/n1);%计算第⼏列locationx=oddc-(locationy-1)*n1; messagehigh(locationy,locationx)=dataout;endendcount=count+1;endendfor i=1:m1for j=1:n1messagehigh(i,j)=bitshift(messagehigh(i,j),4); result(i,j)=bitor( messagehigh(i,j),messagelow(i,j)); endendcompare=imread('mess2.jpg');compare=rgb2gray(compare);result=uint8(result);subplot(222),imshow(result);title('结果');subplot(223),imshow(compare);title('信息'); compare=imread('mess.jpg');compare=rgb2gray(compare);。

lsb图像信息隐藏课程设计

lsb图像信息隐藏课程设计

lsb图像信息隐藏课程设计一、教学目标本课程旨在通过学习LSB图像信息隐藏技术,使学生掌握数字图像处理的基本原理,了解LSB隐写技术的实现方法,培养学生运用信息隐藏技术进行图像信息安全的能力。

具体目标如下:1.知识目标:(1)了解数字图像的基本概念,包括图像的表示、图像文件格式等。

(2)掌握LSB隐写技术的基本原理,了解其在本课程中的应用。

(3)熟悉图像加密和信息隐藏的基本方法,了解当前研究热点和发展趋势。

2.技能目标:(1)能够运用LSB隐写技术对图像进行信息隐藏。

(2)能够使用相关工具和软件进行图像处理和信息提取。

(3)具备分析图像信息隐藏效果的能力,能够针对不同场景提出优化策略。

3.情感态度价值观目标:(1)培养学生对图像信息安全的重视,提高信息安全意识。

(2)培养学生勇于探索、创新的精神,激发对信息技术领域的兴趣。

二、教学内容本课程的教学内容主要包括以下几个部分:1.数字图像基础:包括图像的表示、图像文件格式、图像处理基本概念等。

2.LSB隐写技术:介绍LSB隐写技术的原理、实现方法及其在图像信息隐藏中的应用。

3.图像加密与隐藏方法:介绍常见的图像加密和信息隐藏方法,包括对称加密、非对称加密、混沌加密等。

4.图像信息隐藏工具与技术:介绍当前常用的图像信息隐藏工具,如StegTool、Invisible Secrets等,以及如何使用这些工具进行图像信息隐藏和提取。

5.图像信息隐藏效果分析与优化:分析图像信息隐藏的效果,针对不同场景提出优化策略。

三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:教师讲解图像信息安全的基本概念、原理和方法。

2.案例分析法:分析实际案例,使学生更好地理解图像信息隐藏技术的应用。

3.实验法:让学生动手实践,使用相关工具和软件进行图像信息隐藏和提取。

4.讨论法:学生进行小组讨论,分享学习心得和经验,互相促进。

四、教学资源为实现课程目标,我们将使用以下教学资源:1.教材:《数字图像处理》、《信息安全原理与实践》等。

pythonlsb算法隐写实现原理

pythonlsb算法隐写实现原理

pythonlsb算法隐写实现原理
LSB(Least Significant Bit)算法是一种简单的隐写术,它通过修改图像、音频、视频等多媒体数据的最不重要位来隐藏信息。

在实现时,首先将要隐藏的信息转换为二进制格式,然后将其嵌入到多媒体数据的最不重要位中。

由于人的视觉、听觉等感官对于多媒体数据的这些位并不敏感,因此嵌入信息后不会对多媒体数据造成明显的改变,从而实现隐写。

具体实现步骤如下:
1. 将要隐藏的信息转换为二进制格式。

例如,要将字母"A"隐藏在图像中,
首先将其转换为二进制形式:。

2. 读取图像的每个像素的最低位,将其替换为要隐藏的二进制信息的一位。

例如,如果一个像素的值为255(二进制形式为,那么将其最低位替换为中的第一位,得到,这样就将字母"A"的第一位隐藏在了这个像素中。

3. 重复步骤2,直到将所有的信息位都隐藏在图像中。

4. 保存修改后的图像。

需要注意的是,由于LSB算法非常简单,容易被破解。

因此,在实际应用中,需要结合其他加密算法来提高隐写的安全性。

LSB图片信息隐藏隐藏实验

LSB图片信息隐藏隐藏实验

上海电力学院高级程序设计(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隐写,RS隐写分析)..

信息隐藏实验(LSB隐写,随机LSB隐写,RS隐写分析)..

信息隐藏实验二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),评估隐写对图像质量的影响。

基于乘同余的LSB数字图像信息隐写

基于乘同余的LSB数字图像信息隐写
ቤተ መጻሕፍቲ ባይዱ
较好地得到保持 , 从 而具备较好 的抗信 息隐藏分 析能力。
0 引 言 L S B数 字图像信 息隐写分 析
c a n e n h a n c e t h e s e c r e c y o f i fo n r ma t i o n h i d i n g . Ke y wo r d s I fo n r mmi o n s e c u i r t y S t e g a n o g r a p h y I ma g e n o i s e Mu l t i p l i c a t i v e c o n g r u e n t i l a me t h o d
i n f o ma r t i o n t o b e d i s t i r b u t e d u n i f o ml r y i n n o i s e s p a c e o f c a r r i e r i ma g e S O a s t o i mp r o v e t h e a n t i — a n a l y s i s a b i l i t y f o t h e s t e g a n o g r a p h y i n f o ma r t i o n ;w e s t u d i e d t h e MC M a n d t h e n o i s e f e a t u r e s o n b i t — p l a n e o f t h e c a r r i e r i ma g e;c o mp ra a t i v e l y a n ly a s e d t h e n o i s e f e a t u r e s o f i ma g e b e f o r e a n d a f t e r t h e s t e g a n o g r a p h y ,a n d v e if r i e d t h r o u g h t h e e x p e ime r n t t h a t t h e MC M- b a s e d L S B i n f o r ma t i o n s t e g a n o g r a p h y f o r d i g i t l a i ma g e s
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图像隐藏技术实现与检测
(1.LSB隐写技术;2.LSB隐写检测;)
摘要:LSB替换隐写基本思想是用嵌入的秘密信息取代载体图像的最低比特位,原来的的7个高位平面与替代秘密信息的最低位平面组合成含隐藏信息的新图形。

文章首先简单叙述了BMP位图文件的文件格式,然后根据24位真彩色BMP位图格式与显示方式的特殊性,直接改变图像中像素的最后一位值来嵌入秘密文件,提出了一种对文字信息进行加密的有效方案。

关键字:LSB,信息隐藏,信息安全,BMP位图
Image hiding technology implementation
and testing
(1.LSB steganography technology;2.LSB
steganography detection)
Abstract:LSB replacement steganography basic idea is to use the embedded secret information to replace the image of the lowest bits, the original 7 high plane and the least significant bit plane of alternative secret information into new graphics containing hidden information.This paper simple describes the BMP file format of the
bitmap file, and then according to the 24 true color BMP bitmap format and the particularity of display mode, directly change the values of pixels in the image of the last to embed secret files, puts forward a effective scheme of text information is encrypted. Keywords:LSB, Information hiding,information security,bit map file
1.背景知识
在编制本算法之前,我们必须了解一些辅助知识,以便我们能够读懂为什么要这样编制程序。

首先,我们要了解24位真彩色
BMP(Bitmap-File)格式位图的文件结构。

位图文件头位图信息头色表实际位图数据图典型BMP文件结构示意图一个典型的位图文件可看成由4个部分组成:位图文件头(bitmap-fileheader)、位图信息头(bitmap-informationheader)、色表(colortable)和实际位图数据的字节阵列,其具体形式如图1所示。

其中前面3个部分包含关于这个图形文件的信息,这3个部分,占据了一个24位真彩色BMP位图文件的前54个字节。

2.LSB隐写的实现
LSB的实现就是把bmp位图的数据部分的最低位以此替换成所要隐藏的信息。

实现的C语言代码如下:
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
int main(int argc, char* argv[])
{
FILE *in,*out;
int i;
char inFileName[90],outFileName[90];
printf("请输入原位图文件的文件名: \n");
scanf("%s",inFileName);
printf("请输入处理后的文件的文件名: \n");
scanf("%s",outFileName);
if((in=fopen(inFileName,"rb"))==NULL)
{
printf("文件无法打开!\n");
return -1;
}
if((out=fopen(outFileName,"wb"))==NULL)
{
printf("文件无法打开!\n");
return -1;
}
for(i=1;!feof(in);i++)
{
if(i<=54)
{
fputc(fgetc(in),out);
}
else
{
fputc(~fgetc(in),out);
}
}
printf("图片处理成功!\n");
fclose(in);
fclose(out);
return 0;
}
实现效果:
(原图)(处理后的图片)3.LSB隐写检测
3.1直接使用C语言代码将刚才隐写的信息显示出来。

代码:#include "stdafx.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
FILE *in;
char ch,fileName[90];
unsigned int i;
printf("enter fileName: \n");
scanf("%s",fileName);
if((in=fopen(fileName,"rb"))==NULL)
{
printf("file open fail");
return -1;
}
fseek(in,54L,0);
do
{
ch =0 ;
for(i=0;i<8;i++)
{
ch+=(fgetc(in)&0x01)<<i;
}
putchar(ch);
}while(ch);
/*while((ch=fgetc(in))!=EOF)
{
fputc(ch,stdout);
}*/
putchar('\n');
return 0;
}
显示效果:(ps:图中的中文是隐藏的信息)
3.2对比检测技术
在对比检测技术中,检测过程需要将载体图象(cover-image)和载密图象(stego-image)对比。

通常从载体图象和载密图象的像素之间的关联分析、变换域系数的关联分析发现隐藏信息的可能性。

这种方法相对简单,但通常情况下,由于载体图象无法获取,因此实际意义不大。

3.3盲检测技术
盲检测技术就是指在没有载体图象的情况下,只通过载密图象检测隐藏信息。

通常通过对自然数字图象特征进行分析,分析嵌入信息后引起的特征改变从而判断是否存在信息的嵌入。

盲检测技术的难
度较大,但具有更广泛的应用前景。

参考文献:
[1]范辉.VisualC++6.0程序设计简明教程[M].北京:高等教育出版社,2002.
[2]张鑫,杨棉绒.利用BMP文件的特殊结构进行信息加密[J].新乡师专学报,2005,(9).
[3]罗运和.计算机图形学基础[M].北京:中国计量出版社,1998.。

相关文档
最新文档