基于密钥同态的可扩展MPC

基于混淆电路的高效可扩展常数轮多方计算

1 引言

1.1 背景

安全多方计算协议允许多个参与方基于私有输入进行联合计算,而不会泄露输出以外的任何信息。在20世纪80年代,提出了强大的可行性结果,表明任何多项式时间函数都可以被安全地计算[9,18,37]。这些可行性结果同时适用于半诚实对手(即遵循协议规范,但试图通过检查协议执行记录获取超出允许范围的信息)以及恶意对手(可执行任意恶意策略)。此外,针对两方情形[37]和多方情形[5],均已提出了常数轮安全计算协议。这些常数轮协议通过构建混淆电路来实现,该混淆电路本质上是电路的加密版本,可以无意识地进行求值。

在过去的十年中,为了提高安全计算的效率,人们进行了大量的研究努力,并取得了巨大成功。对于两方情形,无论是半诚实敌手还是恶意敌手,均存在高效的协议,并且这些协议基于混淆电路和秘密共享范式(参见[2,6,20,21,21,23,30,34,38]仅列举少量示例)。因此,针对许多现实世界问题,实际上已经可以运行安全两方计算协议。我们注意到,大量旨在实现高效安全两方计算的研究努力集中在相对简单的半诚实敌手情形上。而这一情形的研究成果被证明对于设计针对恶意敌手的高效协议同样至关重要。因此,对半诚实敌手情形下效率的研究,在实现更强安全性目标的过程中也显示出其重要性。

与上述两方情形的成功相比,在严格多于两方的多方安全计算场景中,研究进展要缓慢得多。特别是对于多参与方、无诚实多数且对抗半诚实敌手的常数轮协议,目前仅有[7,8]。最近的工作[8]表明,针对半诚实敌手的情形,可以实现具有良好性能的常数轮安全多方计算。然而,通过多方混淆电路实现常数轮协议的BMR [5]技术存在固有的可扩展性问题。

通过混淆电路实现高效可扩展的常数轮多方计算 473

为了理解这一点,我们首先注意到BMR协议可以分为两个阶段:在第一阶段,各方运行一个安全协议来构建一个多方混淆电路。这一阶段可以在提供输入之前就执行,且涉及相对繁重的计算,以安全地构建混淆电路。然后,在第二阶段即在线阶段,当各方收到各自的输入后,各方只需发送与其输入相关的输入线上的密钥,之后每个参与方都可以本地评估该混淆电路并获得输出。这种范式非常有吸引力,因为在线阶段几乎不需要通信,仅需高效的本地计算。

注意,混淆电路的评估仅需要对称解密操作,而在实际中使用AES‐NI指令时这些操作极快。尽管如此,[8]发现即使本地评估计算在参与方数量较大时也可能变得非常昂贵。其原因是每个门需要 O(n²)次AES操作,当参与方数量为 n 时。因此,对于大量参与方——例如 n= 100——每个门的AES操作次数达到 10,000次。因此,对100个参与方评估BMR混淆电路的成本比评估两方(姚)混淆电路的成本高出约10,000倍。

1.2 我们的结果

受[8]中的结果以及BMR混淆电路固有的可扩展性问题的启发,本文旨在构建一种BMR混淆电路的变体,使其在参与方数量增加时仍具有良好的可扩展性。

我们指出,如果仅关注在线阶段开销的问题,则该可扩展性问题可以轻松解决。具体而言,可以使用诸如[18]中的通用多方协议来安全地计算一个标准的姚氏两方混淆电路,其中没有任何一方知道导线上的实际密钥(各方仅获得输入线上的密钥的秘密共享)。然后,在在线阶段,各方只需交换输入线上的共享,并通过评估一个标准的两方混淆电路即可计算出输出。从理论角度而言,这种方法具有许多吸引人的特性;尤其是,在线时间与参与方数量无关。然而,如果我们希望构建具体高效且可在实践中实现和运行的协议,则此方法完全不可行。原因在于,通过多方计算来构造姚氏混淆电路在实际中是完全不现实的。这是因为加密函数本身必须在安全计算内部进行计算,并且每个门都需要多次执行该操作。

上述内容引出了以下重要的研究目标:

设计一种新型BMR型混淆电路,使其能够在离线阶段以具体效率安全地构建,并在在线阶段以与参与方数量无关的成本高效地进行评估。

如上所述,我们的目标是具体效率,因此我们希望获得能够实际实现并运行的构造方法,并且快于之前的方法。因此,我们的目标是获得一种方法,其速度严格快于[8]在参与方数量较多情况下的优化版本。

我们实现上述目标的方法利用了Naor等人在随机预言机模型中以及 Boneh等人在标准模型中引入的密钥同态伪随机函数(KHPRF)。非正式地说,若存在适当的运算 +˜, ˜·,使得对于每一对密钥 k₁, k₂和每一个输入 x,都有 F_{k₁ +˜ k₂}(x) = F_{k₁}(x) ˜· F_{k₂}(x)成立,则称该伪随机函数是密钥同态的。直观上,这意味着拥有独立密钥k₁,…, kₙ的 n方可以通过各自本地计算 F_{kᵢ}(x),然后利用安全计算来计算F_K(x) = F_{k₁}(x) ˜· F_{k₁ +˜ k₂}(x),从而共同计算出 F_K(x)。

接下来,我们将非正式地解释如何利用这一点来构建可扩展的BMR型电路。

在BMR混淆电路中,对于每条导线 w,每个参与方 Pᵢ选择两个密钥k⁰_{w,i}, k¹_{w,i}。然后,通过使用输入线上的适当密钥对输出线上的所有密钥进行掩码,来构造具有输入线 u, v和输出线 w的混淆门。例如,在一个与门中,需要使用((k⁰_{u,1}, …, k⁰_{u,n})、(k⁰_{v,1}, …, k⁰_{v,n}))、((k⁰_{u,1}, …, k⁰_{u,n})、(k¹_{v,1}, …, k¹_{v,n}))以及((k¹_{u,1}, …, k¹_{u,n})、(k⁰_{v,1}, …, k⁰_{v,n}))的组合对值(k⁰_{w,1}, …,k⁰_{w,n})进行掩码,而值(k¹_{w,1}, …, k¹_{w,n})则需要用((k¹_{u,1}, …, k¹_{u,n})、(k¹_{v,1}, …, k¹_{v,n}))进行掩码。这确保了如果各方拥有该门输入线上的适当密钥,则他们将获得该门输出线上的适当密钥。现在,为了确保安全性,必须使得输入线上的每一个单个密钥都足以掩码输出。因此,例如,k⁰_{u,i}和k⁰_{v,i}中的每一个都必须掩码全部的(k⁰_{w,1}, …, k⁰_{w,n})。这是通过将与输入(0, 0)相关的密文C₀,₀设置为

$$
C_{0,0}=\left(\bigoplus_{i=1}^{n} F_{k^0_{u,i}}(g|1)|\dots|F_{k^0_{u,i}}(g|n)\right)\oplus\left(\bigoplus_{i=1}^{n} F_{k^0_{v,i}}(g|1)|\dots|F_{k^0_{v,i}}(g|n)\right)\oplus(k^0_{w,1}|\dots|k^0_{w,n}),
$$

其中 ‖ 表示连接,g 是门标识,F 是一个伪随机函数(实际中为 AES)。

每个门随后被构造为四个密文,对应所有四种输入值的组合。请注意,使用此方法时,如果仅参与方 Pᵢ 是诚实的,则其单个密钥足以掩盖输出(因为伪随机函数用于生成一个长伪随机字符串,以掩盖输出导线上的密钥)。

根据上述内容,现在可以明确,为了评估一个混淆门,各方需要调用伪随机函数 2n²次。具体而言,给定输入线上的密钥(k⁰_{u,1}‖ …‖k⁰_{u,n})和(k⁰_{v,1}‖ …‖k⁰_{v,n}),对 2n个密钥中的每一个都需要调用伪随机函数 n次。具体来说,对于 n= 100,这意味着每个门都需要进行20,000次伪随机计算for every gate。在两方情形下,仅需两次调用(或使用[6]的固定密钥方法时只需一次)。

通过混淆电路实现高效可扩展的常数轮多方计算 475

现在,考虑使用密钥同态伪随机函数来构造如上所述的密文的可能性。具体而言,我们现在将密文C₀,₀定义如下:

$$
C_{0,0}=\left(\widetilde{\prod} {i=1}^{n}(F {k^0_{u,i}}(g))\right) \tilde{\cdot}\left(\widetilde{\prod} {i=1}^{n}(F {k^0_{v,i}}(g))\right) \tilde{\cdot}(k^0_{w,1} +\tilde{}… +\tilde{} k^0_{w,n}),
$$

其中 ˜·, +˜是上面非正式定义的密钥同态操作,且$\widetilde{\prod}_{i=1}^{n}(y_i) \overset{def}{=} y_1 \tilde{\cdot}… \tilde{\cdot} y_n$。

直观上,这种密文可以在离线阶段以与原始BMR密文相当的成本安全地计算,方法是将 ⊕替换为 ˜·操作。当然,为了实现我们的目标,离线阶段还必须具有实际效率,因此我们确实证明了该方程可以被高效且安全地计算。现在,关键的观察是,上述密文C₀,₀实际上等于

$$
C_{0,0}=(F_{K^0_u +\tilde{} K^0_v}(g)) \tilde{\cdot} K^0_w
$$

其中 $K^0_u= k^0_{u,1} +\tilde{}… +\tilde{} k^0_{u,n}$, $K^0_v= k^0_{v,1} +\tilde{}… +\tilde{} k^0_{v,n}$, 和 $K^0_w=k^0_{w,1} +\tilde{}… +\tilde{} k^0_{w,n}$。因此,结果是一个混淆电路,其求值仅需调用一次伪随机函数,而与参与方数量无关。需要注意的是,密钥同态伪随机函数的计算成本远高于普通伪随机函数。然而,通过实现并与[8]的代码进行对比实验,我们表明,对于大量参与方——例如 n= 100——计算一个密钥同态伪随机函数比执行 2n²次AES计算(即使使用AES‐NI并固定密钥,如[6]中首次提出的方法)更快。

我们提到,[1]利用了[11,12]基于LWE的全同态加密方案的密钥同态性质,以获得一个安全多方协议(在CRS模型下),该协议仅需三轮交互,且通信复杂度与底层函数无关。然而,他们的构造使用了全同态加密,因此要求各方进行非常繁重的本地计算。此外,计算中密集的部分需要对输入进行加密,因而必须在在线阶段完成。因此,对于我们在本文中所考虑的在线阶段具体效率目标而言,该方法的相关性较低。

实例化与实现。我们提出了两种基于不同密钥同态伪随机函数的具体实例化方案;第一种方案在DDH假设下是安全的,第二种方案在环LWE假设下是安全的。对于每种实例化方案,我们描述了一种具体高效的协议,用于在离线阶段安全地生成相应的多方混淆电路。我们实现了协议的在线版本,其主要开销在于混淆电路的本地评估。在第6节中,我们介绍了我们的实现及实验结果。图1展示了不同方案的在线电路评估时间对比:BMR指原始的BMR电路,其复杂度明显呈二次增长;其余所有曲线均为我们协议的不同版本,且

示意图0

电路的评估时间与参与方数量无关。正如我们上面提到的,这明显表明,即使原始的BMR电路仅使用非常快速的基本操作(AES),但在参与方足够多时,其运行速度仍慢于所有其他方案。

我们指出,“未优化”和“带预计算”行指的是基于标准DDH假设并使用 1024位安全素数的构造,而DLSE行则指基于DDH在短指数下仍保持困难性这一假设的6节中。在[24]中已证明,DDH在短指数下的困难性可由标准DDH假设以及离散对数问题在短指数下困难的假设推出。我们证明了适用于优化后的密钥同态伪随机函数的一些变体。其中,“环LWE”指的是我们基于环LWE的实例化。

论文结构

在第2节中,我们回顾了本文所需的基本定义,包括安全多方计算、伪随机函数以及环LWE、DDH和DLSE问题的定义。在第3节中,我们描述了通用范式构造,证明其正确性并陈述主安全定理。安全性证明将在完整版本中给出。在第4节中,我们展示如何基于DDH问题实例化我们的通用范式:在第4.1节中,我们回顾DDH和DLSE问题并证明若干结论。在第4.2节中,我们描述在随机预言机模型中的一个实例化。在第4.3节中,我们展示一个无需随机预言机的实例化,以及一个基于DDH和DLSE的显著优化的实例化。在第4.4节中,我们描述两种可能的离线协议,一种基于BGW协议 [9],假设存在诚实多数;另一种在OT混合模型中可安全抵御多达 n − 1个被攻破参与方的情况。在第5节中,我们解释基于环LWE的实例化:在第5.1节中我们说明在线阶段。在第5.2节中我们说明一种 “定制”的离线协议,其运行时间在参与方数量上为准线性。在第6节中,我们提供我们协议的在线计算时间的实验结果,并与BMR的在线计算时间进行比较。

2 预备知识

一个函数 μ: N → N是 可忽略函数,如果对于每个正多项式 p(·) 和所有足够大的 κ,都有 μ(κ)< 1/p(κ)。我们使用缩写 PPT 表示概率多项式时间。一个概率系综X={Xκ}κ∈N是由 κ索引的随机变量的无限序列。两个分布系综 X={Xκ}κ∈N和 Y={Yκ}κ∈N是计算不可区分的,记作X c ≡ Y,即对于每个 PPT 区分器 D,存在一个可忽略函数 μ(·),使得对于每个 κ ∈ N,

$$
\left| \Pr [D(X_\kappa, 1^\kappa)) = 1] - \Pr [D(Y_\kappa, 1^\kappa) = 1] \right| < \mu(\kappa).
$$

对于定义在有限集合 A 上的分布 D,我们用 x ← D 表示根据分布 D 选取元素 x ∈ A。如果 D 是 A 上的均匀分布,我们简记为 x ← A。对于 i ∈ N,我们用 Uᵢ 表示由 x ←{0, 1}ⁱ 定义的随机变量。对于整数 ,我们记作 []={1,…, }。

2.1 短指数上的DLSE和DDH问题

DLSE(短指数离散对数)问题首次在 [32]中提出。继 [24]中对该问题的表述之后,我们提供其参数化版本。设 κ ∈ N为安全参数, q为一个 κ位素数,且令 c ∈ N满足 0 ≤ c< κ。

符号1。 对于 0 ≤ c ≤ κ,令 R_{κ−c}={2^{κ−c}u | 0 ≤ 2^{κ−c}u< q}。

具体而言,R_κ= Z_q。正如我们将在下文看到的,集合 R_{κ−c}将表示在短离散对数和 DDH问题中指数所选取的定义域。

设 G为一个生成算法,输入 1^κ后返回一个三元组(G, q, h),其中 G是一个阶为 q的循环群( q的长度为 κ), h是 G的一个生成元。短指数离散对数问题(记为DLSE_c)定义如下:

定义1 (短指数离散对数)。 设 c ∈ N为一个常数。当且仅当对于所有PPT算法 A,存在一个可忽略函数 μ(·),使得DLSE_c问题在 G下是困难的,

$$
\Pr_{(G, q, h)\leftarrow G(1^\kappa), v\leftarrow R_{\kappa−c}}[A(G, q, h, h^v) = v] \leq \mu(\kappa).
$$

478 A.本‐以法莲 等人

标准离散对数问题即为DLSE_c,其中 c= κ,而DLSE的困难性c显然取决于 c。采用与上述类似的符号,我们定义基于短指数的DDH(判定性 Diffie‐Hellman)问题,该问题最初由小柴和黑泽[24]提出。

定义2(短指数上的判定性Diffie‐Hellman)。 设c₁、 c₂ ∈ N为常数。那么, DDH_{c₁,c₂}问题在 G下是困难的,如果

$$
{(G, q, h, h^x, h^y, h^{xy})} {\kappa\in\mathbb{N}} \equiv_c {(G, q, h, h^x, h^y, h^z)} {\kappa\in\mathbb{N}},
$$

其中分布通过选择(G, q, h) ← G(1^κ),然后选择 x, y, z ← R_{κ−c₁} × R_{κ−c₂} × Z_q生成。

DDH_{c₁,c₂}如果 c₁= c₂远小于 κ,则也称为(短‐短)‐DDH;如果 c₁远小于 κ且 c₂= κ(即 y在 Z_q中均匀分布),则称为(短‐全)‐DDH。标准DDH问题是DDH_{κ,κ}。

在[24]中表明,如果DDH和DLSE都是困难的,那么(短‐全)‐DDH和(短‐ 短)‐DDH也是困难的,并且反过来也成立。也就是说,他们证明了以下结论:

定理 2[24,定理 2]. 设 G为生成算法且 c ∈ N。如果 DDH和 DLSE_c在 G下均为困难问题,则 DDH_{c,κ}在 G下也为困难问题。

2.2 环LWE问题

我们简要陈述环LWE困难性假设的一个简单变体。更完整的定义可以在[28]中找到。设 p= 2N+ 1为一个素数,其中N(称为维度或安全参数)是2的幂。我们固定多项式环 R_p= Z_p[X]/(X^N+ 1),即模X^N+ 1的 Z_p上的多项式环。

定义3。 决策环LWE困难性假设指出,难以区分以下两组数对:

  1. {(aᵢ, bᵢ)}ᵢ∈ᴵ
  2. {(aᵢ, aᵢ · k+ eᵢ)}ᵢ∈ᴵ

其中{aᵢ}ᵢ∈ᴵ、{bᵢ}ᵢ∈ᴵ和 k从环中均匀随机选取,{eᵢ}ᵢ∈ᴵ从球形高斯分布中选取。此外,通过转换为“厄米特标准型”,即使 k也从球形高斯分布中选取,该假设仍然成立。

通常需要对 |I|(即样本数量)进行限制,通常是通过某个 = O(1)或 = O(log N)来实现。更多相关信息、推广和改进可参见[28,29]。

通过混淆电路实现高效可扩展的常数轮多方计算 479

2.3 密钥同态伪随机函数

回想一下,如果一个函数在以下两种情况下无法被拥有随机选择密钥的函数或真正随机函数访问权限的PPT攻击者所区分,则该函数是伪随机函数。弱伪随机函数与上述类似,只是攻击者仅在随机选择的输入上获得函数的输出。

接下来,我们回顾密钥同态伪随机函数的定义。密钥同态伪随机函数由 Naor 等人提出。[31]基于LWE、无需随机预言机的密钥同态伪随机函数的形式化定义和首个构造由博恩等人提出。[10]。

定义4. 一个函数族{F_k: X → G}k∈D是一个密钥同态函数 族,如果其密钥域 D和像 G分别配备了群运算(D, +˜)和(G, ˜·),使得对于每个 k₁、k₂ ∈ D和 x ∈ X都满足 F_{k₁ +˜ k₂}(x)= F_{k₁}(x) ˜· F_{k₂}(x)。一个密钥同态伪随机函数(KHPRF)(或密钥同态弱伪随机函数(KHWPRF))是一个具有密钥同态性质的伪随机函数(或弱伪随机函数)。

设{F_k: X → G}k∈D为一族密钥同态函数。那么,元素 h ∈ G的逆记为(h)^{-˜1}。我们记 Σ˜ᵐᵢ₌₁(kᵢ) d=ef k₁ +˜ ··· +˜ kₘ和 Π˜ ᵐᵢ₌₁(hᵢ) d=ef h₁ ˜· ··· ˜· hₘ。

通常, D= G 可能成立。正如我们将看到的,这可能会带来一些困难,因为来自 D 的密钥在 G 中被加密。此外,我们还需要加密用于点与置换( point‐and‐permute)所需的比特。因此,我们将始终假设存在一个可高效计算的函数 f: D×{0, 1}→ G,其具有可高效计算的逆函数 f⁻¹。我们注意到,对于所有已知的 KHPRF,这样的函数都存在。

2.4 安全多方计算

我们采用在[17]中出现的针对半诚实敌手的安全多方计算的标准定义。简而言之,一个 n参与方协议 π由 n个称为参与方的交互式概率多项式时间图灵机P₁,…,Pₙ定义。各方将安全参数 1^κ作为其共同输入,每个参与方Pᵢ持有一个私有输入 xᵢ。计算过程分轮次进行。在协议的每一轮 j中,每个参与方向其他每个参与方发送一条消息(并从所有其他参与方接收消息)。协议中的轮次数 量表示为关于安全参数的某个函数 r(κ)。

协议执行过程中参与方的视图包含其私有输入、随机字符串以及在本次执行中接收到的所有消息。随机变量viewπ Pᵢ (x 1^κ)描述了Pᵢ在以输入x=(x₁,…,xₙ)(安全参数为 κ)执行 π时的视图。其中, xᵢ表示参与方Pᵢ的输入。以输入x (安全参数为 κ)执行 π的输出由随机变量Outputπ(x 1^κ) =(OutputπP₁(x 1^κ)…, OutputπPₙ (x 1^κ))描述,其中OutputπP(x 1^κ)是该次执行中参与方 P的输出,并隐含于 P的视图之中。

480 A.本‐以法莲 等

类似地,对于索引为 I ⊆[n]的一组各方,我们用 x_I表示它们的输入,用 viewπ I(x 1^κ) 表示它们的联合视图,用 OutputπI(x 1^κ) 表示它们的联合输出。在本工作的设定中,考虑确定性的功能即可。因此,我们仅针对确定性的功能性提供安全性的定义;有关该定义的动机讨论参见 [17]。

定义5(确定性功能的安全性)。 一个协议π t‐安全地计算确定性功能 f:({0, 1}∗)ⁿ →({0, 1}∗)ⁿ,在存在半诚实敌手的情况下,需满足以下条件:

正确性: 对于每个 κ ∈ N和每组 n个输入 x= x₁,…, xₙ,均成立

$$
\Pr[\text{Output}_\pi(x, 1^\kappa) = f(x)] = 1,
$$

其中概率是根据各方的随机硬币取值计算的。

隐私性: 存在一个概率多项式时间(在安全参数中)的算法 S(称为“模拟器”),使得对于每一个大小至多为 t的子集 I ⊆[n]:

$$
{S_A(x_I, f_I(x), 1^\kappa)}_{x\in({0,1}^ )^n;\kappa\in\mathbb{N}} \equiv_c {\text{view} \pi^I(x, 1^\kappa)} {x\in({0,1}^ )^n;\kappa\in\mathbb{N}}.
$$

3 基于密钥同态伪随机函数的多方混淆电路

在本节中,我们描述了一种通过密钥同态伪随机函数(PRF)构建多方混淆电路的通用范式。如上所述,其目标是允许各方高效地构建一种多方混淆电路,其中每个门的解密次数以及解密密钥的大小均与参与方数量无关。

在第3.1节中,我们定义了主要的离线功能 FGC,该功能通过密钥同态伪随机函数构造混淆电路。在第3.2节中,我们描述了一个使用 FGC计算输出的在线协议。在第3.3节中,我们证明了该协议的正确性,并给出了 FGC安全的条件,即在什么条件下, FGC的安全实现结合在线协议可被用作计算任意布尔电路的安全多方协议。安全性证明将在完整版本中给出。

下文中,令 C表示布尔电路,并令 |C| 表示 C中的门数量。对于 C中的每个门 g ,我们用 g(α, β)表示对 α, β ∈{0, 1}执行的门操作。此外,我们沿用符号,也将 g用于表示在 C的固定拓扑排序中该门的索引。

各方表示为 P₁,…, Pₙ,其中 n 表示参与方数量。电路中所有导线的集合用 W 表示。对于每条导线 ω ∈ W,每个参与方 Pᵢ 将持有两个密钥 kᵢ_{ω,0}, kᵢ_{ω,1} ∈ D,我们称之为个体密钥。个体密钥的求和 k_{w,0} \overset{def}{=} \widetilde{\sum} {i=1}^{n}( kᵢ {w,0}) 和 k_{w,1} \overset{def}{=} \widetilde{\sum} {i=1}^{n}( kᵢ {w,1}) 将称为联合密钥。

通过混淆电路实现高效可扩展的常数轮多方计算 481

我们为每条导线 ω ∈ W关联一个隐藏位 λ_ω,该隐藏位通常对所有各方均未知。在在线阶段,各方会公开每条导线 ω的一个外部值位 e_ω。稍后将明确, e_ω= λ_ω ⊕ t_ω,其中 t_ω是各方提供的输入在非混淆计算 C中导线 ω的实际比特。

3.1 离线阶段

在本节中,我们描述了协议离线阶段的主要功能,即Functionality FGC。该功能通过一族密钥同态伪随机函数(PRF)构建混淆电路。

功能 FGC接收一个电路 C作为公共输入,该电路包含导线 W、一族密钥同态函数{F_k}以及一个集合 x₀,…, x_{4|C|-1} ∈ X。该功能还从每个参与方 Pᵢ接收每条导线 ω ∈ W对应的两个个体密钥kᵢ_{ω,0}和kᵢ_{ω,1}。该功能为每条导线 ω ∈ W关联一个隐藏位 λ_ω,该隐藏位通常不会向任何参与方公开。然后,该功能计算并向各方输出一个姚氏混淆电路的版本,其中用于加密的密钥为联合密钥。更准确地说,对于每个具有输入导线 u、 v和输出导线 w的门 g ∈ C,以及每一个 α、 β ∈{0, 1},该功能秘密地计算

$$
e_{w,\alpha,\beta} \overset{def}{=} g((\lambda_u \oplus \alpha), (\lambda_v \oplus \beta)) \oplus \lambda_w
$$

以及

$$
\text{KEY} {w,\alpha,\beta} \overset{def}{=}
\begin{cases}
k
{w,0} & \text{if } e_{w,\alpha,\beta} = 0 \
k_{w,1} & \text{if } e_{w,\alpha,\beta} = 1
\end{cases}
$$

值 e_{w,\alpha,\beta}等于在求值过程中若 u和 v的外部值分别为 α和 β时将向各方揭示的导线的外部值。KEY_{w,\alpha,\beta}是与此外部值相对应的联合密钥。

该功能向各方输出混淆门

$$
\tilde{g} {\alpha,\beta} = (F {k_{u,\alpha} +\tilde{} k_{v,\beta}}(x_{4g+2\alpha+\beta}))^{-\tilde{1}} \tilde{\cdot} f(\text{KEY} {w,\alpha,\beta}, e {w,\alpha,\beta}).
$$

该功能还会向每个参与方输出与其输入和输出导线相关联的 λ。功能 FGC的完整细节见图2。

示意图1

3.2 在线阶段

在本节中,我们描述了在线阶段协议。在此阶段,各方交换混淆输入并计算混淆电路的输出。在线阶段的整体流程与BMR协议相同。具体而言,它包含两轮简短的通信,在此期间各方获得输入导线的密钥。此后,所有计算均在本地进行。

在协议的第一步中,每个参与方计算并广播其每条输入线的外部值 e_ω= λ_ω ⊕ b_ω。这是可行的,因为每个参与方都知道其每条输入线的真实值 b_ω,并且该参与方知道其输入线的λ_ω来自功能 FGC的输出。

下一步,各方广播其对应于每条输入线的外部值的个体密钥,并计算联合密钥

482 A.本‐埃夫拉伊姆 等

对于这些导线。然后,各方按照拓扑顺序在每个门处本地解密正确的行,并恢复该门输出导线的密钥和外部值。通过这种方式,在此步骤结束时,各方恢复了输出导线的外部值。最后,各方通过将输出外部值与相应的 λ进行异或操作来恢复函数的真实输出,这些 λ的值他们从功能 FGC的输出中已知。

3.3 正确性与安全性

在本节中,我们展示了在 FGC混合模型中使用在线协议的正确性,并陈述了由此为任意布尔电路构建安全多方协议的条件。安全性证明见完整版本。

基于混淆电路的高效可扩展常数轮多方计算 483

正确性。我们现在证明,各方从在线阶段接收到的输出对应于正确的输出。

根据在线协议的步骤3c,这源自以下声明:

声明3。 对于每个 ω ∈ W,各方在在线协议中揭示的外部值 e_ω等于 λ_ω ⊕ t_ω,其中 t_ω是在具有相同输入的非混淆计算中导线 ω的真实值。

证明 基于 C的拓扑排序进行归纳。我们给出证明的概要,省略步骤3b中解密正确性的证明。

证明概要。 对于输入导线,e_ω= λ_ω⊕t_ω由在线协议的步骤1得出。对于任何其他作为门 g的输出导线的导线 ω ∈ W,其输入导线为 u, v,根据在线协议的步骤3b、功能 FGC中的公式(3)和(4)以及归纳假设,我们有

$$
e_\omega = e_{\omega,e_u,e_v} = g((\lambda_u \oplus e_u),(\lambda_v \oplus e_v))\oplus \lambda_\omega = g(t_u, t_v)\oplus \lambda_\omega = t_\omega \oplus \lambda_\omega.
$$

安全性。 我们给出了在什么条件下,FGC的安全实现结合在线协议可以作为安全多方协议来计算任何布尔电路 C。我们首先给出两个定义。设{F_k:X → G}k∈D 是一个函数族,并且设 R: X → G是随机函数。

484 A.本‐以法莲 等人

定义 6. 对于 x₁,… , xₙ ∈ X,我们说性质 I(x₁,…, xₙ)对{F_k}成立,如果对于随机地选择的 k ∈D,该性质成立。

$$
{(x_i, F_k(x_i))} {i=1}^{n} \equiv_c {(x_i, R(x_i))} {i=1}^{n}.
$$

如果 {F_k} 是一个伪随机函数(PRF),则对于任意的 x₁,…, xₙ,性质 I(x₁,…, xₙ) 成立。如果 x₁,…, xₙ 是 随机的,则即使 {F_k} 是一个弱伪随机函数(weak PRF),性质 I(x₁,…, xₙ) 也成立。

设 C是一个具有导线集合 W的布尔电路。

定义7。 对于 x₀,… , x_{4|C|-1} ∈ X(可能包含 xᵢ= xⱼ以对应 i= j),我们说性质 J(x₀,…, x_{4|C|-1})对 C成立,如果对于每个门 g ∈ C,{x_{4g}, x_{4g+1}, x_{4g+2}, x_{4g+3}}均互不相同,并且对于每条作为两个不同门 g₁、 g₂ ∈ C的输入导线的导线 ω ∈ W,均满足

$$
{x_i} {i=4g_1}^{4g_1+3} \cap {x_i} {i=4g_2}^{4g_2+3} = \emptyset.
$$

定义7的思想是,如果两个门共享一条公共输入导线,则它们不会共享相同的 x。这是为了确保相同的伪随机函数(PRF)不会使用相同输入被

基于混淆电路的高效可扩展常数轮多方计算

查询相同的伪随机函数(PRF)不会使用相同输入被查询两次。现在我们可以陈述我们的主安全定理。

定理4。 如果性质 I(x₀,…, x_{4|C|-1})对{F_k}成立,且性质J(x₀,…, x_{4|C|-1})对 C成立,则图3中的在线协议在半诚实 FGC-混合模型下可安全计算 C,最多可容忍 n −1个被腐蚀的各方。

定理 4可以通过标准方式证明,类似于 [26,27] 的证明。我们将在完整版本中给出一个略有不同的证明。

备注1。 从证明中得出的一个重要观察是,协议安全性依赖于个体密钥,而非联合密钥。直观上讲,这是因为攻击者可能掌握许多个体密钥,从而在某些情况下能够获取关于联合密钥的部分信息。例如,在我们的DDH实例化中,这一观察至关重要,因为我们对个体密钥进行了限制。这一点在我们的LWE实例化中也同样重要,我们将在第5节中看到这一点。

4 基于DDH的显式实例化

在本节中,我们描述了一种基于DDH假设的密钥同态伪随机函数(PRF)多方计算协议的显式实例化。混淆过程中所使用的加密方案可视为ElGamal方案的 一种变体。然而,直接朴素地使用ElGamal方案可能存在安全隐患。我们在完整版本中给出了一个简单示例来说明这一点。

在第4.1节中,我们证明了DDH问题和DLSE(短指数离散对数)问题的一些性质。在第 4.2节中,我们解释了基于DDH和随机预言机的实例化方法。在第4.3节中,我们解释如何去除随机预言机,并描述一些优化方法。其中一些优化明确依赖于DLSE的困难性。在第4.4节中,我们描述了DDH实例化的两种可能的离线协议:在第4.4.1节中,我们描述了一种基于BGW的协议,该协议在假设存在诚实多数的情况下是安全的。在第4.4.2节中,我们描述了一种基于不经意传输的协议,该协议可抵御最多 n −1个被攻破的各方。

4.1 DDH和DLSE的一些性质

在本节中,我们陈述了在实例化过程中所使用的 DDH 和 DLSE 的若干性质。这些证明使用了 [24,31], 中的定理,将在完整版本中提供。

符号5。 对于 0 ≤ c ≤ κ,令 R̂_{κ−c}={u | 0 ≤ 2^{κ−c}u< q}。

请注意,此符号表示法与符号表示法1不同,因为此处最高有效位为零。然而,在素数阶群中,使用符号表示法5或符号表示法1时,短指数DDH困难性是等价的。这使我们能够证明来自[31]的一个定理的以下变体。

定理6. 假设DDH问题是困难的,

  1. 如果 c= O(log κ),则{F_k(x)= x^k}k∈R̂_{κ−c} 是一个密钥同态弱伪随机函数(PRF)。
  2. 如果离散对数问题(DLSE)c困难,则{F_k(x)= x^k}k∈R̂_{κ−c} 是一个密钥同态弱伪随机函数(PRF)。

此外,如果 H是一个其像为群G生成元的随机预言机,则在上述两种情况下,{F_k(x)= H(x)^k}k∈ R̂_{κ−c}是一个密钥同态的PRF。

4.2 具体实例化

在本节中,我们描述了基于DDH困难性的协议的具体实例化。我们首先假设如下所述使用SHA256可视为一个随机预言机。在第4.3节中,我们将解释如何避免随机预言机假设。

我们协议的具体实现如下。设 p= 2q+ 1为一个具有 κ位的安全素数,并用G_q表示乘法群 Z_p^*中阶为 q的子群,即二次剩余群。我们令伪随机函数族{F_k}为 F_k(x)=(H(x))^k mod p,其中 H是由 H(x) \overset{def}{=}(SHA(r||x)|| ··· ||SHA(r||(x+( − 1))))^2 mod p建模的随机预言机, = ⌈ κ /256⌉ ,和 r为双方约定的随机临时值。注意, H(x)是G_q 的一个生成元。2个体密钥的定义域初始为 Z_q ,但我们将在下方对此进行轻微修改。我们定义 x_i= i, a ˜· b= a · b mod p, a +˜ b= a+ b mod q,以及 f(a) = a^2mod p,该值对于任意非零元素 a ∈ Z_p 均属于 G_q 。

我们注意到使用上述实例化存在一些困难。

2唯一可能的例外是值0和1,但这发生的概率可以忽略不计。

  1. 函数 f的输入应同时包含密钥和外部值。
  2. 平方函数对每个输入都有2个逆元。因此,由于 f需要是可逆的,各方必须有某种方式来确定这两个逆元中哪一个才是正确的。
  3. 联合密钥没有被良好定义。最初,个体密钥是从Z_q中随机选取的。在待加密消息中的密钥之和将对p取模,而在指数中的密钥之和将对 q取模(即生成元所在子群的大小)。由于密钥是随机选择的,在线阶段中消息内各方个体密钥的总和(即揭示的联合密钥)与指数中的联合密钥(即用于加密/解密的真实密钥)通常并不相等,这将导致计算中的误差。

我们通过让个体密钥从{0,…, (q−1)/(4n)} ⊂ Z_q中选取来解决上述问题。首先,注意到密钥的和现在有明确定义为 k_{w,0}+ k_{w,1}= Σ^n_{i=1}k^i_{w,0}+Σ^n_{i=1}k^i_{w,1}< q< p, 因此它在模 q和模 p下相等。因此,用于解密的密钥等于从输入线解密中揭示出的密钥之和。根据定理6,第 1项,这种密钥选择仍可确保我们的协议安全。

为了插入外部值位,我们将密钥乘以二并加上外部值位,即 f(KEY_{w,α,β}, e_{w,α,β}) =(2KEY_{w,α,β}+ e_{w,α,β})^2。注意 2KEY_{w,α,β}+e_{w,α,β}< (q−1)/2 。在此定义域上,平方函数在 Z_p中具有唯一逆元,且可在多项式时间内计算。

实例化的功能 FGC以及在线协议只是将上述具体实例化,即基于DDH的密钥同态伪随机函数,应用于第3节中的相应图示。

4.3 移除随机预言机与优化

在本节中,我们首先展示如何去除随机预言机假设。然后,我们描述一些优化方法,其中某些优化需要进一步假设DLSE_c对足够小的 c成立。

移除随机预言机。 回顾一下,使用随机预言机是为了证明{F_k}是一个伪随机函数族。然而,定理4并未明确要求{F_k}必须是伪随机函数。如果 x_i= h_i是双方约定的随机且互不相同的群G生成元,则定义 F_k(a)= a^k就已足够:此时{F_k}是一个弱伪随机函数(weak PRF),因此由于生成元是随机的,性质 I(x₁,…, x_{4|C|-1})成立。同时,由于所有生成元互不相同,性质 J(x₁,…, x_{4|C|-1})也成立。

此外,可以要求少于 4|C| 个不同的随机生成器——我们可以重复使用相同的随机生成器(即 x_i= h_{r_i},其中 r_i= r_j 可能对 i=j成立),只要性质 J(x₁, …,x_{4|C|-1})也满足即可。也就是说,只要对于每个随机生成器 h和每个单独的密钥 k,伪随机值 F_k(h)在所有门的加密(公式 (3))中仅被使用一次。

基于混淆电路的高效可扩展常数轮多方计算 487

我们注意到,相同的个体密钥总是被多次使用,既在每个门的两行中使用,也在具有相同输入导线的其他任何门中使用。然而,我们可以将所需随机生成器的数量限制在电路最大扇出的8倍以内。该证明将在完整版本中给出。该证明提供了一个简单的确定性(相对于电路和拓扑排序)算法,用于决定在每个门处使用哪些生成器。此外,这些约定的生成器可以一次性选定,并可重复用于许多不同的电路。

我们现在继续描述上述协议的一些优化。在线计算时间的两个主要瓶颈是:计算幂运算 h^k,以及计算模 p 的平方根以恢复密钥和外部值。接下来我们将展示如何优化这些步骤。

预计算。 我们指出,所使用的生成元集合在离线阶段就已经确定。因此,为了加速幂运算,各方可以为每个生成元 h 预计算 h^2, h^4,,…, h^{2^{⌊log q⌋}}。如果生成元的数量较少(例如,上述不使用随机预言机的版本),这也将显著加快离线阶段的速度。如果多个电路使用相同的生成元,则该预计算只需对所有电路执行一次即可。

基于DLSE困难性的优化。 我们现在展示如何通过进一步假设DLSE_c假设在足够小的 c下成立,从而显著改善计算时间。显然,假设密钥较短会显著提升幂运算的效率——如果密钥的定义域是 R_{n−c},则幂运算大约快 κ/c倍。

第二个不太明显的优化是,假设在 c<κ/2 −log n−2 条件下的 DLSE_c 可显著缩短模平方根的计算时间。这基于以下观察结果。

Observation 7. 如果 m ∈ N的长度为 d位,且 d< κ/2,则 m^2 mod p= m^2。

Following Observation7,如果密钥足够短,我们可以用普通平方根代替模 p的平方根运算。计算普通平方根的时间比计算模 p平方根快几个数量级。因此,这在实际上消除了计算模平方根所需的时间。

备注2. 如果我们假设DLSE成立,并且生成元集合较小,那么对于计算生成元h^k)^{-1}和密钥 h的 k(例如第4.4节中的离线协议所需),通过短密钥进行指数运算(k)会更高效。这可以通过等式(h^k)^{-1}=(h^{-1})^k来实现,即不仅为每个生成元,也为每个生成元的逆 h预计算表(当然,仅当生成元数量较小时才合理,例如在不使用随机预言机的版本中)。

488 A.本‐以法莲 等人

4.4 基于DDH实现的离线阶段协议

我们现在描述两种不同的安全协议,用于计算基于DDH的实例化方案的离线阶段,其中一种基于BGW[9] ,要求诚实多数,另一种基于不经意传输,可安全抵御最多n −1个被攻陷的各方。

计算不含随机预言机版本的离线协议是相同的,只是在所有位置 H(x_i) 被替换为 h_{r_i},如第4.3节所述。如果假设DLSE_c成立,则个体密钥应从{0,…, q/2^{κ−c}}中选取。

目前所建议的两个协议中的瓶颈都是计算无界扇入乘法,即计算夏米尔或加法共享的Π^n_{i=1}m_i,其中 n为参与方数量,且 m_i仅由参与方 i知晓。因此,任何在计算无界扇入乘法协议上的改进都将直接提升我们的离线协议性能。目前,用于计算无界扇入乘法的最佳常数轮数协议是Bar‐Ilan和Beaver提出的协议[4]。

4.4.1 基于DDH的 FGC的BGW离线协议

在本节中,我们描述了一种用于DDH实例化的离线协议,该协议基于需要诚实多数的BGW协议[9],。所描述协议的运行时间与BMR电路离线阶段的基于 BGW的协议的运行时间相当,例如当参与方数量large时[7,8],。

我们的BGW离线协议通过在Shamir秘密共享中对个体密钥 k^i和幂运算g^{-k^i}进行秘密共享,并利用BGW协议计算混淆门来实现。

$$
\tilde{g} {\alpha,\beta}=(((H(4g+ 2\alpha+ \beta))^{k {u,\alpha}+k_{v,\beta}})^{-1} \cdot (2\text{KEY} {w,\alpha,\beta}+ e {w,\alpha,\beta})^2.
$$

主协议如图4所示。子协议采用标准的BGW协议。注意,Π^n_{i=1}m_i通过[4]在常数轮次内计算得到。图4中的协议完全基于BGW协议,因此在假设存在诚实多数的情况下,可在半诚实模型中安全地计算功能 FGC。

4.4.2 基于不经意传输的用于基于DDH的 FGC的离线协议

在本节中,我们描述了一个用于计算基于DDH的功能FGC的协议,该协议在OT混合模型中对于最多 n −1个被攻陷的各方是安全的。

对于OT协议,基本观察是:如果两组(不一定不相交的)各方 P₁和 P₂分别在 Z_p 中持有秘密 s₁, s₂ ∈Z_p 的加法共享,则使用一轮OT,这些各方可以在 P₁ ∪P₂这组各方中计算出 s₁ · s₂的加法共享。

基于混淆电路的高效可扩展常数轮多方计算 489

为了说明这一点,我们记 s₁= Σ^{|P₁|} {i=1}s^i₁ 和 s₂= Σ^{|P₂|} {j=1}s^j₂。然后通过注意到以下情况得出该观察结果。

$$
s_1 \cdot s_2=(s^1_1+ \cdots+ s^{|P_1|}_1 )(s^1_2+ \cdots+ s^{|P_2|}_2 )
= s^1_1 \cdot s^1_2+ \cdots+ s^1_1 \cdot s^{|P_2|}_2 + \cdots+ s^{|P_1|}_1 \cdot s^{|P_2|}_2 .
$$

任何形式的乘法 s^i₁ · s^j₂均可使用 logp次各方之间的不经意传输 Pi和 Pj 来实现,如 [22] 中所述。

离线阶段的OT协议类似于基于BGW的协议,不同之处在于共享是加法型的,并且乘法运算使用上述观察结果进行计算。与基于BGW的协议一样,该协议的主要瓶颈在于计算无界扇入乘法。

490 A.本‐埃夫拉因 等

5 基于环LWE的实例化

Boneh 等人 [10]和班纳吉和佩克特 [3]分别基于 LWE 和环LWE 构造了几乎密钥同态伪随机函数。似乎很有可能可以在我们的构造中使用这些几乎密钥同态伪随机函数。

我们采用了一条略有不同的路线——我们基于判定性环LWE困难性假设直接构建了一个协议。我们所使用的函数并不是一个真正的伪随机函数(PRF),因为它不是确定性的。然而,根据判定性环上LWE假设,该函数与随机不可区分,我们证明这对于我们的构造已足够。

设 p= 2N+ 1为一个素数,其中 N是2的幂,并记 R_p=Z_p[X]/(X^N+ 1)。我们定义 F={f_k: R_p → R_p|f_k(a) = a· k+ e},其中 a, k和 e是环中的多项式, 且 e的系数来自高斯分布 D。在决策性环LWE假设下,对于有界常数个不同的随机输入, f_k的输出与随机不可区分。此外,即使密钥本身来自高斯分布,上述结论仍然成立。注意,由于误差的存在, f_k的输出不是确定性的。

由于在该协议中密钥域是 f_k的像的一个子集,起初看起来用于将密钥映射到 f_k像中的函数 f可以是恒等函数。然而,由于误差的存在,这会带来问题。为了避免误差,函数 f将密钥的系数乘以 ⌈√p⌉,,参见第5.1节。

LWE实例化的安全性证明与无随机预言机的DDH实例化的安全性证明类似。需要注意的是,该证明并不要求伪随机函数(PRF)是确定性的,仅要求该函数不可区分于随机函数,并且能够正确恢复解密消息。对于后一点,通过使用正确的参数,这种情况以压倒性概率发生。重要的是,在加密过程中,函数不会对同一输入查询两次。

为了加密外部值,我们将密钥的最后一个坐标设置为0。因此,我们损失了一个维度的密钥,这略微降低安全性。我们在完整版本中对安全性进行了更详细的说明。

在以下协议中,使用第4.3节中解释的去除随机预言的方法,我们令 a₁,…,a_{8·f_{out}} 为环中的公开随机元素(该环也是公开的),其中 f_{out}是电路的最大扇出。我们用 A(g, α, β) 表示与门 g的行(α, β) 相关联的随机元素,使得共享输入导线的任意两个门不共享任何随机元素(参见定义7)。如上所述实例化的功能 FGC的完整描述见图5。注意,为了安全性,必须满足8 · f_{out}小于样本数量的上限。

5.1 基于环LWE实例化的在线阶段

我们基于LWE的实例化的在线阶段遵循一般的在线阶段,只是在每次解密后,需要先消除误差,然后才能恢复隐藏密钥和外部值。消除误差的主要思想是,误差和密钥均来自高斯分布,因此它们远离均值的概率可以忽略不计。

通过混淆电路实现高效可扩展的常数轮多方计算 491

如果均值为 √p /2且标准差足够小,则误差将以压倒性概率落在范围 [0,√p]内。因此,如果在加密前将消息乘以 √p,然后通过 √p进行除法运算,即可消除误差并恢复消息。

使用此方法,协议正确输出的概率即为所有解密行的所有坐标中,累积误差和加密消息均处于[0,√p]范围内的概率。如果参数选择正确,这种情况将以压倒性概率发生。我们基于环LWE的实例化的在线阶段协议如图6所示。

5.2 面向环LWE实现的定制化离线阶段协议

我们现在描述一种用于计算基于环LWE的实例化离线阶段的“定制”安全协议。该协议基于不经意传输,可抵御最多 n − 1个被腐蚀方的安全性。也可使用其他协议来实现此功能,例如,在假设存在诚实多数的情况下可使用BGW。

我们在此描述的协议具有渐近更优的性能——每个参与方所做的工作量仅随各方数量拟线性增长。此外,伪随机函数(PRF)仅在本地locally计算,而不在多方计算中进行,因此用于计算混淆电路的电路与伪随机函数(PRF)的复杂性无关。

该协议的主要思想是,每个参与方将通过添加伪随机函数(PRF)来加密其共享,并进行广播。所收到的加密值之和即为混淆门。这一方法之所以可行,是因为共享和(经过随机化的)伪随机函数(PRF)均为加法同态的。因此,可以合理地假设,对于所有密钥上的操作与伪随机函数(PRF)像上操作相同的密钥同态伪随机函数,均存在类似的协议。

更详细地说,各方通过一个子协议计算用于加密的密钥的加法共享。然后,每个参与方加密其共享并进行广播。各方对收到的广播进行求和,并恢复混淆门。直观上,其安全性源于备注1以及以下内容: – 对于在在线阶段未被解密的行,攻击者至少不知道其中一个个体密钥。因此,加密隐藏了参与方的共享。– 对于在在线阶段被解密的行,所揭示的共享(如果攻击者能够恢复它们,例如,如果攻击者控制了n−1个参与方)可以通过攻击者从其共享和已解密的密钥中已经能够获得的信息进行模拟。

基于混淆电路的高效可扩展常数轮多方计算 493

离线协议在图7中详细描述。利用第4.4.2节中的观察,计算KEY_{w、α、β}||e_{w、α、β}的加法共享的子协议是直接的。

6 实现细节和实验结果

在本节中,我们详细介绍我们的实现,并报告在采用及未采用上述各项优化时的在线计算时间实验结果。

我们用C语言编写了在线计算的代码++ ,使用NTL库进行模运算[35],并使用OpenSSL实现SHA[33]。我们基于环LWE的实例化代码使用了来自[15]的高斯采样、NTT变换和算术运算等构建模块。我们的代码已公开发布于 https://github.com/cryptobiu/Protocols。

494 A.本‐以法莲 等人

我们在一个包含100,000个与门和0个异或门的电路中测试了我们的代码 (参见下方备注3)。时间是5次运行的平均值,以秒为单位。实验在 Ubuntu 14.04.4操作系统上进行,使用了英特尔酷睿i7‐5600U处理器 @ 2.60GHz的单个核心。显然,所有版本的时间都可以通过并行化进一步改进,但我们将此留给后续研究。

DDH实例化。 非优化版本指的是第4.2节中描述的初始实例化。预计算版本指的是不使用随机预言机、而是利用指数表预计算的版本,该版本在第4.3节中描述。DLSE500, DLSE256和 DLSE160指的是第4.3节中描述的基于DLSE的优化,其个体密钥分别为500位、256位和160位。由于安全性依赖于个体密钥的比特数,而联合密钥的大小比个体密钥多log n位,我们将该额外位数固定为10位,对应最多1023方。即,在DLSE500中,联合密钥在DLSE256 266中为510位,在DLSE160 170中为266位3。所有版本均使用1024位安全素数。因此, c ≈ 500是仍可使用我们的平方根优化的最大 DLSE_c值。我们提供了一个表格来展示这些改进的效率,这些结果也在图1中进行了展示。据我们所知, DLSE_c的实际安全性尚不明确。但已知存在仅需 ∼ O(2^{c/2})次幂运算的攻击方法。因此,若目标是实现80比特安全性,则至少应使用DLSE160版本。

版本 未优化的预计算 DLSE500 DLSE256 DLSE160
在线计算 时间(秒) 102.3 83.9 16.15 8.4

我们还在DLSE256假设下,使用了更大位数的安全素数(1536、2048和 3072位)进行了测试。结果如下表和图8所示。

素数(DLSE256)中的位数 κ= 1024 κ= 1536 κ= 2048 κ= 3072
在线计算时间(秒) 8.4 14.9 21.65

LWE实例化。 我们用于环LWE实例化的代码采用了以下参数,这些建议参数来自 [16]: p= 1051649, N= 512, σ= 8 √2 。我们选择这些参数是为了留出足够的误差余量,从而允许更多方参与。请注意,对于这些参数的选择,总概率对于较少的参与方数量,联合密钥的位数会略少一些,例如,对于<128方和DLSE160,联合密钥应仅为167位而非170位。因此,对于较少的参与方数量,所需时间可能会略微更优。

通过混淆电路实现高效可扩展的常数轮多方计算 495

在整个协议中,对于最多300个参与方,我们所选电路的误差为<2⁻⁴⁰。对于 500个参与方,总误差概率为 ≈2⁻¹⁵.⁵,因此应考虑为此数量的参与方调整参数。我们的环LWE实例化的在线计算时间甚至超过了使用DLSE160 1024位素数的版本,在线计算时间平均约为4.45秒。作为对比,结果如图1和图8所示。1和 8。

与BMR的比较。 作为对比,我们还在相同电路和硬件上测量了一个最先进的BMR实现的在线计算时间 [8],参与方数量可变。该 [8]代码经过高度优化,并使用AES‐NI和流水线技术进行加密/解密。结果如图 1和 8所示,用于对比。

正如预期,当参与方数量足够大时,我们协议的在线计算时间快于BMR协议各自的对应时间。使用1024位素数时:对于非优化版本,临界点在400到 450个参与方之间;对于预计算版本,临界点在350到400个参与方之间。对于 DLSE500和DLSE256版本,临界点分别在150到175以及100到125之间。DLSE160版本和环LWE版本的临界点均接近75个参与方。对于更大的素数,临界点对应的参与方数量略高一些。

我们预计在不同硬件上,时间与临界点会有所不同,但总体结论应保持不变。我们还注意到,我们确实不使用任何专用硬件优化,而[8]的BMR代码使用了流水线固定密钥AES‐NI。

备注 3. 的BMR协议[8]包含自由异或优化,而我们的代码计算异或门的方式与计算与门类似。因此,对于具有 X个异或和同或门以及 A非异或4门的特定电路 C进行真实比较时,BMR协议的时间 t应调整为 t· A/何固定电路,这只会改变临界点的具体位置,而不会改变整体结论。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值