摘要随着科技的发展,信息安全技术已经成为不可忽略的因素。
而网络的普及及应用,让多媒体技术得到了广泛的发展,因此图像及视频的安全变得越来越重要。
本文正是在这种时代背景下,介绍一种关于图像处理的信息隐藏技术。
用于进行隐蔽通信的图像信息隐藏算法可以分为两大类:基于空域的信息隐藏算法和基于变换域的信息隐藏算法。
基于空域信息隐藏算法中的典型算法是LSB算法,该算法的主要特点是在载体图像中嵌入的隐藏信息数据量大,但是嵌入位置固定,安全性差,嵌入的隐藏信息易被破坏,鲁棒性不高;基于变换域信息隐藏算法中的典型算法是离散余弦变换域的信息隐藏算法,该算法嵌入信息能够抵御多种攻击,具有较好的鲁棒性,并且嵌入方式多种多样,增加了攻击者提取的难度,具有一定的安全性,但是该类算法嵌入的隐藏信息数据量较小,不适合于进行大数据量的隐蔽通信。
下面对LSB算法原理及LSB算法实现进行了介绍,最后使用MATLAB 对其隐藏过程进行了仿真。
[关键词]信息安全隐藏嵌入信息I目录一、设计要求 (3)二、设计的目的 (3)三、设计的具体实现 (3)3.1 信息隐藏及时空域信息隐藏概述 (3)3.2 LSB上的信息隐秘 (4)3.2.1 LSB上信息隐秘的原理 (4)3.2.2 LSB上的信息隐秘的过程 (5)3.3运用LSB实现秘密消息的隐藏 (6)3.4运用LSB实现秘密消息的差异对比 (9)3.5运用LSB实现秘密消息的提取 (12)3.6信息隐藏的拓展 (15)四、心得体会 (16)五、参考文献 (16)一、设计要求1.复习《信息安全技术导论》中有关LSB的相关知识。
2.对其算法进行详细研究与理论分析。
3.利用MATLAB编写程序并仿真结果。
4.设计报告中应包括具体设计原理、设计的详细说明书以及最终结果。
二、设计的目的1.了解并掌握LSB信息隐藏和提取的方法,具备初步的独立分析和设计能力;2.提高综合应用所学的理论知识和方法独立分析和解决问题的能力;3.训练用MATLAB软件编写程序并仿真。
三、设计的具体实现3.1 信息隐藏及时空域信息隐藏概述信息隐藏技术主要由下述两部分组成:(1)信息嵌入算法,它利用密钥来实现秘密信息的隐藏。
(2)隐蔽信息检测/提取算法(检测器),它利用密钥从隐蔽载体中检测/恢复出秘密信息。
在密钥未知的前提下,第三者很难从隐秘载体中得到或删除,甚至发现秘密信息。
空域隐藏技术是指将秘密信息嵌入数字图像的空间域中,即对像素灰度值进行修改以隐藏秘密信息。
时空域信息隐藏分为:LSB与MSB,LSB对应的中文意思是:最不重要位,有时也称为最低有效位或简称最低位。
MSB,是最重要位。
这里主要介绍最不重要位LSB。
3.2 LSB上的信息隐秘3.2.1 LSB上信息隐秘的原理LSB方法通过调整载体图像像素值的最低若干有效位来来实现数据的嵌入,使所隐藏信息在视觉上很难被发觉,而且只有知道秘密信息嵌入的位置才能正确提取出秘密信息。
显然,LSB隐藏算法最低位被改变的概率是50%,它在原始图像里面引入了极小的噪声,在视觉上是不可见的。
实际上,对于24bit真彩色图像,我们在其最低两位甚至三位来隐藏信息使视觉上仍然是不可见的,对于灰度图像,改变其最低两位也能取得较好的效果。
另外,在LSB方法中,也可以不采用直接嵌入的方法,根据异或的可逆准则,采用替换的准则来实现信息的隐藏。
在嵌入数据位时,嵌入的是数据位与1或者0的异或值。
基于异或的运算也有许多改进的算法,在嵌入的过程中,首先计算每个像素灰度值的每一位的异或值,并把所得到的结果与要嵌入的信息进行异或运算,然后,把像素灰度值的最低位全部清零或置为1,再根据异或运算结果的值来改变最低位的信息,实际上,这相当于对信息进行了一层加密处理,嵌入的不再是原始信息,而是原始信启、的另外一种表达形式,不知道密钥的攻击者很难从中提取出信息。
LSB算法具有非常弱的鲁棒性。
对于许多变换,即使是有益的,也都是很脆弱的。
有损压缩典型的有损压缩如JPEG,就很有可能彻底破坏隐藏的信息。
因为LSB算法试图利用人类视觉系统的漏洞,而有损压缩算法所依赖的,是对附加噪声的不敏感性,正是利用它来减少数据量的。
几何变换 移动像素尤其是改变像素在原栅格中的位置都有可能破坏嵌入的消息。
任何其它的图像变换如模糊、滤波等,通常都会破坏隐藏的数据。
3.2.2 LSB 上的信息隐秘的过程最低有效位(Least Significant Bits ,LSB )方法是最早提出来的最基本的空域图像信息隐藏算法,许多其它的空域算法都是从它的基本原理进行改进扩展的,使得LSB 方法成为使用最为广泛的隐藏技术之一。
现在有一些简单的信息隐藏软件大多是运用LSB 和调色板调整等相关技术将信息隐藏在24bit 图像或256色图像中,如ide and Seek ,StegoDos ,White Noise Storm ,S-tools 等经典信息隐藏软件。
隐秘算法核心是将我们选取的像素点德尔最不重要位依次替换成秘密信息,以达到信息秘密的目的。
嵌入过程包括选择一个图像载体像素点的子集{j 1,…,j m l )(},然后在子集上执行替换操作像素m c i ji ↔,即把c ji 的LSB 与秘密信息m i 进行交换(m i 可以是1或0)。
一个替换系统也可以修改载体图像像素点的多个比特,例如,在一个载体元素的两个最低比特位隐藏两比特、三比特,可以使得信息嵌入量大大增加但同时将破坏载体图像的质量。
在提取过程中找出被选择载体 描述图像的像素序列,将LSB (最不重要位)排列起来重构秘密信息,算法描述如下:嵌入过程:for (i=1;i<=像素序列个数;i++)c si i ↔for (i=1;i<=秘密消息长度;i++)i j j m c s i i −→←−−←提取过程:for (i=1;i<=秘密消息长度;i++){j i i↔ )(c LSB m ji i ←}接下来我们具体应用这三个算法来实现秘密消息的隐藏与提取及对比。
3.3运用LSB 实现秘密消息的隐藏程序流程图如下:3-1 信息隐藏流程图主要算法嵌入隐藏信息的算法实现文件名:lsbhide.m参数说明:c:\wanghan.bmp是信息隐藏载体图像。
C:\1.txt是秘密消息文件。
c:\wanghan1.bmp是信息隐秘后生成图像。
ste_cover是信息隐秘后图像矩阵。
len_total是秘密消息长度,即容量。
嵌入算法如下:3-2 信息隐藏程序代码嵌入隐藏信息算法运行结果:原始图像隐藏信息后的图像3-3 运行程序后的结果得到的结果如图3-3所示,很明显,通过肉眼是看不出两幅图有什么差别的,也就是说隐秘算法的不可见性还是比较好的。
3.4运用LSB实现秘密消息的差异对比程序流程图如下:3-4 对比的流程图主要算法文件名:compare.m函数功能:完成显示隐秘前后两幅图像的区别。
算法如下:3-5 对比程序实现隐秘前后两幅图像区别的运行结果如图3-5所示:3-6 运行对比程序后的差异图像3.5运用LSB实现秘密消息的提取程序流程图如下:3-7 提取秘密信息流程图主要算法文件名:lsbget.m函数功能:完成提取隐秘于LSB上的秘密信息参数说明:c:\wanghan1.bmp是信息隐秘后图像。
100是秘密消息的长度。
c:\1.txt是提取出的秘密消息文件。
result是提取的消息。
提取算法如下:3-8 差异的程序结果分析:原始图像矩阵W为:3-9 原始图像矩阵W 隐藏后信息图像矩阵E为:3-10 隐藏后矩阵E原始信息和隐藏后信息矩阵差值F下图所示:3-11 差异矩阵F由图形对比可知,在相应的比特位嵌入秘密信息来实现信息隐藏。
但最低位的隐藏很容易被识别和攻破,因此下面介绍信息隐藏的拓展。
3.6信息隐藏的拓展由前面信息隐藏的介绍,我们知道最低位的隐藏不会影响图像的识别,因此我们可以在相应的位数进行信息填充。
比如最后两位,这样的话嵌入信息较多,相应的图像失真度较大。
并且也容易被攻破,但随机序列相对来说就比较安全。
一个品质良好的随机序列可以在信息安全诸多领域发挥不可估量的作用。
在信息隐藏中,最直接的一个例子就是通过随机序列控制秘密信息的嵌入规则。
一个没有随机序列控制的隐藏算法是没有安全性可言的。
随机选取像素点,将消息隐秘与LSB,如果顺序选取像素点进行信息隐秘,势必会造成图像各部分统计特征的不一致,而导致严重的安全问题。
载体的第一部分和第二部分,也就是修改的部分和没有修改的部分,具有不同的统计特性,增大了攻击者对秘密通信怀疑的可能性。
为了解决这个问题,可以随机间隔选取像素序列。
此嵌入与提取算法与顺序隐秘的算法基本相同,只是在选取图像序列时不再顺序而是随机间隔的选取。
四、心得体会本文从图像信息隐藏算法方面对图像信息隐藏技术进行了讨论,并且详细地探讨了基于LSB时空域的图像信息隐藏技术,给出了相应的MATLAB程序,对实验结果进行了分析讨论。
在使用Matlab的过程中,尽管从没学过,但依然通过它解决了一些编程的问题,也明白了MATLAB的使用及算法的含义。
五、参考文献1.王丽娜,郭迟,李鹏主编.信息隐藏技术实验教程.武汉大学出版社,2004;2.刘振华,尹萍主编.信息隐藏技术及应用[M].北京,科学出版社,2002;3.何超英主编.MATLAB应用与实验教程.北京,电子工业出版社,2010;4.陈克非,黄征主编.信息安全技术导论.北京,电子工业出版社,2010;。