目录

MPC 实现方案归纳

之前做MPC相关的基本都是理论上的东西,效率很差,感觉也没有实现的必要。 最近几年基于秘密分享的MPC方案效率很高,有很多人用这个来做机器学习框架(PPML),实际的实现方案变多了。 但还是想吐槽一些有些论文不给出代码实现😠。

两方实现方案(2 PC)

  • ABY DNSS15 - “ABY – A Framework for Efficient Mixed-Protocol Secure Two-Party Computation” 通用安全多方计算框架,基于算数分享(arithmetic),二进制分享(binary),混淆电路(garble circuit)三者之间的转换,解决非线性函数的计算问题。

三方实现方案(3 PC)

  • ABY3 CCS18 - “ABY3: A Mixed Protocol Framework for Machine Learning” 基于ABY方案的转换思想,诚实方占多数的安全假设,半诚实安全的乘法无需乘法triple,性能提升很大。
  • SecureNN (PETS 2019) - “SecureNN: 3-Party Secure Computation for Neural Network Training” 由两方完成计算过程,引入协作参与方进行triple等随机量的生成,方案中比较协议比较复杂,存在可优化余地。
  • Falcon (PETS 2021) - “Falcon: Honest-Majority Maliciously Secure Framework for Private Deep Learning” SecureNN方案与ABY3方案的结合,应该是目前最好的三方计算框架。
  • TF-encrypted - “Private Machine Learning in TensorFlow using Secure Computation” 基于TensorFlow实现PPML中常见的各种运算。
  • CrypTen - “CRYPTEN: Secure Multi-Party Computation Meets Machine Learning” Facebook基于Pytorch实现的PPML机器学习框架,支持机器学习中常见的各种运算,学习成本低。

SPDZ方案实现

  • SPDZ family - “Multiparty Computation from Somewhat Homomorphic Encryption” 实现了SPDZ及其衍生出的多种协议,支持各种安全性假设

常用密码学工具

  • libOTe - 基于C++实现的OT协议库,包含各种常用的OT协议及OT扩展协议
  • EMP-tookit - 包含MPC中常用的密码学工具:OT,zero knowledge proof等,以及一些两方计算协议的实现