基于LSB算法的图像信息隐藏与检测

合集下载

信息隐藏实验三LSB图像信息隐藏剖析

信息隐藏实验三LSB图像信息隐藏剖析

实验三:LSB图像信息隐藏一、实验目的了解信息隐藏中最常用的LSB算法的特点,掌握LSB算法原理,设计并实现一种基于图像的LSB隐藏算法;了解如何通过峰值信噪比来对图像进行客观评价,并计算峰值信噪比值。

二、实验环境(1)Windows 7操作系统;(2)MATLAB R2012b版本软件;(3)BMP格式灰度图像文件。

三、原理简介任何多媒体信息在数字化时都会产生物理随机噪声,而人的感官系统对这些随机噪声并不敏感。

替换技术就是利用这个原理,通过使用秘密信息比特替换随机噪声,从而实现信息隐藏目的。

在BMP灰度图像的位平面中,每个像素值为8比特二进制,表示该点亮度。

图像高位平面对图像感官质量起主要作用,去除图像最低几个位平面并不会造成画面质量的明显下降。

利用这个原理可用秘密信息(或称水印信息)替代载体图像低位平面以实现信息嵌入。

本算法选用最低位平面来嵌入秘密信息。

最低位平面对图像的视觉效果影响最轻微,但很容易受噪声影响和攻击,可采用冗余嵌入的方式来增强稳健性加以解决,即在一个区域(多个像素)中嵌入相同的信息,提取时根据该区域中的所有像素判断。

四、实验步骤1. 隐藏提取及测试算法分为三个部分实现:(1)隐藏算法;(2)提取算法;(3)测试脚本。

1)隐藏算法源代码hide_lis.m如下:function o = hide_lsb(block,data,I)%function o = hide_lsb(block,data,I)%隐藏提取及测试%block:隐藏的最小分块大小%data:秘密信息%I:原始载体si = size(I);lend = length(data);N = floor(si(2)/block(2));%将图像划分为M*N个小块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);endend2)提取算法源代码dh_lsb.m如下:function out = dh_lsb(block,I)%function out = dh_lsb(block,I)%源代码dh_lsb.m如下:%block:隐藏的最小分块大小%I:携密载体si = size(I);%将图像划分为M*N个小块N = floor(si(2)/block(2));M = floor(si(1)/block(2));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;endendend3)测试脚本源代码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;endsi = 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];endI = 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);2. 计算峰值信噪比(1)峰值信噪比定义:2,2,,,,max ()x y x y x y x yx y p PSNR XY p p =-∑(2)峰值信噪比函数。

基于位平面的LSB图像隐藏算法分析及改进

基于位平面的LSB图像隐藏算法分析及改进

该算法的主要思想是将待隐藏图像的数据信息串每次抽取两 位, 通过观察载体图像数据信息各字节最后两位的特点, 寻找 与之最匹配 ( 即同待隐藏信息中抽取的两位数据最相近) 的 位置存放, 这样就可以将对载体图像数据的改变降到了最低。
图 $0 索引数据链隐藏算法示意图
根据图 $ , 首先将原信息串的前两位 “ "# ” 取出, 考察载体 图像存储信息中各字节的最后两位, 寻找倒数第二位与 “"” 相同的第一个字节, 将 “ "# ” 放入该字节的最后两位 ( 该字节 原来的后两位可能会有 “ "" ” 和 “ "# ” 两种情况, 若为前者, 则 记 “ 改变了一位” ; 若为后者, 则实现了在不改变载体信息的 同时 存 入 了 数 据) 。对 原 信 息 串 右 移 一 位 后 再 取 出 两 位 “ #" ” , 从刚才存储 “ "# ” 位的那个字节开始向后扫描, 寻找第 一个出现的倒数第二位与 “#” 相同的字节, 将 “ #" ” 存入, 在本 例中即为用 “ #" ” 取代了第三个字节中的最末两位 “ ## ” , 这时 又只有一位数据发生了改变; 以此类推, 将原信息串每次右移 一位后取最前的两位, 放入下一个倒数第二位与其相同的字 节中的最末两位, 这样, 每次存取过程中用一个 “ 公共位” 实 现了数据的链式结构。 由于存放原信息代码的字节倒数第二位同源载体信息数 据相比肯定未发生变化, 而最后一位只有较少的一部分发生 了改变, 这样, 就实现了原图像数据同载体图像数据最大程度 上的匹配存放, 减少了由于存放原图像数据而造成的对载体 数据的改变。 下面对其实现的效率以及优化的程度加以分析: 当需要隐藏 " 位信息时 (" * 5 ) , 根据概率统计的知识, 大约需要占据载体图像数据中 $ " 个字节来存放, 其中包括大 约 " 个字节未占用 ( 保持原来数值) , 占用的 " 个字节中最后 一位数据被改变的概率也只有 " # $ , 因此得出结论, 在 " 比较 大的条件下, 在载体信息中隐藏 " 位数据对原有数据的改变 只有不到 $, $ , 即在绝大部分数据都未发生变化的情况下就 完成了对另一图像信息的隐藏。 可以看出, 同前面的两种算法都需要改变大约 ,#6 的载 体中各字节最末位数据相比, 该算法在不损失任何隐藏信息

信息隐藏实验(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图像信息隐藏的检测及处理

对于 自 图像 , S 然 kL B平面看似随机,但 kL B平面与剩下的 ( -)个比特平面之间仍然具有很强的弱相 .S 8k
关性 ,随着秘 密信 息 嵌入 的增 多 ,这种 弱相 关性 越来越 小 ,直至两 者 相互完 全 独立 . 在 实 际的使用 过 程 中, 因为 kL B算 法 依赖 的 是算法 本 身的保 密 性 ,这 同样违背 了 K rh o 原理 . .S ech f

1 一

‘ \…

J() d 做 i i 否 从 一 布 标 . 大 给 的 值 , 以 为 v1 t 为Y Y 是 服 分 的 准 当P 于 定 阈 时 可 认 t2P -2 ,
2变换域上 的信息隐藏算法及检测
21 D T系数 的分布 . C 对 于 JE 文 件来 说 ,D T 变换 和量 化 的过程 都是有 信 息损 失 的 ,所 以信息 隐藏 通常是 用 量化 后的 D T PG C C 系 数 的 L B 信息 位 . 常 ,正 常 图像 的 D T 系数 的交 流 系数 ( c)部 分服 从广 义 的高斯 分布 .图像 中嵌入 了 S 通 C A
困难的是如何确定这样一个统计量的参考值也即确定重写隐藏信息位上面分析的常用隐藏算法及其相应的检测方法每种方法只对相应的隐藏算法有效对其它算法效果不明显没有一通用的检测方法检测效率也非常低提取出来隐藏信息更是困难所以我们不如退而求其次可不要检测或检测后对可疑图像直接进行重写即可消除隐藏信息
维普资讯
情 况 下 ,确定 隐藏 信 息是 否存 在 ,防止 滥用 信 息 隐藏技 术 .现在 虽 然提 出 了一些 检测 算法 ,一 来这些 算法 是 只 针 对一 具 体 隐藏算 法效 果 明显 ,二 是检 测 效率 总体 不太 理 想.基 于这 些 原 因 ,本 文逆 向思维 ,欲 其 事倍功 半 ,

基于LSB算法的图像信息嵌入与提取技术

基于LSB算法的图像信息嵌入与提取技术

基于LSB算法的图像信息嵌入与提取技术作者:付海辰来源:《科技资讯》 2011年第14期付海辰(唐山学院计算机科学与技术系河北唐山 063000)摘要:信息隐藏技术成为保密通信和信息保护的有效手段,利用LSB算法对图像信息进行嵌入和提取,是信息隐藏技术中关键一环。

关键词:信息隐藏 LSB算法嵌入提取中图分类号:TN918 文献标识码:A 文章编号:1672-3791(2011)05(b)-0242-021 LSB隐藏算法概述最低有效位LSB(Least Significant Bit)的信息隐藏是一种典型的空间域数据隐藏方法。

这种方法通过替换最低有效位来嵌入秘密消息,只需对载体文件作很小且不易被觉察的改变就能隐藏大量的秘密信息。

由于利用LSB隐藏信息方法实现简单,隐藏量比较大,所以以LSB信息隐藏思想为原型,产生了一些变形的LSB方法,目前万联网上公开的图像信息隐藏软件大多使用这种方法。

实践证明,任何一幅图片都具有一定的噪声分量,这表现在数据的最低有效位,其统计特征具有一定的随机性,秘密信息就是依靠这种随机性来隐藏信息,实现隐形性的。

事实上,无论是声音还是视频,都有这种随机性质。

在数字图像中,一幅图像的每个像素是以多比特的方式构成的,在灰度图像中,每个像素通常为8位;在真彩色图像(RCB方式)中,每个像素为24比特,其中RCB这3色各为8位,每一位的取值为0或1。

在数字图像中,每个像素的各个位对图像的贡献是不同的。

对于8位的灰度图像,每个像素的数字g可用公式表示为:,其中:i为像素的第几位,bi为第i的取值,bi∈{0,1}。

对于灰度图像,人眼不能分辨全部256个灰度等级,4个左右灰度等级的差异人眼是不能区别的。

而当对比度比较小时,人眼的分辨能力更差。

LSB信息隐藏技术就是利用这一点将需要隐藏的秘密信息随机(或连续)地隐藏在载体较低的位平面。

2 基于LSB算法对图像信息的嵌入和提取2.1 图像的平滑区、边缘区和纹理区的划分保证秘密信息的不可见性和提高隐藏容量的有效途径是充分利用人眼的视觉特性。

实验三 基于LSB的信息隐藏算法

实验三 基于LSB的信息隐藏算法

实验三基于LSB的信息隐藏算法一、实验目的该实验为验证性实验。

目的是通过实验使学生掌握经典信息隐藏算法,在Matlab环境下,编写基于图像的LSB信息隐藏算法程序。

用Matlab函数实现LSB信息隐藏及提取,并进行分析。

二、实验要求1、实验前要做好充分准备,包括:复习实验所涉及的知识点,掌握Matlab 编程语言和调试环境。

2、实验时注意记录实验过程中产生的数据、出现的问题及解决问题的方法。

3、理论联系实际,认真分析实验结果,回答思考题。

4、实验后完成实验报告,并附相关截图。

三、实验环境计算机(安装Visual C++ 6.0和Matlab 6.5以上版本)四、实验原理隐秘算法核心是将我们选取的像素点的最不重要位依次替换成秘密信息,以达到信息隐秘的目的。

嵌入过程包括选择一个图像载体像素点的子集{j1,…,j l(m)},然后在子集上执行替换操作像素c ji←→m i,即把c ji的LSB与秘密信息m i进行交换(m i可以是1或0)。

一个替换系统也可以修改载体图像像素点的多个比特,例如,在一个载体元素的两个最低比特位隐藏两比特、三比特信息,可以使得信息嵌入量大大增加但同时将破坏载体图像的质量。

在提取过程中,找出被选择载体图像的像素序列,将LSB(最不重要位)排列起来重构秘密信息,算法描述如下: 嵌入过程:for(i=1;i<=像素序列个数;i++)s i←c ifor(i=1;i<=秘密消息长度;i++)//将选取的像素点的最不重要位依次替换成秘密信息s ji←c ji←→m i提取过程:for(i=1;i<=秘密消息长度;i++){ i←→j i //序选取m i←LSB(c ji)}五、实验内容与步骤1、随机选取图像载体像素,实现隐秘消息的嵌入与提取(1)隐秘消息的嵌入%文件名:randlsbhide.m%函数功能:本函数将完成随机选择LSB的信息隐秘,载体选用灰度BMP图%输入格式举例:[ste_cover,len_total]=randlsbhide(′glenna.bmp′,′message.txt′,′scover.bmp′,2001)%参数说明:%input是信息隐蔽载体图像%file是秘密消息文件%output是信息隐秘后的生成图像%key是随机间隔函数的密钥function[ste_cover,len_total]=randlsbhide(input,file,output,key)%读入图像矩阵cover=imread('lena.bmp');ste_cover=cover;ste_cover=double(ste_cover);%将文本文件转换为二进制序列f_id=fopen('1.txt','r');[msg,len_total]=fread(f_id,'ubit1');%判断嵌入消息量是否过大[m,n]=size(ste_cover);if len_total>m*nerror('嵌入消息量过大,请更换图像');end%p作为消息嵌入位数计数p=1;%调用随机间隔函数选取像素点[row,col]=randinterval(ste_cover,len_total,2001);%在LSB隐秘消息for i=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);if p==len_totalbreak;endp=p+1;endste_cover=uint8(ste_cover);imwrite(ste_cover,'lena2.bmp');%显示实验结果subplot(1,2,1);imshow(cover);title('原始图像');subplot(1,2,2);imshow('lena2.bmp');title('隐藏信息的图像');(2)编写函数比较两幅图像区别%文件名:compare.m%函数功能:本函数完成显示隐秘前后两幅图像的区别%输入格式举例:F=compare(′blenna.bmp′,′scover.bmp′) %参数说明:%original是原始载体图像%hided是隐秘后的图像%F是差值矩阵function F=compare(original,hided)%读取原始载体图像矩阵W=imread('lena.bmp');W=double(W)/255;%读取隐秘后图像矩阵E=imread('lena2.bmp');E=double(E)/255;%将两图像矩阵相减,显示效果F=E-W;%注意,MATLAB中矩阵相减只支持double型imshow(mat2gray(F))(3)隐秘消息的提取%文件名:randlsbget.m%函数功能:本函数将完成提取隐秘于LSB上的秘密消息%输入格式举例:result=randlsbget(′scover.jpg′,56,′secret.txt′,2001) %参数说明:%output是信息隐秘后的图像%len_total是秘密消息的长度%goalfile是提取出的秘密消息文件%key是随机间隔函数的密钥%result是提取的消息function result=randlsbget(output,len_total,goalfile,key)ste_cover=imread('lena2.bmp');ste_cover=double(ste_cover);%判断嵌入消息量是否过大[m,n]=size(ste_cover);frr=fopen('2.txt','a');%p作为消息嵌入位数计数器,将消息序列写回文本文件p=1;%调用随机间隔函数选取像素点[row,col]=randinterval(ste_cover,128,2001);for i=1:128if bitand(ste_cover(row(i),col(i)),1)==1fwrite(frr,1,'bit1');result(p,1)=1;elsefwrite(frr,0,'bit1');result(p,1)=0;endif p==128break;endp=p+1;endfclose(frr);2、顺序选取图像载体像素,实现隐秘消息的嵌入与提取(1)隐秘消息的嵌入%文件名:lsbhide.m%函数功能:本函数将完成在LSB上的顺序信息隐秘,载体选用灰度BMP图%输入格式举例:[ste_cover,len_total]=lsbhide(′glenna.bmp′,′message.txt′,′scover.bmp′)%参数说明:%input是信息隐蔽载体图像,为灰度BMP图%file是秘密消息文件%output是信息隐秘后生成图像%ste_cover是信息隐秘后图像矩阵%len_total是秘密消息的长度,即容量function[ste_cover,len_total]=lsbhide(input,file,output,key)%读入图像矩阵cover=imread('lena.bmp');ste_cover=cover;ste_cover=double(ste_cover);%将文本文件转换为二进制序列f_id=fopen('1.txt','r');[msg,len_total]=fread(f_id,'ubit1');%判断嵌入消息量是否过大[m,n]=size(ste_cover);if len_total>m*nerror('嵌入消息量过大,请更换图像');end%p作为消息嵌入位数计数p=1;%调用随机间隔函数选取像素点%[row,col]=interval(ste_cover,len_total,2001);%在LSB隐秘消息for f1=1:mfor f2=1:nste_cover(f1,f2)=ste_cover(f1,f2)-mod(ste_cover(f1,f2),2)+msg(p,1); if p==len_totalbreak;endp=p+1;endif p==len_totalbreak;endp=p+1;endste_cover=uint8(ste_cover);imwrite(ste_cover,'lena2.bmp');%显示实验结果subplot(1,2,1);imshow(cover);title('原始图像');subplot(1,2,2);imshow('lena2.bmp');title('隐藏信息的图像');(2)调用函数compare.m比较两幅图像区别%文件名:compare.m%函数功能:本函数完成显示隐秘前后两幅图像的区别%输入格式举例:F=compare(′blenna.bmp′,′scover.bmp′) %参数说明:%original是原始载体图像%hided是隐秘后的图像%F是差值矩阵function F=compare(original,hided)%读取原始载体图像矩阵W=imread('lena.bmp');W=double(W)/255;%读取隐秘后图像矩阵E=imread('lena2.bmp');E=double(E)/255;%将两图像矩阵相减,显示效果F=E-W;%注意,MATLAB中矩阵相减只支持double型imshow(mat2gray(F))(3)隐秘消息的提取%文件名:lsbget.m%函数功能:本函数将完成提取隐秘于LSB上的秘密消息%输入格式举例:result=lsbget(′scover.bmp′,56,′secret.txt′) %参数说明:%output是信息隐秘后的图像%len_total是秘密消息的长度%goalfile是提取出的秘密消息文件%result是提取的消息function result=lsbget(output,len_total,goalfile,key)ste_cover=imread('lena2.bmp');ste_cover=double(ste_cover);%判断嵌入消息量是否过大[m,n]=size(ste_cover);frr=fopen('2.txt','a');%p作为消息嵌入位数计数器,将消息序列写回文本文件p=1;%调用随机间隔函数选取像素点[row,col]=interval(ste_cover,128,2001);for f1=1:128for f2=1:128if bitand(ste_cover(f1,f2),1)==1fwrite(frr,1,'bit1');result(p,1)=1;elsefwrite(frr,0,'bit1');result(p,1)=0;endif p==128break;endp=p+1;endif p==128break;endp=p+1;endfclose(frr);实验小结:通过实验使我们掌握经典信息隐藏算法,在Matlab环境下,编写基于图像的LSB 信息隐藏算法程序。

基于LSB的工程图信息隐藏方法

基于LSB的工程图信息隐藏方法

、 、
Au
to
CA D

特序 列 填 充 到 这 些 像 素 的最 低 位 上

t
S ig n if i c

a n
t
B it
) 隐写 方 法 是 出现 较 早

特或j
比 特信 息
可 以 使 得 信 息嵌 入 量 大大增加 但 同时




种 时域 隐写 技术 其 实 现 比较 容 易
, ,
LSB
方 法 虽 然抗
却将 破 坏 载 体 图 像 的 质 量 在 提取 过 程 中 找 出被选择 载 体 图 像 的 像 素序 列 将
J,


不 同 分 为 空 域 隐藏算 法 和 变 换 域 隐藏 算 法 空 域 隐 藏 算 法 采 用 直 接 改 变 图像 元 素值 的 力法 的 亮 度 或 色度 中加 入 隐 藏 的 内容
只 需 对 隐秘 载 体进 行 很 小 的


( 2 )提 取 过 程
fo
r
=


收 是在 图 像 元 素


般 是 先用 软件 设 计 出 三 维 模 型 然 后 再 转 换 出

最 低 比特 位 ( L S B ) 隐写 方 t
j :就
各 个 零件 的二

维丁 程 图

Au
to
CA D
是 当今 最流 行 的二 维绘

藏算 法

首 先读 取 出图片 中每 个 点 的 像 素值 把 信 息 的 比

图软件 它 在 二 维 绘 图领 域拥 有 广 泛 的用 户群

基于LSB图像之加密信息隐藏应用实现

基于LSB图像之加密信息隐藏应用实现

基于LSB图像之加密信息隐藏应用实现摘要随着Internet的发展,人们越来越频繁的传递信息,在给人们带来便利的同时,也给人们的安全和隐私带来了隐患。

从很久以前,人们就开始了解如何保护自己的信息,发展到现在,信息安全主要分为两方面,密码学和信息隐藏。

本文在密码学这块的研究主要是RSA算法、AES算法和3DES算法。

RSA 是在1977年被提出来的,属于非对称加密算法,广泛用于公钥加密和电子商务中。

而对于信息隐藏技术方面,本文主要研究LSB算法。

LSB(LeastSignificant Bits)算法:一种常见的空间域数据隐藏算法,它替换了最低有效位以隐藏秘密信息。

通过LSB算法隐藏的信息一般来说肉眼察觉不出来,能很好地的保护秘密信息。

RSA算法可以将信息加密成密文,而LSB算法可以将加密后的密文隐藏到图片之中,人们的肉眼根本分辨不出来,将两者结合起来,可以更有效的保护信息安全。

关键词:加密,信息隐藏,LSB算法,RSA算法Implementation of encrypted information hiding based on LSB imageAbstractWith the development of the Internet, people are passing information more and more frequently, which brings convenience to people, but also brings hidden dangers to people's security and privacy. From a long time ago, people began to understand how to protect their own information. From now on, information security is mainly divided into two aspects, cryptography and information hiding. The research on cryptography in this article is mainly about RSA algorithm, AES algorithm and 3DES algorithm.RSA was introduced in 1977 and belongs to asymmetric encryption algorithm, which is widely used in public key encryption and e-commerce.As for the information hiding technology, this paper mainly studies the LSB algorithm. LSB (LeastSignificant Bits) algorithm: a common spatial data hiding algorithm, which replaces the least significant bit to hide secret information. The information hidden by the LSB algorithm is generally invisible to the naked eye, and can well protect secret information. The RSA algorithm can encrypt information into ciphertext, and the LSB algorithm can hide the encrypted ciphertext in the picture, people can't distinguish it by the naked eye. Combining the two can effectively protect information security.Keywords: encryption, information hiding, LSB algorithm, RSA algorithm目录一、前言 (2)(一)本设计的目的、意义及应达到的技术要求 (3)(二)本设计在国内外的发展概况及存在的问题 (3)(三)主要研究目标和内容 (4)(四)本设计应解决的主要问题 (4)二、系统需求分析 (5)(一)用户需求分析 (5)(二)功能需求分析 (5)(三)性能需求分析 (5)(四)可靠性需求分析 (5)(五)安全性需求分析 (6)三、可行性分析 (6)(一)技术可行性分析 (6)(二)经济可行性分析 (6)(三)操作可行性分析 (6)(四)性能可行性分析 (7)(五)安全可行性分析 (7)四、相关技术 (7)(一)信息隐藏概述 (7)(二)信息隐藏模型 (8)1.嵌入对象 (8)2.掩体对象 (8)3.隐藏对象 (9)4.密钥 (9)(三)信息隐藏的分类 (9)(四)信息隐藏的特点 (9)1.透明性 (10)2.不可检测性 (10)3.鲁棒性 (10)4.自恢复性 (10)5.安全性 (10)6.对称性 (10)7.可纠错性 (10)(五)信息隐藏技术与密码学技术 (10)(六)LSB算法 (12)(七)RSA算法 (12)1.算法描述 (12)2.RSA的安全性 (14)3.RSA的优缺点 (15)(八)AES算法 (15)1.AES简述 (15)2.AES的总体结构 (15)3.AES的详细结构 (17)(九)3DES算法 (19)1.3DES算法简述 (19)2.3DES算法的安全性 (22)五、系统设计 (22)(一)研究的基本思路和方法 (22)(二)总体设计 (22)(三)加密隐藏功能模块 (23)(四)提取解密功能模块 (24)六、系统测试 (25)(一)RSA加密和解密测试 (27)(二)AES加密测试 (29)(三)AES解密测试: (31)(四)3DES加密测试: (31)(五)3DES解密测试 (33)(六)LSB算法隐藏测试 (34)七、总结 (40)参考文献 (41)致谢 ..................................................................................................... 错误!未定义书签。

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隐写算法的图像盲检测方法

隐写分析的目标是估计 I 是否含有隐藏信息 , 和
2
是否非空 , 如果非空, 这两个集合又
= H j , j = 1, 2, 3 。以 最小错误概率准则作为检测 准则, 如果符合以下条件就断定图像中包含隐藏数 据。 P( H 1 ) > P( H 2 ) > P( H 3 或 P( H 2 ) > P( H 1 ) > P( H 3
( 10)
邱志宏等 : 一种基于 L SB 隐写算法的图像盲检测方法
451 分精确的区分水印图像和非水印图像。
假设 P d = P ( decideH 1 | H 1 t rue) 是正确检测 概率 , P f = P ( decideH 1 | H 3 t rue) 是假警概率, 从 ( 10) 式得出 P d 和 P f 的值是| S 1 | 和 | S 2 | 的函数 , | S 1 | 和 | S 2 | 是含有隐藏信息的比特位数。检测 总共有 23 种可能的检测规则, 其中包括优化的检 测规则。计算全部的检测参数需要很大的计算量 , 基于此, 假 设检测使 用 CM 种 检测规 则, 那么可 以 得到 Pd =
i= 1
包含哪些元素。在达成目标之后 , 就可能检测出覆 盖图像中是否含有隐藏数据 I 。当然 , 在此过程中 , 由于统计的不完整性和不确定性 , 预先不知道数据 隐藏键值, 隐写分析者会产生错误。错误的数量取 决于 i 的集势。这又会引出另外一个问题 : 在给定 不可检测概率的情况下, 多少比特的信息可以隐写 在 I 中 ( I 的隐写容量 ) 。 用以下符合实际的假设来计算隐写容量。 xi 服 从 x i ~ N ( 0, ∀ ) 的高斯分布。对每个 i ( i
P( H 3 ) P( u i = 0 | H 1 ) > P( H 1 ) , P( u i = 0 | H 3 ) else, 最后简化为

LSB图像信息隐藏实验

LSB图像信息隐藏实验

学号:姓名: 专业年级班级:message=fope n( 'Message.txt' ,'广);[msg,msg」en ]=fread(message, 'ubitl' ) %按位以二进制形式读取文本内容与长度[m, n]=size(image1) %读取行和列p=1; %卩为秘密信息的位计数器[row,col]=ra ndi nterval(image1,msg_le n,1996);for i=1:msg_le nimage1(row(i),col(i))=image1(row(i),col(i))-mod(image1(row(i),col(i)),2)+msg(p,1);if p==msg_le nbreak ;end ;p=p+1;end%还原图像Hide_image(:,:,1)=image1;Hide_image=ui nt8(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• flfl*** 1T«in Mti WHVI4>||| Xlvn tliM •Gx□鶯*~■CB+ X' 1 □百'rht phcid is ■$E,71e P M EC"■ft实验算法2 :读取LSB隐藏的信息1•读取已经隐藏信息的图像。

如果为RGB图像,则读取图像的一层(该层为嵌入信息的那层)。

2. 用与LSB算法中相同的随机数种子产生相同的一串随机数。

基于Matlab的LSB信息隐藏技术

基于Matlab的LSB信息隐藏技术

摘要随着科技的发展,信息安全技术已经成为不可忽略的因素。

而网络的普及及应用,让多媒体技术得到了广泛的发展,因此图像及视频的安全变得越来越重要。

本文正是在这种时代背景下,介绍一种关于图像处理的信息隐藏技术。

用于进行隐蔽通信的图像信息隐藏算法可以分为两大类:基于空域的信息隐藏算法和基于变换域的信息隐藏算法。

基于空域信息隐藏算法中的典型算法是LSB算法,该算法的主要特点是在载体图像中嵌入的隐藏信息数据量大,但是嵌入位置固定,安全性差,嵌入的隐藏信息易被破坏,鲁棒性不高;基于变换域信息隐藏算法中的典型算法是离散余弦变换域的信息隐藏算法,该算法嵌入信息能够抵御多种攻击,具有较好的鲁棒性,并且嵌入方式多种多样,增加了攻击者提取的难度,具有一定的安全性,但是该类算法嵌入的隐藏信息数据量较小,不适合于进行大数据量的隐蔽通信。

下面对LSB算法原理及LSB算法实现进行了介绍,最后使用MATLAB 对其隐藏过程进行了仿真。

[关键词]信息安全隐藏嵌入信息I目录一、设计要求 (3)二、设计的目的 (3)三、设计的具体实现 (3)3.1 信息隐藏及时空域信息隐藏概述 (3)3.2 LSB上的信息隐秘 (4)3.2.1 LSB上信息隐秘的原理 (4)3.2.2 LSB上的信息隐秘的过程 (5)3.3运用LSB实现秘密消息的隐藏 (6)3.4运用LSB实现秘密消息的差异对比 (9)3.5运用LSB实现秘密消息的提取 (12)3.6信息隐藏的拓展 (15)四、心得体会 (16)五、参考文献 (16)一、设计要求1.复习《信息安全技术导论》中有关LSB的相关知识。

2.对其算法进行详细研究与理论分析。

3.利用MATLAB编写程序并仿真结果。

4.设计报告中应包括具体设计原理、设计的详细说明书以及最终结果。

二、设计的目的1.了解并掌握LSB信息隐藏和提取的方法,具备初步的独立分析和设计能力;2.提高综合应用所学的理论知识和方法独立分析和解决问题的能力;3.训练用MATLAB软件编写程序并仿真。

本科毕业设计-基于lsb的信息隐藏技术的实现

本科毕业设计-基于lsb的信息隐藏技术的实现

引言信息隐藏将在未来网络中保护信息不受破坏方面起到重要作用,信息隐藏是把机密信息隐藏在大量信息中不让对手发觉的一种方法。

信息隐藏的方法有很多种,基于图象的信息隐藏检测技术是隐写分析技术的基础,对于保障网络信息安全和提高信息隐藏算法的安全性具有重要意义。

最低有效位算法LSB(Least significant bit)是一种简单而通用的信息隐藏方法,大部分的多媒体文件(如图像、音频和视频文件等)都可作为LSB算法中的载体。

本文讨论以图像为载体的LSB隐藏算法。

第一章绪论1.1 信息隐藏技术的来源随着互联网的迅速发展,网上提供服务越来越丰富,人们如今可以通过因特网发布自己的作品、重要信息和进行网络贸易等,但是随之而出现的问题也十分严重:如作品侵权更加容易,篡改也更加方便。

计算机和通信网技术的发展与普及,数字音像制品以及其他电子出版物的传播和交易变得越来越便捷,但随之而来的侵权盗版活动也呈日益猖獗之势。

因此如何既充分利用因特网的便利,又能有效地保护知识产权,已受到人们的高度重视。

信息隐藏技术作为网络安全技术的一个重要新兴课题,内容涉及数据隐藏、保密通信、密码学等相关学科领域,作为隐蔽通信和知识产权保护等的主要手段,正得到广泛的研究与应用。

为了打击犯罪,一方面要通过立法来加强对知识产权的保护,另一方面必须要有先进的技术手段来保障法律的实施。

信息隐藏技术以其特有的优势,引起了人们的好奇和关注。

人们首先想到的就是在数字产品中藏入版权信息和产品序列号,某件数字产品中的版权信息表示版权的所有者,它可以作为侵权诉讼中的证据,而为每件产品编配的唯一产品序列号可以用来识别购买者,从而为追查盗版者提供线索。

此外,保密通信、电子商务以及国家安全等方面的应用需求也推动了信息隐藏研究工作的开展。

中国自古就有这样的谚语,叫做“耳听是虚,眼见为实”,“百闻不如一见”,英语中也有“Seeing is believing”的说法。

这些都表明人们往往过分相信自己的眼睛,而这正是信息隐藏技术得以存在和发展的重要基础,在这一研究领域,大量事实告诉人们:眼见不一定为实!1.2信息隐藏技术的发展1.2.1历史上的隐写术现代信息隐藏技术是由古老的隐写术(Steganography)发展而来的,隐写术一词来源于希腊语,其对应的英文意思是“Covered writing”。

基于图像LSB的隐藏检测算法研究

基于图像LSB的隐藏检测算法研究
T 3 9 7 TP 0 . P 0. ; 316 中 图分 类 号
De e to g rt m s a c s d o ma e LS S e a O r p y t c in Alo ih Re e r h Ba e n I g B t g n g a h
S UN r g MA Bion Chu b no
( c o l fIf r t n a dCo S h o n o mai n mm u iain,Gul ie st fElc rn cTe h oo y,Gul 5 1 0 o o nc to in Unv riyo eto i c n lg i ii n 4 0 4)
总第 2 1 1 期
舰 船 电 子 工 程
S pElcr ncE gn e ig hi eto i n iern
Vo. 2 No 1 13 .
66
21 0 2年第 测 算 法研 究 S
孙碧容 马 春 波
桂林 5 10 ) 4 0 4 ( 桂林 电子科技大学信息与通信学 院 摘 要
e t ni r v dag r h b sd o h n sa mp o e lo i m a e n t e t QRSa dI ( nyR)ag r h ,cl dQRS o l .Smua inr s l f r e u e fma n RS o l lo i ms al t e ( nyR) i lt ut o l g mb r — o e s aa n oi
文章研究了 R ( g lrGru s n ig lr o p ) QR ( a rt tg nls ) I ( R) I rv dRSb l S Reua o p dSn ua u s、 S Qu dai RSSea ayi 和 RS 仅 a Gr c s (mp oe yOny

LSB算法实现BMP图像中的信息隐藏及提取

LSB算法实现BMP图像中的信息隐藏及提取

实验4 LSB算法实现位图图像中的信息隐藏及提取马亮,njnu一、实验目的通过对LSB算法的编程实现,深入理解该算法的设计思想及其应用。

二、实验类型程序设计。

三、实验原理LSB是L.F.Turner和R.G.van Schyndel等人提出的一种典型的空间域信息隐藏算法。

考虑人视觉上的厄不可见性缺陷,信息一般嵌入到图像最不重要的像素位上,如最低几位。

利用LSB算法可以在8色、16色、256色以及24位真彩色图像中隐藏信息。

对于256色图像,在不考虑压缩的情况下,每个字节存放一个像素点,那么一个像素点至少可以隐藏1位信息,一张640*480像素的256色图像至少可隐藏640*480=307200位(38400字节)的信息。

对于真彩色图像,同样可以按照如上的方法计算可以隐藏的信息量。

四、实验环境(1)系统环境:CPU:Inter® Core™2(2)开发环境:IDE:Microsoft Visual Studio 2005Language:Microsoft C#五、实验内容在上述系统环境和开发环境中编程实现LSB算法,包括信息的隐藏和提取。

六、程序说明(1)程序运行界面如下图所示:图1 信息隐藏界面图2 信息提取界面(2)程序功能说明➢自动计算最大隐藏信息量并给出提示➢可以在24位位图中隐藏大小不超过最大隐藏信息量的任意类型文件➢自动备份原始图片➢自动检测伪装图片中是否包含隐藏信息➢正确提取出LSB中的隐藏信息并还原出文件七、实现过程(1)LSBEncrypt类该类用于实现LSB的信息嵌入算法,类中各字段及方法说明如下:字段private string _originalPicPath 原始图片路径private string _hidingInfoPath 隐藏信息路径private FileStream _picStream 原始图片的文件流private FileStream _infoStream 隐藏信息的文件流方法➢private void HideInfoLength();输入:无输出:无功能:将图像的第55至第66字节的LSB替换为隐藏信息文件的长度➢private void HideInfoContent();输入:无输出:无功能:将隐藏信息以每3个字节写入原始图像从第67字节开始的每12字节块的LSB中➢private byte[] ConvertToBinaryArray(long x);输入:long x 要转换的长整型数,这个数的大小不会超过2的24次方输出:byte[] 二进制表示的字节数组功能:将长整型数转换为24位二进制表示的字节数组➢private byte[] ConvertToBinaryArray(byte[] array);输入:byte[] array 长度为3的字节数组输出:byte[] 二进制表示的字节数组功能:将隐藏信息以每3个字节写入原始图像从第67字节开始的每12字节块的LSB中➢public void ExecuteEncrypt();输入:无输出:无功能:执行信息隐藏操作(2)LSBDecrypt类该类用于实现LSB的信息提取算法,类中各字段及方法说明如下:字段private string _camouflagePicPath 伪装图片的路径private string _infoSavePath 还原出的隐藏信息的保存路径private FileStream _camouflageStream 伪装图片的文件流private FileStream _infoSaveStream 还原出的隐藏信息的文件流方法➢private int GetInfoLength();输入:无输出:int 隐藏信息长度功能:从伪装图片的第55至第66字节中提取出隐藏信息的长度➢private byte[] ExtractHidingBits(byte[] arr);输入:byte[] arr 长度为12的字节数组,含有隐藏信息输出:byte[] 从12字节块中提取出的3字节隐藏信息功能:利用位操作提取伪装文件流中每12字节的LSB位➢public bool ExecuteDecrypt();输入:无输出:bool 执行成功返回true,失败返回false功能:执行信息提取操作八、实验小结及思考(1)程序测试✧信息隐藏载体位图图像:图3 载体图像要隐藏的信息:图4 待隐藏的信息执行信息隐藏算法:图 5 隐藏信息成功信息隐藏选择伪装图片和还原出的隐藏信息的保存路径:图 6 信息提取还原出的文本文件test.txt:图7 还原出的文件(2)实验思考在信息隐藏的研究中,主要研究信息隐藏算法与隐蔽通信。

基于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图片信息隐藏隐藏实验

上海电力学院高级程序设计(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的图像信息隐藏技术研究
t up roiya n u ii n ya o tI a eI fr a in Hi i gTe h oo yba e n LS hes e irt ndi s f ce c b u m g n o m to d n c n lg s d o B.
Ke wo d I f r ai nHi ig y r s no t dn m o
文献标识码 A 文章编号 10 0— 6 0 138 59
了 L B的基本原理 , S 采用 M t b . a a7 l 0进行相关仿真实验 , 论述了基于 I B的图像信息 隐藏技术的优势与不足。 _ S
关键词
中图 分 类 号 T 3 1 P9. 4
Re e r h o ma e If r t n Hiig Te h oo y Ba e n L s a c n I g n o ma i d n c n lg s d o SB o
基 于 L 图像 信 息 隐藏 技 术 研 究 S B的
黄 海 波
( 山西 大 学 商务 学 院

杨 森
太原 00 3 ) 3 0 1
要 信息 隐藏技术是信息安全技术的一个分支 , 当前国际学术界的研究热点 。本文对信息隐藏进行 了简要地概述 , 是 详细介绍 信息隐藏 L B 数字水印 S

四、L B算 法 的基 本 原 理 S
对于一个 8 6 8共 4个像素点 的图像 ,每一个像素点的灰 x 信息 隐藏是对信息存在本身 以及信息存在位置加 以隐藏 , 度值 量 化 时 可 以取 值 为 0~ 5 , 果 转 换 为二 进 制 , 可 以用 8 25如 则 从而达到保密 的效果。 信息隐藏技术利用载体信息的冗余性 , 将 为的“ ” … ’ 0 、1二进制 串去表示 。这样 , 一个分辨率为 m xn的数 秘密信息隐藏于普通信息之 中,通过普通信息 的发布而将秘密 字 图像文件就 可以用 I X T I n×8的三维矩阵存储 。 从高到低可分

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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字图像隐写分析
基于LSB算法的图像信息隐藏与检测
学院名称计算机科学与技术学院
专业班级
学生姓名
学号
指导教师
2016.05.01
基于LSB算法的图像信息隐藏与检测
摘要:LSB替换隐写基本思想是用嵌入的秘密信息取代载体图像的最低比特位,原来的的7个高位平面与替代秘密信息的最低位平面组合成含隐藏信息的新图形。

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

关键词:LSB,信息隐藏,信息安全,BMP位图
Image information hiding and detection based on LSB
algorithm
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.
Key words: LSB, Information hiding,information security,bit map file
目录
第1章绪论 (5)
1.1 LSB算法原理 (5)
第2章 LSB隐写实现 (7)
2.1 LSB隐藏过程 (7)
2.2 LSB隐写实例效果 (8)
第3章 LSB信息提取 (10)
3.1 LSB信息提取过程 (10)
3.2 LSB信息提取实例效果 (10)
参考文献 (13)
第1章绪论
1.1 LSB算法原理
LSB是L.F.Turner和R.G.van Schyndel等人提出的一种典型的空间域信息隐藏算法。

考虑人视觉上的厄不可见性缺陷,信息一般嵌入到图像最不重要的像素位上,如最低几位。

利用LSB算法可以在8色、16色、256色以及24位真彩色图像中隐藏信息。

对于256色图像,在不考虑压缩的情况下,每个字节存放一个像素点,那么一个像素点至少可以隐藏1位信息,一张640*480像素的256色图像至少可隐藏640*480=307200位(38400字节)的信息。

对于真彩色图像,同样可以按照如上的方法计算可以隐藏的信息量。

由于LSB替换隐写出现最早,具有嵌入容量大、容易实现等优点,因此使用极为广泛。

下面通过matlab仿真证实上诉所提到的LSB替换隐写方法的优点。

实验过程:
1)读入UCID1.bmp图像。

图1-1 UCID1000库的第一幅图
2)提取出UCID1.bmp的8个位平面,如图1-2所示。

图1-2 (1)~(8)分别表示 UCID1.bmp的8个位平面
3)把80%的秘密信息比特流嵌入最低有效位(LSB),并比较原图像与嵌入秘密信息后的图像,如图1-3所示。

图1-3 原图像UCID1.bmp与嵌入信息的UCID1.bmp
从上面两幅图像来看,我们根本就看不出加密前与加密后的图像之间的差异。

虽然LSB替换隐写可以在嵌入量很大的情况下仍然保持良好的不可察觉性,但已有许多有效地通井机分析方法来判断图像中是否含有LSB替换隐写信息]9[。

在这里主要介绍卡方检测方法、RS方法,并单独对卡方检测方法进行matlab仿真。

第2章 LSB隐写实现
2.1 LSB隐藏过程
用秘密信息比特替换载体中的最不重要部分,可以达到对信息隐藏的目的。

在数字图像中,每个字节的最低位对图像信息的影响最小,因此将数字图像的最低位用信息比特替换可以实现信息隐藏。

由于载体图像的每个字节只隐藏一个秘密信息比特,所以只有当载体图像的大小是秘密信息大小的8倍以上时才能完整的将秘密信息隐藏。

图2-1 提取信息位并隐藏的示意图
2.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;
}
实现效果:
图2-2 原图图2-3 处理后的图片
第3章 LSB信息提取
3.1 LSB信息提取过程
在隐藏了秘密信息的数字图像中,每个字节的最低位就是秘密信息比特位,只需将这些信息比特提取出来并组合,就可以恢复出原来的秘密信息。

图3-1 提取信息示意图
3.2 LSB信息提取实例效果
直接使用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;
}
图3-2 处理后的图片
图3-2 提取后的图像
参考文献
[1] 林福宗.多媒体技术基础(第2版)课程设计与学习指导[M]. 北京:清华大学出版社,2006
[2] 姚敏.数字图像处理[M]. 北京:机械工业出版社,2006
[3] 容观澳.计算机图像处理. 北京:清华大学出版社,2000
[4] 周新伦.数字图像处理. 北京:国防工业出版社,2006
[5] 吴健康.数字图像处理. 北京:邮电大学出版社,1989
[6] 王积分.计算机图像识别. 北京:中国铁道出版社,1988
[7] 贾永红.计算机图像处理与分析. 武汉:武汉大学出版社,2001
[8] 陈桂明.应用MATLAB语言处理数信号与图像处理.北京:科学出版社,2000
[9] 徐建华.图像处理与分析. 上海:上海交通大学出版社,1990
[10] 王润生.图像理解. 北京:国防科技大学出版社,1995
[11] 姚敏.数字图像处理. 北京:机械工业出版社,2006。

相关文档
最新文档