MPC的数学模型

MPC算法python MPC算法分类_MPC算法python

MPC的问题分类

  • 由算法适用性来看,MPC既适用于特定的算法,如加法、乘法、AES,集合交集等;也适用于所有可表示成计算过程的通用算法。
  • 根据计算参与方个数不同,可分为只有两个参与方的2PC和多个参与方(≥3)的通用MPC。
  • 安全两方计算所使用的协议为Garbled Circuit(GC)+Oblivious Transfer(OT);而安全多方计算所使用的协议为同态加密+秘密分享+OT
  • 在安全多方计算中,安全挑战模型包括半诚实敌手模型和恶意敌手模型。市场大部分场景满足半诚实敌手模型。2pc的主要是半诚实模型
  • 半诚实敌手模型:计算方存在获取其他计算方原始数据的需求,但仍按照计算协议执行。半诚实关系即参与方之间有一定的信任关系,适合机构之间的数据计算
  • 恶意敌手模型:参与方根本就不按照计算协议执行计算过程。参与方可采用任何(恶意)方式与对方通信,且没有任何信任关系。结果可能是协议执行不成功,双方得不到任何数据;或者协议执行成功,双方仅知道计算结果。更多适用于个人之间、或者个人与机构之间的数据计算

MPC的技术栈

MPC算法python MPC算法分类_MPC_02

混淆电路(GC)

MPC算法python MPC算法分类_MPC算法python_03


MPC算法python MPC算法分类_多方安全计算_04

MPC算法python MPC算法分类_MPC算法python_05

两方安全计算执行过程

假设有两个人Alice和Bob,分别持有一个数据a和b,两个互不信任的人希望用一个函数F来计算a和b的值,下面是协议的执行过程

MPC算法python MPC算法分类_MPC算法python_06


有一个问题:在上述的第四步中,A知道了B的值b,这与安全计算的概念违背,因此我们需要OT协议来保证数据的隐蔽性

不经意传输(OT)

这个是“二选一”的OT方案

MPC算法python MPC算法分类_MPC_07

MPC算法python MPC算法分类_MPC算法python_08


MPC算法python MPC算法分类_多方安全计算_09


MPC算法python MPC算法分类_MPC算法python_10