廖小平
(四川文理學院 計算機科學系,四川 達州 635000)
網絡技術的飛速發(fā)展,網絡安全問題越發(fā)凸顯重要。數據加密技術是對計算機信息進行保護的最實用和最可靠的方法,它是網絡安全技術的核心技術。對信息進行加密可以防止攻擊者竊取網絡機密信息,可以使系統(tǒng)信息不被無關者識別,也可以檢測出非法用戶對數據的插入、刪除、修改及濫用有效數據的行為。
對數據進行加密用到的技術有很多種,按密鑰的類型劃分,密碼體制可以分為對稱密碼體制和非對稱密碼體制,“密碼學新方向[1]”的發(fā)表和美國數據加密標準DES的頒布實施標志著現代密碼學的誕生,從此揭開了商用密碼研究的序幕。此后實用密碼的研究基本上在沿著2個方向在進行,即以DES(大多數是基于Feistel分組密碼結構[2])為代表的秘密密鑰分組密碼和以RSA為代表的公開密鑰密碼,分組密碼具有速度快、易于標準化和便于軟硬件實現等特點,它在計算機網絡通信領域的應用相當廣泛,可以實現數據加密、消息鑒別、認證及密鑰管理的核心密碼算法,目前市場上有許多法律認可的分組密碼芯片(如DES芯片),自從DES被采納為美國聯(lián)邦標準,對它的安全性就一直爭論不休,焦點主要集中在密鑰的長度和算法本身的安全性,特別是差分密碼攻擊和線性密碼攻擊的出現,使分組密碼受到致命的打擊,因此很多專家學者在想辦法用某種更加安全的算法替代它,例如AES。但由于目前分組密碼的使用特別的廣泛,在分組密碼上的投資比較大,不可能在較短時間內淘汰分組密碼,因此,提出了密碼強化的思想,用算法進行多次加密,而且使用多個密鑰,比如雙重DES,三重DES[3]。這樣能夠保護已有軟件和硬件使用分組密碼(如DES)的投資,將一個分組密碼算法組合成一個新的算法有很多種途徑,這些途徑是在人們不想設計新的算法,又想增加密碼算法強度的情況下產生的。
密碼體制是指一個密碼系統(tǒng)采用的基本工作方式。密碼體制的基本要素是密鑰算法和密鑰,其中密碼算法是一些公式、法則或者程序,而密鑰是密碼算法中的可變參數。密碼算法分為加密和解密算法,前者將明文變換成密文,后者將密文變換成明文,密鑰相應的也分為加密密鑰和解密密鑰。一個密碼系統(tǒng)由明文、密文、加密算法、解密算法和密鑰5個部分組成,數據加密過程就是通過加密系統(tǒng)把明文(原始的數據信息),按照加密算法變換成與明文完全不同的數字信息,該數字信息就是密文。一個簡單的密碼系統(tǒng)如圖1所示。
圖1 密碼的簡化模型Fig.1 Simplified model of encryption
加密過程可以看出是對明文M進行某種函數的數學變換,即:
C=EKe(M) (1)
密鑰可以看成是密碼算法中的可變參數。從數學的角度來看,改變了密鑰,實際上也就改變了明文與密文之間等價的數學函數關系。密碼算法是相對穩(wěn)定的,在這種意義上,可以把密碼算法視為常量,而密鑰則是一個變量。
現代密碼學的一個基本原則是一切秘密應寓于密鑰之中,即在設計密碼系統(tǒng)時,密碼算法是可以公開的,真正需要保密的是密鑰,密碼算法的特點是在已知密鑰的條件下,加密算法是有效的;而在不知道密鑰的情況下,解密技術是不可行。同樣,解密過程是對密文C進行某種函數的數學變換,即
多重加密[4]就是將一個加密算法多次使用的技術。在第一次使用中,明文通過加密算法轉化為密文,然后將該密文作為輸入從新執(zhí)行加密算法,該過程可以重復多次,每次都使用相互獨立的密鑰對明文依次進行加密,過程如下:
多重加密最簡單的模型是進行2次加密,每次使用不同的密鑰,給定明文M及密鑰k1,k2,產生密文C的過程如下:
解密時逆序使用這2個密鑰:
如果算法采用DES,稱為雙重DES算法,這種方法的密鑰長度為56×2=112,密碼強度增加了。不過對這種兩次加密的DES算法,容易受到基于觀察的中間相遇攻擊[5]的威脅,對付中間相遇攻擊的一個明顯辦法是使用3個密鑰進行3次加密,這樣已知明文攻擊的代價將升級為2112數量級,這超出了現在的可行性能力,然而,它需要長為56×3=168的密鑰,這無疑是個缺點。為此Tuchman提出了三重加密的思想[6],在兩個不同密鑰作用下將加解密算法交叉使用,即:
第二步采用解密算法并沒用什么密碼學上的深層次含義,這僅僅是為了使用三重DES的用戶可以利用該算法解密單DES加密的數據,這是因為:
使用2個密鑰的三重DES已經廣泛地代替了DES,并已經用于密鑰管理標準ANS X9.17和ISO 8732中。盡管三重加密在二重加密基礎上安全性有所改善,但由于僅使用兩個密鑰,使得攻擊的復雜度并沒有達到三倍于原算法的效果。Merkle和 Hellman提出了一種“時空折衷方法[7],可以用 2l-1次加密和2l個存貯記錄即可破譯三重加密,這里l為單個算法的密鑰長度。盡管使用兩個密鑰的三重加密安全性有所加強,但是所有使用雙密鑰的三重DES算法的人還是感覺有點懸,因此,很多人覺得采用3個密鑰的三重DES算法才是最好的方案,即:
要想和單DES兼容,只需設k3=k2或者k1=k2。
為了進一步改善加密效果并增強算法強度,設計了一個新的三重加密方案 ANTE(Another New Triple Encryption),加密過程如圖2所示,解密過程如圖3所示。
加密過程:
圖2 ANTE方案加密過程Fig.2 ANTE encryption
解密過程:
圖3 ANTE方案解密過程Fig.3 ANTE decryption
在該方案中,加密和解密過程中用到的密鑰k1,k2,k3均要求是獨立的,隨機分布選取的,所使用的密鑰長度可以設為l,明文分組M的長度應該與密鑰的長度相等。第二步采用解密算法并沒用什么密碼學上的深層次含義,這僅僅是為了使用三重DES的用戶可以利用該算法解密單DES加密的數據。
對該方案的安全特性進行分析,可以得出該方案有以下的一些安全性特點:
1)該方案中使用到的算法D和算法E是安全的,則該方案是安全的。
2)該方案中使用到密鑰長度為3l,使得攻擊者對密鑰的窮舉攻擊、強力攻擊等不是一件容易的事情。
4)在方案的每一個加密階段都加入了密鑰進行異或運算,每次做異或運算都有密鑰的參與,加密密鑰也是采取了級聯(lián)的方式,使得每一次加密所產生的明文與每一個密鑰都有聯(lián)系,當然,明文所對應的密文也不同,使得整個算法的安全性得到了加強,攻擊者分析出密鑰的可能性更加的降低。
5)本方案中使用了密鑰級聯(lián)技術,每一輪加密用的密鑰都是前面密鑰進行異或運算得出,使得攻擊者即使取得大量的、真實的明密文對,要實施已知明文攻擊和選擇明文攻擊變得困難。
6)方案中使用到的 3個密鑰 k1,k2,k3具有隨機性、獨立性,可以有效的避免中間相遇和時空折中方法的攻擊。
7)在該方案中,由于單個的算法抗擊差分分析和線性分析,因此該方案也能抗擊對差分分析和線性分析。
當前,數據加密技術發(fā)展很快,各種算法層出不窮,密碼的多重加密技術可以有效的提高現有密碼算法的強度,比如Copper Smith[8]分析后認為對三重DES的窮舉攻擊的代價是2112≈(5×1033)數量級的,且估計用差分密碼分析的代價是按指數增長的,與單DES比較超出1052倍。文中提出了一個三重加密方案,并分析了其安全性特點,該方案使密碼算法的強度有一定的提高。
[1]馮登國,裴定一.密碼學引論[M].北京:科學出版社,1994.
[2]Feistel H.Cryptography and computer privacy[J].Scientific American,1973,228(5):15-23.
[3]Stallings W.密碼編碼學與網絡安全—原理與實踐[M].4版.孟慶樹,王麗娜,傅建明,等譯.北京:電子工業(yè)出版社,2008.
[4]谷大武.分組密碼理論與某些關鍵技術研究 [D].西安:西安電子科技大學,1998.
[5]Diffie W,Hellman M.Exhaustive cryptanalysis of the NBS data encryption standard[J].Computer,1977,10(6):74-84.
[6]Tuchman W.Hellman presents no shortcut solutions to DES[J].IEEE Spectrum,1979,16(7):40-41.
[7]Denning D.The clipper chip:a tchnical summary[J].Personal Communications,1993,6(3):22-27.
[8]Coppersmith D.The eata encryption standard (DES) and its strength against attack[J].IBM Jorunal of Research and Development,1994,38(3):243-250.