文档库 最新最全的文档下载
当前位置:文档库 › 信息隐藏-实验二-BMP-图像信息隐藏

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

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

信息隐藏-实验二-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');

fileb=fread(fid,4,'uint8');

filelength=fileb(1)*1+fileb(2)*256+fileb(3)*256*256+fileb(

4)*256^3;

%文件图像中保存的文件长度

diff=length-filelength;

%diff表示隐藏的信息长度如果相同,表示图像没有隐藏任何信息

fclose(fid);

从Workspace中可以读出diff数据为8

图五 Workspace

(5)在Ultra Edit中手动修改文件长度,再运行上述程序,发现diff=0,表示图像隐藏并修改文件长度后,通过该方法无法发现图像有隐藏信息。

2,文件头与图像数据之间隐藏信息

(1)在数据区开始之前隐藏信息,也就是在54个和55个字节之间隐藏信息。代码如下所示:

clc;

clear;

wm=randsrc(1,300,[0 1]);%产生随机水印

fid=fopen('baboon.bmp','r');%读入载体图像文件

[a,length]=fread(fid,inf,'uint8');

fclose(fid);

msgfid=fopen('hidden.txt','r');%打开秘密文件

[msg,count]=fread(msgfid);

fclose(msgfid);

wa=a; %a为图像变为uint8类型后的一维矩阵

j=1;

wa(11)=54+count;%修改偏移量,其中count为7

wa(3)=wa(3)+count;%修改图像数据的文件长度

for i=55:61 %隐藏7位信息

wa(i)=uint8(msg(j,1));%隐藏密码信息

j=j+1;

end

for i=55:length

wa(i+7)=a(i);

end

figure;

wa=uint8(wa);

fid=fopen('watermarked.bmp','wb');

fwrite(fid,wa);

fclose(fid);

subplot(1,2,1);imshow('baboon.bmp');%显示原始图像

subplot(1,2,2);imshow('watermarked.bmp')%显示新图像(2)从图像看,两幅没有什么区别

图六隐藏前后对比图

3,在图像文件头和信息头的保留字段中隐藏信息

BMP图像中第7,8,9,10字节是保留的,必须为0,所以可以在这四个字节中隐藏秘密信息。下面代码即隐藏了0,1,2,3这四个信息。

clc;

clear;

wm=randsrc(1,300,[0 1]);%产生随机水印

fid=fopen('baboon.bmp','r');%读入载体图像文件

[a,length]=fread(fid,inf,'uint8');

fclose(fid);

wa=a;

%在BMP的7,8,9,10保留字中隐藏秘密信息0 1 2 3,ASCII值为)Ox30 Ox31 Ox32 Ox33

wa(7)=48;

wa(7)=49;

wa(7)=50;

wa(7)=51;

figure;

wa=uint8(wa);

fid=fopen('watermarked.bmp','wb');

fwrite(fid,wa);

fclose(fid);

subplot(1,2,1);imshow('baboon.bmp');%显示原始图像

subplot(1,2,2);imshow('watermarked.bmp')%显示新图像

图七隐藏前后对比图

五,实验总结

通过该实验,我了解BMP图像文件格式,了解利用BMP图像文件隐藏信息的原理,并通过在实际的图像数据后隐藏信息,文件头与图像数据之间隐藏信息,以及在图像文件头和信息头的保留字段中隐藏信息这三种方式实现了信息隐藏。

信息隐藏实验十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算法的信息隐藏实验 单位:三系一队 姓名:马波 学号:3222008030

LSB信息隐藏实验 一、实验目的 1.掌握LSB算法原理 2.熟悉信息隐藏与提取的流程 3.锻炼算法的程序实现能力 二、实验原理 1.信息隐藏 用秘密信息比特替换载体中的最不重要部分,可以达到对信息隐藏的目的。在数字图像中,每个字节的最低位对图像信息的影响最 小,因此将数字图像的最低位用信息比特替换可以实现信息隐藏。由 于载体图像的每个字节只隐藏一个秘密信息比特,所以只有当载体图 像的大小是秘密信息大小的8倍以上时才能完整的将秘密信息隐藏。 提取信息位并隐藏的示意图: 2.信息提取

在隐藏了秘密信息的数字图像中,每个字节的最低位就是秘密信息比 特位,只需将这些信息比特提取出来并组合,就可以恢复出原来的秘 密信息。 提取信息示意图: 三、实验内容 A.将秘密信息隐藏在载体的最低位,检验算法的鲁棒性 (1)读入秘密信息(此实验中秘密信息为二值图像) (2)把秘密信息的比特位放入载体的最低位 (3)给隐藏了秘密信息的图像加入大小为1的噪声

加入噪声大小为1时: 加入噪声为2时:

B.将秘密信息隐藏在载体的最高位,检验算法的鲁棒性 (1)读入秘密信息(此实验中秘密信息为二值图像) (2)把秘密信息的比特位隐藏在载体的最高位 (3)分别给隐藏了秘密信息的图像加入大小为1和2的噪声

C.将秘密信息隐藏在载体的第三位,检验算法的鲁棒性 (1)同A中的(1) (2)把秘密信息比特位隐藏在载体的第三位 (3)分别给隐藏了秘密信息的图片加入大小为1、2和3的噪声

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)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行的黑白个数

基于同态公钥加密系统的图像可逆信息隐藏算法

软件学报ISSN 1000-9825, CODEN RUXUEW E-mail: jos@https://www.wendangku.net/doc/dd1000669.html, Journal of Software, 2016,27(6):a20 [doi: 10.13328/https://www.wendangku.net/doc/dd1000669.html,ki.jos.005007] https://www.wendangku.net/doc/dd1000669.html, ?中国科学院软件研究所版权所有. Tel: +86-10-62562563 基于同态公钥加密系统的图像可逆信息隐藏算法? 项世军, 罗欣荣 (暨南大学信息科学技术学院电子工程系,广州 510632) 通讯作者: 项世军, E-mail: Shijun_Xiang@https://www.wendangku.net/doc/dd1000669.html, 摘要: 同态加密技术在加密信息、对信息进行隐私保护的同时,还允许密文数据进行相应的算术运算(如云端可直接对同态加密后的企业经营数据进行统计分析),已成为云计算领域的一个研究热点.然而,由于云存在多种安全威胁,加密后信息的安全保护和完整性认证问题仍然突出.另外,信息在加密后丢失了很多特性,密文检索成为了云计算需要攻克的关键技术.为了实现对加密图像的有效管理及其安全保护,本文提出了一种基于同态加密系统的图像可逆信息隐藏算法.该算法首先在加密前根据密钥选择目标像素,并利用差分扩展DE(Difference Expansion)的方法将目标像素的各比特数据嵌入到其它像素中.然后,利用Paillier同态加密系统对图像进行加密得到密文图像.在加密域中,利用待嵌入信息组成伪像素,加密后替换目标像素,完成额外信息的嵌入.当拥有相应的密钥时,接收方可以分别在密文图像或明文图像中提取出已嵌入的信息.当图像解密后,通过提取出自嵌入目标像素的各比特数据来恢复原始图像.实验仿真结果表明,该算法能够在数据量保持不变的前提下完成同态加密域中额外信息的嵌入,信息嵌入快速高效,并可分别从加密域和明文域中提取出嵌入的信息. 关键词: 可逆信息隐藏;图像加密;同态加密系统;图像安全保护;云计算 中图法分类号: TP309 中文引用格式: 项世军,罗欣荣.基于同态公钥加密系统的图像可逆信息隐藏算法.软件学报, 2016,27(6):a20. http:// https://www.wendangku.net/doc/dd1000669.html,/1000-9825/5007.htm 英文引用格式: Xiang SJ, Luo XR.Reversible data hiding in encrypted image based on homomorphic public key cryptosystem. Ruan Jian Xue Bao/Journal of Software, 2016,27(6):a20 (in Chinese).https://www.wendangku.net/doc/dd1000669.html,/1000-9825/5007.htm Reversible Data Hiding in Encrypted Image based on Homomorphic Public Key Cryptosystem XIANG Shi-Jun, LOU Xin-Rong (Department of Electronic Engineering, School of Information Science and Technology, Jinan University, Guangzhou 510632, China) Abstract: Homomorphic encryption, which protects privacy effectively and allows algebraic operations directly in the ciphertext, has been a hot spot in the study of cloud computing. Due to security threats in cloud computing, the security protection and integrity authentication of encrypted data remain grave problems. Besides, the challenge lies in how to retrieve the encrypted data. To achieve more effective management and security protection of encrypted images on-line, this paper proposes a reversible data hiding scheme for ciphertext based on the public key cryptosystems with homomorphic and probabilistic properties. In the proposed scheme, partial pixels are selected as target pixels by a secret key and all bits of the target pixels are embedded into the other pixels with difference expansion (DE) to vacate room before encryption. As a bonus, secret data can be embedded directly in homomorphic encrypted domain by altering the target pixels with the fake pixels which are comprised of secret data. With the legal key, the receiver can extract the embedded data from the encrypted image and the directly decrypted image. Furthermore, he/she can recover the original image perfectly after decryption and data extraction. Finally, experimental results show that extra data can be embedded more efficiently in homomorphic encrypted domain while keeping the quantity of data unchanged. Besides, the embedded data can be extracted in both ciphertext and plaintext. Key words: reversible data hiding; image encryption; homomorphic cryptosystem; image security protection; cloud computing ?基金项目: 国家自然科学基金(61272414). Foundation item: National Natural Science Foundation of China (61272414) 收稿时间: 2015-08-15; 修改时间: 2015-10-09; 采用时间: 2015-12-05; jos在线出版时间: 2016-01-21 CNKI网络优先出版: 2016-01-22 11:20:08, https://www.wendangku.net/doc/dd1000669.html,/kcms/detail/11.2560.TP.20160122.1120.017.html

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

实验二图像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)

信息隐藏实验十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这之间的像素值。

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

计算机与信息学院 信息隐藏实验报告 专业班级 信息安全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,任

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

基于图像插值和参考矩阵的可逆信息隐藏算法

第37卷 第2期 2019年4月 广西师范大学学报(自然科学版)J o u r n a l o fG u a n g x iN o r m a lU n i v e r s i t y (N a t u r a l S c i e n c eE d i t i o n ) V o l .37 N o .2A p r .2019D O I :10.16088/j .i s s n .1001-6600.2019.02.011h t t p ://x u e b a o .g x n u .e d u .c n 收稿日期:2018-06-25基金项目:国家自然科学基金(61562007,61762017);广西自然科学基金(2017G X N S F A A 198222, 2015G X N S F D A 139040)通信联系人:俞春强(1988 ),男,江西上饶人,广西师范大学助理研究员三E -m a i l :y u _c h u n q i a n g @126.c o m 基于图像插值和参考矩阵的可逆信息隐藏算法 孙容海1,施林甫1,黄丽艳2,唐振军1,俞春强3*(1.广西师范大学广西多源信息挖掘与安全重点实验室,广西桂林541004;2.广西师范大学出版社集团,广西桂林541004;3.广西师范大学网络信息中心,广西桂林541004 )摘 要:本文提出一种基于插值技术和参考矩阵的可逆信息隐藏算法三该算法首先用一种改进的线性插值方法对载体图像进行插值,生成一幅插值图像;然后对插值图像进行不重叠分块,分块大小为2?2,在每个分块中以左上角的像素值作为平面坐标点的横坐标,其他像素值作为纵坐标构造3个坐标点并将其映射到参考矩阵中;最后根据秘密信息的十进制值和参考矩阵中相应坐标点的值来修改纵坐标以实现信息隐藏三在提取秘密信息时,通过信息隐藏时相同方法构造每个分块的3个坐标点并映射到参考矩阵中获取相应坐标点处的值完成秘密信息的提取三由于信息隐藏过程仅修改插值像素,原始像素保持不变,因此可无损还原载体图像三大量实验结果表明,该算法具有较大的信息隐藏容量和较好的视觉效果三关键词:图像插值;线性插值;可逆信息隐藏;参考矩阵 中图分类号:T P 391 文献标志码:A 文章编号:1001-6600(2019)02-0090-15 引用格式:孙容海,施林甫,黄丽艳,等.基于图像插值和参考矩阵的可逆信息隐藏算法[J ]. 广西师范大学学报(自然科学版),2019,37(2):90-104. S U N R o n g h a i ,S H I L i n f u ,HU A N GL i y a n ,e t a l .R e v e r s i b l e d a t a h i d i n g b a s e d o n i m a g e i n t e r p o l a t i o n a n d r e f e r e n c em a t r i x [J ].J o u r n a l o fG u a n g x iN o r m a lU n i v e r s i t y ( N a t u r a l S c i e n c eE d i t i o n ),2019,37(2):90-104.R e v e r s i b l eD a t aH i d i n g B a s e do n I m a g e I n t e r p o l a t i o n a n dR e f e r e n c eM a t r i x S U NR o n g h a i 1,S H IL i n f u 1,H U A N GL i y a n 2,T A N GZ h e n j u n 1,Y UC h u n q i a n g 3*(1.G u a n g x iK e y L a bo fM u l t i -s o u r c e I n f o r m a t i o n M i n i n g a n dS e c u r i t y ,G u a n g x iN o r m a lU n i v e r s i t y ,G u i l i n G u a n g x i 541004,C h i n a ;2.G u a n g x iN o r m a lU n i v e r s i t y P r e s s (G r o u p ),G u i l i nG u a n g x i 541004,C h i n a ;3.N e t w o r k I n f o r m a t i o nC e n t e r ,G u a n g x iN o r m a lU n i v e r s i t y ,G u i l i nG u a n g x i 541004,C h i n a )A b s t r a c t :Ar e v e r s i b l ed a t ah i d i n g a l g o r i t h m b a s e do ni n t e r p o l a t i o nt e c h n i q u ea n dr e f e r e n c e m a t r i xi s p r o p o s e d i n t h i s p a p e r .F i r s t l y ,t h e c o v e r i m a g e i s i n t e r p o l a t e d t o g e n e r a t e a n i n t e r p o l a t e d i m a g eu s i n g a n i m p r o v e dl i n e a r i n t e r p o l a t i o n m e t h o d .T h e n ,t h e i n t e r p o l a t e d i m a g e i sd i v i d e d i n t on o n -o v e r l a p p e d b l o c k sw i t h s i z e 2?2.A n d t h e p i x e l i n t o p -l e f t c o r n e r o f e a c hb l o c k i s t a k e n a s h o r i z o n t a l o r d i n a t e o f t h e p o i n t i n p l a n e .M o r e o v e r ,o t h e r p i x e l sa r et a k e na sv e r t i c a lo r d i n a t e st oc o n s t r u c tt h r e ec o o r d i n a t e p o i n t s ,w h i c h a r e m a p p e di n t o r e f e r e n c e m a t r i x .F i n a l l y ,t h e v e r t i c a l o r d i n a t e s a r e m o d i f i e d i n a c c o r d a n c ew i t ht h ed e c i m a lv a l u eo fs e c r e td a t aa n dt h ev a l u eo fc o r r e s p o n d i n g c o o r d i n a t e p o i n t s i n r e f e r e n c em a t r i x t o r e a l i z e d a t ah i d i n g .D u r i n g d a t a e x t r a c t i o n ,t h r e e c o o r d i n a t e p o i n t s o f e a c hb l o c ka r e c o n s t r u c t e dv i a t h e s a m em e t h o d i n d a t a h i d i n g a n dm a p p e d i n t o t h e r e f e r e n c em a t r i x t o o b t a i n t h e v a l u e s o f c o r r e s p o n d i n g c o o r d i n a t e p o i n t s t o a c h i e v e d a t a e x t r a c t i o n .S i n c e o n l y i n t e r p o l a t e d p i x e l s a r em o d i f i e d

二值图像信息隐藏-游程编码

注: 本代码来源于《信息隐藏于数字水印实验教程》,但是源程序在Matlab2012版本上面无法正确运行,因此本人进行简单的修改后可以顺利运行,但是提取的数据还是不对。。。 1.隐藏算法源代码RLEhiding.m文件 clc; clear all oi=imread('lena.bmp'); if(length(size(oi))==3) oi=rgb2gray(oi); end [row col]=size(oi); oi=oi(: ); oi=ToBin(oi); len=size(oi); i=1; j=1; t=1; whilei

count=1; while (i

msg=uint8(dec2bin(msg)-48); [htxt,ltxt]=size(msg); mmsg=zeros(htxt,8); if(ltxt<8) n=8-ltxt; mm=zeros(htxt,n); fori=1:htxt mmsg(i,: )=[mm(i,: ),msg(i,: )]; end end msg=mmsg'; msgcount=msgcount*8; % for l=1:msgcount %if msg(l)==0 %if((mod(RLE(l,2),2)~=0)&&(RLE(l+1,2)~=1)) %oi(RLE(l+1,1))=mod(oi(RLE(l+1,1))+1,2); %RLE(l+1,2)=RLE(l+1,2)-1; %end

相关文档
相关文档 最新文档