智能卡數(shù)字加密技術
文章出處:http://srpd123.com 作者:技術 人氣: 發(fā)表時間:2011年09月09日
[文章內(nèi)容簡介]:智能卡數(shù)字加密技術
加密技術分類
密碼學發(fā)展至今,產(chǎn)生了很多密碼算法。有的算法已在學術刊物中披露,而更多的卻作為軍事、商業(yè)及貿(mào)易等秘密被嚴加保密?,F(xiàn)代密碼可以概括為序列密碼、分組密碼及公共密鑰密碼三種類型,同時與密碼技術相關聯(lián)的還有密鑰管理和密碼分析。
序列密碼
序列密碼是指利用少量的密鑰(制亂元素)通過某種復雜的運算(密碼算法)產(chǎn)生大量的偽隨機位流,用于對明文位流的加密。解密是指用同樣的密鑰和密碼算法及與加密相同的偽隨機位流,用以還原明文位流。
序列密碼由密鑰和密碼算法兩部分構(gòu)成。密鑰在每次使用之前都要變換,一般存儲在密碼設備內(nèi)部或從外部輸入密碼設備。密碼算法在較長時間內(nèi)是固定的。密鑰的靈活變換是這一密碼算法的活躍因素,而安全保密的關鍵則在于密碼算法的復雜性。序列密碼一般應滿足三個方面的要求:一是足夠長的周期;二是較高的復雜性;三是產(chǎn)生的密鑰流符合隨機檢驗的要求。
序列密碼的優(yōu)點是運算速度快,密文傳輸中的錯誤不會在明文中產(chǎn)生擴散。其缺點是密鑰變換過于頻繁,密鑰分配較難。由于序列密碼歷史悠久,理論完善,目前仍是國際密碼應用的主流。
分組密碼
分組密碼是將明文按一定的位長分組,明文組和密鑰組的全部經(jīng)過加密運算得到密文組。解密時密文組和密鑰組經(jīng)過解密運算(加密運算的逆運算),還原成明文組。
分組密碼的優(yōu)點是:密鑰可以在一定時間內(nèi)固定,不必每次變換,因此給密鑰配發(fā)帶來了方便。但是,由于分組密碼存在著密文傳輸錯誤在明文中擴散的問題,因此在信道質(zhì)量較差的情況下無法使用。
DES密碼就是1977年由美國國家標準局公布的第一個分組密碼。
公共密鑰密碼
無論是序列密碼還是分組密碼,其加密和解密密鑰均是相同的,因此必須嚴格保密,且要經(jīng)安全渠道配發(fā),這在跨越很大的地理位置上應用是一個難以解決的問題。1976年有人提出了公共密鑰密碼體制,其原理是加密密鑰和解密密鑰分離。這樣,一個具體用戶就可以將自己設計的加密密鑰和算法公諸于眾,而只保密解密密鑰。任何人利用這個加密密鑰和算法向該用戶發(fā)送的加密信息,該用戶均可以將之還原。因此,人們通常也將這種密碼體制稱為雙密鑰密碼體制或非對稱密碼體制;與此相對應,將序列密碼和分組密碼等稱為單密鑰密碼體制或?qū)ΨQ密鑰密碼體制。
公共密鑰密碼的優(yōu)點是不需要經(jīng)安全渠道傳遞密鑰,大大簡化了密鑰管理。它的算法有時也稱為公開密鑰算法或簡稱為公鑰算法。
1978年有人提出了公共密鑰密碼的具體實施方案,即RSA方案。
1991年提出的DSA算法也是一種公共密鑰算法,在數(shù)字簽名方面有較大的應用優(yōu)勢。
目前,國際上在智能IC卡上應用得較多的加密解密算法是DES算法、RSA算法及DSA算法。下面面向應用重點介紹這三種算法,并對其它有關算法作一簡要介紹。。
密碼技術在IC卡上的應用模式
在IC卡特別是智能卡應用方面,信息安全的保密性、完整性及可獲取性等都涉及到密碼技術。密碼技術在有關IC卡的安全應用主要有信息傳輸保護、信息認證及信息授權(數(shù)字電子簽名)等幾種主要模式。
目前,隨著網(wǎng)絡技術的飛速發(fā)展,網(wǎng)絡應用已深入到社會的各個領域,而INTERNET更是逐步走入千家萬戶。在這樣一個網(wǎng)絡信息平臺上,人們迫切希望獲得真實、安全、可靠的信息,密碼技術和IC卡技術的結(jié)合必將成為在這一平臺上保護信息安全的重要技術手段。
密碼技術和IC卡,特別是智能IC卡技術的結(jié)合必將具有十分廣闊的應用和發(fā)展前景。
信息傳輸保護
對IC卡處理、傳輸?shù)男畔⑦M行保護是密碼應用最重要的方面。采用密碼技術的基本思想是將保護大量的明文信息問題轉(zhuǎn)化為保護少量密鑰信息的問題,使得信息保護問題易于解決。
為防止對傳輸信息的非法截取,采用密碼技術對傳輸信息進行加密保護,使得非法截取的信息成為不可讀、不可知具有十分重要性意義。
首先,因為IC卡的應用和計算機密切相關,并且其中有些安全保護概念就來源于此,所以先對計算機網(wǎng)絡的傳輸加密作一簡單介紹。計算機網(wǎng)絡中的傳輸加密,通常分為鏈路加密和端端加密。鏈路加密是對通過每條鏈路的全部信息進行加密;端端加密是在信息發(fā)送的起點加密,在信息接收點解密。鏈路加密的優(yōu)點是全部信息包括信息頭都加密,在每條鏈路上流經(jīng)的都是密文信息;缺點是信息每經(jīng)過一個節(jié)點就要解密,然后再加密,因此,在信息傳輸?shù)拿恳粋€節(jié)點上信息要暴露。端端加密的優(yōu)點是信息在每一節(jié)點上都不暴露,缺點是信息頭不能加密。為了安全,也有將兩種方式結(jié)合使用的。
與此相對應,在智能IC卡上也存在著類似的傳輸信息保護方式,一般有三種方式:一是認證傳輸方式(Authentic Transmit Mode);二是加密傳輸方式(Encipher Transmit Mode);三是混合傳輸方式(Mixed Transmit Mode)。
認證傳輸方式
認證傳輸方式就是將在接口設備(IFD)和IC卡(ICC)之間傳輸?shù)男畔⒏郊由舷鄳恼J證信息。在IFD和ICC之間傳輸?shù)男畔⒖梢院唵畏譃閮刹糠郑阂皇切畔㈩^,主要為傳輸控制信息,如傳輸方式等;二是信息主體。
在認證傳輸方式中,發(fā)送端利用相應的加密算法及加密密鑰將待傳輸信息的信息頭和信息主體進行加密,得到的密文附加在明文信息尾部傳輸給接收端。接收端收到該信息后按發(fā)送相反的順序?qū)邮盏降男畔⑦M行認證,認證通過則進行相應處理,否則回送相應錯誤信息。
在具體的智能IC卡應用中,信息發(fā)送、接收端則分別為IFD或ICC,采用不同的加密算法則密鑰分配、工作順序也不相同。以采用DES算法為例,認證傳輸?shù)那疤峋褪窃贗FD和ICC之間有一公共密鑰,在每次認證傳輸之前,發(fā)送端向接收端請求一中間密鑰,發(fā)送端根據(jù)此中間密鑰,利用公共密鑰導算出加密密鑰,再對傳輸信息作傳輸認證。如果系統(tǒng)設計合理,附加的認證信息除具有認證功能外,不應具有檢錯甚至糾錯功能。認證傳輸方式原理見下圖。
認證傳輸方式具有如下特點:一是傳輸?shù)男畔槊魑?,不具有保密性;二是附加認證信息可以具有信息認證、檢錯、糾錯等多種功能,但決不是一般的冗余校驗。
加密傳輸方式
加密傳輸方式就是將信息加密之后再進行傳輸。加密之后的信息具有保密性,但不具備檢錯、糾錯等功能。此外,在一種具體的IC卡應用中可能同時存在幾種傳輸方式,此次傳輸所使用的傳輸方式必須在信息頭中說明,所以應用加密傳輸方式時的信息頭或部分信息頭不能被加密,否則接收端將因無法確認傳輸方式而不能正確地接收信息。
混合傳輸方式
混合傳輸方式就是將認證傳輸方式和加密傳輸方式的優(yōu)點結(jié)合起來,對待傳輸?shù)男畔⒓日J證又加密。一般在具體實施時先對信息進行認證然后再加密,其工作原理見圖4-6。
因為這幾種信息傳輸方式主要是以時間及空間換來信息傳輸安全的,所以在一種IC卡具體應用中,完全可以視不同情況交替使用或根本不使用這幾種信息傳輸方式。
信息認證與授權
信息認證的目的是防止信息被篡改、偽造、或信息接收方事后否認。特別是對于某些開放環(huán)境中的信息系統(tǒng)來講,確保其認證十分重要。認證技術是現(xiàn)代各種計算機通訊網(wǎng)絡、辦公自動化、電子資金轉(zhuǎn)帳系統(tǒng)、自動零售服務網(wǎng)絡等系統(tǒng)設計中的重要組成部分。今后,在IC卡應用系統(tǒng)中必將廣泛使用。信息認證主要有以下兩種方式。
信息驗證
防止信息被篡改,保證信息的完整性,使得有意或無意地篡改了信息后接收者可以發(fā)現(xiàn),其中最簡單的為純認證系統(tǒng)。
采用該認證系統(tǒng)的關鍵在于防止認證碼的破譯,必須有良好的認證算法和密鑰。它將信息通過密鑰和某一特定算法進行加密后壓縮成一個“信息摘要”,附加在信息之后,接收方收到信息和“信息摘要”之后,用相同的密鑰和算法對信息進行驗證,如果信息被篡改,必然與所附“信息摘要”不符,可以及時發(fā)現(xiàn)。例如,可以利用DES算法作信息驗證,如果信息過長,可用Hash算法先對信息進行壓縮,再進行驗證運算。
為沒有防范進行信息驗證雙方的任何措施,純認證系統(tǒng)必須建立在雙方互相信賴的基礎上。當然,純認證系統(tǒng)主要是針對來自進行信息驗證雙方以外因素的有意或無意的破壞、干擾等。
數(shù)字電子簽名
目前,越來越多的敏感數(shù)據(jù)和文檔使用電子服務設施,如電子郵件、電傳等進行信息處理和傳輸,這也使得電子簽名變得特別重要和迫切。
A方要發(fā)送一個信息給B方,既要防止B方或第三方偽造,又要防止A方事后因?qū)ψ约翰焕裾J,通常采用數(shù)字簽名的方法解決這一問題。
數(shù)字簽名必須滿足三個條件;
收方應能確認發(fā)方的簽名,但不能偽造(收方條件);
發(fā)方發(fā)送簽名信息后,不能否認他已簽名的信息(發(fā)方條件);
公證方能確認收發(fā)雙方的信息,作出促裁,但不能偽造成這一過程(公證條件)。
為實現(xiàn)數(shù)字簽名,用上面的純驗證技術還不行,一般用公鑰密碼方案解決。用戶A設計好公鑰密碼方案棗如選用RSA算法,設計好加密密鑰E、解密密鑰D并將有關算法及加密密鑰或公布或單獨發(fā)放給B。對于信息M,A方用解密密鑰D計算D(M),發(fā)給B方,B方用A方發(fā)放的加密密鑰E計算E((D(M)=M,此時,B方掌握了D(M)和M。因為只有A掌握了解密密鑰,其它人包括B都無法偽造,如果A方事后否認,B方可以用D(M)和M訴之于公證人裁決。反之,B也可以設計自己的簽名方案并發(fā)放給A。
數(shù)字電子簽名必須禁止除了原始發(fā)送者之外的其他人員再產(chǎn)生此次簽名,還必須有一個個人化特性并被每一人校驗。為避免拷貝,不僅不同的文本給以不同的簽名,而且同樣的文本也必須給以不同的簽名,以區(qū)別不同的版本,例如,兩個據(jù)有同樣內(nèi)容的電子公函。
若被簽名的文本過長超過了定義的簽名串時,可以利用Hash算法對文本進行適當?shù)膲嚎s處理等。
智能IC卡特別適用于改善計算機、信息通訊系統(tǒng)等的安全性。其中一個最重要的應用就是利用數(shù)字簽名機制達到文檔的合法接收,類似的應用領域還有貿(mào)易、金融、辦公自動化等。
這種數(shù)字電子簽名并無保密功能。若要保密,則需對簽名的密文再進行加密。
數(shù)據(jù)加密標準DES與DES算法理論
數(shù)據(jù)加密標準DES
美國國家標準局1973年開始研究除國防部外的其它部門的計算機系統(tǒng)的數(shù)據(jù)加密標準,于1973年5月15日和1974年8月27日先后兩次向公眾發(fā)出了征求加密算法的公告。加密算法要達到的目的(通常稱為DES 密碼算法要求)主要為以下四點:
提供高質(zhì)量的數(shù)據(jù)保護,防止數(shù)據(jù)未經(jīng)授權的泄露和未被察覺的修改;
具有相當高的復雜性,使得破譯的開銷超過可能獲得的利益,同時又要便于理解和掌握;
DES密碼體制的安全性應該不依賴于算法的保密,其安全性僅以加密密鑰的保密為基礎;
實現(xiàn)經(jīng)濟,運行有效,并且適用于多種完全不同的應用。
1977年1月,美國政府頒布:采納IBM公司設計的方案作為非機密數(shù)據(jù)的正式數(shù)據(jù)加密標準(DES棗Data Encryption Standard)。
DES算法理論
本世紀五十年代以來,密碼學研究領域出現(xiàn)了最具代表性的兩大成就。其中之一就是1971年美國學者塔奇曼 (Tuchman)和麥耶(Meyer)根據(jù)信息論創(chuàng)始人香農(nóng)(Shannon)提出的“多重加密有效性理論”創(chuàng)立的,后于1977年由美國國家標準局頒布的數(shù)據(jù)加密標準?/FONT>DES。
DES密碼實際上是Lucifer密碼的進一步發(fā)展。它是一種采用傳統(tǒng)加密方法的區(qū)組密碼。
它的算法是對稱的,既可用于加密又可用于解密。圖4-1是它的算法粗框圖。其具體運算過程有如下七步。
DES算法第一步、第二步、第三步
DES算法第一步
輸入64個二進制位明碼文數(shù)據(jù)區(qū)組
T=t1t2…t64
按初始換位表IP進行換位,得到區(qū)組B(0):
B(0)=b1(0)b2(0)…b64(0)=t58t50…t7
初始換位表IP
(略)
DES算法第二步
設B(i)=b1(i)b2(i)…b64(i)是第i+1次迭代的64個二進制位輸入?yún)^(qū)組,將B(i)分為左右兩個大小相等的部分,每部分為一個32位二進制的數(shù)據(jù)塊
L(i)=l1(i)l2(i)…l32(i)= b1(i)b2(i)…b32(i)
R(i)=r1(i)r2(i)…r32(i)=b33(i)b34(i)…b64(i)
把R(i)視為由8個4位二進制的塊組成
r1(i)r2(i) r3(i)r4(i)
r5(i)r6(i) r7(i)r8(i)
…
r29(i)r30(i) r31(i)r32(i)
通過循環(huán)抄錄相鄰塊的相鄰塊,把它們再擴充為8個6位二進制的塊
r32(i)r1(i) r2(i)r3(i) r4(i)r5(i)
r4(i)r5(i) r6(i)r7(i) r8(i)r9(i)
…
r28(i)r29(i) r30(i)r31(i) r32(i)r1(i)
用E(R(i))表示這個變換,稱為擴充函數(shù)。
擴充函數(shù)E
(略)
DES算法第三步:卡型分類
在第i+1次迭代中,用48位二進制的密鑰
K(i+1)=k1(i+1)k2(i+1)…k48(i+1)
與E(R(i))按位相加(邏輯異或),得
r32(i)+ k1(i+1) r1(i) +k2(i+1) …r5(i) +k6(i+1)
r4(i)+ k7(i+1) r5(i) +k8(i+1) …r9(i) +k12(i+1)
....
r28(i)+ k48(i+1) r29(i) +k44(i+1) …r1(i) +k48(i+1)
DES算法第四步
第四步:將以上第j個(1≤j≤6位二進制的塊(記為Z=zj1 zj2 zj3 zj4 zj5 zj6)輸入第個j個替代函數(shù)Sj(表4-3)。各替代函數(shù)Sj的功能是把6位數(shù)變換成4位數(shù),做法是以zj1 zj6為行號,zj2 zj3 zj4 zj5為列號,查找Sj,行列交叉處即是要輸出的4位數(shù)。
表4-3 替代函數(shù)
(略)
DES算法第五步
八個替代函數(shù)Sj(1≤j≤8)的輸出拼接為32位二進制數(shù)據(jù)區(qū)組
y1(i)y2(i)…y32(i)
把它作為換位函數(shù)P(表4-4)的輸入,得到輸出
X(i)=x1(i)x2(i)…x32(i) =y16(i)y17(i)…y25(i)
若把第二至第五步的變換記為,(X(i)=f(R(i),K(i+1)) ),則它的計算流程可用圖4-2表示
計算f(R(i),K(i+1))的框圖
DES算法第六步
把L(i)與X(i)按位相加,形成R(i+1),且令R(i)為L(i+1),即得到經(jīng)第i+1次迭代加密后的輸出L(i+1)R(i+1),其中
L(i+1)= R(i)
R(i+1)= L(i)⊕f(R(i),K(i+1)) (2.1)
(i=0,1,2,…,15)
我們可以看出,DES密碼體制的每一次迭代都用替代法和換位法和換位法對上一次迭代的輸出進行加密變換。用硬件實現(xiàn)DES算法時,實際上用替代盒實現(xiàn)替代函數(shù)Sj(1≤j≤8),用換位盒實現(xiàn)換位函數(shù)P。為了使最后輸出的密碼文與原始輸入的明碼文沒有明顯的函數(shù)關系,DES算法采用16次迭代。在前15次迭代中,式(2.1)中的L(i)表示左32位,R(i)表示右32位。對最后一次迭代,L(16)表示右32位,R(16)表示左32位,即在最后一次迭代時不再左右交換,以保證加密和解密的對稱性。
DES算法第七步
對R(16)L(16)作逆初始換位IP-1,得到密碼文。
逆初始換位表IP-1
(略)
由式(2.1)知
R(i)= L(i+1)
L(i)= R(i+1)⊕f (L(i),K(i+1))
(i=15,14,…,0)
因此解密算法與加密算法相同,僅密鑰的使用順序相反而已。
DES算法密鑰計算
在每次迭代中要用到48位的密鑰
K(i)=k1(i)k2(i)…k48(i)
(i=15,14,…,0)
它們是根據(jù)64位原始密鑰
K=k1k2…k64
計算出來的,其中所有8的倍數(shù)位k8,k16,…,k64用作奇偶校驗位。圖4-3為計算密鑰K(i)的流程圖。
第一步:首先舍棄原始密鑰K中的所有奇偶校驗位,經(jīng)換位選擇1(表4-6)處理,變成C(0),D(0)兩個各28位的數(shù)據(jù)區(qū)組,其中
C(0)=c1(0)c2(0)… c28(0) =k57k49…k36
D(0)=d1(0)d2(0)… d28(0) =k63k55…k4
第二步:C(0)、D(0)各作σ(1)位左循環(huán)移位(表4-7),得
C(1)= λσ(1)C(0)
D(1)= λσ(1)D(0)
第三步:拼接C(1)、D(1),得
E(1)=e1(1)e2(1)… e56(1) =c1(1)c2(1)… c28(1) d1(1)d2(1)… d28(1)
用換位選擇2(表4-8)從中選出48位,形成第一次迭代使用的加密密鑰
K(1)=k1(1)k2(1)… k48(1) =e14(1)e17(1)… e32(1)
第四步:用同樣方法遞推地產(chǎn)生第i次(i=2,…16)迭代的密鑰。
加密計算和密鑰計算匯總在一起,DES的運算過程可以簡單地總括如下:
第一步:初始輸入
從外部輸入64位原始密鑰k1k2…k64,其中56位是密鑰位,8位是奇偶校驗位;
由k1k2…k64依次計算出16個48位密鑰K(1),K(2),…K(16)分別用于第1至于16次迭代;
從外部輸入64位明碼文t1t2…t64;
對t1t2…t64做初始換位,然后分成各32位的L(0),R(0);
迭代計數(shù)器置1。
第二步:迭代
把擴充函數(shù)作用于R(i-1),得E(R(i-1));
若執(zhí)行加密操作,則選用K(i);若執(zhí)行解密操作,則選用K(17-i);
計算E(R(i-1))⊕K(i),得48位的數(shù)據(jù)區(qū)組
Z(i)=z1(i)z2(i)… z48(i)
將Z(i)分組分別通過相應的Sj,得到32位的數(shù)據(jù)區(qū)組
Y(i)=y1(i)y2(i)… y32(i)
將換位函數(shù)P作用于Y(i),得
X(i)=P(Y(i))
計算R(i)= X(i)⊕L(i-1);
令L(i)= R(i-1);
迭代計數(shù)器加1;
如果迭代計數(shù)器小于等于16,則重做(6)至(14)。否則,將(R(16)L(16))經(jīng)逆初始換位作用之后輸出。
DES算法實現(xiàn)與DES密碼的破解
DES算法實現(xiàn)
DES算法可以按四種操作模式之一使用,這四種操作模式是電子密文、密碼分組鏈接、輸出反饋及密文反饋。其中,電子密文是最簡單的模式,安全性也最差;密碼分組鏈接則經(jīng)常以軟件方法實現(xiàn);輸出反饋和密文反饋往往在硬件實現(xiàn)的算法中實現(xiàn)。
DES公布之后,制造有關DES設備的廠商已達幾十家,大部分用于加密敏感信息。隨著DES應用的日益擴大,各種DES專用芯片也應運而生。這種DES芯片價格便宜、加密解密速度快,在有關產(chǎn)品中使用十分廣泛。
不但可以用硬件而且也可以用軟件實現(xiàn)DES算法。
DES密碼的破解
在對DES密碼進行鑒定的期間,美國國家保密局和計算機科學技術學會組織各界專家研究了DES密碼體制的安全性問題,討論了破譯DES密碼體制的一切可能途徑。盡管有些專家和學者對它的安全性仍持懷疑態(tài)度,但官方卻得出了十分樂觀的結(jié)論。他們宣布:“沒有任何可以破譯DES密碼體制的系統(tǒng)分析法。若使用窮舉法,則在1990年以前基本上不可能產(chǎn)生出每天能破譯一個DES密鑰的專用計算機。即使屆時能制造出這樣的專用機,它的破譯成功率也只會在0.1到0.2之間,而且造價可能高達幾千萬美元?!?BR>
先我們考慮用窮舉法破譯DES 密碼的問題。設已知一段密碼文C及與它對應的明碼文M,用一切可能的密鑰K加密M,直到得到E(M)=C,這時所用的密鑰K即為要破譯的密碼的密鑰。窮舉法的時間復雜性是T=O(n),空間復雜性是S=O(1)。對于DES密碼,n=256≈7×1016,即使使用每秒種可以計算一百萬個密鑰的大型計算機,也需要算106天才能求得所使用的密鑰,因此看來是很安全的。但是Diffie和Hellman指出,如果設計一種一微秒可以核算一個密鑰的超大規(guī)模集成片,那么它在一天內(nèi)可以核算8.64×1010個密鑰。如果由一個百萬個這樣的集成片構(gòu)成專用機,那么它可以在不到一天的時間內(nèi)用窮舉法破譯DES密碼。他們當時(1977年)估計:這種專用機的造價約為兩千萬美元。如果在五年內(nèi)分期償還,平均每天約需付一萬美元。由于用窮舉法破譯平均只需要計算半個密鑰空間,因此獲得解的平均時間為半天。這樣,破譯每個DES密碼的花銷只是五千美元。后來,Diffie在1981年又修改了他們的估計,認為以1980年的技術而論,用造價為五千萬美元的專用機破譯DES密碼平均要花兩天時間。但是他與Hellman都預計:1990年時,破譯DES密碼的專用機的造價將大幅度下降。
計算及科學家Tanenbaum指出,即使沒有這種專用機,也可以用窮舉法破譯DES。
DES密碼反破譯的策略
DES算法頒布之后,引起了學術界和企業(yè)界的廣泛重視。許多廠家很快生產(chǎn)出實現(xiàn)DES算法的硬件產(chǎn)品,廣大用戶在市場上買到高速而又廉價的DES硬件產(chǎn)品之后,開始用它加密自己的重要數(shù)據(jù),從而大大推廣了密碼技術的使用。
學術界對DES密碼進行了深入的研究,圍繞它的安全性和破譯方法展開了激烈的爭論,在一定意義上對密碼學的理論研究也起了推動作用。
自DES算法1977年首次公諸于世以來,人們一直對DES的安全性持懷疑態(tài)度,對密鑰的長度、迭代次數(shù)及S盒的設計縱說紛紜。從技術上說,對DES的批評主要集中在以下三個方面。
作為區(qū)組密碼,DES的加密單位僅有64位二進制,這對于數(shù)據(jù)傳輸來說太小,因為每個區(qū)組僅含8個字符,而且其中某些位還要用于奇偶校驗或其他通訊開銷。
密鑰僅有56位二進制未免太短,各次迭代中使用的密鑰K(i)是遞推產(chǎn)生的,這種相關必降低了密碼體制的安全性。目前,有人認為:在現(xiàn)有的技術條件下用窮舉法尋找正確密鑰已趨于可行,所以若要安全保護10年以上的數(shù)據(jù)最好不用DES算法。
實現(xiàn)替代函數(shù)Si所用的S盒的設計原理尚未公開,其中可能留有隱患。更有人擔心DES算法中有“陷阱”,知道秘密的人可以很容易地進行密文解密。
針對以上DES的缺陷,人們提出了解幾種增強DES安全性的方法,主要有以下三種。
三重DES算法
用三個不同密鑰的三重加密,即為:
C=Ek3(Dk2(Ek1P))
P=Dk1(Ek2(Dk3C))
此方法為密碼專家默克爾(Merkle)及赫爾曼(Hellman)推薦。據(jù)稱,目前尚無人找到針對此方案的攻擊方法。
具有獨立子密鑰的DES算法
每一輪迭代都使用一個不同的子密鑰,而不是由一個56位二進制的密鑰產(chǎn)生。由于16輪迭代的每一使用一個48位二進制的密鑰,所以這一方法可以增強DES的加密強度。但據(jù)密碼專家比哈姆(Biham)及沙米爾(Shamir)證明利用261個選擇明文便可破譯這個DES變形,而不是人們所希望的2768個選擇明文。
帶用交換S盒的DES算法
比哈姆和沙米爾證明通過優(yōu)化S盒的設計,甚至S盒本身的順序,可以抵抗差分密碼分析,以達到進一步增強DES算法的加密強度的目的。
其它分組密碼算法
隨著DES的逐漸衰老,分組密碼的研究也在不斷深入。在DES之后,近年來國際上又相繼提出了多種新的分組密碼體制,見表4-10。在這些分組密碼中,有的已被破譯,有的仍具有較高的安全性。下面對這此算法作一簡介。
FEAL-8密碼
FEAL密碼算法家族是日本NTT(日本電報電話公司)的清水(Shimizi)和宮口(Miyaguchi)設計的。作為一種分組密碼,與DES相比其主要想法為增加每一輪迭代的算法強度,因此可以通過減少迭代次數(shù)而提高運算速度。
FEAL-8即為8輪迭代的FEAL密碼算法。FEAL密碼算法推出之后,引起有關專家的注意。密碼專家比哈姆和沙米爾利用養(yǎng)分密碼分析技術發(fā)現(xiàn),可以用比窮舉法更快的速度破譯FEAL密碼。如FEAL-8只需2000個選擇明文即可破譯,而FEAL-4更只需8個精心選擇的明文便可破譯。
目前,F(xiàn)EAL已經(jīng)取得了專利。
LOKI算法
LOKI算法作為DES的一種潛在替代算法于1990年在密碼學界首次亮相。LOKI同DES一樣以64位二進制分組加密數(shù)據(jù),也使用64位密鑰(只是其中無奇偶校驗位),所有64位均為密鑰。LOKI密碼公布之后,有關專家對其進行了研究破譯并證明不大于14輪的LOKI算法極易受到差分密碼分析的攻擊等。不過,這仍然優(yōu)于56位密鑰的DES。LOKI較新的成果版本是LOKI-91。
LOKI尚未取得專利,任何人都可以使用該算法。有意在商用產(chǎn)品中使用設計者基準方案的人士,可以與澳大利亞堪培拉國防學院計算機科學系西特拉德主任聯(lián)系。
Khufu和Khafre算法
1990年由默克爾(Merhie)設計的這對算法具有較長的密鑰,適合于軟件實現(xiàn),比較完全可靠。Khufu算法的總體設計同DES,只是擁有512位(64字節(jié))的密鑰。Khafre算法與前者類似,預定用于不能預先計算的場合。由于Khufu算法具有可變的S盒,可以抵抗差分密碼分析的攻擊。據(jù)了解目前尚無以該算法為目標的其它密碼分析成果。
這對密碼算法都已取得專利,算法的原碼在專利之中。對使用這對算法感興趣的人士,可以與施樂(Xerox)公司專利許可證發(fā)放部的彼得(Petre)主任聯(lián)系。
IDEA算法
1990年賴學家(XueJia Lai)和梅西(Massey)開發(fā)的IDEA密碼首次成形,稱為PES,即“建議的加密標準”。次年,根據(jù)有關專家對這一密碼算法的分析結(jié)果,設計者對該算法進行了強化并稱之為IPES,即“改進的建議加密標準”。該算法于1992年更名為IDEA,即“國際加密標準”。
IDEA算法的密鑰長度為128位。設計者盡最大努力使該算法不受差分密碼分析的影響,賴學家已證明IDEA算法在其8輪迭代的第4輪之后便不受差分密碼分析的影響了。假定窮舉法攻擊有效的話,那么即使設計一種每秒種可以試驗10億個密鑰的專用芯片,并將10億片這樣的芯片用于此項工作,仍需1013年才能解決問題;另一方面,若用1024片這樣的芯片,有可能在一天內(nèi)找到密鑰,不過人們還無法找到足夠的硅原子來制造這樣一臺機器。目前,尚無一片公開發(fā)表的試圖對IDEA進行密碼分析的文章。因此,就現(xiàn)在來看應當說IDEA是非常安全的。
IDEA分組密碼已在歐洲取得專利,在美國的專利還懸而未決,不存在非商用所需的使用許可證費用問題。對使用IDEA算法有興趣的商業(yè)用戶可以與瑞士Solothurm實驗室的普羅福斯主任(Profos)聯(lián)系。
本文關鍵詞:智能卡數(shù)字加密技術