FHE 嵌合 MHE

参考文献:

  1. [NW96] Nisan N, Wigderson A. Lower bounds on arithmetic circuits via partial derivatives[J]. Computational complexity, 1996, 6: 217-234. Cites “M. Ben-Or, Private communication”.
  2. [Gen09] Gentry C. A fully homomorphic encryption scheme[M]. Stanford university, 2009.
  3. [GH11] Gentry C, Halevi S. Fully homomorphic encryption without squashing using depth-3 arithmetic circuits[C]//2011 IEEE 52nd annual symposium on foundations of computer science. IEEE, 2011: 107-109.

文章目录

  • Gentry’s blueprint
  • Restricted Depth-3 Arithmetic Circuits
    • Symmetric Polynomial
    • Ben-Or’s Observation
  • Decryption Using a Restricted Depth-3 Circuit
  • Chimeric Leveled FHE
    • Compatible SWHE and MHE Schemes
    • The Construction
  • Optimizations
    • ElGamal Decrypt
    • Only One Product

Gentry’s blueprint

在 [Gen09] 博士论文中,Gentry 提出的 FHE 蓝图为:

  1. 首先构造 somewhat homomorphic encryption(SWHE),它可以同态计算低次多项式
  2. 压缩 SWHE 的解密电路,把私钥拆分并加密放到公钥中作为 hint,使得解密函数落在 SWHE 可处理的范围内
  3. 自举,要么生成一系列公私钥对得到 level FHE,要么假设 circular security 得到 pure FHE

大多数 FHE 的解密电路,都可以表示为一个多线性对称多项式(multilinear symmetric polynomial)。在初始的 FHE 方案中,自举是通过显然的布尔电路实现的。在[GH11] 中,他们使用 [NW96] 引用的 Ben-Or’s observation,将多线性对称多项式分解为 ∑ ∏ ∑ \sum\prod\sum ∑∏∑ 形式的算术电路。

Restricted Depth-3 Arithmetic Circuits

Symmetric Polynomial

我们简记 e k ( x ⃗ ) e_k(\vec x) ek(x ) n n n 变元的 k k k初等对称多项式,其中 x ⃗ = { x 1 , x 2 , ⋯   , x n } \vec x = \{x_1,x_2,\cdots,x_n\} x ={x1,x2,,xn}
e k ( x ⃗ ) = ∑ I ⊆ [ n ] , ∣ S ∣ = k ∏ i ∈ I x i e_k(\vec x) = \sum_{I \subseteq [n],|S|=k} \prod_{i \in I}x_i ek(x )=I[n],S=kiIxi

易知, e k ( x ) e_k(x) ek(x) 恰好是多项式 P ( z ) = ∏ i = 1 n ( z + x i ) P(z) = \prod_{i=1}^n(z+x_i) P(z)=i=1n(z+xi) 的单项 z n − k z^{n-k} znk 的系数,
P x ⃗ ( z ) = ∑ k = 0 n e k ( x ⃗ ) ⋅ z n − k P_{\vec x}(z) = \sum_{k=0}^{n} e_k(\vec x)\cdot z^{n-k} Px (z)=k=0nek(x )znk

给定集合 A = { a 1 , a 2 , ⋯   , a n + 1 } ⊆ Z p A=\{a_1,a_2,\cdots,a_{n+1}\} \subseteq \mathbb Z_p A={a1,a2,,an+1}Zp,其中 p ≥ n + 1 p\ge n+1 pn+1 使得 a i a_i ai 互不相同。给定 t j = P ( a j ) t_j=P(a_j) tj=P(aj),根据拉格朗日插值公式(或者说 CRT),
P ( z ) = ∑ j = 1 n + 1 t j ∏ i ≠ j z − a i a j − a i = ∑ j = 1 n + 1 t j ( λ j , 0 + λ j , 1 z + ⋯ + λ j , n z n ) = ∑ j = 1 n + 1 t j λ j , 0 + ∑ j = 1 n + 1 t j λ j , 1 z + ⋯ + ∑ j = 1 n + 1 t j λ j , n z n \begin{aligned} P(z) &= \sum_{j=1}^{n+1} t_j \prod_{i \neq j} \dfrac{z-a_i}{a_j-a_i}\\ &= \sum_{j=1}^{n+1} t_j \left(\lambda_{j,0}+\lambda_{j,1}z+\cdots+\lambda_{j,n}z^n\right)\\ &= \sum_{j=1}^{n+1} t_j\lambda_{j,0} + \sum_{j=1}^{n+1} t_j\lambda_{j,1} z + \cdots + \sum_{j=1}^{n+1} t_j\lambda_{j,n} z^n\\ \end{aligned} P(z)=j=1n+1tji=jajaizai=j=1n+1tj(λj,0+λj,1z++λj,nzn)=j=1n+1tjλj,0+j=1n+1tjλj,1z++j=1n+1tjλj,nzn

于是各个初等对称多项式的插值公式为:
e k ( x ⃗ ) = ∑ j = 1 n + 1 λ j k P ( a j ) = ∑ j = 1 n + 1 λ j k ∏ i = 1 n ( a j + x i ) ( m o d p ) e_k(\vec x) = \sum_{j=1}^{n+1} \lambda_{jk}P(a_j) = \sum_{j=1}^{n+1} \lambda_{jk} \prod_{i=1}^n(a_j+x_i) \pmod p ek(x )=j=1n+1λjkP(aj)=j=1n+1λjki=1n(aj+xi)(modp)

其中 λ j k , a j \lambda_{jk},a_j λjk,aj 都是 Z p \mathbb Z_p Zp 上常数,这样我们就把 e k ( x ⃗ ) e_k(\vec x) ek(x ) 写成了 ∑ ∏ ∑ \sum\prod\sum ∑∏∑ 形式的算术电路。

进一步根据对称多项式基本定理,任意的对称多项式 f ( x ⃗ ) f(\vec x) f(x ) 都可以写成 f ( x ⃗ ) = g ( e 1 ( x ⃗ ) , ⋯   , e n ( x ⃗ ) ) , ∃ g f(\vec x) = g(e_1(\vec x),\cdots,e_n(\vec x)),\exist g f(x )=g(e1(x ),,en(x )),g 的形式。特别地,任意的多线性对称多项式(即所有单项中各个变元的次数至多为 1 1 1 f ( x ⃗ ) f(\vec x) f(x ) 都可以写成初等对称多项式的线性组合 f ( x ⃗ ) = ∑ k = 0 n l k ⋅ e k ( x ⃗ ) f(\vec x) = \sum_{k=0}^n l_k \cdot e_k(\vec x) f(x )=k=0nlkek(x ),依旧形如 f ( x ⃗ ) = ∑ j = 1 n + 1 λ j ∏ i = 1 n ( a j + x i ) ( m o d p ) f(\vec x) = \sum_{j=1}^{n+1} \lambda_{j} \prod_{i=1}^n(a_j+x_i) \pmod p f(x )=j=1n+1λji=1n(aj+xi)(modp),仅仅是插值系数 λ \lambda λ 有所变化。

对于布尔输入 x ⃗ ∈ { 0 , 1 } n \vec x \in \{0,1\}^n x {0,1}n,由于 x i k = x i x_i^k = x_i xik=xi,因此任意的对称多项式 S ( x ⃗ ) S(\vec x) S(x ) 都可以拍平(flatten)为多线性对称多项式 M ( x ⃗ ) M(\vec x) M(x ),它们在空间 { 0 , 1 } n \{0,1\}^n {0,1}n 上完全匹配。

Ben-Or’s Observation

[GH11] 将 SWHE 的解密函数写成电路形式 D c ( s ) D_c(s) Dc(s),电路依赖于密文 c c c 的 “明文” (并非所它加密的消息),它输入私钥 s s s 的密文,然后根据电路做相应的算术运算。我们将 SWHE 的解密函数写成 “受限” 形式,即先计算一个固定集合 L \mathcal L L 中的多项式,然后将这些多项式结果组合起来得到解密函数。这里的 L \mathcal L L 与密文 c c c 无关,它们在 SWHE 下同态计算(加法)。

受限的算术电路

FHE 嵌合 MHE_第1张图片

目前已知的 SWHE 基本都满足 L j L_j Lj 是线性函数,此时的 degree of C C C 恰好是 degree of polynomial。

多线性对称函数可以用受限算术电路计算

FHE 嵌合 MHE_第2张图片

上述的受限电路 C ( x ⃗ ) C(\vec x) C(x ) 的构造如下:

  1. 给定多线性对称多项式的一些数值 M ( 1 i 0 n − i ) , i = 0 , 1 , ⋯   , n M(1^i0^{n-i}),i=0,1,\cdots,n M(1i0ni),i=0,1,,n

  2. 假设 M ( x ⃗ ) = ∑ i = 0 n l i ⋅ e i ( x ⃗ ) M(\vec x) = \sum_{i=0}^n l_i \cdot e_i(\vec x) M(x )=i=0nliei(x ),我们可以递归地计算出组合系数 l i l_i li

    输入 x ⃗ = 1 k 0 n − k \vec x = 1^k0^{n-k} x =1k0nk 时,必有 e i ( x ⃗ ) = 0 , i > k e_i(\vec x)=0,i>k ei(x )=0,i>k
    M ( 1 k 0 n − k ) = l k + ∑ i = 0 k − 1 l i ⋅ e i ( 1 k 0 n − k ) M(1^k0^{n-k}) = l_k + \sum_{i=0}^{k-1} l_i \cdot e_i(1^k 0^{n-k}) M(1k0nk)=lk+i=0k1liei(1k0nk)

    并且 e i ( 1 k 0 n − k ) = ( k i ) e_i(1^k0^{n-k})={k \choose i} ei(1k0nk)=(ik),变换得到
    l k = M ( 1 k 0 n − k ) − ∑ i = 0 k − 1 l i ⋅ ( k i ) l_k = M(1^k0^{n-k}) - \sum_{i=0}^{k-1} l_i \cdot {k \choose i} lk=M(1k0nk)i=0k1li(ik)

    所以我们先计算 l 0 = M ( 0 n ) l_0=M(0^n) l0=M(0n),然后迭代计算出 l i , i ≥ 1 l_i,i\ge 1 li,i1,于是就得到了 M ( x ⃗ ) = ∑ i = 0 n l i ⋅ e i ( x ⃗ ) M(\vec x) = \sum_{i=0}^n l_i \cdot e_i(\vec x) M(x )=i=0nliei(x ) 的各个组合系数

  3. 利用 P ( z ) = ∏ i = 1 n ( z + x i ) P(z) = \prod_{i=1}^n(z+x_i) P(z)=i=1n(z+xi) 可以插值得到各个 e k ( x ⃗ ) = ∑ j = 1 n + 1 λ j k ∏ i = 1 n ( a j + x i ) ( m o d p ) e_k(\vec x) = \sum_{j=1}^{n+1} \lambda_{jk} \prod_{i=1}^n(a_j+x_i) \pmod p ek(x )=j=1n+1λjki=1n(aj+xi)(modp) 的插值系数,于是我们可以合并系数 λ j k , l i \lambda_{jk},l_i λjk,li,得到组合系数 λ j \lambda_j λj
    M ( x ⃗ ) = ∑ j = 1 n + 1 λ j ∏ i = 1 n ( a j + x i ) ( m o d p ) M(\vec x) = \sum_{j=1}^{n+1} \lambda_{j} \prod_{i=1}^n(a_j+x_i) \pmod p M(x )=j=1n+1λji=1n(aj+xi)(modp)

    这便是 L A = { a j + x i : i ∈ [ n ] , j ∈ [ n + 1 ] } \mathcal L_A = \{a_j+x_i: i\in[n],j\in[n+1]\} LA={aj+xi:i[n],j[n+1]} 下的 n n n 度受限电路

单变元多项式可以转化为多线性对称多项式

FHE 嵌合 MHE_第3张图片

上述的 M f ( b ⃗ ) M_f(\vec b) Mf(b ) 构造如下:

  1. 定义 g : Z p T n → Z p g: \mathbb Z_p^{Tn} \to \mathbb Z_p g:ZpTnZp 为多项式 g ( x ⃗ ) = f ( ∑ i x i ) g(\vec x) = f(\sum_i x_i) g(x )=f(ixi),易知 g g g 是对称多项式,并满足
    f ( ∑ i b i ⋅ t i ) = g ( b 1 t 1 0 T − t 1 , ⋯   , b n t n 0 T − t n ) f(\sum_i b_i\cdot t_i) = g(b_1^{t_1}0^{T-t_1},\cdots,b_n^{t_n}0^{T-t_n}) f(ibiti)=g(b1t10Tt1,,bntn0Ttn)

  2. 因为 b ⃗ \vec b b 是布尔向量,因此 g g g 是布尔输入的对称多项式,可以拍平为多线性对称多项式 M f M_f Mf

  3. A ⊆ Z p A \subseteq \mathbb Z_p AZp 包含 T n + 1 Tn+1 Tn+1 个不同元素,那么可以插值得到 M f M_f Mf 的受限电路,度数为 T n Tn Tn

特别地,令 t i = 2 i − 1 , i = 1 , ⋯   , n t_i = 2^{i-1},i=1,\cdots,n ti=2i1,i=1,,n,那么 ∑ i b i t i \sum_i b_it_i ibiti 可以表出范围 [ 0 , 2 n − 1 ] [0,2^n-1] [0,2n1] 的所有整数,不过此时 T ≥ 2 n − 1 T\ge 2^{n-1} T2n1,为了计算效率我们要求 n n n 是较小的数。

Decryption Using a Restricted Depth-3 Circuit

假如我们将 SWHE 的解密函数写成多线性对称多项式 f ( x ⃗ ) = ∑ j = 1 n + 1 λ j ∏ i = 1 n ( a j + x i ) ( m o d p ) f(\vec x) = \sum_{j=1}^{n+1} \lambda_{j} \prod_{i=1}^n(a_j+x_i) \pmod p f(x )=j=1n+1λji=1n(aj+xi)(modp),那么我们就可以先在 SWHE 下同态计算加法 a j + x i a_j+x_i aj+xi,然后转换到 MHE 下(公钥中 hint 信息)同态计算乘法 λ j ∏ i ( a j + x i ) \lambda_j\prod_i (a_j+x_i) λji(aj+xi),最后回到 SWHE 上(同态解密)同态计算加法 ∑ j λ j ∏ i ( a j + x i ) \sum_j\lambda_j\prod_i (a_j+x_i) jλji(aj+xi)。在这个自举过程中,SWHE 只需要支持 MHE 的解密函数即可,不必支持 SWHE 本身的解密函数。

当然,此时 FHE 的安全性依赖于底层的 SWHE 和 MHE 的安全性。假如 MHE 使用 ElGamal 公钥方案,那么 FHE 的难度就不是基于最坏情况下格上困难问题了,而是基于离散对数问题。或者使用格上的 AHE 取代 MHE,计算 D L g ( a j + x i ) DL_g(a_j+x_i) DLg(aj+xi) 的加和(而非 ( a j + x i ) (a_j+x_i) (aj+xi) 的乘积),并设置较小的 p p p 使得离散对数问题容易求解,这使得 SWHE 和 AHE 同样基于最坏情况下格上困难问题,更加安全。

不同的 SWHE 的解密函数略有不同,不过一般地都需要计算内积和圆整 ⌊ c ⃗ ⋅ S ⌉ ( m o d p ) \lfloor\vec c \cdot S\rceil \pmod p c S(modp)(对于标准 SIS/LWE),其中 c ⃗ ∈ Z p n \vec c \in \mathbb Z_p^n c Zpn 是密文向量, S ∈ Q p n × n S \in \mathbb Q_p^{n \times n} SQpn×n 是私钥矩阵。假设可将私钥分解为 S = ∑ i = 1 N s i T i S = \sum_{i=1}^N s_iT_i S=i=1NsiTi,其中 s i ∈ Z p s_i \in \mathbb Z_p siZp 是秘密的标量,而 T i ∈ Q p n × n T_i \in \mathbb Q_p^{n \times n} TiQpn×n 是公开矩阵(例如 S S S 的二进制分解, s i ∈ { 0 , 1 } s_i \in \{0,1\} si{0,1})。那么,给定密文 c ⃗ \vec c c ,预计算 u ⃗ i = c ⃗ ⋅ T i \vec u_i = \vec c \cdot T_i u i=c Ti,假设 u i = u i ′ . u i ′ ′ u_i=u_i'.u_i'' ui=ui.ui′′ 是有限精度有理数,小数位 u i ′ ′ u_i'' ui′′ 长度为 κ = ⌊ log ⁡ ( N + 1 ) ⌉ \kappa=\lfloor\log(N+1)\rceil κ=log(N+1)⌉ 比特,
⌊ c ⃗ ⋅ S ⌉ = ⌊ ∑ i = 1 N s i ⋅ u ⃗ i ⌉ = ∑ i = 1 N s i ⋅ u ⃗ i ′ + ⌊ 2 − κ ∑ i = 1 N s i ⋅ u ⃗ i ′ ′ ⌉ ( m o d p ) \lfloor\vec c \cdot S\rceil = \left\lfloor \sum_{i=1}^N s_i \cdot \vec u_i \right\rceil = \sum_{i=1}^N s_i \cdot \vec u_i' + \left\lfloor 2^{-\kappa}\sum_{i=1}^N s_i \cdot \vec u_i'' \right\rceil \pmod p c S=i=1Nsiu i=i=1Nsiu i+2κi=1Nsiu i′′(modp)

由于 ∑ i = 1 N s i ⋅ u ⃗ i ′ ′ ≤ N ⋅ ( 2 κ − 1 ) ≤ 2 N 2 \sum_{i=1}^N s_i \cdot \vec u_i'' \le N \cdot (2^\kappa-1) \le 2N^2 i=1Nsiu i′′N(2κ1)2N2,因此只要 p > 2 N 2 p>2N^2 p>2N2,我们可以使用插值算法得到至多 2 N 2 2N^2 2N2 度的单变元多项式 f ( x ) f(x) f(x),使得它计算小数部分的取整运算
f ( ∑ i = 1 N s i ⋅ u ⃗ i ′ ′ ) = ⌊ 2 − κ ∑ i = 1 N s i ⋅ u ⃗ i ′ ′ ⌉ ( m o d p ) f(\sum_{i=1}^N s_i \cdot \vec u_i'') = \left\lfloor 2^{-\kappa}\sum_{i=1}^N s_i \cdot \vec u_i'' \right\rceil \pmod p f(i=1Nsiu i′′)=2κi=1Nsiu i′′(modp)

进而可将 f ( ∑ i s i u ⃗ i ′ ′ ) f(\sum_i s_i\vec u_i'') f(isiu i′′) 写成某个多线性对称多项式 M f ( b ⃗ ) M_f(\vec b) Mf(b )(被 u i ′ ′ u_i'' ui′′ 或者说 c c c 指定),它可以用 L A \mathcal L_A LA 受限电路来计算,度数至多为 2 N 2 2N^2 2N2。为了把整数部分 ∑ i = 1 N s i ⋅ u ⃗ i ′ \sum_{i=1}^N s_i \cdot \vec u_i' i=1Nsiu i 也写成 L A \mathcal L_A LA 受限电路的形式,可以拆解为
∑ i = 1 N s i ⋅ u ⃗ i ′ = − a 1 ∑ i u ⃗ i ′ + ∑ i = 1 N ( a 1 + s i ) ⋅ u ⃗ i ′ \sum_{i=1}^N s_i \cdot \vec u_i' = -a_1\sum_i \vec u_i' + \sum_{i=1}^N (a_1+s_i) \cdot \vec u_i' i=1Nsiu i=a1iu i+i=1N(a1+si)u i

其中 − a 1 ∑ i u ⃗ i ′ -a_1\sum_i \vec u_i' a1iu i u ⃗ i ′ \vec u_i' u i 都是常数。因此 ⌊ c ⃗ ⋅ S ⌉ ( m o d p ) \lfloor\vec c \cdot S\rceil \pmod p c S(modp) 可以完全写成 L A \mathcal L_A LA 受限电路的形式,包括 ∑ ∏ ∑ \sum \prod \sum ∑∏∑ 三层运算。

Chimeric Leveled FHE

Compatible SWHE and MHE Schemes

SWHE 和 MHE 都有一定的计算范围,称为它们的 Homomorphic Capacity。SWHE 由于噪声累积,只能计算一些低度数的多项式;MHE 由于代数结构限制,只能计算限定数域上的乘法。

为了在 SWHE 的自举中嵌入 MHE,必须设置合适的参数,使得两者的 Homomorphic Capacity 相匹配,称为 chimerically compatible,定义如下:

FHE 嵌合 MHE_第4张图片

The Construction

给定两个兼容的 SWHE 和 MHE,可以构造出如下的 level FHE:

FHE 嵌合 MHE_第5张图片

FHE 嵌合 MHE_第6张图片
FHE 嵌合 MHE_第7张图片

对于 pure FHE,只需假设循环安全,并略微修改 K e y G e n KeyGen KeyGen 步骤中的 p k pk pk 即可。只要底层的 SWHE 和 MHE 都是语义安全的,那么上述的 FHE 也是语义安全的。

Optimizations

ElGamal Decrypt

如果 MHE 使用 ElGamal 算法,选取安全素数 p = 2 q + 1 p=2q+1 p=2q+1,在 Q R ( p ) QR(p) QR(p) 中 DDH 是困难的。密文形如 ( y , z ) = ( g r , m ⋅ g − e r ) (y,z)=(g^r,m\cdot g^{-er}) (y,z)=(gr,mger),其中 e ∈ Z q e \in \mathbb Z_q eZq 是私钥, g − e ∈ Q R ( p ) g^{-e} \in QR(p) geQR(p) 是公钥,注意明文空间 m ∈ Q R ( p ) m \in QR(p) mQR(p)。解密算法为 m = y e z m=y^ez m=yez,如果直接用 SWHE 加密指数 e e e,那么同态 MHE 解密并不容易。我们做二进制分解 e = ∑ i e i 2 i e=\sum_i e_i2^i e=iei2i,然后条件分支语句代数化
y e i 2 i = e i y 2 i + ( 1 − e i ) y 0 = e i ( y 2 i − 1 ) + 1 y^{e_i2^i} = e_iy^{2^i} + (1-e_i)y^0 = e_i(y^{2^i}-1)+1 yei2i=eiy2i+(1ei)y0=ei(y2i1)+1

这就把模幂运算转化为了数乘运算,最后把这些数乘结果 y e i 2 i y^{e_i2^i} yei2i 做连乘积得到 y e y^e ye。我们用 SWHE 加密各个布尔值 e i ∈ { 0 , 1 } e_i \in \{0,1\} ei{0,1},同态 MHE 解密时只需 ⌈ log ⁡ ( q + 1 ) ⌉ \lceil\log(q+1)\rceil log(q+1)⌉ 的乘法深度(与 SWHE 的解密电路深度无关)。

Only One Product

SWHE 的解密函数主要是计算 ⌊ c ⃗ ⋅ S ⌉ ( m o d p ) \lfloor\vec c \cdot S\rceil \pmod p c S(modp) 的小数部分取整函数 f ( ∑ i = 1 N s i ⋅ u ⃗ i ′ ′ ) f(\sum_{i=1}^N s_i \cdot \vec u_i'') f(i=1Nsiu i′′),其中 u i ′ ′ ≤ 2 N u_i'' \le 2N ui′′2N,因此可转化为多线性对称多项式 M f M_f Mf
f ( ∑ i = 1 N s i ⋅ u ⃗ i ′ ′ ) = M f ( ⋯   , s i u i ′ ′ 0 2 N − u i ′ ′ , ⋯   ) = ∑ j = 1 2 N 2 + 1 λ j ∏ i = 1 N ( a j + s i ) u i ′ ′ a j 2 N − u i ′ ′ = ∑ j = 1 2 N 2 + 1 λ j P ( a j ) \begin{aligned} f(\sum_{i=1}^N s_i \cdot \vec u_i'') &= M_f(\cdots,s_i^{u_i''}0^{2N-u_i''},\cdots)\\ &= \sum_{j=1}^{2N^2+1} \lambda_j \prod_{i=1}^{N} (a_j+s_i)^{u_i''}a_j^{2N-u_i''}\\ &= \sum_{j=1}^{2N^2+1} \lambda_j P(a_j)\\ \end{aligned} f(i=1Nsiu i′′)=Mf(,siui′′02Nui′′,)=j=12N2+1λji=1N(aj+si)ui′′aj2Nui′′=j=12N2+1λjP(aj)

v = ∑ s i = 1 u i ′ ′ v=\sum_{s_i=1} u_i'' v=si=1ui′′,那么 P ( a j ) = ( a j + 1 ) v a j 2 N 2 − v P(a_j) = (a_j+1)^va_j^{2N^2-v} P(aj)=(aj+1)vaj2N2v,只需知道一对 ( a j , P ( a j ) ) (a_j,P(a_j)) (aj,P(aj)) 的值就可以确定 v v v 的值,这说明 P ( a j ) , j = 1 , ⋯   , 2 N 2 + 1 P(a_j),j=1,\cdots,2N^2+1 P(aj),j=1,,2N2+1高度冗余的。

可以随机选择 a 1 , a 1 + 1 ∈ Q R ( p ) a_1,a_1+1 \in QR(p) a1,a1+1QR(p)(占比为 ( p − 3 ) / 4 (p-3)/4 (p3)/4),然后随机选择 e j ∈ Z q e_j \in \mathbb Z_q ejZq,计算出
w j = ( ( a 1 + 1 ) e j − a 1 e j ) − 1 w_j = ((a_1+1)^{e_j}-a_1^{e_j})^{-1} wj=((a1+1)eja1ej)1

那么可以验证:
a j = w j ⋅ a 1 e j ,    a j + 1 = w j ⋅ ( a 1 + 1 ) e j a_j=w_j\cdot a_1^{e_j},\,\, a_j+1=w_j\cdot (a_1+1)^{e_j} aj=wja1ej,aj+1=wj(a1+1)ej

满足 a j , a j + 1 ∈ Q R ( p ) a_j,a_j+1 \in QR(p) aj,aj+1QR(p) 的概率约为 1 / 2 1/2 1/2。易知,它们满足:
P ( a j ) = ( a j + 1 ) v a j 2 N 2 − v = w j 2 N 2 ⋅ P ( a 1 ) e j P(a_j) = (a_j+1)^va_j^{2N^2-v} = w_j^{2N^2}\cdot P(a_1)^{e_j} P(aj)=(aj+1)vaj2N2v=wj2N2P(a1)ej

我们存储 ( a j , w j , e j ) (a_j,w_j,e_j) (aj,wj,ej) 作为数组 A A A,于是我们只需在 MHE 下同态乘法计算出 P ( a 1 ) P(a_1) P(a1),然后再进行少量乘法和数乘即可计算出 P ( a j ) P(a_j) P(aj)

另外,这个技术也可以用于 FHE 密文压缩,我们仅存储加密了 P ( a 1 ) P(a_1) P(a1)单个 ElGamal 密文(需要先把解密函数处理成 “纯的” 多线性对称多项式)。

你可能感兴趣的:(#,全同态加密,概率论,算法,密码学,线性代数)