区块链中的数学 – Pedersen密钥共享

Pedersen基于门限的秘密分享方案实际上采用了Pedersen承诺来构建多项式系数承诺,这一点很容易从对比其他秘密分享方案得出!

## 写在前面 上一篇介绍了[密码学承诺中的Pedersen承诺](https://learnblockchain.cn/article/2096),与Pedersen相关的还有一个密钥共享方案,如果你一直关注的话,会知道关于密钥分享之前专门介绍过,从《区块链中的数学》54--- > 61篇,本文要介绍的也属于这一类别。 本文基础就是上述的密钥分享的历史文章,之前内容理解的话,本文顺理成章! ## Pedersen 密钥分享 ### 符号约定 $G_q$是素数P的q阶子群,g,h是其生成元,参与者数量n, k是门限值, $p_i$代表第i个参与者, 秘密s, 函数$E(a,b) =g^ah^b$ ### 分发阶段 1. 分发者随机秘密选择r,公布对s的承诺$E(s,r) = g^sh^r$, 继续选择k个随机数$a_i,i\in [1,k-1]$, 构造多项式:$f(x) = s + \sum^{k-1}_{i=1} a_i x^i$ 2. 计算$s_i=f(i)$,产生另一组随机数$b_i,i\in [1,k-1]$, 计算系数$a_i$的承诺:$E_{a_i}=g^{a_i}h^{b_i}$ ,并公开该承诺值 3. 构造多项式:$g(x) = r +\sum^{k-1}_{i=1}x^i$ 计算$r_i=g(i)$, 将信息$(s_i,r_i)$发送给参与者$P_i$ ### 验证阶段 4. 当$P_i$收到他的秘密份额$(s_i,r_i)$时,执行验证: $E(s_i,r_i)= \prod^{k-1}_{j=0}E^{ij}_j$ 其中$E^{ij}_j = g^{a_ji^i}h^{b_ji^i}$ ### 密钥恢复阶段 1. 至少 k个参与者正确共享密钥份额时,利用拉格朗日多项式插值法可恢复秘密,[这一篇](https://learnblockchain.cn/article/1788)已经说过具体算法,这里不在赘述! 可以看出函数E起到的是密码学承诺的作用! 关于此方案正确性推导,只要你对之前密钥分享的几篇看明白的话,很容易自己推出! ## 小结 Pedersen基于门限的秘密分享方案实际上采用了Pedersen承诺来构建多项式系数承诺,这一点很容易从对比其他秘密分享方案得出! 虽然本文用的指数形式表示函数E,也可以如同上一篇Pedersen承诺那样使用椭圆曲线来描述, $E(a,b) = a * g_1 + b * g_2$($g_1,g_2$分别是椭圆曲线上选定的两点),所以说本文描述的密钥分享方案,是Pedersen承诺的一种应用! 好了,[下一篇](https://learnblockchain.cn/article/2165)继续密码学承诺的其他内容! 原文链接:https://mp.weixin.qq.com/s/X09Fdgrzpuo9ia7B4nIdNQ 欢迎关注公众号:blocksight ### 相关阅读 [### 区块链中的数学 - Pedersen承诺](https://learnblockchain.cn/article/2096) 密码学承诺--Pedersen承诺 [区块链中的数学 - 哈希承诺](https://learnblockchain.cn/article/2085) 密码学承诺--hash承诺 [区块链中的数学 - 不经意传输](https://learnblockchain.cn/article/2022) 不经意传输协议 [区块链中的数学- BLS 基石(双线性函数)和配对](https://learnblockchain.cn/article/1963) 双线性映射(配对) [区块链中的数学 - BLS门限签名](https://learnblockchain.cn/article/1962) BLS m of n门限签名 [区块链中的数学 - BLS密钥聚合](https://learnblockchain.cn/article/1912) BLS密钥聚合 [区块链中的数学 - BLS数字签名](https://learnblockchain.cn/article/1905) BLS签名及验证 [区块链中的数学 - 参与者 < 门限值t的密钥更新Amir Herzberg方案](https://learnblockchain.cn/article/1843) Amir Herzberg改进方案 [区块链中的数学 - Feldman的可验证的密钥分享](https://learnblockchain.cn/article/1789) Feldman可验证密钥分享方案 [区块链中的数学 - Ed25519签名](https://learnblockchain.cn/article/1663) Ed25519签名 [区块链中的数学-ElGamal算法](https://learnblockchain.cn/article/1557) ElGamal算法签名及验证&实例演练 [Schorr签名与椭圆曲线](https://learnblockchain.cn/article/2450) Schorr签名与椭圆曲线 [区块链中的数学-Uniwap自动化做市商核心算法解析](https://learnblockchain.cn/article/1494) Uniwap核心算法解析(中)

写在前面

上一篇介绍了密码学承诺中的Pedersen承诺,与Pedersen相关的还有一个密钥共享方案,如果你一直关注的话,会知道关于密钥分享之前专门介绍过,从《区块链中的数学》54--- > 61篇,本文要介绍的也属于这一类别。

本文基础就是上述的密钥分享的历史文章,之前内容理解的话,本文顺理成章!

Pedersen 密钥分享

符号约定

$G_q$是素数P的q阶子群,g,h是其生成元,参与者数量n, k是门限值, $p_i$代表第i个参与者, 秘密s, 函数$E(a,b) =g^ah^b$

分发阶段

  1. 分发者随机秘密选择r,公布对s的承诺$E(s,r) = g^sh^r$, 继续选择k个随机数$ai,i\in [1,k-1]$, 构造多项式:$f(x) = s + \sum^{k-1}{i=1} a_i x^i$
  2. 计算$s_i=f(i)$,产生另一组随机数$b_i,i\in [1,k-1]$, 计算系数$ai$的承诺:$E{a_i}=g^{a_i}h^{b_i}$ ,并公开该承诺值
  3. 构造多项式:$g(x) = r +\sum^{k-1}_{i=1}x^i$

计算$r_i=g(i)$, 将信息$(s_i,r_i)$发送给参与者$P_i$

验证阶段

  1. 当$P_i$收到他的秘密份额$(s_i,r_i)$时,执行验证: $E(s_i,ri)= \prod^{k-1}{j=0}E^{ij}_j$ 其中$E^{ij}_j = g^{a_ji^i}h^{b_ji^i}$

密钥恢复阶段

  1. 至少 k个参与者正确共享密钥份额时,利用拉格朗日多项式插值法可恢复秘密,这一篇已经说过具体算法,这里不在赘述!

可以看出函数E起到的是密码学承诺的作用!

关于此方案正确性推导,只要你对之前密钥分享的几篇看明白的话,很容易自己推出!

小结

Pedersen基于门限的秘密分享方案实际上采用了Pedersen承诺来构建多项式系数承诺,这一点很容易从对比其他秘密分享方案得出!

虽然本文用的指数形式表示函数E,也可以如同上一篇Pedersen承诺那样使用椭圆曲线来描述, $E(a,b) = a g_1 + b g_2$($g_1,g_2$分别是椭圆曲线上选定的两点),所以说本文描述的密钥分享方案,是Pedersen承诺的一种应用!

好了,下一篇继续密码学承诺的其他内容!

原文链接:https://mp.weixin.qq.com/s/X09Fdgrzpuo9ia7B4nIdNQ 欢迎关注公众号:blocksight

相关阅读

### 区块链中的数学 - Pedersen承诺 密码学承诺--Pedersen承诺

区块链中的数学 - 哈希承诺 密码学承诺--hash承诺

区块链中的数学 - 不经意传输 不经意传输协议

区块链中的数学- BLS 基石(双线性函数)和配对 双线性映射(配对)

区块链中的数学 - BLS门限签名 BLS m of n门限签名

区块链中的数学 - BLS密钥聚合 BLS密钥聚合

区块链中的数学 - BLS数字签名 BLS签名及验证

区块链中的数学 - 参与者 < 门限值t的密钥更新Amir Herzberg方案 Amir Herzberg改进方案

区块链中的数学 - Feldman的可验证的密钥分享 Feldman可验证密钥分享方案

区块链中的数学 - Ed25519签名 Ed25519签名

区块链中的数学-ElGamal算法 ElGamal算法签名及验证&实例演练

Schorr签名与椭圆曲线 Schorr签名与椭圆曲线

区块链中的数学-Uniwap自动化做市商核心算法解析 Uniwap核心算法解析(中)

区块链技术网。

  • 发表于 2021-02-13 12:47
  • 阅读 ( 1311 )
  • 学分 ( 3 )
  • 分类:入门/理论

评论