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