About BLAZE Reading Note(2)

less than 1 minute read

Published:

三方安全计算的机器学习方案位提取协议。

和许多隐私保护机器学习方案一样,BLAZE也需要进行位提取,比特到二进制转换和截断操作。

位提取

位提取协议目的是给定一个算数共享值,让服务器计算共享值 的最高有效位(MSB)的布尔共享。 一种是用文章ABY3中的方案,优化并行前缀加法器(PPA)电路,$2l$个与门和$\log(l)$深度的乘法。令表示一个混淆电路,输入,输出时最高有效位。因此,令。 又令,其实随机选取的比特。生成混淆电路,并把电路$GC$,输入和解码信息对应的密钥一起发送给$P_2$。$P_2$在评估$GC$获得,把及其密钥的哈希值一起发送给$P_1$。$P_1,P_2$然后联合生成。服务器将与在预处理阶段生成 进行异或操作,从而获得最后结果。

位提取

比特算术转换

给定共享,比特算术转换让服务器计算单个比特的的算术共享。环的比特的算术共享

可以计算算术共享和它们的积

  • 计算 的算术共享
  • 联合计算共享,服务器用秘密共享乘法协议,在本地计算得到 比特转算术共享协议

截断算法

ML里面涉及小数点的运算,一般都会采用2的补码的形式表示十进制,用最高有效位(MSB)表示正负号,小数点后保留$\text{d}$位。通常情况下选择$l=64, \text{d} = 13$,为整数部分保留50个比特位。$l$位的比特串值是上的元素。由于$\text{d}$的取值,上两个元素相乘会使得小数点后增加到26位。这对于许多ML算法中的乘法会出现溢出的情况。截断算法就是将上述积的形式转换成为可以计算的形式,方便ML实现任务中出现的小数点乘法情况。

点积

点积协议是给定共享令服务器生成的共享。对于一个大小为的向量共享,其中每个元素也是一个共享。若直接用乘法协议计算点积,结果可以在本地计算相对应的共享,使得通信量大小与$\text{n}$线性相关。若要减小通信量,必须使得在线阶段的通信量与$\text{n}$ 无关。若要用 计算,就要让$P_1, P_2$在本地计算并重构,而不是分别去重构每一个。$P_0$要结合所有的值并发送单个的值给$P_1, P_2$去验证,而不是为每个发送一个 。这需要$P_0$计算,并发送相同的哈希值给$P_1, P_2$,然后$P_1, P_2$交叉验证哈希值 点积协议

截断

截断操作是服务器计算的截断,这使得的值向右移动到的位置,是分配给小数部分的位数。SecureML提出了两方的截断协议,两方服务器在本地截断共享。ABY3证明了上述方法不能扩展到三方中,并提出了对随机数的共享截断对。这种方法在评估乘法门之后截断乘积,这样保留潜在截断值的概率比较高。利用ABY3的截断生成方式。对于共享通过公开发布,然后截断和增加共享到,形成共享形式。截断协议产生一对共享,ABY3中有两种阶段方法,一是高效的半诚实方案,对恶意模型却会增加通信成本,二是对恶意模型是通信高效的,对$l$比特的环需要$O(l)$通信复杂度。服务器选取随机数通过截断操作获得 。令,服务器上执行联合共享协议生成共享。各方服务器在本地计算 截断

含截断的点积

含截断的点积协议是给定向量共享令服务器生成的共享截断值,为了不增加在线阶段的通信成本,需要对ABY3的截断方法进行改进。预处理阶段,和点积协议步骤一样,生成截断对。在线阶段,服务器$P_1, P_2$本地计算的$[\cdot]$共享,此后,$P_1, P_2$进行本地截断操作从而获取,并利用联合共享协议产生其共享。最后,通过增加,服务器可以在本地计算出共享。为了保证计算的正确性,$P_0$将计算,而非 截断点积协议

安全比较

给定共享,安全比较计算旨在检查。在定点数算术计算中,可以通过检测存储的最高有效位(MSB)确定。根据这个思想,服务器本地计算,然后用位提取协议得到 的MSB,然后通过上述的比特算术转换协议得到算术共享结果。

实验结果

文章定义吞吐量是分预处理和在线阶段计算每分钟执行的点积数,文章主要和ABY3一文进行比较,在长度从100到1000的向量测试吞吐量,另外还有关于点积计算在隐私保护线性和逻辑回归中提高的性能,主要影响因素有前后向传播网络、随机梯度下降批量大小等。