1. 引言
NIST 几十年来一直致力于推动密码学标准的发展,2024年10月,其发布了Transitioning the Use of Cryptographic Algorithms and Key Lengths 草案:
- 概述了 SHA-1(为160位哈希算法) 将在不久的将来退役,并添加了新定义的 PQC 标准(用于密钥交换的ML-KEM 和 用于数字签名的ML-DSA)。
- 其为各密码学算法定义的类型有:
- Acceptable 可接受
- Deprecated 已弃用——将在不久的将来被删除。
- Disallowed 不允许——应该不得使用
- Legacy 遗留——只应用于遗留应用程序中。
2. 远离 112-bit 安全性
DES 加密方法使用 56 位等效密钥大小。DES已升级为 3DES(又名 TDEA——Triple Data Encryption Algorithm 三重数据加密算法),并使用两个加密密钥元素(K1 和 K2)来提供 112 位等效密钥大小。
3DES 方法使用 EDE(加密、解密、加密)的原因是 K1 等于 K2,并且将变成单个 56 位密钥和标准 DES 加密。从而允许与 DES 实现兼容。
虽然 3DES 仍在一些金融应用中使用,但 NIST 现在警告称,112 位密钥大小需要迁移到至少 128 位安全性。还有一些公钥方法(如 RSA 和密钥交换)具有 112 位等效安全性,因此 NIST 希望将所有加密方法普遍升级到至少 128 位。这需要在 2030 年 12 月 31 日之前完成,同时在同一天之前禁止使用 SHA-1 和 224 位哈希。
TDEA 现在不允许用于加密,仅允许用于遗留应用的解密:
3. 对称密钥模式
对于块模式,不应使用 ECB 进行加密,因为它不使用salt盐值。可接受的模式包括 CBC、CFB、CTR、OFB、CCM 和 GCM。对于Format Preserving Encryption 格式保留模式(可用于隐藏信用卡细节)(如 FF1 和 FF1),仅可接受 FF1:
4. 数字签名
对于数字签名,DSA 不允许用于签名生成,ECDSA、EdDSA 和 RSA 仅允许用于 112 位以上的安全级别。ML-DSA(又名 Dilithium)的新 PQC 方法已完全获得 FIPS 204 中定义的参数集的认可。
5. 随机位生成器
对于随机位生成器,重点是 SHA-2 和 SHA-3 以实现长期安全性,而 SHA-1 和 224 位哈希函数将被弃用:
6. 密钥交换
不推荐使用长度小于 112 位的密钥,而是允许使用至少具有 128 位安全性的椭圆曲线方法。这些方法包括 P-256、P-384 和 P-521 曲线以及 Brainpool 曲线,但不包括 224 位曲线(如 P-224)。
对于使用 RSA 的密钥封装,2030 年以后 128 位安全性的限制为:
对于新定义的 PQC 密钥封装 ML-KEM-512、ML-KEM-768 和 ML-KEM-1024 均已获得完全认可。
7. 密钥派生函数
总体而言,这些应该使用至少 256 位的哈希方法:
8. 哈希函数
如前所述,所有小于 256 位的哈希函数在 2030 年之前都将被弃用,此后将不再允许使用。使用 TupleHash 和 ParallelHash,可以得到 SHA-3 的派生函数:
9. 密钥包装
对于密钥包装,不允许使用 3DES:
10. MACs
对于消息认证码 (Message Authentication Codes,MAC) 来说,情况也是一样的,任何小于 256 位的哈希值和小于 128 位的安全性都将被弃用:
11. XOF
使用 XOF,可以创建一个长度可变的哈希输出。NIST 非常看好 SHAKE128 和 SHAKE256 是 XOF 的未来,其在 FIPS 202 中定义:
参考资料
[1] Prof Bill Buchanan OBE FRSE 2024年10月23日博客 NIST Looks To The Future of Cryptography: SHA-1, 3DES and SHA-224 on Naughty Step (相应视频解读见:NIST Looks To The Future of Cryptography: SHA-1, 3DES and SHA-224 on Naughty Step)