参考论文:SoK: Multiparty Computation in the Preprocessing Model
MPC (Secure Multi-Party Computation) 博士生入门资料。抄袭必究。
本教程假设:具备高等数学基础知识;对应用密码学有基础了解。不展开、不解答任何百度可以解答的问题。
本系列教程将逐字解读参考论文(以下简称MPCiPPM),在此过程中,将论文中涵盖的40篇参考文献进行梳理与讲解。全系列结构如下(暂定):
1 背景与相关研究介绍
[MPCiPPM-01]: Background and Related Work. 参考论文的研究背景,研究意义,贡献,以及相关研究工作介绍。
2 基础密码学原语
[MPCiPPM-02]: Basic building blocks of MPC. 简单介绍MPC中涉及的三个基础密码学原语:Secret Sharing (SS), Oblivious Transfer (OT), Homomorphic Encryption (HE)。注意:MPC是一个密码算法系统,由众多密码算法组件组成,包括但不限于:秘密共享及其各类变体(Function Secret Sharing, Linear Secret Sharing, etc),OT及其各类变体,HE及其各类变体,Zero Knowledge Proofs of Knowledge (ZKPoKs) 及其各类变体, Garbled Circuits及其各类变体等。本文只介绍了前三种,但MPC涉及的密码组件远不止于此,至少ZKPoKs就是非常重要的核心组件。
3 传统预处理模型
[MPCiPPM-03]: What is Beaver Triple? Beaver Triple 是Preprocessing Model的基石。理解了beaver triple,后续一切preprocessing model不过是对beaver triple的改进、变形或拓展 (so far, 以后或许会有新的形式出来)。
文献:
Donald Beaver. Efficient multiparty protocols using circuit randomization.
Donald Beaver. One-Time Tables for Two-Party Computation
[MPCiPPM-04]: 论文 Breaking the Limits。来自Ivan Damgard,MPC的奠基人物。非常随和的小个子老头,满头白发,自己还在写论文、带团队,活跃于欧洲各MPC会议或活动中。他本人及其团队每年产出大量高质量论文,涵盖MPC的多个领域,理论和应用都有涉及。
文献:Ivan Damg˚ard, Marcel Keller, Enrique Larraia, Valerio Pastro, Peter Scholl, and Nigel P. Smart. Practical covertly secure MPC for dishonest majority - or: Breaking the SPDZ limits.
3.1 基于同态加密的协议
3.1.1 基于有限域上的运算
[MPCiPPM-05]: Orlandi Protocol.
文献:Claudio Orlandi. LEGO and other cryptographic constructions. Technical report, Citeseer, 2009.
[MPCiPPM-06]: BDOZ。 MPC领域的必读论文,记住其读音[bədəʊzə]。务必了解其算法和核心思想。
文献:Rikke Bendlin, Ivan Damg˚ard, Claudio Orlandi, and Sarah Zakarias. Semihomomorphic encryption and multiparty computation
[MPCiPPM-07]: SPDZ,读音[spi:zi]。来自Ivan。MPC的里程碑,主导了此后十几年MPC算法的发展方向,至今仍有大量MPC学者在研究SPDZ算法的各种变体或应用。请务必熟知其标题、简称、读音、年份与算法,在此之前不建议参与同行交流。
文献:Ivan Damg˚ard, Valerio Pastro, Nigel Smart, and Sarah Zakarias. Multiparty Computation from Somewhat Homomorphic Encryption.
[MPCiPPM-08]: Overdrive. 一个重要的SPDZ改进方案,后续衍生了一系列变体。目前仍有不少人在改进其算法。
文献:Marcel Keller, Valerio Pastro, and Dragos Rotaru. Overdrive: Making SPDZ great again.
[MPCiPPM-09]: TopGear。本质是用HighGear的零知识证明替换掉SPDZ中的相关部分。 也是系列研究,有HighGear, LowGear等,相关论文不少。
文献:Carsten Baum, Daniele Cozzo, and Nigel P. Smart. Using TopGear in overdrive: A more efficient ZKPoK for SPDZ.
[MPCiPPM-10]: LowGear 2.0。取消了Overdrive里的Beaver Triple的sacrifice步骤 (这一步的本质是额外消耗一批beaver triples,以确保正确性。可直译为牺牲)。
文献:Pascal Reisert, Marc Rivinius, Toomas Krips, and Ralf K¨usters. Overdrive LowGear 2.0: Reduced-bandwidth MPC without sacrifice.
3.1.2 基于环上的运算
[MPCiPPM-11]: RSS19。
文献:Deevashwer Rathee, Thomas Schneider, and K. K. Shukla. Improved multiplication triple generation over rings via RLWE-based AHE.
[MPCiPPM-12]: Overdrive2k,Overdrive的环运算版本。
文献:Emmanuela Orsini, Nigel P. Smart, and Frederik Vercauteren. Overdrive2k: Efficient secure MPC over from somewhat homomorphic encryption.
[MPCiPPM-13]: MonZa。一个比较特殊的协议,基于Joye-Libert。
文献:Dario Catalano, Mario Di Raimondo, Dario Fiore, and Irene Giacomelli. MonZ2ka: Fast maliciously secure two party computation on .
[MPCiPPM-14]: 。仍然是SPDZ的改进和扩展。
文献:Jung Hee Cheon, Dongwoo Kim, and Keewoo Lee. MHz2k: MPC from HE over Z2k with new packing, simpler reshare, and better ZKP.
[MPCiPPM-15]: Multipars。这是斯图加特大学的一个团队2023年的文章,2024有新的改进发表。喜欢这个算法的可以跟进这个团队,比较活跃,跟Ivan和达姆斯塔特工业大学的Thomas团队有非常紧密的合作。
文献:Sebastian Hasler, Pascal Reisert, Marc Rivinius, and Ralf K¨usters. Multipars: Reduced-Communication MPC over Z2k.
3.2 基于OT的协议
3.2.1 基于有限域上的运算
[MPCiPPM-16]: Cut&Choose。 严格来讲这不是focus在preprocessing Model的一个文章,参考论文引入这篇论文并不严谨。Cut&Choose本身是一个非常重要的OT算法。但正如前面所说,MPC是一个密码算法系统,由众多密码组件/原语等组成,所以对OT算法的改进自然也可以改进MPC性能。
文献:Yehuda Lindell and Benny Pinkas. Secure two-party computation via cut-and-choose oblivious transfer.
[MPCiPPM-17]: TinyOT。也是一个重要的OT协议,但同时关注MPC全系统的性能改进,MPCiPPM引入这篇论文是严谨的。
文献:Jesper Buus Nielsen, Peter Sebastian Nordholt, Claudio Orlandi, and Sai Sheshank Burra. A new approach to practical active-secure two-party computation.
[MPCiPPM-18]: Tinier。这篇文章的核心是理解OT extension。
文献:Tore Kasper Frederiksen, Marcel Keller, Emmanuela Orsini, and Peter Scholl. A unified approach to MPC with preprocessing using OT.
[MPCiPPM-19]: MASCOT。一篇经典论文,和Overdrive一样是Keller的一作。后续改进很多,可以作为论文选题去研究,推荐阅读。
文献:Marcel Keller, Emmanuela Orsini, and Peter Scholl. MASCOT: Faster malicious arithmetic secure computation with oblivious transfer.
3.2.2 基于环上的运算
[MPCiPPM-20]: SPDZ2k。从名字直观理解:SPDZ的环运算版本。但实际上域上运算与环上运算是两套不同的算法,所以SPDZ2k自身就是一篇重要的文章,并不是对SPDZ的简单改进。如果focus环上的MPC算法,非常推荐阅读这篇。
文献:Ronald Cramer, Ivan Damg˚ard, Daniel Escudero, Peter Scholl, and Chaoping Xing. SPDZ2k : Efficient MPC mod 2k for dishonest majority.
3.2.3 基于Silent OT的协议
不太理解MPCiPPM为什么把基于Silent OT的算法与有限域、环运算的算法并列在一起。分类方法不统一,让人疑惑。
[MPCiPPM-21]: Silent NISC。Silent OT是近些年比较热门的一个OT协议,简单理解就是协议双方没有交互,所以叫silent。感兴趣的可以自己去了解,具体算法不在这里展开。这篇论文有两个几乎一模一样的版本,标题一样,摘要几乎一样,只有算法部分有稍许不同。二者在正文中互相引用,连发表先后顺序都无法区分。属于比较迷惑的两篇论文。
文献:Elette Boyle, Geoffroy Couteau, Niv Gilboa, Yuval Ishai, Lisa Kohl, Peter Rindal, and Peter Scholl. Efficient two-round OT extension and silent noninteractive secure computation.
[MPCiPPM-22]: Silver。对Silent NISC的改进。
文献:Geoffroy Couteau, Peter Rindal, and Srinivasan Raghuraman. Silver: Silent VOLE and oblivious transfer from hardness of decoding structured LDPC codes.
3.3 Function Dependent Preprocessing
这是当前preprocessing model 的 MPC算法中的一个小的类别,与其它算法的主要区别在于:这类算法需要提前知道待处理的函数的部分信息,以在preprocessing阶段额外准备一部分算法材料,进一步加快后续运算。无法确切翻译其名称,也不确定这类算法是否应该单独分类、命名。
[MPCiPPM-23]: Turbospeedz。Function dependent版的SPDZ,标题即可看出核心贡献。
文献:Aner Ben-Efraim, Michael Nielsen, and Eran Omri. Turbospeedz: Double your online SPDZ! Improving SPDZ using function dependent preprocessing.
[MPCiPPM-24]: Boyle FSS。用Function Secure Share替代传统的Secret Share算法。
文献:Elette Boyle, Niv Gilboa, and Yuval Ishai. Secure computation with preprocessing via function secret sharing.
[MPCiPPM-25]: Pika。把Boyle FSS协议扩展到了环上。
文献:Sameer Wagh. Pika: Secure computation using function secret sharing over rings.
3.4 Quintuples
简单理解:前面那些MPC算法在preprocessing phase生成的是beaver triple 三元组,这一类算法则生成 quintuples 五元组。
[MPCiPPM-26]: ACEDX21。一个基于Galois 环上运算的MPC协议。其实可以把基于Galois 环的MPC协议划分为一个子类。
文献:Mark Abspoel, Ronald Cramer, Daniel Escudero, Ivan Damg˚ard, and Chaoping Xing. Improved single-round secure multiplication using regenerating codes.
[MPCiPPM-27]: EXY22。ACEDX21的扩展和改进。
文献:Daniel Escudero, Chaoping Xing, and Chen Yuan. More efficient dishonest majority secure computation over Z2k via galois rings.
[MPCiPPM-28]: Coral。一篇工作量爆炸的文章,提供了两个重要算法和多个子算法。
文献:Zhicong Huang, Wen-jie Lu, Yuchen Wang, Cheng Hong, Tao Wei, and WenGuang Chen. Coral: Maliciously Secure Computation Framework for Packed and Mixed Circuits.
3.5 Degree Reduction
简单理解:这类MPC算法通过把多项式指数从 2t 降到 t,来提升运算性能。
[MPCiPPM-29]: DN。Ivan一作,用词简单逻辑流畅,可读性强,非英语母语人士友好。
文献:Ivan Damg˚ard and Jesper Buus Nielsen. Scalable and unconditionally secure multiparty computation.
[MPCiPPM-30]: Garg24。DN的改进,但改用基于中国剩余定理的秘密共享。
文献:Sanjam Garg, Abhishek Jain, Pratyay Mukherjee, and Mingyuan Wang. Scalable multiparty computation from non-linear secret sharing.
4 特殊预处理模型
Special preprocessing model 与 传统preprocessing model的区别在于,后者在预处理阶段只生成beaver triple,quintuples等元组,前者则额外生成特殊的算法材料,以更适应后续运算需求。
简单理解:适应机器学习算法的MPC协议。
4.1 矩阵三元组和卷积三元组
[MPCiPPM-31]: CDNN15。MPC in machine learning方向比较早的一篇文章。
文献:Martine de Cock, Rafael Dowsley, Anderson CA Nascimento, and Stacey C Newman. Fast, Privacy Preserving Linear Regression over Distributed Datasets Based on Pre-distributed Data
[MPCiPPM-32]: SecureML。secure machine learning方向的一篇重要文献,做机器学习与MPC交叉课题推荐阅读。
文献:Payman Mohassel and Yupeng Zhang. SecureML: A system for scalable privacy-preserving machine learning.
[MPCiPPM-33]: SecureNN。CDNN15 + SecureML。
文献:Sameer Wagh, Divya Gupta, and Nishanth Chandran. SecureNN: 3-party secure computation for neural network training.
[MPCiPPM-34]: CKRR20。基于该算法的改进、扩展等研究工作有不少,值得一读。
文献:Hao Chen, Miran Kim, Ilya P. Razenshteyn, Dragos Rotaru, Yongsoo Song, and Sameer Wagh. Maliciously secure matrix multiplication with applications to private deep learning.
[MPCiPPM-35]: RRHK23。可直接生成卷积三元组,前文提到过的斯图加特大学团队。
文献:Marc Rivinius, Pascal Reisert, Sebastian Hasler, and Ralf Kuesters. Convolutions in overdrive: Maliciously secure convolutions for MPC.
[MPCiPPM-36]: LowGear2.0。CKRR20 + LowGear,仍是斯图加特大学团队。
文献:Pascal Reisert, Marc Rivinius, Toomas Krips, and Ralf K¨usters. Overdrive LowGear 2.0: Reduced-bandwidth MPC without sacrifice.
4.2 查找表 LookUp Tables
[MPCiPPM-37]: TinyTable。MiniMac的改进版本,两篇文章都来自Ivan及其团队。MiniMac也是一篇经典文献,但MPCiPPM并没有列出,感兴趣的可以自己看。
文献:Ivan Damg˚ard, Jesper Buus Nielsen, Michael Nielsen, and Samuel Ranellucci. The TinyTable protocol for 2-party secure computation, or: Gatescrambling revisited.
[MPCiPPM-38]: Multi-TinyTable。将适用于两个参与方的TinyTable算法扩展为多参与方。
文献:Marcel Keller, Emmanuela Orsini, Dragos Rotaru, Peter Scholl, Eduardo Soria-Vazquez, and Srinivas Vivek. Faster secure multi-party computation of AES and DES using lookup tables.
[MPCiPPM-39]: SPOP-LUT。
文献: Ghada Dessouky, Farinaz Koushanfar, Ahmad-Reza Sadeghi, Thomas Schneider, Shaza Zeitouni, and Michael Zohner. Pushing the communication barrier in secure computation using lookup tables.
[MPCiPPM-40]: FLUTE。SPOP-LUT的改进版本。不知所云、注水严重的一篇论文,不值得一读,不值得讲解。这种荒谬的文章不应该出现在NDSS。也很遗憾Thomas Schneider出现在作者列表中。无论他是否真的看过这篇论文,署名这种质量的文章都很不光彩。
文献:Andreas Br¨uggemann, Robin Hundt, Thomas Schneider, Ajith Suresh, and Hossein Yalame. FLUTE: Fast and secure lookup table evaluations.
[MPCiPPM-41]: MAESTRO。
文献:Hiraku Morita, Erik Pohle, Kunihiko Sadakane, Peter Scholl, Kazunari Tozawa, and Daniel Tschudi. MAESTRO: Multi-party AES using Lookup Tables.
4.3 布尔电路与算术电路的转换
[MPCiPPM-42]: Dabits。dabit 是一个特殊的bit,意为 double-shared authenticated bit。此处的double是指 二进制域 (布尔电路) 和算术域 (算术电路),即,dabit是一个同时在两个不同域中共享且认证的特殊bit,以此实现不同域上运算的转换。类BDOZ和SPDZ,请务必了解dabits和edaBits (extended daBits)。
文献:Dragos Rotaru and Tim Wood. Marbled Circuits: Mixing Arithmetic and Boolean Circuits with Active Security.
[MPCiPPM-43]: EDaBits。意为 extended daBits。dabits可以组合成为edabits,但不推荐。edabits自身的生成算法更高效。edabits现在还有不少研究工作在进行,推荐阅读。
文献:Daniel Escudero, Satrajit Ghosh, Marcel Keller, Rahul Rachuri, and Peter Scholl. Improved primitives for MPC over mixed arithmetic-binary circuits.
4.4 Tuples
简单理解:既不是三元组,也不是四元组或五元组的其他数量的元组。
[MPCiPPM-44]: Arithmetic Tuples。在preprocessing phase生成一种包含一堆元素的元组。
文献:Pascal Reisert, Marc Rivinius, Toomas Krips, and Ralf Kuesters. Arithmetic tuples for MPC.