轉載的:
今天在網上看到一個關於加密算法的安全性及破解復雜度的表格,特摘錄下來以便日后參考使用,原表是英文的,這里直接翻譯成中文方便查閱。另外還找了一些關於密碼學相關的信息,附錄在后。
加密算法的安全級別(Security Level of Cryptographic Algorithms)
安全級別 |
工作因素 |
算法 |
||
薄弱(Weak) |
O(240) |
|||
傳統(Legacy) |
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等。