论文学习记录20200515:安全多方计算综述[S&P2019]

论文学习记录20200515:安全多方计算综述[S&P2019]
这篇综述主要就是调查了十一个安全多方计算的框架,进行了一些比对。他们还创建了一个github资源库,里面有这11个框架的代码、有样例还有相关的文档信息。

论文学习记录20200515:安全多方计算综述[S&P2019]
主要分为这两个方面,一个是调查,另一个就是这个开源资源。

在这项工作中,他们调查了十一个安全多方计算的通用编译器。其中有9个框架和连个电路编译器。考虑了11种系统:EMP工具包,Obliv-C,ObliVM,TinyGar-ble,SCALE-MAMBA(以前为SPDZ),Wysteria,Share-mind,PICCO,ABY,Frigate和CBMC-GC。我们根据一系列标准评估这些系统,包括语言的可表达性,加密后端的功能以及开发人员的可获得性。我们提倡改善MPC框架的文档编制,社区内部的标准化,并为编译器开发的未来方向提出建议。

他们还创建了一个在线Github存储库,
其中包含两个部分:(1)一组Docker容器(类似于虚拟机),每个Docker容器都提供了一个开发环境,该环境配置了每个MPC的基础结构框架,以及他们测试用例的可执行示例,
以及(2)一个Wiki页面,收集了此处介绍的大部分评估以及有关每个框架的其他文档。

论文学习记录20200515:安全多方计算综述[S&P2019]

框架一般实现了两个阶段的功能:编译器和执行器,
因为大多数mpc算法只支持有限的算子(算子(英语:Operator)是将一个元素在向量空间(或模)中转换为另一个元素的映射),如模质数下的加法和乘法,于是就很难应用这些有限的算子实现更多的计算函数。
编译器的输入是高级语言描述的函数,编译器把函数编译成算法可执行的协议,接下来,执行器会具体执行编译好的协议,协议会在多个参与方上同时执行,每个参与方都以编译器的输出结果与自己的秘密值作为输入 计算到函数输出结果。各个框架各不相同,但都是这样的结构

两种主要的威胁模型:半诚实的敌手正确执行了协议,但是尝试从接收到的数据中收集其他信息。恶意敌手可能会任意破坏协议,以了解有关其他输入的信息或导致协议输出不正确的结果。

论文学习记录20200515:安全多方计算综述[S&P2019]

通常安全多方计算都是基于三种:乱码电路(GC),多方电路协议(MC)和混合模型(Hy)中所述
A.乱码电路(又叫混淆电路)
混淆电路是一种两方计算的方法,最初由Yao引入。在此框架中,有两个参与者,一个混淆者(同“乱码者”)和一个评估者。参与者首先将所需函数表示为布尔电路。然后,混淆者使用使用标准的对称**密码系统(通常是AES)逐个门对电路进行乱码。
最初的乱码电路协议为半诚实的敌手模型提供了安全性[99],但是后来存在许多不同的改进和实现,它们为完全恶意的对手提供了安全性。

B.基于多方电路的协议
将功能表示为布尔电路或者是算术电路,协议允许任意数量的参与者安全地计算。在这些协议中,各方使用线性秘密共享方案分割它们的输入。
各方参与协议以逐门计算结果。每次门运算都会将门输入的秘密份额安全地转换为门输出的秘密份额。通信的轮数与电路的乘法深度成正比,通信的总量取决于电路中乘法门的数量。

C.混合模型
最近的系统已不再使用严格的电路表示法,而是使用混合模型。
在混合模型中,功能被编译为一组子协议(可能包括传统的基于电路的操作)。混合方案通常将中间值表示为大有限域上的秘密份额。他们可能会混合使用信息理论和加密协议,因此,计算方和威胁模型的数量会有所不同。
混合模型与严格的基于电路的模型相比,具有非常不同的性能特征。例如,在有限域中,将比较,位移位和相等测试之类的操作表示为算术电路是昂贵的。但是,对秘密共享进行操作的专门子协议(例如[47],[48],[42])可以更有效地计算结果共享。

论文学习记录20200515:安全多方计算综述[S&P2019]
论文学习记录20200515:安全多方计算综述[S&P2019]
论文学习记录20200515:安全多方计算综述[S&P2019]
下面是,给用他们的这个开源资源的 给的一些建议
论文学习记录20200515:安全多方计算综述[S&P2019]
A
我们推荐使用EMP工具包半诚实库。由于现有的电路生成和密码库,整个平台非常适合希望实现基于电路的新协议的学者,但是我们注意到端到端的流不是无缝的。
B
Obliv-C是一种鲁棒的误码电路结构。我们向一般用途的开发人员和希望实现和优化有用库(如ORAM)的学者推荐它。
C
尽管ObliVM实现了高级加密结构,但它在实际应用中的可用性却受到其最小文档和受限的I/O功能的极大限制
D
TinyGarble旨在为生产硬件电路而开发的强大的电路优化器。从可用性角度来说,目前还是是很弱的。不幸的是,从可用性的角度来看,Verilog编译器缺乏兼容性,netlist格式缺乏标准,这意味着我们无法使用TinyGarble框架编译或运行任何新的示例。然而,我们相信,MPC社区可以通过利用现有电路优化器的能力而受益匪浅。
论文学习记录20200515:安全多方计算综述[S&P2019]
E
Wysteria对复杂数据类型的支持有限,目前缺乏开发,而且后端电路解析器已经过时,这意味着它不应该用于开发复杂或高效的协议。另一方面,Wysteria是我们研究过的唯一一个打算提供一个系统来自动验证底层多方计算是否具有与开发人员实现的单片程序相同的功能的编译器,也是唯一一个使用函数式编程语言的编译器。我们建议未来的编译器开发人员使用Wysteria的基于类型的正确性和安全性保证作为模型。
F
ABY提供了一个强大的、低级的加密接口,使开发人员能够对性能进行有效的控制。ABY的目标用户是熟悉MPC协议和电路计算模型的用户。我们推荐给有足够加密背景的开发人员。
G
我们推荐SCALE-MAMBA用于多种用途:它很灵活,支持任意数量的参与方,并且有很强的安全保证,尽管它可能需要大量的计算资源。
H
Sharemind MPC平台适用于多种用途。我们建议希望实现安全计算的公司,特别是大型或复杂功能的公司,以及需要将MPC作为项目工具的学者使用它。
论文学习记录20200515:安全多方计算综述[S&P2019]
I
PICCO适合于需要真正的多方实现的开发人员或学者。我们没有发现任何正确性问题,并且在配置计算时具有很大的灵活性。
J
Frigate 为快速生成电路提供了一种表达性的Clike语言,是估计给定计算电路大小的一种好方法。然而,即使使用我们的转换工具将 Frigate的电路形式连接到有用的后端,执行端到端的MPC计算也需要用户执行相对繁重的操作。
K
CBMC-GC使用强大的工具生成优化的电路,但我们无法成功执行它生成的任何电路。