概念
它是指将一个秘密分发给一组参与方,每个参与方只获得这个秘密的一部分,这样一个或少数几个参与方无法还原出原始数据(秘密),只有满足一定数量的参与方把各自的数据凑在一起,才能还原真实数据。
Shamir门限秘密共享方案
有两个参数,n表示秘密分割参与者的数量,t即门限值,表示至少几个参与者聚到一起才可以恢复秘密信息。
Shamir门限秘密共享方案原理
对于任意t-1次多项式函数,只需要获取多项式曲线上的t个点就可以通过多项式插值(比如拉格朗日插值法)确定该多项式函数。
Shamir门限的后续发展,可验证密钥分享(Verifiable Secret Sharing,VVS)。
目前应用比较广发的Feldman-VVS和Pedersen-VVS。
通过秘密共享可以实现加法、乘法。
开发框架JIFF
是一个JavaScript库,可以运行在浏览器中或者通过Node.js运行在服务器。GitHub上开源(https://github.com/multiparty/jiff)
JIFF支持异步计算,即使一些参与方链接不稳定的情况下(动态加入或者离开)也可以完成计算。
在秘密共享基础上的优化协议
GMW协议
(Goldreich-Micali-Wigderson)协议允许任意数量的参与方安全地计算一个可以表示为布尔电路或算数电路的函数。
BGW协议
基于Shamir的(t,n)门限秘密共享机制,可以计算任何算数电路。
SPDZ协议
能够支持两方以上的算数电路,其优势在于可以将大量计算放在离线阶段完成。
详细内容见《深入浅出 隐私计算》