加密算法强度(转)

今天在网上看到一个关于加密算法的安全性及破解复杂度的表格,特摘录下来以便日后参考使用,原表是英文的,这里直接翻译成中文方便查阅。另外还找了一些关于密码学相关的信息,附录在后。

加密算法的安全级别(Security Level of Cryptographic Algorithms)

安全级别 (Security Level) 工作因素 (Work Factor) 算法 (Algorithms)
薄弱(Weak) O(240) DES, MD5
传统(Legacy) O(264) RC4, SHA-1
基准(Baseline) O(280) 3DES
标准(Standard) O(2128) AES-128, SHA-256
较高(High) O(2192) AES-192, SHA-384
超高(Ultra) O(2256) AES-256, SHA-512

注:上表中的“工作因素(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 等算法,而是采用更快的哈希算法。

坚持技术分享,您的支持将鼓励我继续创作!