您的位置-->>技術文章

智能卡IC卡的數字加密安全技術分析
发布时间:2009-4-19 13:38:37 浏览次数:

加密技術分類

密碼學發展至今,産生了很多密碼算法。有的算法已在學術刊物中披露,而更多的卻作爲軍事、商業及貿易等秘密被嚴加保密。現代密碼可以综合爲序列密碼、分組密碼及公共密鑰密碼三種類型,同時與密碼技術相關聯的還有密鑰管理和密碼分析。

序列密碼

序列密碼是指使用少量的密钥(制乱元素)通过某种庞大的运算(密码算法)产生大批的伪随机位流,用于对明文位流的加密。解密是指用同样的密钥和密码算法及与加密雷同的伪随机位流,用以后原明文位流。

序列密碼由密钥和密码算法两部分组成。密钥在每次使用之前都要改换,一般存储在密码设备内部或从外部输入密码设备。密码算法在较长时间内是固定的。密钥的灵活改换是这一密码算法的活泼因素,而安全保密的关键则在于密码算法的庞大性。序列密碼一般应满足三个方面的要求:一是足够长的周期;二是较高的庞大性;三是产生的密钥流适合随机检验的要求。

序列密碼的优点是运算速度快,密文传输中的毛病不也许在明文中产生扩散。其弱点是密钥改换过于频繁,密钥分配较难。由于序列密碼历史悠久,理论完善,目前仍是国际密码应用的主流。

分組密碼

分組密碼是将明文按一定的位长分组,明文组和密钥组的全部通过加密运算获得密文组。解密时密文组和密钥组通过解密运算(加密运算的逆运算),还原成明文组。

分組密碼的优点是:密钥可以在一定时间内固定,不用每次改换,因此给密钥配发带来了便宜。但是,由于分組密碼存在着密文传输毛病在明文中扩散的问题,因此在信道质量较差的情况下无法使用。

DES密码就是1977年由美国国家标准局公布的第一个分組密碼。

公共密鑰密碼

无论是序列密碼依然分組密碼,其加密讲和密密钥均是雷同的,因此必须严格保密,且要经安全渠道配发,这在跨越很大的地理位置上应用是一个难以解决的问题。1976年有人提出了公共密鑰密碼体制,其原理是加密密钥讲和密密钥分离。如此,一个的确用户就可以将自己设计的加密密钥和算法公诸于众,而只保密解密密钥。任何人使用那个加密密钥和算法向该用户发送的加密信息,该用户均可以将之还原。因此,人们通常也将这种密码体制称为双密钥密码体制或非对称密码体制;与此相对应,将序列密碼和分組密碼等称为单密钥密码体制或对称密钥密码体制。

公共密鑰密碼的优点是不需要经安全渠道传递密钥,大大简化了密钥管理。它的算法有时也称为公开密钥算法或简称为公钥算法。

1978年有人提出了公共密鑰密碼的的确实施方案,即RSA方案。

1991年提出的DSA算法也是一種公共密鑰算法,在數字簽名方面有較大的應用優勢。

目前,國際上在智能IC卡上應用得較多的加密解密算法是DES算法、RSA算法及DSA算法。下面面向應用重點介紹這三種算法,並對其它有關算法作一簡要介紹。。

密碼技術在IC卡上的應用模式

在IC卡特別是智能卡應用方面,信息安全的保密性、完整性及可獲取性等都涉及到密碼技術。密碼技術在有關IC卡的安全應用要紧有信息傳輸保護、信息認證及信息授權(數字電子簽名)等幾種要紧模式。

目前,隨著網絡技術的飛速發展,網絡應用已深入到社會的各個領域,而INTERNET更是逐步走入千家萬戶。在這樣一個網絡信息平台上,人們迫切希望獲得真實、安全、可靠的信息,密碼技術和IC卡技術的結合必將成爲在這一平台上保護信息安全的重要技術手段。

密碼技術和IC卡,特別是智能IC卡技術的結合必將具有非常廣闊的應用和發展前景。

信息傳輸保護

對IC卡處理、傳輸的信息進行保護是密碼應用最重要的方面。采用密碼技術的基本思想是將保護大批的明文信息問題轉化爲保護少量密鑰信息的問題,使得信息保護問題易于解決。

爲预防對傳輸信息的非法截取,采用密碼技術對傳輸信息進行加密保護,使得非法截取的信息成爲不可讀、不可知具有非常重要性意義。

第一,因爲IC卡的應用和計算機紧密相關,並且其中有点安全保護概念就來源于此,因此先對計算機網絡的傳輸加密作一簡單介紹。計算機網絡中的傳輸加密,通常分爲鏈路加密和端端加密。鏈路加密是對通過每條鏈路的全部信息進行加密;端端加密是在信息發送的起點加密,在信息接收點解密。鏈路加密的優點是全部信息包括信息頭都加密,在每條鏈路上流經的基本上密文信息;缺點是信息每經過一個節點就要解密,然後再加密,因此,在信息傳輸的每一個節點上信息要暴露。端端加密的優點是信息在每一節點上都不暴露,缺點是信息頭不能加密。爲了安全,也有將兩種方法結合使用的。

與此相對應,在智能IC卡上也存在著類似的傳輸信息保護方法,一般有三種方法:一是認證傳輸方法(AuthenticTransmitMode);二是加密傳輸方法(EncipherTransmitMode);三是混合傳輸方法(MixedTransmitMode)。

認證傳輸方法

認證傳輸方法就是将在接口设备(IFD)和IC卡(ICC)之间传输的信息附加上相应的认证信息。在IFD和ICC之间传输的信息可以简单分为两部分:一是信息头,要紧为传输控制信息,如传输方法等;二是信息主体。

在認證傳輸方法中,发送端使用相应的加密算法及加密密钥将待传输信息的信息头和信息主体进行加密,获得的密文附加在明文信息尾部传输给接收端。接收端收到该信息后按发送相反的顺序对接收到的信息进行认证,认证通过则进行相应处置,要不然回送相应毛病信息。

在的确的智能IC卡应用中,信息发送、接收端则分别为IFD或ICC,采用不同的加密算原理密钥分配、工作顺序也不雷同。以采用DES算法为例,认证传输的前提就是在IFD和ICC之间有一公共密钥,在每次认证传输之前,发送端向接收端请求一中间密钥,发送端依据个中间密钥,使用公共密钥导算出加密密钥,再对传输信息作传输认证。如果系统设计有理,附加的认证信息除具有认证功能外,不应具有检错甚至纠错功能。認證傳輸方法原理见下图。

認證傳輸方法具有如下特点:一是传输的信息为明文,不具有保密性;二是附加认证信息可以具有信息认证、检错、纠错等多种功能,但决不是一般的冗余校验。

加密傳輸方法

加密傳輸方法就是将信息加密之后再进行传输。加密之后的信息具有保密性,但不具备检错、纠错等功能。另外,在一种的确的IC卡应用中也许同时存在几种传输方法,此次传输所使用的传输方法必须在信息头中阐明,因此应用加密傳輸方法时的信息头或部分信息头不能被加密,要不然接收端将因无法确认传输方法而不能准确地接收信息。

混合傳輸方法

混合傳輸方法就是将認證傳輸方法和加密傳輸方法的优点结合起来,对待传输的信息既认证又加密。一般在的确实施时先对信息进行认证接着再加密,其工作原理见图4-6。

因爲這幾種信息傳輸方法主假如以時間及空間換來信息傳輸安全的,因此在一種IC卡具體應用中,完全可以視不同情況交替使用或全然不使用這幾種信息傳輸方法。

信息認證與授權

信息認證的目的是预防信息被改篡、僞造、或信息接收方事後否認。特別是對于某些開放環境中的信息系統來講,確保其認證非常重要。認證技術是現代各種計算機通訊網絡、辦公自動化、電子資金轉帳系統、自動零售服務網絡等系統設計中的重要組成部分。今後,在IC卡應用系統中必將廣泛使用。信息認證要紧有以下兩種方法。

信息驗證

预防信息被改篡,保證信息的完整性,使得有意或無意地改篡了信息後接收者可以發現,其中最簡單的爲純認證系統。

采用该认证系统的关键在于预防认证码的破译,必须有良好的认证算法和密钥。它将信息通过密钥和某一特定算法进行加密后压缩成一个“信息摘要”,附加在信息之后,接收方收到信息和“信息摘要”之后,用雷同的密钥和算法对信息进行验证,如果信息被改篡,必定与所附“信息摘要”不符,可以即时发现。例如,可以使用DES算法作信息驗證,如果信息过长,可用Hash算法先对信息进行压缩,再进行验证运算。

为没有防护进行信息驗證双方的任何措施,纯认证系统必须建立在双方相互信赖的基础上。当然,纯认证系统主假如针对来自进行信息驗證双方以外因素的有意或无意的破坏、干扰等。

數字電子簽名

目前,越來越多的敏锐數據和文檔使用電子服務設施,如電子郵件、電傳等進行信息處理和傳輸,這也使得電子簽名變得特別重要和迫切。

A方要發送一個信息給B方,既要预防B方或第三方僞造,又要预防A方事後因對自己不顺而否認,通常采用數字簽名的方法解決這一問題。

數字簽名必須滿足三個條件;

收方應能確認發方的簽名,但不能僞造(收方條件);

發方發送簽名信息後,不能否認他已簽名的信息(發方條件);

公證方能確認收發雙方的信息,作出促裁,但不能僞造成這一過程(公證條件)。

爲實現數字簽名,用上面的純驗證技術還不行,一般用公鑰密碼方案解決。用戶A設計好公鑰密碼方案棗如選用RSA算法,設計好加密密鑰E、解密密鑰D並將有關算法及加密密鑰或公布或單獨發放給B。對于信息M,A方用解密密鑰D計算D(M),發給B方,B方用A方發放的加密密鑰E計算E((D(M)=M,此時,B方掌握了D(M)和M。因爲只有A掌握了解密密鑰,其它人包括B都無法僞造,如果A方事後否認,B方可以用D(M)和M訴之于公證人裁決。反之,B也可以設計自己的簽名方案並發放給A。

數字電子簽名必须禁止除了原始发送者之外的其他人员再产生此次签名,还必须有一个个人化特征并被每一人校验。为幸免拷贝,不仅不同的文本给以不同的签名,同时同样的文本也必须给以不同的签名,以区别不同的版本,例如,两个据有同样内容的电子文牍。

若被簽名的文本過長超過了定義的簽名串時,可以使用Hash算法對文本進行適當的壓縮處理等。

智能IC卡特別適用于改善計算機、信息通訊系統等的安全性。其中一個最重要的應用就是使用數字簽名機制達到文檔的合法接收,類似的應用領域還有貿易、金融、辦公自動化等。

这种數字電子簽名并无保密功能。若要保密,则需对签名的密文再进行加密。

數據加密標准DES與DES算法理論

數據加密標准DES

美國國家標准局1973年開始研究除國防部外的其它部門的計算機系統的數據加密標准,于1973年5月15日和1974年8月27日先後兩次向公衆發出了征求加密算法的公报。加密算法要達到的目的(通常稱爲DES密碼算法要求)要紧爲以下四點:

提供高質量的數據保護,预防數據未經授權的泄露和未被察覺的修改;
具有相當高的複雜性,使得破譯的開銷超過也许獲得的利益,同時又要便于明白和掌握;

DES密碼體制的安全性應該不依賴于算法的保密,其安全性僅以加密密鑰的保密爲基礎;

實現經濟,運行有效,並且適用于多種完全不同的應用。

1977年1月,美國政府頒布:采納IBM公司設計的方案作爲非機密數據的正式數據加密標准(DES棗DataEncryptionStandard)。

DES算法理論

本世紀五十年代以來,密碼學研究領域出現了最具代表性的兩大成就。其中之一就是1971年美國學者塔奇曼(Tuchman)和麥耶(Meyer)根據信息論創始人香農(Shannon)提出的“多重加密有效性理論”創立的,後于1977年由美國國家標准局頒布的數據加密標准?/FONT>DES。

DES密碼實際上是Lucifer密碼的進一步發展。它是一種采用傳統加密方法的區組密碼。

它的算法是對稱的,既可用于加密又可用于解密。圖4-1是它的算法粗框圖。其具體運算過程有如下七步。

DES算法第一步、第二步、第三步

DES算法第一步

輸入64個二進制位明碼文數據區組
T=t1t2…t64

按初始換位表IP進行換位,获得區組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個二進制位輸入區組,將B(i)分爲左右兩個大小相等的部分,每部分爲一個32位二進制的數據塊

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)

通過循環抄錄相鄰塊的相鄰塊,把它們再擴充爲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))表达這個變換,稱爲擴充函數。

擴充函數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=zj1zj2zj3zj4zj5zj6)輸入第個j個替代函數Sj(表4-3)。各替代函數Sj的功能是把6位數變換成4位數,做法是以zj1zj6爲行號,zj2zj3zj4zj5爲列號,查找Sj,行列交叉處即是要輸出的4位數。

DES算法第五步

八個替代函數Sj(1≤j≤8)的輸出拼接爲32位二進制數據區組

y1(i)y2(i)…y32(i)

把它作爲換位函數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),即获得經第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密碼體制的每一次叠代都用替代法和換位法和換位法對上一次叠代的輸出進行加密變換。用硬件實現DES算法時,實際上用替代盒實現替代函數Sj(1≤j≤8),用換位盒實現換位函數P。爲了使最後輸出的密碼文與原始輸入的明碼文沒有明顯的函數關系,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)

它們是根據64位原始密鑰K=k1k2…k64

計算出來的,其中所有8的倍數位k8,k16,…,k64用作奇偶校驗位。圖4-3爲計算密鑰K(i)的流程圖。

第一步:第一舍棄原始密鑰K中的所有奇偶校驗位,經換位選擇1(表4-6)處理,變成C(0),D(0)兩個各28位的數據區組,其中

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)位左循環移位(表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)

第四步:用同樣方法遞推地産生第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);

叠代計數器置1。

第二步:叠代

把擴充函數作用于R(i-1),得E(R(i-1));

若執行加密操作,則選用K(i);若執行解密操作,則選用K(17-i);

計算E(R(i-1))⊕K(i),得48位的數據區組
Z(i)=z1(i)z2(i)…z48(i)

將Z(i)分組分別通過相應的Sj,获得32位的數據區組

Y(i)=y1(i)y2(i)…y32(i)

將換位函數P作用于Y(i),得

X(i)=P(Y(i))

計算R(i)=X(i)⊕L(i-1);
令L(i)=R(i-1);

叠代計數器加1;

如果叠代計數器小于等同16,則重做(6)至(14)。否則,將(R(16)L(16))經逆初始換位作用之後輸出。

DES算法實現與DES密碼的破解

DES算法實現

DES算法可以按四種操作模式之一使用,這四種操作模式是電子密文、密碼分組鏈接、輸出反饋及密文反饋。其中,電子密文是最簡單的模式,安全性也最差;密碼分組鏈接則經常以軟件方法實現;輸出反饋和密文反饋往往在硬件實現的算法中實現。

DES公布之後,制造有關DES設備的廠商已達幾十家,大部分用于加密敏锐信息。隨著DES應用的日益擴大,各種DES專用芯片也應運而生。這種DES芯片價格便宜、加密解密速度快,在有關中文产品中使用非常廣泛。不但可以用硬件同时也可以用軟件實現DES算法。

DES密碼的破解

在對DES密碼進行鑒定的期間,美國國家保密局和計算機科學技術學會組織各界專家研究了DES密碼體制的安全性問題,討論了破譯DES密碼體制的一切也许途徑。盡管有点專家和學者對它的安全性仍持懷疑態度,但官方卻得出了非常樂觀的結論。他們公布:“沒有任何可以破譯DES密碼體制的系統分析法。若使用窮舉法,則在1990年以前基本上不也许産生出天天能破譯一個DES密鑰的專用計算機。即使屆時能制造出這樣的專用機,它的破譯成功率也只會在0.1到0.2之間,同时造價也许高達幾千萬美元。”

先我們考慮用窮舉法破譯DES密碼的問題。設已知一段密碼文C及與它對應的明碼文M,用一切也许的密鑰K加密M,直到获得E(M)=C,這時所用的密鑰K即爲要破譯的密碼的密鑰。窮舉法的時間複雜性是T=O(n),空間複雜性是S=O(1)。對于DES密碼,n=256≈7×1016,即使使用每秒種可以計算一百萬個密鑰的大型計算機,也需要算106天才能求得所使用的密鑰,因此看來是很安全的。但是Diffie和Hellman指出,如果設計一種一微秒可以核算一個密鑰的超大規模集成片,那麽它在一天內可以核算8.64×1010個密鑰。如果由一個百萬個這樣的集成片構成專用機,那麽它可以在不到一天的時間內用窮舉法破譯DES密碼。他們當時(1977年)估計:這種專用機的造價約爲兩千萬美元。如果在五年內分期償還,均匀天天約需付一萬美元。由于用窮舉法破譯均匀只需要計算半個密鑰空間,因此獲得解的均匀時間爲半天。這樣,破譯每個DES密碼的花銷只是五千美元。後來,Diffie在1981年又修改了他們的估計,認爲以1980年的技術而論,用造價爲五千萬美元的專用機破譯DES密碼均匀要花兩天時間。但是他與Hellman都預計:1990年時,破譯DES密碼的專用機的造價將大幅度下降。

計算及科學家Tanenbaum指出,即使沒有這種專用機,也可以用窮舉法破譯DES。

DES密碼反破譯的策略

DES算法頒布之後,引起了學術界和企業界的廣泛重視。許多廠家很快生産出實現DES算法的硬件中文产品,廣大用戶在市場上買到高速而又廉價的DES硬件中文产品之後,開始用它加密自己的重要數據,從而大大推廣了密碼技術的使用。

學術界對DES密碼進行了深入的研究,圍繞它的安全性和破譯方法展開了猛烈的爭論,在一定意義上對密碼學的理論研究也起了推動作用。

自DES算法1977年首次公諸于世以來,人們一直對DES的安全性持懷疑態度,對密鑰的長度、叠代次數及S盒的設計縱說紛纭。從技術上說,對DES的批評要紧集中在以下三個方面。

作爲區組密碼,DES的加密單位僅有64位二進制,這對于數據傳輸來說太小,因爲每個區組僅含8個字符,同时其中某些位還要用于奇偶校驗或其他通訊開銷。

密鑰僅有56位二進制未免太短,各次叠代中使用的密鑰K(i)是遞推産生的,這種相關必降低了密碼體制的安全性。目前,有人認爲:在現有的技術條件下用窮舉法尋找正確密鑰已趨于可行,因此若要安全保護10年以上的數據最好不用DES算法。

實現替代函數Si所用的S盒的設計原理尚未公開,其中也许留有隱患。更有人擔心DES算法中有“陷阱”,知道秘密的人可以很容易地進行密文解密。

針對以上DES的缺陷,人們提出了解幾種增強DES安全性的方法,要紧有以下三種。

三重DES算法

用三個不同密鑰的三重加密,即爲:

C=Ek3(Dk2(Ek1P))
P=Dk1(Ek2(Dk3C))

此方法爲密碼專家默克爾(Merkle)及赫爾曼(Hellman)推薦。據稱,目前尚無人找到針對此方案的攻擊方法。

具有獨立子密鑰的DES算法

每一輪叠代都使用一個不同的子密鑰,而不是由一個56位二進制的密鑰産生。由于16輪叠代的每一使用一個48位二進制的密鑰,因此這一方法可以增強DES的加密強度。但據密碼專家比哈姆(Biham)及沙米爾(Shamir)證明使用261個選擇明文便可破譯這個DES變形,而不是人們所希望的2768個選擇明文。

帶用交換S盒的DES算法

比哈姆和沙米爾證明通過優化S盒的設計,甚至S盒自己的順序,可以抵抗差分密碼分析,以達到進一步增強DES算法的加密強度的目的。

其它分組密碼算法

随着DES的逐步衰老,分組密碼的研究也在不断深入。在DES之后,近年来国际上又相继提出了多种新的分組密碼体制,见表4-10。在这些分組密碼中,有的已被破译,有的仍具有较高的安全性。下面对这此算法作一简介。

FEAL-8密碼

FEAL密码算法家族是日本NTT(日本电报电话公司)的清水(Shimizi)和宫口(Miyaguchi)设计的。作为一种分組密碼,与DES相比其要紧办法为增加每一轮迭代的算法强度,因此可以通过减少迭代次数而提高运算速度。

FEAL-8即爲8輪叠代的FEAL密碼算法。FEAL密碼算法推出之後,引起有關專家的注重。密碼專家比哈姆和沙米爾使用養分密碼分析技術發現,可以用比窮舉法更快的速度破譯FEAL密碼。如FEAL-8只需2000個選擇明文即可破譯,而FEAL-4更只需8個精心選擇的明文便可破譯。

目前,FEAL已經取得了專利。

LOKI算法

LOKI算法作爲DES的一種潛在替代算法于1990年在密碼學界首次亮相。LOKI同DES一樣以64位二進制分組加密數據,也使用64位密鑰(只是其中無奇偶校驗位),所有64位均爲密鑰。LOKI密碼公布之後,有關專家對其進行了研究破譯並證明不大于14輪的LOKI算法極易受到任分密碼分析的攻擊等。不過,這仍然優于56位密鑰的DES。LOKI較新的成果版本是LOKI-91。

LOKI尚未取得專利,任何人都可以使用該算法。有意在商用中文产品中使用設計者基准方案的人士,可以與澳大利亞堪培拉國防學院計算機科學系西特拉德主任聯系。

Khufu和Khafre算法

1990年由默克爾(Merhie)設計的這對算法具有較長的密鑰,適合于軟件實現,比較完全可靠。Khufu算法的總體設計同DES,只是擁有512位(64字節)的密鑰。Khafre算法與前者類似,預定用于不能預先計算的場合。由于Khufu算法具有可變的S盒,可以抵抗差分密碼分析的攻擊。據了解目前尚無以該算法爲目標的其它密碼分析成果。

這對密碼算法都已取得專利,算法的原碼在專利之中。對使用這對算法感興趣的人士,可以與施樂(Xerox)公司專利許可證發放部的彼得(Petre)主任聯系。

IDEA算法

1990年賴學家(XueJiaLai)和梅西(Massey)開發的IDEA密碼首次成形,稱爲PES,即“建議的加密標准”。次年,根據有關專家對這一密碼算法的分析結果,設計者對該算法進行了強化並稱之爲IPES,即“改進的建議加密標准”。該算法于1992年更名爲IDEA,即“國際加密標准”。

IDEA算法的密鑰長度爲128位。設計者盡最大努力使該算法不受差分密碼分析的影響,賴學家已證明IDEA算法在其8輪叠代的第4輪之後便不受差分密碼分析的影響了。假定窮舉法攻擊有效的話,那麽即使設計一種每秒種可以試驗10億個密鑰的專用芯片,並將10億片這樣的芯片用于此項工作,仍需1013年才能解決問題;另一方面,若用1024片這樣的芯片,有也许在一天內找到密鑰,不過人們還無法找到足夠的矽原子來制造這樣一台機器。目前,尚無一片公開發表的試圖對IDEA進行密碼分析的文章。因此,就現在來看應當說IDEA是非常安全的。

IDEA分組密碼已在欧洲取得专利,在美国的专利还悬而未决,不存在非商用所需的使用许可证花费问题。对使用IDEA算法有兴致的商业用户可以与瑞士Solothurm实验室的普罗福斯主任(Profos)接洽。

【首頁】 【返回】