在门限签名方案中,完整私钥通常不会被直接计算或重建,因为这样会违背门限 签名的初衷,即确保没有单个参与者能够单独生成签名。然而,在某些情况下(例如,为了恢复密钥或进行系统初始化),我们可能需要重建完整私钥。下面是如何通过秘密共享方案重建完整私钥的过程。
秘密共享方案回顾
假设我们有一个 (t,n) 门限签名方案,其中 t 是生成签名所需的最小参与者数量,n 是总参与者数量。每个参与者 Pi 持有一个秘密份额 si。
重建完整私钥的步骤
- 选择参与者:选择至少 t 个参与者 P1,P2,…,Pt。
- 收集秘密份额:收集这些参与者的秘密份额 s1,s2,…,st。
- 使用拉格朗日插值法重建私钥:使用这些秘密份额通过拉 格朗日插值法重建完整私钥 s。
拉格朗日插值法
拉格朗日插值法用于在给定有限域上的 t 个点重建多项式。在我们的场景中,我们用拉格朗日插值法重建秘密多项式的常数项,即完整私钥 s。
具体步骤如下:
- 计算拉格朗日基函数:对于每个参与者 Pi,计算拉格朗日基函数 Li(0):
Li(0)=1≤j≤t,j=i∏i−j0−jmodp
- 重建完整私钥:使用拉格朗日基函数和秘密份额重建完整私钥 s:
s=i=1∑tsi⋅Li(0)modp
假设我们有一个 (2,3) 门限签名方案,其中有 3 个参与者 P1,P2,P3,他们的秘密份额分别为 s1,s2,s3。我们需要至少 2 个参与者来重建完整私钥。
1. 选择参与者
选择参与者 P1 和 P2。
2. 收集秘密份额
收集秘密份额 s1 和 s2。
3. 计算拉格朗日基函数
对于 P1:
L1(0)=1−20−2modp=2modp
对于 P2:
L2(0)=2−10−1modp=p−1modp
4. 重建完整私钥