在過去的十年中,,智能卡上的計算能力發(fā)展迅速,,基于 公鑰的智能卡廣泛應(yīng)用于各個領(lǐng)域。2001年Borst總結(jié)了智 能卡上應(yīng)用的各種密碼算法以及關(guān)于這些算法的攻擊,。從那以后,關(guān)于密碼算法的各種攻擊也越來越多,,其中比較著名 的有對于MD5和SHA一1的攻擊以及其他對哈希函數(shù)的攻 擊,。另外不太為人注意的還有,對于像A5/l(應(yīng)用于GSM 中) 和EO(應(yīng)用于藍牙中)這樣的流密碼分析技術(shù)也取得了不小 的進步,。在分組密碼方面,,AES的采用一定程度上保證了安 全性。公鑰密碼方面,,RSA的安全填充技術(shù)也成為一個研究 熱點,。
1 消息認(rèn)證碼
消息認(rèn)證碼實際上是對消息本身產(chǎn)生的一個冗余的信 息,消息認(rèn)證碼是利用密鑰對要認(rèn)證的消息產(chǎn)生新的數(shù)據(jù)塊 并對數(shù)據(jù)塊加密生成的,,它對于要保護的信息來說是一一對 應(yīng)的,。因此消息認(rèn)證碼可以有效保證消息的完整性,以及實現(xiàn)發(fā)送方消息的不可抵賴和不可偽造,。消息認(rèn)證碼的安全性主要取決于兩點:首先,,采用的加密算法,即所謂的數(shù)字簽名;其次,,是待加密的數(shù)據(jù)塊的生成方法,。
消息認(rèn)證碼不支持可逆性,是多對一的函數(shù),,其定義域由任意長的消息組成,,而值域是由遠小于消息長度的比特串構(gòu)成。從理論上來說,,一定存在不同的消息產(chǎn)生相同的認(rèn)證碼,,因此必須找到一種足夠單向和強碰撞自由性的方法才是安全的。
而對于消息認(rèn)證碼的主要攻擊目標(biāo)也是找到一對或者多對碰撞消息,。對于現(xiàn)有的攻擊方法,,有些可以攻擊任意類型的哈希方案,有些只針對特定的哈希方案,。自從2004年MD5算法被攻破以后,,SHA也面臨被攻破的危險。因此,,尋找一種足夠安全的單向哈希函數(shù)已經(jīng)成為當(dāng)務(wù)之急,,消息認(rèn)證碼的實現(xiàn)也會隨之改變。
2 分組密碼
分組密碼在密碼領(lǐng)域廣泛使用,,除了本身的幾種工作模式之外,,它可以用來構(gòu)建MAC,,也可以用來構(gòu)建哈希函數(shù)、偽隨機函數(shù)等等,。分組密碼具有速度快,、易于標(biāo)準(zhǔn)化和便于軟硬件實現(xiàn)等特點,通常是信息域網(wǎng)絡(luò)安全中實現(xiàn)數(shù)據(jù)加密,、數(shù)字簽名,、認(rèn)證及密鑰管理的核心體制,它在計算機通信和信息系統(tǒng)安全領(lǐng)域中有著最廣泛的應(yīng)用,。
第一個廣泛使用的分組密碼算法是DES算法,。DES自1977年公布后得到了許多組織、部門的使用,,各國的密碼學(xué)工作者也對它進行了深入的分析,,它是迄今為止使用最廣泛和最成功的分組密碼。DES的輪函數(shù)采用Feistel網(wǎng)絡(luò),,8個s盒,,擴充、壓縮置換,、塊置換,。其算法簡潔、快速且加解密相似,。但一個明顯的缺陷是s盒為黑盒,,因此公眾長久地抱怨并懷疑它設(shè)有陷門。早期的迭代分組密碼設(shè)計主要圍繞DES進行,,后來在此基礎(chǔ)上有很大的發(fā)展,,出現(xiàn)了眾多的Feistel型密碼,DES的設(shè)計至今仍閃爍著人類設(shè)計思想的精華,,其結(jié)構(gòu)和部件仍在被后人效仿,。但是它的密鑰長度太短,僅為56比特,,已經(jīng)不能抵抗窮盡密鑰搜索攻擊,。
對DES的成功破譯迫使人們重新設(shè)計密碼算法。IDEA是X.Lai和J.L.Massey于1990年發(fā)表的,,當(dāng)時稱為PES,,1992年改名為IDEA。IDEA是第一個不使用Feistel網(wǎng)絡(luò)的分組密碼,。IDEA的安全性設(shè)計思想是:采用同一明文空間上的三個不同的群運算,,使隱蔽、混淆和擴散融為一體,。IDEA是分組密碼的杰出代表,,開創(chuàng)了新的一類設(shè)計風(fēng)格,。但是IDEA存在大量的弱密鑰,這與其密鑰拓展算法只是線性變換有關(guān),,這點也表明需要對其密鑰拓展算法重新設(shè)計,。此后出現(xiàn)的NEA也是一種IDEA型的密碼。
Rijndael是AES活動的最終勝利者,,現(xiàn)已替代DES成為美國新的加密標(biāo)準(zhǔn),。Rijndael輪函數(shù)的設(shè)計基于寬軌跡策略,這種設(shè)計策略是針對差分密碼分析和線性密碼分析制定的,,主要包括兩個設(shè)計準(zhǔn)則:首先,選擇差分均勻性比較小和非線性度比較高的s盒;其次,,適當(dāng)選擇線性變換,,使得固定輪數(shù)巾的活動S盒的個數(shù)盡可能多。如果差分特征(或線性逼近)中某一輪的活動s盒的個數(shù)比較少,,那么下一輪中的活動s盒的個數(shù)就必須要多一些,。寬軌跡策略的最大優(yōu)點是可以估計算法的最大差分特征概率和最大線性逼近概率,由此可以評估算法抵抗差分密碼分析和線性密碼分析的能力,。繼美國征集AES的活動之后,,歐洲在2000年3月啟動了NESS1E大計劃,目的是為了推出一系列的安全的密碼模塊,,保持歐洲在密碼研究領(lǐng)域的領(lǐng)先地位并增強密碼在歐洲工業(yè)中的應(yīng)用 作為歐洲新一代的加密標(biāo)準(zhǔn),,Camellia算法具有較強的安全性,能夠抵抗差分和線性密碼分析等已知的攻擊,。與AES相比,,Camellia算法在各種軟硬件平臺上表現(xiàn)出與之相當(dāng)?shù)募用芩俣取3嗽诟鞣N軟件和硬件平臺上的高效性這一顯著特點外,,它的另外一個特點是針對小規(guī)模硬件平臺的設(shè)計,。
3 流密碼
流密碼也稱序列密碼,它是對稱密碼算法的一種,。“一次一密”的密碼方案是流密碼的雛形,,但由于 一次一密”的密碼體制存在密鑰產(chǎn)生、分配和管理極為困難的缺點,,使其應(yīng)用范圍受到限制,。在保密強度要求高的場合,如大量軍事密碼系統(tǒng),,仍多采用流密碼,。流密碼是指利用少量的密鑰(制亂元素)通過某種復(fù)雜的運算(密碼算法)產(chǎn)生大量的偽隨機位流,用于對明文位流的加密,。解密是指用同樣的密鑰和密碼算法及與加密相同的偽隨機位流,,用以還原明文位流,。流密碼設(shè)計的一般原則是采用多重密鑰、多重環(huán)節(jié),、多重安全措施等技術(shù),,達到“一次一密”,總體上達到流密碼最終靠密鑰保密,,即“密碼保密寄寓于密鑰之中”,。因此流密碼的關(guān)鍵是產(chǎn)生密鑰序列的算法,其密碼系統(tǒng)的安全性也主要取決于密鑰序列,。當(dāng)前流密碼的重點研究方向主要包括:①自同步流密碼的研究;②有記憶前饋網(wǎng)絡(luò)密碼系統(tǒng)的研究;③多輸出密碼函數(shù)的研究;④高速密碼芯片的開發(fā):⑤同步序列密碼在失步后如何重新同步的問題;⑥混沌序列密碼和新研究方法的探索等,。
4 公鑰加密算法
Whitfield Di衢e和Martin Hellman在1976年發(fā)表的“New Direction in Cryptography”首次提出了公鑰密碼體制,沖破了長期以來一直沿用的私鑰體制,。自從公鑰密碼體制被提出以來,,相繼出現(xiàn)了許多公鑰密碼方案,其中以RSA和橢圓曲線密碼算法ECC最為典型,。
4.1 RSA算法
當(dāng)前最著名,、應(yīng)用最廣泛的公鑰系統(tǒng)RSA是在1978年由美國麻省理工學(xué)院的Rivest、Shamir和Adleman提出的,,它是一個基于數(shù)論的非對稱密碼體制,。RSA算法是第一個既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法,它容易理解和操作,。
RSA的安全性基于大整數(shù)索因子分解的困難性,,而大整數(shù)因子分解問題是數(shù)學(xué)的著名難題,至今沒有有效的方法予以解決,,因此可以確保RSA算法的安全性,。RSA系統(tǒng)是公鑰系統(tǒng)的最具有典型意義的方法,大多數(shù)使用公鑰密碼進行加密和數(shù)字簽名的產(chǎn)品和標(biāo)準(zhǔn)使用的都是RSA算法RSA的缺點主要有:首先,,產(chǎn)生密鑰很麻煩,,受到素數(shù)產(chǎn)生技術(shù)的限制,因而難以做到一次一密;其次運算速度慢,。
4.2橢圓曲線密碼算法
橢圓曲線在代數(shù)學(xué)和幾何學(xué)上已有一百五十多年的研究歷史,,有著復(fù)雜的數(shù)學(xué)背景,涉及到數(shù)論,、群論和射影幾何等學(xué)科,。
1985年,N.Koblitz和V.Miller分別提出了橢圓曲線密碼體制ECC,,其安全性依賴于橢圓曲線群上離散對數(shù)問題碼的難解性,,即已知橢圓曲線上的點P和kp計算k的困難程度,不過在當(dāng)時一直沒有像RSA等密碼系統(tǒng)一樣受到重視。但從現(xiàn)在來看,,ECC是目前已知的公鑰密碼體制中,,對每一比特所提供加密強度最高的一種體制,它具有安全性上高,、計算量小,、存儲空間占用小、帶寬要求低等特點,,這些優(yōu)點使得橢圓曲線公鑰密碼體制將應(yīng)用到越來越多的領(lǐng)域,。如存儲空間小,這對于加密算法在智能卡上的應(yīng)用具有特別重要的意義,。1999年ANSI X9.62標(biāo)準(zhǔn)的發(fā)布成為ECC標(biāo)準(zhǔn)化的一個重要里程碑,,同年美國政府的國家標(biāo)準(zhǔn)與技術(shù)委員會NIST發(fā)布了新的規(guī)定FIPS186—2,確定了ECC的地位?,F(xiàn)已頒布的有關(guān)ECC的標(biāo)準(zhǔn)有IEEEP1363及P1363a,、ANSIX9.62、ANSI X9.63,、ISO/IEC14888—3,、IETF,、ATM If)RUM 等,,這些標(biāo)準(zhǔn)的公布將提高ECC技術(shù)在世界范圍內(nèi)的通用性,使ECC技術(shù)在全球的廣泛應(yīng)用成為可能,。而SET協(xié)議的制定者已把它作為下一代SET協(xié)議中缺省的公鑰密碼算法,。
5 結(jié)束語
在過去的五年中,智能卡上的計算能力發(fā)展很快,,智能卡和終端計算機上應(yīng)用的密碼算法的區(qū)別已經(jīng)日益顯現(xiàn)AES算法很快成為世界范圍內(nèi)的一個標(biāo)準(zhǔn),,對于該算法的攻擊手段也漸漸涌現(xiàn)。另外,,邊信道攻擊也成為一 個越來越重要的研究領(lǐng)域,,這種攻擊的出現(xiàn)將會對硬件和軟件的實現(xiàn)產(chǎn)生影響。新的安全證明和安全模型也在不斷涌現(xiàn),,這些都使我們對安全的理解越來越深刻,。在現(xiàn)在各種攻擊手段和安全證明充分發(fā)展的情況下,需要盡快地升級智能卡中所使用的密碼算法,。盡管如此,,密碼 密算法的完全更替還是需要一些時日。系統(tǒng)設(shè)計者們需要在這種情況下,,通過更快的生成密鑰等手段更新算法,。