2个版本
0.2.2 | 2024年6月17日 |
---|---|
0.2.0 | 2024年6月3日 |
#790 in 密码学
510KB
4.5K SLoC
分布式密钥生成
分布式密钥生成(DKG)是门限密码系统的一个主要组件。它允许一组n个服务器共同生成一对公钥和私钥,而不需要假设任何可信方。在存在恶意敌手的情况下,敌手可能破坏一部分(或门限)的参与者,并强迫他们遵循任意选择的协议。DKG可以在敌手破坏部分参与者并强迫他们遵循任意协议的情况下运行。(摘自GJKR99最新修订版)
此代码库实现了Pedersen的DKG的简化版,来自Ped91(第3.1节)。GJKR99称此为“联合-Feldman DKG”(以下简称JF-DKG)
广播通道
协议需要安全的认证广播通道,我们称之为板。通过BoardPublisher
trait来抽象化向板发布。
支持的板
目前,BoardPublisher
为所有Write
实现者实现。此用例的一个简单示例是
- 每个参与者将他们的份额发布到文件中(文件被视为板)
- 每个参与者将他们的文件上传到服务器,该服务器充当不可信的协调器
- 每个参与者从服务器下载其他参与者的加密份额
在这种情况下,协调器可以拒绝贡献,从而使DKG停止,但他们不能以任何其他方式影响协议,除了对JF-DKG已知的攻击。
我们可能考虑在未来切换到async-trait
以支持异步向板发布。特定义也可能更改,以便在每个调用中通过网络传递认证信息。
安全通信份额
我们假设公钥基础设施。在DKG开始之前,每个参与者创建一对密钥并与其他参与者共享他们的公钥。在评估每个参与者的索引处的多项式后,使用椭圆曲线集成加密方案将份额用相应参与者的公钥加密,然后发送到广播频道。
协议选择说明
在[GJKR99]中,作者表明Pedersen的DKG不能生成具有均匀分布的秘密密钥。在GJK02中,作者回顾了Pedersen的DKG并证明,即使秘密密钥的分布不均匀,也可以安全地实例化Schnorr签名方案的阈值版本。他们还推测,这种性质可以推广到其他阈值密码系统,其安全性降低到离散对数假设。我们假设JF-DKG可以安全地与BLS阈值签名方案实例化。
依赖项
~14-26MB
~396K SLoC