【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制
模型
安全多方计算的安全显然是在有攻击者情况下的安全。在不同情形下,实现安全的难度也不同。最极端的例子是一个安全多方计算协议的所有参与者都是恶意参与者,那么这个协议的安全性就很难保证了。要实现安全,首先应该针对不同的情况建立不同的模型,而后针对这些模型进行研究。
首先假设有攻击者( Adversary ),攻击者可以通过各种手段收买或者控制( Corrupt )部分参与者,而参与者一旦被收买或者控制,该参与者的所有通信历史信息和本地信息都会被攻击者掌握。攻击者可以实际理解成黑客,他通过黑客手段入侵到了参与者的计算机中,取得了参与者计算机的控制权,因此可以掌握所有该参与者掌握的信息。攻击者也可以理解成竞争公司的人,通过金钱来贿赂参与者,以此取得信息。
攻击者模型
那么显然,攻击者能够最大收买的参与者人数,很大程度上影响了协议是否安全。(t,n)门限攻击者结构是指参与者总数是n,攻击者最多能够收买t个参与者。对于攻击者结构,经常会说是 Q2 、Q3 ,Q2 的攻击者结构指攻击者收买的参与者集合中的人数小于参与者总人数的 1/2,即𝑡 < 1/2;Q3 的攻击者结构指攻击者收买的参与者集合中的人数小于参与者总人数的𝑡 < 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={P1,…,Pn} 是参与者集合,P共享主秘密𝑠,𝑠∈𝔽𝑞,秘密管理中心𝑃0按如下所述的步骤对主秘密𝑠进行分配,为了可读性起见,以下公式均略去了模q操作:
- 参与者𝑃0秘密的在有限域𝔽𝑞中随机选取𝑡−1个元素,记为 a1,…,at-1 ,并取以𝑥为变元的多项式𝑓(ǔ