MPC既适用于特定的算法,如加法、乘法、AES,集合交集等;也适用于所有可表示成计算过程的通用算法。
根据计算参与方个数不同,可分为只有两个参与方的2PC和多个参与方(≥3)的通用MPC
1)安全两方(2PC)计算所使用的协议为:Garbled Circuit(GC)+Oblivious Transfer(OT);
2)安全多方计算(MPC)所使用的协议为:同态加密+秘密分享+OT。
GC+OT的两方计算基本框架

1). 电路( Circuits)
- 任一个多项式时间的功能函数 f 都存在一个与之对应的布尔电路图片 C ,可描述为电路 C 计算 f 。
- 电路C由众多的门电路g(如或门、与门、非门等)连接组成,
- 门电路 g 的两个输入线路分别为: α\alphaα,β∈\beta\inβ∈ {0,1};
- 输出路线为:γ\gammaγ =g(α\alphaα,β\betaβ),该输出线路的值可能为其他门电路的输入线路值或函数最终结果。
- 电路C计算由输入值确定的门电路开始,按照电路拓扑一层一层往下计算,最后总能在电路的输出线路上得到最终输出结果。 这种原始的计算方式,电路 C 上各线路的值均为明文形式的比特值(0 or 1)。
2). 混淆电路(Garbled Circuits)
- 为了实现安全计算,姚期智先生提出了一种方法对电路计算过程中所有门电路上的计算值进行加密,即每一条线路上的值:α\alphaα,β∈\beta\inβ∈{0,1},随机选取两个值 k0k^0k0,k1k^1k1 和α\alphaα,β\betaβ 一一对应,称为混淆密钥,显然观察者并不能确定该线路上呈现的某一混淆值所对应的比特值,而仅能以的概率猜测正确。
- 对电路 C 的每一条线路都选取一对随机混淆密钥,所构造的电路称为混淆电路(Garbled Circuits),记为 GC。
- 接着使用了“双重加密”方式,即对每个门电路,分别将两输入线路上的混淆值作为加密密钥,加密这两个输入混淆值所对应的输出混淆值,得出该门电路的“加密计算表”。
Fig1.或门:真值表
| α\alphaα | β\betaβ | γ\gammaγ |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Fig2.或门:加密计算表
| α\alpha |
|---|

本文介绍了安全多方计算(MPC),包括2PC和通用MPC协议。重点讲解了姚期智提出的2PC协议,即GC+OT框架。GC通过混淆电路对计算值加密,OT协议确保数据安全性。在该框架下,双方能计算共同函数值而不泄露私有数据。
最低0.47元/天 解锁文章
1022

被折叠的 条评论
为什么被折叠?



