Amortized bootstrapping via Automorphisms

2024-06-11 17:52

本文主要是介绍Amortized bootstrapping via Automorphisms,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考文献:

  1. [MS18] Micciancio D, Sorrell J. Ring packing and amortized FHEW bootstrapping. ICALP 2018: 100:1-100:14.
  2. [GPV23] Guimarães A, Pereira H V L, Van Leeuwen B. Amortized bootstrapping revisited: Simpler, asymptotically-faster, implemented. ASIACRYPT 2023 (6): 3-35.
  3. [DKM+24] De Micheli G, Kim D, Micciancio D, et al. Faster amortized FHEW bootstrapping using ring automorphisms. Public Key Cryptography 2024 (4): 322-353.
  4. Amortized FHEW bootstrapping:Nussbaumer Transform & Ring Packing

文章目录

  • RNS-GSW
  • Shrinking
  • Amortized Bootstrapping
    • RLWE‘ to RGSW
    • Prime Cyclotomic Rings
    • Decryption
    • INTT
    • msbExtract
    • Counting

[GPV23] 和 [DKM+24] 都遵照 [MS18] 的思路:

  1. packing:将 n n n 个 LWE 密文打包成单个 RLWE 密文,系数编码,形如 ( b , a ) ∈ R q , n 2 (b,a) \in R_{q,n}^2 (b,a)Rq,n2,私钥 s ∈ R n s \in R_{n} sRn
  2. decryption:把 s i s_i si 加密在 RGSW 密文中作为自举密钥,将多项式 a , b a,b a,b 的 DFT-form 加密在 RGSW 密文的指数上( q q q 阶乘法循环群),利用 RGSW 同态乘法(指数上的加法)计算常数 N T T ( a ) NTT(a) NTT(a) 和密文 N T T ( s ) NTT(s) NTT(s) 的 Hadamard-product,然后做同态 IDFT 获得 a ⋅ s + b a \cdot s+b as+b 各个系数的 RGSW 密文。
  3. msbExtract:最后把各个系数的 MSB 从 RGSW 密文中提出成为 LWE 密文。

[MS18] 使用二的幂次分圆环对应的 RGSW 密文(模数 q = 2 N q = 2N q=2N),将它搭建成支持模 q q q 加法的寄存器。使用数字分解和枚举技术,使得这个寄存器也支持模 q q q 数乘。为了快速计算 IDFT,[MS18] 使用 Nussbaumer Transform R q , n ≅ R q , n / m [ X ] / ( X m − Y ) → R q , n / m [ X ] / ( X k m − 1 ) R_{q,n} \cong R_{q,n/m}[X]/(X^m-Y) \to R_{q,n/m}[X]/(X^{km}-1) Rq,nRq,n/m[X]/(XmY)Rq,n/m[X]/(Xkm1),其中 n ≥ k m 2 n \ge km^2 nkm2 并且 n , m , k n,m,k n,m,k 都是同一个素数的幂次,这就构造出了合适的 k m km km 次本原单位根 Y = X m ∈ R q , n / m Y=X^m \in R_{q,n/m} Y=XmRq,n/m,并且和 Y Y Y 的数乘就只是在 R q , n / m R_{q,n/m} Rq,n/m 环元素的系数旋转(重排 RGSW 寄存器)。

[MS18] 的均摊开销是 O ~ ( n ϵ ) \tilde O(n^\epsilon) O~(nϵ),然而隐藏常数 O ( 2 1 / ϵ ) O(2^{1/\epsilon}) O(21/ϵ) 过大,导致并不实用。[GPV23] 和 [DKM+24] 都使用 Galois 自同构来实现数乘,并且直接用 Incomplete NTT 而非 Nussbaumer Transform。区别在于:[GPV23] 使用了素数次卷积环的 RGSW 寄存器,[DKM+24] 使用了素数次分圆环的 RLWE 寄存器,后者的计算效率会高一些。

RNS-GSW

由于均摊 FHEW/TFHE 自举的噪声比盲旋转大得多,这导致寄存器的密文模数可能会超过机器字。[GPV23] 提出了 GSW 的 Double-CRT 变体,以提高计算效率。

[GPV23] 使用卷积环 R ~ : = Z [ X ] / ( X p − 1 ) \tilde R := \mathbb Z[X]/(X^p-1) R~:=Z[X]/(Xp1),其中 p p p 是素数,称为 CLWE 问题。有文章指出它和素数次分圆环的 RLWE 一样难。对于 R : = Z [ X ] / ( Φ p ( X ) ) R := \mathbb Z[X]/(\Phi_p(X)) R:=Z[X]/(Φp(X)),其中 Φ p ( X ) = 1 + X + X 2 + ⋯ + X p − 1 \Phi_p(X) = 1+X+X^2+\cdots+X^{p-1} Φp(X)=1+X+X2++Xp1,定义投影函数 L : R → R ~ L: R \to \tilde R L:RR~(疑问:系数 a p − 1 a_{p-1} ap1 不该存在吧):
L Q : ∑ i = 0 p − 1 a i X i → ∑ i = 0 p − 1 a i X i − ( [ p − 1 ] Q ⋅ ∑ i = 0 p − 1 a i ) ⋅ ∑ i = 0 p − 1 X i ( m o d Q ) L_Q: \sum_{i=0}^{p-1} a_i X^i \to \sum_{i=0}^{p-1} a_i X^i - \left([p^{-1}]_Q \cdot \sum_{i=0}^{p-1} a_i\right) \cdot \sum_{i=0}^{p-1} X^i \pmod{Q} LQ:i=0p1aiXii=0p1aiXi([p1]Qi=0p1ai)i=0p1Xi(modQ)
给定 RLWE 样本 ( a ′ , b ′ ) ∈ R Q 2 (a',b') \in R_Q^2 (a,b)RQ2,将它转换为 CLWE 样本 ( a : = L Q ( a ′ ) , b : = L Q ( ( 1 − X ) ⋅ b ′ ) ) ∈ R ~ Q 2 (a:=L_Q(a'), b:=L_Q((1-X)\cdot b')) \in \tilde R_Q^2 (a:=LQ(a),b:=LQ((1X)b))R~Q2

素数次卷积环的 RNS-GSW 如下,

在这里插入图片描述

在 RLWE 假设下,对于形如 X k X^k Xk 的消息是 CPA-IND 安全的。

Shrinking

对于 Digit 分解,Approximate Gadget Decomposition 可以减少分解数量,并且基本不增加噪声。但是对于 RNS 分解,由于不存在确切的 LSD,因此并不兼容。[GPV23] 提出了 Shrinking 技术,用于 RNS 的近似分解。

模数 Q = ∏ i = 1 l q i Q = \prod_{i=1}^l q_i Q=i=1lqi,令 d ∣ l d \mid l dl 是整数,定义 CRT Digit D i = ∏ j = ( i − 1 ) k + 1 i k q j , 1 ≤ i ≤ d D_i = \prod_{j=(i-1)k + 1}^{ik}q_j, 1 \le i \le d Di=j=(i1)k+1ikqj,1id(就是分区 d d d 块),令 D = max ⁡ { D i } D = \max\{D_i\} D=max{Di} 是上界。定义 Q i = Q / D i Q_i = Q/D_i Qi=Q/Di Q ^ i = [ Q i − 1 ] D i \hat Q_i = [Q_i^{-1}]_{D_i} Q^i=[Qi1]Di,那么令 g = ( Q 1 Q ^ 1 , ⋯ , Q d Q ^ d ) ∈ Z d g = (Q_1\hat Q_1, \cdots, Q_d\hat Q_d) \in \mathbb Z^d g=(Q1Q^1,,QdQ^d)Zd 是 gadget vector,对应的分解 g − 1 ( a ) g^{-1}(a) g1(a) 就是 { [ a ] D i } 1 ≤ i ≤ d \{[a]_{D_i}\}_{1\le i \le d} {[a]Di}1id,满足 ⟨ g − 1 ( a ) , g ⟩ = a \langle g^{-1}(a), g\rangle = a g1(a),g=a

给定缩放因子 α ∈ Z Q \alpha \in \mathbb Z_Q αZQ,对应的 RNS 表示是 α i = [ α ] D i \alpha_i = [\alpha]_{D_i} αi=[α]Di,然后定义 g α = ( Q 1 Q ^ 1 α 1 , ⋯ , Q d Q ^ d α d ) g_\alpha = (Q_1\hat Q_1\alpha_1, \cdots, Q_d\hat Q_d\alpha_d) gα=(Q1Q^1α1,,QdQ^dαd),将它称为 scaled gadget vector。对于任意的 a ∈ R Q a \in R_Q aRQ,容易证明它满足 ⟨ g − 1 ( α − 1 a ) , g α ⟩ = a \langle g^{-1}(\alpha^{-1}a), g_\alpha\rangle = a g1(α1a),gα=a

Shrinking 就是删除一部分 CRT Digit,做模切换,并相应的调整缩放因子

  1. 给定 scaled gadget 分解 a i = [ a ] D i , 1 ≤ i ≤ d a_i=[a]_{D_i}, 1 \le i \le d ai=[a]Di,1id,它的缩放因子是 α \alpha α
  2. 给定 1 ≤ k < d 1 \le k < d 1k<d,定义 D ( k ) = ∏ i = 1 k D i D^{(k)} = \prod_{i=1}^k D_i D(k)=i=1kDi Q ′ = Q / D ( k ) Q' = Q/D^{(k)} Q=Q/D(k)
  3. 对于 k + 1 ≤ i ≤ d k+1 \le i \le d k+1id,计算 a i − k ′ = a i ⋅ [ D ( k ) ] D i a_{i-k}' = a_i \cdot [D^{(k)}]_{D_i} aik=ai[D(k)]Di
  4. 输出 a j ′ , 1 ≤ j ≤ d − k a_j', 1\le j\le d-k aj,1jdk,它的缩放因子是 α ′ = α ⋅ [ ( D ( k ) ) − 1 ] Q ′ \alpha' = \alpha \cdot [(D^{(k)})^{-1}]_{Q'} α=α[(D(k))1]Q

如果 RNS-GSW 密文加密了 α ⋅ m \alpha \cdot m αm,噪声 E E E,私钥分布是 S S S 亚高斯。那么执行 Shrinking 之后,加密 α ′ ⋅ m \alpha' \cdot m αm,噪声 O ( E / D ( k ) + p ⋅ S ) O(E/D^{(k)}+\sqrt p \cdot S) O(E/D(k)+p S),其中 p p p 是 CLWE 中的素数次。

Amortized Bootstrapping

由于 [GPV23] 和 [DKM+24] 的整体思路是相同的,仅仅是使用的寄存器不同。现在只看看 [DKM+24] 是怎么工作的。

RLWE‘ to RGSW

[DKM+24] 使用 RLWE’ 寄存器,但是在计算同态乘法时需要 RGSW 密文。因此,需要把 RLWE’ 提升到 RGSW

使用 R L W E s k ′ ( s k 2 ) RLWE'_{sk}(sk^2) RLWEsk(sk2) 作为提示(称为 evaluation key),那么给定 ( b , a ) = R L W E s k ( v i m ) (b,a) = RLWE_{sk}(v_i m) (b,a)=RLWEsk(vim),可以计算
( 0 , b ) + a ⊙ R L W E s k ′ ( s k 2 ) = R L W E s k ( v i m ⋅ s k + e ⋅ s k ) (0,b) + a \odot RLWE_{sk}'(sk^2) = RLWE_{sk}(v_i m \cdot sk + e \cdot sk) (0,b)+aRLWEsk(sk2)=RLWEsk(vimsk+esk)
把它们重排为 RGSW 密文即可。

Prime Cyclotomic Rings

[DKM+24] 使用 R r e g = Z Q [ X ] / ( Φ q ( X ) ) R_{reg} = \mathbb Z_Q[X]/(\Phi_q(X)) Rreg=ZQ[X]/(Φq(X)) 作为寄存器的空间,其中 q q q 是素数。对于整数 m ∈ Z q m \in \mathbb Z_q mZq,将它编码为 X m ∈ R r e g X^m \in R_{reg} XmRreg 加密为 RLWE’ 或者 RGSW 密文。

需要重新考虑这种 RGSW 密文上外积的噪声增长情况,

在这里插入图片描述

对于二的幂次分圆环,噪声为 σ ⊙ 2 = B 2 d B N σ i n p u t 2 / 12 \sigma^2_\odot = B^2d_BN\sigma_{input}^2/12 σ2=B2dBNσinput2/12,因此素数次分圆环上的噪声仅增长了 2 2 2 因子,可以接受。

Decryption

[DKM+24] 使用 [MS18] 的框架,主要的区别就是在同态解密步骤使用了素数次分圆环,利用 Galois 自同构实现数乘,利用 Incomplete NTT 实现 IDFT。

d d d 是二的幂次,定义 R i n = Z q [ X ] / ( Φ d ( X ) ) R_{in} = \mathbb Z_q[X]/(\Phi_d(X)) Rin=Zq[X]/(Φd(X)),作为打包密文的空间。给定 ϕ ( d ) \phi(d) ϕ(d) 个 LWE 密文,使用 Ring Packing(就是 column method Pub-KS)将它们转化为系数打包的 RLWE 密文 ( b , a ) ∈ R i n 2 (b,a) \in R_{in}^2 (b,a)Rin2,私钥是 z ∈ R i n z \in R_{in} zRin

在这里插入图片描述

对于卷积环,将它的 FFT/NTT 称为 standard/cyclic FFT。对于分圆环,将它的 FFT/NTT 称为 primitive/cyclotomic FFT

  • 对于寄存器本身,基本运算是在 R r e g R_{reg} Rreg 上执行的,需要把 Z Q [ X ] / ( 1 + X + X 2 + ⋯ + X q − 1 ) \mathbb Z_Q[X]/(1+X+X^2+\cdots+X^{q-1}) ZQ[X]/(1+X+X2++Xq1) 做 primitive FFT,不过我们直接将寄存器视为一个黑盒,可以不关心这个的实现。
  • 对于打包密文,基本运算是在 R i n R_{in} Rin 上执行的,需要对反卷积环 Z q [ X ] / ( X ϕ ( d ) + 1 ) \mathbb Z_q[X]/(X^{\phi(d)}+1) Zq[X]/(Xϕ(d)+1) 做 primitive FFT,可以先执行相同长度的 cyclic FFT,然后乘以一些 twist factor 即可。这些运算是利用大量的寄存器完成的。

为了快速计算 b + a ⋅ z ∈ R i n b + a \cdot z \in R_{in} b+azRin,[DKM+24] 采用了 partial primitive FFT(PFT),因为噪声增长是和递归分解的深度呈指数的,只能做常数深度的分解。分解是:
Z q [ X ] / ( X ϕ ( d ) + 1 ) ≅ ∏ i = 0 ϕ ( d ) / k − 1 Z q [ X ] / ( X k − ζ i ) \mathbb Z_q[X]/(X^{\phi(d)}+1) \cong \prod_{i=0}^{\phi(d)/k-1} \mathbb Z_q[X]/(X^k - \zeta_i) Zq[X]/(Xϕ(d)+1)i=0ϕ(d)/k1Zq[X]/(Xkζi)
其中 ζ i \zeta_i ζi 是所有的 d / k d/k d/k 次本原单位根。由于 DFT 和 IDFT 的表达式之间有个缩放因子,自举过程中 DFT 是明文下的,IDFT 是密文下的。为了减少同态开销,[DKM+24] 将这个缩放因子从 IDFT 移动到了 DFT。于是,给定环元素 a ∈ R i n a \in R_{in} aRin,执行 PFT 获得:
a ~ i = [ ( ϕ ( d ) / k ) − 1 ] q ⋅ a ( m o d X k − ζ i ) \tilde a_i = [(\phi(d)/k)^{-1}]_q \cdot a \pmod{X^k-\zeta_i} a~i=[(ϕ(d)/k)1]qa(modXkζi)
对于私钥 z ∈ R i n z \in R_{in} zRin,也将它做 PFT 获得 ϕ ( d ) / k \phi(d)/k ϕ(d)/k 个多项式 { z ~ i } \{\tilde z_i\} {z~i},将它们的系数 z ~ i ( j ) ∈ Z q \tilde z_i^{(j)} \in \mathbb Z_q z~i(j)Zq 加密为:
R G S W ( X z ~ i ( j ) ) , 0 ≤ i < ϕ ( d ) / k , 0 ≤ j < k RGSW(X^{\tilde z_i^{(j)}}), 0 \le i < \phi(d)/k, 0\le j< k RGSW(Xz~i(j)),0i<ϕ(d)/k,0j<k
对于某个小环 Z q [ X ] / ( X k − ζ i ) \mathbb Z_q[X]/(X^k - \zeta_i) Zq[X]/(Xkζi),按照 Schoolbook 方式计算 v = a ~ i ⋅ z ~ i v = \tilde a_i \cdot \tilde z_i v=a~iz~i
v j = ∑ l = 0 j z ~ i ( l ) a ~ i ( j − l ) + ζ i ⋅ ∑ l = j + 1 l − 1 z ~ i ( l ) a ~ i ( k + j − l ) \begin{aligned} v_j = \sum_{l=0}^j\tilde z_i^{(l)}\tilde a_i^{(j-l)} + \zeta_i\cdot\sum_{l=j+1}^{l-1}\tilde z_i^{(l)}\tilde a_i^{(k+j-l)} \end{aligned} vj=l=0jz~i(l)a~i(jl)+ζil=j+1l1z~i(l)a~i(k+jl)
由于 a ~ i \tilde a_i a~i 是明文,因此可以把 v j v_j vj 视为密文向量 z ⃗ = ( z ~ i ( 0 ) , ⋯ , z ~ i ( k − 1 ) ) \vec z = (\tilde z_i^{(0)}, \cdots, \tilde z_i^{(k-1)}) z =(z~i(0),,z~i(k1)) 和明文向量 c ⃗ = ( a ~ i ( j ) , a ~ i ( j − 1 ) , ⋯ , a ~ i ( 0 ) , ζ i a ~ i ( k − 1 ) , ζ i a ~ i ( k − 2 ) , ⋯ , ζ i a ~ i ( j + 1 ) ) \vec c = (\tilde a_i^{(j)}, \tilde a_i^{(j-1)},\cdots, \tilde a_i^{(0)}, \zeta_i\tilde a_i^{(k-1)}, \zeta_i\tilde a_i^{(k-2)}, \cdots, \zeta_i\tilde a_i^{(j+1)}) c =(a~i(j),a~i(j1),,a~i(0),ζia~i(k1),ζia~i(k2),,ζia~i(j+1)) 的内积。毕竟密文上的数乘是相对明文数乘更贵的。[DKM+24] 使用 RLWE’ 寄存器(编码在指数上,线性同态),同态数乘使用 Galois 自同构(输入输出都是 RLWE’ 密文),同态加法使用 RGSW 外积(输入 RGSW 和 RLWE’ 密文,输出 RLWE’ 密文)。为了减少 RLWE’ to RGSW 转换,可以使用如下的方式计算 z ⃗ , c ⃗ \vec z, \vec c z ,c 的内积(假设 c i ∈ Z q c_i \in \mathbb Z_q ciZq 全都非零、可逆,如果是零则简单删除):
v j = ( ( ⋯ ( z 0 c 0 c 1 − 1 + z 1 ) c 1 c 2 − 1 + ⋯ ) z k − 2 z k − 1 − 1 + z k − 1 ) c k − 1 v_j = ((\cdots(z_0c_0c_1^{-1} + z_1)c_1c_2^{-1} +\cdots)z_{k-2}z_{k-1}^{-1} + z_{k-1})c_{k-1} vj=(((z0c0c11+z1)c1c21+)zk2zk11+zk1)ck1
这样整个过程都只需要 RLWE’ 寄存器,并不需要转换到 RGSW 密文。

算法是:

在这里插入图片描述

现在,我们计算出了 v ~ i = a ~ i ⋅ z ~ i ∈ Z q [ X ] / ( X k − ζ i ) \tilde v_i = \tilde a_i \cdot \tilde z_i \in \mathbb Z_q[X]/(X^k-\zeta_i) v~i=a~iz~iZq[X]/(Xkζi),它的系数加密在 k k k 个 RLWE’ 寄存器内。重复 ϕ ( d ) / k \phi(d)/k ϕ(d)/k 次,计算出所有的 { v ~ i } \{\tilde v_i\} {v~i},接下来需要执行 Homomorphic IPFT 恢复出 v = a ⋅ s v=a \cdot s v=as 的各个系数。

INTT

这个过程的思想很简单,就是直接用 RLWE’ 寄存器的线性同态,执行 Inverse PFT 即可。

根据环同构:
Z q [ X ] / ( X ϕ ( d ) + 1 ) ≅ ( Z q [ Y ] / ( Y ϕ ( d ) / k + 1 ) ) [ X ] / ( X k − Y ) ≅ Z q ϕ ( d ) / k [ X ] / ( X k − Y ) \begin{aligned} \mathbb Z_q[X]/(X^{\phi(d)}+1) &\cong (\mathbb Z_q[Y]/(Y^{\phi(d)/k}+1))[X]/(X^k-Y)\\ &\cong \mathbb Z_q^{\phi(d)/k}[X]/(X^k-Y) \end{aligned} Zq[X]/(Xϕ(d)+1)(Zq[Y]/(Yϕ(d)/k+1))[X]/(XkY)Zqϕ(d)/k[X]/(XkY)
其中 Z q ϕ ( d ) / k \mathbb Z_q^{\phi(d)/k} Zqϕ(d)/k 是以 coeff-wise 方式运算的。Incomplete cyclotomic NTT 可以写成多个 Complete cyclotomic NTT 的并行

根据环同构:
Z q [ Y ] / ( Y ϕ ( d ) / k + 1 ) ≅ Z q [ Z ] / ( Z N − 1 ) \mathbb Z_q[Y]/(Y^{\phi(d)/k}+1) \cong \mathbb Z_q[Z]/(Z^{N}-1) Zq[Y]/(Yϕ(d)/k+1)Zq[Z]/(ZN1)
其中 Y = Z ζ Y = Z\zeta Y=,这里 ζ \zeta ζ d / k d/k d/k 次本原单位根,而 Z Z Z N = ϕ ( d ) / k N=\phi(d)/k N=ϕ(d)/k 次本原单位根。Complete cyclotomic NTT 可以写成 Complete cyclic NTT,然后再扭曲

在这里插入图片描述

根据环同构:
Z q [ Z ] / ( Z R − ζ N j ) ≅ ∏ i = 0 r − 1 Z q [ Z ] / ( Z R / r − ζ N j r − 1 + i N / r ) \mathbb Z_q[Z]/(Z^{R}-\zeta_N^j) \cong \prod_{i=0}^{r-1}\mathbb Z_q[Z]/(Z^{R/r}-\zeta_N^{jr^{-1}+iN/r}) Zq[Z]/(ZRζNj)i=0r1Zq[Z]/(ZR/rζNjr1+iN/r)
以及映射 Z R / r → ζ N j r − 1 + i N / r Z^{R/r} \to \zeta_N^{jr^{-1}+iN/r} ZR/rζNjr1+iN/r
∑ k = 0 R − 1 a k Z k → ∑ l = 0 R / r − 1 ( ∑ k = 0 r − 1 a l + k R / r ( ζ N j r − 1 + i N / r ) k ) ⋅ Z l \sum_{k=0}^{R-1} a_kZ^k \to \sum_{l=0}^{R/r-1} \left(\sum_{k=0}^{r-1} a_{l+kR/r}(\zeta_N^{jr^{-1}+iN/r})^k\right)\cdot Z^l k=0R1akZkl=0R/r1(k=0r1al+kR/r(ζNjr1+iN/r)k)Zl
其中 ζ N j r − 1 + i N / r \zeta_N^{jr^{-1}+iN/r} ζNjr1+iN/r 是所有的 ζ N j \zeta_N^j ζNj r r r 次根,这里 r ∣ R ∣ N r \mid R \mid N rRN 是当前层的 radix 设置。Complete cyclic NTT 的每一层分解都是若干个关于某些单位根的多项式求值

在这里插入图片描述

在这里插入图片描述

其中的 { r i } 0 ≤ i < l \{r_i\}_{0 \le i < l} {ri}0i<l 是每一层分解的 radix,递归深度 l l l 是常数。由于自举的最终结果是单个 RLWE 密文,因此它的各个系数只需要被加密在单个 RLWE 寄存器里,所以最后一层使用外积 Q / 4 ⊙ c t i Q/4 \odot ct_i Q/4cti 把寄存器 R L W E ′ ( X v ) RLWE'(X^v) RLWE(Xv) 转化为 R L W E ( Q / 4 ⋅ X v ) RLWE(Q/4 \cdot X^v) RLWE(Q/4Xv) 密文,这里的 4 4 4 是原始 FHEW 的明文模数。

依次执行 v ~ i = a ~ i ⋅ s ~ i \tilde v_i = \tilde a_i \cdot \tilde s_i v~i=a~is~i 以及上述的 P F T − 1 ( { v ~ i } ) PFT^{-1}(\{\tilde v_i\}) PFT1({v~i}),最终获得各个系数的密文 R L W E ( Q / 4 ⋅ X ( a ⋅ s ) j ) RLWE(Q/4 \cdot X^{(a \cdot s)_j}) RLWE(Q/4X(as)j),然后再分别乘以 X b j X^{b_j} Xbj 得到 ϕ ( d ) \phi(d) ϕ(d) 个密文 R L W E ( Q / 4 ⋅ X ( b + a ⋅ s ) j ) RLWE(Q/4 \cdot X^{(b+a \cdot s)_j}) RLWE(Q/4X(b+as)j)

msbExtract

现在 ( b , a ) ∈ R i n 2 (b,a) \in R_{in}^2 (b,a)Rin2 相位的各个系数 c = ( b + a ⋅ s ) i ∈ Z q c=(b+a \cdot s)_i \in \mathbb Z_q c=(b+as)iZq 分别加密在 RLWE 密文 ( b ^ , a ^ ) ∈ R r e g 2 (\hat b, \hat a) \in R_{reg}^2 (b^,a^)Rreg2 相位的指数上,简记为 m ( X ) = Q / 4 ⋅ X c ∈ R r e g m(X) = Q/4 \cdot X^{c} \in R_{reg} m(X)=Q/4XcRreg,私钥是 s ^ ∈ R r e g \hat s \in R_{reg} s^Rreg

由于 Φ q ( X ) = 1 + X + ⋯ + X q − 1 \Phi_q(X) = 1+X+\cdots+X^{q-1} Φq(X)=1+X++Xq1,因此有 X q − 1 ≡ − 1 − X − ⋯ − X q − 2 X^{q-1} \equiv -1-X-\cdots-X^{q-2} Xq11XXq2 以及 X q = 1 X^q=1 Xq=1,那么
m i + e i = b ^ i + ∑ j = 0 i a ^ i − j s ^ j + ∑ j = i + 2 q − 2 a ^ q + i − j s ^ j − ∑ j = 1 q − 2 a ^ q − 1 − j s ^ j = b ^ i + ⟨ ( a ^ i , a ^ i − 1 − a ^ q − 2 , a ^ i − 2 − a ^ q − 3 , ⋯ , a ^ 0 − a ^ q − i − 1 , 0 − a ^ q − i − 2 , a ^ q − 2 − a ^ q − i − 3 , ⋯ , a ^ i + 2 − a ^ 1 ) , ( s ^ 0 , ⋯ , s ^ q − 2 ) ⟩ \begin{aligned} m_i + e_i &= \hat b_i + \sum_{j=0}^{i}\hat a_{i-j}\hat s_j + \sum_{j=i+2}^{q-2}\hat a_{q+i-j}\hat s_j - \sum_{j=1}^{q-2} \hat a_{q-1-j}\hat s_j\\ &= \hat b_i + \langle(\hat a_i, \hat a_{i-1}-\hat a_{q-2}, \hat a_{i-2}-\hat a_{q-3}, \cdots, \\ &\,\,\,\,\,\,\,\, \hat a_{0}-\hat a_{q-i-1}, 0-\hat a_{q-i-2}, \hat a_{q-2}-\hat a_{q-i-3}, \cdots, \hat a_{i+2}-\hat a_{1}), (\hat s_0,\cdots,\hat s_{q-2})\rangle \end{aligned} mi+ei=b^i+j=0ia^ijs^j+j=i+2q2a^q+ijs^jj=1q2a^q1js^j=b^i+⟨(a^i,a^i1a^q2,a^i2a^q3,,a^0a^qi1,0a^qi2,a^q2a^qi3,,a^i+2a^1),(s^0,,s^q2)⟩
因此 ( b i , a ⃗ i : = ( a ^ i , a ^ i − 1 − a ^ q − 2 , a ^ i − 2 − a ^ q − 3 , ⋯ , a ^ 0 − a ^ q − i − 1 , 0 − a ^ q − i − 2 , a ^ q − 2 − a ^ q − i − 3 , ⋯ , a ^ i + 2 − a ^ 1 ) ) ∈ Z Q q (b_i,\vec a_i := (\hat a_i, \hat a_{i-1}-\hat a_{q-2}, \hat a_{i-2}-\hat a_{q-3}, \cdots, \hat a_{0}-\hat a_{q-i-1}, 0-\hat a_{q-i-2}, \hat a_{q-2}-\hat a_{q-i-3}, \cdots, \hat a_{i+2}-\hat a_{1})) \in \mathbb Z_Q^{q} (bi,a i:=(a^i,a^i1a^q2,a^i2a^q3,,a^0a^qi1,0a^qi2,a^q2a^qi3,,a^i+2a^1))ZQq 就是 m ( X ) m(X) m(X) 系数 m i m_i mi 的密文,私钥是 s ⃗ : = ( s ^ 0 , ⋯ , s ^ q − 2 ) \vec s := (\hat s_0,\cdots,\hat s_{q-2}) s :=(s^0,,s^q2),噪声是 e i e_i ei

  • 如果 c = i c=i c=i,那么 m i = Q / 4 m_i = Q/4 mi=Q/4
  • 如果 c = q − 1 c=q-1 c=q1,那么 m i = − Q / 4 m_i=-Q/4 mi=Q/4
  • 对于其他的 c c c,都是 m i = 0 m_i=0 mi=0

为了提取出系数 c = q / 2 ⋅ μ + e c=q/2 \cdot \mu + e c=q/2μ+e 所编码的消息 μ ∈ { 0 , 1 } \mu \in \{0,1\} μ{0,1},由于噪声范围 [ − q / 4 , q / 4 ) [-q/4, q/4) [q/4,q/4),因此 μ = 1 ⟺ c ∈ ( q / 4 , 3 q / 4 ) \mu=1 \iff c \in (q/4,3q/4) μ=1c(q/4,3q/4),那么把这个区间的 LWE 密文加起来即可(注意 m ( X ) m(X) m(X) 恰是 one-hot 向量)。

Counting

以外积为单位,各个步骤的复杂度是:

在这里插入图片描述

各个步骤的噪声增长是:

在这里插入图片描述

安全强度 λ = O ( n ) \lambda = O(n) λ=O(n),模数 Q = p o l y ( n ) Q=poly(n) Q=poly(n),打包数量 ϕ ( d ) = O ( n ) \phi(d)=O(n) ϕ(d)=O(n),Gadget 分解长度 d B = log ⁡ B Q d_B = \log_B Q dB=logBQ。由于环元素和 RLWE’ 密文外积的噪声是 σ ⊙ 2 = B 2 d B q σ i n p u t 2 / 6 = O ( n ) ⋅ σ i n p u t 2 \sigma^2_\odot = B^2d_Bq\sigma_{input}^2/6 = O(n)\cdot\sigma_{input}^2 σ2=B2dBqσinput2/6=O(n)σinput2,上述的 σ ⊙ , a u t 2 , σ ⊙ , e v a l 2 , σ ⊙ , R G S W 2 \sigma_{\odot,aut}^2, \sigma_{\odot,eval}^2, \sigma_{\odot,RGSW}^2 σ,aut2,σ,eval2,σ,RGSW2 分别是 RLWE’ 自同构密钥、RLWE‘ to RGSW 切换密钥、RGSW 自举密钥的方差取代 σ i n p u t 2 \sigma_{input}^2 σinput2 之后的值。假如 PFT 的迭代深度是 l l l 层,那么最终的方差是 O ( n l ) ⋅ σ a u t , e v a l , R G S W 2 O(n^l) \cdot \sigma_{aut,eval,RGSW}^2 O(nl)σaut,eval,RGSW2是关于 l l l 指数级的。由于 Q Q Q 是多项式规模的,因此 l l l 必须是较小的常数。

对于常数深度 l l l,设置 k = r = ϕ ( d ) 1 / l k=r=\phi(d)^{1/l} k=r=ϕ(d)1/l,这里 k k k 是分解后的小多项式长度, r r r 是各层分解的 radix 大小。那么,总的复杂度是 O ( l n 1 + 1 / l log ⁡ n ) O(ln^{1+1/l}\log n) O(ln1+1/llogn) 次环元素和 RLWE’ 的外积,均摊复杂度是 O ( l n 1 / l log ⁡ n ) O(ln^{1/l}\log n) O(ln1/llogn) 次外积

这篇关于Amortized bootstrapping via Automorphisms的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1051875

相关文章

[论文笔记]Arbitrary-Oriented Scene Text Detection via Rotation Proposals

Arbitrary-Oriented Scene Text Detection via Rotation Proposals 论文地址:https://arxiv.org/abs/1703.01086 github地址:https://github.com/mjq11302010044/RRPN 该论文是基于faster-rcnn框架,在场景文字识别领域的应用。 创新点:生成带文字

Openai api via azure error: NotFoundError: 404 Resource not found

题意:"OpenAI API通过Azure出错:NotFoundError: 404 找不到资源" 问题背景: thanks to the university account my team and I were able to get openai credits through microsoft azure. The problem is that now, trying to

One-Shot Visual Imitation Learning via Meta-Learning

发表时间:CoRL 2017 论文链接:https://readpaper.com/pdf-annotate/note?pdfId=4667206488817680385&noteId=2408726470680795136 作者单位:University of California, Berkeley Motivation:为了使机器人成为可以执行广泛工作的通才,它必须能够在复杂的非结构化

PCB设计中的via孔和pad孔

原文出自微信公众号【小小的电子之路】 在PCB设计过程中,经常会提到via孔和pad孔,下面就简单介绍一下二者的区别。 via称为过孔,主要起到电气连接的作用,用于网络在不同层的导线之间的连接。PCB设计中一般做盖油处理。 via孔 via孔有通孔(Plating Through Hole,PHT)、盲孔(Blind Via Hole,BVH)、埋孔(Buried Via Hol

论文学习 Learning Robust Representations via Multi-View Information Bottleneck

Code available at https://github.com/mfederici/Multi-View-Information-Bottleneck 摘要:信息瓶颈原理为表示学习提供了一种信息论方法,通过训练编码器保留与预测标签相关的所有信息,同时最小化表示中其他多余信息的数量。然而,最初的公式需要标记数据来识别多余的信息。在这项工作中,我们将这种能力扩展到多视图无监督设置,其中提供

Rcmp: Reconstructing RDMA-Based Memory Disaggregation via CXL——论文阅读

TACO 2024 Paper CXL论文阅读笔记整理 背景 RDMA:RDMA是一系列协议,允许一台机器通过网络直接访问远程机器中的数据。RDMA协议通常固定在RDMA NIC(RNIC)上,具有高带宽(>10 GB/s)和微秒级延迟(~2μs),这些协议得到了InfiniBand、RoCE和OmniPath等公司的广泛支持[20, 47, 62]。RDMA基于两种类型的操作原语提供数据传输

论文阅读笔记——DeepPruner: Learning Efficient Stereo Matching via Differentiable PatchMatch

这篇文章,是2019年新的ICCV的papper,文章典型的使用了PatchMatch的思路,使得最后的速度快了很多。主要思路是:首先利用一种新颖的可微Patch Match算法来获得稀疏的cost volume。 然后,我们利用此表示来了解每个像素的修剪范围,自适应地修剪了每个区域的搜索空间。 最后,利用图像引导的优化模块来进一步提高性能。 由于所有组件都是可区分的,因此可以以端到端的方式训练整

论文阅读笔记:Towards Higher Ranks via Adversarial Weight Pruning

论文阅读笔记:Towards Higher Ranks via Adversarial Weight Pruning 1 背景2 创新点3 方法4 模块4.1 问题表述4.2 分析高稀疏度下的权重剪枝4.3 通过SVD进行低秩逼近4.4 保持秩的对抗优化4.5 渐进式剪枝框架 5 效果5.1 和SOTA方法对比5.2 消融实验5.3 开销分析 6 结论 论文:https://arx

《PixelLink: Detecting Scene Text via Instance Segmentation》论文阅读笔记

前言 这篇论文发表在AAAI2018上,作者给出了源码,个人认为是一篇比较work的论文。在之前DPR和SegLink两篇论文的阅读过程中,我就曾思考二者multi-task的必要性。特别是DPR的classification task,其实跟segment是几乎等价的。在复现过程中,回归任务远比分类(分割)任务难收敛。 可以认为,在自然场景下的文本检测任务中,DPR证明了anchor的非必要性