跳到主要内容
ecdsa.com

SHA-1

FIPS 180-1(1995年)定义的 160 位哈希函数,其抗碰撞性已在实践中被攻破,NIST 正逐步淘汰它,到2030年12月31日将在所有密码保护用途中停用。
其他写法SHA1SHA-160sha1WithRSAEncryption

首个公开的碰撞 SHAttered(CWI 和 Google 的 Stevens 等人,2017年2月)生成了两个 SHA-1 摘要相同的不同 PDF 文件。2020年,Leurent 和 Peyrin 的“SHA-1 is a Shambles”使选择前缀碰撞变得切实可行:只需花费数万美元的 GPU 时间,就能伪造 PGP 密钥认证。抗原像性并未被攻破。

现状:NIST 于2013年禁止用 SHA-1 生成数字签名,并于2022年12月宣布,到2030年12月31日将在所有应用中停止用 SHA-1 施加保护。RFC 9155 在 TLS 1.2 中弃用 MD5 和 SHA-1 签名;浏览器于2017年不再信任 SHA-1 证书;OpenSSH 8.8 默认禁用了使用 SHA-1 的 ssh-rsa 签名算法。

仍在使用它的地方:Git 对象 ID(采用带碰撞检测的实现;也已有使用 SHA-256 的仓库)、OpenPGP v4 指纹、HMAC-SHA1(不受碰撞影响,仍用于 TOTP 和一些较旧的协议)以及遗留证书。只有在攻击者无法影响被哈希数据的场合,才可以接受使用它。

标准与参考资料

全部术语