2个版本

0.2.2 2024年6月17日
0.2.0 2024年6月3日

#790 in 密码学


用于 5 个crate(4个直接)

MIT/Apache

510KB
4.5K SLoC

分布式密钥生成

分布式密钥生成(DKG)是门限密码系统的一个主要组件。它允许一组n个服务器共同生成一对公钥和私钥,而不需要假设任何可信方。在存在恶意敌手的情况下,敌手可能破坏一部分(或门限)的参与者,并强迫他们遵循任意选择的协议。DKG可以在敌手破坏部分参与者并强迫他们遵循任意协议的情况下运行。(摘自GJKR99最新修订版

此代码库实现了Pedersen的DKG的简化版,来自Ped91(第3.1节)。GJKR99称此为“联合-Feldman DKG”(以下简称JF-DKG)

jf-dkg

广播通道

协议需要安全的认证广播通道,我们称之为。通过BoardPublisher trait来抽象化向板发布。

支持的板

目前,BoardPublisher为所有Write实现者实现。此用例的一个简单示例是

  1. 每个参与者将他们的份额发布到文件中(文件被视为板)
  2. 每个参与者将他们的文件上传到服务器,该服务器充当不可信的协调器
  3. 每个参与者从服务器下载其他参与者的加密份额

在这种情况下,协调器可以拒绝贡献,从而使DKG停止,但他们不能以任何其他方式影响协议,除了对JF-DKG已知的攻击。

我们可能考虑在未来切换到async-trait以支持异步向板发布。特定义也可能更改,以便在每个调用中通过网络传递认证信息。

安全通信份额

我们假设公钥基础设施。在DKG开始之前,每个参与者创建一对密钥并与其他参与者共享他们的公钥。在评估每个参与者的索引处的多项式后,使用椭圆曲线集成加密方案将份额用相应参与者的公钥加密,然后发送到广播频道。

协议选择说明

在[GJKR99]中,作者表明Pedersen的DKG不能生成具有均匀分布的秘密密钥。在GJK02中,作者回顾了Pedersen的DKG并证明,即使秘密密钥的分布不均匀,也可以安全地实例化Schnorr签名方案的阈值版本。他们还推测,这种性质可以推广到其他阈值密码系统,其安全性降低到离散对数假设。我们假设JF-DKG可以安全地与BLS阈值签名方案实例化。

依赖项

~14-26MB
~396K SLoC