專利名稱:加密二進(jìn)制編碼信息的方法
技術(shù)領(lǐng)域:
本發(fā)明設(shè)計電信和計算機(jī)工程領(lǐng)域,本發(fā)明尤其涉及要加密消息(數(shù)據(jù))的密碼方法和裝置。
現(xiàn)有技術(shù)就其整個特征而言下述概念在提出權(quán)利要求的方法的描述中使用。
“密鑰”指的是只有經(jīng)核準(zhǔn)的用戶才知道的二進(jìn)制信息。
“密碼”指的是使用密鑰的輸入數(shù)據(jù)變換過程的基本步驟的組合,它以計算機(jī)程序的形式或作為分立的單元實現(xiàn)。
“加密”是在密鑰控制下數(shù)字信息變換的過程,允許將源數(shù)據(jù)轉(zhuǎn)換為加密的文本,該文本是通過字符的偽隨機(jī)序列表示的,從而如不知道密鑰,則實際上不可能從那里得出任何信息。
“解密”指和加密的相反的過程,該過程允許根據(jù)所提供的密碼文本恢復(fù)信息,其中操作者知道加密的密鑰。
“二進(jìn)制”矢量通常指開關(guān)比特的某一序列,例如相應(yīng)于通信鏈路中出現(xiàn)的哼聲或寄生信號,在本申請中,二進(jìn)制矢量表示排序比特的串,該串沒有被數(shù)據(jù)的接收器作為需要的信號或信息翻譯。
“形成二進(jìn)制矢量的偽隨機(jī)律”表示在原始參數(shù)以基礎(chǔ)上產(chǎn)生擴(kuò)展的比特序列,并將所述序列再分為必需長度的元素的預(yù)定規(guī)則;它可能用作原始參數(shù),密鑰或隨機(jī)選擇數(shù);如果其數(shù)值是未知的,則事實上輸出序列將和隨機(jī)產(chǎn)生的信號無法區(qū)分。
“密碼分析”是為具有對編碼信息未核準(zhǔn)訪問的計算密鑰的技術(shù),或者確立允許不需計算密鑰而訪問這樣的信息的方法。
“密碼阻力”在操作者知道變換算法而不知道密鑰的情況下構(gòu)成數(shù)據(jù)保護(hù)可靠性的手段,以及,用為了根據(jù)密碼恢復(fù)信息要執(zhí)行的基本操作的數(shù)目給出的表示勞動強(qiáng)度。
已知各種對數(shù)據(jù)進(jìn)行塊加密的方法,例如,密碼RC5[R.Rivest,RC5加密算法,快速軟件加密,第二次國際研討會進(jìn)展(Leuven,Belgium,1994.12.14-16),計算機(jī)科學(xué)講義Spriger-Verlag,V.10081995,pp86-96]。根據(jù)這些傳統(tǒng)的方法,數(shù)據(jù)塊的加密通過形成密鑰,然后把要變換的數(shù)據(jù)塊再分為子塊,或者以后通過循環(huán)移位操作改變這些,最后對現(xiàn)有的塊取模2和以及模232和來執(zhí)行。這種塊方法保證了如果以計算機(jī)程序的形式執(zhí)行加密時有高的加密速率。
但是,未示出對差分(differential)以及線性密碼分析足夠的阻力[Kaliski B.S.,Yin Y.L.論RC5編碼算法的差分和線性密碼分析,密碼學(xué)進(jìn)展-CRYPTO’95進(jìn)展,Springer-Verlag,1995,pp.171-184]這是由于這樣的事實,即采用這種密碼分析技術(shù),攻擊者有可能加密專門選出的原始文本。
就其技術(shù)本質(zhì)而言可把提出要求權(quán)利的塊加密的方法,視為在美國標(biāo)準(zhǔn)DES[國家標(biāo)準(zhǔn)局,數(shù)據(jù)加密標(biāo)準(zhǔn)。聯(lián)邦信息處理標(biāo)準(zhǔn)出版物46,1977年1月]中描述的方法。這個方法包括下述步驟形成某一長度密鑰、將二進(jìn)制碼形式表示的輸入信息分為長64比特的元素,再在這些單元的基礎(chǔ)上產(chǎn)生64比特數(shù)據(jù)塊,并在密鑰的控制下變換所述塊。在變換之前,把每一個數(shù)據(jù)塊分為兩個32比特子塊L和R,然后在16個類似的變換循環(huán)中交替進(jìn)行處理。單個變換循環(huán)主要點(diǎn)是對子塊R作替代、置換和模2和操作。每一個循環(huán)以子塊R和L的置換結(jié)束。如果以專門電路形式執(zhí)行的下則上述信息的塊加密的方法給出了較高的變換速率。
不幸的是它有這樣的缺點(diǎn),即,當(dāng)使用這種方法時,可能根據(jù)原始文本專門選出的輸入塊,有效地應(yīng)用各種密碼分析技術(shù)。這個缺點(diǎn)是由于這樣的事實,即在這樣密碼分析中,分析者能夠選擇原始輸入文本,該文本的加密伴有加密算法的統(tǒng)計性質(zhì)的表現(xiàn)。
因此,本發(fā)明的一個目的是提供一種加密二進(jìn)制編碼信息的方法,根據(jù)該方法,輸入數(shù)據(jù)的變換如此執(zhí)行,從而允許以給出的固定的密鑰,將原始文本變換為譯成密碼的文本,該譯成密碼文本的結(jié)構(gòu)不被預(yù)定,因此加密算法統(tǒng)計性質(zhì)的檢查更為困難,結(jié)果增大了在選出的原始文本基礎(chǔ)上的對密碼分析的阻力。
發(fā)明概述上述問題通過提供加密二進(jìn)制編碼信息的方法解決,其中該方包括下述步驟選出密鑰、作出K≥包含P≥1的二進(jìn)制信息碼單元的數(shù)據(jù)塊、并在密鑰的控制下變換數(shù)據(jù),其特征在于另外產(chǎn)生D≥1二進(jìn)制矢量,并且通過將二進(jìn)制矢量連接到二進(jìn)制信息代碼的相應(yīng)的單元而作出數(shù)據(jù)塊。
有了這一方案,加密文本的塊的結(jié)構(gòu)不但依賴于密鑰和二進(jìn)制信息代碼的單元結(jié)構(gòu),還依賴于二進(jìn)制矢量的結(jié)構(gòu),導(dǎo)致加密文本的塊的所述結(jié)構(gòu)不再為給出的原始文本和采用的密鑰而預(yù)定。結(jié)果,更加難以揭示加密算法的統(tǒng)計性質(zhì),因此導(dǎo)致對根據(jù)選出的原始文本本執(zhí)行的密碼分析阻力的增加。
本發(fā)明的另一個新穎特征在于這些矢量是隨機(jī)地產(chǎn)生。這允許得到加密文本塊的隨機(jī)修改,因此增加了對根據(jù)已知方法做出的密碼分析的阻力。
本發(fā)明的另一個特點(diǎn)在于,二進(jìn)制矢量以偽隨機(jī)方式產(chǎn)生,因此給出在PC上通過軟件的方式執(zhí)行提出權(quán)利要求的方法的可能性,而不必使用附加的電子電路以產(chǎn)生隨機(jī)數(shù)。
本發(fā)明的還有一個新穎特征在于,二進(jìn)制矢量根據(jù)密鑰連接到二進(jìn)制信息代碼的相應(yīng)的單元。這一方案保證了增加加密系統(tǒng)阻力,這是由于在得出數(shù)據(jù)塊的過程中的輔助不定性的引入。
現(xiàn)在將通過一些例示的實施例,參照附圖詳細(xì)地解釋本發(fā)明。
圖1示意地示出根據(jù)建議方法對原始文本P的加密的過程。
圖2示出對經(jīng)加密的文本C的解密過程的方框圖。
圖3表示一種方案,用于將二進(jìn)制信息代碼分成單元p1、p2……pi,…和一組產(chǎn)生的二進(jìn)制矢量r1、r2……、ri……。
圖4示意地示出了通過將二進(jìn)制信息代碼的單元連接到二進(jìn)制矢量得出的輸入數(shù)據(jù)塊。
圖5示出關(guān)于下面的例2的加密的方框圖。
本發(fā)明的較佳實施例本發(fā)明根據(jù)圖1給出的1提出權(quán)利要求的方法,在數(shù)據(jù)塊的密碼變換概圖的幫助下將更容易理解,其中單元RNG是隨機(jī)數(shù)發(fā)生器,R是隨機(jī)二進(jìn)制矢量,P是要變換的二進(jìn)制信息的一個單元,E表示加密單元,K是密鑰,C是輸出經(jīng)加密的文本,而[|]表示并置運(yùn)算的符號表示(sign symbolizing)。
在加密系統(tǒng)內(nèi),二進(jìn)制信息的單元被連接到隨機(jī)產(chǎn)生的二進(jìn)制矢量R,以形成數(shù)據(jù)塊B=R|P(它被提供至加密單元E的輸入端,該單元E得出經(jīng)加密的文本C)。
根據(jù)本發(fā)明假設(shè)塊產(chǎn)生的二進(jìn)制矢量形成密碼的一部分,并且由此不能在選出的文本基礎(chǔ)上由放對的分析者進(jìn)行密碼分析的情況下被替代;并且加密算法也不能變化。后面的這一規(guī)定構(gòu)成了對已知密碼是共同的要求。在加密過程中,二進(jìn)制矢量的結(jié)構(gòu)以不可預(yù)測的方式變化,這是因為它由隨機(jī)數(shù)發(fā)生器提供的。因此,無法預(yù)先知道或選擇在將二進(jìn)制矢量連接到輸入塊之后得到的要加密的數(shù)據(jù)塊,因此對在選出的原始文本為基礎(chǔ)上進(jìn)行的進(jìn)攻方式產(chǎn)生很難克服的障礙。
由于把加密密碼告訴了核準(zhǔn)的用戶,所以他可以用適當(dāng)?shù)乃惴ㄊ苟M(jìn)制矢量的結(jié)構(gòu)和輸入塊的結(jié)構(gòu)恢復(fù)。如果該用戶分離和舍棄不包含任何要傳送的信息的任何部分的二進(jìn)制矢量,則他將完全和單義地恢復(fù)供他用的本發(fā)明。
圖2示出方框圖,描述了根據(jù)本發(fā)明的解密過程。將加密文本塊饋送至解密單元D,該解密單元D(使用進(jìn)入的密鑰碼K)保證了數(shù)據(jù)塊B=R/P的值的恢原。被預(yù)先得出并用于加密過程中的復(fù)原的二進(jìn)制矢量R將在加密系統(tǒng)中被擦去,其方法是逐位地累加以對R上和對一些新的隨機(jī)值(這些隨機(jī)值在隨機(jī)數(shù)發(fā)生器的輸出端處提供)模2。
在許多應(yīng)用中,尤其是在設(shè)計的電路中,可以通過例如測量隨機(jī)的物理過程或有可能使用的噪聲換能器的信號實現(xiàn)二進(jìn)制矢量的隨機(jī)發(fā)生。根據(jù)另一個實施例,人們可以不用隨機(jī)數(shù)發(fā)生器而使用偽隨機(jī)數(shù)發(fā)生器(對其輸入端提供有一個隨機(jī)選擇的二進(jìn)制數(shù),以便在其輸出端得到所需長度的偽隨機(jī)序列。已知許多建立偽隨機(jī)數(shù)發(fā)生器的方法例如見[B.Schneier,“應(yīng)用密碼學(xué)”第二版,JohnWiley&Sons,Inc,New York,1966,pp.416-418],它可以很好地用于實行提出權(quán)利所要求的解決方案。這種發(fā)生器的使用允許通過軟件手段實施所建議的方法,如果我們例如例連續(xù)擊鍵經(jīng)過的時間間隔的值取為原始隨機(jī)數(shù)。
為了字組的加密變換,例如可能使用上述類似的現(xiàn)有技術(shù)方法或最接近于提出權(quán)利要求的方法,還有另一種已知的塊加密方法,它在第5,003,596號美國專利[M.C.Wood.“從一種形式到另一種形式用密碼轉(zhuǎn)換電子數(shù)字?jǐn)?shù)據(jù)的方法,美國專利#5,003,596,1991年3月26日]中描述。
提出權(quán)利要求的方法的技術(shù)可能性用本發(fā)明的實施例的下面具體例子來證實。為了簡便理解上容易起見,這些例子以算法的形式給出,這些算法構(gòu)成一種用于實行所建議的塊加密方法的具體實施例的接連的過程的邏輯記錄。
例1這個例子用于描述由二進(jìn)制代碼(分為32比特單元形式)表示的加密信息的方法。根據(jù)上述最接近的現(xiàn)有技術(shù)的方法,這里使用的單元E保證了64比特數(shù)據(jù)塊的加密的性能。為了描述例1,使用下面的算法。
算法132比特塊密碼1.取二進(jìn)制信息碼P的下一個32比特單元,得出32比特隨機(jī)矢量R,并產(chǎn)生數(shù)據(jù)塊B=R|P,其中符號“|”表示并置(連接)。
2.使用最接近的現(xiàn)有技術(shù)的方法,加密64比特數(shù)據(jù)塊。
例2這個例子描述了以二進(jìn)制代碼(分為12比特單元)的形式表達(dá)的加密信息的方法??梢允褂萌魏我阎募用?4比特塊B(其中B=X|Y)的方法,例如,最接近于現(xiàn)有技術(shù)的方法。加密函數(shù)由E(B)表示,即,當(dāng)加密塊B時,后者將根據(jù)法則B←E(B)變換,其中“←”用作指出賦值運(yùn)算。對于例2的描述,使用下面的算法。
算法248比特塊密碼1.形成加密密鑰2.取二進(jìn)制信息代碼p1,p2,p3和p4的下面四個12比特單元,隨機(jī)地得出四個20 比特二進(jìn)制矢量v1,v2,v3和v4,并且產(chǎn)生數(shù)據(jù)塊P=p1|v1|p2|v2|p3|v3p4|v4。
3.將數(shù)據(jù)塊P分為兩個子塊P=X|Y,其中X=p1|v1|p2|v2,而Y=p3|v3p4|v4。
4.變換子塊XX←E(X)。
5.將子塊X重疊在數(shù)字塊Y上Y←YX,其中符號表示逐位置加到模2的運(yùn)算。
6.變換子塊YY←E(Y)。
7.將子塊Y重疊在子塊X上X←XY。
8.變換子塊XX←E(X)。
9.將子塊X重疊在數(shù)字塊Y上Y←YX。
10.轉(zhuǎn)換子塊YY←E(Y)。
11.將子塊Y重疊在子塊X上X←XY。
12.作為加密的文本的輸出塊提供塊X|Y。
以上的例2在圖3到5中描述。在圖3中,方框1是被分為12比特單元的二進(jìn)制信息代碼,而方框2表示所產(chǎn)生的20位矢量的序列。圖4示出如此形成的數(shù)據(jù)塊的結(jié)構(gòu)。變換的方案由圖5描述,其中方框E用符號表示根據(jù)最接近的現(xiàn)有技術(shù)的方法的加密過程。
例3這個例子描述了應(yīng)用密鑰以確定通過使用二進(jìn)制信息代碼的32比特單元和32比特隨機(jī)二進(jìn)制矢量得出1024字節(jié)數(shù)據(jù)塊B的法則。加密過程使用密碼“Crab”它在[Kaliski B.S.,Robshaw M.J.B.快速塊密碼提議、快速軟件加密,劍橋安全研討會進(jìn)展、計算機(jī)科學(xué)講義,v.809,Springer-veriag,1994,pp.26-39;亦可參見B.Schneier,“應(yīng)用密碼學(xué)”,第二版,John Wiley&Sons,Inc.,NewYork,1966,pp.342-344]中描述。此密碼用作變換1024字節(jié)數(shù)據(jù)塊(它作為32比特子塊B0、B1、B2……、B255的序列呈現(xiàn)),并使用置換表形式的密鑰以及由2048子密鑰Q0、Q1、Q2、……Q2047構(gòu)成的排序的序列,每一個子密鑰長度為32比特。讓我們指定“E”為由密碼“Crab”確定的加密函數(shù)。下面的算法描述了和例3相關(guān)的程序。
算法3512字節(jié)隨機(jī)密碼輸入二進(jìn)制信息代碼的512字節(jié)單元,以二進(jìn)制信息代碼P0、P1、P2……、P127的32比特單元序列的形式表示。
1.形成128個隨機(jī)的32比特二進(jìn)制矢量r0、r1、r2、……、r127。
2.將32比特二進(jìn)制矢量和二進(jìn)制信息代碼的32比特單元綜合成一個中間塊(t0|t1|t2|…|t225)(t0|t1|t2|…|t127)=(r0|r1|r2|…|r127)(t128|t129|t130|…|t255)=(p0|p1|p2|…|p127)。
3.使用子密鑰Q0、Q1、Q2、Q3和Q4,計算參數(shù)u1=Q0mod256,u2=Q1mod256,u3=Q2mod256,s(1)=Q3mod8,s(2)=Q4mod8。
4.設(shè)置初始計數(shù)器值i=0,并建立32比特變量b0=b1=b2=…=b255=0。
5.計算指數(shù)h=[(u1+i)]<<<s(1)+U2]<<<s(2)U36.把值th分配給變量b1∶b1←th。
7.如果I≠255則遞增i←i+1并進(jìn)到第5項。
8.將變量b1合并到1024字節(jié)數(shù)據(jù)塊中B=b0|b1|b2|…|b255。
9.使用密碼“Crab”,加密塊BC=E(B),其中E表示由所述密碼確定的加密函數(shù)。
輸出加密文本C的1024字節(jié)塊。
第2,3,…,7項描述了根據(jù)密鑰(更精確地說,根據(jù)子密碼Q0、Q1、Q2、Q3、Q4)將二進(jìn)制信息代碼單元連接到二進(jìn)制矢量的過程。
工業(yè)適用性如由上述例子所示,塊加密的提出權(quán)利要求的方法技術(shù)上是可行的,并且可以較好地實現(xiàn)從事的任務(wù)。
這些例子容易在例如個人計算機(jī)上執(zhí)行,并允許在此基礎(chǔ)上產(chǎn)生軟件加密模塊,它對使用選出的原始文本從事的攻擊表現(xiàn)出很大的阻力。
通過這些例子證實,數(shù)字?jǐn)?shù)據(jù)塊的加密變換的建議的方法在技術(shù)上是可行的,并允許達(dá)到尋求的目的。
提出權(quán)利要求的方法可以在例如個人計算機(jī)中執(zhí)行,給出在此基礎(chǔ)上產(chǎn)生高速軟件加密模塊的可能性,以及用備有快速加密軟件系統(tǒng)的個人計算機(jī)替換實際的昂貴和復(fù)雜的加密設(shè)備。
權(quán)利要求
1.加密二進(jìn)制編碼的信息的方法,包括下述步驟形成密鑰、算出K包含P≥1二進(jìn)制信息代碼單元的數(shù)據(jù)塊,并在密鑰的控制下變換數(shù)據(jù)塊,其特征在于另外產(chǎn)生D≥1的二進(jìn)制矢量,并且通過將所述二進(jìn)制矢量連接到相應(yīng)的所述二進(jìn)制信息代碼單元而得出所述數(shù)據(jù)塊。
2.如權(quán)利要求1所述的方法,其特征在于所述二進(jìn)制矢量隨機(jī)地產(chǎn)生。
3.如權(quán)利要求1所述的方法,其特征在于所述二進(jìn)制矢量偽隨機(jī)地產(chǎn)生。
4.如權(quán)利要求1所述的方法,其特征在于所述二進(jìn)制矢量在所述密鑰的基礎(chǔ)上被連接到相應(yīng)的所述二進(jìn)制信息代碼單元。
全文摘要
本發(fā)明涉及電信和信息技術(shù),本發(fā)明尤其涉及對加密數(shù)據(jù)加密的加密裝置和系統(tǒng)。本發(fā)明的系統(tǒng)包括得出密鑰,得出K≥1數(shù)據(jù)塊(它包括P≥1二進(jìn)制信息代碼單元),并變換數(shù)據(jù)塊。系統(tǒng)的新穎性在于,還產(chǎn)生D≥二進(jìn)制矢量,還通過組合二進(jìn)制矢量形成數(shù)據(jù)塊,隨機(jī)地和偽隨機(jī)地產(chǎn)生二進(jìn)制矢量,把它們連接到相應(yīng)的二進(jìn)制信息代碼的單元,以及該連接是在密鑰的基礎(chǔ)上進(jìn)行的。
文檔編號H04L9/06GK1244321SQ97196528
公開日2000年2月9日 申請日期1997年12月24日 優(yōu)先權(quán)日1997年4月2日
發(fā)明者亞歷山大·安德烈耶維奇·莫爾多維安, 尼古萊伊·安得烈耶維奇·莫爾多維安, 彼得·安得烈耶維奇·莫爾多維安 申請人:亞歷山大·安得烈耶維奇·莫爾多維安, 尼古萊伊·安得烈耶維奇·莫爾多維安