安全多方计算MPC学习笔记

参考:https://blog.csdn.net/juzhenyuan/article/details/80913777

MPC

Secure Multi-Party Computation

安全多方计算

一种保护数据安全隐私的多方计算算法。

GC

Garbled Circuit

加密电路

一种通过加密处理电路的方式。

OT

Oblivious Transfer

不经意传输

一种安全的选择、传输协议。

1、MPC来源

安全多方计算由我国目前唯一图灵奖获得者姚期智院士提出,其提出场景为百万富翁问题:在没有可信第三方的前提下,两个百万富翁如何不泄露自己的真实财产状况来比较谁更有钱。MPC可以在保证各方数据安全的同时,联合使用各方数据来达到特定的效果,从而充分发挥数据的价值。

多个持有各自私有数据的参与方,共同执行一个计算逻辑计算逻辑(如,求最大值计算),并获得计算结果。但过程中,参与的每一方均不会泄漏各自数据的计算,被称之为MPC计算,MPC计算可以通过对协议的设计而不用依赖于可信第三方。

2、问题抽象

安全多方计算可以抽象的理解为:两方分别拥有各自的私有数据,在不泄漏各自私有数据的情况下,能够计算出关于公共函数 的结果。整个计算完成时,只有计算结果对双方可知,且双方均不知对方的数据以及计算过程的中间数据。

3、MPC问题分类

  • 由算法适用性来看,MPC既适用于特定的算法,如加法、乘法、AES,集合交集等;也适用于所有可表示成计算过程的通用算法。
  • 根据计算参与方个数不同,可分为只有两个参与方的2PC和多个参与方(≥3)的通用MPC
  • 安全两方计算所使用的协议为Garbled Circuit(GC)+Oblivious Transfer(OT);而安全多方计算所使用的协议为同态加密+秘密分享+OT(+承诺方案+零知识证明等)。
  • Garbled Circuits   ||   GMW
  • 在安全多方计算中,安全挑战模型包括半诚实敌手模型恶意敌手模型。市场大部分场景满足半诚实敌手模型,也是JUGO技术产品所考虑的敌手模型。
  • 半诚实敌手模型:计算方存在获取其他计算方原始数据的需求,但仍按照计算协议执行。半诚实关系即参与方之间有一定的信任关系,适合机构之间的数据计算;一个半诚实成员完全遵守协议的执行过程,中途不退出协议的执行过程,也不篡改协议运行结果,但其可以保留执行协议过程中的一些中间结果,并通过这些中间结果试图分析推导其他成员的输入数据。
  • 恶意敌手模型:参与方根本就不按照计算协议执行计算过程,能够随意中断协议的运行,破坏协议的正常执行过程,也能随意修改协议的中间结果或者与其他参与方相互勾结。参与方可采用任何(恶意)方式与对方通信,且没有任何信任关系。结果可能是协议执行不成功,双方得不到任何数据;或者协议执行成功,双方仅知道计算结果。更多适用于个人之间、或者个人与机构之间的数据计算。

4、MPC算法基本原理(2PC半诚实模型)

4.1、MPC算法执行过程

  • 先对输入数据做预处理。
  •   遵循原则:1、尽量少的数据输入;2、尽量多的数据预处理

    ——数据量太大时会大幅降低算法执行效率。

  • 计算逻辑转化为布尔电路。
  •   遵循原则:尽量简单的计算逻辑

    ——由于MPC是计算密集型和通信密集型算法,若计算逻辑很复杂,会对执行效率产生很大影响。

      转化方式:手动/电路编译器Frutta

  • 将输入的布尔电路做GC和OT算法(详细在下面叙述),得到输出结果。

4.2、GC+OT的两方计算基本框架

GC+ OT是在两方semi-honest模型下的通用型算法,即可以支持任意计算逻辑的安全两方计算。

  总体框架如下图:

矩阵云推出JUGO安全多方计算平台,既能保护数据隐私又能实现数据流动起来最大化其价值。

5、我的补充

5.1、OT

OT:指发送方sender传输给接收方receiver n个数据,但是不知道receiver收到了n中的哪一个,而receiver也只能解码其中一个。假如需要k个数据,那么至少需要k次interaction。

5.2 2PC

5.3、Secret Sharing

猜你喜欢

转载自blog.csdn.net/Black_BearB/article/details/81228578