ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:342.65KB ,
资源ID:5925994      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5925994.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于彩色位图的信息隐藏.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于彩色位图的信息隐藏.docx

1、基于彩色位图的信息隐藏目 录1引言 12信息隐藏技术综述121信息隐藏简介122信息隐藏算法的基本框架2221 基于变化域的信息隐藏嵌入算法 2222 基于变化域的信息隐藏检测算法222 信息隐藏的关键技术33. 彩色图像的BMP文件格式631 位图文件标头732 位图信息标头733 图像数据84基于彩色静止数字图像的信息隐藏算法941基于彩色静止数字图像的信息隐藏嵌入算法942基于彩色静止数字图像的信息隐藏提取算法943算法实现1044程序运行165信息隐藏技术的研究动态和发展现状181 引言随着以微电子技术为代表的信息产业的飞速发展,多媒体、计算机网络、个人移动通信技术等进入寻常百姓家,数

2、字化已深入人心,以Internet为先锋的网络化浪潮更是席卷全球。据统计,人们在日常生活中通过感觉器官收集到的各种信息中,最主要的是视觉信息。那么,在数字化生活中,数字图像就成为人们所感知的最主要的信息形式。数字图像可分为静止图像和动态图像两种,后者一般称为视频图像。视频图像的每一帧均可看作是一幅静止图像,但是这些静止图像之间并不是相互孤立的,而是存在时间轴上的相关性。静止图像是像素的集合,相邻像素点所对应的实际距离称为图像的空间分辨率。根据像素颜色信息的不同,数字图像可分为二值图像、灰度图像以及彩色图像。数字图像的最终感受者是人的眼睛,人眼感受到的两幅质量非常相同的数字图像的像素值可能存在很

3、大的差别。这样,依赖于人的视觉系统的不完善性,就为数字图像的失真压缩和信息隐藏提供了非常巨大的施展空间。信息隐藏与信息加密是不尽相同的,信息加密是隐藏信息的内容,而信息隐藏是隐藏信息的存在性,信息隐藏比信息加密更为安全,因为它不容易引起攻击者的注意。2信息隐藏技术综述21信息隐藏简介信息隐藏,也称作数据隐藏。简单来讲,信息隐藏是指将某一信号(一般称之为签字信号)嵌入另一信号(一般称之为主信号)的过程,掩护媒体经嵌入信息后变成一个伪装媒体。这一嵌入过程需要满足下列条件: 签字信号的不可感知性。换句话讲,签字信号嵌入后,主信号的感知特性没有明显的改变,签字信号被主信号隐藏了起来。 签字信号的鲁棒性

4、。签字信号对主信号的各种失真变换,如失真信号压缩、仿射变换、加噪、A/D或D/A转换等,以及各种恶意性攻击,都应体现出一定的鲁棒性。除非主信号的感知特性被明显的破坏,签字信号将很难被去除。 一般来讲,签字信号的嵌入不增加主信号的存储空间和传输带宽。也就是说,签字信号嵌入后,表面上很难觉察到信息的改变。 信息隐藏的发展历史可以一直追溯到匿形术的使用。匿形术一词来源于古希腊文中隐藏的和图形两个词语的组合。虽然匿形术与密码术都是致力于信息的保密技术,但是,两者的设计思想却完全不同。密码术主要通过设计加密技术,使保密信息不可读,但是对于非授权者来讲,虽然他无法获知保密信息的具体内容,却能意识到保密信息

5、的存在。而匿形术则致力于通过设计精妙的方法,使得非授权者根本无从得知保密信息的存在与否。相对于现代密码学来讲,信息隐藏的最大优势在于它并不限制对主信号的存取和访问,而是致力于签字信号的安全保密性。22信息隐藏算法的基本框架以下部分给出了基于正交变换的信息隐藏算法的基本框架,包括嵌入过程和检测过程两部分,分别如图2.1和图2.2所示。221 基于变化域的信息隐藏嵌入算法1. 对原始主信号作正交变换; 2. 对原始主信号作感知分析; 3. 在步骤(2)的基础上,基于事先给定的关键字,在变换域上将签字信号嵌入主信号,得到带有隐藏信息的主信号。 图2.1 信息隐藏算法的嵌入过程222 基于变化域的信息

6、隐藏检测算法1. 对原始主信号作感知分析; 2. 在步骤(1)的基础上,基于事先给定的关键字,在变换域上将原始主信号和可能带有隐藏信息的主信号作对比,判断是否存在签字信号。 图2.2 信息隐藏算法的检测过程22. 信息隐藏的关键技术 信息隐藏技术的关键在于如何处理签字信号的鲁棒性、不可感知性、以及所嵌入的数据量这三者之间的关系。判断信息隐藏算法优劣的一般衡量准则为: 1.对于主信号发生的部分失真,签字信号是否具备一定的鲁棒性。 2.对于有意或无意的窃取、干扰或去除操作,签字信号是否具备一定的“抵抗”能力,从而保证隐藏信息的安全可靠和完整性。 3.签字信号的嵌入是否严重降低了主信号的感知效果。

7、4.数据嵌入量的大小。 对于某一特定的信息隐藏算法来讲,它不可能在上述的衡量准则下同时达到最优。显然,数据的嵌入量越大,签字信号对原始主信号感知效果的影响也会越大;而签字信号的鲁棒性越好,其不可感知性也会就随之降低,反之亦然。由于信息隐藏的应用领域十分宽广,不同的应用背景对其技术要求也不尽相同。因此,有必要从不同的应用背景出发对信息隐藏技术进行分类,进而分别研究它们的技术需求。根据应用背景的不同,信息隐藏技术大致可分为三类:(1) 版权保护到目前为止,信息隐藏技术的绝大部分研究成果都是在这一应用领域中取得的。信息隐藏技术在应用于版权保护时,所嵌入的签字信号通常被称作数字水印(Digital W

8、atermark)。版权保护所需嵌入的数据量最小,但对签字信号的安全性和鲁棒性要求也最高,甚至是十分苛刻的。为明确起见,应用于版权保护的信息隐藏技术一般称作鲁棒型水印技术,而所嵌入的签字信号则相应的称作鲁棒型水印,从而与下文将要提到的脆弱型水印区别开来。而一般所提到的数字水印则多指鲁棒型水印。由于鲁棒型数字水印用于确认主信号的原作者或版权的合法拥有者,它必须保证对原始版权的准确无误的标识。因为数字水印时刻面临着用户或侵权者有意或恶意的破坏,因此,鲁棒型水印技术必须保证在主信号可能发生的各种失真变换下,以及各种恶意攻击下都具备很高的抵抗能力。与此同时,由于要求保证原始信号的感知效果尽可能不被破坏

9、,因此对鲁棒型水印的不可见性也有很高的要求。如何设计一套完美的数字水印算法,并伴随以制订相应的安全体系结构和标准,从而实现真正实用的版权保护方案,是信息隐藏技术最具挑战性也最具吸引力的一个课题。(2) 数据完整性鉴定数据完整性鉴定,又称作数据篡改验证(Tamper Proof),是指对某一信号的真伪或完整性的判别,并进一步需要指出该信号与原始真实信号的差别,即提供有关证据指明真实信号可能经历的篡改操作7。更形式化的讲,假定接收到一多媒体信号g(图像、音频或视频信号),初步判断它很可能是某一原始真实信号f的修改版本。数据篡改验证的任务就是在对原始信号f的具体内容不可知的情况下,以最大的可能判断是

10、否g=f。一般的数据篡改验证过程如图2.3所示。图2.3 数据篡改验证一般过程实用的数据篡改验证方法应致力满足以下要求: 以最大的可能指出是否有某种形式的篡改操作发生; 提供对篡改后信号失真程度的度量方法; 在无从得知原始真实信号的内容或其他与真实信号内容相关的信息的条件下,判断可能发生的篡改操作的具体类别,如判别是滤波、压缩,还是替代操作等;与此同时,应根据具体的应用背景,对经篡改后的信号给出相应的可信度; 无需维护和同步操作任何与原始信号相分离的其它附加数据,即可恢复重建原始真实信号。 脆弱型水印(Fragile Watermark)技术为数据篡改验证提供了一种新的解决途径。该水印技术在原

11、始真实信号中嵌入某种标记信息,通过鉴别这些标记信息的改动,达到对原始数据完整性检验的目的。因此,与鲁棒型水印不同的是,脆弱型水印应随着主信号的变动而做出相应的改变,即体现出脆弱性。但是,脆弱型水印的脆弱性并不是绝对的。对主信号的某些必要性操作,如修剪或压缩,脆弱型水印也应体现出一定的鲁棒性,从而将这些不影响主信号最终可信度的操作与那些蓄意破坏操作区分开来。另一方面,对脆弱型水印的不可见性和所嵌入数据量的要求与鲁棒型水印是近似的。(3) 扩充数据的嵌入扩充数据包括对主信号的描述或参考信息、控制信息以及其它媒体信号等等。描述信息可以是特征定位信息、标题或内容注释信息等,而控制信息的嵌入则可实现对主

12、信号的存取控制和监测。例如,一方面针对不同所有权级别的用户,可以分别授予不同的存取权限。另一方面,也可通过嵌入一类通常被称作时间印章的信息,以跟踪某一特定内容对象的创建、行为以及被修改的历史。这样,利用信息隐藏技术可实现对这一对象历史使用操作信息的记录,而无需在原信号上附加头文件或历史文件,因为使用附加文件,一来容易被改动或丢失,二来需要更多的传输带宽和存储空间。与此同时,在给定的主信号中还可嵌入其它完整而有意义的媒体信号,例如在给定视频序列中嵌入另一视频序列。因此,信息隐藏技术提供了这样一种非常有意义而且极具魅力的应用前景,它允许用户将多媒体信息剪裁成他们所需要的形式和内容8。例如,在某一频

13、道内收看电视,可以通过信息隐藏方法在所播放的同一个电视节目中嵌入更多的镜头以及多种语言跟踪,使用户能够按照个人的喜好和指定的语言方式播放。这在一定意义上实现了视频点播(Video on Demand,VOD)的功能,而其最大的优点在于它减少了一般VOD服务所需的传输带宽和存储空间。显然,相对于数字水印来讲,扩充数据的嵌入所需隐藏的数据量较大,大量数据的嵌入对签字信号的不可见性提出了挑战。另一方面,由于扩充数据本身的可利用价值,签字信号一般不会受到蓄意攻击的困扰。但是,对于主信号的尺度变换、剪切或对比度增强等操作,特别是失真编码,扩充数据嵌入技术也要具备一定的鲁棒性。基于上述讨论,信息隐藏技术不

14、同的应用背景及相应的技术需求归纳如表2.1所示。表2.1 信息隐藏技术的不同应用背景及相应的技术需求技术需求鲁棒型水印(版权保护)脆弱型水印(篡改验证)扩充数据的嵌入鲁棒性要求的强弱蓄意攻击强弱不要求非几何失真变换(滤波、压缩等)强较弱较强几何失真变换(仿射变换、剪切等)强较强较强无失真变换强强强所需嵌入的数据量较小较小大签字信号的不可见效果好好较好除基于不同的应用背景外,信息隐藏技术还有其它的一些分类方法。根据隐藏数据的嵌入方法不同,信息隐藏技术可分为以下两类:(1) 在变换域,如傅立叶变换(FFT)域、离散余弦变换(DCT)域、离散小波变换(DWT)域等上实现信息的嵌入。这类技术主要是通过

15、修改主信号某些指定的频域系数来嵌入数据。考虑到对低频区域系数的改动可能会影响到主信号的感知效果,而高频系数有易被破坏,因此,信息隐藏技术一般选取信号中频区域上的系数来嵌入签字信号,从而使之既满足不可感知性,又满足对诸如失真压缩等操作的鲁棒性。(2) 直接在空域上实现信息的嵌入。这类方法的优点是快捷,并且对于主信号的几何变换、压缩等操作具备一定的抵抗能力,但对于信号滤波、加噪等操作的鲁棒性较差。根据检测过程中是否需要无隐藏数据的原始主信号,信息隐藏技术可分为盲提取和非盲提取两类。由于信息隐藏技术中数据的嵌入与数据的检测或提取之间存在着天然的依赖关系,因此在设计嵌入算法时必须考虑到数据恢复的可能性

16、。显然,若数据检测时未嵌有签字信号的原始主信号可知,那么只要所设计的嵌入算法可逆,并同时依赖一定的信号检测技术,在理论上即可以保证检测算法的成功性。但若原始主信号未知,信息隐藏的检测或提取算法设计起来就会更加复杂,在利用信号检测技术的同时,还依赖于信号估计和预测技术,以及巧妙的算法设计策略。由于盲提取信息隐藏技术更具有实用价值,它也越来越受到更多的关注。3. 彩色图像的BMP文件格式BMP图像文件格式,是微软公司为其WINDOWS环境设置的标准图像格式,并且内含了一套图像处理的API函数。随着WINDOWS在世界范围内的普及, BMP文件格式越来越多地被各种应用软件所支持。BMP图像文件是位图

17、文件,位图表示的是将一幅图像分割成栅格,栅格的每一点称为像素,每一个像素具有自己的RGB值,即一幅图像是由一系列像素点构成的点阵。BMP图像文件的结构特点为: 每个文件只能非压缩地存放一幅彩色图像; 文件头由54个字节的数据段组成,其中包含有该位图文件的类型、大小、图像尺寸及打印格式等; 从第55个字节开始,是该文件的图像数据部分,数据的排列顺序以图像的左下角为起点,从左到右、从下到上,每连续3个字节便描述图像一个像素点的颜色信息,这三个字节分别代表蓝、绿、红三基色在此像素中的亮度,若某连续三个字节为:00H,00H,FFH,则表示该像素的颜色为纯红色。在信息隐藏中,载体信息的作用是很重要的。

18、数字图像的种类有很多,如GIF,BMP,JPEG等等,本文选取了24位的真彩色BMP位图作为信息的载体。因为24位BMP位图有其独特的特点: BMP图像信息本身存在很大的冗余性,从信息论的角度看,为压缩的图像信息的编码效率是很低的,所以将某些多媒体信息进行秘密传送是完全可行的,不会影响图像信息本身的传送和使用。 人眼或本身对某些信息都有一定的掩蔽效应。如人眼对灰度的分辨率只有几十个灰度级;对边沿附近的信息不敏感等。利用人的这些特点,可以很好地将信息隐藏而不被察觉。 24位的真彩色BMP位图,没有颜色板。有一个长为54字节的头文件,从55字节至文件结尾存储的都是图像的位图阵列,即图像数据,也即是

19、我们所要操作的数据。以下我们详细讨论位图文件的具体结构。31 位图文件标头标头包含位图文件的类型大小信息和版面信息。结构如下:typedef struct tagBITMAPFILEHEADER UINT bfType;DWORD bfSize;UINT bfReserved1;UINT bfReserved2;DWORD bfOffBits;BITMAPFILEHEADER; 下面是对这个清单中的代码元素的说明:bfType:指定文件类型,其值始终为BM。bfSize:指定整个文件的大小(以字节为单位)。bfReserved1:保留 - 一般为0。bfReserved2:保留 - 一般为0。

20、bfOffBits:指定从 BitmapFileHeader 到图像首部的字节偏移量。现在我们已经知道位图标头的用途就是标识位图文件。读取位图文件的每个程序都使用位图标头来进行文件验证。32 位图信息标头随后的标头称为信息标头,其中包含图像本身的属性。下面说明如何指定 Windows 3.0(或更高版本)设备独立位图 (DIB) 的大小和颜色格式:typedef struct tagBITMAPINFOHEADER DWORD biSize; /BITMAPINFOHEADER 结构所需的字节数LONG biWidth; /位图的宽度(以象素为单位)LONG biHeight; /位图的高度(

21、以象素为单位)WORD biPlanes; /目标设备的位面数。这个成员变量的值必须为1WORD biBitCount; /每个象素的位数。其值必须为1、4、8或24DWORD biCompression; /压缩位图的压缩类型。在24位格式中,该变量被设置为0DWORD biSizeImage; /图像字节大小。如果位图的格式是BI_RGB,则将此成员变量设置为0是有效的LONG biXPelsPerMeter; /为位图指定目标设备水平分辨率(以象素/米为单位)。程序可用该值从最符合当前设备特征的资源群组中选择一个位图LONG biYPelsPerMeter; /为位图指定目标设备的垂直分

22、辨率(以象素/米为单位)DWORD biClrUsed; /指定位图实际所用的颜色表中的颜色索引数。如果biBitCount设为24,则biClrUsed指定用来优化Windows调色板性能的参考颜色表DWORD biClrImportant; /指定对位图的显示有重要影响的颜色索引数。如果此值为0,则所有颜色都很重要 BITMAPINFOHEADER; 现在已定义了创建图像所需的全部信息。33 图像数据在24位格式中,图像中的每个象素都由存储为三字节的RGB序列表示。每个扫描行都被补足到4位。图像是自底而上存储的,即第一个扫描行是图像中的最后一个扫描行。下图显示了位图文件的标头(BITMAP

23、HEADER)和位图信息标头(BITMAPINFOHEADER)以及部分图像数据:图3.1位图文件局部示例4基于彩色静止数字图像的信息隐藏算法在分析了信息隐藏算法的基本框架和彩色图像的BMP文件格式后,本文提出一种基于彩色静止数字图像的信息隐藏算法,分别如图4.1和图4.2所示。41基于彩色静止数字图像的信息隐藏嵌入算法1. 将待隐藏信息(以下称签字信号)的字节长度写入BMP文件标头部分的保留字节中; 2. 将签字信号转化为二进制数据码流; 3. 将BMP文件图像数据部分的每个字节的高7位依次异或后再与上述二进制数码流异或后的结果写入最低位; 图4.1 基于彩色静止数字图像的信息隐藏嵌入过程4

24、2基于彩色静止数字图像的信息隐藏提取算法1. 读BMP文件标头部分的保留字节值,设为L,若为0则没有隐藏信息,终止算法;若不为0则其值为隐藏信息的字节长度; 2. 将BMP文件图像数据部分的每个字节8位依次异或,并保存其结果; 3. 重复第(2)步,使每8个BMP文件图像数据部分字节经过运算后组成一个隐藏信息字节; 4. 重复(2)、(3)直到隐藏信息字节长度为L。 图4.2 基于彩色静止数字图像的信息隐藏提取过程可以证明,提取后的信息就是嵌入的签字信号。以签字信号的一个位S为例,设对应的一个位图数据字节为X7X6X5X4X3X2X1X0,嵌入签字信号后的位图数据字节为X7X6X5X4X3X2

25、X1X0,其中: X0 = X7X6X5X4X3X2X1S设提取后的签字信号为S,则, S =X7X6X5X4X3X2X1X0 =(X7X6X5X4X3X2X1X7)(X6X5X4X3X2X1S) =(X7X6X5X4X3X2X1X7)(X6X5X4X3X2X1)S =S43算法实现(1)HideInfo.cpp/*1. BMP文件头 BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。其结构定义如下: */ typedef struct tagBitMapFileHeader byte bfType2; / 位图文件的类型,必须为BM byte bfSize4; / 位图

26、文件的大小,以字节为单位 byte bfReserved12; / 位图文件保留字,必须为0 byte bfReserved22; / 位图文件保留字,必须为0 byte bfOffBits4; / 位图数据的起始位置,以相对于位图文件头的偏移量表示,以字节为单位 *BitMap; /该结构占据14个字节。/*功能:返回图像的长度*/int getValue(byte*A,int num)int result = 0;for(int i = num-1;i0;i-)result+=Ai;result = result8;result+=A0;return result;/*功能:将信息隐藏到图

27、片中*/void hideInFo()FILE* fp;char dataMAX;char pathMAX;BitOperate operate;string path1 = 请输入图片路径(如:c:pics1.bmp);cout path1 endl;char temp3100;cin.getline(temp3, 100, n);cin.getline(path, sizeof(path), n);if(fp = fopen(path, r+)=NULL)cout打开文件的时候出现错误!bfSize,4);int databegin = getValue(map-bfOffBits,4);

28、if(datalength*8)(maplength-databegin)printf(隐藏信息太长!请选择一个更大的图片或者将信息分块隐藏n);return; /首先将文件的长度隐藏起来;byte temp32;fseek(fp,databegin,SEEK_SET);/定位到数据块的起点;fread(temp,sizeof(char)*32,1,fp);int copy = datalength;for(int i = 31;i=0;i-)bool v = (bool)(copy%2);tempi = operate.bitSet(tempi,1,v);copy = copy/2;fseek(fp,databegin,SEEK_SET); /定位到数据块的起点;fwrite(temp,sizeof(byte)*32,1,fp);/以下将数据信息隐藏到图像中;int times = 0;byte ch8;while(timesDATALENGTH)/加上隐藏的文件长

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1