(阅读笔记)BLAZE: Blazing Fast Privacy-Preserving Machine Learning

BLAZE: Blazing Fast Privacy-Preserving Machine Learning阅读笔记

简介

本文介绍BLAZE这篇文章,BLAZE是Arpita Patra等人发表于NDSS’20上的文章《BLAZE: Blazing Fast Privacy-preserving Machine Learning》, 论文链接如下:BLAZE: Blazing Fast Privacy-preserving Machine Learning
BLAZE在安全外包环境下,构建了一个三方服务器、可抵御一个恶意敌手的PPML框架,协议是在 Z 2 l \mathcal{Z}_{2^l} Z2l整数环上实现的。
BLAZE框架由三层架构实现,第一层是最底层的协议:乘法协议、比特提取协议和Bit2A转换协议;第二层由第一层搭建:点积运算、截断、ReLU和Sigmoid激活函数;第三层是应用:线性回归、逻辑回归和神经网络。
请添加图片描述
BLAZE的核心是秘密分享的构造和乘法的设计,其他运算都是建立在乘法的基础上,因此本文主要介绍分享重构过程和乘法协议。

秘密分享

Sharing语义

三种秘密分享 (秘密值为 v v v):

  • [ ⋅ ] − s h a r i n g [\cdot ]-sharing []sharing: P 1 , P 2 P_1, P_2 P1,P2分别持有 [ v ] 1 , [ v ] 2 ∈ Z 2 l [v]_1,[v]_2\in \mathcal{Z}_{2^l} [v]1,[v]2Z2l, 且 v = [ v ] 1 + [ v ] 2 v=[v]_1+[v]_2 v=[v]1+[v]2.
  • ⟨ ⋅ ⟩ − s h a r i n g \langle\cdot\rangle-sharing sharing: P 0 P_0 P0持有 ( [ λ v ] 1 , [ λ v ] 2 ) ([\lambda_v]_1,[\lambda_v]_2) ([λv]1,[λv]2), P 1 P_1 P1持有 ( [ λ v ] 1 , v + λ v ] ) ([\lambda_v]_1, v+\lambda_v]) ([λv]1,v+λv]), P 2 P_2 P2持有 ( [ λ v ] 2 , v + λ v ] ) ([\lambda_v]_2, v+\lambda_v]) ([λv]2,v+λv]), 其中 [ λ v ] 1 , [ λ v ] 2 ∈ Z 2 l , λ v = [ λ v ] 1 + [ λ v ] 2 [\lambda_v]_1, [\lambda_v]_2 \in \mathbb{Z}_{2^l}, \lambda_v=[\lambda_v]_1+[\lambda_v]_2 [λv]1,[λv]2Z2l,λv=[λv]1+[λv]2.
  • [  ⁣ [ ⋅ ]  ⁣ ] − s h a r i n g [\![\cdot]\!]-sharing [[]]sharing: 在 ⟨ ⋅ ⟩ − s h a r i n g \langle\cdot\rangle-sharing sharing的基础上,新增加一个 γ ∈ Z 2 l \gamma\in\mathbb{Z}_{2^l} γZ2l, 其中 P 1 , P 2 P_1, P_2 P1,P2 持有 γ v \gamma_v γv, P 0 P_0 P0 持有 β v + γ v \beta_v+\gamma_v βv+γv.
    请添加图片描述

Sharing Protocol

Protocol Π s h ( P i , v ) \Pi_{sh}(P_i,v) Πsh(Pi,v) : server P i P_i Pi 生成秘密值 v ∈ Z 2 l v\in \mathbb{Z}_{2^l} vZ2l [  ⁣ [ ⋅ ]  ⁣ ] − s h a r i n g [\![\cdot]\!]-sharing [[]]sharing .
请添加图片描述
预处理阶段 i=0,1,2 时三方持有信息:
请添加图片描述
在线阶段 i=0,1,2 时三方操作:
在这里插入图片描述
Protocol Π j s h ( P i , P j , v ) \Pi_{jsh}(P_i,P_j,v) Πjsh(Pi,Pj,v) :servers P i , P j P_i, P_j Pi,Pj 联合生成秘密值 v ∈ Z 2 l v\in \mathbb{Z}_{2^l} vZ2l [  ⁣ [ ⋅ ]  ⁣ ] − s h a r i n g [\![\cdot]\!]-sharing [[]]sharing.
请添加图片描述

对于不同输入, Π j s h ( P i , P j , v ) \Pi_{jsh}(P_i,P_j,v) Πjsh(Pi,Pj,v)的输出结果,其中最后一行的每一个三元组对应的值分别是 P 0 : ( [ α v ] 1 , [ α v ] 2 , β v + γ v ) ; P 1 : ( [ α v ] 1 , β v = v + α v , γ v ) ; P 2 : ( [ α v ] 2 , β v = v + α v , γ v ) P_0: ([\alpha_v]_1, [\alpha_v]_2,\beta_v+\gamma_v); P_1:([\alpha_v]_1, \beta_v=v+\alpha_v,\gamma_v); P_2:([\alpha_v]_2, \beta_v=v+\alpha_v,\gamma_v) P0:([αv]1,[αv]2,βv+γv);P1:([αv]1,βv=v+αv,γv);P2:([αv]2,βv=v+αv,γv).
请添加图片描述
Protocol Π r e c ( P , [  ⁣ [ v ]  ⁣ ] ) \Pi_{rec}(\mathcal{P},[\![v]\!]) Πrec(P,[[v]]) : P \mathcal{P} P 重构秘密值 v v v.
请添加图片描述

Multiplication

Protocol Π m u l t ( P , [  ⁣ [ x ]  ⁣ ] , [  ⁣ [ y ]  ⁣ ] ) \Pi_{mult}(\mathcal{P}, [\![x]\!],[\![y]\!]) Πmult(P,[[x]],[[y]]) : 给定 x x x y y y [  ⁣ [ ⋅ ]  ⁣ ] − s h a r i n g [\![\cdot]\!]-sharing [[]]sharing P \mathcal{P} P 计算 z = x y z =xy z=xy [  ⁣ [ ⋅ ]  ⁣ ] − s h a r i n g [\![\cdot]\!]-sharing [[]]sharing .

半诚实敌手模式

  • β z = z + α z = x y + α z = ( β x − α x ) ( β y − α y ) + α z = β x β y − β x α y − β y α x + α x α y + α z \beta_z=z+\alpha_z=xy+\alpha_z=(\beta_x-\alpha_x)(\beta_y-\alpha_y)+\alpha_z=\beta_x\beta_y-\beta_x\alpha_y-\beta_y\alpha_x+\alpha_x\alpha_y+\alpha_z βz=z+αz=xy+αz=(βxαx)(βyαy)+αz=βxβyβxαyβyαx+αxαy+αz

  • 预处理阶段: P 0 , P j , j ∈ { 1 , 2 } P_0, P_j, j \in\{1,2\} P0,Pjj{1,2} 随机采样 [ α z ] j ∈ Z 2 l [\alpha_z]_j\in\mathbb{Z}_{2^l} [αz]jZ2l, P 1 , P 2 P_1, P_2 P1,P2 随机采样 γ z ∈ Z 2 l \gamma_z\in\mathbb{Z}_{2^l} γzZ2l. P 0 P_0 P0 本地计算 Γ x y = α x α y \Gamma_{xy}=\alpha_x\alpha_y Γxy=αxαy 并生成相应的 [ ⋅ ] − s h a r i n g [\cdot]-sharing []sharing. Servers P 1 , P 2 P_1, P_2 P1,P2 本地计算 [ β z ] j = ( j − 1 ) β x β y − β x [ α y ] j − β y [ α x ] j + [ Γ x y ] j + [ α z ] j [\beta_z]_j=(j-1)\beta_x\beta_y-\beta_x[\alpha_y]_j-\beta_y[\alpha_x]_j+[\Gamma_{xy}]_j+[\alpha_z]_j [βz]j=(j1)βxβyβx[αy]jβy[αx]j+[Γxy]j+[αz]j.
    请添加图片描述

  • 在线阶段: P 1 , P 2 P_1, P_2 P1,P2 交换它们的秘密值并重构 β z \beta_z βz. P 1 P_1 P1 计算并发送 β z + γ z \beta_z+\gamma_z βz+γz P 0 P_0 P0.

恶意敌手模式

原有的乘法协议存在三个问题:

  • 问题一:当 P 0 P_0 P0被腐败,那么 P 0 P_0 P0在预处理阶段产生的 Γ x y \Gamma_{xy} Γxy的秘密分享值可能是错误的,即 Γ x y ≠ α x α y \Gamma_{xy}\neq\alpha_x\alpha_y Γxy=αxαy.
  • 问题二:当 P 1 P_1 P1(或 P 2 P_2 P2)被腐败, 那么在线阶段交给诚实的另一方的 [ β z ] j [\beta_z]_j [βz]j可能是错误的,从而导致重构出错误的 β z \beta_z βz.
  • 问题三:当 P 1 P_1 P1被腐败,那么在线阶段交给 P 0 P_0 P0 β z + γ z \beta_z+\gamma_z βz+γz可能是错误的。

解决方案:

  • 问题一:前面的乘法协议中,我们其实并没有充分利用三方拥有的所有信息,事实上,三方拥有的所有信息是这样的:请添加图片描述

因此,我们构造一个 χ = γ x α y + γ y α x − Γ x y + ψ \chi=\gamma_x\alpha_y+\gamma_y\alpha_x-\Gamma_{xy}+\psi χ=γxαy+γyαxΓxy+ψ, 其中, ψ ∈ Z 2 l \psi\in\mathbb{Z}_{2^l} ψZ2l是由 P 1 , P 2 P_1, P_2 P1,P2随机采样生成的随机数.
服务器 P j , j ∈ { 1 , 2 } P_j,j\in\{1,2\} Pjj{1,2} 在本地计算 [ χ ] j = γ x [ α y ] j + γ y [ α x ] j − [ Γ x y ] j + [ ψ ] j [\chi]_j = \gamma_x[\alpha_y]_j+\gamma_y[\alpha_x]_j-[\Gamma_{xy}]_j+[\psi]_j [χ]j=γx[αy]j+γy[αx]j[Γxy]j+[ψ]j 并将其发送给 P 0 P_0 P0, P 0 P_0 P0计算得到 χ = [ χ ] 1 + [ χ ] 2 \chi=[\chi]_1+[\chi]_2 χ=[χ]1+[χ]2.
d = γ x − α x , e = γ y − α y , f = ( γ x γ y + ψ ) − χ d=\gamma_x-\alpha_x, e=\gamma_y-\alpha_y,f=(\gamma_x\gamma_y+\psi)-\chi d=γxαx,e=γyαyf=(γxγy+ψ)χ, 当且仅当 χ \chi χ 计算正确时,满足 f = d e f=de f=de.
假如 P 0 P_0 P0产生错误的 Γ x y \Gamma_{xy} Γxy, 可以记作 Γ x y + Δ \Gamma_{xy}+\Delta Γxy+Δ, 那么 d e = f + Δ ≠ f de=f+\Delta\neq f de=f+Δ=f.

为了保证 χ \chi χ 的正确性,需要确保 ( d , e , f ) (d,e,f) (d,e,f)是一个有效的三元组,因此文章构造了一个新的协议 Π m u l Z K ( P , d , e ) \Pi_{mulZK}(\mathcal{P},d,e) ΠmulZK(P,d,e)来产生三元组。
请添加图片描述
通过该协议,构造的 d , e , f d,e,f d,e,f对应的分享值如下:
请添加图片描述

[ χ ] 1 = [ λ f ] 1 , [ χ ] 2 = [ λ f ] 2 → [ χ ] = [ λ f ] 1 + [ λ f ] 2 [\chi]_1=[\lambda_f]_1, [\chi]_2=[\lambda_f]_2\quad\rightarrow\quad [\chi]=[\lambda_f]_1+[\lambda_f]_2 [χ]1=[λf]1,[χ]2=[λf]2[χ]=[λf]1+[λf]2
γ x γ y + ψ = f + λ f → ψ = f + λ f − γ x γ y \gamma_x\gamma_y+\psi=f+\lambda_f\quad\rightarrow\quad \psi=f+\lambda_f-\gamma_x\gamma_y γxγy+ψ=f+λfψ=f+λfγxγy
[ Γ x y ] j = γ x [ α y ] j + γ y [ α x ] j + [ ψ ] j − [ χ ] j j ∈ { 1 , 2 } [\Gamma_{xy}]_j=\gamma_x[\alpha_y]_j+\gamma_y[\alpha_x]_j+[\psi]_j-[\chi]_j \quad j\in\{1,2\} [Γxy]j=γx[αy]j+γy[αx]j+[ψ]j[χ]jj{1,2} ,其中 [ ψ ] 1 = r , [ ψ ] 2 = ψ − r [\psi]_1=r, [\psi]_2=\psi-r [ψ]1=r,[ψ]2=ψr r ∈ Z 2 l r\in\mathbb{Z}_2^l rZ2l是一个随机值.
我们可以得到:
Γ x y = γ x α y + γ y α x + ψ − χ = ( d + λ d ) λ e + ( e + λ e ) λ d + ( f + λ f − γ x γ y ) − λ f = ( d + λ d ) ( e + λ e ) − d e + λ d λ e + ( f − γ x γ y ) = γ x γ y − f + λ d λ e + ( f − γ x γ y ) = λ d λ e = α x α y \begin{aligned} \Gamma_{xy}&=\gamma_x\alpha_y+\gamma_y\alpha_x+\psi-\chi \\ &=(d+\lambda_d)\lambda_e+(e+\lambda_e)\lambda_d+(f+\lambda_f-\gamma_x\gamma_y)-\lambda_f \\ &=(d+\lambda_d)(e+\lambda_e)-de+\lambda_d\lambda_e+(f-\gamma_x\gamma_y)\\ &=\gamma_x\gamma_y-f+\lambda_d\lambda_e+(f-\gamma_x\gamma_y)\\ &=\lambda_d\lambda_e\\ &=\alpha_x\alpha_y \end{aligned} Γxy=γxαy+γyαx+ψχ=(d+λd)λe+(e+λe)λd+(f+λfγxγy)λf=(d+λd)(e+λe)de+λdλe+(fγxγy)=γxγyf+λdλe+(fγxγy)=λdλe=αxαy
这说明我们构造的三元组是有效的。

  • 问题二:我们再利用 β + γ \beta+\gamma β+γ
    请添加图片描述

β x ∗ = β x + γ x , β y ∗ = β y + γ y \beta_x^*=\beta_x+\gamma_x, \beta_y^*=\beta_y+\gamma_y βx=βx+γxβy=βy+γy, P 0 P_0 P0 计算 β z ∗ = − β x ∗ α y − β y ∗ α x + 2 Γ x y + α z \beta_z^*=-\beta_x^*\alpha_y-\beta_y^*\alpha_x+2\Gamma_{xy}+\alpha_z βz=βxαyβyαx+2Γxy+αz.
通过推导可以得到:
β z ∗ = − β x ∗ α y − β y ∗ α x + 2 Γ x y + α z = − ( β x + γ x ) α y − ( β y + γ y ) α x + 2 Γ x y + α z = ( − β x α y − β y α x + Γ x y + α z ) − ( γ x α y + γ y α x − Γ x y ) = ( β z − β x β y ) − ( γ x α y + γ y α x − Γ x y + ψ ) + ψ = ( β z − β x β y + ψ ) − χ \begin{aligned} \beta_z^*&=-\beta_x^*\alpha_y-\beta_y^*\alpha_x+2\Gamma_{xy}+\alpha_z\\ &=-(\beta_x+\gamma_x)\alpha_y-(\beta_y+\gamma_y)\alpha_x+2\Gamma_{xy}+\alpha_z\\ &=(-\beta_x\alpha_y-\beta_y\alpha_x+\Gamma_{xy}+\alpha_z)-(\gamma_x\alpha_y+\gamma_y\alpha_x-\Gamma_{xy})\\ &=(\beta_z-\beta_x\beta_y)-(\gamma_x\alpha_y+\gamma_y\alpha_x-\Gamma_{xy}+\psi)+\psi\\ &=(\beta_z-\beta_x\beta_y+\psi)-\chi \end{aligned} βz=βxαyβyαx+2Γxy+αz=(βx+γx)αy(βy+γy)αx+2Γxy+αz=(βxαyβyαx+Γxy+αz)(γxαy+γyαxΓxy)=(βzβxβy)(γxαy+γyαxΓxy+ψ)+ψ=(βzβxβy+ψ)χ
因此,让 P 0 P_0 P0 发送 β z ∗ + χ \beta_z^*+\chi βz+χ P 1 P_1 P1 P 2 P_2 P2 P 1 P_1 P1 P 2 P_2 P2计算 β z − β x β y + ψ \beta_z-\beta_x\beta_y+\psi βzβxβy+ψ并与收到的来自 P 0 P_0 P0 β z ∗ + χ \beta_z^*+\chi βz+χ比较, 只有当二者一致时,才能证明 β z \beta_z βz的正确性.

  • 问题三:解决方案比较简单,为了验证 P 1 P_1 P1发送的 β z + γ z \beta_z+\gamma_z βz+γz的正确性,让 P 2 P_2 P2同时发送其哈希值 H ( β z + γ z ) H(\beta_z+\gamma_z) H(βz+γz) P 0 P_0 P0, 当 P 0 P_0 P0收到的二者不一致时就中止.

至此,所有问题都解决,完整的乘法协议如下:
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值