【隐私计算笔谈】MPC 系列专题(二十二):「BLAZE」的截断算法

前两次科普我们分别介绍了「BLAZE」的两种秘密分享方式、「BLAZE」的乘法。我们首先将回顾一下我们之前介绍的「ABY3」算法,并介绍基于「ABY3」截断算法的 「BLAZE」的截断算法。

在介绍「BLAZE」的截断算法之前,先回顾一下在「三方复制秘密共享 (三)」中我们介绍的两种 ABY3 的截断算法:

【隐私计算笔谈】MPC 系列专题(二十二):「BLAZE」的截断算法

图 1:Truncate I

Truncate I 是利用了三方复制秘密共享的特性:两个参与者掌握的信息之和即是完备集合,利用 Bob 和 Candy 事先生成的随机数𝑟实现截断。Truncate II 则是通过三方共同产生的以二进制形式被分享的随机数和,利用波纹进位减法器实现的截断。BLAZE 的截断算法基于 ABY3 的截断算法,对 ABY3 产生随机数及其截断 (𝑟,) 的方式进行了改进。

BLAZE 的随机数及其截断的算法 TrunGen 为:

首先 Alice 和 Bob 一起产生随机数,并本地计算其截断,因此 Alice 和 Bob 都会掌握 ,,Alice 和 Bob 使用我们之前介绍的共同分享(Joint-Sharing)协议,对进行⟦⟧分享,使得 Candy 也能掌握的一个子秘密。Alice 再和 Candy 一起产生随机数,并本地计算其截断,同样 Alice 和 Candy 都会掌握 ,。Alice 和 Candy 之间也使用共同分享(Joint-Sharing)协议,对进行⟦⟧分 享,使得 Bob 也掌握的一个子秘密。

接着 Alice 设置,Bob 设置,Candy 设置。Alice、Bob 和 Candy 各自本地计算⟦⟧=⟦⟧=⟦⟧+⟦⟧这样就生成了随机数及其截断的分享对 ([],⟦⟧)。

【隐私计算笔谈】MPC 系列专题(二十二):「BLAZE」的截断算法

图 2:TrunGen 算法

接着再基于 ABY3 中的 Truncate I 协议进行截断,假设需要进行截断的秘密为𝑣,且已经以⟦𝑣⟧形式分享,算法主要流程为:

Alice、Bob 和 Candy 首先利用上述的 TrunGen 协议生成随机数及其截断的分享对 ([],⟦⟧),计算⟦𝑣⟧−⟦𝑅⟧。接着三者共同对⟦𝑣⟧−⟦𝑅⟧进行秘密恢复,得到𝑣−𝑅,再对其进行截断,得到,最后再让加上⟦⟧, 即可得到⟦⟧=⟦⟧+=⟦⟧+。

【隐私计算笔谈】MPC 系列专题(二十二):「BLAZE」的截断算法

图 3:「BLAZE」截断算法

👇关注 Rosetta,一起玩转隐私 AI👇

github 链接:

https://github.com/LatticeX-Foundation/Rosetta

加入 Rosetta 社群 | 玩转隐私计算

【隐私计算笔谈】MPC 系列专题(二十二):「BLAZE」的截断算法

扫描上方二维码,即可加入社群

合作需求:support@matrixelements.com

【隐私计算笔谈】MPC 系列专题(二十二):「BLAZE」的截断算法

推荐阅读

点击下方文字即可跳转

▶【隐私计算笔谈】零知识证明系列专题(一):零知识证明与重置模拟

▶【隐私计算笔谈】零知识证明系列专题(二):一个个人化的视角:零知识、模拟与归约

▶ 隐私数据在隐私 AI 框架中的安全流动

关注矩阵元了解最新动态

【隐私计算笔谈】MPC 系列专题(二十二):「BLAZE」的截断算法

戳阅读原文 走进矩阵元