SHA-1
SHA-1 是 NSA 设计的 160 位加密哈希函数,2017 年 Google 公布 SHAttered 碰撞,已被各标准弃用。
用途
提供 160 位消息摘要,曾用于 TLS 证书与 Git,因碰撞攻击被淘汰。
机制
将输入按 512 位块处理,维护 160 位状态(5 个 32 位字)。每块经 80 步非线性变换更新状态。2017 年 SHAttered 攻击以约 2^63 复杂度构造碰撞。
用例
- Git 对象哈希(正迁移 SHA-256)
- HMAC-SHA1(仍安全)
- 遗留数字证书
- 教学示例
示例
- 输入
hello输出aaf4c61ddcc5e8a2dabeede0f3bde2d0d4b2f2160 bits = 40 hex characters
常见错误
- Using SHA-1 for signatures in new systems
- Use SHA-256 or SHA-3