摘 要:提供了一種以符號的冗余編碼保留隱藏信息的隱藏數據通信技術,以及與該方法相關的數字水印嵌入、提取技術和載體文件的顯示技術。介紹了將符號編碼成數字代碼的若干方法;隱藏通信的數據加載與分離方法;特定字體文件的設計方法;若干對攜帶水印信息的載體文件進行顯示的方法。提出的文本數字水印技術具有水印容量大、視覺影響小、兼容性強等特點。
關鍵詞:文本數字水印; 冗余編碼; 字體設計; 編碼
中圖法分類號:TP391; TP309.2文獻標識碼:A
文章編號:1001—3695(2007)02—0155—03
1 引言
屬于信息隱藏領域的數字水印技術在網絡環境下有著潛在的廣泛應用,已經快速地發展起來[1,2]。文本數字水印技術作為數字水印技術領域的一個重要研究方向,由于其在網絡出版、證書防偽、文件跟蹤等方面具有獨特的技術優勢,越來越受到學界和企業界的關注。從文獻[3—5]對現有文本數字水印技術的表述及綜合評價可以看出,現有技術主要集中在利用文件的格式信息來保存數字水印信息,不能在純文本文件(如HTML網頁)中保存水印信息。這造成加載了水印信息的文本是與某種特定的文件格式緊密相關的,難以在不同格式的文件之間共享加載了水印的文本。
本文提出一種以符號的編碼為載體的隱藏數據通信方法,以及與該方法相關的文本數字水印嵌入、檢測技術和載體文件的顯示技術,用于解決現有文本數字水印技術中出現的諸如不能在純文本文件中保存水印信息、水印信息給用戶帶來的視覺上的影響大、文件攜帶的水印信息容量小等問題。本文所提技術的基本原理是對符號的數字編碼進行冗余擴展,將傳統方法使用的語義上一個字符對應一個數字編碼的方法擴展到語義上的一個字符對應多個數字編碼;然后對這些冗余的數字編碼根據其狀態的不同再進行二次數字編碼,用于存儲隱藏信息;最后配合特定的載體文件顯示技術,提供一種以符號的編碼為載體的隱藏數據通信方法。
2 符號編碼方法
將符號編碼成數字代碼的方法可以用符號數字映射表來等價地體現,符號數字映射表確定了符號與數字編碼的具體映射關系。本文將符號編碼成數字代碼的方法(等價體現為符號數字映射表的產生方法)最基本的編碼規則(簡稱基本規則)是:①至少包括一個符號集合和兩種數字代碼集合(分別稱為信留碼集合和隱藏碼集合,其中的元素稱為信留碼和隱藏碼);②在一個完整的編碼體系(一個符號數字映射表)中,至少存在一個符號與信留碼和隱藏碼分別形成一對多的映射關系,即一個符號分別對應多個不同的信留碼和多個不同的隱藏碼;③在滿足特征②描述的所有符號中,至少存在一個這樣的符號:在與該符號對應的多個信留碼和多個隱藏碼中,至少存在一個信留碼子集(包括全集或真子集)和一個隱藏碼子集,使得這兩個子集之間的元素形成一一映射的關系,即在這兩個元素個數相等的子集中,不同的信留碼對應不同的隱藏碼, 不同的隱藏碼對應不同的信留碼;④在滿足特征③描述的所有符號中,至少存在這樣一個符號子集:該符號子集中不同符號各自對應的、按照特征③所描述的信留碼子集(與隱藏碼子集有一一映射的關系)之間沒有重復元素。表1是滿足基本規則的一個具體例子。
滿足基本規則的符號數字映射表中,一些符號對應的信留碼和隱藏碼可能出現重碼;表中也可能出現一些這樣的符號,即沒有相應的信留碼或隱藏碼與之對應,或與之對應的信留碼和隱藏碼之間沒有明確的對應關系。為了節省編碼空間,減少重碼現象,本文在上述基本規則的基礎上提供了一種編碼的擴展規則(簡稱擴展規則),即在一個編碼體系(一個符號數字映射表)中,符號、信留碼、隱藏碼必須在滿足基本規則的同時滿足以下規則:①每一個符號至少有一個信留碼和一個隱藏碼與之對應;②所有符號對應的信留碼之間不能重復;③對同一個符號來說,該符號對應的信留碼集合和隱藏碼集合的元素個數相等,并且這兩個集合形成一一映射關系。如表2所示,符號數字映射表(210)同時滿足本文符號數字編碼方法的基本規則和擴展規則。
此外,為了與現有的符號編碼系統(如UCS-2,UCS-4,GB2312和GB18030等)兼容以及使用方便,本文還提供一種符號集合、信留碼集合、隱藏碼集合的產生方法(簡稱補充規則),即在一個編碼體系(一個符號數字映射表)中,符號、信留碼、隱藏碼必須在滿足基本規則和擴展規則的基礎上滿足以下規則:①符號數字映射表的符號集中包含現有編碼標準(如UCS-2,UCS-4,GB18030,GB2312等)規定的符號集合的子集,該子集中的符號有這樣的特性:與各符號對應的信留碼集合中,有一個信留碼等于該符號在現有編碼標準中對應的數字編碼值;②不同符號對應的隱藏碼集合中,均存在一個隱藏編碼表示該符號不攜帶隱藏信息(該隱藏編碼命名為固定隱藏碼)。可以看到,表2中的符號數字映射表(210)同時滿足基本規則、擴展規則和補充規則的要求。
3 隱藏通信方法
從前述的符號編碼方法(符號數字映射表)中可以看到,給定了一個符號和與之對應的隱藏碼,可以確定與它們對應的信留碼;同樣,給定了一個信留碼可確定與之對應的符號和隱藏碼。這種符號、信留碼、隱藏碼的對應關系構成了一種將數據加載到符號序列上的方法,以及與之對應的數據分離的方法。
加載數據的方法包括以下步驟:①為符號序列中的符號選擇合適的隱藏碼,使得該符號序列對應的隱藏碼序列等于被加載的數據,或者可根據規則將該隱藏碼序列無歧義地對應到被加載的數據上。②根據本文的符號編碼方法規定的符號編碼對應關系(符號數字映射表),查詢得到與原符號序列和在步驟①中得到的隱藏碼序列對應的信留碼序列,該信留碼序列攜帶了被加載的數據。
分離數據的方法包括以下步驟:①根據本文的符號編碼方法規定的符號編碼對應關系(符號數字映射表),查詢載體文件中信留碼對應的符號和隱藏碼。②分別組合符號和與之對應的隱藏碼,得到與載體文件中信留碼序列對應的符號序列和隱藏碼序列,該符號序列對應原載體數據,隱藏碼序列對應被加載的水印信息數據。
如圖1所示,從左到右的順序是數據加載的流程,該流程表示將“01101”(130)傳輸的二進制數據序列加載到用Unicode碼表示的編碼序列“004C, 004F, 0056, 0045”(110)(對應的符號串為“LOVE”(120))上的過程。從右到左的順序是數據分離的流程,該流程表示從帶有隱藏數據的信留碼序列“E4C0, E4F3, 0056, E451”(140)中分離數據的過程。
結合上述的數據加載方法和數據分離方法可進行以符號編碼為載體的隱藏數據通信。同時,如果將符號和與其對應的冗余編碼之間的映射關系作為加密密鑰和解密密鑰,即在數據的傳送方和接收方使用同一個未公開的秘密符號數字映射表(相當于一個密碼本),則上述隱藏數據通信方法構成了兩種數據加密方法:①公開符號數字映射表中的符號集合和信留碼集合,以及公開符號與信留碼之間的映射關系;同時,隱藏碼集合不公開,信留碼與隱藏碼之間的映射關系、符號與隱藏碼之間的映射關系也不公開。在這種情況下,通信雙方的原載體文件為公開的信息,隱藏數據為加密信息。②符號數字映射表中符號集合、信留碼集合、隱藏碼集合以及它們之間的映射關系都不公開,則通信雙方的原載體文件和被傳輸的隱藏數據均被加密。對符號數字映射表進行適當的加密,可以增強隱藏通信過程和水印系統的抗攻擊性能。
4 字體文件的設計方法
一個標準的字體文件中存在著三個元素,即符號、符號的編碼、字模。為了能正常地顯示加載了隱藏信息的信留碼文件,字體文件中的符號、符號的編碼、字模之間的關系需要對應信留碼文件中的符號數字編碼方法,即它們應存在這樣的關系:一個語義明確的符號有多個冗余的編碼與之對應,并且這些編碼映射為同一個字模或形狀相同的多個字模,這個字模或這些相同形狀的字模均反映該符號的語義信息。同時,符號對應的多個編碼分別代表了不同的隱藏信息。
表2所示的字體文件(220)為滿足上述要求的一個示例:符號“A”對應多個編碼(信留碼){0041,E410,E411},這些信留碼均對應同一個字模“A”,并且該字模反映了符號“A”的真實語義;此外,在這些信留碼中,編碼“0041”對應隱藏信息“11111111”,編碼“E410”對應隱藏信息“0”,編碼“E411”對應隱藏信息“1”。應該注意到,字體文件(220)中,符號的編碼和符號數字映射表(210)中的信留碼是一致的,符號的編碼表示的隱藏信息與符號數字映射表(210)中的隱藏碼也是一致的。
5 文本數字水印系統設計
完整的文本數字水印系統應包括數字水印信息的嵌入、檢測方法和載體文件的顯示方法。本項文本數字水印系統采用前述的隱藏數據通信方法中的數據加載方法和分離方法進行數字水印信息的嵌入和檢測,而載體文件的顯示技術需要特別的方法。
通過前述的隱藏通信方法可以看出,加載了數字水印的字符編碼(信留碼)已經不是標準的字符編碼,直接使用信留碼在現有編碼規范下必然出現亂碼。所以,使用攜帶水印的信留碼時,必須解決信留碼的顯示問題,讓以信留碼編碼的字符能正常地顯示出來。解決信留碼的顯示問題有多種途徑,可行的有以下幾種方法:
(1)基于字體文件的方法
將載體文件中符號的編碼方法和字體文件中的符號編碼方法匹配,即符號在載體文件和字體文件中冗余編碼的碼值(信留碼)應一致,冗余編碼表示的隱藏信息也應統一,隱藏通信的雙方都需要結合編碼規范相同的字體文件來顯示信留碼。表2中的符號數字映射表(210)中的編碼方法和字體文件(220)中的編碼方法是匹配的,如果利用字體文件(220)來顯示信留碼序列“E4C0,E4F3,0056,E451”,顯示結果是“LOVE”。通過這樣的方法顯示出來的載體文件不會給人帶來任何視覺上的影響。
(2)利用通過打印驅動程序得到的電子文件作為水印信息的載體文件
通過制作特別的打印機驅動程序,任意的文件格式只要經過打印就可以轉換成特定的文件格式存儲在電子文件中,目前這一技術為成熟技術[6]。通過這種方式得到的文本電子文件有如下重要特性:同一文件中完整地存儲了符號的編碼信息和字體信息。利用方法(1)所述的技術顯示攜帶了水印信息的電子文件,再結合上述打印驅動技術,將信留碼文件打印為攜帶了水印信息的電子文件,可以解決因載體文件和字體文件分離帶來不便的問題。例如,PDF格式的電子文件是通過打印驅動程序Acrobat Distiller,AcrobatPDFWriter打印得到的。可以利用這些驅動程序打印出攜帶了水印信息的PDF電子文件,而隱藏通信的接收方不需要特別的字體文件進行信留碼文件的顯示。(3)通過專門的具有編碼轉換功能的程序,將符號的多個冗余編碼均顯示為能表達該符號語義的字模
最直接簡單的信留碼文件的顯示方法是利用專門的具有編碼轉換功能的程序,在這些程序中,按照本文符號編碼方法確定的符號與其冗余編碼之間的映射關系,將載體文件中符號的冗余編碼顯示為同一個符號。考慮到兼容性和實用性原則,本文推薦通過網頁瀏覽器程序本身或網頁瀏覽器插件程序將符號的多個冗余編碼顯示為同一個符號。這樣,有利于利用本文的數字水印技術,向在Internet網絡環境下的Web網頁中加入數字水印信息。此外,將編碼轉換功能內置在操作系統中也是一種好的解決方法。
6 結論
通過分析可以看出,基于冗余編碼的數字水印技術有如下特點:①使用符號的自身冗余編碼進行信息隱藏,不需要在格式控制代碼上加載水印信息,可利用純文本文件(如HTML網頁)攜帶數字水印信息,而且水印可在不同應用程序中共享。②由于數字水印信息隱藏在符號自身的編碼中,如果對符號數字映射表進行加密,則攻擊者難以獲取數字水印信息。③可采用多種方法顯示水印載體文件,且帶有水印信息的文件不會給用戶造成任何視覺上的影響。
綜上所述,在應用范圍、兼容性、水印容量、抗攻擊性、水印造成的視覺影響等性能指標上,本文提出的基于冗余編碼的數字水印技術有一定的技術特色和優勢。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。