FHE Circuit Privacy

参考文献:

  1. [MP12] Micciancio D, Peikert C. Trapdoors for lattices: Simpler, tighter, faster, smaller[C]//Annual International Conference on the Theory and Applications of Cryptographic Techniques. Berlin, Heidelberg: Springer Berlin Heidelberg, 2012: 700-718.
  2. [OPP14] Ostrovsky R, Paskin-Cherniavsky A, Paskin-Cherniavsky B. Maliciously circuit-private FHE[C]//Annual Cryptology Conference. Berlin, Heidelberg: Springer Berlin Heidelberg, 2014: 536-553.
  3. [BV14] Brakerski Z, Vaikuntanathan V. Lattice-based FHE as secure as PKE[C]//Proceedings of the 5th conference on Innovations in theoretical computer science. 2014: 1-12.
  4. [BPMW16] Bourse F, Del Pino R, Minelli M, et al. FHE circuit privacy almost for free[C]//Annual International Cryptology Conference. Berlin, Heidelberg: Springer Berlin Heidelberg, 2016: 62-89.

GSW for for Branching programs

[BV14] 展示了 GSW 的非对称噪声增长,并利用分支程序的每条语句都依赖新鲜的输入密文,给出了可计算任意 N C 1 NC^1 NC1 电路的 Level FHE,噪声比率为 α = n − c , c > 0 \alpha=n^{-c},c>0 α=nc,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 ),最终给出了第一个满足以下归约的全同态加密方案:

  • 量子归约到近似因子为 O ~ ( n 1.5 + ϵ ) \tilde O(n^{1.5+\epsilon}) O~(n1.5+ϵ) 的 GapSVP 问题
  • 经典归约到近似因子为 O ~ ( n 2 + ϵ ) \tilde O(n^{2+\epsilon}) O~(n2+ϵ) 的 GapSVP 问题

换句话说,自举程序并不会严重降低 FHE 的安全性,因此 FHE 和一般的 PKE 同样安全。其近似因子仅为多项式的(噪声-模数比值是多项式的)。

FHE for NC1

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)} αΘ~κ(4dnlog(q) )1
恰好 GSW 的解密电路属于 N C 1 NC^1 NC1 类。因此附加上循环安全假设,容易构造出 pure FHE,它的噪声比率仅为多项式级别(之前的 BGV/BFV 自举需要指数级的)。

secure as PKE

但是,上述的 α \alpha α 依然有些大了。现在我们将上述的 FHE 变得更加安全(进一步降低噪声比率)。两个关键技术:

  1. 密文随机化(Partial Randomization),

在这里插入图片描述

  1. 维度-模数约简(Dimension-Modulus Reduction),

在这里插入图片描述

[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 用于解密。

在这里插入图片描述

那么自举程序为:

  1. 设置自举秘钥为最底层私钥的密文, K i ← D i m R e d u c e d . S e c E n c s k ( B i t D e c o m p ( s 0 ) [ i ] ) K_i \leftarrow DimReduced.SecEnc_{sk}(BitDecomp(s_0)[i]) KiDimReduced.SecEncsk(BitDecomp(s0)[i])
  2. 根据最底层的两个密文 c 0 , c 1 c_0,c_1 c0,c1,构造增强解密函数 f c 1 , c 2 ( s ) = N A N D ( D e c s ( c 0 ) , D e c s ( c 1 ) ) f_{c_1,c_2}(s) = NAND(Dec_s(c_0), Dec_s(c_1)) fc1,c2(s)=NAND(Decs(c0),Decs(c1)),将它转化为关于 B i t D e c o m p ( s 0 ) BitDecomp(s_0) BitDecomp(s0) 的 5-PBP 程序
  3. 利用维度约简的同态计算过程,执行 E v a l ( f c 1 , c 2 , K i ) Eval(f_{c_1,c_2},K_i) Eval(fc1,c2,Ki)

为了解密正确性,我们设置
α ( 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) )1O~(α(n)n )
它们满足 α ⋅ q ≈ n \alpha \cdot q \approx \sqrt n αqn ,这是存在 LWE 从最坏情况到平均情况归约的最小的 q q q 取值。

上述 FHE 的安全性归约结果:

在这里插入图片描述

Circuit Privacy Almost for Free

[BPMW16] 对 [BV14] 略作修改,给出了第一个 “circuit-private FHE for NC1 circuits under the standard LWE assumption with polynomial modulus-to-noise ratio”。

Circuit Privacy

在 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 并不安全。

有几种达到电路隐私的手段:

  1. 噪声洪泛(noise flooding):对于计算结果,添加相对于结果噪声项 e e e 超多项式大的另一个噪声。但是这要求噪声-模数的比值本身就是超多项式的,困难问题的难度被减弱。
  2. 重加密(re-encrypt),
    1. 混淆电路:[OPP14] 给出了一个通用转换框架,使用 garbled circuits 实现普通 FHE 转化为电路隐私的 FHE。但是需要把 FHE 中的代数结构编码为布尔电路,这牺牲了 FHE 的多跳(multi-hop)能力。
    2. 自举程序:主要的问题就是自举代价极高,另外还需要额外的循环安全假设。

电路隐私的定义:

在这里插入图片描述

[BPMW16] 利用 Gaussian leftover hash lemma,对 [BV14] 的 GSW for BP 略作修改,给出了特定于 GSW 方案的电路隐私 Level FHE 方案。

Core Randomization Lemma

根据 [MP12],本原格 Λ ( G ) \Lambda(G) Λ(G) 及其对偶上的 f G − 1 , g G − 1 f_G^{-1},g_G^{-1} fG1,gG1 都是及其容易计算的。特别地,因为 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 vZqn,在陪集 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=Grand1(v)Zm,另外再加上随机偏移 y ∈ Z y \in \mathbb Z yZ,那么就有如下两个分布统计不可区分
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') CGrand1((0,0,,0))+(0,y)sCGrand1((1,0,,0))+(0,y)
这里 G r a n d − 1 G^{-1}_{rand} Grand1 的随机性是必要的,它使得不同的 v v v 下的分布有相同的中心(same center)。随机偏移 y y y 也是必要的,它使得不同的 v v v 下的分布有相同的支撑(same support)。注意这里的 y y y 是短的,而 noise flooding 则需要选取超多项式大小。

Circuit Private FHE

为了实现电路隐私的 GSW 方案,分为三个步骤,

  1. Generating fresh LWE samples:给定一组有界数量的 LWE 样本 ( A , b = s T A + e T ) (A,b=s^TA+e^T) (A,b=sTA+eT),按照参数 r = O ~ ( 1 ) r=\tilde O(1) r=O~(1) 离散高斯采样 x x x,按照参数 O ( r ⋅ ∥ e ∥ ) O(r \cdot \|e\|) O(re) 离散高斯采样 y y y 平滑噪声(smoothing noise),那么我们得到了一个新的 LWE 样本 ( A x , b x + y ) (Ax,bx+y) (Ax,bx+y),其中 A x Ax Ax 统计接近于均匀分布,噪声项 e T x + y e^Tx+y eTx+y 统计接近于参数 O ( r ⋅ ∥ e ∥ ) O(r \cdot \|e\|) O(re) 的离散高斯分布。对比于 noise flooding 的缺点是,这泄露了 ∥ e ∥ \|e\| e 的规模信息(Alice 有私钥,可以解密出噪声项 e T x + y e^Tx+y eTx+y)。
  2. Randomizing and Scaling GSW ciphertexts:根据 Core Randomization Lemma,随机数 x x x 仅仅取自陪集 v + Λ q ⊥ ( G T ) v+\Lambda_q^\perp(G^T) v+Λq(GT) 上参数 r = O ~ ( 1 ) r=\tilde O(1) r=O~(1) 的离散高斯分布,就足够使得新样本是统计接近均匀分布组合高斯分布的了。给定一个 GSW 密文 C = ( A , b ) + μ G C=(A,b)+\mu G C=(A,b)+μG,那么 C ⋅ G r a n d − 1 ( G ) + ( 0 , y ) C \cdot G^{-1}_{rand}(G)+(0,y) CGrand1(G)+(0,y) 就是随机化的密文,加密的消息不变,噪声项略微增大。给定常数 a ∈ { 0 , 1 } a \in \{0,1\} a{ 0,1}(就是 Bob 的函数),我们采样 x = G r a n d − 1 ( a ⋅ G ) x=G^{-1}_{rand}(a \cdot G) x=Grand1(aG),这里的 a G aG aG 其实就是 a a a 的无噪声密文。那么 C ⋅ G r a n d − 1 ( a ⋅ G ) + ( 0 , y ) C \cdot G^{-1}_{rand}(a \cdot G)+(0,y) CGrand1(aG)+(0,y) 就是 a ⋅ μ a \cdot \mu aμ 的随机密文,并且密文分布独立于 a a a 的值。
  3. Circuit-private homomorphic evaluation:使用 [BV14] 类似的 GSW 同态计算 BP 程序,只不过把它的 C ⋅ G d e t − 1 ( V ) C \cdot G^{-1}_{det}(V) CGdet1(V) 转变为了 C ⋅ C r a n d − 1 ( V ) + ( 0 , y ) C \cdot C^{-1}_{rand}(V)+(0,y) CCrand1(V)+(0,y),就可以实现电路隐私,

修改 [BV14] 的 BP 同态运算为如下格式:

在这里插入图片描述

其中 C C C 是输入的密文, V V V 是中间状态的密文。形如 C i ⋅ G − 1 ( V j ) C_i \cdot G^{-1}(V_j) CiG1(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 次。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44885334/article/details/134283586
今日推荐