一种改进的空域图像信息隐藏算法
2020-04-08王春玲
李 笑,王春玲,陈 亮
(西安工程大学 计算机科学学院,陕西 西安 710048)
0 引 言
信息隐藏技术可以保证涉密信息的安全存储和传输[1]。作为信息隐藏技术中最常用的LSB算法,虽然具有实现简单、不可见性高、运算速度快等优点,但是,由于只在低位嵌入秘密信息,因此抵抗图像处理的能力,如滤波、噪声等攻击比较差,隐藏容量也不够大。一般来说,一个图像信息隐藏系统最主要的特性是信息隐藏量[2]、不可见性[3]和鲁棒性[4]。要想达到很好的隐藏效果,图像的信息隐藏工具软件应该具有较大的嵌入量,较好的鲁棒性,较强的嵌入和提取效率,较高的安全性,且人的肉眼看不到伪装图像和原载体图像的任何区别。
衡量一个图像信息隐藏系统在添加了剪裁、噪声、压缩等各种攻击后对其影响程度的大小,取决于人眼视觉差异的大小。一个良好的的图像信息隐藏系统应当具备相当好的视觉隐蔽性[5]。在视觉隐蔽性方面,文献[6]利用人类视觉系统结合信息隐藏的特性进行了信息隐藏,使得人眼对局部图像的感知特性加强,符合视觉感知且复杂度较低;文献[7]根据纹理掩蔽效应中平滑区比较敏感的特征,把秘密信息分段并转换后优先藏在载体图像比较复杂的区域,使得视觉差异和鲁棒性明显降低;文献[8]在分析了人类视觉系统的各种掩蔽效应后,将掩饰图像划分为3个嵌入程度不同的区块,对图像各个局部根据嵌入程度的不同嵌入不同量的秘密信息,增加了嵌入量且能保持较高的峰值信噪比。
本文基于人类视觉系统,提出一种更能满足隐藏需求的空域信息隐藏算法。该算法将最高有效位优化算法与人类视觉系统相结合,既可以保证图像的不可感知性,也可以提高其稳健性和隐藏容量。
1 算法基本原理
1.1 最高有效位的序列优化算法
对于一个信息隐藏系统来说,不可感知性与隐藏量相互制约。嵌入秘密信息的量越大,不可感知性越差,所以压缩秘密信息所占空间是平衡二者的关键[9]。出于不可感知性的考虑,秘密信息应该嵌入到LSB位上,然而这样处理虽然对图像视觉影响不大,但经过图像处理后,秘密信息很容易被破坏,鲁棒性很差。为了解决这个问题,就要考虑在不改变视觉隐蔽性的同时将秘密信息嵌入到掩饰图像的高位平面上[10]。基于此,本文提出最高位序列优化算法,将最高位平面与秘密信息进行匹配替换,既保证了鲁棒性又降低了秘密信息所占空间。算法如下:
Input(尺寸为M×N的秘密图像);
Convert to sequence X=X[0],X[1]…X[M×N-1]∈{0,1};
Input (尺寸为m×n的载体图像);
Extract each MSB bit of the carrier image;
Dim a,b as integer;
a=random(0,m);
b=random(0,n);//在载体图像各MSB位随机取点(a,b)
if(m-a)n+(n-j+1)≥M×N
Then (a,b)=(a,b);
Else (a,b)=(1,1);
End if;
For (a,b) to (a,b)+M×N
Convert to sequence T=T[0],T[1]…T[M×N-1]∈{0,1};//从(a,b)开始取M×N个像素点转化为一维序列T
End for;
Key=X⨁T;
For i=0 To M×N-1
If (Key[i]==1)
Then insert X[i] into the sorted sequence C[1…n];//保留此位对应的X[i]追加到序列C中
Else 丢弃此位对应的X[i];
End if;
End for;
Output(优化后的秘密序列C[1…n]);
该算法通过对最高有效位的序列优化,在不改变秘密信息的前提下,有效地减少了秘密信息在掩饰图像中的占用空间,即可以嵌入更多的秘密信息。
1.2 基于HVS的嵌入深度表
人眼对一幅图像各个区块的敏感程度是不同的。要想从主观上减少原载体图像和嵌密载体的视觉差异,就要尽可能地将秘密信息嵌入在人眼敏感度较低的区块中[11]。因此,构建基于HVS的嵌入深度表就是为了根据人眼对图像每个区块敏感程度的不同,决定嵌入秘密信息量的多少,从而保证较好的不可感知性。
依据人类视觉系统中的纹理掩蔽效应[12]和高亮度掩蔽效应[13]划分载体图像。纹理掩蔽效应表明:平滑区纹理稀疏,人眼敏感度高,只能嵌入少量信息;纹理区纹理复杂,可以嵌入较多的秘密信息。高亮度掩蔽效应表明:在高灰度区嵌入效果好,嵌入量比较大;低灰度区嵌入效果差,嵌入量小。
为了保证隐秘图像的不可感知性,载体中嵌入秘密信息的容量不能过大,否则视觉差异很明显。对一副8位灰度图像来说,嵌入容量不能超过4 bit,否则图像会受到比较大的损坏[14]。为了使信息隐藏具有更好的隐蔽性,选择了3位进行秘密图像的嵌入。构建的嵌入深度表如表1所示。
表 1 嵌入深度表Tab.1 Embedded depth table
2 嵌入和提取步骤
最高有效位的优化算法有效降低了秘密信息的序列。在此基础上,构建嵌入深度表,将优化后的秘密信息序列根据嵌入深度嵌入到划分好的子块中,从而实现将秘密信息嵌入到载体图像中。
2.1 嵌入步骤
对于大多数灰度图像来说,从图像的第5位开始就包含了图片大部分的信息,对高位的改变会造成图像较大的损坏,因此秘密信息不选择从高位进行嵌入。为了提高图片的鲁棒性,也不对LSB位进行嵌入,所以选择在第2,3,4位平面嵌入秘密信息。嵌入步骤如下:
1) 生成秘密信息。将原始秘密图像的信息按照上述最高有效位的优化算法进行优化,生成一个新的秘密信息。
2) 估计隐秘空间。以8×8大小为单位划分掩饰图像,按照HVS 2种掩蔽效应的特性判断子块的类型,然后根据嵌入深度表估算出载体图像隐藏空间的范围。如果载体图像可以隐藏秘密信息的空间小于新生成的秘密信息N,选择新的载体图像重新执行上述步骤,否则继续执行。
3) 嵌入秘密信息。先将新生成的秘密信息N嵌入载体图像的第2位平面,嵌入位置由随机序列决定。利用HVS深度表判断该位可否进行嵌入,可以则进行嵌入,不可以则重新选择嵌入位置。扫描完第2位平面后,选取第3位平面进行嵌入。重复上一过程,直到第4位平面结束。
4) 判断秘密信息是否成功嵌入到载体图像中。
2.2 提取步骤
1) 获取载密图像的信息以及嵌入秘密信息时用到的密钥参数(随机序列、嵌入深度等信息)。
2) 提取秘密信息。先从载密图像第4位开始提取秘密信息,依据提取步骤1)获取的随机序列和嵌入深度,找到嵌入位置并判断是否有秘密信息的嵌入。若有,将秘密信息提取出来,否则重新选择嵌入位置进行判断,直到第4位平面扫描结束。然后获取第3位和第2位的秘密信息。
3) 执行最高有效位匹配算法的逆过程,提取出原始秘密信息。
3 结果与分析
基于上述算法,在Matlab 7.0环境下进行实验。选取如图1(a)所示的标准的512×512的lena灰度图作为载体图像,再选取一副如图1(b)所示的大小为267×107的秘密图像;按照本文嵌入算法,将图1(b)嵌入到图1(a)中,形成图1(c)隐秘图像;最后按照本文提取算法还原出来的秘密图像如图1(d)所示。
(a) 原图 (b) 原始秘密图像
(c) 嵌后的图像 (d) 提取的秘密图像图 1 图像隐藏算法的实现Fig.1 Schematic diagram of image hiding algorithm
从主观上观察图1,可以看出原载体与嵌密载体几乎没有视觉区别,视觉效果良好,且秘密信息也可以几乎无损地被正确提取出来。在理论上评价改进算法的性能如下:
3.1 不可见性
为了评价信息隐藏算法的可靠性和隐蔽性,采用峰值信噪比RPSN[15]衡量原载体与伪装载体的区别。分别选取3幅标准的512×512灰度测试图像作为载体图像,如图2所示。
图 2 3幅标准的512×512灰度测试图像Fig.2 Three standard 512×512 grayscale test images
将图1(b)的秘密信息利用本文算法分别嵌入到图2所示的3幅载体图像,得到其RPSN值,并与传统LSB算法和文献[16-17]的算法进行比较,结果如表2所示。可以看出,本文算法具有较高的RPSN值,不可感知性较好。
表 2 不同算法嵌入相同秘密的RPSN值Tab.2 Different algorithms embed RPSNvalues for the same secret 单位:dB
3.2 隐藏量
为检测该算法是否具有较好的隐藏容量,将图1(a)作为载体图像嵌入不同信息量,计算嵌入不同信息量时的RPSN值。将本算法与文献[18-19]的算法进行比较,结果如图3所示。可以看出,当RPSN相同时,本文算法可以嵌入更多的信息量。
图 3 不同算法在相同嵌入量下的RPSN比较Fig.3 Comparison of RPSN between the algorithm and other algorithms in the same embedding amount
3.3 鲁棒性
为检测该算法的鲁棒性是否良好,对嵌入了秘密信息的伪装载体进行图像剪切、噪声攻击。图4分别给出了加0.005的椒盐噪声,加0.002的高斯噪声攻击,在上方裁剪1/16和在中间裁剪1/16的效果图以及经过攻击后提取出来的秘密信息。
图 4 各种攻击及其提取的隐藏信息Fig.4 Various attacks and their hidden information extracted
从图4可以看出,加入了攻击后的隐秘图像对提取出来的秘密信息虽然有一定影响,但秘密信息仍清晰可见。计算上述4种攻击后的RPSN值,并与文献[20]中算法的测试值比较,结果如表3所示。从表3可以看出,本文算法鲁棒性较好。
表 3 常见攻击的RPSN测试结果对比Tab.3 RPSN test for common attacks
4 结 语
为解决现有图像信息隐藏算法的一些缺点,本文设计并完成了一个基于最高有效位和人类视觉系统的空域信息隐藏算法的工具软件,并对此工具软件进行了性能测验。实验结果表明:此工具软件可以做到嵌入和提取秘密信息后的伪装载体与原始载体没有明显的视觉差异,具有良好的不可见性;在保证RPSN值的情况下,能增加可嵌入秘密信息的容量;在添加了噪声攻击和剪裁攻击等攻击以后,可以保证较好的鲁棒性;很好地平衡了不可见性、嵌入信息容量和鲁棒性。所以,此工具软件可以实现嵌密信息秘密可靠的传递,满足用户对私密信息的保护,具有较高的应用价值。