当前位置:文档之家› LSB图片信息隐藏隐藏实验精选文档

LSB图片信息隐藏隐藏实验精选文档

LSB图片信息隐藏隐藏实验精选文档
LSB图片信息隐藏隐藏实验精选文档

L S B图片信息隐藏隐藏

实验精选文档

TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-

上海电力学院

高级程序设计(C)

课程设计报告Array

院系:计算机科学与技术学院

专业年级:信息安全2012级

学生姓名:涂桂花学号:

指导教师:魏为民

2015年4月14日

目录

上 海 电 力

学 院

实 验 报 告

课程名称 实验项目 姓名 学号 班级 专业 同组人姓名 指导教师 魏为民 实验日期 一、实验目的

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 属性设置为如下图所显示的名字。

信息安全 LSB 信息隐藏实验

涂桂花 2012252 信息安全

3)分别右键点击5个push button控件,View Callbacks->CallBacks.给每

个控件添加Callback代码。再添加代码之前要为该fig文件命名。我在本

次实验命名为。各个控件的代码如下:

% --- Executes on button press in pbtCover.

function pbtCover_Callback(hObject, eventdata, handles)

% hObject handle to pbtCover (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global gCover;

[gCover,sFile]=loadimg();

if isempty(gCover)

msgbox('Cover image is empty!','Warning','warn','modal');

return;

end

axes;

imshow(gCover);

[iH iW iL]=size(gCover);

sMsg=[sFile,'[',num2str(iH),'*',num2str(iW),'*',num2str(iL),']'];

set,'String',sMsg);

% --- Executes on button press in pbtSecret.

function pbtSecret_Callback(hObject, eventdata, handles)

% hObject handle to pbtSecret (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global gSecret;

[gSecret ,sFile]=loadimg();

if isempty(gSecret)

msgbox('Secret image is empty!','Warning','warn','modal');

return;

end

axes;

imshow(gSecret);

[iH iW iL]=size(gSecret);

sMsg=[sFile,'[',num2str(iH),'*',num2str(iW),'*',num2str(iL),']'];

set,'String',sMsg);

set,'String','Secret Image');

% --- Executes on button press in pbtEmbed.

function pbtEmbed_Callback(hObject, eventdata, handles)

% hObject handle to pbtEmbed (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global gCover gSecret gStego;

if isempty(gCover)

msgbox('Cover image is empty!' , 'Warning' , 'warn' , 'modal' );

return;

end

if isempty(gSecret)

msgbox('gSecret image is empty!' , 'Warning' , 'warn' , 'modal' ); return;

end

[Hc,Wc,Lc]=size(gCover);

[Hs,Ws,Ls]=size(gSecret);

if (Hc~=Hs) || (Wc~=Ws) || (Lc~=Ls)

disp('Error: Not Match!' );

return;

end

gStego = uint8(bitor(bitand(gCover,254),bitshift(gSecret,-7))); imwrite(gStego, '~' );

axes;

imshow(gStego,[]);

% --- Executes on button press in pbtExtract.

function pbtExtract_Callback(hObject, eventdata, handles)

% hObject handle to pbtExtract (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global gStego;

global gCover gSecret;

if isempty(gCover)

msgbox('Cover image is empty!' , 'Warning' , 'warn' , 'modal' ); return;

end

if isempty(gSecret)

msgbox('gSecret image is empty!' , 'Warning' , 'warn' , 'modal' ); return;

end

[Hc,Wc,Lc]=size(gCover);

[Hs,Ws,Ls]=size(gSecret);

if (Hc~=Hs) || (Wc~=Ws) || (Lc~=Ls)

disp('Error: Not Match!' );

return;

end

gStego = uint8(bitor(bitand(gCover,254),bitshift(gSecret,-7))); imwrite(gStego, '~' );

axes;

imshow(gStego,[]);

if isempty(gStego)

msgbox('Stego image is empty!' , 'Warning' , 'warn' , 'modal' ); return;

end

imExtract = uint8(bitand(255,bitshift(gStego,7)));

imwrite(imExtract, '~' );

axes;

imshow(imExtract);

msgbox('Extracted Image: ~' , 'Finished' );

% --- Executes on button press in pbtExit.

function pbtExit_Callback(hObject, eventdata, handles)

% hObject handle to pbtExit (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

q=questdlg('Are you sure to exit'

,'figLSB','Yes','No','No');

if strcmp(q,'No')

return;

end

delete ~*.*

%delete ;

delete (LSB3333);

4)将测试图片或者图片文件夹放在LSB文件夹下。最后点击保存。

4.程序源代码

见附件。

三、实验结果

1.测试图片

①隐藏载体图:

Leno图片信息

②隐藏秘密图:

Boy图片信息

2.测试结果

①隐藏后的图片信息:

②从隐藏后的图中提取出来的秘密图片信息:

3.截屏

四.实验小结

1. 遇到的问题总结合分析:

(1)问题:点击退出按键后选择退出Yes,不能完全退出。

解决方法:查看源代码,经过分析,代码没有错,但是没有实现退出该fig图形窗体而是仅仅退出了询问是否退出的box的小窗口。经过改正源代码后,可实现完全退出。更改后的代码如下【即将原来的delete()改为delete(LSB3333)】:

q=questdlg('Are you sure to exit'

,'figLSB','Yes','No','No');

if strcmp(q,'No')

return;

end

delete ~*.*

%delete ;

delete (LSB3333);

(2)问题:老师提供的代码会出现如下图片的一些问题。

①没有选择Secret Message图片也能进行信息图片的隐藏和提取

②没有添加Cover图片也能进行信息的隐藏和提取

③没有添加Cover和Secret图片,不能进行信息隐藏,却能进行信息提取

解决方法:分析老师提供的源代码后,进行改进可解决上述出现的问题,即在没有选择Cover图片或者Secret图片的时候,都不能进行信息隐藏和提取。结果截图如下:

2. 未解决的问题

①问题描述:没有点击Cover控件和Secret控件选择Cover或者Secret 图片或者不选择,也能进行隐藏和提取。

分析:没有设计代码判断axec控件是否有图片内容。

②问题描述:对于不同格式或者不同大小或者灰白和彩色不同的图片不能进行信息图片的隐藏和提取。

分析:本实验代码只能对同种格式且大小相同的图片进行信息图片的隐藏和提取,对于不同格式大小相同或者格式相同大小不同的图片不能进行隐藏和提取。

3. 实验效果和分析

①LSB算法的抗攻击能力

本实验算法比较简单,抗攻击能力弱。

②随机选择嵌入位(安全性因素的考虑)

本实验算法不能随机选择隐藏信息图片的嵌入位,在本程序中设置的为程序默认值,不能提供安全性,可设计随机生成0-7的随机数对信息图形的不同位置随机进行嵌入。再增加隐藏和提取的用户口令则会使安全性更

好。

③嵌入位均匀分布于载体

每次对图像的一个字节的同一个位嵌入,都是同一个位置,这导致分布不均匀。若实现随机嵌入图像的不同字节时不同嵌入位可提高嵌入位的均匀分布于载体。

④信息提取的检错/纠错

本实验提取出来的图片和原本要隐藏的信息图片不一样。

4. 总结:

本实验比较简单,在理解了图形信息隐藏的实质和代码的意义后就能很快理解和掌握。不足的是不能将带算法优化已解决遇到的各种问题。将会在以后的学习当中注意知识的积累和灵活运行。

附件:

源代码:

function varargout = LSB3333(varargin)

% LSB3333 MATLAB code for

% LSB3333, by itself, creates a new LSB3333 or raises the existing

% singleton*.

%

% H = LSB3333 returns the handle to a new LSB3333 or the handle to

% the existing singleton*.

%

% LSB3333('CALLBACK',hObject,eventData,handles,...) calls the local

% function named CALLBACK in with the given input arguments.

%

% LSB3333('Property','Value',...) creates a new LSB3333 or raises the

% existing singleton*. Starting from the left, property value pairs are

% applied to the GUI before LSB3333_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application

% stop. All inputs are passed to LSB3333_OpeningFcn via varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help LSB3333

% Last Modified by GUIDE 14-Apr-2015 10:08:25

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @LSB3333_OpeningFcn, ...

'gui_OutputFcn', @LSB3333_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

= str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before LSB3333 is made visible.

function LSB3333_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to LSB3333 (see VARARGIN)

% Choose default command line output for LSB3333

= hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes LSB3333 wait for user response (see UIRESUME)

% uiwait;

% --- Outputs from this function are returned to the command line. function varargout = LSB3333_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = ;

% --- Executes on button press in pbtCover.

function pbtCover_Callback(hObject, eventdata, handles)

% hObject handle to pbtCover (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global gCover;

[gCover,sFile]=loadimg();

if isempty(gCover)

msgbox('Cover image is empty!','Warning','warn','modal');

return;

end

axes;

imshow(gCover);

[iH iW iL]=size(gCover);

sMsg=[sFile,'[',num2str(iH),'*',num2str(iW),'*',num2str(iL),']']; set,'String',sMsg);

% --- Executes on button press in pbtSecret.

function pbtSecret_Callback(hObject, eventdata, handles)

% hObject handle to pbtSecret (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global gSecret;

[gSecret ,sFile]=loadimg();

if isempty(gSecret)

msgbox('Secret image is empty!','Warning','warn','modal');

return;

end

imshow(gSecret);

[iH iW iL]=size(gSecret);

sMsg=[sFile,'[',num2str(iH),'*',num2str(iW),'*',num2str(iL),']']; set,'String',sMsg);

set,'String','Secret Image');

% --- Executes on button press in pbtEmbed.

function pbtEmbed_Callback(hObject, eventdata, handles)

% hObject handle to pbtEmbed (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global gCover gSecret gStego;

if isempty(gCover)

msgbox('Cover image is empty!' , 'Warning' , 'warn' , 'modal' ); return;

end

if isempty(gSecret)

msgbox('gSecret image is empty!' , 'Warning' , 'warn' , 'modal' ); return;

end

[Hc,Wc,Lc]=size(gCover);

[Hs,Ws,Ls]=size(gSecret);

if (Hc~=Hs) || (Wc~=Ws) || (Lc~=Ls)

disp('Error: Not Match!' );

return;

end

gStego = uint8(bitor(bitand(gCover,254),bitshift(gSecret,-7))); imwrite(gStego, '~' );

axes;

imshow(gStego,[]);

% --- Executes on button press in pbtExtract.

function pbtExtract_Callback(hObject, eventdata, handles)

% hObject handle to pbtExtract (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global gStego;

global gCover gSecret;

if isempty(gCover)

msgbox('Cover image is empty!' , 'Warning' , 'warn' , 'modal' ); return;

end

if isempty(gSecret)

msgbox('gSecret image is empty!' , 'Warning' , 'warn' , 'modal' ); return;

[Hc,Wc,Lc]=size(gCover);

[Hs,Ws,Ls]=size(gSecret);

if (Hc~=Hs) || (Wc~=Ws) || (Lc~=Ls)

disp('Error: Not Match!' );

return;

end

gStego = uint8(bitor(bitand(gCover,254),bitshift(gSecret,-7))); imwrite(gStego, '~' );

axes;

imshow(gStego,[]);

if isempty(gStego)

msgbox('Stego image is empty!' , 'Warning' , 'warn' , 'modal' ); return;

end

imExtract = uint8(bitand(255,bitshift(gStego,7)));

imwrite(imExtract, '~' );

axes;

imshow(imExtract);

msgbox('Extracted Image: ~' , 'Finished' );

% --- Executes on button press in pbtExit.

function pbtExit_Callback(hObject, eventdata, handles)

% hObject handle to pbtExit (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

q=questdlg('Are you sure to exit'

,'figLSB','Yes','No','No');

if strcmp(q,'No')

return;

end

delete ~*.*

%delete ;

delete (LSB3333);

信息隐藏实验十LSB信息隐藏的卡方分析教程文件

信息隐藏实验十L SB信息隐藏的卡方 分析

实验十 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 ,对参数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,则说明载体图像中含有秘密信息。 *22122**222(0,1) 2i i i i i i h h h h N h h *2 22*12()k i i i i h h r h 1121021 1 exp()21 2()2r k k t p t dt k

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

数字图像隐写分析 基于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)

LSB信息隐藏实验报告

C entr 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←ci for(i=1。i<=秘密消息长度。i++> //将选取的像素点的最不重要位依次替换成秘密信息 sji←cji←→mi 提取过程:for(i=1。i<=秘密消息长度。i++> { i←→ji//序选取 mi←LSB(cji>

最新图像信息隐藏技术与设计 大学毕业设计

1 前言 本章主要介绍信息隐藏技术的背景和研究意义、国内外信息隐藏技术研究现状,列举了本文的主要研究内容,最后给出了全文的结构安排。 1.1 信息隐藏技术的背景和研究意义 二十世纪九十年代以来,网络信息技术在全世界范围内得到了迅猛发展,它极大地方便了人们之间的通信和交流。借助于计算机网络所提供的强大的多媒体通信功能,人们可以方便、快速地将数字信息(数字音乐、图像、影视等方面的作品)传到世界各地,一份电子邮件可以在瞬息问传遍全球。但同时计算机网络也成为犯罪集团、非法组织和有恶意的个人利用的工具。从恶意传播计算机病毒,到非法入侵要害部门信息系统,窃取重要机密甚至使系统瘫痪;从计算机金融犯罪,到利用表面无害的多媒体资料传递隐蔽的有害信息等等,对计算机信息系统进行恶意攻击的手段可谓层出不穷。 因此,在全球联网的形势下,网络信息安全非常重要,一个国家信息系统的失控和崩溃将导致整个国家经济瘫痪,进而影响到国家安全。各国政府和信息产业部门都非常重视网络信息安全的研究和应用。密码技术是信息安全技术领域的主要传统技术之一,是基于香农信息论及其密码学理论的技术,一般采用将明文加密成密文的秘密密钥系统或者公开密钥系统,其保护方式都是控制文件的存取,即将文件加密成密文,使非法用户不能解读。但加密技术主要适用于文本的加密,而对音频、视频、图像等多媒体数据类型来说,由于它们的数据量往往很大,如何对超大数据量的多媒体数据进行有效的加、解密仍是一个难题。而且信息加密是利用随机性来对抗密码攻击的,密文的随机性同时也暴露了消息的重要性,即使密码的强度足以使攻击者无法破解出明文,但他仍有足够的手段来对其进行破坏,使得合法的接收者也无法阅读信息内容。随着计算机性能的大幅度提高,软硬件技术的迅速发展,加密算法的安全性受到了严重挑战。 由于加密技术的局限性,最近十几年以来,一种新的信息安全技术——信息隐藏技术(Information Hiding)迅速地发展起来。信息隐藏的渊源可以追溯到古希

信息隐藏 实验四 二值图像信息隐藏

实验四二值图像信息隐藏 一、实验目的 了解二值图像的特点,掌握基于二值图像的信息隐藏原理,读懂两种基于二值图像的信息隐藏方法,并自己设计另一种二值信息隐藏的方法。 二,实验环境 (1)Windows XP操作系统; (2)MATLAB 7.2版本软件; (3)二值图像文件。 三、实验原理 二值图像又称为单色图像或黑白图像,一般用1或0表示黑色或白色像素点,利用二值图像信息隐藏的方法主要是根据图像中黑白像素数量的比较来隐藏信息。 方法一:把一个二值图像分成一系列矩形图像区域B,某个图像区域B中黑色像素的个数大于一半,则表示嵌入0;如果白色像素的个数大于一半,则表示嵌入1。但是当需要嵌入的比特与所选区域的黑白像素的比例不一致时,为了达到希望的像素关系,则需要修改一些像素的颜色。 方法二:采用游程编码方法在二值图像中隐藏信息。秘密信息嵌入时修改二值图像的游程长度,如果秘密信息位是0,则修改该游程长度为偶数;如果为1,则修改游程长度为奇数;如果秘密信息的取值与游程长度的奇偶性相匹配,则不改变游程长度。 方法三:将二值图像分块,使用一个与图像块大小相同的密钥二值图像块,与每一个图像块按像素进行“与”运算,“与”运算的结果可以确定是否在该块中嵌入数据,或嵌入怎样的数据。 四,实验步骤 下面以方法三为原理,进行实验。 1.嵌入秘密信息 主要思想:首先将载体图像分块,块数为秘密信息的二进制码个数,分块大小为载体图像的长和宽分别除以块数;设定一个与图像块大小相同的密钥二值图

像块,具体为一个8×8的数组,其中前4行全为1,后4行全为0;将载体图像块与密钥二值图像块进行“与”运算。经过运算后,参与统计的像素变为前4行。接下来统计“有效”像素黑白的个数,某个图像区域B中黑色像素的个数大于“有效”像素一半,则表示嵌入0;如果白色像素的个数大于“有效”像素一半,则表示嵌入1。但是当需要嵌入的比特与所选区域的黑白像素的比例不一致时,为了达到希望的像素关系,则需要修改一些像素的颜色。 Matlab代码如下: msgfid=fopen('hidden.txt','r');%打开秘密文件 [msg,count]=fread(msgfid); fclose(msgfid); msg = str2bit(msg); msg = msg'; count=count*8; io=imread('hunter.bmp');%读入载体图像 watermarklen=count;%嵌入水印信息长度,也就是载体图像分块的数量值 [row col]=size(io); l1=floor(row/watermarklen);%载体图像分块后的长度 l2=floor(col/watermarklen);%载体图像分块后的宽度 pixelcount=l1*l2;%每个分块总像素的数量值 miyue=[ones(6,8);zeros(2,8)];%密钥二值图像块 percent=24; iw=io; in=io;%存放与运算后的图像信息 %将原图像块与密钥块进行与运算 m=1; while m<=watermarklen i=1; j=1; in(i:(i+l1-1),j:(j+l2-1))=io(i:(i+l1-1),j:(j+l2-1)) & miyue; i=i+8; j=j+8; m=m+1; end inblack(1,watermarklen)=0;%某一个分块中黑色像素的个数 inwhite(1,watermarklen)=0;%某一个分块中白色像素的个数 n=1; while n<=watermarklen for i=l1*(n-1)+1:(l1*n-2) %只计算有效前4行的黑白个数

图像文件中嵌入隐藏的文字信息

工程实训任务书 图像文件中的信息隐藏 [任务目标] 用C语言设计一个程序,实现在一个图像文件(.BMP)中嵌入隐藏的文字信息。通过另一个软件,可以将图像中隐藏的信息提取出来。要求嵌入信息后不影响图片的视觉效果。 [性能指标] 1、图片是标准的24位色BMP文件 2、通过键盘输入要嵌入到文字信息,并嵌入到图像文件中 3、编写一个提取程序,提取出隐藏的文字。 软件代码: #include #include #include #include void writef(unsigned char a[],unsigned char tu[],int tu_l); void readf(int n,unsigned char tu[],int tu_l); //向图片写入文字信息的函数入口 void writein(){ FILE* fp; char name[22]; long L; unsigned char* f; unsigned char file[202]; printf("请输入文件的路径:\n"); cin.getline(name,20);

if(!(fp=fopen(name,"rb"))){ printf("file can not be found."); exit(0); } else { fseek(fp,0,2);L=ftell(fp); //查询图片长度 f=(unsigned char*)malloc(L); rewind(fp); fread(f,L,1,fp); //读取出未添加文字的图片 fclose(fp); } printf("请输入隐藏的信息:"); cin.getline(file,200); writef(file,f,L); //开始隐藏文字 printf("文件保存完毕!\n路径为e:\\abc.bmp\n"); } void writef(unsigned char a[],unsigned char tu[],int tu_l){ FILE* fp; unsigned char t; int i,j,k; i=0; while(a[i]!='\0') i++; //获取输入的文字长度 printf("信息的长度为:%d\n",i); for(j=64;j<(64+i*8);j++) tu[j]=tu[j]&0xFE; //对图片存入文字的区域初始化,将每位颜色的二进制代码最后一位变为零 for(j=0;j>1; //逐位获取文字的二进制代码 } } if(!(fp=fopen("e:\\abc.bmp","wb"))){ printf("file can't be built.\n"); exit(0); }else{ fwrite(tu,tu_l,1,fp); //将处理后的文件保存 fclose(fp); } }

基于图像的信息隐藏检测技术

基于图像的信息隐藏检测技术 傅德胜,谢永华 (南京信息工程大学计算机与软件学院南京210044) 摘要:本文首先介绍了现有图像信息隐藏检测技术的分类,然后阐述了常用的基于图像的信息隐藏盲检测技术,并对它们的优缺点和应用领域进行了分析,最后对信息隐藏技术的发展和系统开发作了分析与展望。 关键词:信息隐藏;基于图像;盲检测 1 引言 现代信息隐藏技术自上个世纪九十年代中期出现以来,已经成为数字通信、信息安全和版权保护领域的重要研究课题,并得到了越来越广泛的应用。目前利用数字图像作为隐秘信息的载体已经成为主要的信息隐藏技术之一,其基本原理是利用人体感觉器官对数字图像的感觉冗余,将被隐藏的图像数据嵌入在某种载体图像中,嵌入后隐秘图像与原始的载体图像几乎没有任何视觉上的差别,很难被观察者和监视系统发现,从而可以保证机密信息传输的安全性。可以预见,信息隐藏技术将是今后相当一段时间内的重要的隐蔽通信方式[1] 。 但是信息隐藏技术的发展也带来了一定的负面效果,据美国媒体透露,已经发现恐怖组织利用隐藏在图像中的信息传递联络情报,甚至将计算机病毒隐藏在载体图像中进行传输,这些都对国家安全和社会稳定产生了很大的威胁。因此,研究对图像中可能存在的各种隐藏信息进行有效检测的方法已经迫在眉睫,因而基于图像的信息隐藏检测技术也就成为目前信息安全领域的重要研究课题。近几年来,世界各国的信息安全专家在这一方面进行了深入的研究,并提出了一定的隐藏信息检测模型,开发了相关的信息隐藏检测软件,如美国著名的信息安全产品开发公司Wetstone开发的信息隐藏检测软件Stego Suite[2] 。本文首先对目前常用的基于图像的信息隐藏技术进行了统计和分类,分析了它们的优缺点和适用领域,然后重点介绍了基于图像信息隐藏的盲检测算法,最后对隐藏技术的发展趋势和信息隐藏检测系统的开发进行了分析与展望。 2 基于图像的信息隐藏检测技术 图像信息隐藏检测技术主要用于判断图像中是否有隐藏信息的存在,它是信息隐藏分析技术的第一步,也是现阶段基于图像的隐藏信息分析的主要内容。 从检测技术的手段考虑,基于图像的信息隐藏检测技术大致可以分为: (1)对比检测技术 对比检测技术是对隐蔽图像载体和原始图像载体的属性如大小、分辨率、颜色值、灰度值、直方图或者变换域系数进行对比,从其中的差值或者关联信息中进行分析判断隐藏信息存在的可能性。这种方法实现比较简单,但是在大多数情况下,无法获取原始载体图像,因此没有太大的实际意义和应用价值。 (2)盲检测技术 盲检测技术指的是在没有原始载体图像的情况下,只通过隐蔽载体本身来检测隐藏信息。通常可以通过对图像特征进行分析和提取,判断是否存在隐藏信息。盲检测技术是当今信息隐藏检测领域最热门的研究领域,难度较大,但是具有更广泛的应用前景。 根据研究角度不同,基于图像的信息隐藏检测技术可以分为: (1)时空域方法

信息隐藏实验十一LSB信息隐藏的RS分析

LSB 信息隐藏的RS 分析 一, 实验目的: 了解RS 隐写分析的原理,掌握一种图像LSB 隐写算法的分析方法,设计并实现一种基于图像的LSB 隐写的RS 隐写分析算法。 二, 实验环境 (1)Windows 7操作系统; (2)MATLAB R2012b 版本软件; (3)图像文件lena.bmp ; (4)S-Tools 工具; 三, 实验原理 1. RS 隐写分析原理 RS 主要是针对采用伪随机LSB 嵌入算法进行攻击的一种方法。RS 方法不但能检测出图像是否隐藏信息,而且还能比较准确地估算出隐藏的信息长度。 RS 隐写分析算法考虑图像各个位平面之间具有一定的非线性相关性,当利用LSB 隐写算法隐藏秘密信息后,这种相关性就会破坏。只要能找出衡量这一相关性的方法,并对隐藏秘密信息前后的情况加以对比,就有可能设计出隐写分析方法。 RS 隐写分析方法的理论核心是:任何经过LSB 隐写的图像,其最低比特位分布满足随机性,即0、1的取值概率均为1/2,而未经过隐写的图像不存在此特性。对于一个M N ?像素的图片,设各个像素的值取自集合P ,例如一个8bit 的灰度图像,{0,1,2, ,255}P =。将这些像素分为有着n 个相邻像素的子集,例 如n 可以取值为4,记为1234(,,,)G x x x x =。进一步利用如下函数表示图像块的空间相关性,即 1 12311 (,,, ,)n n i i i f x x x x x x -+==-∑ (1) 函数f 使得每一个集合G 都对应一个实数。G 中的噪声越大,函数f 的值越大。f 的值越小,说明图像相邻像素之间的起伏越小,而图像块的空间相关性越强。然后,定义集合P 上的3个函数:

LSB图片信息隐藏隐藏实验

上海电力学院 高级程序设计(C) 课程设计报告 LSB信息隐藏实验 题目: 院系:计算机科学与技术学院 专业年级:信息安全2012级 学生姓名:涂桂花学号:20123333 指导教师:魏为民 2015年4月14日

目录 一、实验目的 (1) 二、实验内容和步骤 (1) 1. 操作环境 (1) 2. 系统配置 (1) 3. 操作步骤 (1) 4. 程序源代码 (5) 三、实验结果 (5) 1. 测试图片 (5) 2. 测试结果 (5) 3.截屏 (6) 四.实验小结 (6) 1. 遇到的问题总结合分析: (6) 2. 未解决的问题 (10) 3. 实验效果和分析 (10) 4. 总结: (10) 附件: (11)

上 海 电 力 学 院 实 验 报 告 课程名称 实验项目 姓名 学号 班级 专业 同组人姓名 指导教师 魏为民 实验日期 一、实验目的 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 ”属性设置为下图相应 信息安全 LSB 信息隐藏实验 涂桂花 20123333 2012252 信息安全 无 2015.4.14

合肥工业大学信息隐藏实验报告 完整代码版.

计算机与信息学院 信息隐藏实验报告 专业班级 信息安全13-1班 学生姓名及学号 马骏 2013211869 课程教学班号 任课教师 郑淑丽 实验指导教师 郑淑丽 实验地点 20 ~20 学年第学期

实验1 BMP位图信息隐藏 一、实验目的 学习BMP格式文件,并编程实现对位图文件信息隐藏 二、实验要求 将TXT文件嵌入BMP 文件中 三、问题描述 1、BMP位图文件的格式? 2、有哪几种方法隐藏信息,分别采用什么样的数据结构 3、随机选取如何避免“碰撞”的出现 四、算法思想 1、BMP位图文件格式 0000h~0001h 2字节-------------------------bm的ASC码 0002h~0005h 4字节-------------------------文件大小102718字节 0006h~0009h 4字节-------------------------全为0 000Ah~000Dh 4字节-------------------------偏移量118字节 000Eh~0011h 4字节-------------------------位图信息块大小40字节 0012h~0015h 4字节-------------------------宽450 0016h~0019h 4字节-------------------------高450 001Ah~001Bh 2字节-------------------------恒为01h 00h 001Ch~001Dh 2字节-------------------------颜色所占二进制位数值04h 00h=4 16色位图 001Eh~0021h 4字节-------------------------压缩方式=0无压缩 0022h~0025h 4字节-------------------------图像数据区大小102600字节 0026h~0029h 4字节-------------------------水平每米多少像素39个 002Ah~002Dh 4字节-------------------------垂直每米多少像素39个 002Eh~0031h 4字节-------------------------图像所用颜色数=0 0032h~0035h 4字节-------------------------重要颜色数=0 0036h~0076h 64字节-------------------------颜色表

LSB图像信息隐藏实验

学号:姓名:专业年级班级: 实验室:组别:实验日期:

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_len image1(row(i),col(i))=image1(row(i),col(i))-mod(image1(row(i),col(i)),2)+msg( p,1); if p==msg_len break ; 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,任

实验二图像DCT域信息隐藏实验

综合评分:实验二:图像DCT域信息隐藏实验 【实验目的】: 一、简单复习变换域信息隐藏的基本思想 二、用 MATLAB实现图像DCT相关操作 三、完成基于图像DCT的信息隐藏实验 【实验内容】:(请将你实验完成的项目涂“■”) 实验完成形式: ■用MA TLAB函数实现图像DCT域信息隐藏和提取 ■用MA TLAB命令行方式实现图像DCT域信息隐藏和提取 □其它:(请注明) 实验选择载体: ■256×256灰度图像■256×256RGB图像■任意大小的RGB图像 实验效果和分析: ■分析了健壮性参数α与鲁棒性的关系 ■能随机选择嵌入块(考虑安全性因素) ■嵌入块均匀分布于载体 □信息提取的检错/纠错 ■分析了健壮性参数α与不可见性的关系 □其它:(请注明) 【实验工具及平台】: ■Windows+Matlab■其它:(请注明)WinHex 【实验涉及到的相关算法】: 在一个图像块中调整两个(或多个) DCT系数的相对大小。将描述一个使用数字图像作为载体的系统。在编码处理中,发送者将载体图像分成8×8的像素块,每一块只精确地编码一个秘密信息位。嵌入过程开始时,首先伪随机地选择一个图像块bi,用它对第i个消息比

特进行编码。令Bi=D{bi}为DCT变换后的图像块。 在通信开始前,发送者和接收者必须对嵌入过程中使用的两个DCT系数的位置达成一致,让我们用(u1,v1)和(u2,v2)来表示这两个索引。这两个系数应该相应于余弦变换的中频,确保信息保存在信号的重要部位(从而使嵌入信息不容易因JPEG压缩而完全丢失)。进一步而言,人们普遍认为中频 DCT系数有相似的数量级,我们可以假定嵌入过程不会使载体产生严重降质。因为构造的系统要在抵抗JPEG压缩方面是健壮的。我们就选择在JPEG压缩算法中它们的量化值一样的那些DCT系数。根据表2.1,系数(4,1)和(3,2),或者(1,2)和(3,0)是比较好的。 编码方法:若块Bi (u1,v1) >Bi(u2,v2) 就编码为“1”,否则编码为“0”。 在编码阶段,如果相对大小与要编码的比特不匹配,就相互交换两个系数。由于JPEG 压缩(在量化阶段)能影响系数的相对大小,算法应通过在两个系数中加随机值,以确保对某个x>0,使得|Bi (u1,v1)-Bi(u2,v2) |>x。 DCT隐秘载体编码过程: for i =1,...,l (M) do 选取一隐蔽数据块bi Bi=D{bi} if m=0 then if Bi (u1,v1)>Bi (u2,v2)then 交换Bi (u1,v1)和Bi (u2,v2) end if else if Bi (u1,v1)

信息隐藏主要的分类和应用领域是什么

信息隐藏主要的分类和应用领域是什么?说明信息隐藏于数字水印的关系? 信息隐藏技术分为技术隐写术和语义隐写术 技术隐写术:是将秘密传递的信息记录下来,隐藏在特定的媒介中,然后再传送出去的一种技术。采用技术隐写术方法的实例有很多,比如,将信息隐藏在信使的鞋底或封装在蜡丸中,而隐写墨水、纸币中的水印和缩微图像技术也陆续出现在军事应用中。 语义隐写术则是将记录这个行为本身隐藏起来,信息由隐藏的“写”语言和语言形式所组成,一般依赖于信息编码。十六七世纪涌现了许多关于语义隐写术的著作,斯科特提出的扩展AveMaria码就是一种典型的语义隐写方法。语义隐写方法很多,如用音符替代字符在乐谱中隐藏信息,用咒语代表字隐藏信息,还有用点、线和角度在一个几何图形中隐藏信息等,而离合诗则是另一种广泛使用在书刊等文字中的隐藏信息方法。 信息隐藏主要的应用领域: 信息隐藏技术作为一种新兴的信息安全技术已经被许多应用领域所采用。信息隐藏技术的应用主要集中在两个方面:即隐秘通信和数字水印。 当信息隐藏技术应用于保密通信领域时,称为隐蔽通信或低截获概率通信,当应用于Internet秘密信息传输时,常被称为隐写术,当应用于版权保护时通常被称为数字水印技术。而隐秘通信是信息隐藏技术的一个完全不同的应用领域,也不同于信息加密,隐秘通信的目的不

是掩盖通信信息的可读性,而是掩盖通信信道本身的存在性。 1数字内容保护 1)证件防伪:数字水印技术可有效防止证件被伪造,如在照片上附加一个暗藏的数字水印。 2)商标保护:将保密特征加入产品包装的设计中。 3)安全文档:将水印特征加入重要文档中。 4)数据完整性验证:脆弱水印是指对某些处理稳健而对其他处理脆弱的水印。该技术可以用于验证数据是否被篡改。 2隐蔽通信:替音电话技术、匿名通信 3安全监测: 1)数字权限管理 2)媒体桥技术 3)打印控制 4)播放控制 5)电影分级和多语言电影系统 6)隐蔽通信监测 信息隐藏于数字水印的关系: 区别:信息隐藏技术侧重于隐藏容量,对隐藏容量要求较高,对鲁棒性要求不高,而数字水印则侧重于鲁棒性;信息隐藏技术主要应用于隐藏通信,而数字水印技术主要应用于版权保护和内容可靠性认证。联系:信息隐藏技术包括数字水印技术,数字水印技术要将水印嵌入到载体中,就需要用到信息隐藏的算法,把水印隐藏到载体中,两者

信息隐藏 实验五 Patchwork 图像信息隐藏

实验五 Patchwork 图像信息隐藏 一,实验目的 1,了解Patchwork信息隐藏特点, 2,掌握基于Patchwork 的图像信息隐藏原理 3,设计并实现一种 Patchwork 的信息隐藏方法 二,实验环境 1, Windows XP 操作系统 2, Matlab 7.1版本软件 3, BMP格式图片文件 三,实验原理 1,Patchwork是指从载体数据中选择一些数据组成两个集合,通过修改这两个集合之间的某种关系来携带水印信息。这两个集合可以是两个系数、两组系数或者是两个特征量。两个集合之间的关系可以是大小关系、能量关系、逻辑关系和奇偶关系等。Patchwork方法嵌入水印时,通过修改集合之间的某种关系来嵌入水印;提取水印时则根据对应的关系来提取嵌入的水印信息。2,在本实验报告中,验证了通过随机方式把像素分组的方法。随机选择N对像素点(ai和bi),然后将ai点的值增加d,将bi点的像素值减少d。 3,同时,设计了自己的算法。先把图像的像素写成一维矩阵,根据矩阵下标4*n形式和4*n-1形式分为两组,将下标为4*n形式所对应的像素增加常量d=2.3,将下标为4*n-1形式所对应的像素减少常量d=2.3。 四,实验内容 1, 验证通过随机方式把像素分组的方法。 (1)嵌入秘密信息 clc; clear all; oi=imread('baboon.bmp');%读入载体图像 ni=rgb2gray(oi); wi=ni; [row col]=size(wi);

wi=double(wi); wi=wi(:); n=floor((row*col)/10); length=row*col; rand('state',123);%产生随机数的密钥 a=rand(1,n);%产生N长度的随机数 d=2.3;%定义修改的分量 count=0; k=1; while k<=n if (a(1,k)>=0.5) wi(k*10,1)=wi(k*10,1)+d; wi(k*10-1,1)=wi(k*10-1,1)-d; end k=k+1; end for i=1:row for j=1:col wil(i,j)=wi(row*(j-1)+i,1); end end wil=uint8(wil); imwrite(wil,'watermarked.bmp'); subplot(1,2,1);imshow(ni);%显示原始图像subplot(1,2,2);imshow(wil)%显示新图像 下图为原图与嵌入信息的图像:

信息隐藏 实验十 LSB信息隐藏的卡方分析

实验十 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 +-=

信息隐藏技术及其应用

qwertyuiopasdfghjklzxcvbnmqw ertyuiopasdfghjklzxcvbnmqwer tyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyui opasdfghjklzxcvbnmqwertyuiop 信息隐藏技术及其应用asdfghjklzxcvbnmqwertyuiopas dfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfgh jklzxcvbnmqwertyuiopasdfghjkl zxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcv bnmqwertyuiopasdfghjklzxcvbn mqwertyuiopasdfghjklzxcvbnm qwertyuiopasdfghjklzxcvbnmqw ertyuiopasdfghjklzxcvbnmqwer tyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmrtyuiopas

信息隐藏技术及其应用 摘要随着网络与信息技术的高速发展,信息安全越来越受到人们关注,信息隐藏技术应运而生。本文介绍了信息隐藏技术的背景、概念与特征,总结了较为成熟与常见的信息隐藏方法,描述了信息隐藏技术的主要应用领域,分析了信息隐藏技术目前存在的问题,并对其未来发展进行了展望。 关键词信息隐藏;信息安全;隐秘通信;数字水印;应用; 一、信息隐藏技术的背景 信息隐藏的思想可以追溯到古代的隐写术。隐写术是通过某种方式将隐秘信息隐藏在其他信息中,从而保证隐秘信息的安全性。隐写术的应用实例可以追溯到很久远的年代。被人们誉为历史学之父的古希腊历史学家希罗多德曾在其著作中讲述了这样一则故事:一个名为Histaieus的人计划与他人合伙叛乱,里应外合,以便推翻波斯人的统治。为了传递信息,他给一位忠诚的奴隶剃光头发并把消息刺在头皮上,等到头发长起来后,派奴隶出去送“信”,最终叛乱成功。隐写术在历史上有过广泛的应用,例如战争、谍报等方面。 进入现代以来,随着网络的高速发展,越来越多的信息在网络上进行传递,人们通过邮件、文件和网页等进行交流,传递信息。然而在信息传递的快捷与高效的同时,信息的安全性也越来越受到考验。例如网络上的病毒、木马、泄密软件等,还有非法组织以某种目的窃取信息等,都对信息的安全造成了严重的威胁。特别是对于政治、军事和商业等领域,敌对势力之间互相的监控、窃密等都普遍存在,信息传递的安全性至关重要。传统的密码学虽然可以在一定程度上保证信息的安全,但它仅仅隐藏了信息的内容。为隐藏信息所生成的密文通常是杂乱无章的代码或者逻辑混乱的语言,反而更会引起追踪人员和破译人员的注意,增加暴露风险。这成为密码的致命弱点。 另一方面,随着数字技术的迅猛发展和互联网越来越广泛的应用,数字媒体的应用越来越多,基于数字媒体的商业得到了迅速发展,而通过扫描仪等也可以方便的将纸质材料转换为数字材料。与此同时,数字媒体的复制、传播也越来越方便,这为盗版提供了极大的便利,例如网上盗版软件、盗版电子版图书等随处可见,严重破坏了知识产权。因此如何保护数字媒体的知识产权,防止知识产品被非法地复制传播,保证信息的安全,也成为了越来越紧迫的问题。 正是由于上述问题的存在,信息隐藏技术应运而生。 二、信息隐藏技术的原理与特点

信息隐藏 实验二 BMP 图像信息隐藏

实验二 BMP 图像信息隐藏 一,实验目的 1,了解BMP图像文件格式 2,了解利用BMP图像文件隐藏信息的原理 3,设计并实现一种基于24位真彩色BMP图像的文件信息隐藏方法。 二,实验环境 1, Windows XP 操作系统 2, Ultra Edit 文本编辑工具 3, Matlab 7.1版本软件 4, BMP格式图片文件 三,实验原理 1,在图像文件尾部添加任意长度的数据,秘密信息存放在文件尾部可以减少修改文件头的数据量,仅需修改文件头中的文件长度的值即可。 2,在调色板或者位图信息头和实际的图像数据之间隐藏数据,如果将秘密数据放在文件头与图像数据之间,则至少需要修改文件头中文件长度、数据起始偏移地址这两个域的值。 3,修改文件头和信息头中保留字段隐藏信息。 4,在图像像素区利用图像宽度字节必须是4的倍数额特点,在补足位处隐藏数据。 四,实验过程 1,在实际的图像数据后隐藏信息 (1)将载体baboon.bmp和秘密信息hidden.txt放置在同一目录下,在Windows 的MS-DOS方式下执行命令copy baboon.bmp /b + hidden.txt /a baboon1.bmp,如下图所示: 图一 DOS界面

(2)生成的新图像baboon1.bmp,表面上看上去与原图像几乎完全一样 图二隐藏前后对比图 (3)在Ultra Edit看两幅图像的结构,发现有所差别。 图三 baboon.bmp 图四 baboon1.bmp (4)在Matlab中通过比较文件的实际长度和文件中保存的文件长度,就可以发现该图像是否隐藏秘密信息。代码如下所示: clc; clear; fid=fopen('baboon1.bmp','r');%读入伪装载体图像文件 [a,length]=fread(fid,inf,'uint8');%length是文件的实际长度 fclose(fid); fid=fopen('baboon1.bmp','r');%读入伪装载体图像文件 status=fseek(fid,2,'bof');

LSB图片信息隐藏隐藏实验精选文档

L S B图片信息隐藏隐藏 实验精选文档 TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-

上海电力学院 高级程序设计(C) 课程设计报告Array 题 院系:计算机科学与技术学院 专业年级:信息安全2012级 学生姓名:涂桂花学号: 指导教师:魏为民 2015年4月14日

目录

上 海 电 力 学 院 实 验 报 告 课程名称 实验项目 姓名 学号 班级 专业 同组人姓名 指导教师 魏为民 实验日期 一、实验目的 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 属性设置为如下图所显示的名字。 信息安全 LSB 信息隐藏实验 涂桂花 2012252 信息安全 无

3)分别右键点击5个push button控件,View Callbacks->CallBacks.给每 个控件添加Callback代码。再添加代码之前要为该fig文件命名。我在本 次实验命名为。各个控件的代码如下: % --- Executes on button press in pbtCover. function pbtCover_Callback(hObject, eventdata, handles) % hObject handle to pbtCover (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global gCover; [gCover,sFile]=loadimg(); if isempty(gCover) msgbox('Cover image is empty!','Warning','warn','modal'); return; end axes; imshow(gCover); [iH iW iL]=size(gCover); sMsg=[sFile,'[',num2str(iH),'*',num2str(iW),'*',num2str(iL),']']; set,'String',sMsg); % --- Executes on button press in pbtSecret. function pbtSecret_Callback(hObject, eventdata, handles) % hObject handle to pbtSecret (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global gSecret; [gSecret ,sFile]=loadimg(); if isempty(gSecret) msgbox('Secret image is empty!','Warning','warn','modal'); return; end axes; imshow(gSecret); [iH iW iL]=size(gSecret); sMsg=[sFile,'[',num2str(iH),'*',num2str(iW),'*',num2str(iL),']']; set,'String',sMsg); set,'String','Secret Image'); % --- Executes on button press in pbtEmbed. function pbtEmbed_Callback(hObject, eventdata, handles) % hObject handle to pbtEmbed (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global gCover gSecret gStego; if isempty(gCover) msgbox('Cover image is empty!' , 'Warning' , 'warn' , 'modal' );

相关主题
文本预览
相关文档 最新文档