專利名稱:一種可修正偽隨機序列的可誤導(dǎo)的加密方法
技術(shù)領(lǐng)域:
本發(fā)明屬信息安全領(lǐng)域,涉及一種加密方法,特別是一種可以修正偽隨機序列的, 具有誤導(dǎo)功能的加密方法。
背景技術(shù):
現(xiàn)有的大多數(shù)密碼算法得到的密文用錯誤的密鑰解密得到有意義明文的概率非常小,這種能夠得到有意義明文的錯誤密鑰,稱為偽密鑰。隨著密文的增加,偽密鑰的數(shù)量會逐步減少。偽密鑰會減少到最后只剩下唯一一個密鑰,這會威脅密碼體制的安全。唯一解距離是當密文的用不同的密鑰去嘗試,只能得到一個有意義明文的密文的長度,實際上唯一解距離的估計公式?jīng)]有考慮那個真正的密文必然地存在,不受明文冗余度的影響,有一定的偏離,但是依然是一個值得考慮的指標。Shannon定義理想保密為唯一解距離為無限長,而一般現(xiàn)實的密碼體制是不能達到理想保密的,即隨著密文的長度增加,得到有意義的明文數(shù)最終趨向于一。雖然aiarmon以上分析具有很大理論價值,但是由于實現(xiàn)的困難,密碼分析者很少沿著這個方面做,現(xiàn)有的密碼分析和編碼被沒有考慮這些因素,只有少量的研究是將量子密碼學(xué)與一次一密體制結(jié)合起來進行研究。當前的密碼分析主要是考慮有限計算能力背景下的計算安全為主,對于算法的這類安全性研究的非常深入,考慮了各種各樣的情況下的分析,不僅有直接對算法的分析,而且有基于實現(xiàn)的分析。在分組密碼分析方面已經(jīng)有很多分組密碼分析技術(shù),如強力攻擊(包括窮盡密鑰搜索攻擊、字典攻擊、查表攻擊、時間-存儲權(quán)衡攻擊)、差分密碼分析、線性密碼分析、差分-線性密碼分析、插值攻擊、 相關(guān)密鑰攻擊、Multiset攻擊、reflection攻擊、自相似攻擊、能量分析、錯誤攻擊、定時攻擊等等。序列密碼分析方面主要的分析方法有線性校驗子分析方法機器改進分析方法、線性一致性測試分析、分別征服分析、最佳仿射逼近分析、快速相關(guān)分析方法、多輸出前饋網(wǎng)絡(luò)密碼系統(tǒng)的分析、收縮序列的分析等,而公鑰密碼相關(guān)的分析方法主要是針對所采用的難題降低其難度。這些分析方法中有許多都是在很難具備的條件下實施的(比如截獲明文密文對、截獲密碼機、靠近密碼機、臨時使用密碼機、獲得不應(yīng)當為密碼分析者獲得的特別信息等),且研究非常深入。當然針對于無限的計算能力,一次一密體制具有很好的安全性, 但是,它也泄露明文的長度,而且需要的密鑰和明文等長度,分配長密鑰也是一個很不現(xiàn)實的問題。由于加密中運用了大量的復(fù)雜混淆擴散和加上語義信息的高度冗余,現(xiàn)代密碼體制中的分組密碼或者流密碼體制中若采用錯誤密鑰進行解密的時候往往得到的是沒有意義的亂碼,可以被排除。即使大量的密鑰中存在偽密鑰,可以解密出有意義的偽“明文” 來,但是密碼分析者可能根據(jù)已經(jīng)知道的信息和接受發(fā)送雙方的情況來判斷大部分偽明文 (錯誤密鑰得到的有意義的明文)不是真正的明文,實際上能夠讓密碼分析者考慮的偽密鑰非常少。這導(dǎo)致密碼分析者非常相信能夠解密得到有實際意義和符合通信語境的“明文” 的密鑰就是那個真正的密鑰,實際上一個密鑰如果符合上述條件,它是真正密鑰的概率非常大。在軟磨硬泡攻擊情形下,給出的密鑰對于密碼分析者具有可信性,因為密鑰持有者想要偽造一個符合通信語境,可以被密碼分析者信賴的偽密鑰非常困難,而且在被劫持等情形中,很短時間內(nèi)沒有計算設(shè)備的情況下他無法計算出來。為了能夠很容易找到偽密鑰,并且能夠有意誤導(dǎo)密碼分析者,有必要加密時對于文件內(nèi)容予以識別并且以語言的字、詞等結(jié)構(gòu)為單位根據(jù)語義進行加密。研究表明實際上大多數(shù)現(xiàn)代密碼算法的唯一解距離都是較短的,比如針對現(xiàn)代的較長的256bit長密鑰的分組密碼算法,ASCII文本加密算法的唯一解距離才是37. 6個字符,顯然獲得大大超過37. 6個字符的密文的條件是很容易達到的,加上背景信息的限制等,針對具體情況的真正的得到唯一解的距離還會短。目前研究尚未涉及到設(shè)計唯一解距離較長的加密算法。在密碼分析中,有一種軟磨硬泡(RiAber-hose)攻擊。在此分析中密碼分析者威脅、勒索,或者折磨某人,直到他給出密鑰為止,類似的還有行賄購買密鑰攻擊。這些都是非常有效的攻擊,并且經(jīng)常是破譯算法的最好途徑。常見的密碼分析已知明文攻擊、選擇明文和選擇密文攻擊都需要非常巨大的資源而且必須擁有一些難于獲取的已知信息,往往在現(xiàn)實上不可能實現(xiàn),但是軟磨硬泡攻擊卻非常容易實現(xiàn)。抗擊軟磨硬泡攻擊并沒有最好途徑, 只能給一個偽密鑰或者讓密碼分析者不信任密鑰。設(shè)計具有誤導(dǎo)功能的加密方法,意義如下(1)具有誤導(dǎo)功能的加密方法可以對抗軟磨硬泡攻擊,或者是礙于其他的壓力,包括權(quán)勢、情面等情形,特別是在軍事環(huán)境中有非常重要的意義。由于其他密碼分析方法的條件難于獲得,現(xiàn)實中軟磨硬泡攻擊經(jīng)常是破解算法的最好途徑,所以其價值是很現(xiàn)實的。(2)可以對抗無限計算能力或者很強的計算能力下的各種密碼分析,乃至于唯密文分析。(3)在密鑰可能被盜取情況下,可以用偽密鑰作為誘餌誤導(dǎo)對方。這個也是具有很強的現(xiàn)實意義,現(xiàn)實中黑客和木馬可能竊取我們的密鑰文件及其加密的口令。(4)可以主動去誤導(dǎo)對方,錯誤密鑰可以得到有意義的明文去誤導(dǎo)對方,并且用偽密鑰可以得到各種相近、相反的“明文”相比較原始明文具有一定的“抵消”作用,讓密碼分析者無所適從。( 理論上可以達到理想保密。要求對稱加密算法偽密鑰數(shù)量多,而且容易找到偽密鑰,就要轉(zhuǎn)變算法設(shè)計的思路。這樣的算法具有誤導(dǎo)功能,比如在密鑰可能被竊取的時候,可以用偽密鑰作為誘餌,在受到軟磨硬泡攻擊的時候,可以交出偽密鑰。在對方進行唯密文分析的時候,無法確定真正的密鑰。在這方面,發(fā)明人采用類似于選擇題加密的方法設(shè)計了一種具有誤導(dǎo)功能的算法。 為了減少密鑰實際長度,采用流密碼算法來產(chǎn)生密鑰流用于加密關(guān)鍵詞的編號,密鑰流有一定的不可控性,采用一定的修正方法來根據(jù)需要修正偽明文中的關(guān)鍵詞,達到較適合現(xiàn)實需要的偽明文。
發(fā)明內(nèi)容
本發(fā)明旨在克服現(xiàn)有技術(shù)的不足之處,以及誤導(dǎo)功能實現(xiàn)的一些難題,而提供一種方便、實用的具有誤導(dǎo)功能的加密算法。為了各種安全性的考慮,我們包含了外層和內(nèi)層兩層加密,分別達到傳統(tǒng)的密碼安全特征和在特殊背景下能夠很容易計算出偽密鑰的安全特征。為具備誤導(dǎo)功能,在本發(fā)明中,設(shè)計了采用類似選擇題加密方式,它需要有一個關(guān)鍵詞數(shù)據(jù)庫,加密的時候,打開文件,讀取文本的內(nèi)容,加密時候把關(guān)鍵詞替換成為一個擴充項,擴充項把許多相近、相對的關(guān)鍵詞放在一起,用標號加以標記,正確的選擇項給予正確的標號,解密時進行運算判斷哪個選擇項是真正的關(guān)鍵詞。顯然這樣的加密具有上述的迷惑和誤導(dǎo)作用,并且很容易尋找到偽密鑰,具有密鑰可信度低的優(yōu)點。為了使得加密密鑰不要太長,而且具有很好的安全性,采用了對稱密碼作為加密的子密鑰生成器,這樣的一個序列是偽隨機的。為了讓偽隨機序列可以在某些特定的情況下進行修改以適應(yīng)需求,設(shè)置了一種可以修改的偽隨機密鑰結(jié)構(gòu),對子密鑰生成器的密鑰在需修正的特定部位根據(jù)需要做一定的修改。為了減少密文的冗余,采用了盡量緊湊的編碼格式,擴充的時候已經(jīng)將關(guān)鍵詞嵌入了密文中,解密的時候無需相應(yīng)的數(shù)據(jù)庫即可解密,避免了數(shù)據(jù)庫同步的問題。許多時候,明文中可能出現(xiàn)任意的字符(編碼),而加密的時候,需要做一定的編輯區(qū)分不同的內(nèi)容,而標記又可能與原文相混淆,在本發(fā)明中做一定的處理。本發(fā)明中需要的若干標記應(yīng)當選擇出現(xiàn)概率較小的符號,而且標記不能出現(xiàn)在關(guān)鍵詞中。這些標記如果出現(xiàn)在原文中,或者連續(xù)相同的標記出現(xiàn)在原文中,加密的時候,需要在標記前添加一個相同標記,對應(yīng)的內(nèi)層的加密則需要判斷是否出現(xiàn)了幾個相同的標記,如果重復(fù)出現(xiàn)相同標記,則不當做標記處理,而是直接增加一個標記,連續(xù)的重復(fù)標記都不當做標記,而且2個以上的連續(xù)標記只增加一個標記。解密的時候,連續(xù)的重復(fù)標記都不當做標記,只有標記后面不是同一標記才被認為是標記。如果重復(fù)出現(xiàn)相同標記,則不當做標記處理,而是直接減少一個標記,而且2個以上的連續(xù)相同標記只減少一個標記。為了使得偽密鑰很容易計算,加密是基于語義的。為了達到語義加密的功能,我們需要打開文件,對文本進行讀取、識別和加密代換。考慮到關(guān)鍵詞數(shù)據(jù)庫可以是不一樣的,可能隨時改變,或者有多個版本,所以在算法在設(shè)計的時候考慮解密的時候不需要數(shù)據(jù)庫,以免出現(xiàn)關(guān)鍵詞數(shù)據(jù)庫無法同步等問題。 在無需關(guān)鍵詞數(shù)據(jù)庫解密的情況下,也通過盡量壓縮擴充項,對密文的長度做了壓縮,即對一般的選擇題的數(shù)據(jù)結(jié)構(gòu)進行了壓縮。本加密方法出于多種安全性的考慮,相對復(fù)雜。整個加密解密的全過程如圖2所本加密方法的加密步驟為打開文件,根據(jù)文本內(nèi)容進行內(nèi)層加密,然后保存文件,對文件進行外層加密。內(nèi)層加密類似于編制選擇題,外層的加密是傳統(tǒng)的對稱加密。在內(nèi)層加密中,系統(tǒng)需要有一個關(guān)鍵詞的數(shù)據(jù)庫,這個數(shù)據(jù)庫中存儲著許多關(guān)鍵詞,將同樣一類可以替換的相近、相反意義的關(guān)鍵詞放在一組中,比如星期一、星期二、星期四,……,之類的。每一組關(guān)鍵詞中的每一個關(guān)鍵詞都有一個在本組中唯一的編號。在設(shè)計關(guān)鍵詞數(shù)據(jù)庫的時候,保證互相不要重復(fù)、重疊,當然這也帶來了一定的局限。當然也可以在采用一定的判斷規(guī)則或者自然語言理解的情況下,完全可以取消這些對關(guān)鍵詞的限制, 但是要能夠保證加密的時候能夠確定文本的關(guān)鍵詞的分詞,以及一個關(guān)鍵詞同時屬于多個組的時候,能夠根據(jù)上下文判斷文本中的關(guān)鍵詞的意義應(yīng)該屬于哪一組。在進行了自然語言理解的判斷理解后再進行內(nèi)層加密。
系統(tǒng)的總密鑰包括外層密鑰和內(nèi)層密鑰。外層密鑰長度是固定的,內(nèi)層密鑰長度是可變的。為了達到對偽隨機密鑰流的修改,在內(nèi)層密鑰中附加一些特定的信息,確定對密鑰流修改的位置,以及如何修改。內(nèi)層密鑰的結(jié)構(gòu)分為兩部分,其前面的固定長度的部分為產(chǎn)生密鑰流的密鑰。隨后會出現(xiàn)若干個固定長度的分組信息,用于修改特定位置的密鑰流, 我們稱為修正塊。這些固定長度的修正塊的數(shù)目η是可以隨意選擇的,也可以完全不需要, 但是為了達到比較好的誤導(dǎo)效果,防止暴露破綻,一般這個修正塊的數(shù)目η最好與在相同長度的明文(密文)下,隨機選取一個內(nèi)層的偽密鑰需要對密鑰流進行修改的平均數(shù)目接近。每一個修正塊的結(jié)構(gòu)為,前面為需要修改的密鑰流的相對位置,這個相對位置是用從文本的開始,每一個關(guān)鍵詞依次按照1,2,3,這樣的順序編號,這個編號即為相對位置,需要修改密鑰流所對應(yīng)的關(guān)鍵詞的相對位置編號即為分組信息的前面一部分信息,其后面一部分信息即為密鑰流的修改值M,M最終參與對應(yīng)位置的關(guān)鍵詞的內(nèi)層的加密和解密計算,起到修正關(guān)鍵詞的作用。加密流程如下(一)首先是打開文件,讀取文本的內(nèi)容,準備進行內(nèi)層加密。(二)內(nèi)層加密,內(nèi)層加密的具體方式如下在進行本層加密時,逐個掃描文本中的字符是否存在關(guān)鍵詞數(shù)據(jù)庫中已有的關(guān)鍵詞。在掃描過程中,Α)、如果文本中沒有關(guān)鍵詞,也沒有出現(xiàn)標記,則直接輸出原文本,掃描的指針指向輸出的文本之后;B)、如果掃描遇到的是標記,則在輸出所有的連續(xù)的相同的標記的同時,增加一個相同的標記,并且讓掃描的指針指向這些相同的連續(xù)標記之后。C)、如果遇到關(guān)鍵詞,需要對關(guān)鍵詞進行計數(shù),從1 開始計數(shù)編號,然后將關(guān)鍵詞替換為擴充項,為了減少冗余,我們對擴充項的處理如下為了便于解密,需要對于擴充項、選擇項和標號加以標記和區(qū)分,可選擇3個在文本中出現(xiàn)概率較低的符號分別作為擴充項的起始標記S、分隔標記D和結(jié)束標記F,標記不能是關(guān)鍵詞或者關(guān)鍵詞的一部分。擴充項的格式為起始標記S| I確定關(guān)鍵詞的代號密文Τ| I分割標記d| I關(guān)鍵詞一 I |D| I關(guān)鍵詞二 11…11分割標記D| |關(guān)鍵詞n| |結(jié)束標記F。τ是根據(jù)內(nèi)層密鑰結(jié)合關(guān)鍵詞在文本中的位置得出的一個可以獲得正確原明文關(guān)鍵詞的數(shù)據(jù),是根據(jù)內(nèi)層密鑰計算出來的,計算的算法必須是安全的,不可逆的,以保證即使某個τ以及相對的關(guān)于明文的信息泄露,內(nèi)層密鑰的相關(guān)其他信息依然是在有限計算能力下保密的。11表示將數(shù)據(jù)合并銜接起來。內(nèi)層加密需要相應(yīng)的密鑰,是從總密鑰中截取的一部分。由于外層密鑰是固定長度的,因此,截去了外層密鑰即為內(nèi)層密鑰。(三)內(nèi)層加密得到了新的文本,將文本保存到過渡的密文文件中。(四)進行外層加密,得到最終密文。為了保證安全性,僅僅進行一次上述的加密是不夠的,雖然許多信息具有迷惑性,由于語言本身的復(fù)雜性、數(shù)據(jù)庫的識別能力和有效性未必很強,一些沒有被替換的詞直接泄漏了,此外由于上述加密的處理過程中對于關(guān)鍵詞識別的時候存在部分誤判,也對于安全性有一定影響。為加強安全性對過渡的密文文件進行外層的加密,得到最終的密文。這個加密采用傳統(tǒng)的加密方法進行,選擇一組對稱加密方法即可。解密為一個相反的過程解密過程中,首先將最終的密文用傳統(tǒng)的對稱密碼算法進行相應(yīng)的解密,得到過渡的密文文件,其次要將得到的過渡文件進行內(nèi)層的解密。當進行這層解密的時候,先打開文件或者輸入外一層解密的內(nèi)容,讀取和識別內(nèi)容,1)如果既不是標記,又不是關(guān)鍵詞,則直接輸出原文,指針指向下一個字;2)如果遇到擴充項的起始標記,且有連續(xù)重復(fù)的相同標記,則說明不是真正標記,去掉一個標記,直接輸出這些連續(xù)的標記;3)如果遇到的標記為起始標記且不重復(fù),則判斷為擴充項。讀取起始標記S后面的 T,并且數(shù)結(jié)束標記F之前的分割標記D的數(shù)目,這個數(shù)目即為這一組關(guān)鍵詞中對應(yīng)的關(guān)鍵詞數(shù)n,然后根據(jù)內(nèi)層密鑰,以加密所采用的不可逆函數(shù),可以確定到底是第幾個關(guān)鍵詞是原明文的關(guān)鍵詞,將擴充項用這一關(guān)鍵詞代替,指針指向結(jié)束標記之后。最后將所有輸出的文檔內(nèi)容保存到相應(yīng)的文檔或者直接輸出。偽密鑰的獲取加密解密中有兩個密鑰,要獲取偽密鑰,可以將外層分組密碼的密鑰不變,然后任意選取迷惑與誤導(dǎo)加密層的內(nèi)層密鑰中的前面的固定長度的產(chǎn)生流密碼部分的密鑰,產(chǎn)生密鑰流,不考慮修正,進行解密,這時閱讀文本,是否有不如意(比如不合理、暴露破綻、認為誤導(dǎo)效果不好)的關(guān)鍵詞,然后根據(jù)將這些不如意的地方修改為自己滿意的關(guān)鍵詞,并且記下這些關(guān)鍵詞的位置和修改的密鑰值,以此在內(nèi)層密鑰的后面部分附加修正的密鑰信息。這樣形成了最終的內(nèi)層密鑰,用這個密鑰配合正確的外層分組密碼密鑰就是一個偽密鑰。在受到密碼分析者的密碼分析的時候,密碼分析者根據(jù)不同的內(nèi)層密鑰是可以得到不同的有意義明文的,加上這些不同密鑰得到的明文的一樣也可能與原來明文相近、相反的意義,所以很吻合通信背景,密碼分析者也無法確定真正密鑰。目前計算機的計算能力越來越強大,通信能力,信道的容量也越來越大。這使得復(fù)雜的加密可以得以實施,本發(fā)明在一定的程度上會增加一定的計算量,帶來一定的冗余,但是在目前一般情況下,我們的計算能力、信道容量和存儲能力往往被閑置,因此,這些一般不會給實現(xiàn)帶來麻煩。
圖1是本發(fā)明的內(nèi)層加密處理的流程2是本發(fā)明的整體加密解密的全過程3是本發(fā)明的實施例內(nèi)層密鑰的結(jié)構(gòu)圖
具體實施例方式下面是本發(fā)明的實施例,但是,本發(fā)明并不限于實施例。在具體實現(xiàn)的時候,規(guī)定總密鑰的不同部分分別用于內(nèi)層和外層加密,外層密鑰為固定長度,根據(jù)外層加密采用的算法來決定,比如外層加密算法采用256位的AES加密。 密鑰的最前面256bit為外層密鑰,其余為內(nèi)層密鑰。內(nèi)層加密中為了保證不可逆性,采用一種流密碼算法,比如可以采用256bit的流密碼算法,內(nèi)層密鑰的前256bit為流密碼算法的密鑰,對應(yīng)附圖3的產(chǎn)生密鑰流部分,密鑰的剩余部分是用于修正密鑰流的,其前面部分為關(guān)鍵詞的位置信息,根據(jù)關(guān)鍵詞的排序計數(shù)s來定位,后面部分為修改的值rs,兩者均為固定長度,前者根據(jù)文件中最大關(guān)鍵詞數(shù)M來確定,取值應(yīng)該大于Iog2M,后者根據(jù)關(guān)鍵詞數(shù)據(jù)庫中同一組關(guān)鍵詞的最大數(shù)目N來定,取值應(yīng)該大于Iog2N,為了方便計算機處理,一般采用字節(jié)為單位。
文件加密流程如下1)加密過程中要根據(jù)文件的類型,用相應(yīng)的軟件打開文件讀取其內(nèi)容,比如,txt 文件的加密,就先用記事本方式打開文件,讀取其文本內(nèi)容,準備進行內(nèi)層加密。2)內(nèi)層加密,內(nèi)層加密的具體方式如說明書附圖1所示。為了便于解密,需要對于擴充項、選擇項和代號加以標記和區(qū)分,可選擇3個在文本中出現(xiàn)概率較低的符號分別作為擴充項的起始標記S、分隔標記D和結(jié)束標記F,標記不能是關(guān)鍵詞或者關(guān)鍵詞的一部分。擴充項的格式為起始標記s 11確定關(guān)鍵詞的代號密文τ I |D| |關(guān)鍵詞一 | |D| |關(guān)鍵詞二 11…I |D| I關(guān)鍵詞n| |F。τ是根據(jù)內(nèi)層密鑰結(jié)合關(guān)鍵詞在文本中的位置得出的一個可以獲得正確原明文關(guān)鍵詞的數(shù)據(jù),舉如下例子來說明其計算方法當遇到某個關(guān)鍵詞如“今天”并且在數(shù)據(jù)庫中查實它是關(guān)鍵詞,那么就根據(jù)數(shù)據(jù)庫的數(shù)據(jù),將與之相關(guān)的一組關(guān)鍵詞為明天、今天、后天、昨天、前天等,將它們嵌入作為一個擴充項,在這一組中,所有關(guān)鍵詞有固定的順序,并且依次編號作為解密用的代號,從0到 η-1依次編號,這個編號決定于它們在這組關(guān)鍵詞中的次序。比如,以0標記今天,1標記后天,2標記昨天,3標記前天,4標記明天。加密的時候,采用流密碼算法產(chǎn)生密鑰流,將密鑰流按照每一個比特截取下來,按照順序分配給在文本序列中的各個關(guān)鍵詞作為子密鑰k, 第s個關(guān)鍵詞分配ks,假設(shè)明文中關(guān)鍵詞在數(shù)據(jù)庫中對應(yīng)的一組的編號是H,在這一組中的獨立編號是a,這一組中關(guān)鍵詞的數(shù)目為n,m表示修改值,一般的情況下修改的信息沒有涉及到本位置的關(guān)鍵詞,則m = 0,如果修改的信息中前面的定位信息剛好是本關(guān)鍵詞的位置 (這個位置是對所有的關(guān)鍵詞依次從1開始計數(shù)來確定的),則m = rs, rs為修改密鑰流部分中的后面的部分,可以計算出這一個擴充項的代號密文T = ks+a+mmod(n)。我們在這里可以看到,完全無需關(guān)鍵詞數(shù)據(jù)庫,就可以解密。3)內(nèi)層加密得到了新的文本,將文本保存到過渡的密文文件中。4)進行外層的加密得到最終密文。為加強安全性對過渡的密文文件進行外層的加密。這個加密采用傳統(tǒng)的AES算法進行加密。解密為一個相反的過程,文件解密流程如下解密過程中,首先對于外層的對稱密碼加密進行相應(yīng)的解密,得到過渡的密文文件,其次要將得到的過渡文件用記事本打開,讀取其文本內(nèi)容,對于擴充進行內(nèi)層的解密。 當進行這層解密的時候,先打開文件或者輸入外一層解密的內(nèi)容,讀取和識別內(nèi)容,A)如果遇到的不是標記,也不是關(guān)鍵詞,直接輸出;B)如果遇到重復(fù)的起始標記則不認為是起始標記,去掉一個標記后將遇到的連續(xù)的相同的標記輸出;C)如果遇到單獨的標記,則認定是擴充項。第s個擴充項的起始標記讀取相應(yīng)的起始標記S和D之間的T,然后讀取結(jié)束標記之前的D的數(shù)目,即可得到n,然后根據(jù)內(nèi)層密鑰可以確定m和ks,根據(jù)H查找對應(yīng)的一組關(guān)鍵詞,然后計算a = (T-m-ks)mod(n)這樣就可以確定到底是這一組中的哪一個關(guān)鍵詞。解密時沒有遇到標記的非擴充項部分直接輸出,遇到標記則用上述的方法找出正確選擇項,作為輸出,最后將所有輸出的文檔內(nèi)容保存到相應(yīng)的文檔或者直接輸出。這樣我們也可以根據(jù)前面提到的方法獲取偽密鑰,得到有意義的明文,而且可以根據(jù)自己的意圖得到滿意的“偽明文”。
權(quán)利要求
1.一種可修止偽隨機序列的可誤導(dǎo)的加密方法,其特征在于包括以下處理步驟A.打開文件,讀取文本內(nèi)容;B.根據(jù)文本內(nèi)容進行內(nèi)層加密,內(nèi)層加密主要涉及到關(guān)鍵詞的擴充和文本中出現(xiàn)的與標記相同的符號的處理;C.保存文件,得到過渡密文文件;D.對文件進行傳統(tǒng)的對稱算法的外層加密;E.計算偽密鑰如果有需要,可以計算偽密鑰,備用或者作為誘餌,在受到脅迫的時候可以交出偽密鑰,其中外層密鑰是不變的。對方在做密碼分析的時候,由于可以找到許多偽密鑰,所以無法判斷誰是正確密鑰。
2.如權(quán)利要求1所述的具有誤導(dǎo)功能的加密方法,其特征在于在所述步驟B當中采用一個關(guān)鍵詞數(shù)據(jù)庫進行加密,將原文本中的關(guān)鍵詞替換為擴充項,有點類似于設(shè)計選擇題,但是為了壓縮數(shù)據(jù)有一定的改變。關(guān)于關(guān)鍵詞的擴充按照如下方法處理為了便于解密,需要對于擴充項、選擇項和標號加以標記和區(qū)分,可選擇3個在文本中出現(xiàn)概率較低的符號分別作為擴充項的起始標記S、分隔標記D和結(jié)束標記F,注意標記不能是關(guān)鍵詞或者關(guān)鍵詞的一部分。擴充項的格式為起始標記S| I確定關(guān)鍵詞的密文T| I分割標記D| I關(guān)鍵詞一 I |D| I關(guān)鍵詞二 11…11分割標記D11關(guān)鍵詞n| |結(jié)束標記F。τ是根據(jù)內(nèi)層密鑰結(jié)合關(guān)鍵詞在文本中的位置得出的一個可以獲得正確原明文關(guān)鍵詞的數(shù)據(jù),是根據(jù)內(nèi)層密鑰計算出來的,計算的算法必須是安全的,不可逆的,可以采用流密碼算法產(chǎn)生,以保證即使τ 以及相對的關(guān)于明文的信息泄露,內(nèi)層密鑰的相關(guān)信息依然是在有限計算能力下保密的。I表示將數(shù)據(jù)合并銜接起來。關(guān)鍵詞已經(jīng)嵌入密文中,解密時候無需數(shù)據(jù)庫,只需通過密鑰計算出所對應(yīng)的明文關(guān)鍵詞即可。
3.如權(quán)利要求1所述的具有誤導(dǎo)功能的加密方法,其特征在于在所述步驟B當中為了有效區(qū)分正常文本和若干標記,采用如下方法做處理在選擇標記對應(yīng)的符號的時候,選擇文本中出現(xiàn)概率較小,而且不出現(xiàn)在關(guān)鍵詞中的符號作為標記。這些標記如果出現(xiàn)在原文中,或者連續(xù)相同的標記出現(xiàn)在原文中,進行內(nèi)層加密的時候,需要在標記前添加一個相同標記,對應(yīng)的內(nèi)層的加密還需要判斷是否出現(xiàn)了幾個連續(xù)相同的標記,如果重復(fù)連續(xù)出現(xiàn)相同標記,則后面的標記不當做標記處理,而是當做一個整體直接增加一個標記,即連續(xù)的重復(fù)標記都不當做標記,而且2個以上的連續(xù)標記只增加一個標記。解密的時候,連續(xù)的重復(fù)標記都不當做標記,只有標記后面不是同一標記才被認為是標記,即如果是多個連續(xù)重復(fù)標記,只減少一個該標記。
4.如權(quán)利要求1所述的可以修正偽隨機序列的具有誤導(dǎo)功能的加密方法,其特征在于在所述步驟B當中為了保證抵御潛在的泄露明文密文對相關(guān)的情況下的安全性,采用流密碼算法來產(chǎn)生內(nèi)層加密的某些編碼代號,防止泄露部分信息。而為了避免因為是密鑰流而非隨機數(shù)造成的不能有效誤導(dǎo)的問題,增加了修正信息,其結(jié)構(gòu)包括定位信息和修正值,對流密碼產(chǎn)生的子密鑰根據(jù)需要進行修正,消除了流密碼序列的不可控性。
5.如權(quán)利要求1所述的可以修正偽隨機序列的具有誤導(dǎo)功能的加密方法,其特征在于產(chǎn)生偽密鑰的方法為外層密鑰不變,內(nèi)層密鑰變動后,解密密文即可得出有誤導(dǎo)意義的 “偽明文”來。如果偽明文滿意,即可不用附加修正信息,但是如果偽明文可能有些關(guān)鍵詞的替換并不讓人滿意,在密鑰后面附加相應(yīng)的定位信息和修正值,這樣可以在得到的偽明文中,相應(yīng)的關(guān)鍵詞剛好是最需要誤導(dǎo)對方的,這樣補充了修正信息的偽密鑰就能具有很好的誤導(dǎo)效果。
全文摘要
本發(fā)明針對密鑰的竊取、對密鑰持有人的挾持、軟磨硬泡攻擊和唯密文攻擊等攻擊,發(fā)明涉及一種具有誤導(dǎo)功能的加密方法,應(yīng)用該方法加密可以很容易得到偽密鑰,從而可以誤導(dǎo)密碼分析者,這種誤導(dǎo)是決定于內(nèi)層密鑰的,它包括產(chǎn)生密鑰流的信息和修正信息,利用修正信息可以根據(jù)實際需要增強誤導(dǎo)的有效性。對于文檔中的標記采用特別的處理方式,使得即使規(guī)定的標記可能出現(xiàn)在文本中,依然不會混淆。加密的時候需要有一個關(guān)鍵詞數(shù)據(jù)庫,其內(nèi)層加密利用數(shù)據(jù)庫進行關(guān)鍵詞的擴充,外層加密采用了傳統(tǒng)的加密方法。本方法解密時無需數(shù)據(jù)庫的支持,避免了數(shù)據(jù)庫同步的問題。本發(fā)明在各種場合加密應(yīng)用中均具有一定的使用價值,特別是軍事上。
文檔編號G06F21/24GK102360414SQ20111030177
公開日2012年2月22日 申請日期2011年9月27日 優(yōu)先權(quán)日2011年9月27日
發(fā)明者王勇 申請人:桂林電子科技大學(xué)