Preprocessing Model in MPC 7 - Matrix Triples and Convolutions Lookup Tables
参考论文:SoK: Multiparty Computation in the Preprocessing Model
MPC (Secure Multi-Party Computation) 博士生入门资料。抄袭必究。
本系列教程将逐字解读参考论文(以下简称MPCiPPM),在此过程中,将论文中涵盖的40篇参考文献进行梳理与讲解。
本教程假设:具备高等数学基础知识;对应用密码学有基础了解。不展开、不解答任何百度可以解答的问题。
1 背景与相关研究介绍
1.1 相关工作
2 基础密码学原语
[MPCiPPM-02]: Basic building blocks of MPC.
3 传统预处理模型
[MPCiPPM-03]: What is Beaver Triple? 文献:
Donald Beaver. Efficient multiparty protocols using circuit randomization.
Donald Beaver. One-Time Tables for Two-Party Computation
Breaking the Limits
[MPCiPPM-04]: Breaking the Limits. 文献:Ivan Damg˚ard, Marcel Keller, Enrique Larraia, Valerio Pastro, Peter Scholl, and Nigel P. Smart. Practical covertly secure MPC for dishonest majority - or: Breaking the SPDZ limits.
3.1 基于同态加密的协议
3.1.1 基于有限域上的运算
[MPCiPPM-05]: Orlandi Protocol. 文献:Claudio Orlandi. LEGO and other cryptographic constructions. Technical report, Citeseer, 2009.
[MPCiPPM-06]: BDOZ. 文献:Rikke Bendlin, Ivan Damg˚ard, Claudio Orlandi, and Sarah Zakarias. Semihomomorphic encryption and multiparty computation
[MPCiPPM-07]: SPDZ. 文献:Ivan Damg˚ard, Valerio Pastro, Nigel Smart, and Sarah Zakarias. Multiparty Computation from Somewhat Homomorphic Encryption.
[MPCiPPM-08]: Overdrive. 文献:Marcel Keller, Valerio Pastro, and Dragos Rotaru. Overdrive: Making SPDZ great again.
[MPCiPPM-09]: TopGear。文献:Carsten Baum, Daniele Cozzo, and Nigel P. Smart. Using TopGear in overdrive: A more efficient ZKPoK for SPDZ.
[MPCiPPM-10]: LowGear 2.0。文献:Pascal Reisert, Marc Rivinius, Toomas Krips, and Ralf K¨usters. Overdrive LowGear 2.0: Reduced-bandwidth MPC without sacrifice.
3.1.2 基于环上的运算
[MPCiPPM-11]: RSS19. 文献:Deevashwer Rathee, Thomas Schneider, and K. K. Shukla. Improved multiplication triple generation over rings via RLWE-based AHE.
[MPCiPPM-12]: Overdrive2k. 文献:Emmanuela Orsini, Nigel P. Smart, and Frederik Vercauteren. Overdrive2k: Efficient secure MPC over from somewhat homomorphic encryption.
[MPCiPPM-13]: MonZa. 文献:Dario Catalano, Mario Di Raimondo, Dario Fiore, and Irene Giacomelli. MonZ2ka: Fast maliciously secure two party computation on .
[MPCiPPM-14]: . 文献:Jung Hee Cheon, Dongwoo Kim, and Keewoo Lee. MHz2k: MPC from HE over Z2k with new packing, simpler reshare, and better ZKP.
[MPCiPPM-15]: Multipars. 文献:Sebastian Hasler, Pascal Reisert, Marc Rivinius, and Ralf K¨usters. Multipars: Reduced-Communication MPC over Z2k.
3.2 基于OT的协议
3.2.1 基于有限域上的运算
[MPCiPPM-16]: Cut&Choose. 文献:Yehuda Lindell and Benny Pinkas. Secure two-party computation via cut-and-choose oblivious transfer.
[MPCiPPM-17]: TinyOT. 文献:Jesper Buus Nielsen, Peter Sebastian Nordholt, Claudio Orlandi, and Sai Sheshank Burra. A new approach to practical active-secure two-party computation.
[MPCiPPM-18]: Tinier. 文献:Tore Kasper Frederiksen, Marcel Keller, Emmanuela Orsini, and Peter Scholl. A unified approach to MPC with preprocessing using OT.
[MPCiPPM-19]: MASCOT. 文献:Marcel Keller, Emmanuela Orsini, and Peter Scholl. MASCOT: Faster malicious arithmetic secure computation with oblivious transfer.
3.2.2 基于环上的运算
[MPCiPPM-20]: SPDZ2k. 文献:Ronald Cramer, Ivan Damg˚ard, Daniel Escudero, Peter Scholl, and Chaoping Xing. SPDZ2k : Efficient MPC mod 2k for dishonest majority.
3.2.3 基于Silent OT的协议
[MPCiPPM-21]: Silent NISC. 文献:Elette Boyle, Geoffroy Couteau, Niv Gilboa, Yuval Ishai, Lisa Kohl, Peter Rindal, and Peter Scholl. Efficient two-round OT extension and silent noninteractive secure computation.
[MPCiPPM-22]: Silver. 文献:Geoffroy Couteau, Peter Rindal, and Srinivasan Raghuraman. Silver: Silent VOLE and oblivious transfer from hardness of decoding structured LDPC codes.
3.3 Function Dependent Preprocessing
[MPCiPPM-23]: Turbospeedz. 文献:Aner Ben-Efraim, Michael Nielsen, and Eran Omri. Turbospeedz: Double your online SPDZ! Improving SPDZ using function dependent preprocessing.
[MPCiPPM-24]: Boyle FSS. 文献:Elette Boyle, Niv Gilboa, and Yuval Ishai. Secure computation with preprocessing via function secret sharing.
[MPCiPPM-25]: Pika. 文献:Sameer Wagh. Pika: Secure computation using function secret sharing over rings.
3.4 Quintuples
[MPCiPPM-26]: ACEDX21. 文献:Mark Abspoel, Ronald Cramer, Daniel Escudero, Ivan Damg˚ard, and Chaoping Xing. Improved single-round secure multiplication using regenerating codes.
[MPCiPPM-27]: EXY22. 文献:Daniel Escudero, Chaoping Xing, and Chen Yuan. More efficient dishonest majority secure computation over Z2k via galois rings.
[MPCiPPM-28]: Coral. 文献:Zhicong Huang, Wen-jie Lu, Yuchen Wang, Cheng Hong, Tao Wei, and WenGuang Chen. Coral: Maliciously Secure Computation Framework for Packed and Mixed Circuits.
3.5 Degree Reduction
[MPCiPPM-29]: DN. 文献:Ivan Damg˚ard and Jesper Buus Nielsen. Scalable and unconditionally secure multiparty computation.
[MPCiPPM-30]: Garg24. 文献:Sanjam Garg, Abhishek Jain, Pratyay Mukherjee, and Mingyuan Wang. Scalable multiparty computation from non-linear secret sharing.
4 特殊预处理模型
特殊预处理材料指的是生成随机相关项,以实现超越简单乘法的计算。
表格 Table~\ref{tableSpecial} 总结了我们关于针对特殊函数(而非通用计算)的预处理协议的研究发现。
在 Table~\ref{tableSpecial} 中,我们列出了所研究协议的名称及参考文献、发表年份、用于执行预处理的密码学原语、协议所支持的参与方数量、协议所提供的安全保证(被动安全 \halfcirc 或主动安全 \fullcirc)、最大腐化阈值,以及相较于先前工作的离线和在线性能提升,其中 Comm 表示通信成本,Comp 表示计算成本。
我们进一步根据预处理所针对的目标函数类型(例如矩阵与卷积)将 Table~\ref{tableSpecial} 分为若干部分。
4.1 矩阵三元组和卷积三元组
机器学习(ML)通常需要大量多样化的数据,这些数据往往超过单个公司所能提供的范围。
MPC 为缺乏信任的行业竞争者提供了一种解决方案,使其能够在不泄露私有输入数据的前提下训练和评估 ML 模型,这些数据可能包含商业机密或受法律保护的客户信息。
尽管某些应用(如大型 ML 训练算法)仍超出当前 MPC 协议的能力范围,但评估神经网络或安全决策树已在工业界变得可行。
对隐私保护机器学习(PPML)技术的强烈需求也推动了底层 MPC 协议的针对性优化。
这些优化的一个重点是 ML 任务中常见的操作,如矩阵乘法或张量卷积,这些操作对 ML 算法的性能有显著影响。
[MPCiPPM-31]: CDNN15。文献:Martine de Cock, Rafael Dowsley, Anderson CA Nascimento, and Stacey C Newman. Fast, Privacy Preserving Linear Regression over Distributed Datasets Based on Pre-distributed Data
为了在不共享数据集的前提下安全地计算线性回归模型,Cock 等人~\cite{CDNN15} 提出了一种 MPC 协议,旨在将线性回归归约为安全地计算矩阵乘积。
在存在可信实体的假设下,该协议提供信息论安全;在无可信实体的情况下,使用两方协议实现计算安全。
整个思路是:首先,每个参与方将其定精度实数输入映射为有限域中的元素,并创建共享矩阵。
然后,各方在其共享上进行计算,以获得估计回归系数向量的共享。
最后,各方交换估计回归系数向量的共享并重构该向量。
设有两个共享矩阵 $X\in{{\mathbb{Z}}_q^{{n_1}\times{n_2}}}$ 和 $Y\in{{\mathbb{Z}}_q^{{n_2}\times{n_3}}}$,其中 $q$ 是有限域大小,$n_1,n_2,n_3$ 是矩阵的维度。
为了创建共享矩阵,每个参与方通过将其各自的实数输入映射为有限域中的元素,并将其置于矩阵的相应位置,从而生成其矩阵共享。
其余位置填充为零;即共享 $X_1$ 和 $X_2$ 满足 $X_1+X_2=X$。
设 $P_1$ 和 $P_2$ 为两个参与方,目标是共同计算乘积 $Z=XY$;$P_1$ 持有 $(X_1,Y_1)$,$P_2$ 持有 $(X_2,Y_2)$。
Cock 等人~\cite{CDNN15} 引入一个可信实体 $P_0$ 来协助生成矩阵三元组以完成该任务。
$P_0$ 选择随机矩阵 $A_1,A_2\in{{\mathbb{Z}}_q^{{n_1}\times{n_2}}}$,$B_1,B_2\in{{\mathbb{Z}}_q^{{n_2}\times{n_3}}}$,以及 $T\in{{\mathbb{Z}}_q^{{n_1}\times{n_3}}}$。
$P_0$ 计算 ${A_1}{B_2}+{A_2}{B_1}$,用 $T$ 进行掩码处理,并将结果记为 $C$。
然后,它将 $(A_1,B_1,T)$ 分发给 $P_1$,将 $(A_2,B_2,C)$ 分发给 $P_2$。
在接收到数据后,$P_2$ 对其私有共享 $(X_2,Y_2)$ 进行掩码处理,计算 $(X_2-A_2), (Y_2-B_2)$,并将结果发送给 $P_1$。
$P_1$ 计算 $A_1(Y_2-B_2)+B_1(X_2-A_2)+X_1Y_1$,并用一个随机矩阵 ${T^{\prime}}\in{{\mathbb{Z}}q^{{n_1}\times{n_3}}}$ 进行掩码处理,将结果记为 $W$。
$P_1$ 然后将 $W, (X_1-A_1), (Y_1-B_1)$ 发送给 $P_2$,并输出 $T+T^{\prime}$。
$P_2$ 输出 $U$,其中 $U=(X_1-A_1)Y_2+(Y_1-B_1)X_2+X{2}Y_{2}+W+C$。
该协议本质上是用于矩阵安全乘法的 Beaver 三元组的直接扩展。
其正确性可通过检查 $T+T^{\prime}+U$ 的值来简单验证。
Cock 等人~\cite{CDNN15} 通过实验展示了其预处理矩阵三元组的性能,并将其与先前的最先进方法~\cite{SP:NWIJBT13} 进行了比较。
CDNN15 在在线阶段的速度提高了若干数量级,但总运行时间仍与之前方法相当。
[MPCiPPM-32]: SecureML. 文献:Payman Mohassel and Yupeng Zhang. SecureML: A system for scalable privacy-preserving machine learning.
SecureML。
Mohassel 等人~\cite{SP:MohZha17} 提出了 SecureML,一种被动安全的两方系统,优化了诸如线性回归等机器学习操作,其中矩阵乘法是一个关键组成部分。
为了执行矩阵乘法,SecureML 提出了两种预处理方法以生成矩阵三元组:一种基于同态加密(LHE),另一种基于不经意传输(OT)。
假设一个矩阵三元组 $({\langle\mathbf{A}\rangle}, {\langle\mathbf{B}\rangle}, {\langle\mathbf{C}\rangle})$ 被两方 $P_1$ 和 $P_2$ 所共享。
矩阵 ${\langle\mathbf{A}\rangle}$ 和 ${\langle\mathbf{B}\rangle}$ 是通过对每个元素进行均匀采样生成的。
与 Cock 等人~\cite{CDNN15} 使用可信实体计算交叉乘积 ${\langle\mathbf{A}\rangle_1}{\langle\mathbf{B}\rangle}_2$ 和 ${\langle\mathbf{A}\rangle_2}{\langle\mathbf{B}\rangle}_1$ 不同,SecureML 使用基于 LHE 的方法,使得 $P_1$ 和 $P_2$ 能够自行完成这些计算。
例如,为了生成 ${\langle\mathbf{A}\rangle_1}{\langle\mathbf{B}\rangle}_2$,$P_2$ 对 ${\langle\mathbf{B}\rangle}_2$ 的每个元素进行加密,并将密文发送给 $P_1$,由 $P_1$ 在这些密文上执行矩阵乘法。
$P_1$ 使用随机值对所得密文进行掩码处理,然后将其发送回 $P_2$。
$P_2$ 解密这些密文以获得乘积结果。
${\langle\mathbf{A}\rangle_2}{\langle\mathbf{B}\rangle}_1$ 的生成过程与此类似。
之后,双方可以构造其各自的乘积共享 ${\langle\mathbf{C}\rangle}$。
该三元组 $({\langle\mathbf{A}\rangle}, {\langle\mathbf{B}\rangle}, {\langle\mathbf{C}\rangle})$ 将在在线阶段被使用,用于对 $\langle\mathbf{X}\rangle$ 和 $\langle\mathbf{Y}\rangle$ 的共享进行掩码处理,以安全地计算其乘积的共享:
⟨Z⟩i=−i⋅E×F+⟨X⟩i×F+E×⟨Y⟩i+⟨C⟩i⟨Z⟩i=−i⋅E×F+⟨X⟩i×F+E×⟨Y⟩i+⟨C⟩i
其中 $i\in{1,2}$,${\langle\mathbf{E}\rangle}, {\langle\mathbf{F}\rangle}$ 是掩码共享。
Mohassel 等人~\cite{SP:MohZha17} 通过实验表明,在三元组生成方面,SecureML 的 LHE 版本在局域网(LAN)和广域网(WAN)环境下相比 Nikolaenko 等人~\cite{SP:NWIJBT13} 提高了 $54{\times}$ 的速度,而 OT 协议在 LAN 中快了 $1270{\times}$,在 WAN 中快了 $24{\times}$。
[MPCiPPM-33]: SecureNN. 文献:Sameer Wagh, Divya Gupta, and Nishanth Chandran. SecureNN: 3-party secure computation for neural network training.
SecureNN。
Wagh 等人~\cite{PoPETS:WagGupCha19} 引入了一种三方计算(3PC)协议用于生成矩阵三元组,完全避免了混淆电路的使用,从而实现了非线性激活函数的高效计算。
他们的工作结合了 SecureML~\cite{SP:MohZha17}(即 Beaver 三元组向矩阵三元组的直接扩展)和 CDNN15~\cite{CDNN15}(使用可信方进行随机性生成与分发)。
这些协议旨在在神经网络计算中高效地执行非线性激活函数,完全避免使用混淆电路,从而在通信复杂度上至少提升了 $8{\times}$。
这些协议本质上与用于线性层计算的算术电路协议兼容,因此也消除了转换操作的需求。
该工作中生成矩阵三元组的方法是将 Beaver 三元组~\cite{C:Beaver91b} 直接推广到矩阵场景。
SecureNN 可调节为提供被动或主动安全,针对一个被腐化的参与方。
在训练阶段使用 SecureNN,其整体执行时间在 LAN 环境下比 SecureML~\cite{SP:MohZha17} 快约 $79{\times}$,在 WAN 环境下快约 $553{\times}$。
[MPCiPPM-34]: CKRR20. 文献:Hao Chen, Miran Kim, Ilya P. Razenshteyn, Dragos Rotaru, Yongsoo Song, and Sameer Wagh. Maliciously secure matrix multiplication with applications to private deep learning.
CKRR20。
Chen 等人~\cite{AC:CKRRSW20} 提出了一种用于矩阵乘法和二维卷积的 MPC 协议,在不诚实多数设置下实现了恶意安全。
因此,预处理阶段生成的相关随机性以矩阵三元组和卷积三元组的形式存在。
假设 $n$ 个参与方希望生成一个矩阵三元组 (${\llbracket{A}\rrbracket}{\alpha}$, ${\llbracket{B}\rrbracket}{\alpha}$, ${\llbracket{C}\rrbracket}{\alpha}$),其中 $C=AB$,$\alpha$ 是全局 MAC 密钥。
首先,每个参与方 $P_i$ 均匀采样随机矩阵 $A_i$ 和 $B_i$,对其加密并广播密文。
随后,各方调用零知识证明,获得带有有界噪声的 $A={\sum}{A_i}$ 和 $B={\sum}{B_i}$ 的加密。
利用这些加密,各方调用 Jiang 等人~\cite{CCS:JKLS18} 的矩阵乘法算法,计算 $C=AB$ 的加密。
之后,各方可以计算 ${\alpha}A$, ${\alpha}B$, ${\alpha}C$ 的加密。
在执行分布式解密后,各方获得认证三元组 (${\llbracket{A}\rrbracket}{\alpha}$, ${\llbracket{B}\rrbracket}{\alpha}$, ${\llbracket{C}\rrbracket}{\alpha}$)。
Chen 等人~\cite{AC:CKRRSW20} 对 SPDZ 的预处理阶段提出了两项优化:
(1) 通过切换到更大的同态加密参数,消除了 SPDZ 的牺牲步骤,从而支持更深一层的电路。这使得整体通信与计算性能提升近 $2 \times$。
(2) 优化了 SPDZ 预处理阶段的明文知识零知识证明,将每个密文的摊销通信开销从 $2.5$ 降至约 $1.5$。
Chen 等人~\cite{AC:CKRRSW20} 实现了其协议,并与 Overdrive LowGear~\cite{EC:KelPasRot18} 进行了基准测试。
在对两个大小为 $128$ 的方阵进行乘法时,CKRR20 将预处理阶段的通信成本从 $1.54$ GB 降至 $12.46$ MB。
在评估 ResNet50 神经网络的卷积层时,在线通信成本预计比 LowGear 低 $159.2{\times}$。
[MPCiPPM-35]: RRHK23. 文献:Marc Rivinius, Pascal Reisert, Sebastian Hasler, and Ralf Kuesters. Convolutions in overdrive: Maliciously secure convolutions for MPC.
RRHK23。
尽管卷积可以通过矩阵乘法来计算,但这会引入额外的计算开销。
为了解决这一问题,Rivinius 等人~\cite{EPRINT:RRHK23} 提出了一种新的卷积三元组生成协议,用于直接执行卷积,而不是像以往工作那样通过矩阵乘法模拟该过程。
假设 $\boldsymbol{a}$ 是一个二维图像,$\boldsymbol{f}$ 是一个二维滤波器。在卷积中,一个卷积三元组为 $({\llbracket{\boldsymbol{a}}\rrbracket}_i$, ${\llbracket{\boldsymbol{f}}\rrbracket}_i$, ${\llbracket{\boldsymbol{c}}\rrbracket}_i)$,其中 $\boldsymbol{a}$ 和 $\boldsymbol{f}$ 是随机向量,$\boldsymbol{c} = {\mathrm{conv2d}}(\boldsymbol{a},\boldsymbol{f})$。卷积三元组的生成过程如下:
1)每个参与方本地生成其对 $\boldsymbol{a}$ 和 $\boldsymbol{f}$ 的共享,对其中一个(即 $\boldsymbol{a}$)使用同态加密(LHE)进行加密,并将密文发送给所有参与方;
2)每个参与方将其对 $\boldsymbol{f}$ 的共享与接收到的 $\boldsymbol{a}$ 的加密共享相乘,以获得加密的配对共享,然后对其重新随机化,并发送回最初发送密文的参与方;
3)接收方解密这些配对共享,并将其组合以获得整体乘积的共享,即 $\boldsymbol{a}$ 与 $\boldsymbol{f}$ 的卷积。
在在线阶段,可以计算一个秘密共享图像 ${\llbracket{\boldsymbol{x}}\rrbracket}_i$ 与一个滤波器 ${\llbracket{\boldsymbol{y}}\rrbracket}_i$ 的卷积:
⟦conv2d(x,y)⟧i=⟦c⟧i+conv2d(⟦a⟧i,v)+conv2d(u,⟦f⟧i)+conv2d(u,v)[[conv2d(x,y)]]i=[[c]]i+conv2d([[a]]i,v)+conv2d(u,[[f]]i)+conv2d(u,v)
其中 $\boldsymbol{u}:=\boldsymbol{x}-\boldsymbol{a}$,$\boldsymbol{v}:=\boldsymbol{y}-\boldsymbol{f}$ 是掩码值。
该协议在不诚实多数设置下提供主动安全。Rivinius 等人~\cite{EPRINT:RRHK23} 将其工作作为 MP-SPDZ~\cite{CCS:Keller20} 的扩展实现。
在评估 ResNet50 时,在局域网环境下,RRHK23 的预处理阶段比 Chen 等人~\cite{AC:CKRRSW20} 快 $4.82\times$,在线阶段最多快 $40.15\times$;深度卷积最多快 $18.59\times$。
在广域网环境下,这些性能提升分别为 $3.01\times$、$41.84\times$ 和 $26.53\times$。
[MPCiPPM-36]: LowGear2.0. 文献:Pascal Reisert, Marc Rivinius, Toomas Krips, and Ralf K¨usters. Overdrive LowGear 2.0: Reduced-bandwidth MPC without sacrifice.
LowGear 2.0。
基于 CKRR20~\cite{CKRRSW20} 和 Overdrive LowGear~\cite{EC:KelPasRot18},Hasler 等人~\cite{ASIACCS:RRKK23} 提出了一种用于矩阵乘法的新方案,特别是矩阵平方和内积。
为此,他们在预处理阶段生成矩阵三元组和矩阵对。
这些材料既可以通过 LowGear 中的交换协议生成,也可以通过其在 Section~\ref{HE-fields} 中讨论的优化版本生成。
与 Chen 等人~\cite{AC:CKRRSW20} 的工作相比,LowGear 2.0 在两方设置下的矩阵三元组生成中节省了 $39%$ 的带宽。
4.2 查找表 LookUp Tables
[MPCiPPM-37]: TinyTable. 文献:Ivan Damg˚ard, Jesper Buus Nielsen, Michael Nielsen, and Samuel Ranellucci. The TinyTable protocol for 2-party secure computation, or: Gatescrambling revisited.
TinyTable。
TinyTable~\cite{C:DNNR17} 是对 MiniMac~\cite{TCC:DamZak13} 的优化,是一种恶意安全的两方计算协议,在预处理阶段生成用于掩码处理的随机比特和真值表的扰乱版本。
在在线阶段,参与方使用扰乱后的真值表和掩码比特进行表查找。
虽然 MiniMac 不适用于非常高且窄结构的电路,但 TinyTable 可用于任意电路,并具有与 MiniMac 相同的性能。
假设两个参与方 $P_1$ 和 $P_2$ 希望安全地计算一个布尔电路,该电路由门 $G_1$, …, $G_N$ 构成。设 $w_1$, …, $w_W$ 为线标签,$b_1$, …, $b_W$ 为线的实际值。对于每个输入线为 $w_u,w_v$ 的 AND 门 $G_i$,TinyTable 的预处理阶段如下操作:
1)通过调用 TinyOT~\cite{C:NNOB12} 的预处理算法,为每条线获取认证乘法三元组和随机比特 $\llbracket{r_i}\rrbracket$;
2)使用分配给 $G_i$ 的三元组计算 ${\llbracket{r_u}{r_v}\rrbracket}$;
3)对所有 $m,n\in{0,1}$,定义 $t_{m,n}=({r_u}+m)({r_v}+n)+r_o$,其中 $t_{m,n}$ 是需要加法秘密共享的比特,用于门 $G_i$ 的表项 $(m,n)$,$r_o$ 是输出线的掩码比特;
4)计算:
⟦tm,n⟧=⟦rurv⟧+m⟦ru⟧+n⟦rv⟧+⟦mn⟧+⟦ro⟧[[tm,n]]=[[rurv]]+m[[ru]]+n[[rv]]+[[mn]]+[[ro]]
然后 $P_1$ 将其对 $t_{m,n}$ 的共享设置为 $A_{i}{[m,n]}$,其中 $A_i$ 是其持有的表;$P_2$ 以类似方式设置 $B_{i}{[m,n]}$;
5)为每个输出门向双方公开线掩码 $r_o$。为每个输入线 $w_i$ 向拥有该线的参与方公开 $r_i$。然后双方返回打开的掩码和每个 AND 门的表 $A_i$, $B_i$。
[MPCiPPM-38]: Multi-TinyTable. 文献:Marcel Keller, Emmanuela Orsini, Dragos Rotaru, Peter Scholl, Eduardo Soria-Vazquez, and Srinivas Vivek. Faster secure multi-party computation of AES and DES using lookup tables.
Multi-TinyTable。
TinyTable~\cite{C:DNNR17} 提供了高效的在线评估,但代价是预处理开销较大。
为克服这一限制,Keller 等人~\cite{ACNS:KORSSV17} 提出了一种新方法,显著降低了预处理成本,同时保持快速的在线阶段。
他们将 TinyTable 从两方扩展到多方计算(MPC),并将其应用于 AES 和 3DES 的 S-box 评估。
为了生成一个掩码查找表(LUT)$({\llbracket{s}\rrbracket},\llbracket{\mathsf{Table}(s)}\rrbracket)$,协议采样一个随机的 ${\ell}$ 比特掩码 $s$,并将其按位分解为 $({s_0},...,{s_{{\ell}-1}})$,其中每个 $s_i$ 对所有参与方都是未知的。
使用这些比特,协议将 $s$ 扩展为一个秘密共享比特向量 $({s^{\prime}0},...,{s^{\prime}{{2^{\ell}}-1}})$,其中第 $s$ 项为 $1$,其余项为 $0$。
之后,参与方通过本地计算 $\llbracket{\mathsf{T}(s\oplus{i})}\rrbracket$ 来获得掩码查找表的第 $i$ 项。
然后预处理阶段生成值 $({\llbracket{s}\rrbracket}, {\llbracket\mathsf{Table}(s)\rrbracket})$,其中掩码表为:
⟦Table(s)⟧=(⟦T(s)⟧,⟦T(s⊕1)⟧,...,⟦T(s⊕(2ℓ−1))⟧)[[Table(s)]]=([[T(s)]],[[T(s⊕1)]],...,[[T(s⊕(2ℓ−1))]])
给定这样的表,评估 $\llbracket{\mathsf{T}(x)}\rrbracket$ 非常直接。参与方首先用 $h=x\oplus{s}$ 对其私有输入 $x$ 进行掩码处理并打开 $h$。
然后他们本地检索:
⟦Table(s)⟧[h]=⟦T(s⊕h)⟧=⟦T(s⊕s⊕x)⟧=⟦T(x)⟧[[Table(s)]][h]=[[T(s⊕h)]]=[[T(s⊕s⊕x)]]=[[T(x)]]
该协议在全阈值设置下提供主动安全,并在 AES 上实现超过每秒 $230000$ 个区块的在线速度,在 3DES 上为 $45000$。
通过 TinyTable~\cite{C:DNNR17} 预处理的查找表有 4 个元素,而 Multi-TinyTable~\cite{ACNS:KORSSV17} 的查找表有 $N=2^{\ell}$ 个元素,其中 ${\ell}$ 是随机值 $s$ 的长度。
在 $\mathbb{F}_{2^8}$ 上预处理 AES S-box 时,该协议需要 $33$ 次乘法,比 TinyTable 少了超过 $50$ 倍。
在评估分组密码的在线阶段时间成本与 TinyTable 相同。
[MPCiPPM-39]: SPOP-LUT. 文献: Ghada Dessouky, Farinaz Koushanfar, Ahmad-Reza Sadeghi, Thomas Schneider, Shaza Zeitouni, and Michael Zohner. Pushing the communication barrier in secure computation using lookup tables.
SPOP-LUT。
Dessouky 等人~\cite{NDSS:DKSSZZ17} 设计了一种半诚实安全的两方协议,该协议将双输入布尔门电路的函数表示替换为基于查找表(LUT)的表示。
这使得复杂函数的评估成为可能,并降低了通信复杂度。
假设两个参与方 $P0$ 和 $P1$ 分别拥有输入 ${x0}$, ${x1}\in{0,1}^{\delta}$,以及真值表 $T:{{0,1}}^{\delta}{\rightarrow}{{0,1}}^{\sigma}$,其中 $\delta$ 是输入数量,$\sigma$ 是输出数量。
预处理基于 OT 扩展~\cite{C:KolKum13},并向发送方(例如 $P0$)输出随机比特 ($m0$,…,$mN$),向接收方 $P1$ 输出一个随机选择 $s{\in}{0,1}^{\sigma}$。
在在线阶段,$P1$ 发送 $u=s\oplus{x^{1}}$ 给 $P0$,其中 ${x^{1}}{\in}{0,1}^{\sigma}$ 是 $P1$ 的输入。 $P0$ 首先选择一个随机值 $z^{0}$,计算 $V = (v0,…,v{N-1})$,其中 $vi = T[i\oplus{x^0}]\oplus{m{i\oplus{u}}}\oplus{z^0}$,然后将 $V$ 发送给 $P1$。 之后,$P1$ 计算 $z^{1} = v{x^1}\oplus{ms}$。
在 WAN 环境下进行 AES S-Box 评估时,SPOP-LUT 相较于 Kolesnikov 和 Kumaresan~\cite{C:KolKum13} 将预处理的通信复杂度降低了约 $9.5{\times}$,相较于 Asharov 等人~\cite{CCS:ALSZ13} 将整个协议的通信复杂度降低了 $2{\times}$。
[MPCiPPM-40]: FLUTE. 文献:Andreas Br¨uggemann, Robin Hundt, Thomas Schneider, Ajith Suresh, and Hossein Yalame. FLUTE: Fast and secure lookup table evaluations.
[MPCiPPM-41]: MAESTRO. 文献:Hiraku Morita, Erik Pohle, Kunihiko Sadakane, Peter Scholl, Kazunari Tozawa, and Daniel Tschudi. MAESTRO: Multi-party AES using Lookup Tables.
MAESTRO。
MAESTRO~\cite{MAESTRO} 是一组 MPC 协议,专注于在诚实多数设置下计算 AES 的 S-box,包括半诚实和恶意安全的变体。
该工作的主要协议是一个用于计算乘法逆的安全协议,使用大小为 $16$ 的查找表。
其核心思想是将 ${GF(2^{8})}$ 上的乘法逆计算归约为 ${GF(2^{4})}$ 上的计算。
这可以通过 ${GF(2^{8})}$ 与 ${GF((2^{4})^2)}$ 之间的同构实现。
MAESTRO 提供了一个查找表协议,输入为一个秘密共享值 $\llbracket{v}\rrbracket$,其中 $v\in{GF(2^4)}$,以及一个表 $T$,输出为对应的共享值 $\llbracket{Tv}\rrbracket$。 当 $T$ 是一个逆表时,输出将为 $Tx = v^{-1}$。
预处理阶段生成共享随机值 $\llbracket{r}\rrbracket$ 及其对应的共享随机 one-hot 向量 $\llbracket{\mathbf{e}^{(r)}}\rrbracket$,其中第 $r$ 个元素为 $1$,其余为 $0$。
在在线阶段,输入值将与 $\llbracket{r}\rrbracket$ 进行掩码处理,掩码后的值 $c$ 被打开。
4.3 布尔电路与算术电路的转换
[MPCiPPM-42]: Dabits. 文献:Dragos Rotaru and Tim Wood. Marbled Circuits: Mixing Arithmetic and Boolean Circuits with Active Security.
[MPCiPPM-43]: EDaBits. 文献:Daniel Escudero, Satrajit Ghosh, Marcel Keller, Rahul Rachuri, and Peter Scholl. Improved primitives for MPC over mixed arithmetic-binary circuits.
4.4 Tuples
[MPCiPPM-44]: Arithmetic Tuples。在preprocessing phase生成一种包含一堆元素的元组。
文献:Pascal Reisert, Marc Rivinius, Toomas Krips, and Ralf Kuesters. Arithmetic tuples for MPC.