47、Pedersen分布式密钥生成协议的安全应用

Pedersen分布式密钥生成协议的安全应用

1. 引言

在密码学领域,阈值签名方案是保障信息安全的重要工具。本文主要探讨了Pedersen的分布式密钥生成(DKG)协议在阈值Schnorr签名方案中的安全应用,分析了不同方案的计算成本、效率和安全性,并给出了相应的证明。

2. 预备知识
  • 计算、通信和对抗模型
    • 我们在阈值签名方案的标准模型下工作,涉及n个玩家和一个对手。玩家由概率多项式时间图灵机建模,对手也建模为PPT TM。
    • 玩家通过私有且经过认证的点对点通道连接,同时拥有专用广播通道。
    • 初始输入为一个离散对数方案的三元组(p, q, g),其中p和q是素数,g是Z∗p中阶为q的子群Gq的生成元。
    • 对手可以请求对自适应选择的消息进行签名,并且最多可以破坏t < n/2个玩家。我们假设对手是静态的,即在协议开始时选择被破坏的玩家。
    • 采用部分同步通信模型,玩家配备同步时钟,对手在每个通信轮次中最后发言,被称为“急进对手”。
  • 可忽略概率 :若对于每个多项式P(·),函数f(k) ≤ (1/P(k))对于所有足够大的k成立,则称f为可忽略函数。某个事件以可忽略概率发生意味着该事件的概率是安全参数k的可忽略函数。
  • 离散对数假设 :设PRIMES(k)是满足存在k位素数q整除p - 1的poly(k)位素数p的集合。对于每个概率多项式时间算法I和PRIMES(k)中的每个p,概率Pr[g ← Gq; x ← Zq; I(p, q, g, gx) = x]是可忽略的。
  • 阈值签名方案的安全概念 :一个阈值签名方案在对抗阈值t下是安全的,当且仅当它既健壮又不可伪造。健壮性指在对手存在的情况下,阈值签名协议除了以可忽略的概率外,能对请求的消息产生有效签名;不可伪造性指在执行分布式密钥生成协议产生公钥后,对手在参与多项式次数的阈值签名协议运行后,伪造新消息签名的概率是可忽略的。
  • 模拟证明技术 :为证明阈值签名方案的不可伪造性,我们使用模拟对手在分布式计算中视图的标准技术。构造一个模拟器,在输入困难问题的随机实例时,能模拟对手对阈值协议执行的视图,使得该视图与实际随机执行的视图不可区分,并且如果对手成功伪造签名,模拟器能将该伪造转化为解决输入的困难问题。
  • 随机预言机模型 :我们的安全证明在随机预言机模型中进行,将哈希函数(如MD5或SHA1)建模为理想随机预言机,即对手在访问固定哈希函数和真正随机函数时,成功伪造签名的概率相同。
  • 符号表示 :本文中的所有算术运算都在某个有限群或域中进行,实际上都是模某个素数(q或p)运算。为简化符号,我们常省略mod p或mod q,但从上下文应能明确正确的模数。
3. Pedersen的分布式密钥生成协议
  • 协议流程
    • 步骤1 :每个玩家Pi选择一个Zq上的t次随机多项式fi(z) = ai0 + ai1z + … + aitzt,广播Xik = gaik mod p(k = 0, …, t),将ai0记为xi,Xi0记为yi。然后计算xij = fi(j) mod q并秘密发送给玩家Pj。
    • 步骤2 :每个玩家Pj验证从其他玩家收到的份额,通过检查gxij = ∑(Xik)jk mod p(i = 1, …, n)。如果检查失败,Pj广播对Pi的投诉。
    • 步骤3 :如果超过t个玩家对玩家Pi投诉,则Pi被判定为故障并被取消资格。否则,Pi为每个投诉的玩家Pj揭示匹配上述等式的份额xij。如果任何揭示的份额不满足该等式,Pi被取消资格。被取消资格的玩家的秘密设为xi = 0,yi = 1。
    • 步骤4 :公共值y计算为y = ∏yi mod p,秘密值x是所有xi的和模q,但任何一方都不直接计算x。每个玩家Pi保留在n次并行的Feldman可验证秘密共享(VSS)运行中收到的所有值,用于后续秘密重建的验证。
  • 协议性质
    • 健壮性 :Ped - DKG协议的健壮性源于Feldman的VSS协议的健壮性。协议结束时,秘密x唯一确定,最多t < n/2个恶意服务器的行为无法阻止其重建。
    • 保密性 :Ped - DKG协议的保密性有些模糊。对手可以在一定程度上控制公钥y的分布,例如通过选择自己的贡献xB,使协议输出具有特定属性的y。然而,对于使用该协议的阈值密码系统的安全性证明,以下“类似保密性”属性足够:公钥y是好玩家均匀选择的yG和坏玩家贡献的yB = gxB的乘积。在离散对数假设下,对手无法选择xB使y落入任何多项式大小的集合Y。
4. 使用Ped - DKG的阈值Schnorr签名方案
  • Schnorr签名方案
    • 设p, q是素数,g是Z∗p中阶为q的子群Gq的生成元,H是哈希函数,建模为理想随机函数。私钥x随机选择自Zq,公钥y = gx mod p。
    • 对消息m的签名计算为(c, s),其中s = k + cx mod q,c = H(m, r),r = gk mod p。签名可以通过计算r = gsy - c mod p并检查c = H(m, r)进行公开验证。
    • 在随机预言机模型下,该方案在选择消息攻击下的不可伪造性可归结为离散对数假设。
  • 使用Ped - DKG的阈值版本Schnorr方案
    • 初始化 :首先执行Ped - DKG协议进行分布式密钥生成,输出私钥x的秘密共享和公钥y = gx。
    • 阈值签名协议TSch
      • 步骤1 :玩家执行一次Ped - DKG协议,每个玩家Pi持有秘密k的加法份额ki,生成公共值r = gk和ri = gki。
      • 步骤2 :每个玩家本地计算挑战c = H(m, r)。
      • 步骤3 :玩家执行Feldman秘密共享的重建阶段,计算s = k + cx。每个玩家Pi广播其加法份额si = ki + cxi,通过检查gsi = riyc i验证份额。如果验证失败,重建xi和ki并公开计算si。最终输出签名(c, s),其中s = s1 + … + sn。
  • 效率考虑
    • 无故障时,上述协议在步骤(1)的Ped - DKG协议中只需要一轮广播。
    • 如果验证者直接与每个玩家Pi通信,当Pi收到并验证要签名的消息m时,触发步骤1的Ped - DKG协议并广播消息m,可检测验证者的不一致请求。
    • 无故障时,步骤3的广播可以避免,每个玩家Pi将值c和其份额si发送给验证者,验证者检查签名(c, s)的有效性。
    • 与Gennaro等人的DKG协议实现的相同协议相比,无故障时该协议的广播轮数更少。步骤(1)可以离线执行,因此经过预处理后,阈值Schnorr签名在无故障时是非交互式的。
5. 阈值签名方案(Ped - DKG, TSch)的安全性
  • 健壮性 :(Ped - DKG, TSch)阈值签名方案的健壮性直接源于Ped - DKG协议的健壮性。
  • 不可伪造性
    • 定理1 :在离散对数假设下,阈值签名方案(Ped - DKG, TSch)在静态对抗模型中,对抗阈值t < n/2,在随机预言机模型下是不可伪造的。
    • 证明 :假设存在一个破坏该签名方案不可伪造性的对手,我们构造一个模拟器SIM,使用该对手在输入随机挑战值yT时计算离散对数。
      • SIM在初始Ped - DKG协议中,将目标值yT嵌入玩家Pn对生成公钥的贡献yn中。
      • 对于对手请求签名的每个消息m,SIM模拟TSch协议的执行。选择随机值c和sn,计算rn = gsny - c n,并在步骤(1)中模拟玩家Pn的Fel - VSS协议,使Pn广播的rn为所需值。
      • 为了以不可忽略的概率提取c作为H在(m, r)上的输出,SIM在模拟步骤(1)计算ri后,抛硬币b。
        • 如果b = 0,在模拟步骤(1)中随机回答对手对H的所有新查询。如果步骤(1)计算的r使得H已经被询问过(m, r),则模拟器失败;否则,设置H(m, r) = c并成功。
        • 如果b = 1,随机选择一个索引i ∈ {1, …, qH},如果对手在模拟器发布所有yi后但在对手共享其值xi之前对H进行任何(m, r(j))查询,模拟器用c回答第i个这样的查询。如果步骤(1)输出的r等于r(i),则模拟器成功;否则失败。
      • 我们尝试对模拟器的成功概率进行上界估计。如果对手选择其对r的贡献rB使得H未被询问过r,模拟器成功的概率为1/2。设ϵhit是对手在看到rG后选择其贡献rB使得r = rGrB命中H在步骤(1)模拟开始前已被查询过的值的概率。假设ϵhit很小,模拟器成功通过本次TSch协议模拟的概率可以上界为ϵss = 1/(2qH) - ϵhit。
      • 如果SIM重复该模拟c/ϵss次,失败的概率至多为e - c。通过设置c = ln 2qS,模拟器成功通过qS次TSch协议模拟的概率超过一半。
      • 由于对手在模拟中的视图与协议执行中的视图相同,假设对手以不可忽略的概率ϵ伪造签名,模拟器以概率ϵ/2获得伪造签名。通过应用与标准Schnorr签名安全性证明相同的“分叉引理”论点,SIM以至少ϵ/4的概率获得一次伪造签名,并可以通过回退对手到询问查询H(m, r)(其中r = gsy - c)的点,然后用新的随机性继续模拟来计算离散对数。

以下是Ped - DKG协议和TSch协议的流程图:

graph TD;
    A[开始] --> B[每个玩家Pi选择随机多项式fi(z)];
    B --> C[Pi广播Xik = gaik mod p];
    C --> D[Pi计算xij并发送给Pj];
    D --> E[Pj验证收到的份额];
    E --> F{检查是否失败};
    F -- 是 --> G[Pj广播对Pi的投诉];
    F -- 否 --> H[继续];
    G --> I{投诉玩家数是否>t};
    I -- 是 --> J[Pi被取消资格];
    I -- 否 --> K[Pi揭示匹配份额];
    K --> L{揭示份额是否有效};
    L -- 是 --> H;
    L -- 否 --> J;
    J --> M[设置xi = 0, yi = 1];
    H --> N[计算公共值y = ∏yi mod p];
    N --> O[结束];
graph TD;
    P[开始] --> Q[执行Ped - DKG协议生成k的秘密共享];
    Q --> R[每个玩家Pi持有ki];
    R --> S[生成r = gk和ri = gki];
    S --> T[每个玩家本地计算c = H(m, r)];
    T --> U[每个玩家Pi广播si = ki + cxi];
    U --> V[验证gsi = riyc i];
    V --> W{验证是否失败};
    W -- 是 --> X[重建xi和ki并公开计算si];
    W -- 否 --> Y[继续];
    X --> Y;
    Y --> Z[计算s = s1 + ... + sn];
    Z --> AA[输出签名(c, s)];
    AA --> AB[结束];

通过以上分析,我们可以看到Pedersen的DKG协议在阈值Schnorr签名方案中具有一定的优势,尤其是在效率和安全性方面。在实际应用中,可以根据具体需求选择合适的方案。

Pedersen分布式密钥生成协议的安全应用

6. 成本与安全权衡及其他潜在应用
6.1 成本与安全权衡

在评估不同方案时,成本与安全是两个重要的考量因素。我们对比了使用[GJKR99]的DKG方案和Pedersen DKG方案实现的阈值Schnorr方案的计算成本。

基于离散对数假设,如果要实现相同的安全保证,使用[GJKR99]的DKG方案实现的阈值Schnorr方案的计算成本约为 5(具体计算为 1/2 · (31 + 3 ∗ 1.6 / 21 + 3 ∗ 1.6)),这里的 1/2 因子是因为Pedersen DKG协议每个玩家所需的加密操作大约是[GJKR99]的DKG协议的一半。

由于这两种方案仅基于离散对数假设实现可证明的安全性时都需要比通常更长的模数,所以它们的计算成本与一轮广播所产生的通信延迟相当。在最近的[CP02]实现中,对于大约五到九个玩家的组,在局域网环境下一轮广播需要 100ms,在互联网环境下大约需要 1s。

详细对比两种方案的成本后,我们发现,尽管使用[GJKR99]的DKG方案实现的阈值Schnorr协议需要多一轮可靠广播,但在基于离散对数假设实现可证明的相同安全保证时,它仍然比使用Pedersen DKG协议实现的相同协议更高效。

然而,如果我们基于一种启发式观点,即某些方案到离散对数问题的多项式归约的存在意味着这两个问题的安全性相似,那么Schnorr签名、使用[GJKR99]的DKG构建的阈值Schnorr签名以及使用Pedersen DKG构建的阈值Schnorr签名都可以在离散对数问题被认为对现代计算机来说是困难的同一域中实现,例如具有 280 安全边界的域。在这种情况下,使用Pedersen DKG的阈值签名方案将比使用[GJKR99]的DKG的相同方案效率高两倍,因为广播成本将主导运行阈值方案所产生的延迟。

以下是两种方案在不同假设下的效率对比表格:
| 方案 | 基于离散对数假设实现相同安全保证时效率 | 基于启发式观点时效率 |
| ---- | ---- | ---- |
| 使用[GJKR99]的DKG实现的阈值Schnorr协议 | 更高效 | 较低效 |
| 使用Pedersen DKG实现的阈值Schnorr协议 | 较低效 | 更高效 |

6.2 其他潜在应用

Pedersen的DKG协议在阈值密码系统中有着广泛的潜在应用。除了上述讨论的阈值Schnorr签名方案,它还可以应用于其他需要分布式密钥生成和阈值签名的场景。

例如,在分布式金融系统中,多个参与者可能需要共同管理一个密钥,以实现对资金的安全操作。Pedersen的DKG协议可以用于生成分布式密钥,确保只有足够数量的参与者合作才能进行签名和操作,从而提高系统的安全性和可靠性。

在多方计算场景中,多个参与方需要共同计算一个函数,但又不想泄露各自的输入信息。Pedersen的DKG协议可以用于生成共享密钥,为安全的多方计算提供基础。

7. 开放问题

尽管我们对Pedersen的DKG协议在阈值Schnorr签名方案中的应用进行了深入研究,但仍有一些开放问题值得进一步探讨。

  • Ped - DKG协议的保密性问题 :虽然我们在证明阈值签名方案的安全性时使用了Ped - DKG协议的“类似保密性”属性,但该协议的保密性仍然有些模糊。如何更清晰地定义和证明Ped - DKG协议的保密性,是一个需要进一步研究的问题。
  • 方案的实际应用优化 :在实际应用中,如何根据不同的网络环境和安全需求,进一步优化使用Pedersen DKG协议的阈值签名方案,提高其效率和性能,也是一个重要的研究方向。
  • 新的应用场景探索 :除了上述提到的潜在应用,是否还有其他新的应用场景可以使用Pedersen的DKG协议,以及如何将其应用于这些场景,也是一个值得探索的问题。
8. 总结

本文深入探讨了Pedersen的分布式密钥生成协议在阈值Schnorr签名方案中的安全应用。我们首先介绍了相关的预备知识,包括计算、通信和对抗模型,以及离散对数假设等。然后详细描述了Ped - DKG协议的流程和性质,包括其健壮性和保密性。接着,我们介绍了使用Ped - DKG协议的阈值Schnorr签名方案,包括其初始化和签名协议的具体步骤,并分析了其效率和安全性。最后,我们讨论了不同方案的成本与安全权衡,以及Pedersen的DKG协议的其他潜在应用和一些开放问题。

通过本文的研究,我们可以看到Pedersen的DKG协议在阈值密码系统中具有重要的应用价值,尤其是在效率和安全性方面。未来的研究可以进一步完善该协议的理论基础,探索更多的应用场景,并优化其在实际应用中的性能。

以下是整个研究过程的关键步骤总结列表:
1. 确定研究的阈值签名方案和相关模型。
2. 介绍Pedersen的DKG协议的流程和性质。
3. 描述使用Ped - DKG协议的阈值Schnorr签名方案的具体步骤。
4. 分析不同方案的计算成本和效率。
5. 证明阈值签名方案的安全性。
6. 讨论成本与安全权衡、潜在应用和开放问题。

graph LR;
    A[确定研究模型] --> B[介绍Ped - DKG协议];
    B --> C[描述阈值Schnorr签名方案];
    C --> D[分析成本和效率];
    D --> E[证明安全性];
    E --> F[讨论权衡、应用和问题];

以上就是关于Pedersen分布式密钥生成协议在阈值Schnorr签名方案中应用的详细介绍和分析,希望能为相关领域的研究和应用提供有益的参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值