🍍原文: 基于小波变换的数字水印技术
🍍写在前面: 本文属搬运博客,自己留存学习。虽然原文标题聚焦于 “小波变换”,但实际上原文介绍了数字水印技术的整体情况。
前言
离散小波变换不仅可以较好地匹配人类视觉系统的特性,而且兼容 J P E G 2000 \mathsf{JPEG2000} JPEG2000 和 M P E G 4 \mathsf{MPEG4} MPEG4 压缩标准,利用小波变换产生的水印具有良好的视觉效果和抵抗多种攻击的能力,因此基于 D W T \mathsf{DWT} DWT 的数字水印技术是目前的主要研究方向。
离散小波变换(Discrete Wavelet Transformation,简称 DWT)
本案例围绕基于小波变换的数字水印技术,对数字水印的原理、算法、流程进行了讲解,并进行了数字水印攻击分析。
1 理论基础
数字水印通常可以分为鲁棒 r o b u s t \mathsf{robust} robust 数字水印和易损 f r a g i l e \mathsf{fragile} fragile 数字水印两类,从狭义上讲,数字水印一般特指鲁棒数字水印。本章主要针对鲁棒数字水印进行案例讲解与分析。
✒️ 鲁棒数字水印
主要用于在数字作品中标示著作权信息,利用该水印技术在多媒体内容的数据中嵌入不可见的标示信息。在发生版权纠纷时,标示信息用于保护数据的版权所有者。用于版权保护的数字水印要求有很强的鲁棒性和安全性。
✒️ 易损数字水印
与鲁棒数字水印的要求相反,主要用于完整性保护,该水印技术同样是在多媒体内容的数据中嵌入不可见的信息。当内容发生改变时,这些水印信息会发生相应的改变,从而可以鉴定原始数据是否被篡改。易损水印必须对信号的改动很敏感,人们根据易损水印的状态就可以判断数据是否被篡改过。
鲁棒数字水印主要用于在数字作品中标示著作权信息,易损数字水印主要用于判断数字作品是否被篡改。
不同领域对数字水印有不同的要求,但一般而言,鲁棒数字水印应具备如下特点:
- 不可感知性:嵌入水印前后的图像必须在视觉上没有任何差别,即产品的质量和价值不受影响。
- 鲁棒性:嵌入水印后的图像在受到攻击时,水印依然存在于载体数据中,并可以被恢复和检测。
- 安全性:嵌入的水印难以被篡改或伪造,只有授权机构才能检测出来,非法用户不能检测、提取或者去除水印。
- 计算复杂度:水印的嵌入算法和提取算法的计算复杂度,复杂度直接与水印系统的实时性相关。
- 水印容量:载体数据中可嵌入多少水印信息,从几兆到几个比特不等。
2 数字水印技术原理
数字水印技术实际上就是通过对水印载体的分析、水印信息的处理、水印嵌入点的选择、嵌入方式的设计、嵌入调制的控制和提取检测方法等相关技术环节进行合理优化,寻求满足不可感知性、鲁棒性和安全性等约束条件下的最优设计问题。在实际应用中,一个完整水印系统的设计通常包括水印的 生成、嵌入、检测、提取 四个部分。
2.1 水印生成
通常基于伪随机数发生器或混沌系统来产生水印信号,从水印的鲁棒性和安全性方面来考虑,常常需要对原水印进行预处理来适应水印嵌入算法。
2.2 水印嵌入
在尽量保证水印不可感知性的前提下,嵌入最大强度的水印,可提高水印的稳健性。水印的嵌入过程如下图所示,虚线框表示水印嵌入算法不一定需要的数据。常用的水印嵌入准则有 加法准则、乘法准则、融合准则。
2.3 水印检测
水印检测是判断水印载体中是否存在水印的过程。水印的检测过程如下图所示,虚线框表示水印检测算法不一定需要的数据。
说明:上图中符号打了一撇的数据,和前面出现过的数据之间存在对应关系。
2.4 水印提取
水印提取是水印被比较精确地提取的过程。水印的提取和检测可以分为:
- 明检测:需要原始图像的参与;
- 盲检测:不需要原始图像的参与;
水印的提取过程如下图所示,虚线框表示水印提取算法不一定需要的数据。
说明:上图中符号打了一撇的数据或算法,和前面出现过的数据或算法之间存在对应关系。
3 典型的数字水印算法
当今的数字水印技术已经涉及多媒体信息的各个方面,数字水印技术研究也得到了很大的进步,尤其是针对图像数据的水印算法繁多,下面对一些经典的算法进行分析介绍。
3.1 空间域算法
空间域算法是数字水印最早的一类算法,它阐明了关于数字水印的一些重要概念。空间域算法一般通过改变图像的灰度值来加入数字水印,大多采用替换法,用水印信号替换载体中的数据。主要的算法有:
- LSB 算法原理:利用人眼对数字图像亮色等级分辨率的有限性,用水印信号替换原图像中像素灰度值的最不重要位或者次不重要位。这种方法简单易行,且能嵌入较多信息,但是抵抗攻击的能力较差,攻击者简单地利用信号处理技术就能完全破坏消息。正是由于这一点,LSB 算法能够有效地确定一幅图在何处被修改了。
- Patchwork 算法原理:基于统计学的方法,将图像分成两个子集,其中一个子集的亮度增加,另一个子集的亮度减少同样的量。这个量以不可见为标准,整幅图像的平均灰度值保持不变,在这个调整过程中完成水印的嵌入。同时,使用一个密钥来初始化一个伪随机数,该伪随机数规定了在载体中放置水印的位置。该算法的隐蔽性好,对有损压缩和 FIR 滤波有一定的抵抗力,但其缺陷是嵌入信息量有限,对多拷贝平均攻击的抵抗力较弱。
- 纹理块映射编码算法原理:将一个基于纹理的水印嵌入到图像的具有相似纹理的一部分当中。该算法基于图像的纹理结构,因而很难察觉,同时对于滤波、压缩和旋转等操作具有抵抗能力。
3.2 变换域算法
目前变换域算法主要包括:傅里叶变换域 D F T \mathsf{DFT} DFT、离散余弦域 D C T \mathsf{DCT} DCT、离散小波变换 D W T \mathsf{DWT} DWT。
基于变换域的数字水印技术相对于基于空间域的数字水印技术通常具有更多优势,抗攻击能力更强,比如一般的几何变换对基于空间域的算法影响较大,而对基于变换域的算法却影响较小。但是基于变换域的算法的水印嵌入和水印提取操作复杂,隐藏信息量不能太多。
- 傅里叶变换是一种经典而有效的数学工具, D F T \mathsf{DFT} DFT 水印技术是利用图像的 D F T \mathsf{DFT} DFT 相位和幅值嵌入信息,一般利用相位信息嵌入水印比利用幅值信息鲁棒性更好,而利用幅值嵌入水印则对旋转、缩放、平移等操作具有不变性。 D F T \mathsf{DFT} DFT 水印技术的优点是具有仿射不变性,还可以利用相位嵌入水印,但 D F T \mathsf{DFT} DFT 技术与国际压缩标准不兼容导致抗压缩能力弱,且算法比较复杂、效率较低,因此限制了它的应用。
- D C T \mathsf{DCT} DCT 水印技术的主要思想是在图像的 D C T \mathsf{DCT} DCT 变换域上选择中低频系数叠加水印信息。选择中低频系数是因为人眼的感觉主要集中在这一频段,攻击者在破坏水印的过程中,不可避免地会引起图像质量的严重下降,而一般的图像处理过程也不会改变这部分数据。该算法不仅在视觉上具有很强的隐蔽性、鲁棒性和安全性,而且可经受一定程度的有损压缩、滤波、剪切、缩放、平移、旋转、扫描等操作。
- D W T \mathsf{DWT} DWT 是一种 “时间——尺度” 信号的多分辨率分析方法,它具有良好的空频分解和模拟人类视觉系统的特,而且嵌入式零树小波编码 E Z W \mathsf{EZW} EZW 将在新一代的压缩标准中被采用,符合国际压缩标准,小波域的水印算法具有良好的发展前景。 D W T \mathsf{DWT} DWT 水印算法的优点是水印检测按子带分级扩充水印序列进行,即如果先检测出的水印序列已经满足水印存在的相似函数要求,则检测可以终止,否则继续搜寻下一子带扩充水印序列直至相似函数出现一个峰值或使所有子带搜索结束。因此含有水印的载体在质量破坏不大的情况下,水印检测可以在搜索少数几个子带后终止,提高了水印检测的效率。
3.3 其他水印算法
基于压缩域、基于 NEC 算法和生理模型的数字水印算法。其实数字水印算法正在不断地发展和前进中日益完善,但是仍然存在许多不足,具有更加深入的发展空间,这就需要我们在不断的学习和探索中寻找具有更好性能的新算法。
4 数字水印攻击和评价
数字水印攻击是指带有损害性、毁坏性的,或者试图移去水印信号的处理过程。鲁棒性是指水印信号在经历无意或有意的信号处理后,仍能被准确检测或提取的特征。鲁棒性好的水印应该能够抵抗各种水印攻击行为。水印攻击分析就是对现有的数字水印系统进行攻击,以检验其鲁棒性,分析其弱点所在及其易受攻击的原因,以便在以后的数字水印系统的设计中加以改进。
对数字水印的攻击–般是针对水印的鲁棒性提出的要求。按照攻击原理,水印攻击一般可以划分为简单攻击、同步攻击和混淆攻击,而常见的攻击操作有滤波、压缩、噪声、量化、裁剪、缩放、抽样等。
- 简单攻击: 是指试图对整个嵌入水印后的载体数据进行减弱嵌入水印的幅度,并不识别或者分离水印,导致数字水印提取发生错误,甚至提取不出水印信号。
- 同步攻击: 是指试图破坏载体数据和水印的同步性,使水印的相关检测失效或恢复嵌入的水印成为不可能。被攻击的作品中水印仍然存在,而且幅值没有变化,但是水印信号已经错位,不能维持正常提取过程中所需的同步性。
- 混淆攻击: 是指试图生成一个伪水印化的数据来混淆含有真正水印的数字作品。虽然载体数据是真实的,水印信号也存在,但是由于嵌入了一个或多个伪造水印,所以混淆了第一个水印,失去了唯一性。