APP下载

简析基于文档结构的PDF水印算法

2019-05-24王梓颖李德

电脑知识与技术 2019年7期
关键词:数字水印

王梓颖 李德

摘要:针对互联网上数字内容的多渠道传播导致的盗版数字内容及篡改等问题,该文提出了一种基于PDF文档结构的数字水印算法。该算法通过分析PDF文档结構,利用其内容流的特性,根据PDF文档的读取规则,在多余页面对象中嵌入所需要的水印信息,从而实现信息隐藏。实验结果表明该算法具有良好的不可感知性,其抗攻击性和鲁棒性也有更好的保障,可以用来对PDF文档进行信息隐藏,达到版权保护的目的。

关键词: PDF文档;多余页面对象;数字水印

中图分类号:TP3 文献标识码:A

文章编号:1009-3044(2019)07-0067-02

开放科学(资源服务)标识码(OSID):

PDF(Portable Document Format)是一种被广泛使用的便携式文档格式。它继承了PostScript语言图像模型独立于硬件平台及操作系统的特性[1],使用Adobe Acrobat Professional和Adobe Distiller可以相互转换[2]。基于PDF文档与PS文件的可相互转换性,有学者提出了一种在互相转换过程中修改文档参数以达到嵌入水印信号目的的方法[3],然而该算法无法较好地对抗格式攻击,在文档格式发生细微变化时水印便会遭到破坏。

上文所述算法是基于PDF文档格式的水印算法,除此之外,传统使用的算法还包括,间接地将交叉引用表中行末不可见标识符替换为水印信号;基于PDF与PS的工作机制的相似性,在文档字符间距中嵌入水印信息等方法。而这些传统算法主要是利用PDF文档格式进行试音的嵌入,本文提出的算法以文档结构为基础,以多余文档页面对象为载体,不会因文档格式变化而受到影响。

1 PDF文档结构

PDF文档结构主要包括四个部分:文件头、文件体、交叉引用表以及文件尾[4]。其中文件体为PDF文档的主体内容,包含一系列描述文档内容的页面对象;交叉引用表即为一个索引目录,可从中查找页面对象在文件中的位置;文件头用来给出文档的规范版本号;文件尾可理解为指向交叉引用表地址的指针。

如上图所示,其中的“3”表示页面对象的唯一序号,可用于交叉引用表中对象的查找;“0”表示生成号,以区分不同对象;obj为页面内容的开始,与之对应的是末尾的endobj;页面对象的具体内容定义在<<与>>之间;stream与endstream之间定义的是流对象;BT与ET之间定义的是文本对象[4]。

当修改PDF文档时,原对象不会发生改变,而是增加新的对象,并在交叉引用表中附加一段对象修改记录,原有引用表不改变。结构变化如下:

2 PDF文档数字水印算法设计

修改文档内容后,由于新增交叉引用表,故所修改对象的地址会发生变化,文档阅读器在显示文档时会显示最后修改的对象内容。而未被文档阅读器读取的页面即为多余页面,不会引起文档结构和文档内容的变化。

步骤一,选取水印信息A,为进一步加强其安全性,使用密钥K对水印信息进行加密处理得到密文序列A。

步骤二,将密文序列A嵌入多余页面对象,作为第0个页面对象m,其页面内容为w=“0 0 obj\r\n<>\r\n endobj”,为了与其他页面对象进行区分,并更方便地提取水印信息,这里的对象号设置为0。

步骤三,根据文档阅读器的文档读取规则,在PDF文档的第x个页面对象的endobj关键字与第x+1个页面对象的obj关键字之间插入多余页面对象m。

步骤四,令交叉引用表中不具有该多余页面对象的地址,即文档阅读器无法根据交叉引用表对页面进行读取。

3 实验结果及分析

在该算法中,由于文档阅读器在读取文档时,是由文件尾找到交叉引用表,再根据交叉引用表表项中的地址找到具体的页面对象。在读至当前页面对象的endobj关键字后停止读取,再转至其他页面对象由obj关键字处开始,因此嵌入在两页面对象之间的含水印多余页面不会被读取到,从而具有较好的不可感知性。

PDF文档中的行间距、字体大小、字形等无法进行改变,故实验对嵌入水印后的PDF文档进行格式上的攻击时考虑了文字增删、页面裁剪及页面删除等,对修改后的文档进行水印提取,可提取到完整正确的水印内容,因此可证明该算法对格式攻击具有良好的抵抗性与鲁棒性。同时,实验还对算法的对抗其他攻击的性能进行了试验,例如对文档进行了解压缩测试,提取进行了解压缩后的PDF文档中的水印,仍可提取到水印信号,说明该算法可抵抗压缩攻击。

从表格中可清晰看出,该算法具有较强的鲁棒性,且算法简单,适用范围广,具有明显的优势。

4 总结

本文对一种基于PDF文档格式的数字水印算法从原理到结果分析等进行了简析,将加密后的水印信息组装为多余页面对象嵌入到文件内容流序列中,根据文档阅读器对PDF文档的读取规则可知,嵌入的多余页面对象不会被读取出,即该页面对读者不可感知,从而达到信息隐藏的目的。通过实验将该算法与传统水印算法进行了简单比较,可知该算法具有更好的抗格式攻击性,且具有较强的鲁棒性与安全性。

参考文献:

[1] 李高远.两种新型PDF文档水印算法[D].西安科技大学,2016.

[2] 张秋余,余冬梅,管伟.中文PDF文档数字水印算法[J].计算机工程与设计,2007(24):5983-5984+5987.

[3] Zhu B, Wu J, Kankanhalli M S. Render sequence encoding for document protection[J].IEEE Transactions on Multimedia. 2007, 9(1): 16-24.

[4] 陈青,卢宇鹏.基于PDF格式的数字版权保护算法[J].电子科技,2016,29(5):108-111+116.

【通联编辑:代影】

猜你喜欢

数字水印
基于遗传优化的自然语言文本数字水印方法
基于网屏编码的数字水印技术
分形压缩在数字水印技术中的应用研究
基于小波变换的数字水印技术
基于数字水印的人脸与声纹融合识别算法
一种多传感器图像融合与数字水印技术
基于图像纹理复杂度的小波域数字水印算法
Haar小波在数字图像水印算法上的探究
多重加密的数字水印生成方法
基于矩阵分解和混沌置乱的数字水印算法