罗 可
(邵阳学院图书馆,邵阳 422000)
为保证图像质量,同时保证水印的不可感知性,2001年温泉等在中国第三届信息隐藏学术讨论会上明确提出了“零水印”的概念。“零水印技术”是在宿主图像中不做任何修改情况下,利用图像自身的重要特征来构造水印信息。由于图像的特征(边缘、纹理等)具有独特性,因此,根据图像特征生成的水印信息也是唯一性的。
“零水印”一经提出,就引起了国内外许多学者的广泛关注和深入研究,2016年达到顶峰,发表与零水印相关的论文多达百篇,提出的算法也层出不穷。近年来大多数算法的基本思想都是寻找图像特征,如低频域内系数差,小波矩等,对图像特征进行二值化处理(即当图像的某个像素特征值大于阈值时,特征图像对应像素的值为1,否则为0),再对同等大小的二值水印图像进行简单的异或运算,生成水印图像大小的密钥,并保存下来。提取过程中,水印图像经过密钥和图像特征的异或运算重新提取,该算法简单、易于实现。因为水印并没有真正地嵌入在图像中,而图像的特征提取算法也没有公开,一般说来,这种零水印方法是安全的。
图像的纹理特征是一种全局特征,是对图像或图像区域所对应景物的描述,这种特征是图像中最有价值的部分,一旦受到攻击,就会丧失图像本身的价值。所以,在纹理区域中嵌入水印可以在一定程度上提高水印的安全性。
本文提出了一种基于非等长纹理强度密钥的零水印算法,采用Contourlet 变换提取图像方向上的纹理特性,利用灰度形态学原理将子图中的纹理区域分为强纹理块、过渡块和弱纹理块三种极性,根据这三种极性映射出特征图像,在一定程度上提高了水印提取的正确率,而且生成的密钥长度不同,进一步提高了水印的安全性。
2002年Do 和Vetterli 提 出 了Contourlet 变换,Contourlet 变换是Wavelet 变换的一种新扩展,弥补了Wavelet 变换在捕获方向信息方面的局限性。与Wavelet变换相比,Contourlet变换描述信息更多,它具有以下特点:与其他变换Contourlet变换在方向等方面都可以更好地诠释;而且Contourlet 变换具有更好的特征,能以更好的方式来表达;与其他变换Contourlet 变换在方向等方变换中。
图1(a),显出Contourlet 变换的工作过程。图1(b)中,通过Contourlet 变换分解得到的3 层Contourlet 系数,分别表示4、8 和16 个细节方向,其中Contourlet 变换分解的层数和数量并不唯一。
图1 Contourlet变换
数学形态学是一门以集合论为基础的新兴学科,主要用来处理二值影像,又称二值形态学。适合于二值图像的边缘提取、分割和细化等。
灰度值形态是二值形态学的自然扩展。数学形态学的灰值运算主要有灰值腐蚀运算、灰值膨胀运算、开/闭操作、顶帽变换、底帽变换等。
强纹理区域对应的突变点较多,即灰度峰和谷值。突变点越多,表明该区域的灰度峰和谷值也越高。这就是说,包含更多的明亮特征和暗色特征,纹理性也就越强,称为强纹区域,即突变点多的区域。形态学中的顶帽变换(Top-Hat)和底帽变换(Botton-Hat)算法是一种精确的图像局部区域灰度峰值(亮特征)和灰色谷值(暗特征)算法。在以上分析的基础上,提出了一种基于灰值形态学的方法,能够快速、准确地提取纹理块。
对标准测试图像lena 进行纹理提取,得到图2(b)中的纹理区域。
图2 原始图像与纹理区域提取结果
传统零水印算法选取的特征图像为二值图像,如文献[8]算法,其基本思想是基于提升算法的Haar整数小波变换和带膨胀运算的Sobel特征提取方法提取图像的轮廓特征,然后将图像的轮廓特征(二值图像)与水印进行异或运算生成密钥。然而,如果对图像进行了处理,则会影响到特征图像的稳定性,进而影响到水印的提取,如图3所示,红色区域为特征值改变。
图3 被攻击后图像特征对比(圆圈代表两幅图像特征的值存在差异)
为了解决这一问题,本文提出了一种基于非等长纹理强度密钥的零水印算法,根据图像纹理的三种极性映射出特征图像,用Tri-state XOR运算(TXOR)生成不等长密钥,在一定程度上提高了水印提取的正确率,进一步提高了水印的安全性。
图4为本文所提出的基于轮廓波域零水印嵌入架构流程图,下面逐项详细说明:
图4 基于轮廓波的零水印嵌入算法原理图
2.2.1 轮廓波变换
对 一 张 大 小×的图像进行J 级Contourlet 变换后,得到一个低频子图和一组不同方向上的高频子图。本文使用Contourlet 分解图像,第一级分成8 个方向,第二级分解成4 个方向,第三级也分解成4个方向,选取第二级其中的一个子图作为图像纹理提取的子图。
2.2.2 方向子图像分块
2.2.3 子块极性标定
根据子图I,找出该子图的平均值M,我们定义每一个子块为N,其中,为子块行列号。N主要用来统计每个子块内4 个系数中有多少个系数大于频带平均值M的个数,因此N最大为4,最小为0(见图5)。
图5 频带内4个系数构成的一个子块示意图
对选取纹理块的图像I进行2×2分块,得到了×的分块矩阵。为了安全起见,可以对分块矩阵进行置乱,找出每一个子图I的均值M。值得注意的是,频带的均值M就是纹理块的非零系数的均值,而非整个图像的均值。
接下来判断子块的极性B,根据子块内系数值大于均值M个数的多寡将子块的极性分成三大类:平滑区,纹理区和边缘区,分别用“0”,“1”,“2”代表。
我们根据下面准则划分子块极性:
准则A:对于低频子带图像I,按下列条件划分它的子块极性:
准则B:对于高频子带图像I,按下列条件划分它的子块极性:
通过实验发现,低频段低频系数不会因压缩而发生很大变化,高频系数可能因压缩而发生较大变化,因此为了提高数字水印的鲁棒性,本文对高频子块进行了严格的纹理划分。
2.2.4 纹理子块的纹理强度标定
根据纹理区域,计算出子图的纹理区的平均值M,再将M与纹理子块内系数值进行比较,根据纹理子块内系数值大于均值M个数的多寡将子块的强度B分成三大类:强纹理块、过渡块和弱纹理块,分别用“0”,“U”,“1”代表。
根据准则C划分纹理子块强度B:
准则:
其中P为纹理子块内系数值大于均值M的个数。
不等长密钥主要通过三态异或运算(TXOR)得到,它的运算规则见表1。将二值水印命名为W,W子块纹理强度为B,经过下列TXOR运算:
表1 TXOR运算表
将数字水印选择性地嵌入,从而得到一组只有拥有版权所有权的人才能有的密钥K,代表密钥长度。不等长密钥产生见图6,与一般的零水印算法不同之处在于:如果运算产生的K值为0,则W的值必须与下一个B的值再次进行TXOR 运算,直到产生的K值为1,W才会继续进行下一个值。
图6 水印嵌入示例图
提取过程前面步骤与嵌入过程相似,它的流程见图7。
图7 水印提取原理图
首先对待检测图像进行轮廓波变换,形态算子运算、分块映射,得到具有纹理特性的子图C。
准则D:
最后将一维水印图像转换为二维水印图像。通过提取过程来确定该检测图像是否含有版权保护的水印。
本文选取Lena(图8(a)),Man(图8(b)),Bridge(图8(c))这三张图像作为测试图像,每张图像大小为512×512且每个像素点为8 Bit,而二值水印为Watermark,Watermark,Watermark,每张图像大小为32×32个像素点。
图8 测试图像
图9 二值水印图像
和其它零水印算法不同,本文算法得到的密钥长度不一致,即用相同的水印嵌入不同的载体图像,在相同载体图像中嵌入不同的水印图像所产生的密钥长度也不相同(如表2),本文的水印长度为1024 Bit,该算法产生的密钥长度可能是水印长度的3~5倍。
表2 不同测试图像嵌入不同水印所产生的密钥长度(Bit)
零水印的水印算法由于不对原始图像嵌入信息,故不需要对其进行不可感知性测试。零水印算法的测试主要集中在攻击测试中,即在经过各种攻击后,该算法能否顺利提取出水印图像。在本文中,嵌入的水印图像为Watermark,通过噪声攻击、JPEG 压缩攻击、一定比例缩放攻击等方式来验证算法的鲁棒性。另外,本文算法与文献[8]算法进行比较,实验结果如下。
3.1.1 噪声攻击测试结果
图像在进行Contourlet 变换后,方向子带中会包含噪声。高斯噪声是以加性的形式对图像进行攻击的。噪声强度越大,影响就越大。如图10 所示,随着噪声强度的增强,相关系数(correlation coefficient,简称CC)值大幅度降低,这意味着提取的水印信息失真严重。尤其对于医学图像,提取效果很不理想。
图10 噪声攻击测试结果
3.1.2 JPEG压缩攻击测试结果
JEPG 压缩是第一个国际图像压缩标准。JEPG 压缩不仅有良好的压缩能力,而且重建的效果也很强,随着品质因子值的变小,其压缩强度就会更大,导致图像的失真现象也会更严重。图11 是在不同压缩质量下的水印提取情况,从值可以看出,该算法对JEPG 压缩有很好的鲁棒性,即使在较大的压缩程度下,值也可以达到0.83 左右。图片品质因子=10 的情况下,提取出的水印图片,可以清楚地分辨出原水印的信息内容,视觉效果良好。可知,本算法能有效地抵抗JEPG压缩攻击。
图11 三张图像对于JPEG攻击所承受程度
3.1.3 缩放攻击测试结果
由图12 可以看出,只能极限缩放到0.5 倍,CC 值最低为0.6,之后一直稳定在CC 值为1。比较高的攻击强度下,仍然可以较为清晰地提取出水印信息。所以,该算法对缩放攻击有一定的鲁棒性。
图12 缩放攻击测试结果
3.1.4 其他攻击测试结果(见表3)
表3 其他攻击测试结果
实验结果表明,本文提出的基于纹理强度的不等长零水印算法对图像处理(JPEG 压缩、噪声、缩放、滤波、剪切等攻击)具有很好的鲁棒性,提取的二值水印清晰可辨。特别是对于JPEG 压缩有更好的鲁棒性,即使压缩后的质量因素有很大的降低,仍然能够准确地提取出图像。本论文算法将图像特征分为三种状态,通过三态异或操作产生不等长密钥,在水印提取稳定性上稍强于文献[8]算法,故此,本文提出的算法在综合性能上稍强一些。
本文结合轮廓波原理实现了一种基于纹理强度的零水印算法。多方位、多分辨率的轮廓波变换能够很好地表达图像的纹理特征和轮廓信息,在此基础上,利用灰度数字形态学能很好地区分纹理块的强度,然后根据纹理的强度和水印生成密钥。与已有的零水印算法相比,该算法具有一些明显的优势。
(1)采用不等长密钥提高水印的安全性。该算法生成的密钥与水印图像大小不一致,增加了密钥破译的难度。
(2)图像纹理强度特征稳定性。图像的纹理块强度越大,该区域的信息隐藏效果越好。该密钥是以纹理块强度为图像特征,并用水印操作生成密钥,这种密钥稳定性好,不会因图像受到一般性攻击而发生变化。
仿真结果表明,本文提出的零水印算法能够在一定程度上抵抗JPEG 压缩攻击、剪切攻击、缩放攻击、噪声攻击、滤波攻击等攻击,并且可以在各种攻击下有效地提取水印。生成的密钥不容易被破解,具有较高的安全性。然而,该算法的不足之处是密钥长度偏大,容易增大密钥的存储空间,希望以后对其进行改进。