一、数字水印通用框架
数字水印是永久镶嵌在其他数据(宿主数据)中具有可鉴别性的数字信号或者模式,且不影响宿主数据的可用性。多用于版权保护和数据溯源。
数字水印通用框架主要分为水印添加阶段和水印提取阶段。
-
水印添加阶段:将原始数据和通过密钥加密的水印内容输入到水印添加算法,获取到含水印的数据。较之原始数据,含水印的数据只会有细微的变化,不易被人眼观察到。
-
水印提取阶段:将含水印的数据,通过水印提取算法来判断是否含有水印,提取水印的具体内容,进而定位到数据的具体来源。
二、数字水印评价指标
一般,从以下五个维度来评价数字水印:
-
隐蔽性:是指添加的水印是否容易被发现。
-
容量:是指水印算法可嵌入的水印长度。
-
鲁棒性:是指添加水印后的数据遭到攻击和破坏后,还能被正确提取的能力。
-
实用性:是指实际使用算法中要考虑的因素,如:计算性能、内存存储消耗等。
-
安全性:指水印不能被非法篡改、替换,及没有密钥的情况下不能进行水印内容的提取等能力。
三、数据水印的主要分类
1、图片水印
1)LSB水印:
LSB水印是一种简单的添加水印方法。
由于图片像素取值范围在0-255之间,由八个bit表示的。改变最低位的0,1取值,对于图像的整个质量影响很小,肉眼基本看不出什么变化。对于具体的像素值来说,插入0的地方变成了偶数,插入1的地方变成了奇数
优点:实现简单;缺点:鲁棒相差。
2)变换域水印
当前最常见的数字图片水印是基于变换域的水印,例如离散小波变换DWT、余弦变换DCT等。通常将待插入水印图片或水印字符串转换为二值化数据,插入原始图片的变化域中,肉眼看不出与原始图片的差异,后续也可以提取出水印内容。此外,图片剪裁、遮挡攻击,尽管会导致提取结果的质量有所下降,但是依然可以判断出水印信息。
2、文本水印
文本水印可分为三个大类:
-
基于排版的文本水印:利用不同的行间距和字间距、字体、字号的微小改变,添加水印。
-
基于特定字符的文本水印:零宽字符、加空格、换行符等。
-
基于自然语言的文本水印:同义词替换、句法变换等。更隐蔽,实现复杂度高。
1)基于零宽字符的文本水印
在Unicode编码中,存在很多的就是不可见字符,以及不占位的字符。利用这类字符,可以构造出文本水印。图中的两种“北京市朝阳区”肉眼看上去并没有区别,但其实在第二行的“北京市”后面插入了很多的零宽字符,字符串的长度发生了变化。
2)基于不同空格的文本水印
基于不同空格文本水印的举例:在Unicode编码中,存在不同编码的空格,如半宽空格、全角空格、1/3空格等。从上图中可以看出,不同空格在宽度上略有不同,可用于水印嵌入。
3)基于自然语言的文本水印
基于自然语言文本水印的举例:原始文本是“我的妈妈今年30岁,她是北京人,是一名医生”。同义词替换时,通过同义词的对照关系,可以做01编码去嵌入水印。句法变换时,往往涉及到省略,指代和替换,甚至句式上的变动。基于自然语言的文本水印方法将水印和内容嵌合在一起,提高了水印的鲁棒性。但是它本身也有弊端的,例如,可能会导致语言风格上的变化,或引入歧义。
3、数据库水印
数据库水印是在2002年首次被提出。不同于其他类型的水印,它要求加入的水印对数据可用性影响尽可能小,甚至不能造成微小的精度丧失。因此,主流的研究方向是可逆水印,即:在添加水印后可恢复原始数据。
针对数据库中数值型和字符型数据类型,有不同的水印添加方式。
-
对于数值型,大部分水印添加方式都是从图像算法延伸扩展的,例如:基于最低有效位的(不可逆水印)、直方图平移、差值直方图平移和差值扩展素算法(可逆水印)。
-
对于字符型,主要有两大类:一类是基于特定字符,如空格,大小写切换,半角全角等;另一类是基于自然语言,如同义词替换。
一般来讲,图片水印有空间维度上的约束。文本水印有上下文的约束。不同于它们,数据库的元组和元组之间强关联性比较弱。因此,数据库水印添加阶段,需要添加一个预处理步骤,可分为三部分:
-
数据预处理:对元组和属性列进行排序操作,用来防止随机打乱类的攻击;接着,应用优化算法(如遗传算法,萤火虫算法、模拟退火等)确定最佳的水印嵌入位。在保证最小数据失真的前提下,嵌入更多水印容量来提升水印的鲁棒性。
-
水印嵌入:如上所述的水印嵌入算法。
-
水印提取:针对拿到的泄露数据库,可进行水印提取
数据库水印方案的要点:
-
水印包含的信息:人员ID,时间、系统都是可包含在水印中的信息。这样一来,就可以知道数据是通过谁,在什么时间,通过什么途径泄露的。
-
在敏感属性中添加数字水印:避免黑产清洗过滤掉水印。
-
全元组插入水印:在所有行里插入水印,提升水印提取的有效性。因为往往在情报获取的环节,只能获取少量的泄漏样本。
-
多重水印添加方式:基于特定的字符、基于自然语言。
-
水印验证和篡改检测:引入纠错码、奇偶验证等方法,验证水印的准确性,检测是否被篡改。
四、数字水印的挑战
数字水印领域尚有很多未解决的问题,例如:
-
通用性的水印添加方式的易分离去除:通用性的水印添加方式经常伴随着和被保护内容的分离,容易被探测并去除掉。比如文本水印中的加空格或者是零宽字符,网页水印与页面内容的分离。
-
针对超短文本、特定信息的水印添加方法:诸如手机号,身份证号等信息对精确性要求很高,且有固定的数据格式,无法容忍改动。对于这类信息,如何更加有效地去添加水印是值得探索的问题。
-
水印算法在时间消耗**和空间存储上的优化
五、一些问题
1、数字水印一般要解决什么问题?
1)防伪和认证:
数字水印可以用于防伪和认证,确保数字内容的真实性和合法性。它可以帮助确认文件、图像、音频或视频的来源,防止盗版和未经授权的复制。
2)版权保护:
数字水印是一种保护知识产权的方法,可以嵌入到数字媒体中,以追踪和证明版权所有权。这对于艺术品、音乐、电影等数字媒体的创作者和版权所有者非常重要。
3)追踪和溯源:
数字水印还可以用于追踪和溯源非法传播的数字内容。通过嵌入唯一标识符,可以追踪到信息的传播路径,有助于取证和打击非法活动。
2、数字水印技术面临哪些挑战?
-
鲁棒性与隐蔽性的平衡:
-
鲁棒性是指数字水印在经历压缩、旋转、裁剪等操作后仍能够有效提取,而隐蔽性是指水印对原始数据的影响应该是不可察觉的。在提高鲁棒性的同时保持足够的隐蔽性是一个持续的挑战。
-
-
抗攻击性能:
-
数字水印需要对各种攻击保持抵抗能力,包括信号处理攻击、几何攻击、压缩攻击等。设计能够抵御这些攻击的水印算法是一个复杂而关键的问题。
-
-
多模态应用:
-
随着多模态数据(图像、音频、视频等)的广泛应用,数字水印技术需要能够在这些不同类型的数据中实现嵌入和提取。跨模态水印的设计是一个具有挑战性的问题。
-
-
大规模应用的效率问题:
-
在大规模的数字媒体应用中,如视频流、社交媒体等,数字水印算法需要足够高效,以处理大量的数据,而不引起系统性能下降。
-
-
深度学习的崛起:
-
随着深度学习技术的发展,人们开始研究基于深度学习的水印算法。然而,深度学习模型对于对抗性攻击的鲁棒性仍然是一个挑战。
-
3、常见的数字水印算法
1)空间域数字水印:
通过调整载体图像的像素值完成水印信息的嵌入。
优点:计算方便、实现简单
缺点:鲁棒性不强,抗攻击能力弱
常用算法:
-
LSB(最低有效位算法):通过修改像素值的最低比特位实现水印信息的嵌入
-
Patchwork算法:在原始载体图像中任意选取两组像素,一组的像素亮度进行定量的增减,另一组与前一组相反,以两组像素子集的平均差值作为嵌入信息。相比于LSB。鲁棒性更强,水印的容量有所降低。
2)域数字水印
-
基于傅里叶变换的数字水印:
-
直接在信号的傅里叶频谱中嵌入水印信息是一种常见的方法。通过修改傅里叶变换的幅度或相位,可以将水印信息嵌入到频域中。这通常应用于图像、音频和视频数字水印。
-
-
基于相位编码的数字水印:
-
水印信息可以嵌入到信号的相位谱中,而不修改幅度。这种方法依赖于信号相位的敏感性,使得水印更难以被检测或去除。
-
优点:
-
频域性质: 利用信号在频域的表示,使得水印可以被嵌入到信号的频率分量中,提高了鲁棒性。
-
抗压缩性: 一些频域变换,如DCT,在图像压缩中有较好的抗性,使水印在图像经过压缩后仍能较好地保留。
-
隐蔽性: 水印的嵌入通常不太容易被察觉。
缺点:
-
容量有限: 频域水印的容量通常受到信号频域分辨率的限制,可能无法嵌入大量信息。
-
易攻击: 一些频域水印可能对一些攻击,如干扰或滤波攻击,较为敏感。
-
图像变换: 部分方法对图像的旋转、缩放等变换不太鲁
3)变换域数字水印算法:
将数字水印信息嵌入导原始载体图像的频率域中,将水印信息平均的分布到载体图像的各个像素中。
优点:鲁棒性和不可见性有了大幅提升。能很好的实现兼容。
缺点:计算复杂度高。隐蔽性与鲁棒性的平衡很难把握
常用算法:
-
DCT(离散余弦变换)数字水印算法:根据水印信息修改载体图像离散余弦变换域中的中低频系数
-
DWT(离散小波变换)数字水印算法:将数字图像分解成不同频率的多个子图像,然后根据各子图像的特征进行水印信息的嵌入。
可逆数据隐藏(Reversible Data Hiding, RDH):