吳建濤,房鼎益,靳艷萍,何 路
(1.西北大學(xué)信息科學(xué)與技術(shù)學(xué)院,陜西西安 710127;2.陜西華縣經(jīng)貿(mào)局,陜西渭南 714100)
隨著數(shù)字產(chǎn)品的廣泛應(yīng)用,信息隱藏技術(shù)逐漸成為數(shù)字安全領(lǐng)域的重要研究方向。所謂信息隱藏是將秘密信息隱藏在非機(jī)密的載體內(nèi)容中,載體形式可以是視頻、音頻、圖像或文本文檔等。主要研究如何對秘密信息增加一層偽裝,使得秘密信息的傳輸不引人注意,從而實(shí)現(xiàn)隱蔽通信[1]。
自然語言信息隱藏技術(shù)利用自然語言處理技術(shù)對文本內(nèi)容進(jìn)行分析,得到文章中可以替換的文字片段,如單詞、句子等,通過改寫或替換文字片段進(jìn)行信息隱藏。根據(jù)操縱的語言單位不同,可以分為基于詞匯的信息隱藏、基于句法的信息隱藏和基于語義的信息隱藏。
以自然語言為內(nèi)容的信息交換是人們交流信息的主要方式,文本文檔根據(jù)其應(yīng)用需求不同,對信息隱藏方案的性能要求也不盡相同。如軍事部門、政府機(jī)關(guān)、國家安全部門以及一些商業(yè)機(jī)構(gòu)對文本的安全性要求較高。通過在文本中嵌入數(shù)字指紋,可以在機(jī)密泄漏后追蹤泄密者。而在電子書籍、通訊稿、新聞稿等文本載體中嵌入數(shù)字水印可以提供版權(quán)保護(hù)。在電子商務(wù),數(shù)字圖書館等領(lǐng)域,文檔在拷貝分發(fā)過程中需要確定其內(nèi)容是否被篡改或偽造,這時(shí)可以通過嵌入脆性水印來進(jìn)行數(shù)據(jù)完整性認(rèn)證和版權(quán)驗(yàn)證。
通過對現(xiàn)有自然語言信息隱藏算法的分析,其存在如下問題:
(1)隱藏容量。
在進(jìn)行秘密信息嵌入時(shí),根據(jù)載體文本的篇幅長短以及行文風(fēng)格不同,文本能夠?yàn)樾畔㈦[藏技術(shù)提供的隱藏空間也不一樣。如在版權(quán)保護(hù)領(lǐng)域,通訊稿、新聞稿等篇幅較短的文本,一般能夠提供的隱藏空間非常有限,而且容易被攻擊者找到從而破壞水印信息。而且篇幅較長的小說中,為防止局部內(nèi)容的抄襲,需要在文章中多個地方重復(fù)嵌入水印信息,來提供版權(quán)保護(hù)。但現(xiàn)有的文本信息隱藏算法還無法提供足夠的隱藏容量來滿足不同的應(yīng)用需求。
如現(xiàn)有的基于同義詞替換的文本信息隱藏算法,需要用到同義詞詞庫。而目前還沒有完全適合信息隱藏算法的大型同義詞庫。同義詞庫中同義詞集太少,導(dǎo)致同義詞替換算法的隱藏容量無法滿足嵌入要求。因此,迫切需要建立全面、權(quán)威的同義詞庫來提高隱藏容量。
而現(xiàn)有的句法變換信息隱藏算法,在文本中嵌入一個字符,按照ASCII編碼方式,一個字符占8個二進(jìn)制bit位。以文獻(xiàn)[18]中的句法變換方法為例,將可變換句子分為“標(biāo)識句”和“水印句”。如果一個“水印句”只承載一個比特的信息,嵌入一個字符至少需要16個句子。若將該技術(shù)應(yīng)用于版權(quán)保護(hù),需要在文本中嵌入作者信息,以30個字符為例,文本中至少需要480個可變換的句子。于是,在新聞稿件,短篇小說等篇幅較小的文本中嵌入作者信息就變得不現(xiàn)實(shí)。
(2)隱藏算法的通用性。
如使用同義詞替換算法在文學(xué)著作中嵌入秘密信息,由于詞語的使用存在少許差異,所以對原文的表達(dá)力會造成影響,容易被察覺,從而使秘密信息的隱蔽性得不到保證。再如,對于網(wǎng)絡(luò)小說在網(wǎng)絡(luò)中傳播等攻擊普遍存在的應(yīng)用場景,文本在傳遞過程中會被大量且多次修改,如果采用簡單的從左向右向文本中嵌入秘密信息,對于文本的簡單修改,就有可能打亂秘密信息的同步信息,比如將原先的秘密信息由“01000100”,改變?yōu)椤?000100”,從而導(dǎo)致提取出的秘密信息完全失去意義。
目前的自然語言信息隱藏算法只是使用文本中某一種文字片段進(jìn)行信息隱藏,而其它文字片段并沒有得到有效利用。如基于同義詞替換的信息隱藏算法只使用文本中可以替換的同義詞?;诰浞ㄗ儞Q的信息隱藏算法只使用文本中可以變換的句子。從根本上講,無論單詞還是句子都是文本的一個語義單元,只是大小不同而已。對于隱藏編碼而言,這些文字片段都是承載秘密信息比特位的語義單位。如果將多種變換方法應(yīng)用到同一個信息隱藏算法中,則可以極大地提高隱藏容量。而且多種文字片段混合使用,也提高了隱藏算法的魯棒性,使得攻擊者針對某一類變換方法的攻擊成功率大大降低。
為抹去不同自然語言處理技術(shù)的不同,實(shí)現(xiàn)多種自然語言處理技術(shù)的協(xié)同工作,提出載體單元的概念。載體單元的定義如下:
對于特定自然語言處理技術(shù),將可以做語義不變替換的文字片段稱為載體單元。
載體單元作為一個抽象概念,對不同的自然語言處理技術(shù)具有不同的意義。例如對于同義詞替換技術(shù),載體單元即具有同義詞的詞語;對于句式變換技術(shù),載體單元即可以進(jìn)行句式變換的句子。這樣無論在信息隱藏中使用何種自然語言處理技術(shù),均可以將其可處理的文本統(tǒng)一作為載體單元。
由于載體單元是一個抽象概念,所以在程序中以接口的形式定義它。其屬性列表如表1所示。
表1 抽象載體單元屬性列表
以載體單元的概念為紐帶,可以進(jìn)一步將自然語言信息隱藏算法分離為載體操縱算法和隱藏編碼算法?,F(xiàn)有的自然語言處理技術(shù),主要關(guān)注與對于文本進(jìn)行變換,沒有關(guān)注隱藏編碼,將隱藏編碼算法單獨(dú)分離出來,有利于實(shí)現(xiàn)魯棒性和隱蔽性更好的隱藏方案,有利于提高系統(tǒng)的擴(kuò)展性,同時(shí)也有利于代碼的復(fù)用。
2.2.1 載體操縱算法的定義
對于載體操縱算法,需要完成以下功能:
(1)分析文本功能。對于給定文本片段c┃┃┃C,掃描得到c中的對應(yīng)類型的載體單元,同時(shí)對載體單元進(jìn)行可行變換,將變換結(jié)果存儲在載體單元Ti的中,將找到的載體單元加入載體單元集合S。并標(biāo)識在該片段中嵌入信息是否可能會和其他載體操縱算法沖突。即S=Traverse(C)過程的和Transform過程,不同的是,對于特定載體操縱算法未必可以得到S集合的全部,通常只能得到S的一個子集,并且具體實(shí)現(xiàn)中,如果兩個載體操縱算法在同一個片段中嵌入信息,則可能存在沖突。
(2)嵌入功能。對于給定載體單元和需要嵌入的具體bit,如果是該載體操縱算法對應(yīng)的載體單元,使用載體單元中定義的可用于替換的文本片段替換文本片段中的相應(yīng)內(nèi)容,使之表示給定bit。即Embed ding(Si,Ti,Mg,Pi,ComputeBit,K)。
(3)提取功能。對于給定的載體單元,如果是該載體操縱算法對應(yīng)的載體單元,分析該載體單元目前表示的bit;并確定在嵌入過程中是否由于當(dāng)前載體操縱對文本的修改,導(dǎo)致該文本片段中已經(jīng)不存在其他類型的載體單元。即M1=Extracting(S″,ComputeBit,K)的一個子過程,該過程只處理一個載體單元,并得到對應(yīng)比特。
2.2.2 隱藏編碼算法的定義
對于隱藏編碼算法,需要完成以下功能:
(1)確定Ti中每個文本表示的bit。對于已有的載體單元集合S,確定集合中每個元素對應(yīng)的集合T中的每個元素的bit,將得到的bit串,由對應(yīng)載體單元記錄,即ComputeBit過程。
(2)分組載體單元。確定S中每個元素對應(yīng)嵌入Mg的哪個分組,即Blocking過程,由對應(yīng)載體單元記錄結(jié)果,即pi。
(3)重排序Mg。按照S中每個元素的pi值,將秘密信息進(jìn)行重新排序,并對空白的位置補(bǔ)充無效字符,使得載體單元集合中第i個元素和秘密信息中第i個分組對應(yīng)。該過程是為嵌入過程的算法復(fù)雜度考慮,即在嵌入過程中,只需順序地嵌入重新排列后的bit串,不需要再在原有bit串中查找。
(4)恢復(fù)M1順序。與c過程相反,本過程將M1,按照已有載體單元集合中每個載體單元pi的值,恢復(fù)其原始順序,即Recover過程。
(5)編碼過程。即對給定秘密信息進(jìn)行編碼和分組,具體過程視不同的編碼算法而定。該過程即Encode過程。
(6)解碼過程,對于已經(jīng)提取得到的bit串,按照解碼算法將之復(fù)原為原始秘密信息的二進(jìn)制序列,具體過程視不同編碼算法而定。即Decode過程。
2.3.1 嵌入算法
在載體單元、載體操縱和隱藏編碼3個接口之下。提出的通用信息隱藏算法可以描述如下:
嵌入信息時(shí),先利用載體操縱算法對文本進(jìn)行分析,得到文本中所有載體單元,然后對載體單元進(jìn)行預(yù)變換,得到每個載體單元對應(yīng)的同義集合。然后利用隱藏編碼算法對載體單元集合中所有元素進(jìn)行編碼,通過密鑰選擇對應(yīng)編碼的同義單元來嵌入秘密信息。
提取信息是嵌入的逆過程。提取時(shí),也需要先利用載體操縱算法對含密文本進(jìn)行分析,得到文本中所有載體單元,然后進(jìn)行預(yù)變換,獲得載體單元對應(yīng)的同義集合。然后利用隱藏編碼算法對載體單元進(jìn)行編碼,通過密鑰選擇載體單元,并獲取載體單元對應(yīng)的比特來還原秘密信息。
對于嵌入過程描述中需要使用到的符號定義如下:
C為原始文本;K為密鑰;S為原始文本中提取出來的載體單元集合,類似的S中第i個元素表示為Si;Ti為可以替換第i個載體單元的文本的集合;M為需要嵌入的秘密信息;Mg為分組并編碼后的M,由若干個分組組成;Pi為第i個載體單元需要對應(yīng)嵌入Mg的第幾個分組。
抽象嵌入過程描述如下:
(1)分析文本。S=Traverse(C),S={S0,S1,…,Sn}。即使用某種或者某幾種自然語言處理技術(shù)分析文本,得到C中所有的載體單元。S中各元素可能是不同類型的載體單元,例如S0對應(yīng)文本中一個可以替換為其同義詞的詞語,而Si對應(yīng)的卻是文本中的一個可變換句式的句子。
(4)分組載體單元??紤]到分組編碼的需求,需要對載體單元進(jìn)行分組。Pi=Blocking(Si,K),Pi∈N*。該函數(shù)返回值為載體單元Si需要對應(yīng)嵌入Mg的第幾個分組。具體應(yīng)用中,對于不需要分組的算法,則將每組包含的載體單元數(shù)量設(shè)置為1?;隰敯粜钥紤],分組與載體單元在原文中順序無關(guān)。分組的目的是把秘密信息的比特順序和實(shí)際嵌入的順序打亂。如果將M順序的嵌入到S中,秘密信息集中在文本的首部,攻擊者可能通過篡改或統(tǒng)計(jì)分析等手段破壞或破解秘密信息,所以魯棒性較差。
(5)分組并編碼秘密信息。Mg=Encoding(M,K)。對于秘密信息M進(jìn)行編碼和分組。
(6)嵌入。Embed ding(Si,Ti,Mg,Pi,ComputeBit,K),作為最終嵌入過程就是將Mg的第Pi個分組嵌入到Si中,也就是使用Ti中 Compute(Ti,,K)的值恰好等于Mg的第Pi個分組的元素改寫C中的到Si。
(7)生成含密載體。即將嵌入秘密信息后的文本輸出。
2.3.2 提取算法
對于該過程描述中需要用到的符號定義如下:
C'為嵌入了秘密信息的文件,即含密文本;K為密鑰;S'為含密文本中提取出來的載體單元集合,類似的S'中第i個元素表示為;為可以替換第i個載體單元的文本的集合;M為秘密信息,類似的M1,M2等為對于M的變換形式為第i個載體單元需要對應(yīng)嵌入的秘密信息的第幾位。
則秘密信息的提取過程可以描述如下:
(1)分析文本。S'=Traverse(C'),S'={,,…,}。即使用嵌入秘密信息時(shí)使用的自然語言處理技術(shù)分析文本,得到C'中所有的載體單元。
(3)提取。M1=Extracting(S',ComputeBit,K)。這一步從C'中初步提取,得到 bit串M1。此處的ComputeBit與嵌入時(shí)使用的ComputeBit函數(shù)相同。
(5)恢復(fù)秘密信息順序。M2=Recover(M1,Blocking)即將提取出來的M1恢復(fù)到原始的順序。
(6)解碼。M3=Decoding(M2,K)。該過程是對M2解碼,得到的M3即提取得到的秘密信息。
圖1 信息隱藏平臺框架
在提出的自然語言信息隱藏抽象算法框架下,設(shè)計(jì)并實(shí)現(xiàn)了一個信息隱藏通用平臺。該平臺的結(jié)構(gòu)如圖1所示,最上層是展示層,負(fù)責(zé)嵌入秘密信息后載體文本的可視化展示,編碼方案展示以及提取后的秘密信息解碼結(jié)果展示。
核心模塊是中間層的“自然語言信息隱藏系統(tǒng)框架”,它只是一個通用的信息嵌入和提取的系統(tǒng)框架。框架向下定義了載體操縱算法接口和隱藏編碼算法接口。通過框架設(shè)計(jì)將載體操縱部分和隱藏編碼部分進(jìn)行了分工。展示層定義了兩部分內(nèi)容:一個是內(nèi)部算法的API接口,由展示層控制系統(tǒng)框架進(jìn)行運(yùn)轉(zhuǎn),并了解其工作過程;另一個是數(shù)據(jù)可視化接口,在界面上直觀地顯示嵌入、提取效果。下層的“載體操縱插件”和“隱藏編碼插件”都以插件方式設(shè)計(jì)。并生成動態(tài)鏈接庫到指定目錄,框架運(yùn)行時(shí)即可自動識別所有插件。
目前本原型系統(tǒng)實(shí)現(xiàn)的載體操縱插件包括:英文絕對同義詞替換插件、英文相對同義詞替換插件、英文句法變換插件、中文絕對同義詞插件、中文句式變換插件。隱藏編碼插件包括隨機(jī)編碼插件、擴(kuò)頻編碼插件和F5編碼插件。
為驗(yàn)證文中提出的信息隱藏抽象算法,從網(wǎng)絡(luò)上收集了1 000篇英文語料,構(gòu)建了測試語料庫。這1 000篇英文語料涵蓋了人文社會、自然科學(xué)、新聞、綜合4大類。使用的自然語言處理工具包括:Lingpipe,Stanford Lexicalized Parser。其中Lingpipe使用其單詞歧義消解(Word Sense Disambiguation)功能,Stanford Lexicalized Parser使用其語法解析功能。
圖2是對一個20 kB的英文文本,分別使用英文絕對同義詞替換隱藏方法、英文相對同義詞替換隱藏方法、英文句式變換隱藏方法和文中的信息隱藏抽象算法對其進(jìn)行載體分析,所獲得的載體單元數(shù)量。由圖2可以看出,在使用載體單元的概念后,可以將所有可變換的語言單元結(jié)合到一個編碼算法中。極大地提高了信息隱藏算法的隱藏容量。
圖2 隱藏容量比較
由于不同算法在隱蔽性、魯棒性和隱藏容量上的不同性能,對于特定的應(yīng)用,就可以靈活選擇不同插件,構(gòu)建隱藏方案。
表2 隱藏方案示例
通過對現(xiàn)有自然語言信息隱藏算法進(jìn)行分析,發(fā)現(xiàn)現(xiàn)有隱藏算法的隱藏容量不足,算法的通用性較差。無法滿足實(shí)際應(yīng)用的多樣性需求。為獲得容量足夠大且載體單元覆蓋面足夠廣的隱藏算法,提出了一種自然語言信息隱藏抽象算法。通過定義載體單元、載體操縱和隱藏編碼三個抽象接口。對現(xiàn)有自然語言信息隱藏算法進(jìn)行了抽象化處理。通過對這三個抽象接口的實(shí)例化,設(shè)計(jì)并實(shí)現(xiàn)了一個自然語言信息隱藏平臺。最后通過實(shí)驗(yàn)證明,文中提出的信息隱藏抽象算法的隱藏容量有了極大提高,而且也極高了隱藏編碼算法的通用性。
[1]PETITCOLAS F A,ANDERSON R J,KUHN M G.Information hiding - a survey[C].Proc.of IEEE,1999,87(7):1062-1078.
[2]ZUNERA J Z.,ANWAR M M.A review of digital watermarking techniques for text documents [C].ICIMT,2009:230-234.
[3]BRASSIL J,LOW S,MAXEMCHUK N,et al.Hiding information in document images[C].Proceedings of the 29th Annual Conference on Information Sciences and Systems,1995:482-489.
[4]BRASSIL J T,LOW S,MAXEMCHUK N F,et al.Electronic marking and identification techniques to discourage document copying[J].IEEE Journal on Selected Areas in Communications,1995,13(8):1495 -1504.
[5]LOW S H,MAXEMCHUK N F,BRASSIL J,et al.Document marking and identification using both line and word shifting[C].Proc.IEEE INFOCOM,1995:853 -860.
[6]鐘尚平,陳鐵睿.提高 wbStego4性能的方法及其實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2005(22):117 -120.
[7]BOHMAN P R,ANDERSON S.An accessible method of hiding HTML content[C].W4A'04,2004.
[8]NG W,LAU H L.Effective approaches for watermarking XML data[M].Database Systems for Advanced Applications,2005:68-80.
[9]ZHOU X,PANG H H,TAN K L.WmXML:A system for watermarking XML data[C].Proceedings of the 31st International Conference on Very Large Data Bases,2005.
[10]CHIANG Y L,CHANG L P,HSIEH W T.Natural language watermarking using semantic substitution for chinese text[C].Proc.of IWDW,2004,2939:129 -140
[11]BOLSHAKOV I A.A method of linguistic steganography based on collocationlly verified synonymy[C].Proc.of the 6th InternationalInformation Hiding Workshop,2004:180-191.
[12]TOPKARA U,TOPKARA M,ATALLAH M J.The hiding virtues of ambiguity:quantifiably resilient watermarking of naturallanguage textthrough synonym substitution [C].MM&Sec,2006:164 -174.
[13]WINSTEIN K.Tyrannosaurus Lex[EB/OL].(2007 - 11 -01)[2011 - 08 - 01].http://alumni.imsa.edu/~ keithw/tlex.
[14]Mikhail,Atallah J,et al.Natural Language Watermarking:Design,Analysis,and a Proof- of- Concept Implementation[C].Information Hiding,2001:185 -199.
[15]TOPKARA M,RICCARDI G,MIKHAIL J,et al.Natural language watermarking:challenges in building a practical system[M].Proc.SPIE,2006.
[16]ATALLAH M J,RASKIN V,HEMPELMANN C F,et al.Natural language watermarking and tamperproofing[C].The 5th International Information Hiding Workshop,2002:196 -212.
[17]NAKAGAWA H,MATSUMOTO T,MURASE I.Information hiding for text by paraphrasing[EB/OL].(2007 -4 -11)[2011 -07 -11]http://www.r.dl.itc.u - tokyo.ac.jp
[18]MIKHAIL J ATALLAH,VICTOR RASKIN,MICHAEL CROGAN,et al.Natural language watermarking:design,analysis,and a Proof-of-Concept implementation[C].Information Hiding,2001,2137:185-199.