文本水印技术研究综述

2020-04-16 05:29赵卫娟关虎黄樱张树武
关键词:鲁棒性字符间距

赵卫娟,关虎,黄樱,张树武

(1.中国传媒大学 信息工程学院,北京 100024;2.中国科学院自动化研究所,北京 100190)

1 引言

互联网与多媒体的快速发展使数字化信息传播更为方便快捷,自媒体的发展也导致越来越多的电子产品如文档、图像、视频、音频等的广泛传播。在电子出版物快速传播的同时也为网络版权侵犯制造了暖床,如出现未经版权所有者同意便肆意复制传播、私自删除篡改数字作品等侵权行为。从保护电子产品的版权问题,及秘密通信等版权保护信息安全等要求出发,数字水印作为一种最重要的版权保护技术应运而生。电子文档作为数字信息传播的重要载体,其版权保护重要性不言而喻。文本水印技术为保护电子产品的版权提供了行之有效的解决方案,近年来有大量学者对文本水印技术展开了研究。

本文主要从文本水印的概念、性能特点、基本框架及现有文本水印算法等方面进行介绍,并分析现有的水印算法的优缺点,展望了今后文本水印技术的研究和发展方向。

2 文本水印技术概述

2.1 文本水印技术的概念

数字水印技术是指将一些特殊信息即数字水印(数字、文字、图片等)直接嵌入到多媒体、软件等数字载体中去,或者是通过修改载体某些特殊区域的内容和形式结构来间接嵌入水印的一种技术,并可以反向提取出嵌入到载体内容或结构里面的特殊信息。而且在原始载体中嵌入水印后它的使用价值不受影响,即嵌入水印后的载体和原始载体外观看起来一致,水印信息不容易被感知和再次修改。但是所有者可以提取、识别和辨认水印信息。这些载体经过嵌入特定标识的水印信息,便可以对内容创作者以及购买版权者进行身份确认,也能够对特殊信息的隐蔽表现以及对文档、图像、视频、音频等载体是否被篡改做出判断。数字水印技术是保证信息安全、实现版权保护的有效途径。文本水印根据其载体不同,可分为基于PDF、WORD、EPUB等不同文本文档类型的水印。

2.2 文本水印技术的性能特点

文本水印系统要成为用户值得信赖的应用体系,必须要在水印信息完整性鉴定和产品版权保护方面满足一些必要的条件。不同文本类型对于水印特性要求不同,大部分的文本水印应满足以下的要求:

(1)不可见性:嵌入水印信息后原始文本载体不应被明显改动,即人眼不可察觉,并且使受保护的数字媒体质量也不应该有明显失真。

(2)鲁棒性:带有水印信息的文本载体在一般的信号处理、几何变换后仍能正常提取出可以验证版权所有者的水印信息。

(3)安全性:主要是指攻击者在未被授权时不能删除、篡改或完整地提取出水印信息。通常采取密钥的方式来生成水印以保护水印的安全性。

(4)容量:是在载体不发生明显改变的情况下,文本载体所能嵌入的最大水印信息量。水印信息应能包括版权所有者的关键信息,或者版权购买者一些特殊的标识信息。

2.3 文本水印技术的基本框架

一般来说文本水印系统的基本框架应该包括水印嵌入和水印提取两部分。

水印嵌入:文本水印嵌入系统输入的是文本载体、水印信息和一个可选的公钥或者私钥,输出为含有水印信息的新载体。水印信息可以是包含版权所有者或者购买者的特殊标识,以任何形式存在。密钥在未经授权的删除、篡改和提取时用来保护水印信息的安全性。

水印嵌入过程如图1所示。

图1 水印嵌入模型

水印提取:文本水印提取是水印嵌入的逆过程,主要用来提取载体中的水印信息。水印提取系统输入的是原始文本载体(盲水印算法不需要输入原始文本载体)、待检测的文本载体和密钥,输出为水印信息。水印提取过程如图2所示。

图2 水印提取模型

3 文本水印现有算法综述

概括来说,文本分为三大类:①非格式化文本;②格式化的文档,常见的有Word、WPS、PDF、PostScript等;③像素矩阵形成的图像型文档[1]。近年来学者们对于不同类型的载体文本提出不同的水印算法,现有的文本水印算法主要分为五类:①基于文档格式的水印算法;②基于文档结构的水印算法;③基于自然语言处理的水印算法;④基于传统二值图像处理的水印算法;⑤其他算法。

3.1 基于文档格式的水印算法

(1)行间距编码

行间距编码是根据微调文档行间距来嵌入水印信息[2]。Brassil等[3]提出关于行间距编码具体方法是每三行里只调整最中间的那一行的行间距,与它相邻两行的行间距离维持不变来作为参考系。通过小幅调整中间那行的间距距离来嵌入水印信息。

Huang Hua等[4]利用汉字文本的特点改进了Brassil的行间距编码和相应的质心检测方法。具体实现是从文档的第二行起,对剩下的各行均进行行间距移动。惠路华[5]也对Brassil的行间距算法做出了改进,提出了将水印信息嵌入到正弦波中并以正弦波的周期性特点嵌入到文档的行间距信息中去。

(2)字间距编码

字间距编码是指在一行字符信息中改变某些字符之间距离来嵌入水印信息,其中改变的字符其相邻位置的字符距离不做变换,以作为参照[1][3]。

Ding Huang等[6]将水印信息嵌入到正弦波中,然后根据正弦波的周期特点来修改行的字间距,即同一行字间距一致,不同行的字间距按照正弦波来变化。Hyon-Gon等[7]针对上述算法存在缺点提出了根据正弦波正交性来嵌入水印信息的方法,此方法增加了水印容量。Kim等[8]提出一种单词分类和单词空间统计的文本水印方法,即位置相邻的单词被分为一组,然后对分到一组的单词再进行分类,以修改每一个细分类的单词间隔来嵌入相同数量的水印信息。Nopporn[9]针对非英语语言如泰文的文档提出了一种新的文档隐藏数据方法,该方法是以序列编码来改变字符间距离进行水印嵌入。Yang Hui-juan等[10]提出利用字间距和词语间距来进行水印嵌入,通过比较水印嵌入之前和嵌入之后的文档字符部分的哈希值来确认文档的完整性。谭瑛[11]利用字符偏移嵌入水印信息,将水印编码转换为二进制,并将这些二进制代码依据字间距离为标准距离时嵌入水印信息“0”,字间距离增加0.0035厘米时嵌入水印信息“1”的规则实现水印的嵌入。谭瑛提出的算法因为水印嵌入依靠文档字符,所以水印容量受到限制。专利[12]提出了一种基于PDF格式的自适应文本水印方法,该方法基于PDF格式利用二次剩余理论自适应地选择要进行自移编码的字符位置,对整篇文档进行字符间距编码。专利[13]提出了一种基于字符间距编码的双重水印嵌入方法,将水印信息转换成二进制序列再进行纠错编码,第一种是将水印信息通过修改字符的无页面属性值true或false来嵌入二进制序列的“0”或“1”,第二种是通过修改字符间距离来嵌入水印信息。张秋余等[14]把PDF文件与PS文件相互转化时生成的字符特征码进行加密得到和文本内容相关的水印信息,然后根据水印信息修改文档字符间距。

(3)特征编码

特征编码是指通过修改字符的特殊属性来隐藏水印信息,其中包括字符的色彩属性、字形选择、是否加粗、是否带有下划线、字符效果等[1]。特征编码对格式化文本和以像素描述的图片型文本的水印嵌入有很大实用性[3]。

Borges等[15]提出一种修改字符亮度属性特征来嵌入水印信息,基于脉冲幅度调制通信通过在人眼观测不到的范围内微调文档字符间距和字符亮度,修改字符间距避免字符间的干扰。Shirali Shahreza等[16]介绍了一种针对波斯语和阿拉伯语的文字的隐藏信息方法,波斯语和阿拉伯语中在一行中间轴上下存在很多的笔划,通过对这些笔划进行垂直方向上做出改变来嵌入水印信息。Stefan Thiemert等[17]提出了一种基于矢量字体的盲水印方案,通过修改曲线之间的对称性以嵌入二进制水印信息。赵东宁等[18]根据云模型的特点设计了一种改变行间距和字符间距的水印嵌入方法,水印信息由云滴的坐标表示,根据云滴数值来进行行间距和字间距的调整来嵌入水印信息。李兵兵等[19]以Word文档的结构属性中的文本域为单位通过改字体大小来嵌入水印信息,对所有文本域添加属性后将其格式化,当嵌入信息为“0”时若文本域值为偶数则不变,值为奇数则加1,当嵌入信息为“1”时如文本域为奇数则不变,为偶数时加1。邢晓溪[20]根据现有的特征属性提出一种结合字体大小及颜色属性的水印算法,利用线性同余对水印嵌入位置做了随机处理和人眼对于细微的颜色及字体调整不敏感来进行信息隐藏,当嵌入水印信息为“0”时修改字符颜色属性,当嵌入水印信息为“1”时修改字体大小。

(4)空格编码

空格编码也称不可见编码。Ding Huang等[21]提出了在文本行与行之间、句末、段落末尾之前插入空格来嵌入水印信息。徐振[22]通过在文档单词之间的空格冗余来嵌入水印信息,将各单词之间的空格取消,然后根据水印信息来修改要嵌入的空格位置。

通过修改文档格式的这四种算法中,都和文本的格式内容相关,嵌入水印都留于文档表层。基于修改行间距的水印算法不可见性较差,文本行数有限,可修改的行数一定,所以水印容量较小,嵌入规则明显,提取方便,鲁棒性最好。基于修改字间距的水印算法不可见性好于行间距算法,因为调整一个字符间的距离比调整一整行的间距幅度要小,更不易被人眼发现,而且字符之间嵌入水印信息比行与行之间嵌入水印信息的容量有所提升,同行间距算法一样,字间距提取水印是也方便简易,但其鲁棒性较差。基于修改特征属性水印算法不可见性良好,容量相对行间距算法有所提升,但文档在经过多次复制后水印信息容易丢失其鲁棒性较差,且因为其嵌入方式特殊,所以相对行间距和字间距算法提取起来较为繁琐。基于空格的水印算法不可见性良好,容量受插入空格限制,有的编辑器会对空白行进行处理,所以其鲁棒性较差。上述算法都是基于空间域的水印嵌入方法,水印信息的嵌入主要依靠格式形式的隐蔽性,水印信息无法抵挡对于文本格式的修改攻击。一个简单地字体修改或者擦除重录就可以使水印信息受到破坏。因此基于文档格式的水印算法的缺点都集中在鲁棒性较差、抗攻击性不强这两方面。

3.2 基于文档结构的水印算法

李兵兵等[23]基于文档的压缩格式提出了两种水印算法,第一种是分析ZIP文档结构将水印信息隐藏到一个文档中,然后再嵌入到压缩源文件数据区中,之后删除压缩源文件目录区的记录并修改文件目录结束标志,第二种在Word中分析ZIP格式结构解析出扩展字段的压缩源数据,把十六进制的水印信息嵌入到空白的扩展字段。康守权[24]提出一种修改文本中特定属性值来嵌入水印的算法,首先对水印信息和分组后文本内容进行MD5算法加密得到新的水印信息,对分好组的三组文本修改颜色属性,当嵌入信息为“1”时则修改颜色属性为wdCoiorGray95,当嵌入信息为“0”时则不做修改。因为嵌入式分了三组,所以当发生篡改的情况可以通过其他组的水印信息进行纠正。刘友继等[25]通过分析PDF文件的物理逻辑结构提出了一种基于PDF文档结构的水印嵌入方法,通过读取PDF文件尾信息找到交叉引用表然后获取对象信息,通过伪造合法页面对象和修改废弃页面对象来嵌入水印信息。通过此方法实现PDF文档的信息隐藏与提取。钟征燕等[26]分析PDF文档物理结构找出一个不影响文档内容输出的交叉引用表中行末标识符,通过将行末标识符统一修改为 ,当嵌入信息为“1”时修改行末标识符为 ,当嵌入信息为“0”时则不做修改,以此进行版权保护。李高远[27]根据PDF文档结构特点提出了两种水印算法,第一种通过分析PDF文档结构找出“comment”特殊形式的对象修改其内容并不会对文档显示有所影响,comment对象为解释对象其中内容并不在PDF页面中显示,所以将水印信息伪造成comment对象嵌入到PDF文档,第二种根据PDF文件修改后只会生成新的页面对象并更新交叉引用表和文件尾,所以通过伪造一个生成号为0的废弃页面对象来嵌入水印信息。顾艳春等[28]提出一种基于PDF文档结构的空格编码水印算法,原始水印为为一张图像运用置乱算法将水印图像处理为二值图像,将PDF文件转换为PS文件提取行间距和字符间的距离信息,通过增加一些有空格组成的行,将二值图像信息嵌入到这些空格行中去,同时生成的水印行的位置信息嵌入到指定位置作为检测标志,最后生成嵌入水印图像的PDF文件。徐振等[22]根据Word文档结构中存在一些删除插入等修改标识符提出了基于修改标识符的水印算法,对加密后的水印信息转成长度为6的倍数嵌入到经过解析的Word文档中w:rsidRPr属性值,并在其后添加水印标志eastAsia。

3.3 基于自然语言处理的水印算法

基于自然语言的水印技术是指通过分析文本内容对一些词句进行同义更替,但是不改变原文的含义且不影响文本观看阅读使用意义。基于自然语言处理的水印算法一般分为基于句法结构的自然语言处理和基于语义的自然语言处理。

Sun XM等[29]通过基于文本内容中部分汉字为左右结构而嵌入水印信息。王炳锡等[30]在充分领会文档内容的基础上,对全文进行了词意划分和语法划分,最后对划分后的内容进行同意替换或者间接等手段来进行水印信息嵌入。Bennett K等[31]根据文本信息隐藏技术提出了基于字符、词汇和语法的水印嵌入算法。Mikhail Atallah J等[32]提出通过修改单个词语来嵌入水印信息,在理解全文的基础上增加或删减“的”字且不改变全文含义。

基于自然语言处理的水印算法因为不用修改原文档任何结构所以在鲁棒性上有了大幅提升,同时可以抵抗对于复制、打印、扫描等攻击。由于该算法的研究对象是针对文本内容词语句子结构语法关联等,对于水印信息的嵌入往往需要自然语言处理的支撑及计算机处理人类语言的发展。且基于句子结构、语法等的水印嵌入在实际应用中受到很多限制,在很多情况下不允许修改文本的一字一句,比如政府颁布的文件、医学上治疗手册等具有特殊性严格性的文本。此外基于自然语言处理的算法依赖于文本词句语法等内容其可嵌入的水印信息容量受到限制。

3.4 基于传统二值图像处理的水印算法

基于二值图像的文本水印算法是指将文本转化为一幅二值化的图片文档,进行分块处理后在不同数字块之间进行信息隐藏。

Wu M等[33]根据传统二值图像处理的思想对分块后的黑白像素进行奇偶分类来进行水印隐藏。赵星阳等[34]提出一种基于字符阶梯边沿调整的数字水印算法,调整文本上下两部分的阶梯边沿使两部分黑色像素数值比大于阈值来嵌入水印信息0,小于阈值嵌入水印信息1。张驰[35]提出了一种基于分块像素翻转的水印算法,首先筛选要嵌入水印的汉字,对筛选后的汉字按照其构成的水平和竖直方向进行分块,对角线上的两块分别配对,通过翻转黑白像素已调整配对间黑色像素差值来进行水印的嵌入。

基于二值图像的文本水印算法是指将文本转化为一幅二值化的图片文档,进行分块处理后在不同数字块之间进行信息隐藏。现有的文本图像处理方法对于特征提取及精确处理有一定的难度,文本特征不同于图像,在转换过程中增加不必要的环节,复杂度变高造成时间浪费,且转化成图片之后其受噪声等影响更大,鲁棒性变差。

3.5 其他算法

除上述四类算法外,还有一些其他类型算法。如Qingcheng Li等[36],Paulo Borges等[37]通过使用数学公式来描述汉字形式进行水印嵌入这样对原文本内容输出并无影响,这种算法是一种新的水印生成嵌入方向,这种方法可以绕过图像处理,从而更简化水印嵌入算法。Wengang Cheng等[38]将原始水印信息分成有顺序的几个有序片段,然后将水印片段嵌入到文档字符的冗余信息中去,当某个片段被删除篡改攻击之后丢失便可通过其他序号相同的正确片段来恢复被破坏的水印信息。专利[39]提出一种EPUB文档的数字水印嵌入方法和装置及提取方法和装置,嵌入时获取待处理EPUB文档,将预设密钥嵌入到图像中得到数字水印文件,对数字水印文件加密生成加密字符串,将加密字符串写入许可文本文件并嵌入待处理文档中,得到含有水印的文档。专利[40]提出一种在Word文档中嵌入隐藏的追踪水印的方法,在Word文档中添加一个含有水印内容的书签,设置为隐藏,将书签替换为一个InlineShape对象,并设置为不可见,再将InlineShape对象转化为Shape对象,将其放在正文外边缘区域的随机位置上。陈翔[40]提出一种顺序连接的分层数据水印算法,包括载体层、水印层、加密层和校验层,载体层的采集模块将水印信息进行信息隐藏并传递给水印生成模块,并通过水印层的嵌入模块进行水印嵌入。

其他算法的提出一般都适用于特殊场合特殊文本载体,不能现实推广使用,此处不再赘述。

根据研究对象即PDF文档的特点:文档结构简单易掌握,根据上一节的各个算法的分析对比得出基于文档结构的水印算法在水印容量、不可见性、鲁棒性等综合起来比其他算法都要适用于PDF文档的水印研究,所以选取基于文档结构的水印算法来嵌入水印。提出了基于PDF文档结构的双重水印算法验证文档版权所有者和内容完整性,修改PDF逻辑结构颜色属性值的水印方法和修改PDF物理结构ID值的水印方法重复地进行水印嵌入。该算法解决了基于PDF文档结构文本水印算法在统计攻击中的缺点,且在鲁棒性上有良好的表现。

3.6 基现有算法优缺点对比分析

通过以上综合和分析,各种算法的在水印容量、不可见性、鲁棒性的表现及优缺点如表1所示。

表1 各种算法的优缺点对比

借助文档结构本身特点来嵌入水印的方法相对前三种方法数字水印容量、不可见性、鲁棒性均可达到一个较好的平衡。这类算法的原理是在PDF的文档物理结构上做出修改,寻找不影响文档页面显示输出的特殊结构,比如注释和交叉引用表的行末标识符,都是基于程序修改,所以其不可见性要高于其他算法。在电子出版物在互联网上的出版传播及版权交易中的版权保护和侵权追踪有良好的发展前景。

4 总结

通过前面的分类介绍和优缺点分析,各种水印算法在水印容量、不可见性及鲁棒性的表现各有不同。其中基于自然语言处理的水印算法鲁棒性最好,基于文档格式的水印算法鲁棒性最差,基于传统二值图像处理的水印算法最为复杂,基于文档结构的水印算法在各方面表现较优秀。未来文本水印的发展可以在文本载体的普遍适用性上进行深入研究,可以设计一些定量的评估水印性能的参数来进行水印算法的评估。

猜你喜欢
鲁棒性字符间距
开始和结束
非均匀间距的低副瓣宽带微带阵列天线设计
武汉轨道交通重点车站识别及网络鲁棒性研究
论高级用字阶段汉字系统选择字符的几个原则
荒漠绿洲区潜在生态网络增边优化鲁棒性分析
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
一种基于三维小波变换的鲁棒视频水印方案
基于鲁棒性改进理论的大面积航班延误治理分析