FHE 嵌合 MHE

news2024/11/27 11:38:35

参考文献:

  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 下同态计算(加法)。

受限的算术电路

在这里插入图片描述

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

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

在这里插入图片描述

上述的受限电路 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 度受限电路

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

在这里插入图片描述

上述的 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,定义如下:

在这里插入图片描述

The Construction

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

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

对于 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 密文(需要先把解密函数处理成 “纯的” 多线性对称多项式)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/976552.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于32位单片机的感应灯解决方案

感应灯是一种常见照明灯,提起感应灯,相信大家并不陌生, 它在一些公共场所、卫生间或者走廊等场所,使用的较为广泛,同时它使用起来也较为方便省电。“人来灯亮,人走灯灭”的特性,使他们在部分场景…

利用Python和pandas分析瑞幸和茅台联名咖啡的市场策略

金融数据分析在投资决策和市场制定策略中发挥了至关重要的作用,而品牌价值分析是市场营销中的一个环节,它可以帮助企业了解其品牌在市场中的地位和价值,刚好最近瑞幸和茅台联名咖啡是近期备受关注的合作咖啡项目,其联名咖啡产品在…

安防监控/视频存储/视频汇聚平台EasyCVR如何接入智能分析网关V4?

TSINGSEE青犀AI边缘计算网关硬件 —— 智能分析网关目前有5个版本:V1、V2、V3、V4、V5,每个版本都能实现对监控视频的智能识别和分析,支持抓拍、记录、告警等,每个版本在算法模型及性能配置上略有不同。硬件可实现的AI检测包括&am…

c++中的对齐问题

c中的对齐问题 需要对齐的原因 尽管内存是以字节为单位,但是大部分处理器并不是按字节块来存取内存的.它一般会以双字节,四字节,8字节,16字节甚至32字节为单位来存取内存,我们将上述这些存取单位称为内存存取粒度. 现在考虑4字节存取粒度的处理器取in…

java八股文面试[JVM]——引用计数、可达性分析

要想进行垃圾回收,得先知道什么样的对象是垃圾。 引用计数法 对于某个对象而言,只要应用程序中持有该对象的引用,就说明该对象不是垃圾,如果一个对象没有任何指针对其引用,它就是垃圾。 引用计数法在对象头处维护一…

论坛系统公共组件部分

1.在Java⽬录下创建包,在Resources⽬录下创建⽂件夹,结构如下 ├─java # java⽂件区 │ └─com │ └─example │ └─demo │ ├─common # 公共类 │ ├─config # 配置…

DBeaver新建Elasticsearch连接报错Error downloading driver libraries解决方案

1.软件版本背景 DBeaver Ultimate 22.1.0 elasticsearch 7.10 可能因DBeaver的版本不同,导致页面略有差异,请自行脑补! 2.新建数据库(Elasticsearch)连接 点击新建数据库连接按钮 选择Elasticsearch 填写相关配置…

javaScript:节点操作

目录 前言 常用的节点操作 innerHTML 的两个弊端(补充) createElement(标签名)使用dom方法创建一个元素 父元素.appendChild(子元素) 添加到父元素 注意 指定插入 父元素.insertBefore(要添加的元素,父元素中的指定子元素) 注意&…

Android Studio 汉化

一、汉化: 查看版本号,查看Android Studio版本,根据版本下载对应的汉化包。例如我的是223。 下载汉化包: 中文语言包下载地址 找到对应的版本 回到Android Studio 1、进入设置 2、从磁盘安装插件 3、选择下载好的包点击OK 4、…

kibana设置ILM

kibana设置ILM 1. 背景 kibana version: v7.9.3 2. 设置ILM 2.1 创建索引生命周期策略 2.1.1 热阶段 首先需要先创建索引生命周期策略,在索引模板中可以引用创建好的索引生命周期策略。 策略名称: 引用该策略是需要用,例如设置为&#…

【LeetCode75】第四十七题 迷宫中离入口最近的出口

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们一个数组形式的地图,让我们找出离入口最近的出口,出口就是地图的边界。 那么这道题可以使用DFS也可以…

Vue+elementUI 导出word打印

import JSZipUtils from "jszip-utils"; import JSZip from "pizzip"; import Docxtemplater from "docxtemplater"; npm安装以上依赖 首先维护个word模板 导出方法 //导出wordskipOutWord(row) {var printData rowconst data JSON.parse(JS…

作品集(陆续上传中)

智能家居---不断完善中 家居-CSDN直播 家居 语音刷抖音 --- 基于串口和adb 基于守护进程的语音刷抖音-CSDN直播 基于守护进程的语音刷抖音 海天一色项目 --- 船舶靠港零碳排加热器 FTP云盘 --- 多进程和socket FTP云盘-CSDN直播 FTP云盘

JS 删除数组中的第一项和最后一项

JS 删除数组中的第一项和最后一项 需求分析 需求 JS 删除数组中的第一项和最后一项 分析 删除数组第一个元素 array.shift() /* 1. shift() 方法用于把数组的第一个元素从其中删除。 2. 返回值: 被删除的元素(即数组原来的第一个元素的值)。…

Unity——LitJSON的安装

一、LitJSON介绍 特点 LitJSON是一个轻量级的C# JSON库,用于在Unity游戏开发中进行JSON数据的序列化和反序列化操作。它提供了简单而高效的接口,帮助开发者处理JSON数据。 以下是LitJSON库的一些主要特点和功能: 1. 高性能:Lit…

死锁是什么?死锁的字节码指令了解?

用幽默浅显的言语来说死锁 半生:我已经拿到了机考的第一名,就差笔试第一名了 小一:我已经拿到了笔试的第一名,就差机考第一名了 面试官:我很看好你俩,继续"干", 同时拿到2个的第一名才能拿到offe…

华为云云服务器评测|基于云服务器的minio部署手册

华为云云服务器评测|基于云服务器的minio部署手册 【软件安装版本】【集群安装(是)(否)】 版本 创建人 修改人 创建时间 备注 1.0 jz jz 2023.9.2 minio华为云耀服务器 一. 部署规划与架构 1. 规…

降低LLM的幻觉风险:实用策略与技术

一、前言 近年来,大语言模型的快速发展为构建更智能和更人性化的AI系统提供了很多可能性。像GPT-3.5、GPT-4、Bard、Claude 2和LLaMa 2等大语言模型 (LLM) 在个人助理或聊天机器人应用领域展示了强大的潜力,可以生成流畅而令人惊叹的响应来回答用户的问…

新学期第一篇博客

文章目录 一、加入QQ群(一)QQ群号(二)加群要求 二、加入云班课三、使用思维导图(一)下载XMind软件(二)安装XMind软件(三)创建思维导图1、选择模板&#xff08…

【C++】拷贝对象时,编译器的偷偷优化

你知道吗?对于连续的”构造拷贝构造“,编译器其实是会默默做出优化的。👻 如果你不知道这个知识点的话,那下面这道笔试题就要失分了😵。 本篇分享一个关于编译器优化的小知识,看完本篇,你就能…