什么是分布式密钥生成(DKG)?
摘要
一篇技术博客文章,解释使用多方计算进行分布式密钥生成(DKG),展示各方如何在没有任何单一一方持有完整私钥的情况下共同生成密钥,并附带一个完整示例。
暂无内容
查看缓存全文
缓存时间: 2026/08/05 16:55
# 什么是分布式密钥生成(DKG)?
来源:https://stoffelmpc.com/stoffel-blog/what-is-distributed-key-generation-(dkg)
在之前的文章中,我们解释了如何创建份额以及如何使用这些份额进行算术运算。通过具体示例,你已经大致了解了如何将MPC的基础用于你的需求。然而,它仍然非常抽象。所以现在是时候介绍一个我们有解决方案的MPC真实用例:分布式密钥生成(DKG)。在本文中,我们将讲解一个非常简单且朴素的DKG协议。
假设你和你的朋友们想要共享一个加密货币钱包(或者GitHub SSH密钥,思路相同)。但是,伙伴们无法聚在一起来生成密钥,然后再将其拆分成份额。因此,你需要一种方式来生成共享密钥,同时没有任何单个人持有完整密钥。朋友群体中的阈值成员应当能够重建该密钥。
这种场景与许多真实世界用例相似。分布式密钥生成适用于:
- 生成新的加密货币钱包,而不让完整私钥出现在单一位置
- 在不改变底层秘密的情况下更改秘密共享秘密的份额,这被称为份额刷新
- 在MPC协议中替换分发者(dealer)
就本文而言,我们将只关注公钥/私钥密码系统中的密钥。不过,这里的概念可以应用于任何不是密钥的底层秘密。
更正式地说,我们想要计算 key ← rG,其中 r 是 Z 中的随机整数,G 是某个生成元。具体来说,在MPC中,我们实际上想要计算 [r]G。如果你读过之前的文章,你已经有足够的知识来完成这件事。
从根本上说,我们只是在生成 [r]。由于 G 是已知的标量元素,[r]G 只是与公开常数的标量乘法。因此,只需展示如何得到 [r] 即可。
具体而言,协议如下:
1. 每一方生成自己的随机数 ri,例如通过本地机器上的TRNG或 /dev/urandom。
2. 他们将 ri 秘密共享给其他方,得到 [ri]。因此,方 i 拥有自己的 ri,以及所有 j ≠ i 的 [rj]。
3. 为了得到 [r],每一方计算 Σ[ri]。由于加法在秘密份额上是线性的,求和不需要各方之间进行通信。
4. 然后每一方都可以自行计算 [r]G。
瞧,我们以分布式方式生成了一把密钥。
让我们把这个过程具体化。在 Z17 中运行,包含3方,阈值为2,因此每方使用一个1次多项式进行共享。
- 方1选择 r1 = 5,多项式 f1(x) = 5 + 3x。份额:f1(1) = 8,f1(2) = 11,f1(3) = 14
- 方2选择 r2 = 11,多项式 f2(x) = 11 + 7x。份额:f2(1) = 1,f2(2) = 8,f2(3) = 15
- 方3选择 r3 = 9,多项式 f3(x) = 9 + 2x。份额:f3(1) = 11,f3(2) = 13,f3(3) = 15
每一方将他们收到的份额相加:
- 方1:8 + 1 + 11 = 20 = 3(mod 17)
- 方2:11 + 8 + 13 = 32 = 15(mod 17)
- 方3:14 + 15 + 15 = 44 = 10(mod 17)
这些正好是 f(x) = 8 + 12x 的份额,其常数项为 r = 5 + 11 + 9 = 25 = 8(mod 17)。任意两方都可以通过插值恢复 r = 8,并且每一方可以计算自己的份额乘以 G,从而共同推导出公钥 rG。没有人曾经看到过 r。
注意这个协议的几个特点:
- 除了发送 ri 的份额之外,各方之间不需要通信
- 假设网络是同步的
- 假设所有方都是半诚实的
在实践中,网络是混乱且不可预测的。我们的异步DKG解决方案解决了网络异步且各方可能是恶意的情况。
立即预约演示(https://tally.so/r/1A9yOW),分发你的秘密。
相似文章
FedeKD:在非同质化设置下用于鲁棒联邦知识蒸馏的基于能量的门控机制
本文介绍了 FedeKD,这是一种用于联邦知识蒸馏的可靠性感知框架,采用基于能量的门控机制来缓解非同质化设置下的负迁移问题。作者证明,基于样本级信任度对知识传输进行加权,可以在无需公共数据集的情况下提高鲁棒性和预测性能。
评估LLM模拟器作为差分隐私数据生成器
本论文评估基于LLM的模拟器作为差分隐私合成数据生成器的能力,使用PersonaLedger来评估LLM是否能够忠实地复现受DP保护角色的统计分布。虽然在欺诈检测效用方面取得了良好成果(在ε=1时AUC为0.70),但该研究发现了由系统性LLM偏差造成的显著分布漂移,该偏差会覆盖输入统计数据。
Coldkey – 后量子 age 密钥生成与纸质备份工具
Coldkey 是一个命令行工具,用于生成后量子 age 加密密钥,并创建带有 QR 码的可打印 HTML 备份,以实现安全的离线存储。
DiffusionGemma:开发者指南 - Google Developers Blog
DiffusionGemma 是 Google DeepMind 推出的全新实验模型,可在 256 令牌画布上实现并行生成,在 GPU 上令牌生成速度提升高达 4 倍。本开发者指南阐述了其架构、双向上下文,并提供了用于解决数独的微调配方。
后量子密码学现状
详细概述了向后量子密码学的过渡进程,涵盖NIST对ML-KEM和ML-DSA的标准化、“现在收集、以后解密”威胁、混合密钥交换的采用,以及PKI分裂为MTC和基于ML-DSA的X.509。