基于信息隐藏技术的文档信息传输算法研究

时间:2022-10-09 08:43:52

基于信息隐藏技术的文档信息传输算法研究

[摘要] 该文主要介绍将各种类型的文件经过一定的算法处理后隐藏到彩色BMP位图的各个像素中,再从隐藏有文件信息的BMP位图的像素中提出隐藏的文件信息的方法――像素位法。该方法隐藏的信息量大、效率高、隐蔽性好、处理速度快。

[关键字] 信息隐藏 文档传输 彩色BMP位图 CRC_32算法

1 介绍

随着计算机技术和Internet的迅速发展与应用,计算机越来越应用到了人们生活的方方面面中,又由于计算机在通讯方面突出表现,使其在各种信息交换、传递的领域更是独树一帜。事有两面,在计算机进行快速信息交换的同时也带来了一定的安全性问题,对于一些高度机密的文档信息,就不能用普通的方法(如普通的U盘拷贝、发送电子邮件)进行交换和传递了。这样如何将机密文档信息在安全的情况下用现代的信息传递手段进行快速传递成为现在的一个新的研究课题。

信息隐藏技术的文档信息传输是这个课题的核心,它是将机密文档处理后隐藏到普通的BMP图片中,把隐藏有信息的图片通过计算机发送到接收方,接收方再解释出隐藏文档的方法。这种方法不同于单独发送加密文件的优点在于,不容易引起攻击者的注意。因为中间信息是类同于普通的BMP图片。这种方法的要求有两点:

隐藏信息后的彩色BMP图像与原始图像相比,在人的视觉上没有什么区别;

隐藏信息后的彩色BMP图像与原始图像相比,大小上没有多大变化;

2 BMP位图说明

BMP图像文件格式,是微软公司为其WINDOWS环境设置的标准图像格式,在Windows系统软件中包含了一系列支持BMP图像处理的API函数。随着WINDOWS操作系统在世界范围内的普及, BMP文件格式越来越多地被各种应用软件所支持。

BMP图像文件是位图文件,位图表示的是将一幅图像分割成一个个很小的栅格,每个栅格缩小为一个点称为像素,每一个像素具有自已的数值,即一幅图像是由一系列像素点构成的点阵。BMP中按第个像素数值(像素位值)的取值范围可以分为1位、4位、8位、24位图片。像素位值的大小体现了图片彩色质量的好坏,同时也决定了图片保存时占用空间的多少。①1位图片就是指黑白图片,图片中每一由黑白两种颜色组成,它是占用空间最少的位图,同时是图片质量最差的;②4位图片是16色的彩色图片,图片中每个像素位的范围为0到15,带有彩色,但彩色质量很差,占用空间小;③8位图片是256色的彩色图片,图片中每个像素位的范围为0到255,彩色质量相对好,占用空间大;④24位图片就是所说的真彩色的彩色图片,图片中每个像素位由三个字节组成,彩色质量相对好,占用空间最大;

这里讨论的主要是对24位真彩色图片的处理。

3 信息处理的原理

3.1 信息隐藏

信息隐藏就是将文档信息隐藏在真彩色BMP图片中,其流程如图1所示:

图2中,每一个点表示位图中的一个像素,每一个像素的值范围在0到16777215间。在隐藏信息时每一个像素的奇偶性作为隐藏数据的依据。如果此像素的值为偶数表示数据为0,如果此像素的值为奇数时表示数据为1,用0和1的不同排列组全表示各种数据。而这种表示方式正好与各种磁盘保存数据的方式相同(磁盘中的数据也是以0和1的方式 :二进制方式保存的)。这样从磁盘中读取出文档的内容,使位图中各个像素的奇偶性和文档内容的奇偶性对应,就在位图中隐藏了信息这个过程叫位图像素调制。其中的对应规则复杂程度是有效防止隐藏的信息被非法解读出的难易程度的体现。对应规则越复杂越难被非法解读出来。

再对位图中每行中隐藏的数据进行位异或和CRC_32校验,可以有效的验证解读出数据的有效性和正确性。信息隐藏过程举例:BMP位图第一行前8个像素的值为:13075297, 13075297, 13075297,13074781,13404000,13206622,13272413,13206620,要隐藏的数据为01010101,ASC码值为85。将像素值的奇偶性与数据比较后要作如下的调制:

第一个像素:13075297隐藏信息0,要调整为偶数13075298;

第二个像素:13075297隐藏信息1,不变;

第三个像素:13075297隐藏信息0,要调整为偶数13075298;

第四个像素:13074781隐藏信息1,不变;

第五个像素:13404000隐藏信息0,不变;

第六个像素:13206622隐藏信息1,要调整为奇数13206623;

第七个像素:13272413隐藏信息0,要调整为偶数13272414;

第八个像素:13206620隐藏信息1,要调整为奇数13206621;

经过这样的调制,此BMP位图第一行前8个像素的奇偶性便与85转化的8位二进制数完全相同,这样,8个像素就隐藏了一个字节的信息。

综上所述,将信息隐藏入BMP位图中的步骤为:

读取文件的二进制内容;

将位图每个像素的奇偶性与二进制数据进行比较;

通过调节每个像素的奇偶性便之与文件的二进制内容一致,就将信息隐藏到BMP位图中了;

3.2 信息解读

信息解读就是从隐藏有信息的BMP位图中解读出隐藏的信息,是信息隐藏的逆过程,其流程如图三所示:

信息解读过程如下:

判断BMP位图中每个像素值的奇偶性,若为偶数,则输出“0”;若为奇数,则输出“1”;

每8个像素输出8个0和1组成的二进制数据,转换为一个字节;

经过对所有像素处理,得到一系列的二进制数据,保存成文件,就是隐藏的信息。

本次实验结果如图4、图5所示。

5 总结

(1)由于原始24位BMP图像文件隐藏信息后,其像素位数值最多变化1(因为是像素位值加“1”或减“1”),该像素位代表的颜色最多只变化了1/16777216,所以,已隐藏信息的BMP图像与未隐藏信息的BMP图像,用肉眼是看不出差别的;

(2)由于此法只修改出BMP位图中每个像素的值,而没有改变像素的数量,所有在保存图片时的大小没有改变,所有隐藏了文档信息后位图的大小没有改变;

(3)使用这种方法,隐藏的文档信息是直接读取的文件,所以对文件格式没有限制,可以是TXT文件、WORD文件等。

参考文献

[1] 刘骏.Delphi数字图像处理及高级应用[M]. 北京:科学出版社,2003.

[2] 丁贵广等. Visual C++ 6.0 数字图像编码[M]. 北京:机械工业出版社,2004.

上一篇:南昌铁路局信息化承载网络融合探讨 下一篇:信号修配所入所检修系统的开发与应用