密码学标准与评估

NIST 与密码学标准化

NIST(美国国家标准与技术研究院)是密码学标准化最有影响力的机构。其公开竞赛流程被认为是密码学标准制定的黄金标准。

AES 选拔过程(1997-2000)

DES 安全性不足后,NIST 发起了公开的 AES 竞选:

  1. 公开征集(1997):任何人都可提交算法
  2. 初步筛选(1998):从 21 个提交中选出 15 个候选
  3. 决赛轮(1999):选出 5 个决赛选手——MARS、RC6、Rijndael、Serpent、Twofish
  4. 最终选择(2000):Rijndael 胜出(后更名为 AES)

Rijndael 胜出原因:在软硬件平台上都有优秀的综合性能、设计简洁清晰、安全裕量充足。

SHA-3 选拔过程(2007-2012)

虽然 SHA-2 目前仍然安全,NIST 为防万一发起了 SHA-3 竞选:

  1. 公开征集(2007):51 个提交
  2. 第一轮(2008):14 个进入第二轮
  3. 第二轮(2009):5 个进入决赛——BLAKE、Grøstl、JH、Keccak、Skein
  4. 最终选择(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-GCMDES、3DES、RC4、Blowfish
流密码ChaCha20-Poly1305RC4
哈希SHA-256、SHA-3、BLAKE2MD5、SHA-1
密码存储Argon2idMD5、SHA-256 直接哈希
密钥交换X25519DH(小素数)
数字签名Ed25519RSA-1024、DSA
MACHMAC-SHA256-

迁移原则

  • 不要等到算法被攻破才迁移——提前规划
  • 新系统直接使用后量子算法(混合模式)
  • 使用密码学敏捷性(Crypto-Agility):设计时使算法可替换
  • 关注 NIST、IETF、CA/Browser Forum 的公告