秘密分发
类似于Shamir的方案,分发者D:
1.选择一个 t 阶随机多项式。
其中
2.将n个秘密碎片
分发给参与者.
碎片更新
已经掌握碎片的参与者
在
时刻开始时,执行如下步骤将自己的碎片更新为
1.选择 t - 1 个随机数
构造 t - 1 次多项式
显然有
2.对于所有的 ,计算
并发送给,另计算
自己保留。
3.对于所有的 ,在收到其他参与者发来的
后,加上自己的
按照如下公式更新自己的碎片
4.除保留新碎片外,销毁其他数据
秘密重构:
设当前碎片更新的时间节点为, t 个参与者
进行如下操作以重构出秘密 s :
1.向其他人发送自己的
2.计算,其中
为Lagrange插值系数
数学归纳法证明:
0时间节点时,有
若,则
综上,在任意的时间节点,总有
心得:
由于拉格朗日插值公式的构造特殊性,每个参与者
,发出的
,根据拉格朗日插值公式,都能恢复出
,故而能够在秘密重构中,将所有人的
汇集起来,恰好能够消除。只剩下秘密s。
同时又因为自己收到的是
,在经过
更新后得到新碎片,无法通过拉格朗日插值公式求得原有秘密碎片,或根据在销毁数据后,根据原有秘密碎片得到新秘密碎片。
问题:
由于该方案是基于Shamir的方案设计的,因此也只能抵抗被动攻击者,当分发者Deliver分发虚假的秘密碎片,或者在碎片更新过程中任意一个参与者
提交虚假的
,将会导致碎片更新失败.
改进:
在碎片更新阶段:1,2,5,6这四步相同,第3,4步做出了验证
已经掌握碎片的参与者
在
时刻开始时,执行如下步骤将自己的碎片更新为
1.选择 t - 1 个随机数
构造 t - 1 次多项式
显然有
2.对于所有的 ,计算
并发送给,另计算
自己保留。
3.对 t - 1 个参数,计算并广播
作为对 的签名。
4.对于所有的 ,在收到其他参与者发来的
以及
后,判断
是否成立。(为保证形式一致,定义 )
上述验证公式推导过程如下:
5.若所有人发来的更新信息验证成功,则加上自己的
按照如下公式更新自己的碎片
6.除保留新碎片外,销毁其他数据