一种基于空格编码的PDF文本数字水印算法.pdf
一种基于空格编码的 PDF 文本数字水印算法 顾艳春;冯君婷【摘 要】提出一种基于空格编码和置乱技术的适用于PDF 文档的文本数字水印算法.首先,将水印图像进行置乱变换;其次,将原 PDF 文档转换成 PS 文件,PS 文件中保存有字符和位置信息.利用空格不可见的特点,在 PS 文件中叠加若干由空格组成的行,并利用空格的位置信息来嵌入水印信息值及水印的位置信息值;最后,将 PS 文件转换为含有水印的 PDF 文档.实验结果表明,该算法具有较好的可视性和鲁棒性.【期刊名称】佛山科学技术学院学报(自然科学版)【年(卷),期】2015(033)001【总页数】6 页(P76-80,87)【关键词】信息隐藏;空格编码;置乱技术;文本数字水印;PDF 文档【作 者】顾艳春;冯君婷【作者单位】佛山科学技术学院电子与信息工程学院,广东佛山 528000;佛山市第一人民医院计算机中心,广东佛山 528000【正文语种】中 文【中图分类】TP391.4 作为多媒体产权保护和信息安全维护的一种有效手段,数字水印技术已经成为信息处理领域的一个研究热点1-2。当前,数字水印的研究主要集中在图像、音频、视频等方面,对以文本文档为载体的数字水印研究较少 3。但是,文本数字水印同样具有很广阔的应用空间和重要价值4。由于文本文件的特殊性,在嵌入水印的方法上还存在一定的难度。目前,文本水印算法在基于文本格式、结构、语义、语法等方面的研究已取得了长足发展。Bender 等5从信息隐藏的角度提出对文本中特定单词进行同义词替换的方法。Brassil 等6提出了基于文本空间特征的水印嵌入算法。Zhao 等7提出了基于像素统计特征的信息隐藏方案。文献8-9分别提出了基于文本特征编码的二值文本水印方案。但是,文本数字水印技术在理论上尚未成熟,已有的研究结果普遍存在水印难以深入到文本的内容中、水印嵌入容量不足、鲁棒性较差、破坏原文档内容等问题10。PDF(Portable DocumentFormat)文档由于其独立于硬件及操作系统,可以方便地在不同计算机平台传播和共享,目前 PDF 文档已经发展成为网络信息传递中的主流文件格式。因此,研究基于 PDF 文档的数字水印技术,具有重要的应用价值11。本文在分析以往算法的基础上,提出一种根据 PDF 文档格式,利用空格编码原理,将不会影响文档视觉变化的空格插入文档中,并利用其对应PS 文件中的字符间距等信息,嵌入二值图像水印的算法。插入过程中,首先,对原水印图像进行置乱变换,提高嵌入水印的安全性和检测的准确率;其次,获取原文档对应的 PS 文件,找到各行中行位置信息和字符的间距信息,添加若干由空格字符组成的行,将置乱变换后的二值图像水印信息依据一定的规则嵌入到这些空格对应的间距信息中,同时,将水印的行值和列值信息嵌入到指定位置,作为检测水印的位置信息;最后,保存嵌入了水印信息的 PS 文件,并由此得到含有水印信息的 PDF 文档。1.1 PDF 文本表示方法和基于 PDF 的水印算法模型 PDF 文档的文字内容和页面格式可由相应的 PS 文件获得,PS 文件是用PostScript 语言编写的页面描述程序。PDF 和 PS 之间可以相互转换。为了简化页面描述过程和实现文档的随机定位,PDF 采用一种严格定义的文件结构,而 PS 能提供可读性较好的编程语言结构,所以利用 PS 文件更容易实现水印编、解码的操作,通过修改 PS 文件中页面输出格式来实现 PDF 文档水印的嵌入。基于此思想的数字水印模型12如图 1 所示。在水印编码过程中,先将 PDF 文档转换成 PS 文件,然后将处理后的水印信息嵌入到关于 PDF 文档格式的描述中,最后将修改后的 PS 文件转换成含有水印信息的 PDF 文档。水印解码时,同样先将 PDF 文档转换成 PS 文件,然后从 PS 文件的 PDF 页面格式描述中,依照某种方式提取出水印信息。1.2 空格编码算法原理 空格编码是指利用文本中的空白空间变换来加入水印。空格编码具有不易引起阅读者注意的优点。空格编码主要有三种实现方式:利用句间空格、利用行尾空格和利用字间空格13-14。第 1 种方法是在某个特征符号后插入一个或者两个空格来表示放入的信息数据,如在英文诗歌的每行后,C 语言源程序的每个分号后等等。这种方法具有如下缺点:首先是编码效率非常低;其次是数字水印的编码方法在一定程度上依赖于文本的内容类型,如有些散文诗缺乏特征字符来标记,一些字处理软件在一个或两个词后会自动插入空格等。第 2 种方法是在每一行的行尾插入空格。这种方法的好处在于几乎对所有的文本格式均可进行数字水印的加载,而且不易觉察。这种方法也存在着许多缺点,例如有一些软件会自动删除文本中行尾的空格,无法抵抗复制攻击,水印健壮性较差等。第 3 种方法是在词和词之间插入空格从而嵌入信息。为了区别插入的空格和原有的空格,可以使用类似曼彻斯特编码的方法进行编码和解码。这种方法的编码速率较前两种有显著提高。本文利用在 PDF 文件中加入空格不会引起读者视觉上的变化的特点,在 PDF 文件中叠加一些由空格组成的行,并利用所加行中各空格之间的字符间距值来嵌入水印信息。1.3 Arnold 置乱变换 Arnold 变换15又称猫脸变换,因为经常用一张猫脸演示而得名。Arnold 变换与其他一些置乱算法相比,变换简单且具有周期性,因此使用较为广泛。Arnold变换方程如下 其中,x,y(0,1,2,N-1)表示某一像素点的坐标,N 表示图像矩阵的阶数。经 Arnold 变换后的图像会变得混乱不堪,可以利用 Arnold 变换的这种性质来增加图像对某些攻击的抵抗力。当被置乱的图像遭到恶意攻击导致局部受到严重毁坏后,在置乱图像的恢复中,Arnold 变换将会把原来遭到毁坏的那部分分散开来,减少其对人眼视觉的影响,从而提高了数字水印的鲁棒性。对置乱后的图像继续使用 Arnold 变换,一定会出现一幅与原图相同的图像,即 Arnold 变换具有周期性。2.1 对水印图像置乱处理 水印图像为二值图像文件。对原水印图像,做 Arnold 置乱变换,置乱因子即变换次数,可作为检测水印的密钥。2.2 水印嵌入算法(1)运用 Arnold 置乱方法对原始二值水印图像 Iw(图像大小为 NN)进行 K次置乱,保存 K 作为提取水印时的密码,置乱后的图像记为 Iw。(2)将原始文档 Dp 转换为 PS 文件 Dps,获取行位置信息和字符间距信息。记行位置信息为 Lr,字符间距信息为 Lr(x,y)。(3)增加一些由空格字符组成的行,行位置信息为 Lr,将置乱后的水印图像值按下式(2)嵌入到字符间距信息中 其中,LL(x,y)为嵌入水印后的字符间距值,LL1(x,y)为初始字符间距值,可取 min(Lc(x,y),W1(x,y)为置乱后的水印信息值,P1 为加权因子,可调整此值获取嵌入容量和鲁棒性的折中,当此值较大时,嵌入容量有限,鲁棒性较好。当此值较小时,嵌入容量较大,鲁棒性较差。在嵌入过程中,应保证Lp,其中,Lp 为页边距,以防止新增加的行超出页边距。同时,将水印图像的位置信息也嵌入到字符间距值中。嵌入过程为:选取 PDF 文档增加的空格行的第 i 个字符间距作为水印位置信息的嵌入起始位置,选取此位置时,应尽量选取每行中间位置处。这是因为非法复制者经常选取中间位置处的内容,而且中间位置处的信息不容易发生改变,这样会提高水印提取的准确率。本文实验中,取 i=10,即选取每行第 10 个字符间距开始处,连续的 2*M 位作为水印信息的位置信息,其中 M=log2N。得到每行第 i+2*M 个字符间距嵌入水印的位置信息,将行列值分别转换为二进制数据,再将此位置的二进制的行列值信息按下式(3)填入此行从第 i 到 i+2*M 的字符间距信息内 其中,LL(x,y)为嵌入位置信息后的字符间距值,LL2(x,y)为初始字符间距值,W2(x,y)为位置信息值,P2 为加权因子,可适当调整此值增加鲁棒性。(4)将嵌入水印后的 PS 文件转换为 PDF 文件,从而得到含有水印的 PDF 文档。2.3 水印提取算法(1)将含有水印的 PDF 文档转换为 PS 文件。(2)取出所有由空格字符组成的行,读取字符间距值,获取嵌入的水印信息和位置信息(PDF 转换到 PS 过程中可能有很小的误差,实验中可考虑这些误差)。然后根据获得的位置信息值和水印信息值,得到二值图像。(3)将得到的二值图像进行反Arnold 置乱变换,得到提取出的水印图像。本文的实验以 Adobe distiller 9 为工具,图像处理环境为 Matlab 7.0,原始水印图像为 3232 的二值图像,Arnold 变换次数 K 为 3。图 2 给出了实验过程的部分数据。其中,LL1 取为 2,LL2 取为 3,P1 取为 5,P2取为 8。实验结果分析:可感知性方面,由人的肉眼来识别。用 NC 值来反映提取水印与原始水印的相似程度,计算公式如下 其中,w 表示原始水印图像的像素点,w表示提取出的水印图像中的像素点。NC越接近 1,说明提出的水印和原始水印越相似。图 3 给出了实验结果。由于水印算法的原理是在原始 PDF 文档上叠加由空格组成的行,因此,人眼观测到的嵌入水印后的文档与原图完全一致,从中提取出的水印图像跟原始水印图像完全相同,具有很好的效果。同时,笔者也对嵌入水印后的文档做了一些攻击,以检测水印提取算法的鲁棒性。对于 PDF 文档,最常见的操作方法就是裁剪。为此,裁剪出其中的一段,根据裁剪出的这一段 PDF 文档,利用水印提取算法对其分析,得到如图 4 所示的水印图像。由图 4 可以看出,即使是裁剪出比较小的一部分文档,仍然能检测出含有的水印图像。由以上结果可以看出,本文提出的算法信息隐藏能力较强,嵌入效果较好,水印提取算法具有一定的鲁棒性。另外,笔者也做了在水印提取时置乱因子值不符的实验,实验结果表明,当密码不正确时,基本不可能提取到正确的水印。本文针对 PDF 文档的特点,提出了一种适用于 PDF 文档的水印嵌入方案。实验结果表明,本算法具有较好的透明性、可视性和较强的鲁棒性。同时,利用 Arnold置乱技术,进一步增强了水印的安全性和健壮性。水印检测结果准确,从而具有较强的实用性。但本文提到的算法只能针对 PDF 文档,而且,不能应对文字识别软件类的攻击。1LUCS,LIAO H YM.MultipurposeWatermarking for Image Authentication and ProtectionJ.IEEE Transactions on Image Processing,2001,10(10)1579-1592.2COX I J,MILLER M L.Watermarking Application and Their PropertiesC/International Conference on Information TechnologyCoding and Computing.Las Vegass.n.,200027-29.3KIM YW,OH S.Watermarking textdocument images using edge direction histogramsJ.Pattern Recognition Letters,2004,25(11)1243-1251.4COX L J,MILLERM L.The First50 YearsofElectronicWatermarkingJ.EURASIPJofApplied SignalProcessing,2002(2)120-132.5BENDERW,KUTTERM.Multimediawatermark techniqueJ.Proc of IEEE,1999,87(7)1077-1079.6BRASSIL J,LOW S,MAXEMCHUK N F.Copyright Protection for the Electronic Distribution of Text DocumentsJ.Proceedingsof the IEEE,1999,87(7)1181-1196.7ZHAO J,KOCH E.Embedding Robust Labels into Images for Copyright ProtectionC/The Int Congress on Intellectual Perperty Rights for Speciallized Information,Knowledgeand New Technologies.Vienna,Austrias.n.,19958.8RABAH K.Steganography-the ArtofHiding DataJ.Information Technology Journal.2004,3(3)245-249.9SHIRALIS.A New Approach to Persian/Arabic Text Steganography Computer and Information ScienceC/5th IEEE/ACIS InternationalConference.Honolulu,USAs.n.,2006310-315.10王飞燕,李峰,陈松贵.基于一维正态云模型的半脆弱文本水印J.计算机工程与设计,2008,29(17)4578-4580.11张秋余,余冬梅,管伟.中文 PDF 文档数字水印算法J.计算机工程与设计,2007,28(24)5983-5987.12顾艳春,杨扬.一种基于 PDF 文档和置乱技术的文本数字水印技术J.佛山科学技术学院学报自然科学版,2009,27(2)43-46.13STEFANK.Information Hiding Techniques for Steganography and DigitalWatermarkingM.BostonArtech House,2000.14傅瑜,王保保.文本水印附加空格编码方法的实现及其性能J.长安大学学报,2002,22(3)85-87.15ARNOLDEA,AVEZA.Ergodic problemsofclassicalmechanicsM.New JerseyBenjamin,W A,1968.