陈 青,黄鹏波
(上海理工大学 光电信息与计算机工程学院,上海 200093)
一种基于PDF字符颜色的文本水印算法
陈青,黄鹏波
(上海理工大学 光电信息与计算机工程学院,上海200093)
摘要针对目前PDF文档频繁使用程度与其数字水印技术发展缓慢之间的鲜明反差,提出了一种基于PDF字符颜色的文本水印算法。该算法通过修改PDF文档中字符颜色操作符的操作数,将预处理后的水印信息嵌入至载体PDF文档。在水印嵌入的预处理过程中,采用的信道编码和循环加密算法以及水印提取后处理过程中,采用的多数投票算法,有效地提高了水印信息的安全性和鲁棒性。实验结果表明,该算法具备高隐蔽性、强鲁棒性、大容量的特点,且算法与PDF文档之间的兼容性较好。
关键词PDF文档;文本水印;字符颜色编码;隐蔽性;鲁棒性
随着公司、政府机构和教育机构利用电子文档交换信息取代纸质文档进行业务精简带来的影响和机遇,PDF文档以其优越的跨平台、跨媒体、文档保护特性迅速成为了电子文档流通过程中的工业标准[1-2]。然而,伴随互联网技术的发展,信息传播过程中诸如盗版等问题时刻威胁着原创作者的权益,因此PDF文档相关数字水印技术的发展是当今重要的研究课题。
目前针对PDF水印技术的主流算法主要分为3类[3]:基于PDF文档格式编码算法、基于PDF文档属性编码算法、基于PDF文档内容编码算法。第一类算法主要有HuangSi-min等人提出的新建对象算法[4]和钟征艳及顾艳春等人提出的参照表空白字符算法[5-6],二者在隐蔽性,鲁棒性及容量取得了较好的效果,但新建对象算法PDF内部复杂的对象流关系容易造成文档崩溃;参照表空白字符算法局限于PDF1.5以下版本使用。第二类算法主要有李计勇和Bhattacharyya D等人提出的基于特征编码算法[7-8]以及Brassil和Walid Alakk等人提出的基于字移[9]、行移算法[10],二者在隐蔽性和鲁棒性取得了较好的效果,但是容量方面并不理想而且算法复杂。第三类算法主要有林建新等人提出的基于汉字语法语义算法[11],算法对文档进行了可见性破坏且算法容量有限。本文利用字符颜色操作符(g,rg,sc,scn)对文本字符颜色的微调操作,通过解压PDF文档的内容流进而编码字符颜色操作符的操作数完成水印信息的嵌入。实验结果表明,该算法的水印隐蔽性较好、容量较大、鲁棒性较高、操作简单,能切实有效的达到对PDF文档的版权保护作用。
1水印算法
1.1水印预处理
水印预处理是水印信息被嵌入载体信息前确保水印信息安全性的关键步骤,而实现该关键步骤的手段主要有加密和编码技术。首先,加密技术可有效地确保信息被截获时,截获者不能轻易获得信息的真实内容或者意义;其次,编码技术可有效地保证信息被攻击后,收信者依然可以根据编码规则还原原始信息。二者的结合既保证了水印系统的安全性,又保证了水印系统的鲁棒性。为了提高安全性和鲁棒性,本算法结合了循环加密和信道编码这两大关键技术。具体步骤如下:
步骤1ASCII码值转换。获取用户输入的水印信息和密钥,按照ANSI编码标准,将水印信息转换为8位的二进制序列,记作w,即w=w1w2…wM,其中wI=0/1,1≤I≤M。将密钥转换为8位的二进制序列,记作k,即k=k1k2…kn,其中,kI=0/1,1≤I≤n。
步骤2循环加密。将水印二进制序列w和密钥二进制序列k进行一一对应的循环取模加密,得到加密后的二进制序列,记作x。即x=x1x2…xM,其中xI=wI⊕kI,1≤I≤L。其中,L=max(M,n)。若M>n,则先对密钥二进制序列k进行补0到长度L;若M 步骤3信道编码。首先依次从x中取出4位二进制序列,记作xI,即xI=x4jx(4j+1)x(4j+2)x(4j+3),其中0≤I≤(L/4-1),0≤j≤(L/4-1)。然后依次对xI进行(7,4)汉明码编码,得到(7,4)汉明码编码后的二进制序列,记作yI,即yI=x4jx(4j+1)x(4j+2)x(4j+3)zjz(j+1)z(j+2),其中,1≤I≤L/4,0≤j≤(L/4-1)。最后依次将yI连接成信道编码后的二进制序列,记作y,即y=y1y2…yj。 步骤4同步编码[12]。在水印信道编码后的二进制序列y的头部加入同步标识f以及长度标识n,得到待嵌入二进制序列,记作M。同步标识为8 bit二进制序列,即f=f1f2f3…f8;长度标识n为16位二进制序列,即n=n1n2n3…n16。最终生成待嵌入二进制序列M,即M=f1f2…f8n1n2…n16y1y2y3…yL/4。 1.2PDF文档字符属性截取 根据文献[13]所述,PDF文档中所有的对象流(Object Stream)均通过加密字典(Encryption Dictionary)进行加密处理。加密后的对象流如图1所示。正是Adobe公司提供的加密处理,其有效限制了应用程序使用者直接对对象流的修改,从而提高了PDF文档的安全性能。尽管所有的对象流都经过加密处理,Adobe公司同时也为PDF应用程序开发人员提供了对象流的解密方式,即加密字典。通过对加密字典中各项条目的解析并采用相应的解密方法即可还原对象流的原始信息[14]。 如图1所示,PDF文档采用的主流加密方式为Flate Encode,因此采用相同的Flate Decode解密方式即可获得对象流中格式化的原始信息,其中包括各种标识符、操作符、操作数以及字符编码。解密后的对象流如图2所示。 图1 加密后的对象流 图2 解密后的对象流 PDF字符颜色属性由内容流中的3种操作符控制,包括DeviceGray操作符g、DeviceRGB操作符rg以及DeviceCMYK操作符sc和scn,其相应取值范围均为[0.0,1.0]。每组文本标识内容包含一个字符颜色操作符以及其对应的操作数,由于BT-ET对的数目取决于文档内容。因此,这将导致算法的水印容量不可确定。本算法在字符颜色编码算法中有效地解决了此问题。 1.3字符颜色编码 本算法通过修改字符颜色操作符相应的操作数作为嵌入水印信息的手段,记该操作符和操作数分别为P和P。其中P的取值范围为:[0,1]。一般情况下,P的默认为g,P默认值为0。根据人类视觉系统特点可知,若颜色分量的每个数值的变化量<0.004(约1/256),肉眼是几乎无法识别字符颜色的变化。由于BT-ET对的数目取决于文档内容,因此算法的水印容量是不可确定,本算法通过对每组BT-ET对进行单个字符拆分以保证水印容量足够大。其中,英文字母和数字体现为一个TJ操作符控制一个字母或数字;中文字符体现为一个TJ操作符控制一个中文字符。拆分字符以及字符编码过程的具体步骤如下: 步骤1检索当前BT-ET对的颜色操作符P并记录操作数P; 步骤2修改或者写入当前字符的颜色操作数P并写入颜色操作符P。若P为g,则根据嵌入的二进制序列修改或写入P的千分位数值;若P为rg,则根据嵌入的二进制序列依次修改或写入P1、P2、P3的千分位数值;若P为sc或者scn,则根据嵌入的二进制序列依次修改或写入P1,P2,…,Pn的千分位数值; 步骤3拆分TJ的操作数。按照TJ操作数的格式依次从TJ操作数中拆分出一个字符并加上操作符TJ写入新BT-ET对中。若TJ的操作数为中文字符,则拆分出4位16进制字符;若TJ的操作数为英文字母或者数字,则拆分出1位字符。重复步骤3直到TJ的所有操作数被拆分完全。 步骤4重复步骤1,步骤2,步骤3直到所有BT-ET对被拆分完全。 拆分完成后的对象流如图3所示。 图3 拆分完成之后的对象流 1.4水印嵌入和提取 水印嵌入模型和水印提取模型如图4所示。 图4 水印嵌入模型和水印提取模型 结合图4(a),水印嵌入的具体步骤如下: 步骤1按照ANSI标准,分别转换水印信息w和密钥信息k为二进制序列。 步骤2对水印信息w和密钥信息k的二进制序列进行循环加密,得到二进制序列x。 步骤3对二进制序列x进行信道编码,生成新的二进制序列y。 步骤4对二进制序列y进行同步编码,生成新的二进制序列M。 步骤5以二进制文本形式打开原始PDF载体文档,遍历文本,解析文档,先定位字符颜色操作符P,再逐次定位字符颜色操作数P。 步骤6采用字符颜色编码的方式,对PDF文档进行二进制序列M中0、1比特的循环嵌入。 步骤7生成嵌入水印后的PDF文档。 结合图1(b),水印提取的具体步骤如下: 步骤1以二进制文本形式打开待检测PDF文档,遍历文本,解析文档,先定位字符显示操作符P,再逐次定位字符间距操作数P。 步骤2对PDF文档字符颜色解码,提取出内嵌的水印二进制0、1 bit流M′。 步骤3对比特流M′进行同步解码,提取出循环嵌入的多个水印二进制序列y′。 步骤4对比特流y′进行信道解码,提取出循环嵌入的多个水印二进制序列x′。 步骤5根据长度标识对各个水印二进制序列x′进行多数投票运算,得出水印信息的有效长度,并提取出准确的水印二进制序列x″。 步骤6按照ANSI标准,转换密钥信息k为二进制序列。 步骤7对水印二进制序列x″和密钥信息k的二进制序列进行循环解密,得到最终的二进制序列w′。 步骤8按照ANSI标准,将最终水印二进制序列w′转换为水印字符串,并以此作为水印信息输出。 2实验及结论 本算法在Visual C++ 6.0软件环境下,使用C语言搭建了PDF文本水印嵌入和提取平台,实现了将任意文本作为水印信息嵌入PDF文档以及相应的水印提取。选取含有中文和英文的PDF文档作为实验文档,对水印隐蔽性、容量和鲁棒性、安全性进行了相关实验,实验及结论如下。 (1)隐蔽性。本次实验选取的载体PDF文档如图5(a)所示。嵌入水印后的PDF文档如图5(b)所示。 图5 原始PDF文档和嵌入水印后的PDF文档比较 对比载体文本和嵌入水印后文本,可以看出,人眼直接观察,难以察觉二者间的细微差别;但通过对字符颜色的读取对比可以看出字符颜色的变化。实验结果表明,本算法具有较好的隐蔽性。 (2)鲁棒性。根据文本水印的鲁棒性评价方法[15]可知,文本水印的攻击方式一般包括噪声、注释、剪切、替换、增删等攻击。由于PDF文档本身具备防编辑防替换和防剪裁等保护功能,因此具备一定的抗攻击性。此外根据文献所述,PDF文档中文本、表格、图像等都被封装至不同的对象中,内容经注释、剪切、替换、增删等攻击后的内容都将被更新封装在新的对象中,不会对本算法使用的字符间距编码造成影响。实验中采用添加高斯白噪声背景图对嵌入水印后的PDF进行攻击,攻击后的PDF文档及其提取结果如图6所示。 图6 噪声攻击后的PDF文档及其提取结果 对嵌入水印后的PDF文档进行高亮攻击,具体包括加高亮、下划线、删除线、替换、标注等。高亮攻击后的PDF文档及其提取结果如图7所示。 图7 高亮攻击后的PDF文档及其提取结果 实验结果表明,本算法对噪声、注释、剪切、替换、增删等攻击后的PDF文档仍能完整的提取出水印信息,因此本算法具有较好的鲁棒性。 (1)容量。选取8个PDF载体文档进行算法容量测试实验,得出的容量测试结果如表1所示。 由表1可看出,本算法的容量和载体文档字符数有关,字符数越多,嵌入容量越大。ASNI编码标准规定:一个中文字符对应2 Byte,一个英文字符对应1 Byte。根据测试结果中的平均水印嵌入比率可得出,要嵌入10个中文字符即20 Byte的水印信息仅需304个字符,这完全满足日常生活中版权保护的要求。 表1 容量测试数据表 对于水印系统来说,隐蔽性、容量和鲁棒性三者之间存在相互抑制的关系。本算法中,对PDF载体文档嵌入最大容量的水印信息后,水印系统依然能保持较好的隐蔽性。因此,本算法在保证隐蔽性的情况下仍具有较大的容量。同时,本实验还对嵌入最大容量后的PDF文档进行噪声攻击,攻击后仍可以提取出完整的水印信息,算法在隐蔽性、容量和鲁棒性中能达到一个较好的平衡。 (2)安全性。本算法采用了循环加密以及同步编码算法,对水印信息进行了加密编码预处理,所以即使攻击者破解了嵌入算法得到所嵌水印,在没有密钥的情况下还是无法提取到正确的水印信息。此外,本算法的密钥空间足够大,理论上而言密钥的长度可与水印容量一致。 输入错误的密钥信息,其对应的提取结果如图8所示。 图8 错误密钥的提取结果 实验结果表明,错误的密钥无法提取出正确的水印信息,因此本算法具有较高的安全性。 3结束语 本文针对目前现有PDF文本水印算法存在的缺点,提出了一种基于PDF字符颜色的文本水印算法。通过修改PDF文档中字符颜色操作符的操作数并拆分TJ操作符的操作数的方式,实现了PDF文档中水印信息的嵌入和提取且该算法具备无PDF版本约束,不破坏PDF文档本身结构,无需进行PDF与PS文件间的格式转换的特点。实验结果表明,本算法具有较好的隐蔽性、鲁棒性、安全性和较大的容量且与PDF格式文档具有良好的兼容性,在中英文PDF文档保护方面具有广泛的应用前景。 参考文献 [1]Victor Arribas,Liuis Casas,Eugenia Estop,et al.Interactive PDF files with embedded 3D designs as support material to study the 32crystallographic point groups[J].Computers & Geosciences,2014,62(3):53-61. [2]Xu Rui,Cheng Xiaojun,Shi Jinqiao.A multiple watermarking algorithm for texts mixed chinese and english[J].Procedia Computer Science,2013(17):844-851. [3]Nighat Mir.Copyright for web content using invisible text watermarking[J].Computers in Human Behavior,2014(30):648-653. [4]Huang Simin,Sun Xingming,Fu Zhangjie.A novel information hiding algorithm based on page object of PDF document[C].UU,USA:Distributed Computing and Applications to Business,Engineering and Science,2011. [5]钟征燕,郭燕慧,徐爱国.基于PDF文档结构的数字水印算法[J].计算机应用,2012,32(10):2776-2778,2782. [6]顾艳春,冯君婷.一种基于空格编码的PDF文本数字水印算法[J].佛山科学技术学院学报:自然科学版,2015,33(1):76-80. [7]李计勇.面向PDF文档对象的安全保护系统设计与实现[D].哈尔滨:哈尔滨工业大学,2009. [8]Bhattacharyya D,Haveliya A.A robust method for data hiding via combination of colour images and PDF files[C].Xi’an:Communication Systems and Network Technologies,2012. [9]Brassil J T,Low S H,Maxemchuk N F.Copyright protection for the electronic distribution of text documents[J].Proceedings of the IEEE,1999,87(7):1181-1196. [10]Walid Alakk,Hussain Al-Ahmad,Alavi Kunhu.A new watermarking algorithm for scanned gray PDF files using DWT and hash function[C].Berlin:Communication System,Networks & Digital Signal Processing,2014. [11]林建新,唐向宏,王静.一种基于纠错编码的可逆文本水印算法[J].计算机应用与软件,2015,32(1):303-308. [12]Zhou Jing,Huang Zhiping,Su Shaojing.Blind frame synchronization of reed-solomon coded optical transmission systems[J].Optik-International Journal for Light and Electron Optics,2013,124(2):998-1002. [13]Adobe Systems Incorporated.PDF reference[EB/OL].(2014-06-11)[2015-01-22]http://www.adobe.com/devnet/pdf/pdf_reference_archive.html. [14]Nuria Ortigosa,Vicente M Gimenez.Raw data extraction from electrocardiograms with portable document format[J].Computer Methods and Programs in Biomedicine,2014,113(1):284-289. [15]陈青,邢晓溪.格式化文本水印性能评估基准研究[J].计算机应用研究,2014,31(9):2764-2768. A Text Watermarking Algorithm Based on Character Color of PDF CHEN Qing,HUANG Pengbo (School of Optical-Electrical and Computer Engineering,University of Shanghai for Science and Technology,Shanghai 200093,China) AbstractFor the current significant contrast between the active usage rate of PDF documents and the slow development of their digital watermarking technology,a text watermarking algorithm based on character color of PDF is proposed.The algorithm embeds the pre-processed watermark into PDF carrier document by modifying the operand of character color operator of PDF.The security and robustness are enhanced by using channel coding and cycle encryption in pre-processing of watermark insertion as well as majority voting in post-processing of watermark extraction.Experiments show that the algorithm has good transparency,strong robustness,high capacity and good compatibility with PDF. KeywordsPDF document;text watermarking;character color coding;transparency;robustness doi:10.16180/j.cnki.issn1007-7820.2016.05.026 收稿日期:2015-09-29 基金项目:上海自然科学基金资助项目(12ZR1420800) 作者简介:陈青(1962—),女,副教授。研究方向:数字水印技术,图像编码等。黄鹏波(1989—),男,硕士研究生。研究方向:数字水印技术,图像编码等。 中图分类号TP309.2 文献标识码A 文章编号1007-7820(2016)05-096-05