數據加密標準是1977年IBM公司為美國政府開發的算法。DES是壹種基於56位密鑰的分組加密技術。其加密過程壹般如下:
①壹次打亂替換64位明文塊。
②將64位明文塊拆分成兩個32位塊;
③用秘密DES密鑰對每個32位塊進行16次加擾;
④使用初始排列的逆排列。
然而,在實際應用中,DES的保密性受到了極大的挑戰。1999年6月,65438+10月,EFF和分布式網絡不到壹天就破譯了56位DES加密信息。DES的霸主地位受到了嚴重影響。為此美國推出了DES的改進版——三重數據加密標準,即在使用過程中,發送方和接收方都使用三個密鑰進行加密和解密。毫無疑問,這種3*56的加密方式大大提高了密碼的安全性,按照目前電腦的運算速度,破解幾乎是不可能的。然而,在為數據提供強有力的安全保護的同時,我們也需要花費更多的時間對信息進行三次加密,並對每個秘密層進行解密。同時,在這個前提下,使用這個密鑰的兩個發送方必須有三個密鑰。其中任何壹個丟了,另外兩個就成了沒用的鑰匙。這樣私鑰的數量增加了三倍,顯然不是我們希望看到的。因此,美國國家標準與技術研究所引入了壹種新的安全措施來保護金融交易。高級加密標準美國國家技術標準委員會(NIST)在2000年6月選擇了比利時的研究成果Rijndael作為AES的基礎。Rijndael經過三年的漫長過程,最終從進入候選人的五個方案中被選中。
AES有更簡潔準確的數學算法,加密數據只需要通過壹次。AES設計速度快,安全性能強,可以支持各種小型設備。與3DES相比,AES不僅在安全性能上有很大差異,在使用性能和資源的有效利用上也有很大差異。雖然我到現在也不知道AES的具體算法,但是從下表可以看出它與3DES的巨大優越性。
還有壹些其他的算法,比如美國國家安全局使用的Skipjack算法,但是它的算法細節總是保密的,外人無從得知它的細節。由私人組織開發的替代DES的壹些方案:RC2、RC4、RC5等。面對執行過程中如何使用和共享密鑰並保持其機密性的問題,Whitefield Diffe和Marti Hellman提出了公鑰密碼學的概念,稱為Diffie-Hellman技術。從此,公鑰加密算法應運而生。
由於采用了公鑰,密鑰的管理和分發變得簡單多了。對於壹個有n個用戶的網絡,只需要2n個密鑰就可以達到密度。同時,公鑰加密方法的保密性集中在極其復雜的數學問題上,其安全性也是有保證的。但在實踐中,公鑰加密算法並不能完全取代私鑰加密算法。重要原因是其實現速度遠遠落後於私鑰加密算法。由於它的安全性,它經常被用來加密壹些重要的文件。自公鑰加密問世以來,學者們提出了許多公鑰加密方法,其安全性基於復雜的數學問題。按照基於數學問題的分類,目前被認為是安全有效的系統有三種:大整數因式分解系統(RSA)、橢圓曲線離散對數系統(ECC)和離散對數系統(DSA),下面詳細介紹。
RSA算法由Rivet、Shamir和Adelman共同開發,因此得名RAS算法。它的安全性是基於大整數素數分解的困難性,而大整數的分解是數學中著名的問題,沒有有效的方法解決,所以RSA算法的安全性是可以保證的。RSA系統是公開密鑰系統中最典型的方法。大多數使用公鑰密碼進行加密和數字簽名的產品和標準都使用RSA算法。其具體算法如下:
①找出兩個非常大的質數。素數越大,越安全。稱這兩個質數為p和q。
②求壹個滿足下列條件的數e:
A.這是壹個奇數。
B.小於p× q。
C.與(P-1) × (Q-1)互質只是指E和這個方程的計算結果沒有相同的質因數。
③計算值d,滿足以下性質:((d× e)-1)可被(p-1) × (q-1)整除。
公鑰對是(P×Q,e)。
私鑰是d。
公鑰是e。
解密函數是:
假設t是明文,c是密文。
加密函數的公鑰e和模數p×q;
加密信息=(TE)模數p× q。
解密函數使用私鑰d和模數p×q;
解密信息=(CD)模數p× q。
橢圓曲線加密(ECC)基於單向函數(橢圓曲線的離散對數),因為它比RAS使用的離散對數復雜得多。而且這種單向函數比RSA更難,所以與RSA相比,它有以下優點:
安全性能較高的加密算法的安全性能壹般通過算法的抗攻擊強度來體現。與其他公鑰體制相比,橢圓曲線密碼體制在抗攻擊方面具有絕對優勢。例如,160位ECC與1024位RSA具有相同的安全強度。而210位ECC具有與2048位RSA相同的安全強度。
計算量小,處理速度快。雖然在RSA中,可以通過選擇更小的公鑰(可以小到3)來提高公鑰的處理速度,即加密和簽名驗證的速度可以和ECC相比,但是私鑰(解密和簽名)的處理速度要比RSA和DSA快得多。所以ECC的整體速度比RSA和DSA快很多。
存儲空間小:與RSA和DSA相比,ECC的密鑰大小和系統參數要小得多,也就是說它占用的存儲空間要小得多。這對加密算法在IC卡中的應用具有重要意義。
低帶寬要求當加密和解密長消息時,三種類型的密碼系統具有相同的帶寬要求,但是當應用於短消息時,ECC帶寬要求要低得多。然而,公鑰加密系統主要用於短消息,如數字簽名和對稱系統的會話密鑰傳輸。低帶寬要求使得ECC在無線網絡領域具有廣闊的應用前景。
ECC的這些特性必將取代RSA,成為壹種通用的公鑰加密算法。比如SET協議的制定者已經將其作為下壹代SET協議中默認的公鑰密碼算法。