LSB图片信息隐藏隐藏实验

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

显示的名字,Tag属性设置为pbt+String名的格式。将4个axec控件的Tag属性设置为如下图所显示的名字。

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

Callback代码。再添加代码之前要为该fig文件命名。我在本次实验命名为LSB3333.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(handles.axCover);

imshow(gCover);

[iH iW iL]=size(gCover);

sMsg=[sFile,'[',num2str(iH),'*',num2str(iW),'*',num2str(iL),']']; set(handles.text1,'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(handles.axSecret);

imshow(gSecret);

[iH iW iL]=size(gSecret);

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

set(handles.text2,'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, '~emTmp.bmp' );

axes(handles.axStego);

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, '~emTmp.bmp' );

axes(handles.axStego);

imshow(gStego,[]);

if isempty(gStego)

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

end

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

imwrite(imExtract, '~exTmp.bmp' );

axes(handles.axExtract);

imshow(imExtract);

msgbox('Extracted Image: ~exTmp.bmp' , '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 (handles.figLSB);

delete (LSB3333);

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

4.程序源代码

见附件。

三、实验结果

1.测试图片

①隐藏载体图:

Leno图片信息

②隐藏秘密图:

Boy图片信息

2.测试结果

①隐藏后的图片信息:

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

3.截屏

四.实验小结

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

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

解决方法:查看源代码,经过分析,代码没有错,但是没有实现退出该fig图形窗体而是仅仅退出了询问是否退出的box的小窗口。经过改正源代码后,可实现完全退出。更改后的代码如下【即将原来的delete(handles.figLSB)改为delete(LSB3333)】:q=questdlg('Are you sure to exit?','figLSB','Yes','No','No');

if strcmp(q,'No')

return;

end

delete ~*.*

%delete (handles.figLSB);

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.fig

% 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 LSB3333.M 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 v2.5 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})

gui_State.gui_Callback = 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

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

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

% uiwait(handles.figure1);

% --- 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} = handles.output;

% --- 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(handles.axCover);

imshow(gCover);

[iH iW iL]=size(gCover);

sMsg=[sFile,'[',num2str(iH),'*',num2str(iW),'*',num2str(iL),']']; set(handles.text1,'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(handles.axSecret);

imshow(gSecret);

[iH iW iL]=size(gSecret);

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

set(handles.text2,'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, '~emTmp.bmp' );

axes(handles.axStego);

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, '~emTmp.bmp' );

axes(handles.axStego);

imshow(gStego,[]);

if isempty(gStego)

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

end

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

imwrite(imExtract, '~exTmp.bmp' );

axes(handles.axExtract);

imshow(imExtract);

msgbox('Extracted Image: ~exTmp.bmp' , '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 (handles.figLSB);

delete (LSB3333);

教你将文件秘密隐藏在图片中

每个人都有自己的秘密,不过有些朋友却喜欢将秘密,以文件的形式放到电脑里,来供自己欣赏。虽然这些“秘密”放在电脑上大多都是加了密的,但是有些只能防止菜鸟破解,根本达不到真正隐藏的目的。于是笔者想了很久,终于研究出利用一张JPG的图片,就可隐藏文件秘密的方法。 一、图片“外壳”替你遮挡一切 记得以前大家想要隐藏哪个文件,只要右击其文件,选择“属性”选项,勾选上里面的“隐藏”复选框,就可很好的将其重要文件隐藏。可是现在随着人们电脑水平的逐步发展,有谁还不知道在“文件夹”选项里,勾选上“显示所有文件和文件夹”单选框,来查找隐藏文件(如图1)。 图1 因此我们需要使用其他方法来隐藏文件了,不如这里利用COPY命令来隐藏文件。可能这里大家会有疑问,COPY命令不是用来复制文件的命令吗,它怎么隐藏文件呢?具体操作请看下所示。 首先我们需要找一张JPG格式的图片,然后找到并且右击你想要隐藏的秘密文件,选择“添加到压缩文件”选项,将其压缩成一个RAR的压缩文件。接着单击“开始”按钮,选择“运行”选项,在弹出的“运行”对话框内,输入“CMD命令”回车,就可打开“CMD命令提示”窗口。而后在“光标”闪烁处,输入命令将默认路径跳转到,刚才秘密文件和被压缩秘密文件目录下。假如这里秘密文件名为wenpeng.JPG,被压缩秘密文件名为wenpeng.RAR,我们在其光标闪烁处,输入“COPY /B wenpeng.JPG+wenpeng.RAR 123.JPG”命令回车后,此时你会发现该目录下,会多出一个123.JPG文件,并且体积大小整好是秘密文件、被压秘密文件之和。其主要原因很简单,无非就是wenpeng.RAR压缩包文件隐藏到了wenpeng.JPG 内,并新生成了一个123.JPG文件。而你打开123.JPG文件,与打开wenpeng.JPG文件效果相同,如果你想要打开wenpeng.RAR压缩包文件,则需要将123.JPG文件扩展名,更改成压缩包文件RAR格式,然后解压其文件才可以看到其内容。

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

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

信息隐藏实验十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

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

工程实训任务书 图像文件中的信息隐藏 [任务目标] 用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); } }

信息隐藏实验十一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个函数:

把任意文件隐藏在一张图片里方法

把任意文件隐藏在一张图片里 伪装图片:教你如何把任意文件隐藏在一张图片里? 该技巧适合Windows 2000 / XP / Vista 最好有基本的命令行知识。不过也没关系,按照下面的步骤做就行了。 准备: 1.一张图片jpg 2.一个做试验的txt文件 3.WinRAR 步骤: 1:准备一张图片,比如winshome.jpg。准备目标文件,比如test.txt。我们要实现把test.txt隐藏在图片里面。 2:把要隐藏的文件test.txt 用WinRAR 压缩。生成test.rar 压缩包 3:打开命令行提示符:点击“开始→运行”,输入“cmd”。 4:我们假设中两个文件都存放在“ D:”下。输入命令:copy /b D:winshome.jpg + D:test.rar D:winshome.jpg 5:ok,试试打开生成的图片winshome.jpg,没错吧,的的确确是原来的图片。 6:怎样打开那个txt 文件?打开WinRAR ,点击“文件→打开(快捷键Ctrl + O )”,然后选择文件类型为“所有文件”,找到winshome.jpg ,选择打开看看,是不是有个txt 文件? 其他文件隐藏方法雷同,可灵活应用此法。 隐藏电脑文件的3种方法 1.系统文件式隐藏 一般右键-属性里设置的隐藏是普通式隐藏,只要到[工具]选项的[文件夹选项]里,然后选择[显示所有文件和文件夹]就会显示出来,而下面讲的方法是将文件夹变

成系统文件夹(windows默认隐藏),这样按上面的方法是显示不出来的。 选出你想隐藏的文件夹,比如是D盘目录下的名为123文件夹。 然后点左下角的[开始] - [运行] 打开cmd -确定 (或者[开始] - [程序] - [附件] -启动 [命令提示符]) 然后输入以下命令: attrib +s +a +h +r D:\123 然后回车.(上面包含5个空格,就是attrib空格+s空格+a空格+h空格+r空格D:\123) 如此D盘的123文件夹就会隐藏。就算选择了[显示所有文件和文件夹]也不会显示 只有在地址栏输入文件夹的路径名称才可以打开 这个方法只是将文件夹变成了windows系统文件,如果在[工具]选项的[文件夹选项]里,把[隐藏受保护的操作系统文件]的勾去掉后,刚隐藏的文件夹会伴随着系统文件一起显示出来....那么到第2种方法 2.改注册表 左下角[开始] - [运行] - 打开regedit -确定 见到目录式文件,找到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\E xplorer\Advanced\Folder\Hidden\SHOWALL 选定SHOWALL文件夹后右边会出现名为CheckedValue(在第一个),双击然后把[数值数据]改为0 确定 设置完成之后被隐藏的文件夹或文件就会无法设置显示, [工具]选项里会固定成[不显示隐藏文件和文件夹]。 虽然前面两种方法可以达到隐藏的目的,但鉴于windows搜索项里高级选项可以搜索隐藏文件,知道文件名称就可以搜索出来,因此在这里介绍第3种方法. 3.利用windows漏洞 按照上面的方法打开cmd或打开[命令提示符] 然后输入md D:\abcd..\ 然后回车(上面包含一个空格和两个点,就是md空格D:\abcd两点\) 然后D盘就会生成一个名为 abcd. 的文件夹

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

实验十LSB信息隐藏的卡方分析 一,实验目的: 了解什么是隐写分析,隐写分析与信息隐藏和数字水印的关系。掌握基于图像的LSB隐写的分析方法,设计并实现一种基于图像的LSB卡方隐写分析方法。 二,实验环境 1,Windows XP操作系统 2,Mat lab 软件 3,BMP格式图片文件 三,实验原理 隐写术和隐写分析技术是互相矛盾乂是相互促进的,隐写分析是指对可疑的载体信息进行攻击以达到检测、破坏,共至提取秘密信息的技术,它的主要目标是为了揭示媒体中隐蔽信息的存在性,其至只是指出媒体中存在秘密信息的可疑性。 图像LSB信息隐藏的方法是用嵌入的秘密信息取代载体图像的最低比特位,原来图像的7个高位平面与代表秘密信息的最低位平面组成含隐蔽信息的新图像。虽然LSB隐写在隐藏大量信息的情况下依然保持良好的视觉隐蔽性,但使用有效的统计分析工具可判断一幅载体图像中是否含有秘密信息。 目前对于图像LSB信息隐藏主要分析方法有卡方分析、信息量估算法、RS 分析法和GPC分析法等。卡方分析的步骤是:设图像中灰度值为j的象素

数为hj,其中0WJW255。如果载体图像未经隐写,h2i和h2i+l的值会相差很大。秘密信息在嵌入之前往往经过加密,可以看作是0、1随机分布的比特流,而且值为0与1的可能性都是1/2。如果秘密信息完全替代载体图像的最低位,那么h2i和h2i+l的值会比较接近,可以根据这个性质判断图像是否经过隐写。定量分析载体图像最低位完全嵌入秘密信息的情况:嵌入信息会改变直方图的分布,由差别很大变得近似相等,但是却不会改变 h2i+h2i+l的值,因为样值要么不改变,要么就在h2i和h2i+l 之间改变。令显然这个值在隐写前后是不会变的。 如果某个样值为2i,那么它对参数q的贡献为1/2:如果样值为2i+l , 对参数q的贡献为T/2。载体音频中共有2h2i*个样点的值为2i或2i+l, 若所有样点都包含1比特的秘密信息,那么每个样点为2i或2i+l的概率就是0.5。当2h2i*较大时,根据中心极限定理,下式成立:其中->N(0, 1)表示近似服从正态分布所以他厂心》 服从卡方分布。 上式中,k等于h2i和h2i+l所组成数字对的数量,h2i*为0的情况不计在内。r越小表示载体含有秘密信息的可能性越大。结合卡方分布的密度计算函数计算载体被隐写的可能性为: 如果P接近于1,则说明载体图像中含有秘密信息。 四,实验结果 1,原图像 2,直方图由于所有的数据画出的直方图过于密集,所以选取80:99这之间的像素值。

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

实验四二值图像信息隐藏 一、实验目的 了解二值图像的特点,掌握基于二值图像的信息隐藏原理,读懂两种基于二值图像的信息隐藏方法,并自己设计另一种二值信息隐藏的方法。 二,实验环境 (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行的黑白个数

信息隐藏 实验十 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 +-=

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

如何把任意下载文件隐藏在一张图片里

如何把任意文件隐藏在一张图片里-收藏 如何把任意文件隐藏在一张图片里? 该技巧适合 Windows 2000 / XP / Vista 准备: 1.一张图片 2.一个做试验的txt文件 3.WinRAR 步骤: 1:准备一张图片,比如 aaa.jpg。准备目标文件,比如bbb.txt。我们要实现把bbb.txt隐藏在图片里面。 2:把要隐藏的文件 bbb.txt 用 WinRAR 压缩。生成 bbb.rar 压缩包 3:打开命令行提示符:“开始→运行”,“cmd”。 4:我们假设中两个文件都存放在“ D:”下。输入命令:copy /b D:aaa.jpg + D:bbb.rar D:aaa.jpg 5:ok,试试打开生成的图片 aaa.jpg,没错吧,的确是原来的图片。 6:怎样打开那个 txt 文件?打开 WinRAR ,点击“文件→打开(快捷键Ctrl + O )”,然后选择文件类型为“所有文件”,找到 aaa.jpg ,选择打开看看? DOS的Copy命令可以将几个同类型的文件合并成一个文件,比如:多个.txt文件,其实通过它还能将一个文本文件合并到一个非文本文件中,实现隐藏秘密的效果。比如你在D盘根目录有一个重要的文本文件:001.txt,想对其进行隐藏。找一个MP3歌曲,体积最好不要太大(500KB左右为宜),比如:wanfei.mp3(假设也放在D盘根目录),输入:Copy wanfei.mp3/b + 001.txt/a wanfei-1.mp3,这样会生成一个新文件wanfei-1.mp3。用Winamp打开它,歌曲没有变化。 按住Shift键右击wanfei-1.mp3,选择“打开方式”并选择EmEditor之类的文本编辑器打开该文件,看到什么了?一堆乱码?但如果按下Ctrl+End组合键将光标移至文件的尾部,是不是001.txt文件中的内容? 小提示:其中参数/b指定以二进制格式复制、合并文件;参数/a指定以ASCII 格式复制、合并文件。这里要注意文件的顺序,二进制格式的文件应放在加号前,文本格式的文件放在加号后。有一点要提醒大家:就是这个文本文件的前面最好至少空3行,这样它头部的内容就不易丢失。 同样道理,你可以把文件藏进图片、WAV声音文件,甚至还能在Word、Excel等文档中藏进秘密,比如: Copy wanfei.jpg/b + 001.txt/a wanfei-1.jpg(把001.txt藏进wanfei-1.jpg 图片) Copy wanfei.doc/b + 001.txt/a wanfei-1.doc(把001.txt藏进wanfei-1.doc 文档) Copy wanfei.wav/b + 001.txt/a wanfei-1.wav(把001.txt藏进wanfei-1.wav 文件) Copy wanfei.exe/b+ 001.txt/a wanfei-1.exe(把001.txt藏进wanfei-1.exe 文件)

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

信息隐藏实验报告L S B 隐写分析 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】

《信息隐藏技术》实验报告 实验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/9 FN :0/9 误判原因分析,图像像素值较低 四、实验小结 (包括小组分工,组员各自的贡献点;通过实验得出的结论;对隐写分析加深的理解) 设计算法:邢征宇(卡方分析) 刘煜程(可视攻击) 结果分析:单志晗(FP ) 梁经纬(FN ) 总结: 提取最低有效提取最低有效

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

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

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

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,任

信息隐藏 实验五 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)%显示新图像 下图为原图与嵌入信息的图像:

怎么隐藏手机里面视频及图片

怎么隐藏手机里面视频及图片 分步阅读 很多男性朋友,手机里面存了很多”你懂的“视频及图片,非常有隐私性!但有时你的手机要被小朋友或女朋友抢去玩,一不小心被她们点出来!这时就太尴尬了,脸红脖子粗的。两个字来形容你当时的心情:丢人。访问限制及隐藏图片,这里就不提了!因为你不可能每次都点访问限制,万一女朋友要看照片,不小心把隐藏取消了呢!今天就教大家如何隐藏手机里面”你懂的“视频及图片!避免以上种情况的发生。(安卓手机通用)没看过此帖的,绝对找不到你的隐私文件。呵呵!女性朋友也有很多自拍照,不愿让别人看见。也可按此帖方法隐藏。 工具/原料 ES文件浏览器 方法/步骤 1. 1 1、下载好ES文件浏览器 2、打开es文件浏览器,点击菜单键(手机左下角三)-设置-显示设置-显示隐藏文件, 打勾。 3、返回到主界面,向左滑动,这时就会显示sd卡的文件,点击新建文件夹,文件名必须 为英文字母(前面加.),比如.cr。 4、把手机里面”你懂的“文件,剪切粘贴到上面新建的文件夹(.cr)里面。进入该文件 夹(.cr),再次新建一个文件夹,文件名为.nomedia(文件名前面有个小数点,必须为.nomedia)。 5、这里特别要注意,(.nomedia)必须建在子目录下。如果你建在根目录下,你的正常 的照片、音乐、视频全部都会隐藏,无法恢复。切记!最后再到设置里面,把“显示隐藏文件”后的勾取消,这样就大功告成了。 体验: 图库不能播放该文件,视频及文件管理器也找不到该文件夹(.cr)。自带的播放软件或者其它第三方软件一般是不会发现你的隐私文件的。 6、但是隐藏的那些视频啊图片啊,在夜深人静的时候还想看看怎么办?在ES文件管理器 的”设置“里,勾上”显示隐藏文件“的选项就好了。播放时最好选择es播放器,不然会在视频的历史里找到文件。

用任意文件伪装成图片

用任意文件伪装成图片,附Bat批处理文件 文件伪装的用处非常大,我们利用它既可以在视频文件里嵌入MP3文件,又可以在JPG 文件里嵌入txt、BT种子等文件,还可以多重加密伪装,不仅保护用户隐私,还能突破诸多网络限制上传下载文件,用户可以用所见即所得方式获取额外的信息,因此它在传播信息的时候非常有用。 首先请你亲自体验一下这张小鸭图片,点击图片右键另存到桌面上存为jpg格式的文件,注意浏览器可能保存为bmp格式。 打开桌面上的图片你会看到一个小鸭子的图片,然后我们把文件的后缀名改为.rar,系统会提示你文件可能失效,不理会直接保存,再打开看:

我们会看到两个文件,一个exe执行文件和txt文本,它们都可以解压出来运行,也就是说原图片隐藏了这两个文件,“说明.txt”是以上“彗星撞地球”的说明文件(一个大小为64K的时长近30分钟的3D视频文件)。 这里飓风软件园将告诉你如何实现这个将文件隐藏到另一个文件的效果及其原理。 众所周知,系统保存的文件都会有一个文件头,它与文件的后缀名一起告诉系统用什么程序关联并读取该文件数据,上面的小鸭图片本身非常小,15KB不到,剩下的数据内容都是隐藏的其他文件,但是系统在打开这个文件以后只会读取到JPG数据内容为止。 下面就来实践一下: 准备:1.一张图片a.jpg;2.一个文本文件b.jpg; 步骤: 准备一张图片,比如 a.jpg。准备目标文件,比如 b.txt ,我们要把 b.txt 隐藏在图片 a.jpg 里面。 把要隐藏的文件 b.txt 用 WinRAR 压缩生成 b.rar 压缩包。 打开命令行提示符,点击“开始→运行”(或者直接Win+R),输入“cmd”。 我们假设中两个文件都存放在“ D:”下。输入命令:copy /b D:a.jpg + D:b.rar D:a.jpg 生成的图片 a.jpg,但是体积有所增加,是图片文件和 rar 文件之和。 copy后面/b的含义为生成二进制格式的文件,注意,为生成图片文件头,图片a.jpg

信息隐藏技术及其应用

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

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

相关文档
最新文档