发布日期:2025-06-09 浏览次数:
ML-DSA 是“模块格数字签名算法”的缩写。它是一种旨在对抗量子计算机的数字签名方法,预计量子计算机在不久的将来将破解大多数传统密码学。ML-DSA 建立在基于格的数学基础之上,具体来说,是一种称为“模块格”的数学,众所周知,对于经典计算机和量子计算机来说,这都是难以解决的问题。
如果您听说过 CRYSTALS-Dilithium,那么 ML-DSA 基本上就是它的标准化版本。它现已被 NIST 正式认可为后量子密码学标准的一部分。简而言之,ML-DSA 允许您以一种即使在量子计算机性能不断提升的情况下也能保持安全的方式对数据(例如文档、代码或证书)进行签名和验证。
当前数字签名算法(例如 RSA 或ECDSA)的问题在于,它们依赖于量子计算机能够快速解决的数学问题。这意味着,当量子机器变得足够强大(而且它们正在朝着这个方向发展)时,它们可以伪造签名、冒充他人,或入侵原本被认为是安全的系统。后量子签名方案旨在即使攻击者拥有量子计算机也能保持安全。它们不依赖于大数分解或椭圆曲线数学。
相反,它们基于更难的难题,量子计算机至少就我们目前所知而言无法轻易破解。这种转变的关键在于保持领先地位,并确保系统的长期安全。
早在2016年,NIST就启动了一个大型项目,旨在寻找并批准能够应对量子未来的加密算法。经过多轮测试、审查以及全球加密社区的反馈,他们最终选定了一些算法进行推进。ML-DSA(原名CRYSTALS-Dilithium)就是其中之一。2024年8月,NIST以FIPS 204的名义发布了ML-DSA,使其成为后量子时代的首选数字签名方案之一。这使得ML-DSA成为构建新安全工具或升级旧安全工具以应对量子变革的可靠选择。
数字签名有点像手写签名,只不过是针对数据的。当有人对文档或代码进行数字签名时,就证明数据来自他们,且未被篡改。这是通过一对加密密钥实现的:一个是私钥(保密),一个是公钥(与他人共享)。你用私钥对数据进行签名,其他人可以用你的公钥进行验证。
它们无处不在,用于软件更新、安全电子邮件、数字证书,甚至区块链交易。如果没有数字签名,互联网上的信任将彻底崩塌。
如今,说到数字签名,RSA和 ECDSA 是常被提及的方案。它们已经存在了一段时间,并且建立在易于单向计算但难以逆向计算的数学问题之上,例如大数因式分解(RSA)或椭圆曲线方程求解(ECDSA)。
问题是什么?这些系统在设计时就考虑到了普通计算机。它们的安全性取决于某些问题,这些问题用传统方法解决起来非常耗时。但随着量子计算机的强大,RSA 和 ECDSA 背后的数学原理变得很容易被破解,这意味着有人可以伪造签名或解密他们本不该解密的东西。
另一个问题是大小和速度。RSA 密钥和签名可能非常庞大,这对于存储空间或带宽有限的系统来说并不理想。ECDSA 更小、速度更快,但在量子攻击者面前仍然会失效。
量子计算机不仅让事情变得更快,还改变了游戏规则。像Shor这样的算法使得在合理的时间内破解RSA和ECDSA成为可能。这意味着,如果有人今天存储了你的签名数据,明天就能访问量子计算机,他们就可以伪造你的签名,假装它来自你。
尽管我们还没有拥有庞大而稳定的量子计算机,但这种担忧已经足够真实,以至于安全机构已经在推动替代方案。他们的想法是,在量子技术变得实用时,转向能够经受住考验的新型数字签名方法。
基于格的密码学是最有前途的替代方案之一。它不依赖于数字分解或曲线数学,而是基于由空间中网格状点(称为格)组成的几何形状。
这里棘手的问题是找到这些格子中最短或最近的向量。听起来很简单,但实际上非常困难,即使对于量子计算机来说也是如此。正因如此,它才成为后量子密码学的坚实基础。
ML-DSA 使用一种称为模块格的特殊格结构,它在速度、大小和安全性之间实现了良好的平衡。它不仅仅是基于理论格的方法,这些方法已经经过多年测试,并且正在被构建到标准和实际系统中。
ML-DSA 并非凭空而来。它实际上是 CRYSTALS-Dilithium 的官方版本,后者是 NIST 后量子密码学项目的领跑者。研究人员使用基于格的数学构建了 Dilithium,并经过多年的分析和公开测试,表现良好。
经过几轮评估、调整和反馈,NIST 最终确定了设计方案,并将其更名为 ML-DSA(Module-Lattice 数字签名算法的缩写)。该版本于 2024 年作为FIPS204 发布。因此,当人们谈论 ML-DSA 时,他们基本上指的是具有相同核心设计的 Dilithium 的完善标准化版本。
ML-DSA 脱颖而出的原因如下:
后量子安全:它是为了应对来自经典计算机和量子计算机的攻击而构建的。
快速签名和验证:性能稳定,比其他一些安全但速度慢的后量子选项更好。
合理的密钥和签名大小:虽然不小,但与 SPHINCS+ 等较旧的量子安全方案相比更易于管理。
简单的设计:使用整数运算(无浮点),这使得实现更容易并有助于避免错误或泄漏。
基于格:具体来说,模块格比基本格更难攻击,但比成熟的环格更有效。
简而言之,ML-DSA 可以完成工作,但不会过于复杂或繁重。
ML-DSA 的设计考虑了以下几点:
抗量子性:首先,即使攻击者拥有量子计算机,它也需要保持安全。
无需花哨的技巧:某些加密方案依赖于复杂的结构或算法,这些结构或算法难以安全实现。ML-DSA 则坚持使用更简单的工具,例如哈希函数、模运算和结构化随机性。
侧信道感知:它避免了可能通过时间或电力使用泄露敏感信息的操作(如浮点数学或基于秘密数据的分支)。
广泛的可用性:其理念是让它能够在笔记本电脑、服务器、嵌入式设备等多种平台上运行,而无需客户硬件。
所有这些选择都是为了达到一种平衡,一种足够强大以经受住量子转变,但仍然可以在实际系统中推广的实用性。
一旦理解了格数学的基础知识,ML-DSA 中的密钥生成就非常简单了。其核心思想是生成一个公钥和一个私钥,它们以某种方式匹配,只有私钥才能创建有效的签名。
在幕后,它使用随机选择的多项式和一些噪声(是的,随机性在这里起着重要作用)来构建一个小的线性方程。你的私钥由符合该方程的秘密值组成,而你的公钥则是某人在不知道输入的情况下仅看到最终结果时得到的。由于它建立在复杂的格子问题上,即使使用量子计算机,也无法逆转这个过程(从公钥到私钥)。
使用 ML-DSA 签署消息涉及以下几个步骤:
您获取您的消息并将其与您的公钥和一些新的随机数一起进行哈希处理。
这给了你一个挑战价值。
然后,您使用您的密钥和这个挑战来构建一个形成您签名的短格向量。
为了确保一切安全且不泄露信息,签名会根据特定大小限制进行检查。如果不通过,则会使用新的随机数再次尝试。
此重试步骤很重要,因为它可以帮助算法避免泄露有关私钥的任何提示。
验证签名时,公钥就会发挥作用。您需要再次对消息(以及签名的部分内容)进行哈希处理,并检查结果是否与基于公钥的预期相符。
你基本上是在检查:“如果签名的人有正确的私钥,这个签名会从系统中出来吗?”
如果测试通过,则签名有效。如果测试不通过,则被拒绝。它速度很快,而且不需要任何私人信息,因此可以在任何地方使用,包括浏览器、服务器、嵌入式设备等等。
ML-DSA 中的“ML”代表模块格(Module Lattice),它是通用格结构的略微优化版本。简单来说,格是由向量的线性组合创建的空间点网格。
模块格比普通格安全性更高,但性能损失更小。它们还能实现更紧凑的密钥和签名大小,且不会使数学计算过于复杂。可以将其视为速度、大小和安全性之间的明智权衡。
ML-DSA 很大程度上依赖于 SHAKE-128 和 SHAKE-256,这两个函数是可扩展输出函数 (XOF)。与提供固定大小输出的常规哈希函数不同,XOF 可以扩展到所需的任意长度。
在 ML-DSA 中,这些用于:
在签名期间创建挑战值。
散列消息。
导出随机性。
生成公共参数。
它们有助于保持算法的一致性和安全性,而无需大量不同的哈希工具。此外,它们效率高,能够有效控制性能。
ML-DSA 分为三个级别:ML-DSA 44、ML-DSA 65 和 ML-DSA 87。每个级别都针对不同的 NIST 安全级别,这基本上意味着即使使用量子计算机,攻击者也需要达到何种程度才能破解它。级别越高,保护越强,但也意味着密钥越大,性能也会下降。
让我们来分解一下:
这是三者中最轻量级的版本,适用于需要良好安全性但不想承担太多开销的系统。例如,内存或处理能力有限的物联网设备或嵌入式系统。
公钥大小:~1.3 KB
私钥大小:~2.8 KB
签名大小:~2.4 KB
速度:三者中速度最快。
当您想要后量子保护但又需要保持小巧和快速时,这是一个不错的选择。
此版本将安全性提升至 NIST 3 级。这是一个中间选项,仍然相当紧凑,但防御能力更强。
公钥大小:~1.9 KB
私钥大小:~4.0 KB
签名大小:~3.3 KB
速度:比ML-DSA 44慢一点,但仍然很实用。
如果您正在构建需要更高级别保证的东西,例如金融应用程序或公共部门软件,那么这可能是最佳选择。
这是最强大的选项,专为政府系统、关键基础设施或敏感数据的长期保护等高安全性用例而设计。
公钥大小:~2.6 KB
私钥大小:~5.4 KB
签名大小:~4.6 KB
速度:比其他两个慢,但仍然可用。
它更重,但它仍然适用于无法破坏签名方案的场景。
事情是这样的——安全性越高,密钥和签名就越长。这就是数学原理。
随着级别的上升,签名的大小也会增大,这对于低带宽网络来说可能是一个问题。
密钥的大小也会增加,这会影响存储它们所需的内存量。
尽管验证通常很快,但随着安全性的提高,性能会受到影响,尤其是在签名生成期间。
因此,您可以根据自己的需求(速度、存储或强度)选择适合您情况的 ML-DSA 版本。这并不是“一刀切”的做法,而是根据具体情况选择合适的工具。
性能方面,ML-DSA 表现相当不错,尤其是与其他后量子选项相比时。
密钥生成:非常快。它基本上是一些快速的格子数学运算和一些哈希运算。
签名:比密钥生成稍慢,因为有时必须重试该过程以满足大小限制,但总体上仍然有效。
验证:通常是三者中最快的。它轻量级且不需要私钥,因此在验证者方面运行良好。
一般来说,验证比签名更快,两者速度都足以满足日常使用。即使在资源有限的系统上,延迟也几乎难以察觉。
这是一个近似的想法(使用纯软件实现):
操作 | ML-DSA 44 | ML-DSA 65 | ML-DSA 87 |
密钥生成 | ~0.15 毫秒 | ~0.22 毫秒 | ~0.33 毫秒 |
符号 | ~0.35 毫秒 | ~0.45 毫秒 | ~0.65 毫秒 |
核实 | ~0.08 毫秒 | ~0.12 毫秒 | ~0.19 毫秒 |
注意:这些数字可能因实施和平台而异
ML-DSA 在资源使用方面非常友好:
CPU:在通用 CPU 上运行良好,无需特殊指令或硬件。它针对整数运算进行了优化,有助于保持计算的简洁性和可预测性。
RAM:不需要太多。即使是最大的型号 (ML-DSA 87) 也能轻松适配大多数现代系统,包括内存适中的微控制器。
硬件加速:硬件加速并非必需,但如果你有 SHA-3 加速(例如某些 ARM 或 Intel 处理器的加速),这有助于加快 SHAKE-128/256 等哈希任务的速度。但同样,这不是必需的。
总体而言,ML-DSA 取得了良好的平衡;它足够安全,可以用于后量子时代,但不会耗尽电池或耗尽 CPU 的性能。这使得它在笔记本电脑、服务器甚至一些物联网设备上都相当实用。
如果您正在使用公钥基础设施 (PKI),ML-DSA 可以在需要数字签名的地方使用,例如证书、CRL、OCSP 响应或代码签名。
您基本上需要将当前的签名算法(例如 RSA 或 ECDSA)替换为 ML-DSA,同时保持PKI其余设置基本相同。证书颁发机构 (CA)需要支持新的签名算法,客户端也需要理解它,但核心流程仍然相似:生成密钥对 → 使用私钥签名 → 使用公钥验证。
X.509 证书中对 ML-DSA 的支持是后量子标准化的一部分,因此目前还不是即插即用的,但各个部分正在逐步到位。
软件和固件更新是攻击者的主要目标,因此数字签名至关重要。ML-DSA 可用于对更新包进行签名,以抵御量子攻击。
更大的签名大小可能意味着需要调整数据的存储或传输方式(尤其是无线更新),但这完全可行。对于计划支持未来 10 到 15 年设备的供应商来说,添加像 ML-DSA 这样的后量子签名是一个不错的选择。
与一些速度非常慢或规模庞大的后量子方案不同,ML-DSA 相对实用。
CMS(加密消息语法)用于 S/MIME、时间戳和数字文档签名等领域。可以通过定义新的算法标识符和编码规则将 ML-DSA 添加到 CMS。
一旦完成,您就可以使用 ML-DSA 来签名电子邮件、文档或几乎任何类型的数字信息,就像现在使用 RSA 或 ECDSA 一样。关键在于确保解析和验证这些 CMS 结构的软件知道如何处理 ML-DSA 签名。
因此,如果您正在研究使用 CMS 的标准或产品,添加 ML-DSA 主要是为了更新对新算法的支持并处理更大的密钥和签名大小。
在智能卡和HSM(硬件安全模块)中使用 ML-DSA是比较有趣的集成路径之一。在这些领域,私钥需要保持锁定状态,并且操作必须快速高效。
ML-DSA 的密钥长度相对较短(与其他 PQC 方案相比),因此更容易装入智能卡有限的存储空间。而且由于签名速度足够快,ML-DSA 可以在非接触式或嵌入式安全元件的速度限制内实际运行。
对于 HSM 来说,更大的挑战是更新固件以支持格数学和 SHAKE 函数。但一旦解决了这个问题,ML-DSA 就可以像任何其他签名算法一样处理:加载密钥、执行操作并返回签名。
揽阁信息提供的Thales Luna HSM,目前已经支持了ML-DSA算法。欢迎联系我们获取更多资料。
ML-DSA 并非目前唯一的后量子签名方案。FALCON 和 SPHINCS+ 是业内另外两个重量级的方案。它们各有优缺点、独特之处以及最佳方案。让我们来一一分析。
FALCON 也像 ML-DSA 一样基于格,但它使用一种称为 NTRU 格的不同数学技巧,并依赖于浮点运算,是的,就是你在计算器中看到的那种。
ML-DSA 更容易安全实现。FALCON 需要非常谨慎地处理浮点舍入,这很难做到正确。一个错误就可能让你丢失密钥。
FALCON 具有较小的签名(第 1 级约为 666 字节),非常适合带宽受限的用例。
但 ML-DSA 具有更小的公钥和更直接的结构,更容易审计和测试。
简而言之,如果您拥有安全且精确的实现方案,FALCON 非常适合紧凑签名。ML-DSA 对开发人员更友好,并且在侧信道方面风险更低。
SPHINCS+ 则完全不同。它并非基于格,而是基于哈希函数,哈希函数是目前为止最易理解、最简单的加密工具。
SPHINCS+ 是无状态的,从密钥管理的角度来看这很好。
但它的签名大小非常大,达到 8 KB 甚至更大。这对于低内存设备或传输限制严格的系统来说可能很麻烦。
ML-DSA 在速度上更胜一筹,尤其是在签名生成方面。SPHINCS+ 则以速度慢而闻名,这限制了它在高吞吐量环境中的使用。
由于设计保守,SPHINCS+ 通常是“安全后备方案”。但 ML-DSA 为大多数实际应用提供了更为平衡的权衡。
以下是快速并排查看:
算法 | ML-DSA 44(L2) | FALCON 512(L1) | SPHINCS+ 128秒(L1) |
公钥大小 | ~1.3 KB | ~0.9 KB | ~32 字节 |
私钥大小 | ~2.8 KB | ~1.3 KB | ~64 字节 |
签名尺寸 | ~2.4 KB | ~666 字节 | ~8 KB |
密钥生成速度 | 快速地 | 快速地 | 慢的 |
标志速度 | 快速地 | 中等的 | 非常慢 |
验证速度 | 非常快 | 快速地 | 中等的 |
安全基础 | 格子 | 格子 | 基于哈希 |
易于使用 | 简单的 | 棘手(浮点) | 简单但很大 |
注意:数字是近似值,并且可能根据实施情况而有所不同。
总之:
当您想要在尺寸、速度和简单性之间取得良好的平衡时,请使用 ML-DSA。
如果您确实需要微小的签名并且能够承担实施过程中所需的谨慎,请使用 FALCON。
如果尺寸和速度不是您的最大问题,并且您想要最保守的设计,请使用 SPHINCS+。
ML-DSA 已由 NIST 根据 FIPS 204 正式标准化。这是一件大事;这意味着 ML-DSA 现已成为美国政府批准的用于应对量子威胁的数字签名算法列表的一部分。
FIPS 204 列出了该算法的细节,包括:
密钥如何生成
如何创建和验证签名
每个安全级别可接受的参数(ML-DSA 44、65、87)
它还定义了测试向量和格式,以确保实现行为一致。如果您正在构建或验证使用 ML-DSA 的软件,FIPS 204 是首选规范。
简而言之,FIPS 204 是 ML-DSA 的官方食谱。
量子准备的时代已经一分一秒地过去。NIST 已经明确表示:到 2030 年代初,密码系统应该达到后量子安全水平。
虽然这听起来可能遥不可及,但构建和推广变革,尤其是在政府、金融或医疗保健等规模庞大、发展缓慢的环境中,需要数年时间。因此,2025-2027 年是规划和试点部署的软起点。
以下是一般建议:
2025–2026 年:开始在开发或混合系统中测试后量子算法(如 ML-DSA)。
2027–2029 年:开始在生产系统中部署,特别是对于任何长期项目(例如签名固件、数字身份证或电子投票)。
2030 年以后:所有新的加密部署都应默认具有量子安全特性。
基本上,不要等到 2029 年才感到恐慌。
美国政府通过管理和预算办公室(OMB)和美国国家安全局的CNSA 2.0指南制定了明确的后量子过渡计划。
要点:
到 2025 年,各机构必须识别所有使用公钥加密的系统并按优先级对其进行排序。
到 2027 年,高优先级系统(如国家安全、基础设施或高价值数据)应该开始过渡到 NIST 批准的后量子算法。
2030年至2035年间,所有联邦系统必须全面转向量子安全加密技术。
ML-DSA 恰好符合这一时间表,它是未来授权批准使用的签名方案。因此,如果您与联邦机构或遵循联邦指导的大型企业合作或向其销售产品,那么 ML-DSA 是您加密路线图中不可或缺的一部分。
开始使用后量子签名可能会面临许多新算法、密钥大小、集成难题以及合规性问题。这正是我们的优势所在。
揽阁信息的团队拥有20年的信息安全从业经验,目前已经整合了Thales HSM+Digicert工具的方案,可有效帮助您实现加密算法的迁移。
如果您的团队希望测试或推出后量子签名,而无需从头构建一切,我们很乐意为您提供帮助。您可以先从小处着手,不断尝试,然后逐步发展。
ML-DSA 不仅仅是另一种后量子签名算法;它是领跑者之一,得到了 NIST 的正式支持,旨在处理现实世界的用例,而不会使事情过于复杂。它的速度足以应对大容量签名,适用于 PKI 和 CMS 等现有系统,并且避免了 FALCON 等替代方案中常见的一些棘手的数学陷阱。
如果您正在考虑为您的数字签名提供面向未来的保护,无论是用于代码、固件、文档还是安全通信,ML-DSA 都值得认真考虑。
如果您想快速上手,我们的解决方案实现了对ML-DSA 的支持。它负责密钥处理、签名流程和集成部分,让您可以专注于重要的事情:轻松交付安全、支持量子计算的软件。
如果您已准备好更智能地签名并保持领先地位,请联系我们。
揽阁信息 · 值得您信赖的信息安全顾问!