Linux 7.0 内核将正式引入抗量子加密标准 ML-DSA
对于 Linux 内核社区来说,这几天发生的事情注定要写进历史。
就在 2 月 9 日,Linux 加密子系统维护者 Herbert Xu 发出了一个关键的 Pull Request: Linux 7.0 内核将正式引入 ML-DSA(Module-Lattice-Based Digital Signature Algorithm)抗量子数字签名算法。
在这个版本号从 6.x 终于跳跃到 7.0 的重要时刻,内核的安全基石也迎来了一次质的升级。这不仅仅是一个算法的添加,更是 Linux 面对即将到来的量子计算时代,迈出的防御性一步。
什么是 ML-DSA?
ML-DSA 这个名字对很多人来说可能还有点陌生,但它的曾用名 Dilithium 在密码学界可谓大名鼎鼎。
它是 NIST(美国国家标准与技术研究院)在 FIPS 204 标准中确定的后量子密码学(PQC)数字签名标准之一。简单来说,它是为了抵御未来量子计算机攻击而设计的。
传统的 RSA 和 ECC算法依赖于大整数分解和离散对数问题的计算难度。在经典计算机面前,这些数学堡垒坚不可摧,但在拥有 Shor 算法的量子计算机面前,它们可能在数小时内就会崩塌。
ML-DSA 基于 模格(Module-Lattice) 数学难题(特别是 Module-LWE 和 Module-SIS 问题)。目前的理论认为,即便是大规模量子计算机也难以有效破解这种格密码结构。
Linus Torvalds 最近确认了下一个内核版本将是 Linux 7.0。
在 Linux 7.0 中引入 ML-DSA 显得尤为应景。与此同时,还有一个时代的眼泪被彻底擦去—— SHA-1 模块签名支持在这个版本中被正式移除 。
一边是使用了几十年的 SHA-1 彻底退场,一边是面向未来的抗量子算法登场,Linux 7.0 完成了一次完美的新老交替。
内核里的 ML-DSA 用来做什么?
目前,ML-DSA 在 Linux 7.0 中的首要应用场景是 内核模块签名(Module Signing) 。
如果你熟悉 Linux 安全机制,就会知道内核模块签名是防止恶意代码注入内核的关键防线。只有通过私钥签名的模块,才能被公钥验证通过并加载。
随着 ML-DSA 的引入,开发者可以使用抗量子算法来签署内核模块。这意味着即使攻击者在未来拥有了量子计算机,也无法伪造合法的内核模块签名来欺骗系统。
根据 NIST 的标准(FIPS 204),ML-DSA 在性能和安全性之间取得了很好的平衡:
- • 速度快:它的签名和验证速度非常快,优于许多其他的 PQC 候选算法。
- • 尺寸适中:虽然它的公钥和签名尺寸比传统的 RSA/ECC 要大(公钥约 1.3KB - 2.6KB,签名约 2.4KB - 4.6KB),但在现代系统中完全可以接受。
技术细节:不仅仅是算法
这次代码合并并不仅仅是把算法塞进去那么简单。从邮件列表和代码提交来看,Red Hat 的工程师 David Howells 和社区做了大量工作:
- 1. Crypto API 更新 :内核的加密接口进行了适配,以支持这种新型的公钥算法。
- 2. 验证优先 :目前的实现主要集中在签名验证上。这是合理的,因为内核的主要职责是验证加载进来的模块是否合法,而生成签名的过程通常是在编译环境(用户空间)完成的。
- 3. FIPS 204 标准 :实现严格遵循了 NIST 发布的 FIPS 204 标准,确保了与未来合规硬件和软件的互操作性。
结语
虽然我们距离大规模通用量子计算机的商用可能还有段距离,但密码学界有一个著名的概念叫 "Store Now, Decrypt Later"(现在存储,以后解密)。
对于数字签名来说,虽然不存在“解密”的问题,但存在“伪造”的风险。
Linux 社区的这一举动证明了未雨绸缪的重要性。当那一天真的到来时,运行着 Linux 的全球数十亿台设备,已经做好了准备。
信息来源:
- • https://lore.kernel.org/lkml/20260209034257.GA2604@sol/
- • https://www.phoronix.com/news/Linux-7.0-Crypto-ML-DSA