1. 引言
随着计算机网络技术的迅速发展,多媒体信息被窃取、篡改、非法复制和传播等信息安全问题也日益严重。尤其是图像完整性认证的问题,引起了人们的特别关注。脆弱水印是解决这些图像认证问题的有效方法,而且许多脆弱水印的技术已经应用于这些问题中 [1] - [3] 。在之前大多数脆弱水印研究中采用的一般是DCT变换或小波变换的脆弱水印术,如文献 [4] 的算法是将水印嵌入到图像DCT变换后的低频区域,虽然该算法鲁棒性较好,但篡改定位能力较差;文献 [5] 是将图像的高6位进行小波变换,然后将水印嵌入到图像的次低位,该算法比较复杂,效率比较低。而文献 [6] [7] 都运用了Slant变换,但定位篡改能力还是比较差。本文在文献 [8] [9] 的基础上,提出一种基于Slant变换的脆弱水印技术。利用混沌映射产生混沌序列,并与水印图像异或得到水印信息,然后将水印信息嵌入到Slant变换的中频系数中。该算法可以达到对图像的认证和定位篡改的效果。
2. Slant变换
Slant变换对亮度逐渐变换的图像比较适用,而且在非正弦类变换编码的应用中效果非常好。
Slant变换就是根据图像信号的相关性,某行的亮度具有基本不变或线性渐变的特点,可以编造一个变换矩阵,来反映这种递增或递减(线性渐变)特性的行向量。
假设X是原始图像像素矩阵,Y是经斜变换后的矩阵:
(1)
Slant逆变换:
(2)
Slant变换主要有以下优点:
(1) 计算简单,对于亮度逐渐变化的图像表现效果特别好 [10] ;
(2) 斜变换能够显著地减少带宽,对于一般大小的图像块编码具有更少的均方误差;
(3) 基于斜变换的编码方法比基于其他的酉计算方法所得到的图像质量更好;
(4) 斜变换在能量压缩方面应用很好,且对于水印信息隐藏在中高频的扩频中非常有利 [11] ;
(5) 斜变换域中大多数的中频系数的正负符号在JPEG压缩和Gaussian加噪前后保持不变 [12] 。
3. 脆弱水印技术
脆弱水印技术就是在保证一定视觉质量前提下,将数字水印嵌入到多媒体数据当中去,当多媒体内容受到攻击篡改时,可以提取该水印来鉴别多媒体内容的真伪,并指出篡改位置,甚至攻击类型等。脆弱水印的基本功能就是能可靠的检测篡改。而且理想的情况下能够提供修改或破坏量的多少及位置,甚至能够分析篡改的类型并对篡改的内容进行恢复。从数字信号处理的角度来看,脆弱水印的嵌入是对原始图像的调制过程,脆弱水印要检测出篡改并定位,因此水印应先与图像的特征融合在一起然后嵌入到图像中 [13] 。
4. 基于Slant变换的脆弱水印算法
4.1. 水印的产生
首先,利用Logistic混沌映射产生混沌序列S1,Logistic映射的控制参数为a,初始值为x1成混沌序列
,长度为
。
水印图像大小为
,也就是待嵌入的信息,与上一步产生的混沌序列进行异或运算,生成加密水印WK。
4.2. 水印的嵌入
水印嵌入流程如图1。
将原始图像
分成8 × 8大小的互不重叠的分块,记为
,
,即:
(3)
分块可以降低算法的复杂度,并且中频系数的正负符号在JPEG压缩后保持不变,能够有效降低JPEG压缩。
然后对每一个分块进行Slant变换,得到
:
(4)
这里选取256 × 256的lena.bmp为原始载体图像,通过Slant变换,原始图像
中的高低频被有效的分离出来,使得不同频率的信息在变换后的矩阵中分布位置各不相同。然后将上一步产生的加密水印WK嵌入到经过Slant变换后的每一块的中频系数中,运用加法原则嵌入到中频系数中,对每一块嵌入水印的图像进行逆Slant变换,然后合成包含水印的图像。
(5)
4.3. 水印的提取
水印提取流程如图2。
首先,对含有水印的图像进行8 × 8的分块,再对每一个分块Slant变换。
然后运用Logistic混沌映射生成混沌序列,与上面经过Slant变换的分块做异或运算。
最后,对每块提取的水印图像进行逆Slant变换,得到水印图像。
4.4. 水印的检测
篡改的图像是在加水印的图像的基础上篡改的。首先在被篡改的图像中提取出水印信息;然后将参考水印与刚才在篡改图像中提取的水印进行比较,根据篡改矩阵:A_flag-|W-WK|,如果A_flag(x,y) = 1,那么可以判定图像被篡改;如果A_flag(x,y) = 1,则图像未被篡改,从而实现篡改区域的认证和定位。
4.5. 仿真结果及分析
在MATLAB环境下,对图像进行仿真实验,从而说明算法的有效性。
(1) 不可见性
人类视觉系统的分辨率存在一定的局限性,因此,利用这个特性,可以对原始图像嵌入水印,既可以保证图像的显示效果,又可以将一些隐藏的信息嵌入到图像中。
本文以lena256 × 256的灰度图像作为原始图像(如图3(a)所示),图3(c)为嵌入水印的图像,计算原始图像与含水印图像的峰值信噪比为44.1644 dB。从图中可以看出,图像在嵌入水印后视觉上基本没有什么差异,实现了水印的不可见性。
(2) 水印提取
对图4(a)含有水印的图像进行8 × 8的分块,再对每一个分块做Slant变换。然后运用Logistic混沌映射生成混沌序列,与上面经过Slant变换的分块做异或运算。
最后,对每块提取的水印图像进行逆Slant变换,得到图4(b)水印图像。


(a)原始图像 (b)水印图像 (c)含水印图像
Figure 3. Watermark embedding contrast
图3. 水印的嵌入对比

(a) 含水印图像 (b)水印图像
Figure 4. Watermark extraction
图4. 水印的提取

(a) 篡改图像 (b) 定位篡改区域
Figure 5. Watermark tamper localization
图5. 水印的篡改定位
(3) 篡改定位
为了检测算法对图像的篡改定位能力,对含有水印的原始图像进行局部修改,如图5(a)为篡改图像,图5(b)为定位篡改区域。
根据以上仿真结果可知,该算法能检测出对像素的恶意篡改和对图像的完整性破坏,对图像篡改区域检测定位的精确度较高,能够实现对图像完整性的认证。
5. 结束语
针对图像易被篡改的问题,本文提出了一种基于Slant变换的脆弱水印算法。利用Slant变换和Logistic混沌映射的相结合,解决了其他算法定位效果不好的问题。Slant变换相比较与DCT变换,计算速度较快;Logistic混沌映射的应用,由于初值和参数的不同,其产生的序列也有所不同,从而提高了算法的安全性。实验结果也表明该算法相比其他之前的算法有较好的定位篡改能力。
致谢
在此感谢导师的指导和帮助,在我有问题不能解答的时候对我细心的指导,也感谢实验室同学的帮助,在我遇到困难的时候帮助我解决问题并给予关心,并对给予转载和引用权的资料、图片、文献、研究思想和设想的所有者,表示感谢。