Shamir门限问题广泛的应用于多方安全计算中,这里简单的介绍一下Shamir门限的原理
Shamir门限是基于拉格朗日插值法的一种需要多个用户共同参与才能获取到秘密的一种方法
1. 门限简介
假设需要保护的数据为a0,并且要求:
(1)任意t个(或者更多的)分块可以很容易的重构出D;
(2)任意t-1个(或者更少的)分块都不可能重构出D。
该项技术可以被称为(t, n)门限。
2. 一个简单的(t, n)门限
该门限基于这样的事实:在一个二维坐标系中给定k个点(x1, y1), ..., (xk, yk),则满足q(xi)=yi的多项式有且仅有一个,且最高项系数为k-1。
不妨假设该多项式为q(x) = a[0] + a[1] * x + ... a[t-1] * x(t-1),且a0为需要保护的秘密。显然,只要给出任意t对(x, q(x))的值就可以计算出该多项式,从而得出D。
给定整数D,选择一个大于D和n的素数p,从[0, p)中选择ai,Di=Di mod p。
以下为该(k, n)门限一些有用的性质:
(1)任意分块的大小不会超过原始数据的大小;
(2)当t保持不变时,分块Di可以动态的加入或者删除,并且不会影响到其他分块;
(3)可以改变分块而不会影响到原始数据。
(4)可以根据重要性设置参与者掌握的分块数目。
3.实现过程
现有秘密a0,分享者D,参与者(P1,P2,P3ÿ