安全多方学习开源框架调研
安全多方学习开源框架调研
涂新宇 阮雯强 林鑫 韩伟力
(复旦大学 数据安全与治理研究组 上海 200438)
摘要:在数据隐私保护法律(如中国的《数据安全法》和《个人信息保护法》以及欧盟的 GDPR 等)日趋完善的大环境下,如何在合法合规的前提下为数据孤岛搭建平台桥梁是一个亟需解决的问题。安全多方学习是指基于安全多方计算实现的隐私保护机器学习的方法和框架,已有一批框架已经开源。本文调研了 FudanMPL, Primihub, 隐语,EzPC,MP-SPDZ 以及 Piranha 六个目前国内外主流的开源安全多方学习框架,并从安全模型,应用场景的完备性,框架的易用性以及是否存在特定优化四个角度对上述框架进行了简要评估。
关键词安全多方学习;隐私保护;安全多方计算;机器学习;框架 1.引言随着互联网+,人工智能以及大数据技术的发展,利用海量数据训练精确模型为人们的生活带来极大的便利。然而,以机器学习,深度学习为代表的数据依赖技术往往需要多个数据持有方进行合作才能得到足够精确的模型。在传统训练过程中,数据持有方将数据直接以明文的形式传递给合作方进行建模或将泄露用户个人隐私,而随着数据隐私保护法律(如中国的《数据安全法》和《个人信息保护法》以及欧盟的 GDPR 等)日趋完善,各数据持有方之间的流通渠道受阻,进而形成数据孤岛,如何在合法合规的前提下进行数据流通,为各数据孤岛之间搭建桥梁已然成为亟需解决的问题。由于安全多方计算(Secure Multi-Party Computation)技术使得一组互不信任的参与方能够利用各自手中的数据安全地协同计算一个既定函数,在保证参与方参与计算后获得正确计算结果的同时,限制其无法获得除计算结果之外的任何信息,基于安全多方计算技术的隐私保护机器学习,即安全多方学习,成为新的研究热点。安全多方学习使得各参与方能够实现在保障用户隐私的同时对数据进行分析建模。然而,在安全多方学习打通数据孤岛间的传输通道,实现安全地协同训练机器学习模型的同时,巨大的计算以及通信开销成为利用安全多方计算技术进行模型训练的主要障碍。因此,如何设计高效的安全多方计算协议成为了当下的研究热点。近年来,一系列针对不同安全多方学习场景特定协议设计与效率优化的工作涌现了出来。安全多方计算可以从安全模型角度分为半诚实(Semi-honest)和恶意(Malicious)安全模型,同时根据诚实参与方的占比情况分为诚实大多数(Honest-majority)和非诚实大多数(Dishonest-majority)两种。其中,半诚实模型指参与方将会按照协议执行对应步骤,但对能够获得的中间值保持好奇,即会尝试通过所能获得的中间值推断与原始数据相关的信 息。与半诚实模型不同的是,在恶意安全模型下,参与方可以背离协议规定,如篡改输出密 文或刻意发送错误数据等,因此需要额外设计验证环节以确保计算结果的正确性。此外,根据诚实参与方占比情况不同,协议设计也需要考虑非诚实参与方的共谋恢复数据的问题。安全多方计算技术路线包括混淆电路,同态加密,秘密共享以及混合协议四种,其中混淆电路(GC)的通信轮次恒定,结合其本身特性,更适用于比较操作;同态加密通信轮次恒定,但高计算开销使得该技术路线更适用于安全推理场景,即利用训练好的模型进行安全推理预测。秘密共享技术路线的计算复杂度较低,但主要瓶颈在通信轮次上,常见的秘密分享方式包括算术秘密分享(Arithmetic Secret Sharing),布尔秘密分享(Boolean Secret Sharing) 等。由于不同的技术路线其擅长的运算不同,汲取众长以提高效率的混合协议成为主流技术路线之一,例如算术秘密分享在进行算术运算(加减法,乘法)时更为高效、布尔秘密分享在进行逻辑运算(与,或,异或等)时更为高效、混淆电路技术在做比较操作时更为高效。因此 Demmler 等人搭建了两方场景下的安全多方学习框架 ABY [1]以实现算术秘密分享,布尔秘密分享以混淆电路的转换协议,从而高效计算不同函数。在确定技术路线后,也能根据不同参与方数量对协议做出相应优化,例如 Mohassel 等人基于复制秘密共享设计了半诚实安全下的诚实大多数协议 ABY3 [2],该协议支持三方的算术秘密共享、布尔秘密共享和姚氏共享的切换,并且支持对线性回归、逻辑回归和神经网络 等机器学习模型进行安全训练和预测。值得注意的是,根据三方特性设计的复制秘密共享协议较大幅度减小了通信量,从而提高协议的整体效率。不难看出,在安全多方学习中,相关研究人员精心设计的协议和框架比较丰富,这些协议与框架对于没有密码学基础的编程人员而言门槛较高,从而影响了安全多方学习技术的实用化。总的来说,安全多方学习实用化进程目前遇到两大难点:一、安全多方计算的效率问题,即密文态下运算在所需的开销往往远高于明文态下运算开销,面对复杂模型时,训练时间往往超过一个月,这是令人难以接受的。二、安全多方学习框架易用性问题,即用户需要 对底层密码学原语有较强理解才能够针对特定问题选择高效的安全多方计算协议。同时,在基于选定协议进行模型设计时,缺乏像 Tensorflow,Pytorch 等对用户友好,文档完备,开发简易的框架,对用户的编程能力也有着一定的要求。为了解决安全多方学习实用化的两大难点痛点,近些年,各大互联网巨头与高校研究团队开发了各种安全多方学习框架,旨在提供一个能够在多安全模型下,易部署、易使用且支持多协议、多场景、多模型的通用安全多方学习框架。在本文中,我们对国内三个,国外三个共六个主流的安全多方学习框架进行了调研,分析了各框架的优缺点,并从安全模型,应用场景的完备性,框架的易用性以及是否存在特定优化四个角度对各框架进行评估。在接下来的章节中,第二章将会介绍评估安全多方学习框架的评估指标体系,第三章将会介绍三个国内开源框架,并分析其主要贡献与不足,第四章将会介绍三个国外开源框架, 并分析其主要贡献与不足。 2.框架评估指标体系 本章将讨论评估安全多方学习框架的指标,并解释相关专业名词的出处,为后续开源安全多方学习框架评估做好基础铺垫。2.1 安全模型 安全多方学习框架中安全模型的完备性是一项重要指标,在一定程度上体现了该框架的适用场景。在安全多方计算中,安全模型由参与方可信程度和共谋策略构成。根据参与方可信程度可以将安全模型分为两大类,即半诚实(Semi-honest)和恶意(Malicious)安全模型, 其中半诚实安全模型下,敌手会按照协议运行计算,但对执行协议时获得的信息保持好奇, 能够通过这些信息尝试推断与原始数据相关的信息;恶意安全模型下,敌手不会遵照协议运行计算,恶意参与方可以在不影响协议运行的前提下任意修改中间输入影响计算最终结果以达到其获取其他参与方数据信息或干预最终精确模型等目的。由于恶意安全模型中确保检测恶意参与方行为所额外增加的通信与计算开销较大,因此,Aumann 等人提出一种真实场景 中更为常见隐蔽安全(Covert) [3]模型,该模型下参与方能在任意时刻选择偏离协议约定,而(由于被检测到可能带来的巨额赔偿)参与方不愿意被检测到其恶意行为,因此基于该模型设计的协议通过以较高的概率检测到敌手的恶意行为减小计算与通信开销,进而提高模型效率。在确定安全模型后,根据参与方之间共谋策略又分为诚实大多数(Honest Majority)和非诚实大多数(Dishonest Majority),假定参与方数量为,敌手最多控制个参与方合谋,若则为诚实大多数,则为非诚实大多数。在后续的评估中,将主要从安全多方学习框架是否支持半诚实和恶意安全模型,是否细分至诚实/非诚实大多数进行安全多方学习框架的安全模型完备性评估。2.2 应用场景 在确定技术路线后,能否支持多种应用场景下的模型训练是安全多方学习框架的一项关键指标。常见的应用包括隐私保护求交(Private Set Intersection),匿踪查询 (Private Information Retrieval),线性回归(Linear Regression),逻辑回归(Logistic Regression),树类模型(Tree-based Models),多层感知机(Multilayer Perceptron),卷积神经网络(Convolutional Neural Network)和长短期记忆网络(Long Short-term Memory)。在后续的评估中,将主要从框架已经支持哪种或哪些应用,来刻画安全多方学习框架所支持应用场景的完备性。2.3 易用性 安全多方学习框架的易用性是评估框架潜力的一项关键性指标,常见的提高安全多方学 习框架易用性的方式有:一、底层密码学原语与模型设计相互隔离。如此一来,安全多方学习框架能够使用常用的编程语言(如 python)进行训练模型的设计,降低学习成本。接着, 通过编译器对常用语言编写的代码进行编译,而后将字节码传入虚拟机中,虚拟机装载入指定协议以执行对应指令,开始模型训练过程。编译器与虚拟机的组合能够减少模型设计人员与密码学协议设计人员的耦合,这是提高安全多方学习框架易用性的关键性设计。二、在模型设计阶段,提供如 Pytorch,Tensorflow 等常用深度学习框架的接口将大幅度降低模型设计的门槛,提升安全多方学习框架的易用性。2.4 特定优化 安全多方学习框架中是否存在特定优化是提高框架效率的关键性影响因素,是评估框架性能的一项关键性指标。常见的优化方式主要有两种思路:一、编译优化,其中编译优化通常与框架的易用性相结合,在编译通用语言编写的模型设计代码时,通过并行无数据依赖的指令,调整运算中的先后顺序以减少截断次数等方式优化协议运行效率;二、GPU 优化本地计算,通过 GPU 进行本地计算的进行优化,提高本地计算的速率,进而提高协议整体效率。通过以上两点的针对性优化,安全多方学习框架能够做到协议本身的高效与实际运行的高效并举,推进安全多方学习实用化进程。
3.国内开源框架(按字母序)3.1 FudanMPL
4.国外开源框架(按字母序)4.1 EzPC
[1] Demmler, Daniel, Thomas Schneider, and Michael Zohner. "ABY-A framework for efficient mixed-protocol secure two-party computation." NDSS. 2015.
[2] Mohassel, Payman, and Peter Rindal. "ABY3: A mixed protocol framework for machine learning." Proceedings of the 2018 ACM SIGSAC conference on computer and communications security. 2018.
[3] Aumann, Yonatan, and Yehuda Lindell. "Security against covert adversaries: Efficient protocols for realistic adversaries." Journal of Cryptology 23.2 (2010): 281-343.
[4] Cramer, Ronald, et al. "SPDℤ2: Efficient MPC mod 2 for Dishonest Majority." Advances in Cryptology-CRYPTO. 2018.
[5] Zhang, Q. , et al. "CHEETAH: An Ultra-Fast, Approximation-Free, and Privacy-Preserved Neural Network Framework based on Joint Obscure Linear and Nonlinear Computations." (2019).
[6] Cramer, Ronald, Ivan Damgård, and Ueli Maurer. "General secure multi-party computation from any linear secret-sharing scheme." International Conference on the Theory and Applications of Cryptographic Techniques. Springer, Berlin, Heidelberg, 2000. [7] Araki, Toshinori, et al. "High-throughput semi-honest secure three-party computation with an honest majority." Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. 2016.
[8] Kumar, Nishant, et al. "Cryptflow: Secure tensorflow inference." 2020 IEEE Symposium on Security and Privacy (SP). IEEE, 2020.
[9] Rathee, Deevashwer, et al. "CrypTFlow2: Practical 2-party secure inference." Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security. 2020.
[10] Chandran, Nishanth, et al. "EzPC: programmable and efficient secure two-party computation for machine learning." 2019 IEEE European Symposium on Security and Privacy (EuroS&P). IEEE, 2019.
[11] Watson, Jean-Luc, Sameer Wagh, and Raluca Ada Popa. "Piranha: A {GPU} Platform for Secure Computation." 31st USENIX Security Symposium (USENIX Security 22). 2022.
[12] Mohassel, Payman, and Yupeng Zhang. "Secureml: A system for scalable privacy-preserving machine learning." 2017 IEEE symposium on security and privacy (SP). IEEE, 2017.
[13] Wagh, Sameer, et al. "Falcon: Honest-majority maliciously secure framework for private deep learning." arXiv preprint arXiv:2004.02229 (2020).
[14] Dalskov, Anders, Daniel Escudero, and Marcel Keller. "Fantastic Four:{Honest-Majority}{Four-Party} Secure Computation With Malicious Security." 30th USENIX Security Symposium (USENIX Security 21). 2021.
[15] Song, Lushan, et al. "pMPL: A Robust Multi-Party Learning Framework with a Privileged Party." Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security. 2022.
[16] Patra, Arpita, et al. "{ABY2. 0}: Improved {Mixed-Protocol} Secure {Two-Party} Computation." 30th USENIX Security Symposium (USENIX Security 21). 2021.
[17] Asharov, Gilad, and Yehuda Lindell. "The BGW Protocol for Perfectly-Secure Multiparty Computation." Secure Multi-Party Computation 10.1 (2013).
[18] D. Rathee, A. Bhattacharya, et al, "SecFloat: Accurate Floating-Point meets Secure 2-Party Computation," 2022 IEEE Symposium on Security and Privacy (SP), 2022.
[19] Rathee, Deevashwer, et al. "SiRnn: A math library for secure RNN inference." 2021 IEEE Symposium on Security and Privacy (SP). IEEE, 2021.
[20] Rathee, Deevashwer, et al. "CrypTFlow2: Practical 2-party secure inference." Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security. 2020.
[21] Kumar, Nishant, et al. "Cryptflow: Secure tensorflow inference." 2020 IEEE Symposium on Security and Privacy (SP). IEEE, 2020.
[22] Keller, Marcel. "MP-SPDZ: A versatile framework for multi-party computation." Proceedings of the 2020 ACM SIGSAC conference on computer and communications security. 2020.
向上滑动阅览
往期推荐:
隐私计算头条周刊(11.13-11.19)
热门文章:
姚期智院士:数据、算法、算力为何是数字经济核心技术?
附下载 | 2022年隐私计算技术与行业应用报告合集(33份)
招标 | 近期隐私计算项目招标中标25(大连理工大学、中国电信北京研究院、松山湖材料实验室、北京控制工程研究所、光大永明)