【密码学】基于ML-DSA的门限签名

admin 2026-01-13 14:25:34 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文解析基于ML-DSA的门限签名技术,介绍了结合短复制秘密共享与非平衡超球拒绝采样的创新方案。该方案通过三轮交互机制解决了侧信道难题,确保分布式环境下的抗量子安全性,为数字资产与基础设施的信任构建提供了关键路径。 综合评分: 88 文章分类: 网络安全


cover_image

【密码学】基于ML-DSA的门限签名

原创

Litt1eQ

Coder小Q

2026年1月13日 08:31 山东

【密码学】基于ML-DSA的门限签名

Bob: Alice,最近我看到了中国银行的保管箱服务,发现他们有个”双钥匙系统”[1]特别有意思。

Alice: 哦?那是怎么运作的?

Bob: 规则是必须”客户与银行的钥匙同时使用才能开启保管箱”。银行甚至明确说他们不保留客户的备用钥匙,如果客户钥匙丢了,连银行也打不开,只能钻箱。这就确保了银行不能监守自盗,而客户也不能绕过银行验证。

Alice: 这就是典型的”信任分散”。银行提供安全的保险库设施,但把最终的访问权分摊了。既防止了单点故障,也增加了安全性。

Bob: 是啊,我就在想,咱们现在的数字签名能不能也这样?特别是那个抗量子的ML-DSA签名,能不能也做成这种”多把钥匙同时转动”才能签名的模式?这样我的私钥就不用完整地存在任何一个地方了。

Alice: 你问到点子上了,这正是密码学界最近几年在攻克的难题。物理世界的”双钥匙”或”多钥匙”看起来简单,但要把它搬到数字世界,尤其是搬到抗量子攻击的ML-DSA签名上,困难程度超乎想象。

Eve: 让我用攻击者的角度解释为什么难。假设我是个黑客,想偷你们的”数字钥匙”。物理保管箱很简单:你和银行各自用钥匙,我看不到钥匙的内部结构。但数字签名不一样——多个参与方的设备要通过网络协作生成签名,这个过程中会有数据传输。如果协议设计不好,我就能从这些传输的数据中推测出部分秘密。

Bob: 但他们不是可以加密通信吗?

Alice: 加密通信当然可以防止窃听,但问题更微妙。ML-DSA签名有个特殊机制——它在生成签名时,如果某次尝试不符合要求,会”作废”这次尝试,重新来过。这就像你们同时转动钥匙,但如果配合不默契(比如力度不对),就得重新来。关键在于:这些”作废的尝试”本身就可能泄露秘密信息。

Bob: 等等,作废了不就是扔掉吗?怎么还会泄露?

Eve: 这就是问题所在。单个人签名时,作废就是真的扔掉,外界什么都看不到。但多方协作时,你们得互相通知”这次不行,重来”。这个通知过程,即使内容加密了,我也能知道”你们尝试了但失败了”。更糟的是,如果协议要求你们透露部分中间结果来判断是否作废,那我就能从这些”失败的痕迹”中一点点拼凑出秘密。

Bob: 所以这就像我们同时转钥匙,每次失败时都要喊出自己转了多少度,虽然单次信息不多,但试多了你就能推算出每把钥匙的内部结构?

Alice: 完全正确。这就是为什么门限ML-DSA这么难做。之前的方案要么通信开销巨大(几百MB,你们的网络根本受不了),要么需要可信第三方(违背了去中心化的初衷),要么干脆放弃ML-DSA标准改用其他方案(但那样就不兼容现有系统了)。

Alice: 但是2025年迎来了转折点。del Pino和Niot在PKC上发表了名为”Finally!”的论文,奠定了理论基础;随后Celi等人在USENIX Security 2026的工作进一步将其推向实用。这两个工作合力攻克了这个难题。

Bob: 他们是怎么做到的?

Alice: 核心创新在于打破了常规,他们结合了短复制秘密共享非平衡超球拒绝采样。让我先解释第一个,这是整个方案的基石。传统的门限方案就像是撕碎一张藏宝图:把大秘密切碎,每人拿一片独一无二的残片,必须拼在一起才能复原。但”Finally!”方案更像是收集套卡。我们不切分秘密,而是预先定义秘密由许多张不同的卡片(即短秘密)组成。真正的总秘密是这套卡片的总和。这里的巧妙之处在于复制分发:每一种卡片我们都印了好几张复印件,按规则发给大家。对于N个参与方、阈值T的场景,我们确保每一种卡片都分发给了一个特定的小组(大小为)。

Bob: 等等,那不是会有很多份秘密吗?比如N=6, T=3时…

Alice: 没错,会有个秘密,每个参与方持有个秘密份额。但关键是:

  1. 每个秘密都很短(从ML-DSA的秘密分布采样)
  2. 任意T个诚实方联合起来能知道所有秘密
  3. 少于T个恶意方至少有一个秘密完全不知道

Eve: 这个设计很聪明。从攻击者角度看,只要腐化少于T个参与方,公钥中至少有一个是完全未知的,所以公钥仍然是MLWE困难问题的实例。

Bob: 套卡的比喻我懂了。那拒绝采样又是怎么回事?

Alice: 这就是第二个”魔法”了。你想,如果大家都用传统的ML-DSA方法(均匀分布),T个人要同时成功,概率就是。这就像是抛硬币,大家要同时抛出正面才算赢。

Eve: 我算算,假设单人成功率是50%,6个人同时成功(T=6)的概率就是。也就是说,平均要试60多次才能成一次,这效率太低了。

Alice: 没错,所以”Efficient Threshold ML-DSA”论文引入了超球拒绝采样。Devevey等人证明了超球是最紧凑的形状,能最大化成功率。简单说,就是把原来方形的”靶子”换成了圆形的,命中率更高。

Bob: 只是换个形状就能解决问题?

Alice: 不止。他们还用上了非平衡拒绝采样。ML-DSA的签名分两部分:和hint。Hint对安全性要求极高,一点都不能偏;但其实可以稍微”宽容”一点。

Eve: 就像是考试,核心科目(Hint)必须满分,但辅助科目()只要及格就行?

Alice: 很形象,方案引入了一个”宽容度”系数(比如v=3)。允许在更大的范围内浮动,只要最后能被验证通过就行,这一招直接把成功率拉回了实用水平。

Bob: 所以完整的签名协议是怎样的?我们已经有了短秘密共享和超球拒绝采样,现在该把它们组装起来了吧?

Alice: 没错,让我按照USENIX论文描述的完整流程讲解。这是一个三轮协议,每一轮都有精心设计的安全考量。但在开始之前,先回顾一下我们的设置:每个参与方i持有一组秘密份额,记作。当T个参与方组成签名集合时,他们通过Recover算法确定如何分配这些份额,使得每人拿到的部分秘密尽可能平衡。

Eve: 这个平衡很重要。因为越大,拒绝采样的成功率就越低。论文在附录B用图论算法优化了这个分配。

Alice: 没错,现在让我们看协议的三个阶段。

第一轮(承诺阶段)——并行采样K次

为了提高成功率,协议实际上并行运行K=4个实例。每个参与方i执行:

  1. 对每个,采样随机向量
  • 这里是从超球采样,而非ML-DSA的均匀分布。
  • 具体地,采样,然后设
  • 这个因子就是我们之前说的”非平衡”——给更大的自由度
  1. 计算K个承诺:
  2. 发送哈希承诺:

Bob: 等等,为什么要先发哈希而不是直接发?

Eve: 这就是承诺-揭示的精髓,假设我是恶意参与方,如果你们先发,我就能:

  1. 等看到所有诚实方的
  2. 计算出聚合后的我
  3. 精心选择我的我来操纵挑战
  4. 这就是rushing attack——我”抢跑”,利用你们的信息

Alice: 而哈希承诺迫使每个人在看到别人的值之前就锁定自己的选择。密码学中的经典技巧。

第二轮(揭示承诺)

各方揭示实际的,其他人验证:

如果有人作弊(揭示的值和承诺不符),协议中止。

Bob: 这时候所有人都知道了所有的,可以开始计算签名了?

Alice: 没错,每个人独立计算K个聚合承诺:

然后对每个计算挑战:

这里是消息的哈希,是ML-DSA的舍入函数,只保留高位比特以压缩通信。

第三轮(响应生成)——关键的拒绝采样

每个参与方i对每个执行:

  1. 计算候选响应:
  2. 应用非平衡超球拒绝采样HRej:
  • 将分解为
  • 检查
  • 以概率接受
  • 其中
  1. 如果至少有一个通过拒绝采样,选择第一个成功的,揭示
  2. 如果K次全部失败,发送abort

Bob: 这里,我有点疑问,为什么只揭示而不是完整的?

Alice: 因为ML-DSA的签名格式是,其中是hint,第二部分不直接出现在签名中,而是通过hint机制隐式验证。

具体来说,组合者收集所有后:

  1. 计算
  2. 计算近似误差:
  3. 计算hint:
  4. 检查、且

Bob: 等等,这个hint是什么?我有点晕了。

Alice: Hint是ML-DSA的巧妙设计,验证者本来需要检查,但在门限设置中,由于舍入和分布式计算,和之间会有误差。Hint 是一个稀疏的二进制向量(最多个1),告诉验证者”哪些位置需要进位调整”。这样:

  • 签名只需包含,而非完整的
  • 验证者用恢复正确的高位

Eve: 这就是为什么的约束更严格——它必须保证hint稀疏(),而只需满足无穷范数界。

Alice: 完全正确,这也是为什么我们用非平衡采样:给更大的球(半径),给标准球(半径),在保证安全性的同时最大化成功率。

Bob: 你之前提到是”完整的MLWE样本”,这和ML-DSA有什么不同?

Alice: 这是Finally!论文的核心创新之一,标准ML-DSA中,(只有矩阵乘法)。但在门限设置中,如果拒绝采样失败,我们需要揭示来让大家重试。问题是:揭示可能泄露关于的信息,而又和秘密相关(通过)。

Bob: 所以他们的解决方案是?

Alice: 让,其中是额外的噪声,然后。这样就是一个MLWE样本,即使在拒绝的情况下揭示,它在计算上也不可区分于随机向量(基于MLWE假设)。

Bob: 所以在拒绝的情况下揭示也是安全的?

Alice: 对的,这是Finally!论文Lemma 5的精髓。他们证明了:给定秘密和挑战,被拒绝的的分布仍然满足MLWE困难性。

Bob: 所以,我们真的做到了?把银行那个笨重的双钥匙系统,变成了这一串串轻盈的代码?

Alice: 是的。而且不仅仅是双钥匙。通过这套协议,我们将“信任”这个沉重的概念,打散成了无数微小的碎片,分发给了每一个参与者。

Eve: 以前我只需要攻破一个点,就能拿到所有。现在,秘密像幽灵一样分散在网络里,哪怕我攻陷了其中几个,真正的钥匙依然是不可触碰的。

Alice: 他们不仅解决了一个数学难题,更为未来的数字社会铺下了一块基石。从 “Finally!” 的理论突破,到 “Efficient Threshold ML-DSA” 的工程实现,这是一场跨越理论与现实的接力。

Bob: 听起来很浪漫啊。这意味着我们终于可以摆脱对单一保管人的依赖了?

Alice: 对。未来的数字资产、身份认证,甚至更重要的基础设施,都不再需要把命运系在某一把“主钥匙”上。信任不再需要中心,它是分布式的,是抗量子的,是坚不可摧的。

Eve: 看来属于我的“黄金时代”要结束了。在量子计算机都无能为力的数学迷宫面前,传统的撬锁技巧确实该退休了。

本次对话,就这么愉快的结束了,接下来,Alice,Bob,和Eve又会遇到什么故事呢,且听下回分解。快乐的时光过得特别快,又到了说再见的时候了,咱们下次再见~

参考文献

[1] 中国银行. “保管箱服务”. 中国银行澳大利亚网站. https://www.bankofchina.com/au/pbservice/pbo/201712/t20171215_10921441.html

[2] Rafael del Pino and Guilhem Niot. “Finally! A Compact Lattice-Based Threshold Signature”. In Proceedings of the 28th IACR International Conference on Practice and Theory of Public-Key Cryptography (PKC 2025). IACR Cryptology ePrint Archive, Report 2025/872, 2025. https://eprint.iacr.org/2025/872

[3] Sofía Celi, Rafael del Pino, Thomas Espitau, Guilhem Niot, and Thomas Prest. “Efficient Threshold ML-DSA”. In Proceedings of the 35th USENIX Security Symposium, 2026. IACR Cryptology ePrint Archive, Report 2026/013, 2026. https://eprint.iacr.org/2026/013


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:Coder小Q Litt1eQ《【密码学】基于ML-DSA的门限签名》

评论:0   参与:  0