- 01/19
- 2020
-
QQ扫一扫
-
Vision小助手
(CMVU)
摘 要:提出一种新的基于可容忍失真范围的隐写方案,不仅保证了在每个象素上隐写引起的失真小于JPEG压缩引起的失真,而且使含密图像的JPEG压缩版本与原始图像的JPEG压缩版本完全一致,因此接收端不需原始图像,只要将含密图像与其JPEG压缩版本相减,便可提取出秘密信息。本方案克服了原有此类方法需要原始图像才能提取秘密信息的缺点。
关键词: 隐写;JPEG压缩;可容忍失真范围
1 引 言
数字隐写(Steganography,或称密写)是信息隐藏的一个重要分支,其目的是将信息秘密隐藏在载体信息中,不引起第三方怀疑地安全发送出去[1,2],即将“正在通信”这一事实隐蔽起来。数字隐写必然会造成载体数据的失真,而失真过大则会引起视觉异常或统计异常,暴露秘密信息的存在。因此隐蔽性是衡量隐写技术优劣的最重要标准。
研究者已提出根据视觉特性进行信息嵌入的方法提高隐写隐蔽性,也就是在视觉不敏感的区域嵌入较多秘密信息,而在视觉较敏感的区域嵌入少量秘密信息。例如位平面复杂度分割(bit-plane complexity segmentation, BPCS)隐写将秘密信息隐藏于变化剧烈、复杂度较高的位面小块[3];象素灰度差值(pixel-value differencing, PVD)隐写在差值较大的两个象素中嵌入较多信息[4];混合进制(multiple-base notational system, MBNS)隐写则由图像局部起伏程度决定当前象素负载的秘密信息量[5]。
另一类隐写方法保证隐写引起的失真不超过预先规定的压缩编码引起的失真,藉此提高秘密信息的隐蔽性。文献[6]首先将原始图像进行某种有损压缩,并将压缩图像与原始图像相减得到可容忍的失真范围(tolerable error range, TER)矩阵,然后根据TER矩阵逐个象素嵌入秘密信息,从而可以得到质量比压缩图像更好的含密图像。文献[7]在文献[6]的基础上做了改进,提出了一种应用在医院电子数据交换的信息隐藏方案,它将TER矩阵中的元素分类处理,值为0的元素不嵌信息,值为1的元素用于嵌入医生的签名,值大于1的元素用于嵌入病人的信息。为进一步提高含密图像质量,文献[8]对TER矩阵中的元素进行排序,然后根据排序后的TER矩阵隐藏秘密信息,并在隐藏信息的同时采用零复位以及补偿比特的技术,有效降低了隐写图像的失真。虽然文献[6,7,8]所提出的方法均能得到质量比有损图像更好的隐写图像,但是存在一个共同的弱点,那就是接收端必须同时拥有含密图像和原始图像才能提取秘密信息,为实际应用带来了不便。
本文提出一种新的基于可容忍失真范围的隐写方案,不但保证了含密图像的质量比原始图像JPEG压缩版本的质量更好,而且接收端在提取秘密信息时不需要原始图像。
2 信息嵌入与提取
本文方案同样是以未压缩格式图像作为载体、将JPEG压缩作为可容忍失真,并保证嵌入秘密信息对载体图像的改动不超出可容忍失真。所不同的是还要保证含密载体的JPEG压缩版本与原始载体的JPEG压缩版本完全相同,并用载体含密部分的象素灰度与JPEG压缩后对应象素灰度的差值表示秘密信息。因此接收端不必拥有原始载体,仅利用含密载体便可提取秘密信息。
2.1 信息嵌入
隐写端首先获得未压缩格式载体图像的JPEG压缩版本(隐写者与接收者预先约定压缩质量因子或量化矩阵):将原始图像分为88的小块,对每个小块做DCT变换,按照质量因子对应的量化矩阵进行量化,然后逆量化、逆DCT变换,并将得到的值做舍入溢出处理,即将小于0的值变为0,大于255的值变为255,并对0与255之间的值进行四舍五入取整。将JPEG压缩版本与原始载体相减,所得即TER矩阵,隐写时对每个象素的修改应在0与该象素对应的TER值之间。例如原始图像的一个8×8小块为
经过质量因子为50的JPEG压缩得到的压缩版本L以及L减去C得到的TER矩阵如下:
将图像中的所有小块分为两类:一类为JPEG压缩后存在值0或者255的小块,称这种小块为“不可嵌的”;另一类为其他的小块,称为“可嵌的”。 隐写时仅改动可嵌小块,设当前可嵌小块为C,按照下面的步骤逐个象素修改载体象素灰度,嵌入秘密信息:
(1) 从载体小块中依次取出象素,设po为从C中取出的某象素的灰度值,pc为其压缩版本(记为L)中对应象素的值,则其TER值为pd=pc po。
(2) 从秘密信息序列中依次取出n个比特,其中
表示向下取整,计算这n个比特对应的十进制值m,
其中di为待嵌秘密信息序列的第i个比特。
(3) 将m与| pd |进行比较,如果m | pd |,则m保持不变;如果m > | pd |,说明当前象素的可容忍失真不足以嵌入这n个比特,重新从秘密信息序列依次取出n1个比特,并根据式(3)得到与它们对应的十进制值m,此时m必然小于等于| pd |,证明如下:
如果m=0,那么显然m | pd |。如果m > 0,则
(5) 当小块中所有象素都嵌入信息之后,将含密小块进行同样质量因子的JPEG压缩,并与L比较,如果相同则将原始小块改为含密小块,秘密信息已被有效嵌入;如果不同则说明信息嵌入无效,将该小块改为L,并在后续小块中重新嵌入这些秘密比特。
例如要在式(1)的图像块中嵌入秘密信息“1010001001010011100…”,首先根据(1)的压缩版本L中不存在值0或者255判定该图像块是可嵌的。对于该图像块的第1个象素有po = 138,pc = 132,pd = 6;由式(2)得n = 2,从秘密信息序列中依次取出2个比特“10”,即d1 = 1,d2 = 0;将n、d1 、d2代入式(3)得到m = 5;显然m< | pd |,说明该象素的可容忍失真能够嵌入“10”这2个比特;最后根据式(4)将pc 修改为ps = m + pc =137。对于(1)中第2个象素有po = 152,pc = 167,pd = 15;由式(2)得n = 4,从秘密信息序列中依次取出4个比特“1000”,即d1 = 1,d2 = 0,d3 = 0,d4 = 0;将n、d1 、d2 、d3 、d4代入式(3)得到m = 23;此时m > | pd |,说明该象素的可容忍失真不足以嵌入“1000”这4个比特,重新从秘密信息序列中依次取出“100”这3个比特,由(3)式得到m = 11;最后根据式(4)将pc 修改为ps = pc m = 156。对该图像块中所有象素进行上述操作之后共嵌入103比特,得到的含密块S如下:
对S采用质量因子为50的JPEG压缩得的压缩版本与L是一样的,说明秘密信息已被有效嵌入。
2.2 信息提取
逐块操作,对于某一小块,先对其做压缩得到它的压缩版本,如果压缩版本中存在值0或者255,则丢弃该小块,继续操作下一个小块。对未被丢弃的小块逐个象素操作,对于其中的某一象素,先求出m = | pcps |,然后计算该象素所负载的秘密比特数n = log2(m+1),由下式就可以得到该象素对应的秘密比特:
最后将提取出的比特依次连接,即秘密信息。为了防止信息提取出错,本文提出的信息隐藏方案采取了下面两个措施:
(1) 不改变不可嵌小块。原因如下:不可嵌小块的压缩版本中存在值0或者255,在舍入溢出之前它们可能是绝对值很大的负数或者是比255大很多的正数。如果对这样的小块进行改动,而改动后小块的压缩版本又与原始小块的压缩版本不一致,那么为了保证含密小块的JPEG压缩版本与原始小块的JPEG压缩版本完全相同,隐写端只能将改动后的小块恢复成原始小块,所以有必要采取本措施,提取时跳过这些小块即可。
(2) 将嵌入信息无效的可嵌小块改为原始小块的压缩版本。原因如下:当C嵌入信息无效时,如果不采取措施,接收端得到的S的压缩版本将不是L,很显然这会造成信息的误提取。而采取本措施之后,接收端得到的S即为C的压缩版本L,由于对L进行相同的再压缩得到的小块仍为L,所以提取的时候将得到0个秘密比特,这与C嵌入信息无效是一致的。
3 实验结果
以大小为256×256的测试图像Miss为载体,以质量因子为50的JPEG压缩作为可容忍失真,采用本文提出的方法能够嵌入5.6104比特的秘密信息。图1分别给出了原始图像、JPEG压缩版本及含密图像,可以看出含密图像比JPEG压缩版本的视觉质量好。
以质量因子30、50、70的JPEG压缩作为可容忍失真分别在大小为512×512的测试图像Lena、Peppers、Plane、Baboon中进行信息嵌入,得到12幅完全嵌入的含密图像。表1给出了JPEG压缩和信息隐藏引起的PSNR及嵌入量,从表1中可看出含密图像的失真必然小于JPEG压缩失真,并且较低的质量因子对应较大的嵌入量。
为验证本文方案的安全性,分别用SPA法[9]和RS法[10]对上述得到的12幅含密图像进行隐写分析,结果如表2所示,可以看出无论是SPA法还是RS法对含密图像嵌入可能性的估计均小于5%,仍属于正常图像含密可能性的取值范围,可见本文算法具有一定的抗分析安全性。
4 结 论
本文提出了一种新的利用可容忍失真范围进行隐写的方法。该方法仅在可嵌小块中进行信息隐藏,并且将嵌入信息无效的块改为原始小块的压缩版本,接收方只需要对含密图像做压缩,然后将含密图像与其压缩版本做比较就能提取出秘密信息。不仅解决了现有此类方法需要原始图像支持才能提取秘密信息的问题,并且含密图像的失真不会大于可容忍失真,大大提高了此类隐写方法的应用价值。
参 考 文 献
[1]F. A. P. Petitcolas, R. J. Anderson, and M. G. Kuhn, “Information Hiding A Survey,” Proceedings of IEEE, 1999, 87(7): 1062~1078.
[2]H. Wang, and S. Wang, “Cyber Warfare Steganography vs. Steganalysis,” Communication of the ACM, 47(10), pp.76-82, 2004.
[3]H. Noda, J. Spaulding, M. N. Shirazi, and E. Kawaguchi, “Application of Bit-Plane Decomposition Steganography to JPEG2000 Encoded Images,” IEEE Signal Processing Letters, 9, pp.410 413, 2002.
[4]D.-C. Wu and W.-H. Tsai, “A Steganographic Method for Images by Pixel-Value Differencing,” Pattern Recognition Letters, 24, pp.1613 1626, 2003.
[5]X. Zhang and S. Wang, “Steganography Using Multiple-Base Notational System and Human Vision Sensitivity,” IEEE Signal Processing Letters, 12(1), pp. 6770, 2005.
[6]D.-C. Wu, and W.-H. Tsai, “Data hiding in images via multiple-based number conversion and lossy compression,” IEEE Trans. Consumer Electronics, 44(4), pp. 1406–1412, 1998.
[7]H.-M. Chao, C.-M. Hsu, and S.-G. Miaou, “A Data-Hiding Technique With Authentication, Integration, and Confidentiality for Electronic Patient Records,” IEEE Trans. Information Technology in Biomedicine, 6(1), pp. 4653, 2002.
[8]C.-C. Chang, J.-C. Chuang, and Y.-P. Lai, “Hiding data in multitone images for data communications,” IEE Proc.Vis. Image Signal Process., 151(2), pp. 137145, 2004.
[9]S Dumistrescu, Xiaolin Wu, and Zhe Wang. Detecting of LSB Steganography via Sample Pair Analysis[C]. In Proceedings of the 5th International Workshop on Information Hiding LCNS 2578 Springer-Verlag, 2002:355-372.
[10]Fridrich J, Goljan M, and Du R. Detecting LSB Steganography in Color and Gray-Scale Images. Magazine of IEEE Multimedia, Special Issue on Security, Oct.-Dec. Issue, 2001: 22-28.
- 上一条:基于模糊逻辑和多尺度分解的医学图像算法
- 下一条:抗jpeg有损压缩的鲁棒性水印算法