信息隐藏加密技术是一个集多学科理论技术于一身的新兴信息安全技术,它将一个秘密信息隐藏在另一个信息(称为遮掩信息或载体)中,且不改变载体的基本特征和使用价值。因此非法者从外观上不知道这个载体中是否隐藏了其他的信息,即使知道,如果没有正确的密钥和提取算法也难以提取或去除隐藏的信息。信息隐藏中所用的载体可以是文字、图像、声音及视频等。

我们以传统的DES加密方法、BMP文件结构隐藏原理和LSB信息隐藏技术为基础,我们提出了一个基于图像的双重信息隐藏加密算法。

一、DES加密算法

DES是一个分组加密算法,它以64位为一组,对数据文件加密。64位一组的明文文件从加密算法的一端输入,64位的密文文件从另一端输出。

DES加密算法是将初始密钥和明文经置换、异或和循环移动之后,生成的实际异或加密密钥和明文文件进行异或运算得到密文文件。DES加密实质流程分析如图1所示。

基于图像的双重信息隐藏加密算法研究

二、BMP文件结构隐藏信息的原理

BMP文件是Windows采用的标准图像文件格式,是位图文件。一幅图像是由一系列像素点构成的点阵,24位彩色图像用3个字节来分别记录R、G、B三通道的像素值。

在BMP位图文件中,图像像素数据是以连续行形式存放的,文件中存储数据的先后依照图像像素行从下往上,从左往右的顺序。其中每个扫描行的字节数必须是4的倍数,如果不足要用0补齐。根据BMP文件结构特点,我们提出了一种基于BMP图像文件结构的信息隐藏加密方法,即用秘密信息代替0值来填充这些补加的冗余字节。

三、LSB加密算法

LSB加密算法是一种基于空域的最低有效位隐藏算法,将秘密信息嵌入像素值的最低几位比特,这样对载体的品质影响最小,可以保证其外部特征不会发生大的变化。信息提取时只需知道嵌入比特数及位置便可以将信息提取出来。对于24位彩色图像,为了不改变图像的质量,根据视觉特性,人眼对绿色最敏感,对红色次之,而对蓝色最不敏感的理论,可以用秘密信息替换像素R、G、B三分量最低几位比特位。

实践表明,G分量改变最低1比特位,R分量改变最低2~3比特位,B分量改变最低3~4比特位不会使图像发生人眼容易察觉的变化。这样,一幅24位位图每像素(RGB三字节)可隐藏6~8个比特信息,隐藏效率可以提高到约25%(=6/(3@8))~3313%(=8/(3@8))。

四、基于图像的双重信息隐藏加密算法

基于BMP图像文件结构的信息隐藏加密方法由于秘密信息处于冗余字节中,对原图像像素数据没有做任何变动,不会引起视觉差异的,保持了不可见性,隐蔽性好。而LSB加密算法不仅具有加密算法简单、透明性良好的特点,还具有隐藏信息容量大、无失真提取等优点。以上两种方法,虽然都存在着鲁棒性差缺点,但因为大多数图像信息隐藏的目的是为了隐秘通信,通信双方在这种应用中最关心的性能是:安全性、不可感知性、信息量。因此,基于以上两种方法,提出基于图像的双重信息隐藏加密算法。

基于图像的双重信息隐藏加密算法算法加密过程如下:

(1)打开待隐藏图像文件,获取像素值,用DES加密后生成加密图像P;

(2)用BMP文件结构隐藏加密算法将加密图像P隐藏到中间掩护图载体的冗余字节中,生成图像Q;

(3)将图像Q的像素转化成0、1序列,对应地嵌入到最终掩护图像像素的最低有效位LSB。按R分量嵌入3位,B分量嵌入4位,G分量嵌入1位进行嵌入,得到最终的掩护图像。

基于图像的双重信息隐藏加密算法算法解密过程如下:

(1)读取嵌入后的最终掩护图像,按R分量提取3位,B分量提取4位,G分量提取1位进行提取,得到0、1序列,按8位一组,转化成对应的像素,得到图像Q;

(2)从图像Q的冗余字节中提取加密像素,生成图像P;

(3)对图像P进行DES解密,获取像素值,得到隐藏图像文件。

五、实验结果

使用VisualC++6.0的编程环境,采用图2所示的真彩图woman.bmp作为最后掩护图像,图3所示的真彩图frui.tbmp作为中间掩护图,图4所示的的灰度图lena256.bmp作为隐藏图像。

基于图像的双重信息隐藏加密算法研究

实验最终结果如图5所示,左边为woman.bmp原图,右边为完成最终隐藏的结果。从实验结果可知,最终隐藏图与原始的woman.bmp在视觉上没有差别,保证了秘密信息嵌入后的透明性,达到了信息隐藏加密的目的。

基于图像的双重信息隐藏加密算法研究

VC实现的隐藏关键代码:

for(i=0;i<secrectLen;i++)//secrectLen为待隐藏信息的数据长度

{

//lpBits为掩护图像的像素指针,str为加密后待隐藏信息的数据指针

*(lpBits+p)=(*(lpBits+p)&(0xf0))|((*str)&(0x0f));

//B分量
*(lpBits+p+1)=(*(lpBits+p+1)&(0xfe))|(((*str)&(0x10))>>4);

//G分量

*(lpBits+p+2)=(*(lpBits+p+2)&(0xf8))|(((*str)&(0xe0))>>4);

//R分量

p+=3;

str++;

}

lena256.bmp最终成功的隐藏到了woman.bmp中,证实了本文提出的双重信息隐藏加密算法的有效性和可行性。此加密算法具有隐蔽性好,算法简单,嵌入信息量大等优点,同时较好的保持了不可见性,并且易于实现,是一种比较高效的信息隐藏加密方法。

小知识之LSB算法

LSB算法:将秘密信息嵌入到载体图像像素值的最低有效位,也称最不显著位,改变这一位置对载体图像的品质影响最小。