一.模型假设
通常在构建安全多方计算协议时,需要在一定的情景下进行。故需要确定一个模型。在不同情景下实现安全的难度是不同。
所以,要实现安全,首先应该针对不同的情况建立不同模型,然后对这些模型进行研究。(在预定模型下实现安全)
首先假设有攻击者(没有攻击者就没有安全可言):可控制参与者,参与者一旦被控制,攻击者就可以掌握该参与者的全部信息。
显然,攻击者能够最大收买的参与者人数,很大程度影响了协议是否安全。所以构建模型时我们一般规定一个(t,n)门限攻击者结构:参与者总数n,攻击者最多能收买t个参与者。
攻击者结构:常见Q2,Q3。Q2:攻击者结构指攻击者收买的参与者集合中的人数小于参与者总人数的 1/2,即𝑡 < 1/2。
的攻击者结构指攻击者收买的参与者集合中的人数小于参与者总人数的𝑡 < 1/3
攻击者模型:半诚实模型,恶意攻击模型。
半诚实模型:遵守协议要求执行,但会主动的收集信息。
恶意攻击模型:不在诚实的遵守协议,会给其他参与者发送虚假或伪造的计算结果。
二.门限机制和Shamir秘密共享
(t,n)门限秘密共享体制:假设𝑃1,… ,𝑃𝑛要共享同一个秘密s(主秘密),只需要其中随便t个参与者就可以合成这个秘密s。
那么p0管理重心如何对s进行管理和分配,即秘密分配算法和秘密重构算法就需要满足重构和安全的要求。
介绍一下1979年shamir提出的基于多项式插值算法设计的shamir(t,n)门限秘密共享机制。
假设:
at:P0在有限域Fq中随机选取t-1个元素。
P0秘密计算yi=f(i)然后分别分配给pi。
Shamir(t,n)门限共享体制秘密重构:
1.t个方程可以确定t个未知数
上述的t个方程即可解出系数at-1,...a,s
2.另一种是使用多项式插值法进行重构主秘密。
t 个子秘钥分别为(𝑥𝑖 ,𝑦𝑖) ,其中𝑦𝑖=𝑓(𝑥𝑖),𝑖=1,…, 𝑡且𝑖 ≠ 𝑗 时 𝑥𝑖 ≠ 𝑥𝑗。参与者𝑃1,… ,𝑃𝑡共同计算
插值就是根据已知数据点(条件),来预测未知数据点值得方法。具体来说,假如你有n个已知条件,就可以求一个n-1次的插值函数P(x),使得P(x)接近未知原函数f(x),并由插值函数预测出你需要的未知点值。
【拉格朗日创造性的避开的方程组求解的复杂性,引入“基函数”这一概念,使得快速手工求解成为可能。
已知x0,x1;y0,y1,求P(x)= a0 + a1x,使得P(x)过这两点。则显然:
,下面介绍基函数的一般形式,对于要求的插值函数P(x),可以证明,均可以化简为以下形式:
,要使得:
,则要求:
,从而基函数表为:
,从而,给出基函数的一般形式为
】