專利名稱:可控密鑰序列的具有誤導功能的隱寫方法
技術領域:
本發明屬信息安全領域,涉及一種文本隱寫方法,特別是一種具有誤導功能,可以隨意誤導的文本隱寫(密寫)方法。
背景技術:
Steganography (隱寫術、密寫術)是將秘密消息嵌入表面上正常的數字載體中, 以不被他人察覺的方式通過公開渠道如互聯網進行傳輸,接收者使用專門的工具和密鑰從含密載體中提取消息,實現隱蔽通信。用于隱寫的載體以數字圖像最為普遍,其次是數字音頻,數字視頻也可用于隱寫,但由于視頻文件尺寸過大,在網絡上傳輸遠不如圖像和音頻廣泛,所以一般說來不是隱蔽通信的優選載體。還有一種特殊的信息隱藏技術,是1983年 Simmons提出的閾下信道(subliminal channel),狹義的閾下信道主要采用數字簽名等來實現消息隱匿,但是閾下信道可以被封閉,并且利用數字簽名傳輸的閾下消息往往很短。可見,目前的信息隱藏技術要么需要依靠大文件作為載體,要么只能傳輸很短消息,偽裝文本 (載體,covertext)和隱秘文本(stegotext,這里稱為原文)相比較大很多,信道利用率不高。一旦被禁止發送圖片音頻、視頻等大容量的文件,不允許進行數字簽名的情況下,秘密消息的隱匿就無法實現,而信息隱藏和閾下信道問題往往是針對被監視的囚犯之類的背景的,監管人完全可以禁止任何可能隱匿消息的行為。目前也出現了一些文本隱寫方法,基本上也是利用某些文件格式中的冗余信息位來隱藏信息。文本是網上傳輸數量最多的信息載體,其形式多樣,如網頁、電子郵件、包括 pdf,d0c,ps在內各種格式的文本文件等,用作隱寫載體具有廣闊的應用前景。但與圖像、音頻等多媒體信號相比,在文本中嵌入額外信息而又不引起可察覺的變化相當困難,這是因為文本中可用于插入額外數據的冗余空間很小,因此利用文本作為隱寫載體的技術發展大大滯后。Bender等人4將文本中嵌入信息的方法歸納為三類1)利用空格,例如單詞之間空 1格代表0,空2格表示1 ;2)基于句法,包括句型和標點符號,例如句型a,b,andc表示0, a,b and c表示1; 利用語義,定義一個同義詞表,例如big表示0,large表示1。其中第一類是基于文本格式的,后兩類則是基于文字內容的。在基于文字內容的嵌入技術中,利用句法的方法一般嵌入量很小,因為特定句型在文章中出現的次數有限。語義編碼的問題在于會產生文本內容的改變,或者使語言變得不自然。例如,盡管pacific與peaceful同義, 將I^cific Ocean變成Peaceful Sea卻很容易引起警覺。在基于格式的信息隱藏方面,某些利用增減空格的簡單方法過于明顯,或者難以抵抗文本編輯的攻擊。例如在每一行末尾插入的一個或兩個不可見空格,只要改變頁面的設置就會被完全破壞。Brassil等人提出了移詞編碼、移行編碼、特征編碼三種方法。由于單詞間距并不固定,移詞編碼通常需要通過與原始文本的比較才能提取出嵌入的信息,用作水印尚可,用于隱寫則不可行。特征編碼的一個例子是用字母b、d和h頂部的短橫線長度來表示嵌入信息。雖然這些方法都會使原始文本發生輕微變化,只要采取適當的措施仍能達到外人很難辨認的程度。若正常文本的行距是均勻的,則移行編碼嵌入數據的提取不依賴原始文本,因此既可用于保護版權,亦可成為一種隱蔽通信手段。此外移行編碼通常比移詞編碼更為穩健,故一直受到研究者的關注。 Villan等人最近構建了一個新的理論框架,將文本中的信息隱藏看成Gel’ fand-Pinsker 問題的特例。他們在這一框架下提出兩種視覺隱蔽性優良且嵌入量大的基于特征文本信息隱藏方法半色調量化和顏色量化,該方法從電子版本和打印硬拷貝中均能自動提取隱蔽信息。在某些特定格式的文本文件例如XML和排版工具TeX的源文件中也能嵌入額外信息。 Word文檔也可以作為文本隱寫的載體。這些隱寫方法都是利用了文件或者文本的冗余。我們也曾經設計了一種采用文本隱寫方法,其方法有別于以上隱寫方法,但是,這種方法得到的偽裝文本雖然具有很好的誤導性,但是密鑰長度會很長,當文本很長的時候, 密鑰長度是不能接受的。如果采用流密碼等方法產生密鑰流作為子密鑰來控制誤導的關鍵詞,雖然密鑰很短,但是,由于是流密碼產生的子密鑰序列,偽裝文本是根據密鑰序列產生的,不能隨意去設置偽裝文本,考慮其現實中使用會存在不能根據發送人的意愿有效誤導監聽者的問題,本發明設計了一種可以進行修正以有效誤導對方的隱寫方法。
發明內容
本發明旨在克服現有隱寫方法冗余量大,依賴于圖像、語音數據的缺點,以及不具有主動誤導的缺陷,提供一種對文本進行隱寫的方法,可以具有誤導的功能,并且對不可控的密鑰序列可以進行修改。與傳統的隱寫方法不一樣,傳統的隱寫的載體一般與需要傳遞的信息沒有多大關系,傳統隱寫方法是將原文嵌入到載體的某些冗余位置,而本隱寫方法的隱寫載體文本會直接地誤導對方;與加密不一樣,隱寫的偽裝文本直接進行傳遞,對方會以為是明文,所以可以直接去誤導對方。為具備誤導功能,在本發明中,設計了采用將重要的關鍵詞替換為相似、相近、相反或者可以替代的關鍵詞的替換隱寫的方式,它需要有一個關鍵詞數據庫,在數據庫中,把相似、相近、相反或者可以替代的關鍵詞放在一個相同的組中。隱寫的時候,打開文件,讀取文本的內容,隱寫時候把關鍵詞替換成為具有相同性質的關鍵詞,這一個關鍵詞與原關鍵詞意義相近、相反或者具有替代性。替換分為固定的替換和不固定的替換,如附圖1所示。 由于文本中的關鍵詞都是被用相似、相近和相反的關鍵詞代替的,因而偽裝文本具有誤導作用。關鍵詞數據庫是一個基礎性的數據庫,一般而言隱寫的目的是隱藏信息,監聽人是不知道文本是經過隱寫處理的。因此對于文本隱寫,此數據庫是需要保密的,并且收發雙方都需要保密。在設計的時候,為了保證隱寫和提取的唯一可逆性必須禁止一個關鍵詞出現在兩組關鍵詞中,并且關鍵詞不能存在包含關系。因為如果關鍵詞有包含關系,比如關鍵詞數據庫中有中華,也有中華人民共和國,就會帶來歧義,給隱寫帶來一定的困難。此外,如果一個關鍵詞出現在數據庫的兩組關鍵詞中,則隱寫和提取過程中也會遇到歧義而無法得到確定的結果的問題。此外為了避免歧義,關鍵詞之間除了應該互相不存在包含關系,也不能有重合交叉的部分。在進行替換的時候,有些關鍵詞的替換是固定的、自動進行的,而有些關鍵詞則是根據預先共享的流密碼序列的產生密鑰以及修正數據來確定的,后者可以保證需要修正的時候進行必要的修正,誤導效果更好。在每一組關鍵詞中,有一個屬性代表是否是固定的替換1)如果是固定的替換,這樣的固定替換的組中只有兩個詞,當然一般這樣的替換是一對反義詞。2)如果是非固定的替換,在數據庫中,每一個關鍵詞在這一組中都有一個編號,從0,1,一直到n-1,其中η為這一組中的關鍵詞數目。隱寫的時候,第s個非固定替換關鍵詞的替換是根據對應位置的子密鑰來確定哪個關鍵詞被替換,這個子密鑰是根據流密碼算法計算的密鑰流,進行分段截取,分配給相應序列位置的關鍵詞,但是,如果是需要修正的,則修正為最合適的關鍵詞, 并且在密鑰后面增加相應的密鑰修正信息。這樣,最終密鑰的結構如圖3所示。前面為流密碼算法的密鑰,用于產生密鑰流。后面為修正信息,這部分信息的長度是不固定的,與需要修正的關鍵詞數目成正比,我們將針對每一個需要修正的關鍵詞的修正信息稱為一個修正塊,而每一個修正塊包括修正關鍵詞所在的位置信息和修正值的信息。修正塊的兩部分的長度是固定的。這個整體的密鑰在隱寫后發給接受方,用于提取隱秘的原文。接收方需要有同步的數據庫,并且擁有密鑰才能利用載體提取隱秘文本。提取隱秘原文的過程如下,先打開文檔,讀取文本,掃描并且依據隱寫的方法進行相反的替換。對于固定替換的關鍵詞,直接用固定關鍵詞替換,如果是非固定的關鍵詞,這需要根據相反的方法計算,得出需要還原的關鍵詞,進行還原。由于該隱寫方法只是對文本內容進行替換,因此,對于文檔的隱寫需要先打開文檔,比如先打開word或者txt文檔,讀取里面的文本內容,再對文本內容進行偽裝替換,最后將替換后的文本進行保存,而提取隱秘信息的過程則是一個相反的過程。整個隱寫和提取的過程如圖2所示。如果發送的內容不是文件形式,這無需打開文件和保存這些步驟。本發明所采用的這種對密鑰序列的修正方法,可以適用于其他的類似的需要有少量修改偽隨機序列的場合。
圖1是本發明的隱寫處理流程圖。圖2是本發明的隱寫和提取的全過程圖。圖3是本發明的密鑰的結構圖。
具體實施例方式下面是本發明的實施例,但是,本發明并不限于實施例。在具體實現的時候,需要考慮文件的格式來進行隱寫。以txt文本文件的格式為例,首先將隱秘文本用記事本打開,讀取其文本的內容“她是一位聰明的教師,老家在新疆”。在數據庫中,聰明屬于被固定替換的關鍵詞,被愚蠢代替。教師、醫生、工人、農民和學生是一組非固定替換的關鍵詞組,它們依次被編號為0-4。23個省和4個直轄市屬于非固定替換的關鍵詞組,新疆在其中,并且它們被分別用016進行編號,假設新疆為8。選擇產生密鑰流的算法為一種256bit的流密碼算法,隨機產生256bit為流密碼算法的密鑰KM,對應于附圖3中的流密碼密鑰。修正塊的結構為前面的部分為關鍵詞的位置信息,其二進制的長度是固定的,根據文件中最多的非固定替換的關鍵詞數M來確定, 取值應該大于Iog2M,為了方便舉例,我們這里取8bit,后面的部分為修正值的信息,其二進制長度也是固定的,根據關鍵詞數據庫中同一組關鍵詞的最大數目N來定,取值應該大于Iog2N,為了方便,假設N小于64,所以修正值部分長度取8bit。隱寫的時候,聰明顯然被愚蠢替換,另外有兩個非固定替換的關鍵詞,需要根據密鑰來計算,計算得到一個無限的密鑰流,這一密鑰流分段進行截取,由于N小于64,所以,可以將這一密鑰流按照8bit為一個分組截取下來,分別按照次序分配給第一,第二,直至最后一個非固定替換的關鍵詞,假設其最前面的部分為0000110000001011,本文只有2個非固定替換的關鍵詞,所以將00001100(十進制值為1 分配給第一個非固定替換的關鍵詞教師,00001011(十進制值為11)分配給第二個非固定替換的關鍵詞新疆。在被修正前,替換后的關鍵詞的編號的計算方法是T = ks+amod (η)其中a為隱秘文本中關鍵詞在這一組關鍵詞中的代號,比如教師為0,新疆為8,ks 為第S個關鍵詞分配的那Sbit對應的密鑰流的值,比如教師對應的是00001100(十進制值為12),新疆對應的是00001011(十進制值為11)。數η為這一組中關鍵詞的數目,比如教師一組有5個,新疆一組有27個。所以可以計算出教師對應的T為2,新疆對應的T為19。依次查找教師一組編號 2對應的關鍵詞為“工人”,假設新疆一組編號19對應的是安徽,云南的編號為21。則隱寫后的過渡文本內容為“她是一位愚蠢的工人,老家在安徽”,將這一內容寫入txt文件,得到的文件即為過渡隱寫文本。但是,這一文本在發送者看來,并不能夠很好誤導那些監聽的對手,某些地方他希望加以修正,比如他希望文本是“她是一位愚蠢的工人,老家在云南”,則將此文本作為最終的隱寫文本。但是,需要將修正的信息傳遞給對方,所以,需要附加修正信息,因為是第二個非固定替換關鍵詞,所以這一個修正塊前面8比特為00000010,云南的編號為21,如果是要替換為云南,編號值需要增加2,所以修正的值為2,用二進制為00000010,所以最終的密鑰
為 KmI 0000001000000010ο修正后的編號計算方法可以認為是T = ks+a+m mod (η)其中m表示修正的值,如果是不用修正,則其值為0.原文提取為一個相反的過程,流程如下打開隱寫文本,固定替換的關鍵詞采用相反的方法還原,非固定替換的關鍵詞,從數據庫得到η值,根據密鑰的不同部分可以分別得到m和ks的值,T則是根據隱寫文本中關鍵詞的編號確定,這樣可以計算出a = (T-m-ks)mod(n)將編號為T的關鍵詞替換為同一組關鍵詞中編號為a的關鍵詞,即得到原來的關鍵詞。將得到的文本寫入記事本保存即可。
權利要求
1.一種可控密鑰序列的隱寫(密寫)方法,與現有的隱寫(包括文本隱寫)方法不一樣(它們是將隱寫信息嵌入文件的冗余信息中),其特征在于是針對文本的隱寫,將文件打開,讀取文本,進行一定的關鍵詞替換,這一替換是根據關鍵詞數據庫來進行的。由于替換的詞可能和原來的詞意義相近、相反和類似,替換后的文本依然具有意義,并且可能與原來的意義相近、相反,使之具有隨意誤導的功能。替換包括固定替換和非固定的替換。
2.如權利要求1所述的具有誤導功能的文本隱寫方法,其特征在于在進行非固定替換的時候,用流密碼算法、分組密碼的某些加密模式等產生的安全子密鑰序列來控制文本中的非固定替換的關鍵詞到底用同一組關鍵詞中的哪個關鍵詞進行替換,得到隱寫文本,防止潛在的攻擊。
3.如權利要求2所述的具有誤導功能的文本隱寫方法,其特征在于在進行非固定替換的時候,利用流密碼等算法產生序列,然后附加一定的修正信息,作為隱寫的子密鑰來控制關鍵詞的替換,產生這一序列的數據結構為固定長度的序列生成密鑰K部分和非固定長度的若干個修正塊,每一個修正塊的長度是固定的,每一個修正塊包含兩個固定長度的信息,分別是修正的相對位置的信息和修正值的信息,這樣的序列可以避免偽隨機序列的不可控性,而根據情況對序列中的某些位置做必要的修正,在具體實現的時候,發送者可以根據安全的密碼算法產生安全的偽隨機序列,計算得到子密鑰序列,將這些子密鑰依次分配給文本中的非固定替換的關鍵詞,通過子密鑰來確定對應位置的關鍵詞到底用在數據庫同一組中的哪個關鍵詞來替換,當替換不能讓發送者滿意的時候,做一定的修正,使替換可以得到如意的結果,并且將修正信息記入密鑰中。提取時采用相反的方法即可還原隱秘的原文。
4.如權利要求1所述的具有誤導功能的文本隱寫方法,其特征在于在進行固定替換的時候,直接將一個關鍵詞替換為數據庫中規定的關鍵詞,無需生成密鑰,提取原文無需利用密鑰,直接用對應的關鍵詞還原。
5.如權利要求1所述的文本隱寫方法,其特征在于有一個數據庫,將相近、相反以及同類的一些關鍵詞放在一組中,每一組都有一個替換的屬性,包括固定替換和非固定替換型, 固定替換型的那些組在隱寫的時候將數據替換為同一組對應的關鍵詞,非固定替換的時候,需要根據計算確定由哪個關鍵詞替換,在數據庫中,每一組非固定替換的關鍵詞中的每個關鍵詞都有一個在本組中的編號,依次從0到n-1。在設計的時候,為了保證隱寫和提取的唯一可逆性必須禁止一個關鍵詞出現在兩組關鍵詞中,并且關鍵詞之間不能存在包含關系,也不能有重合交叉的部分。
全文摘要
本發明涉及一種具有誤導功能的文本隱寫(密寫)方法,需要打開文件,讀取文本內容,然后通過將文本中的關鍵詞替換為具有相近、相反或同類的關鍵詞,最終保存文本,使之具有誤導功能。關鍵詞的替換采用非固定替換結合固定替換。非固定替換是由密鑰來控制的,先用一個密鑰生成安全的序列進行嘗試性的替換,如果替換不如意,可以在這一密鑰后附加修正信息。隱寫后的文本內容和隱秘文本的內容可能是相似、相反或者同類的,這樣就可以起到誤導的效果。這樣的隱寫方法擺脫了傳統隱寫方法需要圖像、視頻和音頻等大文件的缺點,并且可以直接誤導對方。
文檔編號G06F21/24GK102360413SQ201110301759
公開日2012年2月22日 申請日期2011年9月27日 優先權日2011年4月11日
發明者王勇 申請人:桂林電子科技大學