以符號的冗餘編碼攜帶隱藏信息的文本數字水印技術的製作方法
2023-12-02 23:01:31 1
專利名稱:以符號的冗餘編碼攜帶隱藏信息的文本數字水印技術的製作方法
技術領域:
本發明屬於通信與信息工程領域,具體涉及到數據的隱藏通信、數據的編碼與解碼、數字水印技術。
背景技術:
數字水印技術是信息隱藏技術領域的一個重要組成部分,它將具有特定意義的信息(數字水印信息),利用數字嵌入方法隱藏在各種數字圖像、聲音、視頻、文本數字產品中。這些帶有數字水印信息的電子產品一方面可以不易被感知地正常使用,另一方面,通過特定的技術手段可以檢測出嵌入在這些數字產品的數字水印信息。數字水印技術廣泛應用在數字產品的版權保護、內容驗證與防偽、防止非法拷貝、操作跟蹤、秘密數據通信等眾多流域。按照數字水印載體的不同,數字水印可分為圖像數字水印、聲音數字水印、視頻數字水印和文本數字水印等主要的幾個種類。
如綜述文章「文本數字水印」(中文信息學報,第15卷,第5期,作者黃華、齊春、李俊、朱偉芳)所述,現有的文本數字水印技術集中在利用文本文件的格式信息來保存數字水印信息。例如對文本的字間距、行間距、符號的特徵(包括大小、顏色、字體等)進行編碼來嵌入水印信息,水印信息作為格式編碼存入特定的格式文本文件中。這種思路的缺陷在於不能在基於GB18030、UCS等標準編碼的純文本文件(如HTML網頁)中保存水印信息,其次,以這種方式加載數字水印信息必然對原文件的格式帶來變化,水印信息會給用戶帶來視覺上或多或少的誤差。
如文章「二值文本數字水印技術的研究與仿真」(系統仿真學報,VOL.16 No.3,2004.3,作者王慧琴、李人厚)所述,另一種主要的現有文本數字水印技術的思路是將文本文件轉換為圖像文件,按照圖像數字水印技術提供的方法進行水印信息加載。該方法的缺點是不能用大多數的文字處理軟體進行帶有水印信息的圖像電子文件的顯示和處理。
如文章「Techniques for data Hiding」(IBM Systems Journal,1996,35(34),Bender W,et al.)所述,另外一種現有的文本數字水印技術,通過對文本中的特定詞組進行同義詞替代,對同義的不同詞彙進行編碼,用於加載水印信息。這種技術的缺點是難以為所有的詞彙找到恰當的同義詞,造成文本可嵌入水印信息的容量相當有限,畢竟不是每一個詞彙都有與之對應的同義詞。
專利申請號為00805218.2,專利名稱為「元信息的不可見的編碼」(申請人皇家菲利普電子有限公司,發明人K.埃亨,進入中國日期2001.09.18)提供了另一種文本數字水印技術。該技術對不可見符號(如空格、回車、制表符號等)出現的順序進行編碼,然後將這些不可見的符號嵌入到文本文件中用於表示數字水印信息。這種方法對可見的符號不會帶來視覺誤差,但由於引入了冗餘的不可見符號,對原文件的結構和格式帶來了影響。對於文字符號很緊湊的電子文件,可加載的水印信息容量很小。同時,由於水印信息集中在不可見符號上,文本文件中大量的可見符號沒有加載水印信息,水印信息分布不均勻,所以,用這種方式加載的水印極易被攻擊者去除。
發明內容
本發明的目的是提供一種以文本為載體的隱藏數據通信方法,以及與該方法相關的文本數字水印嵌入、顯示、列印、提取技術。用於解決現有文本數字水印技術中出現的諸如不能在純文本文件中保存水印信息、水印信息給用戶引起視覺上的誤差、文件攜帶水印信息容量小、容易被攻擊等問題。
本發明的基本原理在於對符號的數字編碼進行冗餘擴展,將傳統方法使用的語義上一個字符對應一個數字編碼的方法擴展到語義上的一個字符對應多個數字編碼。然後,對這些冗餘的數字編碼根據其狀態的不同再次進行二次數字編碼,用於存儲隱藏信息。同時,利用字符對應的冗餘編碼及二次編碼的映射關係進行隱藏信息的解碼,從而提供了一種以文本電子文件為載體的隱藏數據通信方法。本發明的文本數字水印技術,以上述隱藏數據通信方法為基礎。針對電子文件文本數字水印設計,本發明提供了語義上的一個字符的多個冗餘編碼對應一種字模的字體文件編碼映射規則,用於冗餘編碼文件的顯示,從而避免隱藏水印信息在視覺上可能引起的問題。與此同時,針對印刷品文件文本數字水印設計的需求,本發明提供了一個字符的多個冗餘編碼對應多種字模的字體文件編碼映射規則,每一個冗餘編碼對應一種不同的字模,使得文本文件字體的信息對應於隱藏信息,從而提供了一種在印刷品文件中存儲文本數字水印的方法。除此之外,將文本文件內容的摘要信息作為文本數字水印信息,將文本文件自身作為載體,結合現有文本內容驗證技術與本發明的文本數字水印技術,可得到一種新的文件內容驗證方法。
本發明包括如下緊密相關的內容(1)將符號編碼成數字代碼的方法(等價體現為符號數字映射表的產生方法);(2)利用文本電子文件作為載體進行隱藏通信的方法;(3)兩種字體文件設計方法;(4)一種電子文件文本數字水印設計方法;(5)一種印刷品文件文本數字水印設計方法。
本發明將符號編碼成數字代碼的方法本發明稱的符號是語義上無歧義的任何符號,包括任何圖形字符、控制字符等。本發明的編碼方法也不限於一個符號,也可以是一個符號串(為了描述方便,以下均以一個符號為例子,但對符號串的編碼可採用與單個符號同樣的編碼方法)。本發明將符號編碼成數字代碼的方法可以用一個符號數字映射表來等價地體現,可以認為一種符號編碼成數字代碼的方法確定了一個符號數字映射表,一個符號數字映射表也確定了一種符號編碼成數字代碼的方法。
產生本發明的符號數字映射表的最基本的規則(簡稱基本規則)是(1)至少包括一個符號集合和兩種數字代碼集合(分別稱為信留碼集合和隱藏碼集合,其中的元素稱為信留碼和隱藏碼)。
(2)在一個符號數字映射表(一個完整的編碼體系)中,至少存在一個符號,與信留碼和隱藏碼分別形成一對多的映射關係,即一個符號分別對應多個不同的信留碼和多個不同的隱藏碼。
(3)在滿足特徵(2)描述的所有符號中,至少存在著一個這樣的符號在與該符號對應的多個信留碼和多個隱藏碼中,至少存在一個信留碼子集(包括全集或真子集,以下術語「子集」有相同含義)和一個隱藏碼子集,使得這兩個子集之間的元素形成一一映射的關係,即在這兩個元素個數相等的子集中,不同的信留碼對應不同的隱藏碼,不同的隱藏碼對應不同的信留碼。
(4)在滿足特徵(3)描述的所有符號中,至少存在著這樣一個符號子集該符號子集中不同符號各自對應的、按照特徵(3)所描述的信留碼子集(與隱藏碼子集有一一映射的關係)之間沒有重複元素。
產生滿足基本規則的符號數字映射表的範圍較為寬泛,可以根據不同的應用進一步設計有更多特徵因而也是更具體的符號數字映射表。為了節省編碼空間,本發明提供一種產生符號數字映射表的擴展規則(簡稱擴展規則)(1)符號數字映射表內每一個符號至少有一個信留碼和一個隱藏碼與之對應。
(2)在整個符號數字映射表範圍內,所有符號對應的信留碼之間不能重複。
(3)對同一個符號來說,該符號對應的信留碼集合和隱藏碼集合的元素個數相等,並且這兩個集合形成一一映射關係,即不同的信留碼對應不同的隱藏碼,不同的隱藏碼對應不同的信留碼。
此外,為了與現有的符號編碼系統兼容,本發明提供一種選擇符號數字映射表中的符號集合、信留碼集合、隱藏碼集合的產生方法(簡稱補充規則)(1)符號數字映射表的符號集中包含現有編碼標準(如UCS-2、UCS-4或GB18030等)規定的符號集合的子集,在該子集中至少存在一個這樣的符號與該符號對應的信留碼集合中,有一個信留碼等於這個符號在現有編碼標準中對應的數字編碼值,該符號對應的其餘的信留碼也在現有編碼標準規定的編碼範圍中產生。
(2)不同符號對應的隱藏碼集合之間,存在一個相等的隱藏碼(命名為固定隱藏碼),即有一個相同的隱藏碼與所有的符號對應。
本發明的利用文本電子文件作為載體進行隱藏數據通信的方法在本發明的符號數字映射表中,可以看到,給定了一個符號和與之對應的隱藏碼,可以確定與它們對應的信留碼。同樣,給定了一個信留碼,可確定與之對應的符號和隱藏碼。事實上,這種符號、信留碼、隱藏碼的對應關係構成了一種將信息數據加載到符號序列上的方法,以及與之對應的數據分離的方法。
本發明的隱藏數據通信方法中加載數據的方法包括以下步驟(1)將作為載體的原始電子文件轉換為用本發明的符號數字映射表中的符號表示的符號序列。
(2)為符號序列中的每一個符號,選擇合適的隱藏碼,使得該符號序列對應的隱藏碼序列等於被傳輸的電子信息數據序列,或可根據固定的規則將隱藏碼序列無歧義對應到該電子信息數據序列,即根據該隱藏碼序列和固定的規則可唯一確定被傳輸的電子信息數據序列。固定規則的一種定義為固定隱藏碼不參與對應被傳輸的信息數據,如一個符號不存在隱藏碼可以對應被傳輸數據,則選用該符號的固定隱藏碼為對應的隱藏碼。
(3)根據(2)步驟得到的單個符號對應的隱藏碼,以及相應的符號數字映射表,確定該符號對應的信留碼。
(4)按照從步驟(1)中得到的符號序列相同的順序,將所有單個符號對應的信留碼組合起來,得到一個加載了隱藏數據的信留碼序列。
本發明的隱藏數據通信方法中分離數據的方法包括以下步驟(1)在本發明的符號數字映射表中,查詢信留碼序列中每個信留碼對應的符號和隱藏碼。
(2)分別按信留碼序列的順序組合符號和隱藏碼,得到一組與原信留碼序列對應的一組符號序列和一組隱藏碼序列。該組隱藏碼序列按照固定的規則(例如固定隱藏碼不被計入被傳輸的信息數據)可確定被傳輸的信息數據。
結合上述的數據加載方法和數據分離方法產生了本發明的以文本文件為載體的隱藏數據通信方法,該方法以信留碼文件作為隱藏信息載體,信留碼序列映射的隱藏碼序列對應被傳輸的信息數據,信留碼文件的傳輸通道作為隱藏信道。隱藏數據發送方利用上述的數據加載方法將被傳輸的隱藏數據加載到文本文件中,轉換為攜帶隱藏信息的信留碼文件。該文件通過拷貝,網絡傳送等各種方式傳送到隱藏數據的使用方,使用方通過上述數據分離方法可以分離得到隱藏數據和原文本文件,這樣,便形成了本發明的隱藏數據通信方法的基本過程。
同時,如果將本發明的符號數字映射表作為加密密鑰和解密密鑰看待,上述隱藏數據通信方法可以看成是一種對電子文件進行加密和解密的方法。這種加、解密方法的特點是以本發明的符號數字映射表作為信息傳遞雙方共享的秘密密鑰。
本發明的一種字體文件(簡稱多對一字體文件)設計方法該字體文件的特徵是(1)用本發明的符號數字映射表中的信留碼作為字體文件的符號編碼集合。
(2)在符號數字映射表中的同一符號對應的多個信留碼中,至少存在一個這樣的子集該子集中的多個信留碼映射的字模相同(或映射了多個相同的字模),並且該字模在人可識別的意義上反映相應符號(通過信留碼間接對應)的語義信息。
(3)不同符號通過特徵(2)聲稱的信留碼子集間接對應的字模之間有相同的字體風格(種類)。
本發明的另一種字體文件(簡稱一對一字體文件)設計方法該字體文件的特徵是(1)用本發明的符號數字映射表中的信留碼作為字體文件的符號編碼集合。
(2)在符號數字映射表中的同一符號對應的多個信留碼中,至少存在一個這樣的子集該子集中的多個信留碼與不同的字模形成一一映射,即不同的信留碼對應不同的字模,不同的字模對應不同的信留碼。同時,這些字模之間的差異僅表現為字體風格(種類)上存在差異,在人可識別的意義上它們反映同一個符號的語義信息,即這些字模表現為同一字符的不同字體風格(種類)。
(3)在整個特徵(1)聲稱的符號數字映射表範圍內,對於那些與相同的隱藏碼對應的不同信留碼,在字體文件中對應代表不同語義的字模,但這些字模之間的字體風格(種類)相同。特別需要指出的是,字體文件的這一特性,相當於在整個符號數字映射表和字體文件的範圍內,對不同的字體風格(種類)進行了編碼,不同的字體風格(種類)對應不同的隱藏碼,不同的隱藏碼也對應了不同的字體風格(種類)。
本發明的文本數字水印設計方法綜合利用本發明的將符號編碼成數字的方法(即符號數字映射表的產生辦法)、隱藏數據通信方法、字體文件設計方法,得到本發明的文本數字水印設計方法。
本發明完整的文本數字水印設計方法包括以下內容(1)採用本發明的隱藏數據通信方法中的數據加載方法進行數字水印信息的嵌入。
(2)採用本發明的隱藏數據通信方法中的數據分離方法進行數字水印信息的提取。
(3)文字處理軟體採用本發明的多對一字體文件,進行帶有文本數字水印的信留碼電子文件的顯示。
(4)文字處理軟體採用本發明的一對一字體文件,進行帶有文本數字水印的信留碼電子文件的列印,列印結果為帶有文本數字水印的印刷品。
需要強調的是,在本發明的文本數字水印設計過程中,數字水印信息嵌入、信留碼電子文件的顯示及列印、相關的字體文件設計、數字水印信息提取應使用同一個本發明的符號數字映射表。
其中特徵(1)~(2)的內容是本發明數字水印設計方法的必須的,其餘內容可以根據水印信息的不同、載體性質不同、應用背景不同加以選擇。對於電子文件作為數字水印信息載體的應用,可以選用(1)~(3)項的內容。對於需要產生在印刷品上保留數字水印信息的應用,可選用(1)~(2)和(4)的內容。
此外,本發明還包括一種將印刷品上的符號轉換成信留碼的方法,它包括以下步驟(1)對印刷品上的符號進行語義上的識別,確定符號的語義信息,明確印刷品上的符號在本發明符號數字映射表中對應的符號。
(2)根據在步驟(1)確定的符號的語義信息,以及本發明的一對一字體文件,確定印刷品上的符號的字體風格(種類),從而確定與該符號對應的隱藏碼。
(3)根據符號的語義信息和對應的隱藏碼,查詢本發明的符號數字映射表,獲得該印刷品上的符號在本發明的符號數字映射表中對應的信留碼。
結合上述將印刷品上的符號轉換成信留碼的方法,和從帶有數字水印信息的信留碼電子文件中提取數字水印信息的方法,可以進行帶有數字水印信息的印刷品文件的數字水印信息提取。
本發明的數字水印信息可以是任何電子數據,如果數字水印信息是載體文件的自身內容驗證報文,則本發明的數字水印設計方法便成為可以進行自身內容驗證的文本數字水印技術,但本發明應用並不限於此。
對照現有文本數字水印技術,本發明的主要特點是(1)本發明的文本數字水印技術使用符號的自身冗餘編碼進行信息隱藏,不需要在格式控制代碼上加載水印信息,可利用純文本文件(如HTML網頁)攜帶數字水印信息,因此便於在Internet網絡上使用。同時,由於絕大多數的文本處理軟體都能處理純文本文件,使用本發明嵌入數字水印信息的文本文件便於不同的文本處理軟體進行處理,兼容性好。
(2)在本發明的文本數字水印載體文件中,以單個符號為單位進行水印信息加載,可攜帶的數字水印信息容量大,而且水印信息在整個載體文件中可均勻分布。
(3)由於數字水印信息隱藏在符號自身的編碼中,如果對本發明的符號數字映射表進行加密,則數字水印攻擊者難以去除數字水印信息。
(4)本發明使用特別設計的字體文件進行帶有數字水印信息的文本文件的顯示,當使用多對一字體文件進行顯示時,和原文件相比,帶有水印信息的文本文件不會給用戶造成任何視覺上的誤差。
(5)本發明可容易地將帶有水印信息的電子文本文件轉換為帶有水印信息的印刷品文本文件,僅僅需要在字處理軟體中選用本發明的一對一字體文件進行印刷品列印。
圖1以示例的方式顯示了本發明的符號數字映射表的結構及其編碼方式,該符號數字映射表等價體現了將符號編碼為數字的方法。
圖2以示例的方式顯示了以符號序列作為數據載體,加載、分解被傳輸數據的方法。
圖3顯示了以文本文件作為載體,進行隱藏數據通信的流程圖。
圖4以示例的方式顯示了本發明兩種不同字體文件的結構,以及字體文件中符號的數字編碼和字模之間的映射規則。
圖5以示例的方式顯示了信留碼符號序列在使用本發明的兩種不同字體文件下的顯示結果。
圖6是本發明文本數字水印信息的嵌入流程圖。
圖7是本發明對帶有文本數字水印信息的電子文件進行水印信息提取、顯示和列印的流程圖。
圖8是將帶有數字水印信息的印刷品文件轉化為帶有數字水印信息的電子文件的流程圖。
具體實施例方式
下面通過舉例,並參照附圖,詳細地描述本發明的具體實施方式
。本發明的將符號編碼成數字的方法(符號數字映射表的設計方法)的
具體實施例方式下表是滿足本發明的符號數字映射表基本規則的一個具體的符號數字映射表例子,
在上述表中,包含了一個符號集合、一個信留碼集合和一個隱藏碼集合,滿足本發明符號數字映射表基本規則的特徵(1)的要求;符號「A」、「E」、「!」與信留碼和隱藏碼分別形成一對多的映射關係,即一個符號分別對應多個不同的信留碼和多個不同的隱藏碼,例如,符號「A」對應了信留碼集合{0041,E041},隱藏碼集合{0,1},所以,上表滿足本發明符號數字映射表基本規則的特徵(2)的要求;符號「A」對應的信留碼全集{0041,E041}與隱藏碼全集{0,1}形成一一映射,符號「E」對應的信留碼真子集{0045,E450}與隱藏碼全集{0,1}形成一一映射,符號「!」對應的信留碼真子集{0021,0045,E450}與隱藏碼全集{00,01,1}形成一一映射,所以符號「A」、「E」、「!」均滿足本發明符號數字映射表基本規則的特徵(3)的要求;符號「A」對應的信留碼全集{0041,E041}與符號「E」對應的信留碼子集{0045,E450}之間沒有重複元素,所以由符號「A」、「E」組成的集合{A,E}滿足本發明符號數字映射表基本規則的特徵(4)的要求。因此,上例符號數字映射表滿足本發明的符號數字映射表的所有特徵。
需要注意的是,滿足基本規則的符號數字映射表中的符號集中可以包括控制符號,如「(ESC)」,也可以包括一個符號串,如「10110101」,可以與普通符號一樣,按照本發明的編碼方法對它們進行編碼。
滿足上述基本規則的符號數字映射表,一些符號對應的信留碼和隱藏碼可能出現重碼。表中也可能出現一些這樣的符號,沒有相應的信留碼或隱藏碼與之對應,或者與之對應的信留碼和隱藏碼之間沒有明確的對應關係。為了節省編碼空間,減少重碼現象,本發明推薦在符號數字映射表的基本規則上加上擴展規則進行符號數字映射表的設計。
如圖1所示,容易看出,圖1中的符號數字映射表(110)滿足本發明的符號數字映射表的基本規則。符號數字映射表(110)中的每一個符號至少有一個信留碼和一個隱藏碼與之對應,因而該表滿足本發明符號數字映射表擴展規則的特徵(1)的要求;在整個符號數字映射表(110)範圍內,所有符號對應的信留碼之間沒有重複,可以看到圖1中的符號數字映射表(110)中的所有信留碼都沒有重複,因而該表滿足本發明符號數字映射表擴展規則的特徵(2)的要求;表中的每一個符號對應的信留碼集合和隱藏碼集合的元素個數相等,並且這兩個集合形成一一映射關係,例如,符號「A」對應的信留碼集合{0041,E410,E411}和其對應的隱藏碼集合{11111111,0,1}元素個數相等,且一一對應,因而,該表滿足本發明符號數字映射表擴展規則的特徵(3)的要求。所以,圖1中的符號數字映射表(110)同時滿足本發明符號數字映射表的基本規則和擴展規則。
為了與現有符號編碼標準兼容,使得基於本發明符號編碼的文本文件有通用性,推薦在本發明的符號數字映射表的基本規則、擴展規則的基礎上,加上本發明的符號數字映射表的補充規則進行符號數字映射表的設計。具體實施中,可根據需要選擇與任何現有編碼標準(如UCS-2、UCS-4、GB2312、GB18030等)兼容。
如圖1所示,符號數字映射表(110)反映了本發明的符號與數字編碼的對應關係,符號數字映射表(120)反映了UCS-2標準的符號與數字編碼的對應關係。符號數字映射表(110)的符號集是UCS-2符號集(BMP)的子集。符號數字映射表(120)指明了這個子集中所有符號在UCS-2標準中對應的Unicode編碼值。對於符號數字映射表(110)中的每一個符號對應的信留碼集合來說,除有一個信留碼等於該符號在UCS-2標準中對應的Unicode編碼值外,其餘的信留碼在UCS-2標準規定的用戶自定義編碼範圍E000~F8FF(十六進位)中產生。例如,符號「A」的Unicode編碼值為「0041」,它在本發明的符號數字映射表(110)中對應信留碼集合為{0041,E410,E411},該信留碼集合中的一個信留碼等於「A」的Unicode編碼值「0041」,其餘的信留碼「E410」、「E411」在0000~FFFF編碼範圍內。由此可知,符號數字映射表(110)滿足本發明符號數字映射表補充規則的特徵(1)的要求。
此外,圖1中符號數字映射表(110)的每一個符號對應了一個相同的隱藏碼「11111111」,該碼為符號數字映射表(110)的固定隱藏碼,所以,該符號數字映射表(110)也滿足本發明符號數字映射表補充規則的特徵(2)的要求。
綜上所述,圖1中的符號數字映射表(110)同時滿足本發明符號數字映射表的基本規則、擴展規則和補充規則的要求。
以下是推薦的一種完整的符號數字映射表的產生辦法(1)符號數字映射表同時滿足基本規則、擴展規則和補充規則的要求;(2)符號集的選取選取UCS-2符號集(BMP)中Unicode編碼數值範圍為0000~DFFF(十六進位)和F900~FFFF(十六進位)的所有符號;(3)固定隱藏碼的數值為「EFFF」(十六進位);(4)對於UCS-2符號集(BMP)中Unicode編碼數值範圍為0000~007F(十六進位)的符號(基本拉丁字符集),每個符號對應的信留碼、隱藏碼各為17個。
信留碼產生的方式每個符號對應的17個信留碼中,有一個信留碼值等於該符號的Unicode編碼值,其餘16個信留碼為連續遞增的4位十六進位數字(兩字節的二進位數字),遞增量為1,其最小值等於該符號的Unicode編碼值(十六進位)乘以10(十六進位)再加上E000(十六進位)得到。例如符號A的17個信留碼中,有一個信留碼為「A」對應的Unicode編碼值「0041」(十六進位)。其餘16個連續遞增的信留碼中,最小的是0041(十六進位)×10(十六進位)+E000(十六進位)=E410(十六進位)。所有「A」對應的17個信留碼為{0041,E410,E411,E412,E413,E414,E415,E416,E417,E418,E419,E41A,E41B,E41C,E41D,E41E,E41F}(十六進位)。
隱藏碼產生的方式每個符號對應的17個隱藏碼均為{EFFF,0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}(十六進位)。
信留碼與隱藏碼的對應方式等於符號的Unicode編碼值的信留碼與固定隱藏碼「EFFF」對應,例如,符號「A」的等於Unicode編碼值的信留碼「0041」對應固定隱藏碼「EFFF」;其餘16個信留碼和16個隱藏碼按照從小到大的順序依次對應,例如符號「A」對應的16個信留碼中,最小值為「E410」,「A」對應的16個隱藏碼中,最小值為「0」。因此信留碼「E410」對應隱藏碼「0」。同理,信留碼「E411」對應「1」,其餘依此類推。
(5)對於UCS-2符號集(BMP)中Unicode編碼數值範圍為0080~DFFF(十六進位)和F900~FFFF(十六進位)的所有符號,每個符號對應的信留碼、隱藏碼各為一個,即與該符號形成一一映射,其對應的信留碼值等於該符號對應的Unicode編碼值,所有符號對應的隱藏碼的數值均等於固定隱藏碼值「EFFF」。
上述符號數字映射表的符號集包括UCS-2標準符號集(BMP),並且,每個符號對應的信留碼集合中,有一個信留碼值等於該符號對應的Unicode編碼值,其他信留碼在UCS-2標準中Unicode用戶自定義編碼範圍E000~F8FF(十六進位)中產生,不會與UCS-2中已明確定義的符號編碼發生衝突,所以,用該表進行編碼的方法與用UCS-2標準進行編碼方法兼容。上述符號數字映射表用基本拉丁字符集中的符號攜帶隱藏信息,每個基本拉丁字符集中的符號可攜帶4位二進位數據。
本發明的隱藏數據通信方法的
具體實施例方式如圖2所示,從左到右的順序是數據加載的流程,該流程表示將「01101」(230)這個被傳輸的二進位數據序列加載到用Unicode碼表示的「004C,004F,0056,0045」數字編碼序列(210)上的過程。使用圖1的符號數字映射表(120),該數字編碼序列對應的符號序列為「LOVE」(220),所以,該數據加載過程實際上是將「01101」(230)加載到符號序列「LOVE」(220)上。
加載過程是這樣的首先查詢符號「L」在圖1符號數字映射表(110)中的除了固定隱藏碼(「11111111」)外,可能的隱藏碼集合{0,1},從左邊開始對比該隱藏碼集合中的元素與被傳輸二進位數據序列「01101」(230),獲得最大匹配的數字串,可得符號「L」對應的隱藏碼「0」與「01101」(230)的第一位匹配。同理,對比符號「O」的隱藏碼集合{00,01,10,11}與被傳輸數據序列「1101」(原傳輸數據「01101」(230)去除與符號「L」的對應位「0」後的剩餘數據),可得「O」的隱藏碼「11」與「01101」(230)的第二、三位匹配。符號「V」在符號映射表中只有唯一的固定隱藏碼「11111111」,不存在其他的隱藏碼可與被加載的數據對應,所以,符號「V」沒有數據攜帶能力,不能對應被傳輸的數據,符號「V」僅能使用固定隱藏碼「11111111」。同理可得,符號「E」的隱藏碼「01」與被傳輸數據(230)的第四、五匹配。這樣,符號序列「LOVE」(220)按照上述方法得到的對應的隱藏碼序列為「0」,「11」,「11111111」,「01」。該隱藏碼序列按照固定的規則(固定隱藏碼「11111111」不參與同被傳輸數據的對應)可唯一映射到被傳輸數據「01101」(230)。根據符號序列「LOVE」(220)中的各個符號和與之對應的隱藏碼信息,查詢圖1中的符號數字映射表(110),得到與這些符號對應的信留碼分別是「L」對應「E4C0」,「O」對應「E4F3」,「V」對應「0056」,「E」對應「E451」。按符號序列「LOVE」(220)的順序將各符號對應的信留碼組合起來得到信留碼序列「E4C0,E4F3,0056,E451」(240)。這樣,原Unicode碼表示的「004C,004F ,0056,0045」數字編碼序列(210)加載數據「01101」(230)後,變為了信留碼序列「E4C0,E4F3,0056,E451」(240)。該信留碼序列既反映了原符號序列的語義信息,又隱藏了被傳輸的數據信息。
同理,將被傳輸數據「100101101」加載到語句「I LOVE YOU!」(其中包括兩個空格符號)上得到的信留碼序列為「0049,0020,E4C1,E4F0,0056,E452,0020,0059,E4F3,E550,E211」。
值得注意的是,如果在符號序列上不需要加載任何數據,則在本發明的符號數字映射表中,選用這些符號對應的現有標準(如UCS,GB18030,GB2312等)編碼值作為信留碼,選用固定隱藏碼作為符號對應的隱藏碼,這樣,通過本發明編碼的信留碼電子文件與現有標準編碼的電子文件完全兼容。
如圖2所示,從右到左的順序是數據分離的流程,該流程表示從帶有隱藏數據的信留碼序列「E4C0,E4F3,0056,E451」(240)中分離數據的過程。使用與數據加載過程相同的圖1中的符號數字映射表(110),查找信留碼序列「E4C0,E4F3,0056,E451」(240)中每一個信留碼在符號數字映射表(110)中對應的符號和隱藏碼,可以得到「E4C0」對應符號「L」和隱藏碼「0」,「E4F3」對應符號「O」和隱藏碼「11」,「0056」對應「V」和隱藏碼「11111111」,「E451」對應符號「E」和隱藏碼「01」。按照原信留碼序列的順序分別組合單個的符號和隱藏碼,得到一組符號序列為「LOVE」(220),一組隱藏碼序列為「0,11,11111111,01」。由於固定隱藏碼「11111111」不計入被傳輸數據,重新組合隱藏碼序列得到被傳輸數據為「01101」(230),原數據加載符號序列為「LOVE」(220)。
如果需要將數據加載符號序列「LOVE」(220)轉換為Unicode編碼序列,查詢圖1中的符號數字映射表(120),得到原Unicode編碼序列「004C,004F,0056,0045」(210)。
同理可得信留碼序列「0049,0020,E4C1,E4F0,0056,E452,0020,0059,E4F3,E550,E211」的加載符號序列為「I LOVE YOU!」,被傳輸數據為「100101101」。
圖3顯示本發明完整的隱藏數據通信方法的流程圖。原載體文件(310)首先被轉換為在本發明的符號數字映射表(350)中有定義的符號序列(320),通過圖2所述的數據加載方法將被傳輸的電子信息數據(330)和符號序列(320)轉換為信留碼文件(340),該文件通過拷貝,網絡傳輸等各種方式傳送給數據接受用戶,數據接受用戶用圖2所述的數據分離方法分離信留碼文件(340)得到被傳輸的電子信息數據(330)和符號序列(320),再將該符號序列(320)轉換為原載體文件(310)。
如果對符號數字映射表(350)進行加密,即在數據的傳送方和接受方使用同一個未公開的秘密符號數字映射表(相當於一個密碼本),則上述隱藏數據通信方法構成了一種特殊的數據加密方法。該數據加密方法分為兩種情況一種情況是公開本發明符號數字映射表(350)中的符號集合和信留碼集合,以及公開符號與信留碼之間的映射關係,同時,隱藏碼集合不公開,信留碼與隱藏碼之間的映射關係、符號與隱藏碼之間的映射關係也不公開。在這種情況下,通信雙方的原載體文件為公開的信息,隱藏數據為加密信息,例如在圖2的例子中,載體符號序列「LOVE」(220)為公開的信息,被傳輸數據「01101」(230)為加密信息;另一種情況是本發明的符號數字映射表(350)中符號集合、信留碼集合、隱藏碼集合以及它們之間的映射關係都不公開,則通信雙方的原載體文件和被傳輸的隱藏數據均被加密。
本發明字體文件設計的
具體實施例方式圖4字體文件(410)為本發明的多對一字體文件設計的一個示例,這種字體文件主要用於帶有文本數字水印的信留碼電子文件的顯示。
如圖4所示,容易得知,字體文件(410)用本發明的符號數字映射表中的信留碼集合作為字體文件的符號數字編碼集合,由此可知,該字體文件(410)滿足本發明多對一字體文件的特徵(1);在該字體文件(410)中,同一個符號對應的信留碼集合映射的字模相同。例如,符號「A」對應的多個信留碼{0041,E410,E411}都對應同一個字模 並且該字模反映了符號「A」的真實語義,因而該字體文件(410)滿足本發明多對一字體文件的特徵(2);在字體文件(410)中,不同符號對應的字模之間有相同的字體風格(種類),例如,符號「A」和「E」分別對應不同的字模 和 但是這兩個不同字模有相同的字體風格(種類),它們都是Italic字體,所以該字體文件(410)也滿足本發明多對一字體文件的特徵(3)。由此可知,圖4字體文件(410)滿足本發明的多對一字體文件的全部特徵。
圖4字體文件(420)為本發明的一對一字體文件設計的一個示例,這種字體文件主要用於將帶有文本數字水印的信留碼電子文件列印為帶有文本數字水印的印刷品文件。
如圖4所示,容易得知,字體文件(420)用本發明的符號數字映射表中的信留碼集合作為字體文件的符號數字編碼集合,該字體文件(420)滿足本發明一對一字體文件的特徵(1);在該字體文件(420)中,同一符號對應的多個信留碼與多個字模形成一一映射,例如,符號「A」對應的多個信留碼{0041,E410,E411}對應不同的字模 這些字模都反映了符號「A」的真實語義,只是字體風格(種類)不同, 為「Italic」字體, 為「RomanC」字體、 為「BankGothic Md BT」字體,因而該字體文件(420)滿足本發明一對一字體文件的特徵(2);在字體文件(420)中,那些與相同的隱藏碼對應的字模的字體風格(種類)相同,例如,符號「A」和「L」分別對應不同的字模集合 和 但是與同一個隱藏碼「11111111」對應的字模 的字體風格(種類)相同,均為「Italic」字體,與同一個隱藏碼「0」對應的字模 的字體風格(種類)均為「RomanC」字體,與同一個隱藏碼「1」對應的字模 的字體風格(種類)均為「BankGothic Md BT」字體。同理,在整個字體文件範圍內,隱藏碼「00」,「01」「10」「11」均一一對應了不同的字體風格(種類)。因而該字體文件(420)滿足本發明一對一字體文件的特徵(3)。由此可知,圖4字體文件(420)滿足本發明的一對一字體文件的所有特徵。
圖5以示例的方式表示了帶有數字水印信息的信留碼序列在使用兩種不同字體文件下的顯示結果。例如,對於信留碼序列「E4C0,E4F3,0056,E451」(240)來說,用多對一字體文件(410)和一對一字體(420)文件進行顯示有不同的顯示結果。
查閱多對一字體文件(410),信留碼序列「E4C0,E4F3,0056,E451」(240)分別對應的字模為 組合後的顯示結果是 (510),每個字模同為「Italic」字體,視覺上各符號的顯示很協調。該顯示結果 (510)與信留碼序列(240)的對應是單向的,通過查詢多對一字體文件(410),只能通過信留碼序列(240)單向得到符號的顯示結果(510),根據符號的顯示結果(510)不能唯一確定信留碼序列(240)。
查閱一對一字體文件(420),信留碼序列「E4C0,E4F3,0056,E451」(240)分別對應的字模為 組合後的顯示結果是 (520),每個字模屬於不同的字體,視覺上各符號的顯示有不協調之處,但能辨認出單詞的語義信息。該顯示結果 (520)與信留碼序列(240)的對應是雙向的,通過查詢一對一字體文件(420),能通過信留碼序列(240)得到符號的顯示結果(520),也可以根據符號的顯示結果(520)得到確定的信留碼序列(240)。
本發明的數字水印設計技術的
具體實施例方式圖6以內容驗證水印為例子說明了本發明文本數字水印信息的加載過程。
本發明的文本數字水印設計技術的數字水印信息可以是任何電子數據。圖6以內容驗證水印信息作為例子,但本發明並不限於加載內容驗證水印信息。
如圖6所示,原文本文件(610)通過內容摘要產生裝置(620)生成內容驗證報文,然後加密裝置(630)利用密鑰(631)對內容驗證報文進行加密形成內容驗證水印(632)。需要聲明的是已有眾多的現有技術可產生內容摘要和進行加密,本發明並不基於哪種特別的技術。
文本水印合成裝置(640)將內容驗證水印(632)或其他的水印信息(641)作為被傳輸的數據,原文本文件作為載體文件,按照本發明的隱藏數據通信方法中的數據加載方法,將被傳輸的數據加載到載體文件上,得到一個攜帶了數字水印信息的信留碼文件(650)。該文件可以通過拷貝、網絡傳送等方式提供給其他電子文件使用者(660)進行利用。
利用文字處理軟體(670)讀取帶有文本數字水印信息的信留碼文件(650),同時,選用一對一字體文件(671),通過列印裝置(680)進行帶有文本數字水印信息的信留碼文件(650)的列印,則可以得到帶有水印的印刷品文件(681)。在直觀上,從該帶有水印的印刷品文件(681)中,可以識別出原文本文件的語義信息,只是符號字體發生了變換,與原文本文件相比較,視覺上存在一定程度的誤差,這種符號字體上的變化反映了印刷品文件中攜帶的水印數據信息。例如,圖2所示的原文件序列「004C,004F,0056,0045」(210)對應的符號序列為「LOVE」(220),對應的信留碼序列為「E4C0,E4F3,0056,E451」(240),用圖4中一對一的字體文件(420),按照圖5所示,列印的結果為 (520)。與正常顯示結果(510)相比,該列印符號序列(520)的語義信息沒有變化,只是字體發生了變化,字體變化的信息對應了用隱藏碼表示的水印信息「01101」(230)。該帶有水印的印刷品文件(681)可以用複印等方式傳遞給其他印刷品文件使用者(690)。
圖7的一部分顯示了本發明對帶有文本數字水印信息的信留碼文件(710)進行水印信息提取的過程。
水印分解裝置(740)使用本發明隱藏數據通信方法的數據分離方法分離信留碼文件(710),得到水印信息(內容驗證水印(760)或其他水印(741))和原文本文件(750)。如果水印信息為內容驗證水印(760),一方面用與加密密鑰(631)相關的解密密鑰(771)通過解密裝置(770)得到文本的驗證報文,另一方面使用與生成內容驗證報文相同的方法對原文本文件(750)提取內容摘要,得到另一個驗證報文,將兩種驗證報文輸入到內容驗證裝置(780)中進行比較,得出驗證結果(790)。與內容驗證水印加載過程相似,內容驗證水印提取過程並不特定和某種內容驗證技術和解密技術相關,可選用與內容驗證水印加載過程相應的技術,這些內容驗證技術和加解密技術的實現細節不包括在本發明內,通過現有技術實現。
圖7的另一部分顯示了本發明對帶有文本數字水印信息的信留碼文件(710)進行顯示和列印的過程。文字處理軟體(720)讀入帶有文本數字水印信息的信留碼文件(710),然後根據用途選擇恰當的字體文件(721)進行後續處理。
如果希望正常使用原文本文件,如閱讀信留碼文件(710)表示的原文本文件的內容,不涉及處理數字水印信息,則使用如圖4中所示的多對一字體文件(410)。這樣,儘管一個符號可能對應多個信留碼,但這些信留碼在字體文件中僅對應一個字模,因而也只對應一種字體。例如,對於圖5所示的信留碼序列「E4C0,E4F3,0056,E451」(240),使用圖4中的多對一字體文件(410),通過顯示裝置(731)顯示的結果為 (510),所有符號為同一種字體「Italic」。帶有水印信息的信留碼文件(710)通過這種方式的顯示結果不會給人在視覺上造成任何影響。同時,以這種字體文件通過列印裝置(730)列印的印刷品文件,為去掉了水印信息的常規印刷品文件(7301),可作為普通印刷品文件使用。
如果希望將帶有水印信息的信留碼文件(710)列印為帶有水印信息的印刷品文件(7302),或在屏幕上預覽帶有水印信息的信留碼文件(710)的列印效果,則使用如圖4中所示的一對一字體文件(420),具體使用方法與圖6加載數字水印過程中進行帶有水印信息的印刷品列印的方法相同。
圖8顯示將帶有水印的印刷品文件(810)轉化為帶有數字水印的信留碼電子文件(840)的過程。
利用字符識別裝置(820)對帶有水印的印刷品文件(810)上的符號進行語義上的識別,確定符號的語義信息,明確印刷品上的符號在本發明符號數字映射表中對應的符號。例如,印刷品上的符號序列為 (520),用文字識別技術確認其在符號數字映射表(110)中對應的符號序列為「LOVE」(220)。
根據符號的語義信息,和如圖4所示的一對一字體文件(420),利用字體識別裝置(850)確定印刷品上的符號的字體風格(種類),從而確定與該符號對應的隱藏碼。符號序列對應的隱藏碼序列中,除去固定隱藏碼後的剩餘隱藏碼序列為數字水印信息。例如,可以查詢圖4所示的一對一字體文件(420),確定 (520)的字體風格(種類),得到該符號序列對應的隱藏碼為「0」,「11」,「11111111」,「01」,其對應的數字水印信息為「01101」(230)。
根據符號的語義信息和對應的隱藏碼,查找本發明的符號數字映射表,使用文件合成裝置(830)獲得印刷品上的符號序列對應的信留碼序列,從而得到信留碼電子文件(840)。例如,對於印刷品符號序列 (520)來說,通過前述步驟得到的在本發明的符號數字映射表中對應的符號序列為「LOVE」(220),其對應的隱藏碼為「0」、「11」、「11111111」、「01」,查詢符號數字映射表(110),可得對應的信留碼序列為「E4C0,E4F3,0056,E451」(240),從而得到與原帶有水印信息的印刷品文件對應的帶有數字水印信息的信留碼電子文件(840)。
將帶有水印信息的印刷品文件轉化為帶有數字水印的信留碼電子文件後,可以使用前述的數字水印提取方法進行數字水印信息和原始文本文件的分離。
需要說明的是,在同一個文本數字水印設計系統中,水印信息的加載、提取、顯示、列印過程及相關的字體文件應使用同一個符號數字映射表。本發明的所有例子均使用圖1所示的符號數字映射表(110)。
權利要求
1.一種將符號編碼成數字代碼的方法,該方法通過符號數字映射表等價體現。該符號數字映射表的特徵是(1)至少包括一個符號集合和兩種數字代碼集合(分別稱為信留碼集合和隱藏碼集合,其中的元素稱為信留碼和隱藏碼)。(2)至少存在一個符號,與信留碼和隱藏碼分別形成一對多的映射關係。(3)在滿足特徵(2)描述的所有符號中,至少存在著一個這樣的符號在與該符號對應的多個信留碼和多個隱藏碼中,至少存在一個信留碼子集(包括全集或真子集,以下術語「子集」有相同含義),和一個隱藏碼子集,使得這兩個子集之間的元素形成一一映射的關係。(4)在滿足特徵(3)描述的所有符號中,至少存在著這樣一個符號子集該符號子集中不同符號各自對應的、按照特徵(3)所描述的信留碼子集(與隱藏碼子集有一一映射的關係)之間沒有重複元素。
2.如權利要求1聲稱的符號數字映射表(等價於將符號編碼成數字代碼的方法),該符號數字映射表的特徵是(1)每一個符號至少有一個信留碼和一個隱藏碼與之對應。(2)不同符號對應的信留碼之間不重複。(3)對同一個符號來說,該符號對應的信留碼集合和隱藏碼集合的元素個數相等,並且這兩個集合中的元素形成一一映射關係。
3.如權利要求1或2聲稱的符號數字映射表(等價於將符號編碼成數字代碼的方法),該符號數字映射表的特徵是符號數字映射表的符號集包含UCS編碼標準(ISO 10646)定義的符號集的子集,在該子集中至少存在一個這樣的符號與該符號對應的信留碼集合中,存在一個信留碼等於這個符號在UCS標準中規定的符號編碼值(對應的Unicode碼值)。
4.如權利要求1或2聲稱的符號數字映射表(等價於將符號編碼成數字代碼的方法),該符號數字映射表的特徵是符號數字映射表的符號集中包含中國國家標準GB18030定義的符號集的子集,在該子集中至少存在一個這樣的符號與該符號對應的信留碼集合中,存在一個信留碼等於這個符號在GB18030標準中規定的符號編碼值。
5.如權利要求1或2聲稱的符號數字映射表(等價於將符號編碼成數字代碼的方法),該符號數字映射表的特徵是符號數字映射表中存在這樣一個符號子集該子集中不同符號對應的隱藏碼集合之間,存在一個相等的隱藏碼,即有一個相同的隱藏碼與該符號子集中所有的符號對應。
6.一種將電子數據加載到符號序列中的方法,該方法包括以下步驟(1)為符號序列中的符號,選擇合適的隱藏碼,使得該符號序列對應的隱藏碼序列等於被加載的電子數據,或可根據規則將該隱藏碼序列無歧義地對應到被加載的電子數據上。(2)查詢如權利要求1、2、3、4或5中聲稱的符號數字映射表,得到與該符號序列和該隱藏碼序列對應的信留碼序列。
7.一種從信留碼序列中分離數據的方法,該方法包括以下步驟(1)根據權利要求1、2、3、4或5中聲稱的符號數字映射表,查詢信留碼序列中信留碼對應的符號和隱藏碼。(2)分別組合符號和與之對應的隱藏碼,得到與原信留碼序列對應的符號序列和隱藏碼序列,該符號序列對應載體數據,隱藏碼序列對應被加載的數據。
8.一種隱藏數據通信方法,該方法具有以下特徵(1)以信留碼編碼文件作為隱藏數據載體。(2)用權利要求6所聲稱的方法進行數據加載。(3)用權利要求7所聲稱的方法進行數據分離。
9.一種數據加密的方法,該方法有以下特徵(1)以權利要求1、2、3、4或5中聲稱的符號數字映射表作為加密密鑰和解密密鑰。(2)按照權利要求6聲稱的數據加載方法,將需要加密的數據加密為信留碼序列。(3)按照權利要求7聲稱的數據分離方法,將信留碼序列解密為原數據。
10.一種字體文件,其特徵在於在該字體文件中,至少存在一個這樣的符號編碼集合該編碼集合中的多個編碼反映同一個符號的語義信息,且該集合中的多個編碼映射同一個字模或形狀相同的多個字模。
11.一種字體文件,其特徵在於在該字體文件中,至少存在一個這樣的符號編碼集合該編碼集合中的多個編碼反映同一個符號的語義信息,且該集合中的多個編碼與形狀不同的多個字模存在一一映射關係。
12.一種文本數字水印設計方法,它包括以下特徵(1)將數字水印信息作為被加載電子數據,將文本電子文件作為載體文件,按照權利要求6聲稱的數據加載方法,將數字水印信息嵌入到載體文件中。(2)使用權利要求7聲稱的數據分離方法將帶有數字水印信息的電子文件分離為數字水印信息和載體文件。
13.如權利要求12所述的文本數字水印設計方法,它包括以下特徵使用如權利要求10聲稱的字體文件進行文件的電子顯示或印刷品的列印。
14.如權利要求12所述的文本數字水印設計方法,它包括以下特徵使用如權利要求11聲稱的字體文件進行文件的電子顯示或印刷品的列印。
15.如權利要求12、13或14所述的數字水印設計方法,其特徵是將需要進行內容驗證的文件自身作為載體文件,並將根據該文件自身內容產生的驗證報文作為數字水印信息。
16.一種將符號的字體信息保存在符號自身數字編碼中的方法,其特徵是用權利要求1、2、3、4或5聲稱的將符號編碼成數字代碼的方法,將符號編碼成信留碼,用信留碼對應的隱藏碼表示符號的字體信息。
全文摘要
本發明提供了一種以文本為載體、並以符號的冗餘編碼保留隱藏信息的隱藏數據通信方法,以及與該方法相關的文本數字水印嵌入、顯示、列印和提取的技術。本發明包括多項緊密相關的內容(1)將符號編碼成數字代碼的若干方法;(2)利用文本電子文件為載體進行隱藏數據通信的方法;(3)兩種字體文件的設計方法;(4)一種電子文件文本數字水印設計方法(5)一種印刷品文件文本數字水印設計方法。本發明的文本數字水印技術具有兼容性強、視覺誤差小、抗攻擊能力強、容量大等特點。
文檔編號H04N1/32GK1599405SQ20041004030
公開日2005年3月23日 申請日期2004年7月26日 優先權日2004年7月26日
發明者劉 東 申請人:劉 東