基于静止图像的信息隐藏算法设计和实现

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

基于静止图像的信息隐藏算法设计和实现
赵伯涛;许波
【摘要】基于Qt库设计并实现了一个基于静止图像的信息隐藏算法及对应的提取算法。

算法以基于空域隐藏算法的最低有效位替换算法为核心思想,为需要隐藏的信息设计了一个特有的格式,以该格式输出的信息作为被隐藏的信息的主体,嵌入到载体图像中,实现了信息隐藏的目的;同时根据信息隐藏的过程,实现了一个信息提取的算法,从而将隐藏信息提取出来。

实验结果表明,该算法达到了将文本和文件隐藏到静止图像中的目的。

%Its major work is to design and implement an information hiding and extracting algorithm based on static
images .The algorithm takes a least significant bits replacement algorithm in Spatial Domain as its core concept .It designs a particular format for the hiding infor-mation ,and the hiding information uses the formatted information as a media of output .By embedding the output into a carrier image ,it fi-nally realizes the ideal of information hiding .According to the hiding procedure ,it also implements an information extracting algorithm which can restore the hiding information .The experimental result reveals that this algorithm achieves the goal of hiding text and files into static images .
【期刊名称】《广东石油化工学院学报》
【年(卷),期】2014(000)001
【总页数】4页(P26-29)
【关键词】信息;隐藏;检测;最低有效位替换算法
【作者】赵伯涛;许波
【作者单位】广东石油化工学院计算机科学与技术系,广东茂名525000;广东石油化工学院计算机科学与技术系,广东茂名525000
【正文语种】中文
【中图分类】TP393
信息隐藏技术作为一门新兴技术,在网络中保护信息不受破坏方面起到重要作用[1]。

信息隐藏技术有别于密码技术,它是把机密信息隐藏在大量信息中不让对手发觉的一种方法。

信息隐藏技术是保障信息安全、维护信息所有者利益的重要手段之一,在其研究和应用方面都有着非常重要的理论意义与实际意义[2]。

信息隐藏(Information Hiding)是把一个有意义的秘密信息如软件序列号、秘文或版权信息通过某种嵌入算法隐藏到载体信息(Hover Message)中,从而得到隐秘载体(Stego Cover)的过程[3]。

信息隐藏技术通常使用文字、图像、声音和视频等各种多媒体数据作为载体,需要受保护的信息之所以能够隐藏在这些多媒体数据中,主要是由于多媒体信息在时间上或者空间上存在很大的冗余性,以及人的感官系统对于这些多媒体信息有一定的掩蔽效应,难以感知这些多媒体信息中存在隐藏的信息[4]。

信息隐藏技术在政府、军事情报部门、银行系统、商业系统等诸多领域发挥着重要作用,广泛应用于数字作品的版权保护、验证资料的完整性、通信保密、商务活动中的票据防伪等方面[5]。

1 基于图像的信息隐藏技术
用于进行隐蔽通信的图像信息隐藏算法可以分为两大类[6-7]:(1)基于空域
(Spatial Domain)的信息隐藏算法。

基于空域信息隐藏算法中的典型算法是LSB
算法,该算法的主要特点是在载体图像中嵌入的隐藏信息数据量大,但是嵌入位置固定,安全性差,嵌入的隐藏信息易被破坏,鲁棒性不高。

(2)基于变换域(Trans
of Formation Domain)的信息隐藏算法。

基于变换域信息隐藏算法中的典型算法是离散余弦变换域的信息隐藏算法,该算法嵌入信息能够抵御多种攻击,具有较好的鲁棒性,并且嵌入方式多种多样,增加了攻击者提取的难度,具有一定的安全性,但是该类算法嵌入的隐藏信息数据量较小,不适用于进行大数据量的隐蔽通信[8]。

2 基于静止图像的信息隐藏算法设计
2.1 算法设计思想
算法采用的是前面介绍的空域隐藏(Spatial Domain)算法中应用比较广泛的最低有效位隐藏算法的思想。

利用人的视觉难以发觉颜色微小变化的特点,通过改变载体图像的像素值的最低一位或两位有效位来实现被隐藏数据的嵌入。

载体格式选择颜色深度为24bit或32bit,图像格式为无压缩的BMP格式和无损
压缩的PNG格式。

24bit及以上的颜色深度能够保证每个像素点的RGB值能有
8bit的存储空间,利用的就是这个8bit存储空间的最低2bit的空间。

在众多的图像格式中,如果采用有损压缩的图像格式作为载体,那么嵌入的信息在其压缩的过程中就很可能已经被破坏掉了,失去了数据隐藏的效果,因此这里选择的是无压缩或者无损压缩的图像格式。

2.2 为被隐藏的数据设计格式
仅仅能够隐藏文本的隐藏算法没有太大的实用性。

隐藏算法设计应可以同时隐藏文本和文件,以满足不同的需求。

为了能够将文件数据和文件数据统一作为二进制数据来处理,需要为被隐藏的数据设计一个数据组织的格式。

这类似于给某种文件设计一个文件的格式,作为文件独有的特征,也确定它的一个独有的解析方式,这样
做在一定程度上提高了隐藏信息的隐秘性。

格式设计如图1所示。

由图1可以看出,该格式主要分三个部分:首部数据、文本数据和文件数据。

首部
数据的主要功能是标识该数据为本软件隐藏的数据,记录隐藏的信息大小;文件数
据部分主要是存储被隐藏的文本数据及文本数据的CRC校验;文件数据部分主要是存储被隐藏的文件和文件名数据及其摘要。

校验及摘要的目的是为了在隐藏信息提取的过程中检测出数据是否被篡改或破坏,判断检测出的数据是否为原来的数据,作为解析过程中的一种安全手段。

2.3 算法设计与实现
将算法划分为三个部分。

第一部分为数据的编码与解码。

1)编码。

根据设计的格式,将数据转换成二进制数组的过程。

2)解码。

根据从图片中提取出来的36个字节的二进制数组,将二进制数组还原成首部数据,并校验提取出的信息是否是原始信息,再根据首部信息中的数据还原出隐藏信息的过程。

具体实现步骤如下。

(a)首先定义了首部数据。

(b)实现首部数据和字节数组之间的转换,即编码与解码的过程,该过程比较简单,这里只给出转换函数的定义。

(c)具体隐藏信息的编码与解码的实现。

具体的隐藏信息,也就是我们的文本和文
件数据。

文本可以非常方便地与二进制数据相互转换,而文件本身就是二进制数据,所以这部分比较容易处理。

第二部分为图像像素点的选取规则,根据像素点选取规则(从左到右,从上到下),每次为第二部分提供图像的像素点坐标。

第三部分为二进制数据的嵌入(见图2)与提取(见图3),嵌入与提取是互为逆反的
过程。

这是根据第三部分选取来的像素点序列,以及嵌入提取规则,执行嵌入或者提取的过程。

图3所示的过程主要通过三组函数来实现,第一组是提取和写入字节数组,第二
组是提取和写入一个字节的数据,第三组是提取和写入一个位的数据。

3 实验与结果分析
3.1 算法实验
下面设计三个实验分别对信息隐藏的三个主要特性进行实现。

(1)文本隐藏量实验
首先加载一张分辨率为44×44的图片,选择嵌入像素值低一位模式,输入适当大小的文本执行隐藏文本操作,并进行提取,看提取结果是否成功。

根据提取出来的信息量,不断调整文件大小,得到该图片可以容纳的文本量。

实验结果为分辨率为44×44的图片可以隐藏220个中文字符(不计换行符)。

结果分析:根据已设计隐藏算法,隐藏文本除了文本的数据之外,还有首部数据的
36个字节,文本校验值2字节。

在嵌入像素值低一位模式下,每个像素点可以嵌
入3个位的数据量,分辨率为44×44的图像可以嵌入726(44×44×3÷8)个字节。

分辨率为44×44的图像即可容纳688个英文字符或232个中文字符(UTF-8编
码方式下一个中文字符3个字节)。

因此,普通手机拍摄的一张1920×1080的照
片完全可以容纳一部长篇小说(25万字)。

(2)数据嵌入前后的图像对比
加载一张图片,选择嵌入像素值低两位模式,根据软件显示可以容纳的信息量,选择文件大小尽量接近图像可容纳的信息量的文件。

执行隐藏,保存图片,观察隐藏前与隐藏后图片的区别。

得到结果见图4,从图4中肉眼难以分辨出图像的变化。

这是因为在嵌入像素值低两位模式下,图像的像素值的每个颜色分量改变量至多为3/256。

这微小的变化,肉眼几乎分辨不出来。

(3)检测被修改的含隐藏信息的图像加载图片,隐藏一定量的信息,保存图片。

使
用图片编辑工具对图片进行修改,或者直接将图像保存为其它格式,保存修改后的图片。

使用软件对修改后的图片进行检测。

重复前面几次操作,每次采用不同的方式修改图片。

得到结果:如果图像被修改的部分隐藏了信息,则检测出的信息有误,或者直接检
测不出信息,这是因为LSB算法具有非常弱的鲁棒性。

几乎可以说只要图片被修改,隐藏的数据就被破坏掉了。

3.2 实验结果分析
根据上面的实验结果,在算法的优缺点方面,得到以下结论:
(1)在不可感知性方面,即使选择失真较大的,将数据嵌入到图像颜色分量低两位
的隐藏方式,肉眼也难以分辨出图像的变化,不容易引起第三方的怀疑,隐藏效果较好。

(2)在隐藏的信息量方面,将信息直接嵌入像素RGB值的优点是嵌入信息的容量与所选取的掩护图像的大小成正比。

使用这种方法,一个大小为32kb的24位BMP 图像文件,可以隐藏约32kb/4=8kb(使用颜色低一位隐藏数据时为32kb/8=4kb)的信息(忽略数据首部格式占用的36个字节的数据),该方法具有较高的信息隐藏率。

(3)在鲁棒性方面,该算法具有非常弱的鲁棒性。

只要图含有隐藏数据的部分被修改,那么这部分数据就被破坏了,而且一旦隐藏信息的首部数据被破坏,则有可能所有的隐藏信息都丢失了。

4 结束语
本文设计并实现了一个基于静止图像的信息隐藏算法及对应的提取算法。

算法以基于空域隐藏算法的最低有效位替换算法为核心思想。

为需要隐藏的信息设计了一个特有的格式,以该格式输出的信息作为被隐藏的信息的主体,嵌入到载体图像中,实现了信息隐藏的目的。

同时根据信息隐藏的过程,实现了一个信息提取的算法,将隐藏信息提取出来。

实验结果表明,该算法达到了将文本和文件隐藏到静止图像中的目的。

[参考文献]
[1]谭浩强.C++程序设计[M].2版.北京:清华大学出版社,2011.[2]陈够喜,张鹏程,伍玉良.图像隐写容量归一化研究[J].计算机工程与设计,2012,33(6):2172-2177.
[3]陈扬坤,程义民,谢春辉.一种图像的隐藏信息还原方法[J].电路与系统学报,2011,16(1):116-120.
[4]徐凯平,郑洪源,丁秋林.一种基于LSB和PVD的图像信息隐藏方法研究[J].计算机应用研究,2010,3(6):1068-1070,1082.
[5]张显全,王现会,王晓云,等.基于分块的JPEG图像信息隐藏算法[J].广西师范大学学报:自然科学版,2012,30(3):119-124.
[6]韩杰思,沈建京,袁媛.基于图像信息隐藏的抗提取性评价[J].计算机工程,2008,34(9):172-173.
[7]唐燕,闾国年,殷奎喜.基于规范类正交矩阵的信息隐藏算法[J].东南大学学报:自然科学版,2013,43(1):45-49.
[8]田祖伟,杨恒伏,罗阳旭.基于增量链接的PE文件信息隐藏技术研究[J].计算机科学,2012,39(12):91-93,132.。

相关文档
最新文档