查看原文
其他

高效鲁棒的隐私保护机器学习框架

董业 开放隐私计算 2022-08-28

论文发表在PoPETs20,下载链接https://eprint.iacr.org/2019/1365


01设计思想


之前介绍的有关PPML的论文,大多数还是围绕半诚实(semi-honest)模型展开的工作。核心的任务聚焦于在保证隐私的情况下尽可能的提升系统性能。除了ABY3保证了正确性(correct with abort)和ASTRA进一步保证了公平性(Fairness)。FLASH进一步实现了输出可达性(Guaranteed Output Delivery,GOD),即无论恶意敌手进行何种攻击诚实参与方都可以得到计算结果。FLASH采用了4方计算架构,在诚实大多数(最多1方是静态恶意敌手)情况下可以满足GOD安全。其核心的设计思想在于,当检测到恶意行为时可以定位到恶意方在两方之间(但是不能确定具体是哪一方),但是可以确定剩余的两方是诚实参与方。如此,则可以令诚实参与方获得数据明文,从安全计算转化为明文计算(不对诚实参与方保护隐私)。


02主要工作


1)FLASH首先基于Additive Shairing(-sharing)设计了4方下的Mirrored Sharing(-sharing)方案;

2)进一步构造了Bi-Convey原语用来在4方下将 和 共有的输入的辅助下传送给,该过程或者成功传送(没有恶意行为),或者能确定敌手在()之间(之后交换各自的share恢复明文,进行明文计算);

3)最终,关于乘法和比较等操作的构造,则是让每一次交互都可以抽象成一次Bi-Convey过程,从而使得整个系统能够满足GOD安全性要求;

4)进一步,FLASH构造了面向机器学习的计算模块,包括向量乘法、激活函数计算、截断、比特转化等,并对这些模块做了进一步优化。例如,向量乘法的通信量与向量大小无关、函数的近似等。并和ABY3、ASTRA进行了比较。性能的理论提升如下表。



03Mirrored Sharing Semantics


  • Additive Sharing(-sharing):对于,在2方下可以被分享为 ,满足。其中每一个参与方持有一份。

  • Mirrored Sharing(-sharing):对于在4方下:

    • 存在满足:

    • -sharing分享在参与方之间,即。而参与方则都持有

    • 类似的, 被-sharing 分享在之间,即。而则都持有。整体的语义分享如下:

      很显然,从-sharing 的线性性质可以很容易的推导出-sharing 的线性,即支持非交互计算加法和明文-密文乘法。



04Robust 4PC


4.1 Bi-Convey

如前所属,Bi-Convey 在4方下将 和 共有的输入的辅助下传送给,该过程或者成功传送(没有恶意行为),或者能确定敌手在()之间(之后交换各自的share恢复明文,进行明文计算)。具体来说:

  1. 各自将发送给。同时,将关于的承诺发送给。当然,关于承诺使用的随机数是相同的;
  2. 如果收到的是相等的,那么均没有作恶。接受,令,并丢弃来自的任何信息;否则,令,其中表示的share和随机数种子;
  3. 对于,如果收到的承诺相同,则令;否则令
  4. 互相交换msg;
  5. 如果,则接受和匹配的。否则,可以在本地恢复明文进行明文计算。


4.2 Input Sharing


在Input Sharing阶段,Dealer可能是恶意的敌手,那么其可能分发给不同的参与方的share不匹配。为了确认一致性,需要在share之后利用承诺进行验证。例如,如果Dealer是,在预计算阶段,所有的参与方根据共享的随机数种子生成()。在线计算阶段,计算并把发送给。最后,利用承诺来进行验证,取majority为最终分享结果。Dealer是其他参与方的情况类似。具体协议如下。


4.3 Circuit Evaluation


加法和明文-密文乘法比较容易,难点在于密文-密文乘法。对于乘法中两方的目标是计算


令 ,,其中。那么根据-sharing的语义,在预计算阶段的随机数生成基础上,可以在本地计算可以在本地计算。但是这并不能保证能够成功的被获得。为了解决这个问题,进一步将分解为。其中,被共有,被共有,。如此一来,则可以利用成功发送给中两方。其中可以在预计算也利用共享随机数种子和原语生成。最终,在计算之后便可以计算,并利用发送给。具体协议如下。


4.4 Output Computation


恢复算法比较直观,因为每一方缺失的份额都被其他三方持有,所以可以令其他三方中两方发送缺失的份额,而剩下的一方直接发送对应的哈希值,最终结果取majority。具体协议如下。



05

ML Building Blocks



进一步构造面向ML计算的安全计算模块。


5.1  Arithmetic/Boolean Couple Sharing Primitive


在之后的计算中,会出现秘密值只被或者中两方持有,持有双方试图生成的情况。对于这种情况的sharing,可以令被另外两方完全持有的分享为0,从而减少开销。具体来说,如果中两方持有,则;如果中两方持有,则。具体协议如下。

注意,Case 2存在笔误:1);2)


5.2 Dot Product


对于向量内积 ,可以简单的调用乘法协议完成,但是这会使得通信和向量大小正相关。为了使得通信量独立于向量大小,可以借鉴ABY3中的方法,即现在share上做完加法求和再对求和结果进行通信。需要改变的则是对于的计算,类似的还有关于的计算。其余计算则没有太大改变。具体协议如下。


5.3 MSB Extraction


对于比较u<v,其等价于提取的最高有效位 。本文采取和ASTRA相同的设计思想:对于随机数,有。因此,可以令参与方在预计算阶段生成,其中。在线计算阶段,则求调用并公开计算结果从而求得,然后计算,最后计算。但是利用乘法隐藏真实值是有一定的泄露的:例如,如果是奇数,而公开的是偶数,那么一定是偶数。所以,这种方法的安全性并不如one-time-pad。



5.4 Truncation

为了防止多次连续乘法造成溢出,本文截断方案采取类似ABY3中的截断方法:首先生成的秘密分享,其中。在线计算计算,乘法计算完成时公开,并截断获得。进一步,利用协议生成,并计算最后结果。具体协议如下。


5.5 Bit Conversion

在5.3节中,协议求得的是Boolean shares。但是计算得到Boolean shares之后,ML中后续的任务往往又涉及到乘法等算术计算。因此,需要将Bit的Boolean shares转化为等价的Arithmetic shares。对于比特 ,有:

其中,是对应比特值的算术表示,明文持有他们的参与者(中两方持有, 中两方持有)可以在本地进行转化。因此,难点在于计算最后一个乘法。利用前文设计的协议和,可以完成Bit Conversion。具体协议如下。


5.6 Bit Insertion

给定Boolean shared的比特 和Arithmetic shared的,求在ML计算中是很常见的一种操作,比如。一种直接的方法可以首先调用实现Bit Conversion然后再调用协议实现乘法。进一步,本文提出了如下方法减少通信量和通信轮数。具体来说,对于

其中, 。如此,参与方可以首先对于生成关于-shares,对于生成关于-shares,如此参与方可以本地计算(每一项都被2个参与方共有)。最后,调用实现传输并计算最终的。具体协议如下。


06Evaluation


本文做了关于关键模块的性能测试,进一步进行了ML模型的性能实验。对于ML中的算子,矩阵乘法、卷积可以归约到向量乘法,可以用分段函数计算(分段方法和SecureML一样),而则使用可以先做再求乘积。实验结果和ABY3进行比较。

6.1 模块实验

1)Dot Product:

首先在固定向量长度下比较FLASH和ABY3的Latency;


其次,比较性能在特征增加时带来的Latency变化。


2)MSB Extraction

首先比较一次协议调用的Latency:


进一步,比较多次调用的Latency增长趋势:

3)Truncation

Latency 和 Throughput 比较如下:


4)ML Evaluation

首先比较关于线性回归和Logistic回归的Latency。


接下来,比较两种回归的Throghput。



最后比较NN模型的Latency和Throghtput。



07结论


本文是比较早的一项实现GOD安全性的安全ML的工作,而且不再需要用广播。对后来的工作有很多借鉴意义。但是,也有许多需要改进之处,例如如何在实现GOD的情况下实现Privacy尚未得到很好的解决。




作者简介

董业, 本科毕业于山东大学计算机科学与技术专业,目前在中国科学院信息工程研究所攻读博士学位。 主要研究兴趣包括隐私保护、安全多方计算、同态加密和机器学习。个人主页:https://ye-d.github.io/,知乎:酸菜鱼。


编辑:李安国


往期回顾

2021联邦学习全球研究与应用趋势报告 | 附下载链接

隐私计算打造资金监管新范式,打开大湾区数据要素流通新空间

隐私计算头条周刊(9.12-9.18)


END

欢迎投稿邮箱:kedakeyin@163.com更多讨论,请扫描下方二维码,加入交流群一起学习成长。


开放隐私计算


OpenMPC




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存