参考文献:
[BV14] 展示了 GSW 的非对称噪声增长,并利用分支程序的每条语句都依赖新鲜的输入密文,给出了可计算任意 N C 1 NC^1 NC1 电路的 Level FHE,噪声比率为 α = n − c , c > 0 \alpha=n^{-c},c>0 α=n−c,c>0。然后利用连续的 dimension-modulus reduction procedure,将它降低到了 α ≤ 1 / O ~ κ ( n ϵ ⋅ n log q ) \alpha \le 1/\tilde O_\kappa(n^\epsilon \cdot \sqrt{n\log q}) α≤1/O~κ(nϵ⋅nlogq),最终给出了第一个满足以下归约的全同态加密方案:
换句话说,自举程序并不会严重降低 FHE 的安全性,因此 FHE 和一般的 PKE 同样安全。其近似因子仅为多项式的(噪声-模数比值是多项式的)。
Branching Program 的定义为:
根据 Barrington’s Theorem 可知,“多项式大小 5-PBP 可计算类” 等价于 N C 1 NC^1 NC1 类(对数深度的并行电路)。因此我们选取 W = 5 W=5 W=5,状态被表示为特征向量 v t ∈ { 0 , 1 } 5 v_t \in \{0,1\}^5 vt∈{0,1}5,每个 enrty 都是布尔值。我们根据 π t , 0 , π t , 1 \pi_{t,0},\pi_{t,1} πt,0,πt,1 和 x v a r ( t ) x_{var(t)} xvar(t),用 GSW 同态地计算 BP 程序中的状态转移。
同态计算 5-PBP 的算法如下:
为了计算结果的解密正确性,要求噪声的高斯分布参数为:
α ≤ 1 Θ ~ κ ( 4 d ⋅ n log ( q ) ) \alpha \le \dfrac{1}{\tilde \Theta_\kappa\left(4^d \cdot \sqrt{n \log (q)}\right)} α≤Θ~κ(4d⋅nlog(q))1
恰好 GSW 的解密电路属于 N C 1 NC^1 NC1 类。因此附加上循环安全假设,容易构造出 pure FHE,它的噪声比率仅为多项式级别(之前的 BGV/BFV 自举需要指数级的)。
但是,上述的 α \alpha α 依然有些大了。现在我们将上述的 FHE 变得更加安全(进一步降低噪声比率)。两个关键技术:
[BV14] 设计了一个维度约简程序:设置一个维度-模数的梯子,在最高层 L e v e l = L Level=L Level=L 上同态计算 BP 程序,然后利用秘钥切换依次降低维度-模数,在最底层 L e v e l = 0 Level=0 Level=0 执行解密任务。 s L , p k L s_L,pk_L sL,pkL 用于加密, s 0 s_0 s0 用于解密。
那么自举程序为:
为了解密正确性,我们设置
α ( n ) = 1 Θ ~ κ ( n ϵ ⋅ n log ( q ) ) q ( n ) ≥ O ~ ( n α ( n ) ) \begin{aligned} \alpha(n) &= \dfrac{1}{\tilde \Theta_\kappa\left(n^\epsilon \cdot \sqrt{n \log (q)}\right)}\\ q(n) &\ge \tilde O\left( \dfrac{\sqrt n}{\alpha(n)} \right) \end{aligned} α(n)q(n)=Θ~κ(nϵ⋅nlog(q))1≥O~(α(n)n)
它们满足 α ⋅ q ≈ n \alpha \cdot q \approx \sqrt n α⋅q≈n,这是存在 LWE 从最坏情况到平均情况归约的最小的 q q q 取值。
上述 FHE 的安全性归约结果:
[BPMW16] 对 [BV14] 略作修改,给出了第一个 “circuit-private FHE for NC1 circuits under the standard LWE assumption with polynomial modulus-to-noise ratio”。
在 FHE 同态计算过程中,不同的 f f f 导致了不同的计算电路,于是计算结果中的噪声项 e e e 的增长规模是依赖于这个函数的。例如 FHE-based MPC 场景:Alice 拥有数据 m m m,Bob 拥有函数 f f f,它们执行 MPC 计算出 f ( m ) f(m) f(m),但是 Alice 可以根据收到的 E n c ( f ( m ) ) Enc(f(m)) Enc(f(m)) 密文推断出 f f f 的部分信息,这导致上述的 MPC 并不安全。
有几种达到电路隐私的手段:
电路隐私的定义:
[BPMW16] 利用 Gaussian leftover hash lemma,对 [BV14] 的 GSW for BP 略作修改,给出了特定于 GSW 方案的电路隐私 Level FHE 方案。
根据 [MP12],本原格 Λ ( G ) \Lambda(G) Λ(G) 及其对偶上的 f G − 1 , g G − 1 f_G^{-1},g_G^{-1} fG−1,gG−1 都是及其容易计算的。特别地,因为 gadget 矩阵的 G G G 的特殊结构,Kalien 原像采样算法极其高效。
[BPMW16] 利用 Generalized leftover hash lemma 等若干引理,推导出了 LWE 样本的随机化引理,
给定一组 LWE 样本 C = ( A , s T A + e ) ∈ Z q n × m C=(A,s^TA+e) \in \mathbb Z_q^{n \times m} C=(A,sTA+e)∈Zqn×m,对于任意的 v ∈ Z q n v \in \mathbb Z_q^n v∈Zqn,在陪集 v + Λ q ⊥ ( G T ) v+\Lambda^\perp_q(G^T) v+Λq⊥(GT) 上按照离散高斯分布采样,得到 x = G r a n d − 1 ( v ) ∈ Z m x=G^{-1}_{rand}(v) \in \mathbb Z^m x=Grand−1(v)∈Zm,另外再加上随机偏移 y ∈ Z y \in \mathbb Z y∈Z,那么就有如下两个分布统计不可区分
C ⋅ G r a n d − 1 ( ( 0 , 0 , ⋯ , 0 ) ) + ( 0 , y ) ≡ s C ⋅ G r a n d − 1 ( ( 1 , 0 , ⋯ , 0 ) ) + ( 0 , y ′ ) C \cdot G^{-1}_{rand}((0,0,\cdots,0)) + (0,y) \equiv_s C \cdot G^{-1}_{rand}((1,0,\cdots,0)) + (0,y') C⋅Grand−1((0,0,⋯,0))+(0,y)≡sC⋅Grand−1((1,0,⋯,0))+(0,y′)
这里 G r a n d − 1 G^{-1}_{rand} Grand−1 的随机性是必要的,它使得不同的 v v v 下的分布有相同的中心(same center)。随机偏移 y y y 也是必要的,它使得不同的 v v v 下的分布有相同的支撑(same support)。注意这里的 y y y 是短的,而 noise flooding 则需要选取超多项式大小。
为了实现电路隐私的 GSW 方案,分为三个步骤,
修改 [BV14] 的 BP 同态运算为如下格式:
其中 C C C 是输入的密文, V V V 是中间状态的密文。形如 C i ⋅ G − 1 ( V j ) C_i \cdot G^{-1}(V_j) Ci⋅G−1(Vj) 的同态乘法格式,不仅仅导致了不平衡噪声增长,而且还隐藏了到底是哪个 V j V_j Vj 被使用,这就隐藏了 BP 程序。
不过,因为 V j V_j Vj 的噪声项依赖于 C i C_i Ci 的噪声项,因此最终计算结果会泄露各个 C i C_i Ci 被使用的次数。[BPMW16] 采取 Padding 方式,如果 C i C_i Ci 被调用了 τ i \tau_i τi 次,那么就对最终状态执行 L − τ i L-\tau_i L−τi 次关于 C i C_i Ci 的单位置换,使得全部输入的噪声项都是被累计 L L L 次。