專利名稱::以一類pdf文本作為掩體的信息隱寫方法
技術領域:
:本發明涉及計算機網絡信息通信安全
技術領域:
,特別是一種以一類PDF文本作為掩體的信息隱寫方法。
背景技術:
:信息加密是保證通訊安全的重要方式,但是在實際應用中僅僅使用加密通常是不夠的。盡管現代密碼術已經發展成為一門比較成熟的學科,但在許多需要秘密通信的應用中仍然傾向于對信息進行加密后再進行隱寫,以不引起人們的注意。由于經過加密方法處理所生成的密文具有隨機性,因而很容易引起監控者的注意,并可以以此為依據展開對密文的破譯或對發送者和接收者的攻擊,而如果發送的是一條表面上可以被任何人讀取的信息,那么就可以減少人們對它產生懷疑并試圖尋找秘密信息的可能性。因此,通信安全的研究不僅包括密碼術的研究,還包括信息隱藏技術的研究,而隱寫技術是信息隱藏技術的重要分支。與密碼術保護信息內容的目的不同,隱寫技術是為了隱蔽信息存在的事實或信息存在的位置,即將重要信息隱藏在其它信息之中,使得人們覺察不到它的存在,或者知道它的存在,但未經授權者無法確定它的位置。PDF文件是PortableDocumentFormat的縮寫,意為可攜式文件格式,是由Adobe公司在1992年發表的。現在它已經成為跨平臺的通用格式,可暢通無阻地在幾乎任意平臺上顯示與閱讀,已成為世界上通用的電子信息傳遞及在網絡出版印刷中常用的標準格式文件,是網上電子雜志等最熱門的傳遞方式之一。PDF格式文件以PostScript頁面描述語言中確立的二維矢量圖形成像方法作為基本的成像模型。作為格式文檔,PDF格式頁面元素不僅包括正文文本圖元,還包括圖形圖元和圖像圖元等,對在圖形圖像圖元中的信息隱寫方法可參考現有文獻(如ProceedingsoftheFirst-SixthInformationHidingWorkshop,Spinger-Verlag,1996-2004等)。本發明僅研究以PDF文檔的正文文本作為掩體的信息隱寫方法,考慮到PDF文檔的多樣性,本發明以兩端對齊的英文WORD文檔轉化生成的PDF文檔(文本中的每一個字符各自精確定位)為例。與音,視頻等數據不同,文本數據中含有很少的可用來進行秘密通信的冗余信息,以文本作為掩體與以音,視頻作為掩體的信息隱寫方法不盡相同。現有的在格式文檔中隱寫信息的方法不多(如BrassilJ.eta1.ElectronicMarkingandIdentificationTechniquestoDiscourageDocumentCopying”.ProceedingofINFORCOM’94,1994,1278-1287和LowS.H.etal.DocumentIdentificationforCopyrightProtectionUsingCentroidDetection.IEEETransactiononCommunications,Vol.46,No.3,1998,372-383等),典型的做法是將信息存儲在行間距或列間距中以及采用字形特征編碼等隱寫單位為1Bit的方法。現有的以格式文檔為掩體的信息隱寫方法有如下不足A.可隱寫的信息量很小;B.可隱寫的信息量難以估計;C.易被隱寫分析攻破等。這些不足制約了隱寫方法的實用性。
發明內容為了克服目前以格式文檔為掩體的信息隱寫方法的不足,本發明針對當前最熱門的網絡傳遞文檔類型之一的PDF文檔,在其正文文本中隱寫較大可估計信息量的信息,支持盲提取,做到簡單實用,且發明的方法本身遵守Kerckhoffs原理通信的安全性不依賴于對所使用方法本身的保密性,而僅依賴于隱寫密鑰。技術方案本發明所采用的總體技術方案是由于從兩端對齊的英文WORD文檔轉化生成的PDF文檔,文本中的每一個字符各自精確定位作為掩體,利用該類掩體TJ操作符中的“數字”具有的不確定性提供的隱密信道來隱寫信息,正文文本TJ操作對象的數字中存在著隱密信道,利用顯示操作符TJ的頁面描述機理,可在保證透明性的基礎上,在TJ操作對象中有策略地選取部分“數字”n(1≤n≤16)來隱寫可盲提取的信息。隱寫方法的嵌入過程和提取過程按如下方案設計“數字”n的選取采用以一定的冗余換取安全性的策略,只選取部分,冗余度參數可調“數字”來隱寫信息,選取算法的安全性依賴于偽隨機數發生器的迭代初值,由隱寫密鑰生成,另外,還利用了單向散列函數SHA算法來保證嵌入信息的數據完整性。具有的優點、特點本發明方法的隱寫容量是可估計的。本發明由于采用了1~16(0~15數字加1)的數字來隱寫信息,故一個數字可表示4Bit的隱寫信息,這比較上述將信息存儲在行間距或列間距中以及采用字形特征編碼的方法(隱寫單位為1Bit)將能隱寫較大的信息量。圖1為選取PDF參考手冊(AdobeSystemsIncorporated.PortableDocumentFormatReferenceManual.Version1.3.http//www.Adobe.com.March,1999.)的Chapter1.1~2.3.1的內容生成的PDF掩體文件PDFCoverFile.pdf,共6頁,包含24026個字符;圖2為4668字節的嵌入信息(經處理的Lena圖片);圖3為經過本發明方法處理的隱寫了圖2的隱寫文件PDFStegoFile.pdf;當選取90%(冗余度參數為10%)的1~16“數字”來隱寫信息(1~16“數字”減1)時,明顯地,隱寫文件PDFStegoFile.pdf保持了顯示的透明性,且可隱寫率(隱寫信息字節數/英文正文文本字符數)為466824026×100%≈19.43%.]]>本發明對不同排版格式(如單列,雙列等)的PDF掩體以及對含有各類文本(數學公式等),圖形,圖像等頁面元素的PDF掩體都是完全適用的。另外,本發明方法的安全性遵守Kerckhoffs原理;具備對嵌入信息數據完整性的保證機制以及支持盲提取等特點,這些特點提高了本發明方法的實用性。1.PDF文檔正文文本的頁面描述機理PDF把對文本的操作封裝起來構成文本對象,每一個文本對象都包含有自己的字符編碼、文本狀態參數和坐標操作符。PDF將文本字符看作圖像模型,每個字符對應一個特定的圖形(glyph).字符圖形以字體(font)方式編組,一個字體包含了一組特定的字符碼和圖形,并且定義了字符碼和圖形之間的對應關系。程序執行時,每個字體生成帶有名稱的一個字典(fontdictionary),對每一個需要繪制的字符,程序首先尋找到含有該字符的字典名(fontname),從字典中得到字符碼,再根據字符碼取得字符圖形。PDF文檔的正文文本對象TextObject以BT操作符開始,以ET操作符結束,其中包含了顯示文本字符或字符串、移動文本狀態、設置文本狀態以及其它的一些參數信息。PDF文檔中包括如下操作符文本狀態操作符Tf,文本定位操作符Tm,文本定位操作符Td/TD和文本顯示操作符TJ/Tj等。文本狀態操作符TfTf的第1個參數為字體信息。文本定位操作符Tm文本矩陣Tm的操作數為[Sx00SyTxTy]其中,Tx和Ty是將原坐標系在x軸和y軸方向轉化成的長度。新坐標系x軸和y軸方向的1個單位相當于原坐標系的Sx個單位和Sy個單位。字號與換行信息字號信息可由Tm的第1個操作數體現出來。值越大,說明字號越大,反之越小。Tm的第6個操作數的值基本體現行的位置。由于字體的不同,同一行的Tm的第6個操作數可能有微小差別,但其差遠小于1。文本定位操作符Td/TDTd/TD的兩個操作數為Tx,Ty。Td操作符是移動到下一行,并且距當前行首位置的偏移量為(Tx,Ty)。TD操作符除了做與Td相同的工作外,還要設置leading文本狀態參數。通過Td/TD定位后,當前行的文本矩陣Tm做相應的修改,詳細內容請見AdobeSystemsIncorporated.PortableDocumentFormatReferenceManual.Version1.3.http//www.Adobe.com.March,1999。PDF頁面描述中與字符間距有關的文本狀態參數和操作符為字符間距參數Tc、字間距參數Tw和顯示操作符TJ,其中Tw主要是針對英文設計的,它只應用于空格符號(空格在英文中為單詞分隔符)。操作符TJ執行時,若遇到字符,則按參數Tc(或Tw)顯示該字符;若遇到數字,設該數字數值為n,則n將從當前的“坐標中減去當前字符單位的n/1000。所謂字符單位,是指某號字的標準長度,例如,對于12點陣的字符,字符單位即為12點的長度。更為詳細的內容請見AdobeSystemsIncorporated.PortableDocumentFormatReferenceManual.Version1.3.http//www.Adobe.com.March,1999。由TJ的頁面描述機理以及實驗結果表明當改變數字數值n,若n值較小時,如小于16,將保持PDF文檔在閱讀器中顯示的透明性。顯示操作符TJ的應用實例見圖8。為使PDF文檔具備完全的設備無關性。文本中的每一個字符各自精確定位的PDF英文文檔的文本中不采用參數Tc和Tw,僅在TJ顯示操作符中用字符間的整數來精確定位每一個字符的坐標。圖9為從一個兩端對齊的英文WORD文檔轉化生成的文本中的每一個字符各自精確定位PDF文檔(掩體文件)當中的某一TJ操作對象,設為CoverTJObj;圖10為嵌入信息后隱寫文件中對應CoverTJObj的TJ操作對象,設為StegoTJObj。圖9,圖10中每個“<>”中的內容為一個字符碼。2.隱密信道的存在對于普遍采用的兩端對齊排版方式的英文WORD文檔(正文文本中不采用參數Tc和Tw,僅在TJ顯示操作符中用字符間的數字來精確定位每一個字符的坐標),每行文本字符的水平坐標定位通常是由操作符Tf、Tm、TD/Td中的參數和TJ操作符中的“數字”共同作用的結果。由于兩端對齊的排版約束,在文檔的每一行內,字符間距往往本身就具有不確定性,字符間距的不確定性導致了TJ操作符中“數字”的不確定性,而具有不確定性的TJ操作符中的“數字”序列給我們提供了一個可供隱寫信息的隱密信道。3.以一定的冗余換取安全性的策略本發明方法在PDF掩體文件的TJ操作對象中有策略地選取部分“數字”n(1≤n≤16)來隱寫可盲提取的信息。“數字”n的選取采用以一定的冗余換取安全性的策略,只選取部分(冗余度參數可調)1~16“數字”來隱寫信息(0~15“數字”加1),選取方法的安全性依賴于偽隨機數發生器的迭代初值,而此迭代初值由隱寫密鑰生成。采用以上策略使得本發明方法的安全性遵守Kerckhoffs原理。圖11表示了TJ操作對象中的″數字″,作為隱密信道的1~16″數字″和實際隱寫信息的1~16″數字″之間的關系。4.隱寫信息完整性的保證機制由圖6和圖7,以及附圖具體實現步驟說明,可知本發明利用了單向散列函數SHA方法及MOD運算來生成FlagStr1串和FlagStr2串。嵌入的“0~15數字庫”由FlagStr1串,嵌入信息轉化成的“0~15數字”串以及FlagStr2串組成,嵌入的順序也依此“0~15數字庫”的組成次序,如圖12。這樣不僅使本發明方法支持盲提取,也保證了嵌入信息的數據完整性,可有效驗證經提取方法提取的嵌入信息的正確性,從而提高了本發明方法的實用性。信息嵌入的順序為嵌入信息經SHA及MOD(16)運算生成的20個“0~15數字”串;讀取嵌入信息,每4Bit轉化成一個“0~15數字”串;隱寫密鑰經SHA及MOD(16)運算生成的20個“0~15數字”串。5.隱寫容量估計設cm表示PDF文本的字符總數;假設文本中包含sk%的放寬和緊縮字符對(如AV,wa等);設在TJ操作對象中有se%的整數的絕對值在大于等于1且小于等于16.另外,我們設冗余度參數為pr%.那么,我們有如下隱寫容量估計式Capacity=((cm-cm×sk%)×se%)×(1-pr%),設ed表示嵌入數據的字節數,當Capacity>(ed×84+40)]]>時,則嵌入數據可隱寫到PDF文本中。這里,cm,sk%和se%對不同的PDF文本具有不同的值,而pr%是由我們依具體情況而定。大量的實驗和分析表明當冗余度參數為10%時,可隱寫率(隱寫信息字節數/PDF文檔文本字符數)約為20%。另外,本發明對不同排版格式(如單列,雙列等)的PDF掩體以及對含有各類文本(數學公式等),圖形,圖像等頁面元素的PDF掩體都是完全適用的。本發明方法的安全性遵守Kerckhoffs原理;隱寫容量是可估計的;具備對嵌入信息數據完整性的保證機制以及支持盲提取等特點,這些特點提高了本發明方法的實用性。本方案可用于構建網絡環境下的信息隱藏技術應用。下面結合附圖對本發明作進一步說明。圖1為選取PDF參考手冊的的內容生成的PDF掩體文件圖。圖2為4668字節的嵌入信息(Lena圖片)圖。圖3為經過本發明方法處理的隱寫了圖2的隱寫文件PDFStegoFile.pdf圖。圖4是以PDF文檔為掩體的隱寫方法的嵌入過程;圖5是隱寫方法的提取過程。圖6對嵌入過程的具體實現的流程圖。圖7對提取過程的具體實現的流程圖。圖8顯示操作符TJ的應用實例圖。圖9為從一個兩端對齊的英文WORD文檔轉化生成的文本圖。圖10為嵌入信息后隱寫文件中對應CoverTJObj的TJ操作對象圖。圖11TJ操作對象中的″數字″圖。圖12嵌入的順序也依此“0~15數字庫”的組成次序圖。具體實施例方式圖4中的掩體文件為從兩端對齊的英文WORD文檔轉化生成的PDF文檔(正文文本中不采用參數Tc和Tw,僅在TJ顯示操作符中用字符間的數字來精確定位每一個字符的坐標);另外,本發明方法為對稱隱寫方法,故隱寫密鑰和提取密鑰需經過另外的安全信道傳遞;圖5是隱寫方法的提取過程。具體過程在圖7中詳述。下面結合圖6對嵌入過程的具體實現步驟作詳細說明。S6-1.生成包括如下內容的“0~15數字庫”;A.嵌入信息經SHA及MOD(16)運算生成的20個“0~15數字”,設為標識串FlagStr1;B.讀取嵌入信息,每4Bit轉化成一個“0~15數字”;C.隱寫密鑰經SHA及MOD(16)運算生成的20個“0~15數字”,設為標識串FlagStr2;S6-2.在標識串FlagStr2前加“0.”,生成(01)間的實數作為下述混沌序列密碼生成器的迭代初值ChaoKey;S6-3.構造兩個Logistic混沌序列密碼生成器Chao1和Chao2,均以ChaoKey為迭代初值,設迭代值分別為Chao1Num,Chao2Num;S6-4.遍歷掩體文件所有TJ操作對象中的數字,若遇到的數字的絕對值在1到16之間,而且如果Chao2Num大于“冗余度參數”(如10%),則順序取Step1生成的“0~15數字庫”中的一個數字,加“1”得到1~16數字,替換此TJ操作對象中的1~16數字;否則,如果Chao2Num小于等于“冗余度參數”(如10%),則把由Chao1Num轉化成的0~15數字加“1”得到1~16數字替換此TJ操作對象中的數字;若掩體文件TJ操作對象中遇到的數字的絕對值大于16,則保持此數字不變;S6-5.由Chao1和Chao2迭代生成Chao1Num,Chao2Num,若“0~15數字庫”已取完,則由Chao1Num轉化成的0~15數字各自加“1”得到1~16數字替換TJ操作對象中遇到的絕對值在1到16之間的數字;否則,若“0~15數字庫”未取完,則轉Step4;S6-6.最終把已完全嵌入信息的掩體文件轉成隱寫文件。下面結合圖7對提取過程的具體實現步驟作詳細說明。S7-1.把提取密鑰經過SHA及MOD運算生成20個“0~15數字”,各自再加“1”得到20個1~16數字,設為標識串FlagStr;S7-2.在標識串FlagStr前加“0.”,生成(01)間的實數作為下述混沌序列密碼生成器的迭代初值ChaoKey;S7-3.構造Logistic混沌序列密碼生成器Chao2,以ChaoKey為迭代初值,設迭代值為Chao2Num;S7-4.遍歷隱寫文件所有TJ操作對象中的數字,若Chao2Num大于“冗余度參數”(如10%),則順序取出PDF隱寫文件TJ操作對象中遇到的絕對值在1到16之間的數字;S7-5.若已完全取得標識串FlagStr,則對已取得的“1~16數字”長串,執行Step5.1-Step5.2;否則,若已遍歷隱寫文件的TJ操作對象中的所有數字,則報錯可能是提取密碼不正確等,否則,轉Step4.S7-5.1把開頭的20個“1~16數字”作為數據完整性驗證碼,設為CheckStr;S7-5.2把第21個“1~16數字”至倒數第21個“1~16數字”,還原成欲提取的嵌入信息,并寫成文件,設為EmbeddedFile;S7-6.對文件EmbeddedFile經SHA及MOD運算生成20個“1~16數字”,若與CheckStr完全相同,則嵌入信息已成功提取;否則,報錯可能是隱藏文件已遭惡意修改等原因,使提取的嵌入信息不可用。權利要求1.一種以一類PDF文檔的正文文本作為掩體的信息隱寫方法,主要針對網絡環境下的信息隱藏技術應用,其特征是以兩端對齊的英文WORD文檔轉化生成的PDF文檔的正文文本,文本中的每一個字符各自精確定位作為掩體,利用該類掩體TJ操作符中的“數字”具有的不確定性提供的隱密信道來隱寫信息,隱寫方法的嵌入過程和提取過程按如下方案設計“數字”的選取采用以一定的冗余換取安全性的策略,只選取部分,冗余度參數可調“數字”來隱寫信息,選取算法的安全性依賴于偽隨機數發生器的迭代初值,由隱寫密鑰生成,另外,還利用了單向散列函數SHA算法來保證嵌入信息的數據完整性。2.根據權利要求1所述的方案,其特征是選取TJ操作符中的“數字”n(1≤n≤16)來隱寫信息,整數“數字”n的選取范圍可以是其它。3.根據權利要求1所述的方案,其特征是采用以一定的冗余換取安全性的策略選取部分“數字”來隱寫信息,冗余度參數可調。4.根據權利要求1所述的方案,其特征是利用單向散列函數SHA方法及MOD運算來保證嵌入信息的數據完整性。5.根據權利要求1所述的方案,其特征是信息嵌入的順序為嵌入信息經SHA及MOD(16)運算生成的20個“0~15數字”串;讀取嵌入信息,每4Bit轉化成一個“0~15數字”串;隱寫密鑰經SHA及MOD(16)運算生成的20個“0~15數字”串。6.根據權利要求1的以一類PDF文檔的正文文本作為掩體的信息隱寫方法,其特征在于,嵌入過程的具體步驟如下S6-1.生成包括如下內容的“0~15數字庫”A.嵌入信息經SHA及MOD(16)運算生成的20個“0~15數字”,設為標識串FlagStr1;B.讀取嵌入信息,每4Bit轉化成一個“0~15數字”;C.隱寫密鑰經SHA及MOD(16)運算生成的20個“0~15數字”,設為標識串FlagStr2;S6-2.在標識串FlagStr2前加“0.”,生成(01)間的實數作為下述混沌序列密碼生成器的迭代初值ChaoKey;S6-3.構造兩個Logistic混沌序列密碼生成器Chao1和Chao2,均以ChaoKey為迭代初值,設迭代值分別為Chao1Num,Chao2Num;S6-4.遍歷掩體文件所有TJ操作對象中的數字,若遇到的數字的絕對值在1到16之間,而且如果Chao2Num大于“冗余度參數”,則順序取Step1生成的“0~15數字庫”中的一個數字,加“1”得到1~16數字,替換此TJ操作對象中的1~16數字;否則,如果Chao2Num小于等于“冗余度參數”,則把由Chao1Num轉化成的0~15數字加“1”得到1~16數字替換此TJ操作對象中的數字;若掩體文件TJ操作對象中遇到的數字的絕對值大于16,則保持此數字不變;S6-5.由Chao1和Chao2迭代生成Chao1Num,Chao2Num,若“0~15數字庫”已取完,則由Chao1Num轉化成的0~15數字各自加“1”得到1~16數字替換TJ操作對象中遇到的絕對值在1到16之間的數字;否則,若“0~15數字庫”未取完,則轉Step4;S6-6.最終把已完全嵌入信息的掩體文件轉成隱寫文件。7.根據權利要求1的以一類PDF文檔的正文文本作為掩體的信息隱寫方法,其特征在于,提取過程的具體步驟如下S7-1.把提取密鑰經過SHA及MOD運算生成20個“0~15數字”,各自再加“1”得到20個1~16數字,設為標識串FlagStr;S7-2.在標識串FlagStr前加“0.”,生成(01)間的實數作為下述混沌序列密碼生成器的迭代初值ChaoKey;S7-3.構造Logistic混沌序列密碼生成器Chao2,以ChaoKey為迭代初值,設迭代值為Chao2Num;S7-4.遍歷隱寫文件所有TJ操作對象中的數字,若Chao2Num大于“冗余度參數”,則順序取出PDF隱寫文件TJ操作對象中遇到的絕對值在1到16之間的數字;S7-5.若已完全取得標識串F1agStr,則對已取得的“1~16數字”長串,執行Step5.1-Step5.2;否則,若已遍歷隱寫文件的TJ操作對象中的所有數字,則報錯可能是提取密碼不正確等,否則,轉Step4.S7-5.1把開頭的20個“1~16數字”作為數據完整性驗證碼,設為CheckStr;S7-5.2把第21個“1~16數字”至倒數第21個“1~16數字”,還原成欲提取的嵌入信息,并寫成文件,設為EmbeddedFile;S7-6.對文件EmbeddedFile經SHA及MOD運算生成20個“1~16數字”,若與CheckStr完全相同,則嵌入信息已成功提取;否則,報錯可能是隱藏文件已遭惡意修改原因,使提取的嵌入信息不可用。全文摘要一個以一類PDF文檔的正文文本作為掩體的信息隱寫方法。方法以兩端對齊的英文WORD文檔轉化生成的PDF文檔,文本中的每一個字符各自精確定位的正文文本作為掩體。利用該類PDF文檔正文文本中存在的隱密信道,在保證透明性的基礎上,采用以一定的冗余換取安全性的策略選取部分“數字”n(1≤n≤16)來隱寫可盲提取的信息。實驗和分析表明當冗余度參數為10%時,可隱寫率約為20%。另外,本發明方法的安全性遵守Kerckhoffs原理;隱寫容量是可估計的;具備對嵌入信息數據完整性的保證機制以及支持盲提取等特點,這些特點提高了本發明方法的實用性。本方案可用于構建網絡環境下的信息隱藏技術應用。文檔編號H04L9/00GK1625096SQ20041000998公開日2005年6月8日申請日期2004年12月9日優先權日2004年12月9日發明者鐘尚平,程學旗,余智華,郭莉申請人:中國科學院計算技術研究所