模型
安全多方计算的安全显然是在有攻击者情况下的安全。在不同情形下,实现安全的难度也不同。最极端的例子是一个安全多方计算协议的所有参与者都是恶意参与者,那么这个协议的安全性就很难保证了。要实现安全,首先应该针对不同的情况建立不同的模型,而后针对这些模型进行研究。
首先假设有攻击者(Adversary),攻击者可以通过各种手段收买或者控制(Corrupt)部分参与者,而参与者一旦被收买或者控制,该参与者的所有通信历史信息和本地信息都会被攻击者掌握。攻击者可以实际理解成黑客,他通过黑客手段入侵到了参与者的计算机中,取得了参与者计算机的控制权,因此可以掌握所有该参与者掌握的信息。攻击者也可以理解成竞争公司的人,通过金钱来贿赂参与者,以此取得信息。
那么显然,攻击者能够最大收买的参与者人数,很大程度上影响了协议是否安全。(t,n)门限攻击者结构是指参与者总数是n,攻击者最多能够收买t个参与者。对于攻击者结构,经常会说是图片的攻击者结构指攻击者收买的参与者集合中的人数小于参与者总人数的 1/2,即𝑡 < 1/2;图片的攻击者结构指攻击者收买的参与者集合中的人数小于参与者总人数的𝑡 < 1/3。
攻击者模型分为半诚实攻击者模型和恶意攻击者模型。在半诚实攻击者模型下,被攻击者收买的参与者遵守协议,不会在协议执行中途退出,也会诚实地发送自己的计算结果,不会篡改协议计算结果。但是被收买的参与者的所有信息,包括历史通讯信息、计算结果等都会被攻击者得知。在恶意攻击者模型下,被攻击者收买的参与者不会再诚实地遵守协议,可能会篡改协议计算结果,其发送给其他参与者的信息有可能是虚假和伪造的。
攻击者的能力还可以根据其计算能力进行划分,在计算意义下安全的模型中,攻击者的计算能力是概率多项式时间的,意味着攻击者无法解决常见的困难问题,即使计算出来,所花费的时间也已经超过了信息的有效期,获得的信息已经是过时的信息。另一种模型为信息论意义下安全的模型,在这种模型下,攻击者的计算能力是无限的。
门限机制和Shamir秘密共享
设 t 和 n 为两个正整数,且 t≤n。n个需要共享秘密的参与者集合为𝑃 = {𝑃1,… ,𝑃𝑛 },一个(t,n)门限秘密共享体制是指:假设𝑃1,… ,𝑃𝑛要共享同一个秘密s, 将s称为主秘密,有一个秘密管理中心𝑃0来负责对s进行管理和分配。秘密管理中心𝑃0掌握有秘密分配算法和秘密重构算法,这两个算法均满足重构要求和安全性要求。
秘密管理中心𝑃0首先通过将主秘密s输入秘密分配算法,生成n个值,分别为𝑠1,… ,𝑠𝑛,称𝑠1,… ,𝑠𝑛为子秘密。然后秘密管理中心𝑃0分别将秘密分配算法产生的子秘密𝑠1,… ,𝑠𝑛通过𝑃0与𝑃𝑖之间的安全通信信道秘密地传送给参与者𝑃𝑖,参与者𝑃𝑖不得向任何人泄露自己所收到的子秘密𝑠𝑖。
门限值t指的是任意大于或等于t个参与者𝑃𝑖,将各自掌握的子秘密𝑠𝑖进行共享,任意的一个参与者𝑃𝑖在获得其余𝑡−1个参与者所掌握的子秘密后,都可独立地通过秘密重构算法恢复出主秘密s。而即使有任意的𝑛−𝑡个参与者丢失了各自所掌握的子秘密,剩下的 t 个参与者依旧可以通过将各自掌握的子秘密与其他参与者共享,再使用秘密重构算法来重构出主秘密s。安全性要求是指任意攻击者通过收买等手段获取了少于 t个的子秘密,或者任意少于 t 个参与者串通都无法恢复出主秘密 s,也无法得到主秘密 s 的信息。
Shamir于1979年,基于多项式插值算法设计了Shamir(t,n)门限秘密共享体制,它的秘密分配算法如下:
首先假设𝔽𝑞为q元有限域,q是素数且𝑞>𝑛。图片是参与者集合,P共享主秘密𝑠,𝑠∈𝔽𝑞,秘密管理中心𝑃0按如下所述的步骤对主秘密𝑠进行分配,为了可读性起见,以下公式均略去了模q操作:
参与者𝑃0秘密的在有限域𝔽𝑞中随机选取𝑡−1个元素,记为图片,并取以𝑥为变元的多项式𝑓(𝑥)
对于1≤𝑖≤ 𝑛,𝑃0秘密计算𝑦𝑖=𝑓(𝑖)
对于1≤𝑖≤𝑛,𝑃0通过安全信道秘密地将(𝑖, 𝑦𝑖)分配给𝑃𝑖
Shamir(t,n)门限共享体制的秘密重构可以使用通俗的解方程法,即t个方程可以确定t个未知数,而这t个未知数即为包括主秘密𝑠在内的多项式𝑓(𝑥)的各项系数。如参与者𝑃1,… ,𝑃𝑡掌握了子秘密𝑓(1),…,𝑓(𝑡),解方程:
即可求解出系数。
另一种方式是使用多项式插值法进行重构主秘密。假设这 t 个子秘钥分别为(𝑥𝑖 ,𝑦𝑖) ,其中𝑦𝑖=𝑓(𝑥𝑖),𝑖=1,…, 𝑡且𝑖 ≠ 𝑗 时 𝑥𝑖 ≠ 𝑥𝑗。参与者𝑃1,… ,𝑃𝑡共同计算
显然,ℎ(𝑥)是一个𝑡−1次的多项式,且因为𝑖≠𝑗时𝑥𝑖≠𝑥𝑗,每个加式的分母均不为零,因此对于𝑖=1,…,𝑡,𝑦𝑖=ℎ(𝑥𝑖)=𝑓(𝑥𝑖) 。又根据多项式的性质,如果存在两个最高次均为𝑡−1次的多项式,这两个多项式在𝑡个互不相同的点所取的值均相同,那么这两个多项式相同。即ℎ(𝑥)=𝑓(𝑥),进而参与者𝑃𝑖计算ℎ(0)=𝑓(0)=𝑠,即可恢复主秘密𝑠。
对于有限域𝔽𝑞上n-1次的多项式,设为𝑓(𝑥),存在有限域𝔽𝑞上的n个元,记为𝜆1,…,𝜆𝑛,使得:
称(𝜆1,…,𝜆𝑛)为重组向量(recombinationn vector),因为证明过程较为繁琐,因此具体证明过程写在最后。
对于矩阵M:
设秘密分配多项式为𝑓(𝑥),参与者𝑃𝑖掌握的子秘密为𝑓(𝑖),因为存在重组向量(𝜆1,…,𝜆𝑛),因此有:
若要计算重组向量,可通过计算矩阵𝑀的逆矩阵图片来计算重组向量(𝜆1,…,𝜆𝑛):
在获得重组向量后,可构建基于Shamir门限体制的安全多方计算协议。首先假设𝑃={𝑃1,…,𝑃𝑛 }是参与者集合,𝑃𝑖掌握输入𝑥𝑖(1≤𝑖≤𝑛),需要共同计算的函数为𝑓(𝑥1,…, 𝑥𝑛)。在有限域𝔽𝑞上的𝑆ℎ𝑎𝑚𝑖𝑟(𝑡+1,𝑛)门限体制主要流程为:
输入阶段,每个参与者𝑃𝑖将自己的输入𝑥𝑖,利用𝑆ℎ𝑎𝑚𝑖𝑟(𝑡+1, 𝑛)门限秘密共享体制,秘密选取最高 t 次的随机多项式𝑓𝑖(𝑥),满足𝑓𝑖(0)=𝑥𝑖 。然后𝑃𝑖将𝑓𝑖(𝑗)发送给参与者𝑃𝑗。
计算阶段,假设输入的𝑎和𝑏已经通过至多 t 次的随机多项式𝑓𝑎(𝑥)和𝑓𝑏(𝑥)通过Shamir门限体制共享给了各个参与者,其中是随机的多项式系数。参与者𝑃𝑖掌握输入𝑎的子秘密𝑎𝑖和输入𝑏的子秘密𝑏𝑖。至多t次的原因是多项式的系数是随机产生的,因此t次的系数也有可能是0。
多方计算𝑎+𝑏:每个参与者𝑃𝑖独立计算𝑐𝑖 =𝑎𝑖+𝑏𝑖, 1≤𝑖 ≤𝑛 。𝑐1,…, 𝑐𝑛 即为𝑎+𝑏通过随机多项式共享后的结果,通过多项式插值法或者解方程即可恢复秘密s。子秘密可以直接相加,是因为对于𝑐𝑖=𝑎𝑖+𝑏𝑖=𝑓𝑎(𝑖)+𝑓𝑏(𝑖)= (𝑚𝑡+𝑛𝑡)图片+⋯+ (𝑚1+𝑛1 )𝑖+𝑎+𝑏,多项式的次数并没有发生变化,新的多项式𝑓𝑎(𝑥)+𝑓𝑏(𝑥)的最高次数依旧为 t,t+1 个参与者共享他们所掌握的𝑐𝑖,即可根据t+1个方程解t+1个未知数,解出𝑎+𝑏。或者也可直接使用拉格朗日插值法求解出𝑎+𝑏。
𝑎𝑏:首先每个参与者计算
接着每个𝑃𝑖 独自选取次数为t次的随机𝑛多项式ℎ
。向各个参与者分配𝑑𝑖,且所有参与者分配结束后,𝑃𝑖掌握了信息同时𝜆1,…,𝜆𝑛是公开的重组向量,即(𝜆1,…,𝜆𝑛)满足,因此𝑃𝑖可计算
,再利用多项式插值法,即可获得𝑎𝑏。
对于重组向量存在性的证明过程为:设,则,且可被表示为:
考虑一个n阶矩阵
由于矩阵𝑀是满秩矩阵,因此存在𝜆1,…,𝜆𝑛∈𝔽𝑞,使得
因此有:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。