将后量子密码学移植到 Python
后量子密码学现已通过 pyca/cryptography 库为 Python 生态系统所广泛采用。此次更新实现了对 ML-KEM 和 ML-DSA 的支持,二者均为 NIST 标准密钥建立原语和数字签名原语。美国政府正加速推进后量子密码学迁移工作:密钥建立将于 2030 年 12 月 31 日前完成,数字签名将于 2031 年 12 月 31 日前完成。此次迁移的成功取决于诸如 pyca/cryptography 之类的密码学库,该库被众多流行的 Python 项目所采用。新的后量子算法虽然提供了抗量子能力,但也引入了权衡。公钥、签名和密文显著大于其经典对应物,且运算速度更慢。例如,ML-DSA 签名长度为 3,309 字节,而 Ed25519 仅为 64 字节;同样,ML-KEM 密文长度为 1,088 字节,而 X25519 的共享密钥仅为 32 字节。依赖固定大小数据域的协议将需要相应调整。pyca/cryptography 库现已提供用于 ML-DSA 和 ML-KEM 的 Python API。ML-DSA 是一种基于格的签名方案,ML-KEM 是一种用于建立共享密钥的密钥封装机制,其基本原理与 Diffie-Hellman 截然不同。目前正持续进行 SLH-DSA 的工作,这是 NIST 基于哈希的签名标准,采取更为保守的方法。最终目标是将这些后量子原语集成到现实世界的协议和应用中。此项基础性工作由主权技术局(Sovereign Tech Agency)资助。