Press "Enter" to skip to content

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

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

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

 

0 1  设计思想

 

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

 

0 2  主要工作

 

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

 

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

 

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

 

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

 

 

0 3  Mirrored Sharing Semantics

 

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

 

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

 

存在 和 满足: ;

 

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

 

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

 

 

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

 

0 4  Robust 4PC

 

4.1 Bi-Convey

 

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

 

 

和 各自将 发送给 。同时, 和 将关于 的承诺 发送给 。当然,关于承诺使用的随机数是相同的;

 

如果 收到的 是相等的,那幺 和 均没有作恶。 接受 ,令 ,并丢弃来自 的任何信息;否则,令 ,其中 表示 的share和随机数种子;

 

对于 ,如果收到的承诺相同,则令 ;否则令 ;

 

和 互相交换msg;

 

如果 且 ,则 接受和 匹配的 。否则, 和 可以在本地恢复明文进行明文计算。

 

 

4.2 Input Sharing

 

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

 

 

4.3 Circuit Evaluation

 

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

 

 

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

 

 

 

4.4 Output Computation

 

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

 

 

0 5  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个参与方共有)。最后,调用 实现传输并计算最终的 。具体协议 如下。

 

 

0 6  Evaluation

 

本文做了关于关键模块的性能测试,进一步进行了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。

 

 

 

0 7  结论

 

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

 

作者简介:

 

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

 

编辑:李安国

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注