轉載的: html
今天在網上看到一個關於加密算法的安全性及破解複雜度的表格,特摘錄下來以便往後參考使用,原表是英文的,這裏直接翻譯成中文方便查閱。另外還找了一些關於密碼學相關的信息,附錄在後。 git
加密算法的安全級別(Security Level of Cryptographic Algorithms) 算法
安全級別 |
工做因素 |
算法 |
||
薄弱(Weak)加密 |
O(240)spa |
|||
傳統(Legacy)htm |
O(264) |
|||
基準(Baseline) |
O(280) |
|||
標準(Standard) |
O(2128) |
|||
較高(High) |
O(2192) |
|||
超高(Ultra) |
O(2256) |
注:上表中的"工做因素(Work Factor)"能夠理解爲破解的算法複雜度。
關於密碼學相關的一些信息:
密碼學、散列、散列函數
哈希算法:MD4, MD5, SHA
對稱加密:DES, IDEA, RC2, RC4, SKIPJACK, RC5, AES
非對稱加密:RSA, ECC
已經證明較容易破解的算法(不安全算法):MD4, MD5, SHA-0, SHA-1, DES
理論上大部分的算法基本上都是能夠破解的,只是須要不少臺計算機並行運算很長時間才能破解。密鑰越長,須要耗費的資源越多,以此來提升破解的成本,因爲 成本太高致使不進行攻擊或採用旁道攻擊。同時密鑰越長加解密的成本也會隨之提升,因此能夠根據信息的價值和保密要求來選擇合適的算法。
哈希算法是不可逆算法,可是存在碰撞可能,速度較快;對稱加密使用一個密鑰進行加解密;非對稱加密使用公鑰和私鑰進行加解密,速度比對稱加密要更慢,但較安全。一般哈希算法能夠選用 MD5 或 SHA,而對稱加密則能夠選用 3DES 或 AES,非對稱加密則能夠選用 RSA 或 ECC。
另外須要說明的是,這裏的哈希算法和哈希表中用到的哈希算法稍有不一樣,哈希表中用到的哈希算法不須要高的安全性,可是須要高的性能和高的離散性,因此通常不會採用 MD5 或 SHA 等算法,而是採用更快的哈希算法。
經常使用的加密算法有哪些?
DES(Data Encryption Standard):對稱算法,數據加密標準,速度較快,適用於加密大量數據的場合;
3DES(Triple DES):是基於DES的對稱算法,對一塊數據用三個不一樣的密鑰進行三次加密,強度更高;
RC2和RC4:對稱算法,用變長密鑰對大量數據進行加密,比 DES 快;
IDEA(International Data Encryption Algorithm)國際數據加密算法,使用 128 位密鑰提供很是強的安全性;
AES(Advanced Encryption Standard):高級加密標準,對稱算法,是下一代的加密算法標準,速度快,安全級別高,如今 AES 標準的一個實現是 Rijndael 算法; RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰算法,須要加密的文件塊的長度也是可變的,非對稱算法; DSA(Digital Signature Algorithm):數字簽名算法,是一種標準的DSS(數字簽名標準),嚴格來講不算加密算法; BLOWFISH,它使用變長的密鑰,長度可達448位,運行速度很快; MD5:嚴格來講不算加密算法,只能說是摘要算法。MD5以512位分組來處理輸入的信息,且每一分組又被劃分爲16個32位子分組,通過了一系列的處理後,算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成一個128位散列值。 PKCS:The Public-Key Cryptography Standards (PKCS)是由美國RSA數據安全公司及其合做夥伴制定的一組公鑰密碼學標準,其中包括證書申請、證書更新、證書做廢表發佈、擴展證書內容以及數字籤 名、數字信封的格式等方面的一系列相關協議。 SSF33,SSF28,SCB2(SM1):國家密碼局的隱蔽不公開的商用算法,在國內民用和商用的,除這些都不允許使用外,其餘的均可以使用; 其它算法:ElGamal、Diffie-Hellman、新型橢圓曲線算法ECC等。