(阅读笔记)DELPHI: A Cryptographic Inference Service for Neural Networks

Delphi这篇文章发表在Usenix20’上,文章链接如下:DELPHI: A Cryptographic Inference Service for Neural Networks

简介

Delphi 是一个针对神经网络推理阶段的两方安全计算框架,主要提出了一个新的密码学预测协议和一个权衡性能和准确率的模型算法规划器。Delphi 基于GAZELLE的工作(使用LHE技术计算线性层,使用混淆电路计算非线性层,并且描述了两种技术之间的转换协议),将复杂的同态和密码学运算迁移到预处理阶段,因而减少了在线阶段的计算消耗,提高了整体的效率。
Delphi解决的主要问题是:传统的神经网络模型推理服务中,要么服务方将模型发送给用户,用户进行本地推理;要么用户将输入数据发送给服务方,服务方在云端推理并返回预测结果。这两种方法都有隐私泄露风险,前者会泄露专有模型,后者会泄露用户敏感数据。
Delphi从线性层和非线性层两个方向对GAZELLE协议做出了优化:在线性层,Delphi框架将针对LHE密文复杂的密码运算移到预处理阶段;在非线性层,计算瓶颈是ReLU激活函数(布尔电路,计算量大耗时长),所以Delphi框架使用多项式近似激活函数(算数电路,计算高效)部分取代了ReLU激活函数。但是,多项式激活函数的引入势必会降低模型准确度,这实际上是一种以精度换性能的做法。为了达到两者的平衡,Delphi采用模型算法规划器动态调整模型中ReLU激活函数和多项式近似激活函数所占的比例,以求在满足用户需求的前提下尽可能地提高性能。规划器主要基于神经网络结构搜素(NAS)和超参数优化等技术,神经网络结构搜索是自动机器学习里面一个热门的研究领域,它致力于自动寻找理想的符合需求的神经网络架构。
Delphi 的主要贡献是:构造了一个面向真实场景的安全推理系统。主要创新点是:在非线性层使用多项式部分替代ReLU函数。

Delphi 协议

系统架构

在Delphi中,两方参与推理运算,服务器提供神经网络作为输入,客户端提供隐私输入用于预测。
威胁模型:半诚实模式
协议架构:用于评估神经网络的混合密码协议、用于优化神经网络的模型算法规划器
在这里插入图片描述

密码协议

包括两部分:预处理阶段和在线阶段。使用了线性同态加密、混淆电路、不经意传输、加性秘密共享、乘法三元组等技术。

预处理阶段

在这里插入图片描述
在这里插入图片描述

预处理阶段针对服务器提供发模型 M M M 预计算共享数据,方便在线阶段使用,该过程需要客户端参与,但不需要客户端输入数据。假设服务器端的模型 M 共有 l l l 层网络,每一层网络用一组参数表示,则client和server分别为第 i i i 层网络生成随机掩码向量, 掩码需要覆盖网络中的每一个参数。具体流程如下:

  1. 客户端运行 H E . K e y G e n HE.KeyGen HE.KeyGen来获得公钥 p k pk pk 和私钥 s k sk sk
  2. 对于每一层网络,双方都选择自己的随机掩膜向量 r i , s i r_i, s_i ri,si
  3. 客户端将自己的随机向量加密并发送给服务器 H E . E n c ( p k , r i ) HE.Enc(pk,r_i) HE.Enc(pk,ri), 服务器同样使用 LHE 技术加密计算 H E . E n c ( p k , M i ⋅ r i − s i ) HE.Enc(pk, M_i\cdot r_i-s_i) HE.Enc(pk,Mirisi),并将密文发送给客户端。
  4. 客户端解密得到 M i ⋅ r i − s i M_i\cdot r_i-s_i Mirisi, 服务器拥有 s i s_i si,因此双方得到一个加性秘密分享 M i ⋅ r i M_i\cdot r_i Miri
  5. 最后一步取决于激活函数。如果是 ReLU 激活函数,服务器按照 Figure5 的算法生成一个GC电路并将其发送给客户端,同时双方执行 OT 协议,获取 r i + 1 r_{i+1} ri+1 M i ⋅ r i − s i M_i\cdot r_i-s_i Mirisi 的标签信息。如果是多项式近似,双方则生成一个 Beaver 三元组。

在线阶段

在这里插入图片描述
具体流程如下:

  1. 客户端输入 x x x,并发送 x − r 1 x-r_1 xr1 给服务器,双方持有 x x x 的加性秘密分享。假设在第 i i i 层网络,客户端持有 r i r_i ri, 服务器持有 x i − r i x_i-r_i xiri, 其中 x i x_i xi 是第 i − 1 i-1 i1 层的输出, 那么双方拥有 x i x_i xi 的秘密分享。
  2. 线性层:服务器计算 M i ( x i − r i ) + s i M_i(x_i-r_i)+s_i Mi(xiri)+si,双方拥有 M i x i M_ix_i Mixi 的秘密分享。
  3. 非线性层(ReLU激活函数):服务器将 GC 电路中 M i ( x i − r i ) + s i M_i(x_i-r_i)+s_i Mi(xiri)+si 对应的标签发送给客户端,客户端利用此标签和离线阶段通过 OT 技术获得的标签来评估 GC 电路,获得 x i + 1 x_{i+1} xi+1,并通过一次一密技术将 O T P ( x i + 1 − r i + 1 ) OTP(x_{i+1}-r_{i+1}) OTP(xi+1ri+1) 发送给服务器,服务器解密得到 x i + 1 − r i + 1 x_{i+1}-r_{i+1} xi+1ri+1, 因此双方拥有 x i + 1 x_{i+1} xi+1 的秘密分享。
  4. 非线性层(多项式近似):双方利用 Beaver 三元组获得乘法协议,执行结束后客户端持有 [ x i + 1 ] 1 [x_{i+1}]_1 [xi+1]1,服务器持有 [ x i + 1 ] 2 [x_{i+1}]_2 [xi+1]2,这种形式与约定的其他层形式不一样,因此客户端计算 $ [ x i + 1 ] 1 [x_{i+1}]_1 [xi+1]1-r_{i+1}$ 并发送给服务器,服务器将其与 [ x i + 1 ] 2 [x_{i+1}]_2 [xi+1]2 相加得到 x i + 1 − r i + 1 x_{i+1}-r_{i+1} xi+1ri+1,双方拥有 x i + 1 x_{i+1} xi+1 的秘密分享。
  5. 输出层:服务器将 x l − r l x_l-r_l xlrl 发送给客户端,客户端加上 r l r_l rl 得到 x l x_l xl

(参考知乎专栏Delphi阅读笔记

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值