專利名稱:一類規(guī)范化文檔的加密方法
技術(shù)領(lǐng)域:
本發(fā)明屬信息安全領(lǐng)域,涉及一類規(guī)范化文檔的加密方法,特別是針對(duì)這類規(guī)范化文檔的容易尋找偽密鑰,具有誤導(dǎo)功能的加密方法。
背景技術(shù):
現(xiàn)實(shí)中存在的大量的文檔都是基于各種語言,存在許多的缺陷,比如對(duì)自然語言理解和處理比較困難,很難被計(jì)算機(jī)識(shí)別、統(tǒng)計(jì)和匯總,同時(shí)也極不規(guī)則,并且存在大量的冗余。由于語言不規(guī)則,存在冗余,所以采用傳統(tǒng)的方法加密后得到的密文,很難找到偽密鑰,惟一解距離很短。這樣,遭遇軟磨硬泡攻擊的時(shí)候,密鑰持有人往往不得不交出真正的密鑰來。同時(shí),對(duì)于無限計(jì)算能力下的惟密文分析也很脆弱。發(fā)明人設(shè)計(jì)了一些具有誤導(dǎo)功能的加密方法,但是,也有它們自己的局限性,由于語言的不規(guī)則和規(guī)范,使得加密的運(yùn)算量大,而且,有時(shí)候也會(huì)出現(xiàn)對(duì)關(guān)鍵詞的誤判,導(dǎo)致一些偽密鑰失效。因此,面對(duì)計(jì)算機(jī)處理和誤導(dǎo)加密的雙重需求,提出一種規(guī)范化的文檔。規(guī)范化的文檔是完全由標(biāo)簽及其元素組成的,對(duì)于所有的標(biāo)簽,都有固定的元素,假定元素的數(shù)量是有限的,這種文檔在許多情況下,可以完全取代一般的文本內(nèi)容的文檔,在某些情況下,則可以與其他的文檔相結(jié)合來有效表達(dá)信息。舉一個(gè)簡(jiǎn)單的例子,時(shí)間、地點(diǎn)、天氣、人物、活動(dòng),都可以作為一個(gè)標(biāo)簽,將所有可能的時(shí)間集中起來,就是時(shí)間標(biāo)簽的元素,其他的標(biāo)簽也是如此?,F(xiàn)實(shí)中的一些ml、 表、excel文檔加以約束后,可以變成這類的規(guī)范化文檔。這樣的文檔更容易壓縮,冗余可以很好地消除,采用特別的加密可以增加偽密鑰的數(shù)量,這種規(guī)范化也更適用于計(jì)算機(jī)處理信息。為了表達(dá)復(fù)雜的語義,還可以對(duì)標(biāo)簽之間的內(nèi)容做更多規(guī)范。
發(fā)明內(nèi)容
本發(fā)明旨在克服現(xiàn)有加密方法無法誤導(dǎo)的局限性,已經(jīng)現(xiàn)有的具有誤導(dǎo)功能加密方法的復(fù)雜等缺陷,而在對(duì)文檔進(jìn)行規(guī)范化后,提供一種簡(jiǎn)單、實(shí)用的具有誤導(dǎo)功能的規(guī)范化文檔的加密算法。為了各種安全性的考慮,本發(fā)明包含了外層和內(nèi)層兩層加密,內(nèi)層加密使得可以具有誤導(dǎo)功能,而外層的加密則講一些可能需要保密的標(biāo)簽等信息也進(jìn)一步加密,外層加密是可選的?;谖覀儗?duì)這類規(guī)范化文檔的定義,每一個(gè)標(biāo)簽都有有限的固定元素,可以建立一個(gè)標(biāo)簽元素的數(shù)據(jù)庫,這個(gè)數(shù)據(jù)庫存放著每一個(gè)標(biāo)簽中的所有元素,以及這些元素是什么編碼,在數(shù)據(jù)庫中將所有的元素進(jìn)行編號(hào),在最為關(guān)鍵的內(nèi)層加密中,將待加密的明文中每一個(gè)標(biāo)簽中的元素都映射為數(shù)據(jù)庫中對(duì)應(yīng)的編號(hào),對(duì)編號(hào)進(jìn)行加密得到密文C,加解密所采用的運(yùn)算是封閉的,也就是說,針對(duì)于每一個(gè)標(biāo)簽的編號(hào)的加密密文c,再用不同密鑰解密C可以遍歷所有的編號(hào),然后將密文編號(hào)C寫入標(biāo)簽對(duì)應(yīng)的元素位置。完整加密流程如下
(一)逐一地讀取文檔中各個(gè)標(biāo)簽的內(nèi)容,即標(biāo)簽中的元素,查詢數(shù)據(jù)庫,得出對(duì)應(yīng)的標(biāo)簽中這一元素對(duì)應(yīng)的編號(hào),然后逐一地從內(nèi)層密鑰中截取對(duì)應(yīng)位置的密鑰用于這一個(gè)標(biāo)簽內(nèi)容的加密,得到元素的密文c,加密解密算法保證封閉性。逐一將標(biāo)簽中元素的密文寫入文檔中相應(yīng)標(biāo)簽對(duì)應(yīng)的內(nèi)容。(二)保存內(nèi)層加密后的文檔,得到過渡密文。(三)可選地,對(duì)這一文檔進(jìn)行一個(gè)外層的加密,得到最終密文。這個(gè)加密采用傳統(tǒng)的加密方法進(jìn)行,選擇一種對(duì)稱加密方法即可。解密過程中,首先將最終的密文用傳統(tǒng)的對(duì)稱密碼算法進(jìn)行相應(yīng)的解密,得到過渡的密文文件,其次要將得到的過渡文件進(jìn)行內(nèi)層的解密。當(dāng)進(jìn)行這層解密的時(shí)候,對(duì)每一個(gè)標(biāo)簽中的密文進(jìn)行讀取,然后,獲得這一個(gè)標(biāo)簽對(duì)應(yīng)的密鑰,經(jīng)過解密,得到標(biāo)簽內(nèi)容的明文所對(duì)應(yīng)的編號(hào),然后根據(jù)數(shù)據(jù)庫,可以查得對(duì)應(yīng)的內(nèi)容。本加密方法可以很容易找到偽密鑰,即錯(cuò)誤的密鑰可以解密出有意義的明文可以偽密鑰的獲取方法A)加密解密中有兩個(gè)密鑰,要獲取偽密鑰,可以將外層對(duì)稱密碼的密鑰不變,然后任意選取一個(gè)內(nèi)層密鑰序列進(jìn)行截取,依次分配給相應(yīng)的標(biāo)簽,進(jìn)行解密,這時(shí)閱讀文本,是否有不如意(比如不合理、暴露破綻、認(rèn)為誤導(dǎo)效果不好)的關(guān)鍵詞,如果不滿意,可以用同樣方法嘗試其他的密鑰,并且可以根據(jù)關(guān)鍵詞所在的位置根據(jù)自己的需要進(jìn)行修改,這樣形成了最終的內(nèi)層密鑰的有效部分,用這個(gè)密鑰配合正確的外層對(duì)稱密碼密鑰就是一個(gè)偽密鑰;B)還有一種更加自由的選擇偽密鑰的方式,可以根據(jù)自己所希望的誤導(dǎo)的標(biāo)簽內(nèi)容確定下來,以此確定內(nèi)層加密的偽密鑰序列,方法為外層密鑰不變,根據(jù)文本的關(guān)鍵詞,以數(shù)據(jù)庫為依據(jù),選擇想要替換的誤導(dǎo)元素,即可確定這一個(gè)元素的對(duì)應(yīng)的偽子密鑰,將每一個(gè)標(biāo)簽對(duì)應(yīng)的偽子密鑰依次連接起來,即為內(nèi)層的偽密鑰,采用不變的外層密鑰,即可得總的偽密鑰。在受到密碼分析者的密碼分析的時(shí)候,密碼分析者根據(jù)不同的內(nèi)層密鑰是可以得到不同的有意義明文的,加上這些不同密鑰得到的明文的一樣也可能與原來明文相近、相反的意義,所以很吻合通信背景,密碼分析者也無法確定真正密鑰。
具體實(shí)施例方式下面是本發(fā)明的實(shí)施例,但是,本發(fā)明并不限于實(shí)施例。在具體實(shí)現(xiàn)的時(shí)候,雙方約定總密鑰的不同部分分別用于內(nèi)層和外層加密,外層密鑰為固定長(zhǎng)度,根據(jù)外層加密采用的算法來決定,比如外層加密算法采用256位的AES加密。密鑰的最前面256bit為外層密鑰,其余為內(nèi)層密鑰。內(nèi)層密鑰進(jìn)行等長(zhǎng)度截取,截取長(zhǎng)度根據(jù)數(shù)據(jù)庫中所有標(biāo)簽中最大的可能元素的數(shù)目N來定,取值應(yīng)該大于等于log2N。將內(nèi)層密鑰截取后依次分配給各個(gè)標(biāo)簽,作為加密用的子密鑰。文件加密流程如下
1)通信雙方共享密鑰,密鑰比較長(zhǎng),可以采用量子密鑰分配來實(shí)現(xiàn)長(zhǎng)隨機(jī)密鑰的分配。 雙方規(guī)定采用相同的加密算法,并且共享相同的數(shù)據(jù)庫。2)加密過程中要根據(jù)文件的類型或者格式,用相應(yīng)的軟件打開文件讀取其內(nèi)容, 比如,xml或者excel文件的加密,就先用相應(yīng)的軟件打開文件,讀取各個(gè)標(biāo)簽中的內(nèi)容,準(zhǔn)備進(jìn)行內(nèi)層加密。3)內(nèi)層加密,我們這里選擇的編號(hào)為將所有元素從0到n-1,進(jìn)行編號(hào),η為這一個(gè)標(biāo)簽的所有元素的數(shù)目。加密算法為模加運(yùn)算,根據(jù)密鑰的固定結(jié)構(gòu),將子密鑰k從序列中截取出來,子密鑰的截取方法有A)采用截取等長(zhǎng)度子密鑰的方法從隨機(jī)序列中截取,截取的長(zhǎng)度為等于或者大于Iog2N的正整數(shù),當(dāng)10&N為正整數(shù)時(shí),截取長(zhǎng)度為Iog2N5Iog2N* 非整數(shù)的時(shí)候,截取Iog2N的整數(shù)部分加1,N為所有標(biāo)簽中元素個(gè)數(shù)的最大值,加密和解密時(shí)候均按照這樣的規(guī)則進(jìn)行截取,這樣能夠保證加解密截取的子密鑰同步,這種方法密鑰需求量大,但是運(yùn)算速度快;B)根據(jù)每一個(gè)標(biāo)簽遍歷所有元素所需要的最短長(zhǎng)度截取,截取的長(zhǎng)度為等于或者大于Iog2Ii的正整數(shù),當(dāng)為正整數(shù)時(shí),截取長(zhǎng)度為;log2n為非整數(shù)的時(shí)候,截取log2n的整數(shù)部分加l,n為這一個(gè)標(biāo)簽所有元素的個(gè)數(shù),加密和解密時(shí)候均按照這樣的規(guī)則進(jìn)行截取,這樣能夠保證加解密截取的子密鑰同步,這種方法運(yùn)算速度慢,但是可以最大限度節(jié)省密鑰需求量。計(jì)算密文編號(hào)的方法為c=m+k mod η,以下是一個(gè)非常簡(jiǎn)單的文本的相關(guān)信息
權(quán)利要求
1.一類規(guī)范化文檔的加密方法,其特征在于包括以下處理步驟A.打開文件,讀取各個(gè)標(biāo)簽內(nèi)容;B.對(duì)所有的標(biāo)簽的內(nèi)容依次用獨(dú)立的子密鑰進(jìn)行內(nèi)層加密,加密密鑰采用隨機(jī)序列來進(jìn)行,依次將內(nèi)層密鑰截取后分配給各個(gè)標(biāo)簽,內(nèi)層加密主要將標(biāo)簽內(nèi)容映射為編碼,然后將編碼進(jìn)行加密,加解密算法具有封閉性,用所有可能的子密鑰解密加密的內(nèi)容,最終可以遍歷同一標(biāo)簽包含的所有的元素,加密解密依賴于一個(gè)數(shù)據(jù)庫,每一個(gè)標(biāo)簽在數(shù)據(jù)庫中都有有限個(gè)元素,且對(duì)每一個(gè)標(biāo)簽的元素進(jìn)行編號(hào);C.保存文件,得到過渡密文文檔;D.對(duì)過渡文檔進(jìn)行傳統(tǒng)的對(duì)稱算法的外層加密,外層加密是可選的;E.計(jì)算偽密鑰如果有需要,可以計(jì)算偽密鑰,備用或者作為誘餌,在受到脅迫的時(shí)候可以交出偽密鑰,其中外層密鑰是不變的,內(nèi)層密鑰進(jìn)行改變,對(duì)方在做密碼分析的時(shí)候, 由于可以找到許多偽密鑰,所以無法判斷誰是正確密鑰。
2.如權(quán)利要求1所述的規(guī)范化文檔的加密方法,其特征在于在所述步驟B當(dāng)中的內(nèi)層密鑰中的子密鑰的劃分方法為,根據(jù)密鑰的固定結(jié)構(gòu),確定內(nèi)層密鑰,采用下面的截取等長(zhǎng)度子密鑰的方法將內(nèi)層加密的子密鑰k從內(nèi)層密鑰序列中截取出來,截取的長(zhǎng)度為等于或者大于的正整數(shù),當(dāng)Iog2N為正整數(shù)時(shí),截取長(zhǎng)度為10&N ;Iog2N為非整數(shù)的時(shí)候,截取Iog2N的整數(shù)部分加1,N為所有標(biāo)簽中元素個(gè)數(shù)的最大值。
3.如權(quán)利要求2所述的規(guī)范化文檔的加密方法,其特征在于在所述內(nèi)層加密中的內(nèi)層密鑰中的子密鑰的劃分方法為,根據(jù)密鑰的固定結(jié)構(gòu),確定內(nèi)層密鑰,采用根據(jù)每一個(gè)標(biāo)簽遍歷所有元素所需要的最短長(zhǎng)度截取當(dāng)前標(biāo)簽的子密鑰k,截取的長(zhǎng)度為等于或者大于 Iog2Ii的正整數(shù),當(dāng)Iog2Ii為正整數(shù)時(shí),截取長(zhǎng)度為Iog2Ii ;10&11為非整數(shù)的時(shí)候,截取的整數(shù)部分加1,η為這一個(gè)標(biāo)簽所有元素的個(gè)數(shù)。
4.如權(quán)利要求3所述的規(guī)范化文檔的加密方法,其特征在于在所述內(nèi)層加密當(dāng)中的內(nèi)層加密,將每個(gè)標(biāo)簽的所有元素從O到η-1,進(jìn)行編號(hào),η為這一個(gè)標(biāo)簽的所有元素的個(gè)數(shù), 將元素映射為其編號(hào),然后將這個(gè)編號(hào)進(jìn)行加密,加密算法為模加運(yùn)算,根據(jù)密鑰的固定結(jié)構(gòu),將子密鑰k從序列中截取出來,計(jì)算密文編號(hào)的方法為c=m+k mod η。
5.如權(quán)利要求4所述的規(guī)范化文檔的加密方法,其特征在于可以得出有意義明文的偽密鑰,產(chǎn)生偽密鑰的方法為Α)加密解密中有兩個(gè)密鑰,要獲取偽密鑰,可以將外層對(duì)稱密碼的密鑰不變,然后任意選取一個(gè)內(nèi)層密鑰序列進(jìn)行截取,依次分配給相應(yīng)的標(biāo)簽,進(jìn)行解密,這時(shí)閱讀文本,是否有不如意(比如不合理、暴露破綻、認(rèn)為誤導(dǎo)效果不好)的關(guān)鍵詞, 如果不滿意,可以用同樣方法嘗試其他的密鑰,并且可以根據(jù)關(guān)鍵詞所在的位置根據(jù)自己的需要進(jìn)行修改,這樣形成了最終的內(nèi)層密鑰的有效部分,用這個(gè)密鑰配合正確的外層對(duì)稱密碼密鑰就是一個(gè)偽密鑰;B)還有一種更加自由的選擇偽密鑰的方式,可以根據(jù)自己所希望的誤導(dǎo)的標(biāo)簽內(nèi)容確定下來,以此確定內(nèi)層加密的偽密鑰序列,方法為外層密鑰不變, 根據(jù)文本的關(guān)鍵詞,以數(shù)據(jù)庫為依據(jù),選擇想要替換的誤導(dǎo)元素,即可確定這一個(gè)元素的對(duì)應(yīng)的偽子密鑰,將每一個(gè)標(biāo)簽對(duì)應(yīng)的偽子密鑰依次連接起來,即為內(nèi)層的偽密鑰,采用不變的外層密鑰,即可得總的偽密鑰。
全文摘要
現(xiàn)實(shí)中存在的大量的文檔都是基于各種語言,存在許多的缺陷,比如對(duì)自然語言理解和處理比較困難,很難被計(jì)算機(jī)識(shí)別、統(tǒng)計(jì)和匯總,同時(shí)也極不規(guī)則,并且存在大量的冗余。采用傳統(tǒng)的方法加密后得到的密文,很難找到偽密鑰,惟一解距離很短。面對(duì)計(jì)算機(jī)處理和加密安全性的雙重需求,提出一種規(guī)范化的文檔。規(guī)范化的文檔是由標(biāo)簽及其元素組成的,對(duì)于所有的標(biāo)簽,都有固定的元素,假定元素的數(shù)量是有限的,這種文檔在許多情況下,可以完全取代一般的文本內(nèi)容的文檔,在某些情況下,則可以與其他的文檔相結(jié)合來有效表達(dá)信息。本發(fā)明設(shè)計(jì)了一種針對(duì)這類規(guī)范化文檔的加密方法,加密方法簡(jiǎn)潔,并且很容易找到偽密鑰,也能保證傳統(tǒng)的安全性要求。
文檔編號(hào)H04L9/32GK102497270SQ201110438290
公開日2012年6月13日 申請(qǐng)日期2011年12月24日 優(yōu)先權(quán)日2011年12月24日
發(fā)明者王勇 申請(qǐng)人:王勇