NIST 与密码学标准化
NIST(美国国家标准与技术研究院)是密码学标准化最有影响力的机构。其公开竞赛流程被认为是密码学标准制定的黄金标准。
AES 选拔过程(1997-2000)
DES 安全性不足后,NIST 发起了公开的 AES 竞选:
- 公开征集(1997):任何人都可提交算法
- 初步筛选(1998):从 21 个提交中选出 15 个候选
- 决赛轮(1999):选出 5 个决赛选手——MARS、RC6、Rijndael、Serpent、Twofish
- 最终选择(2000):Rijndael 胜出(后更名为 AES)
Rijndael 胜出原因:在软硬件平台上都有优秀的综合性能、设计简洁清晰、安全裕量充足。
SHA-3 选拔过程(2007-2012)
虽然 SHA-2 目前仍然安全,NIST 为防万一发起了 SHA-3 竞选:
- 公开征集(2007):51 个提交
- 第一轮(2008):14 个进入第二轮
- 第二轮(2009):5 个进入决赛——BLAKE、Grøstl、JH、Keccak、Skein
- 最终选择(2012):Keccak 胜出
Keccak 胜出原因:海绵结构提供了全新的安全保证(不依赖 Merkle-Damgård),设计优雅,可变输出长度,安全性证明。
NIST 后量子密码学标准化(2016-2024)
量子计算机可能威胁现有公钥密码(Shor 算法可分解大整数、解离散对数)。NIST 于 2016 年启动后量子密码标准化:
2024 年最终标准
- ML-KEM(CRYSTALS-Kyber):基于格(Lattice)的密钥封装机制,替代 RSA/ECDH 密钥交换
- ML-DSA(CRYSTALS-Dilithium):基于格的数字签名,替代 RSA/ECDSA
- SLH-DSA(SPHINCS+):基于哈希的数字签名,保守选择(不依赖格假设)
- FN-DSA(FALCON):基于 NTRU 格的数字签名,签名最短
对称密码(AES、SHA)不受量子计算影响(Grover 算法只将安全强度减半,使用 AES-256 即可)。
算法选择与迁移策略
当前推荐(2024)
| 用途 | 推荐算法 | 不推荐 |
|---|---|---|
| 对称加密 | AES-256-GCM | DES、3DES、RC4、Blowfish |
| 流密码 | ChaCha20-Poly1305 | RC4 |
| 哈希 | SHA-256、SHA-3、BLAKE2 | MD5、SHA-1 |
| 密码存储 | Argon2id | MD5、SHA-256 直接哈希 |
| 密钥交换 | X25519 | DH(小素数) |
| 数字签名 | Ed25519 | RSA-1024、DSA |
| MAC | HMAC-SHA256 | - |
迁移原则
- 不要等到算法被攻破才迁移——提前规划
- 新系统直接使用后量子算法(混合模式)
- 使用密码学敏捷性(Crypto-Agility):设计时使算法可替换
- 关注 NIST、IETF、CA/Browser Forum 的公告