哈希长度与碰撞情况
哈希长度与碰撞情况
以下是各种常见长度的哈希函数及其碰撞情况分析:
哈希长度 (bit) | 常见算法 | 碰撞情况 | 碰撞年份 | 发明年份 | 状态 |
---|---|---|---|---|---|
128-bit | MD5 | 存在已知有效碰撞攻击 | 2004 年 | 1992 年 | 已过时,不推荐使用 |
160-bit | SHA-0, SHA-1, RIPEMD-160 | SHA-0: 存在已知有效碰撞攻击 | SHA-0: 2004 年 | SHA-0: 1993 年 | SHA-0: 已弃用,不推荐使用 |
SHA-1: 存在已知有效碰撞攻击 | SHA-1: 2017 年 | SHA-1: 1995 年 | 已过时,不推荐使用 | ||
256-bit | SHA-256, SHA-3-256 | 暂无已知有效碰撞攻击 | - | SHA-256: 2001 年 | 安全,广泛使用 |
384-bit | SHA-384 | 暂无已知有效碰撞攻击 | - | 2001 年 | 安全,高安全性需求 |
512-bit | SHA-512, SHA-3-512 | 暂无已知有效碰撞攻击 | - | SHA-512: 2001 年 | 非常安全,高性能需求 |
碰撞情况说明
-
128-bit (MD5):
- MD5 是一种输出为 128 位的哈希算法,但由于其设计的安全性不足,早在 2004 年就被发现可以有效制造碰撞。
- MD5 于 1992 年被发明,不适合任何需要密码学安全性的场景,仅可用于低安全性完整性校验。
-
160-bit (SHA-0, SHA-1, RIPEMD-160):
- SHA-0 是 SHA 系列的初代版本,存在严重的设计缺陷,在 2004 年被证明可以制造碰撞。SHA-0 于 1993 年发明。
- SHA-1 作为输出 160 位的主流算法,在 2017 年被证实可以通过理论和实践攻击制造碰撞。SHA-1 于 1995 年发明。
- RIPEMD-160 虽尚未有公开的碰撞记录,但不如更高位算法安全。
-
256-bit (SHA-256, SHA-3-256):
- 目前没有已知的碰撞攻击。
- SHA-256 于 2001 年被发明,适合绝大多数场景,如数字签名、区块链和数据完整性验证。
-
384-bit (SHA-384):
- 为高安全需求设计,未有任何已知的碰撞攻击。
- SHA-384 于 2001 年发明,适用于密钥交换、长时间数据存储等高安全性应用。
-
512-bit (SHA-512, SHA-3-512):
- 提供极高的安全性,特别适用于对抗潜在的量子计算威胁。
- SHA-512 于 2001 年发明,性能消耗较高,适合长期存储的场景。