陳 青,黃鵬波
(上海理工大學 光電信息與計算機工程學院,上?!?00093)
?
一種基于PDF字符顏色的文本水印算法
陳青,黃鵬波
(上海理工大學 光電信息與計算機工程學院,上海200093)
摘要針對目前PDF文檔頻繁使用程度與其數(shù)字水印技術(shù)發(fā)展緩慢之間的鮮明反差,提出了一種基于PDF字符顏色的文本水印算法。該算法通過修改PDF文檔中字符顏色操作符的操作數(shù),將預處理后的水印信息嵌入至載體PDF文檔。在水印嵌入的預處理過程中,采用的信道編碼和循環(huán)加密算法以及水印提取后處理過程中,采用的多數(shù)投票算法,有效地提高了水印信息的安全性和魯棒性。實驗結(jié)果表明,該算法具備高隱蔽性、強魯棒性、大容量的特點,且算法與PDF文檔之間的兼容性較好。
關(guān)鍵詞PDF文檔;文本水印;字符顏色編碼;隱蔽性;魯棒性
隨著公司、政府機構(gòu)和教育機構(gòu)利用電子文檔交換信息取代紙質(zhì)文檔進行業(yè)務精簡帶來的影響和機遇,PDF文檔以其優(yōu)越的跨平臺、跨媒體、文檔保護特性迅速成為了電子文檔流通過程中的工業(yè)標準[1-2]。然而,伴隨互聯(lián)網(wǎng)技術(shù)的發(fā)展,信息傳播過程中諸如盜版等問題時刻威脅著原創(chuàng)作者的權(quán)益,因此PDF文檔相關(guān)數(shù)字水印技術(shù)的發(fā)展是當今重要的研究課題。
目前針對PDF水印技術(shù)的主流算法主要分為3類[3]:基于PDF文檔格式編碼算法、基于PDF文檔屬性編碼算法、基于PDF文檔內(nèi)容編碼算法。第一類算法主要有HuangSi-min等人提出的新建對象算法[4]和鐘征艷及顧艷春等人提出的參照表空白字符算法[5-6],二者在隱蔽性,魯棒性及容量取得了較好的效果,但新建對象算法PDF內(nèi)部復雜的對象流關(guān)系容易造成文檔崩潰;參照表空白字符算法局限于PDF1.5以下版本使用。第二類算法主要有李計勇和Bhattacharyya D等人提出的基于特征編碼算法[7-8]以及Brassil和Walid Alakk等人提出的基于字移[9]、行移算法[10],二者在隱蔽性和魯棒性取得了較好的效果,但是容量方面并不理想而且算法復雜。第三類算法主要有林建新等人提出的基于漢字語法語義算法[11],算法對文檔進行了可見性破壞且算法容量有限。本文利用字符顏色操作符(g,rg,sc,scn)對文本字符顏色的微調(diào)操作,通過解壓PDF文檔的內(nèi)容流進而編碼字符顏色操作符的操作數(shù)完成水印信息的嵌入。實驗結(jié)果表明,該算法的水印隱蔽性較好、容量較大、魯棒性較高、操作簡單,能切實有效的達到對PDF文檔的版權(quán)保護作用。
1水印算法
1.1水印預處理
水印預處理是水印信息被嵌入載體信息前確保水印信息安全性的關(guān)鍵步驟,而實現(xiàn)該關(guān)鍵步驟的手段主要有加密和編碼技術(shù)。首先,加密技術(shù)可有效地確保信息被截獲時,截獲者不能輕易獲得信息的真實內(nèi)容或者意義;其次,編碼技術(shù)可有效地保證信息被攻擊后,收信者依然可以根據(jù)編碼規(guī)則還原原始信息。二者的結(jié)合既保證了水印系統(tǒng)的安全性,又保證了水印系統(tǒng)的魯棒性。為了提高安全性和魯棒性,本算法結(jié)合了循環(huán)加密和信道編碼這兩大關(guān)鍵技術(shù)。具體步驟如下:
步驟1ASCII碼值轉(zhuǎn)換。獲取用戶輸入的水印信息和密鑰,按照ANSI編碼標準,將水印信息轉(zhuǎn)換為8位的二進制序列,記作w,即w=w1w2…wM,其中wI=0/1,1≤I≤M。將密鑰轉(zhuǎn)換為8位的二進制序列,記作k,即k=k1k2…kn,其中,kI=0/1,1≤I≤n。
步驟2循環(huán)加密。將水印二進制序列w和密鑰二進制序列k進行一一對應的循環(huán)取模加密,得到加密后的二進制序列,記作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文檔字符屬性截取 根據(jù)文獻[13]所述,PDF文檔中所有的對象流(Object Stream)均通過加密字典(Encryption Dictionary)進行加密處理。加密后的對象流如圖1所示。正是Adobe公司提供的加密處理,其有效限制了應用程序使用者直接對對象流的修改,從而提高了PDF文檔的安全性能。盡管所有的對象流都經(jīng)過加密處理,Adobe公司同時也為PDF應用程序開發(fā)人員提供了對象流的解密方式,即加密字典。通過對加密字典中各項條目的解析并采用相應的解密方法即可還原對象流的原始信息[14]。 如圖1所示,PDF文檔采用的主流加密方式為Flate Encode,因此采用相同的Flate Decode解密方式即可獲得對象流中格式化的原始信息,其中包括各種標識符、操作符、操作數(shù)以及字符編碼。解密后的對象流如圖2所示。 圖1 加密后的對象流 圖2 解密后的對象流 PDF字符顏色屬性由內(nèi)容流中的3種操作符控制,包括DeviceGray操作符g、DeviceRGB操作符rg以及DeviceCMYK操作符sc和scn,其相應取值范圍均為[0.0,1.0]。每組文本標識內(nèi)容包含一個字符顏色操作符以及其對應的操作數(shù),由于BT-ET對的數(shù)目取決于文檔內(nèi)容。因此,這將導致算法的水印容量不可確定。本算法在字符顏色編碼算法中有效地解決了此問題。 1.3字符顏色編碼 本算法通過修改字符顏色操作符相應的操作數(shù)作為嵌入水印信息的手段,記該操作符和操作數(shù)分別為P和P。其中P的取值范圍為:[0,1]。一般情況下,P的默認為g,P默認值為0。根據(jù)人類視覺系統(tǒng)特點可知,若顏色分量的每個數(shù)值的變化量<0.004(約1/256),肉眼是幾乎無法識別字符顏色的變化。由于BT-ET對的數(shù)目取決于文檔內(nèi)容,因此算法的水印容量是不可確定,本算法通過對每組BT-ET對進行單個字符拆分以保證水印容量足夠大。其中,英文字母和數(shù)字體現(xiàn)為一個TJ操作符控制一個字母或數(shù)字;中文字符體現(xiàn)為一個TJ操作符控制一個中文字符。拆分字符以及字符編碼過程的具體步驟如下: 步驟1檢索當前BT-ET對的顏色操作符P并記錄操作數(shù)P; 步驟2修改或者寫入當前字符的顏色操作數(shù)P并寫入顏色操作符P。若P為g,則根據(jù)嵌入的二進制序列修改或?qū)懭隤的千分位數(shù)值;若P為rg,則根據(jù)嵌入的二進制序列依次修改或?qū)懭隤1、P2、P3的千分位數(shù)值;若P為sc或者scn,則根據(jù)嵌入的二進制序列依次修改或?qū)懭隤1,P2,…,Pn的千分位數(shù)值; 步驟3拆分TJ的操作數(shù)。按照TJ操作數(shù)的格式依次從TJ操作數(shù)中拆分出一個字符并加上操作符TJ寫入新BT-ET對中。若TJ的操作數(shù)為中文字符,則拆分出4位16進制字符;若TJ的操作數(shù)為英文字母或者數(shù)字,則拆分出1位字符。重復步驟3直到TJ的所有操作數(shù)被拆分完全。 步驟4重復步驟1,步驟2,步驟3直到所有BT-ET對被拆分完全。 拆分完成后的對象流如圖3所示。 圖3 拆分完成之后的對象流 1.4水印嵌入和提取 水印嵌入模型和水印提取模型如圖4所示。 圖4 水印嵌入模型和水印提取模型 結(jié)合圖4(a),水印嵌入的具體步驟如下: 步驟1按照ANSI標準,分別轉(zhuǎn)換水印信息w和密鑰信息k為二進制序列。 步驟2對水印信息w和密鑰信息k的二進制序列進行循環(huán)加密,得到二進制序列x。 步驟3對二進制序列x進行信道編碼,生成新的二進制序列y。 步驟4對二進制序列y進行同步編碼,生成新的二進制序列M。 步驟5以二進制文本形式打開原始PDF載體文檔,遍歷文本,解析文檔,先定位字符顏色操作符P,再逐次定位字符顏色操作數(shù)P。 步驟6采用字符顏色編碼的方式,對PDF文檔進行二進制序列M中0、1比特的循環(huán)嵌入。 步驟7生成嵌入水印后的PDF文檔。 結(jié)合圖1(b),水印提取的具體步驟如下: 步驟1以二進制文本形式打開待檢測PDF文檔,遍歷文本,解析文檔,先定位字符顯示操作符P,再逐次定位字符間距操作數(shù)P。 步驟2對PDF文檔字符顏色解碼,提取出內(nèi)嵌的水印二進制0、1 bit流M′。 步驟3對比特流M′進行同步解碼,提取出循環(huán)嵌入的多個水印二進制序列y′。 步驟4對比特流y′進行信道解碼,提取出循環(huán)嵌入的多個水印二進制序列x′。 步驟5根據(jù)長度標識對各個水印二進制序列x′進行多數(shù)投票運算,得出水印信息的有效長度,并提取出準確的水印二進制序列x″。 步驟6按照ANSI標準,轉(zhuǎn)換密鑰信息k為二進制序列。 步驟7對水印二進制序列x″和密鑰信息k的二進制序列進行循環(huán)解密,得到最終的二進制序列w′。 步驟8按照ANSI標準,將最終水印二進制序列w′轉(zhuǎn)換為水印字符串,并以此作為水印信息輸出。 2實驗及結(jié)論 本算法在Visual C++ 6.0軟件環(huán)境下,使用C語言搭建了PDF文本水印嵌入和提取平臺,實現(xiàn)了將任意文本作為水印信息嵌入PDF文檔以及相應的水印提取。選取含有中文和英文的PDF文檔作為實驗文檔,對水印隱蔽性、容量和魯棒性、安全性進行了相關(guān)實驗,實驗及結(jié)論如下。 (1)隱蔽性。本次實驗選取的載體PDF文檔如圖5(a)所示。嵌入水印后的PDF文檔如圖5(b)所示。 圖5 原始PDF文檔和嵌入水印后的PDF文檔比較 對比載體文本和嵌入水印后文本,可以看出,人眼直接觀察,難以察覺二者間的細微差別;但通過對字符顏色的讀取對比可以看出字符顏色的變化。實驗結(jié)果表明,本算法具有較好的隱蔽性。 (2)魯棒性。根據(jù)文本水印的魯棒性評價方法[15]可知,文本水印的攻擊方式一般包括噪聲、注釋、剪切、替換、增刪等攻擊。由于PDF文檔本身具備防編輯防替換和防剪裁等保護功能,因此具備一定的抗攻擊性。此外根據(jù)文獻所述,PDF文檔中文本、表格、圖像等都被封裝至不同的對象中,內(nèi)容經(jīng)注釋、剪切、替換、增刪等攻擊后的內(nèi)容都將被更新封裝在新的對象中,不會對本算法使用的字符間距編碼造成影響。實驗中采用添加高斯白噪聲背景圖對嵌入水印后的PDF進行攻擊,攻擊后的PDF文檔及其提取結(jié)果如圖6所示。 圖6 噪聲攻擊后的PDF文檔及其提取結(jié)果 對嵌入水印后的PDF文檔進行高亮攻擊,具體包括加高亮、下劃線、刪除線、替換、標注等。高亮攻擊后的PDF文檔及其提取結(jié)果如圖7所示。 圖7 高亮攻擊后的PDF文檔及其提取結(jié)果 實驗結(jié)果表明,本算法對噪聲、注釋、剪切、替換、增刪等攻擊后的PDF文檔仍能完整的提取出水印信息,因此本算法具有較好的魯棒性。 (1)容量。選取8個PDF載體文檔進行算法容量測試實驗,得出的容量測試結(jié)果如表1所示。 由表1可看出,本算法的容量和載體文檔字符數(shù)有關(guān),字符數(shù)越多,嵌入容量越大。ASNI編碼標準規(guī)定:一個中文字符對應2 Byte,一個英文字符對應1 Byte。根據(jù)測試結(jié)果中的平均水印嵌入比率可得出,要嵌入10個中文字符即20 Byte的水印信息僅需304個字符,這完全滿足日常生活中版權(quán)保護的要求。 表1 容量測試數(shù)據(jù)表 對于水印系統(tǒng)來說,隱蔽性、容量和魯棒性三者之間存在相互抑制的關(guān)系。本算法中,對PDF載體文檔嵌入最大容量的水印信息后,水印系統(tǒng)依然能保持較好的隱蔽性。因此,本算法在保證隱蔽性的情況下仍具有較大的容量。同時,本實驗還對嵌入最大容量后的PDF文檔進行噪聲攻擊,攻擊后仍可以提取出完整的水印信息,算法在隱蔽性、容量和魯棒性中能達到一個較好的平衡。 (2)安全性。本算法采用了循環(huán)加密以及同步編碼算法,對水印信息進行了加密編碼預處理,所以即使攻擊者破解了嵌入算法得到所嵌水印,在沒有密鑰的情況下還是無法提取到正確的水印信息。此外,本算法的密鑰空間足夠大,理論上而言密鑰的長度可與水印容量一致。 輸入錯誤的密鑰信息,其對應的提取結(jié)果如圖8所示。 圖8 錯誤密鑰的提取結(jié)果 實驗結(jié)果表明,錯誤的密鑰無法提取出正確的水印信息,因此本算法具有較高的安全性。 3結(jié)束語 本文針對目前現(xiàn)有PDF文本水印算法存在的缺點,提出了一種基于PDF字符顏色的文本水印算法。通過修改PDF文檔中字符顏色操作符的操作數(shù)并拆分TJ操作符的操作數(shù)的方式,實現(xiàn)了PDF文檔中水印信息的嵌入和提取且該算法具備無PDF版本約束,不破壞PDF文檔本身結(jié)構(gòu),無需進行PDF與PS文件間的格式轉(zhuǎn)換的特點。實驗結(jié)果表明,本算法具有較好的隱蔽性、魯棒性、安全性和較大的容量且與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文檔結(jié)構(gòu)的數(shù)字水印算法[J].計算機應用,2012,32(10):2776-2778,2782. [6]顧艷春,馮君婷.一種基于空格編碼的PDF文本數(shù)字水印算法[J].佛山科學技術(shù)學院學報:自然科學版,2015,33(1):76-80. [7]李計勇.面向PDF文檔對象的安全保護系統(tǒng)設計與實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學,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—),女,副教授。研究方向:數(shù)字水印技術(shù),圖像編碼等。黃鵬波(1989—),男,碩士研究生。研究方向:數(shù)字水印技術(shù),圖像編碼等。 中圖分類號TP309.2 文獻標識碼A 文章編號1007-7820(2016)05-096-05