Ring-Switch Field-Switch

news2024/11/19 12:34:43

参考文献:

  1. [GHPS12] Gentry C, Halevi S, Peikert C, et al. Ring switching in BGV-style homomorphic encryption[C]//International Conference on Security and Cryptography for Networks. Berlin, Heidelberg: Springer Berlin Heidelberg, 2012: 19-37.
  2. [GHPS13] Gentry C, Halevi S, Peikert C, et al. Field switching in BGV-style homomorphic encryption[J]. Journal of Computer Security, 2013, 21(5): 663-684.
  3. Modulus Lift & Delayed Reduction

文章目录

  • Ring-Switching
    • Construction
    • Slot-packing
  • Field-Switching
    • Construction

Ring-Switching

[GHPS12] 提出了环切换技术,它针对 coeff-packing,考虑的是 non-dual RLWE 版本。

对于任意的分圆多项式 Φ m ( X ) \Phi_m(X) Φm(X),定义:
R m = Z [ X ] / ( Φ m ( X ) ) C m = Z [ X ] / ( X m − 1 ) \begin{aligned} R_m &= \mathbb Z[X]/(\Phi_m(X))\\ C_m &= \mathbb Z[X]/(X^m-1) \end{aligned} RmCm=Z[X]/(Φm(X))=Z[X]/(Xm1)
额外定义 R m , q = R m / q R m R_{m,q} = R_m/qR_m Rm,q=Rm/qRm 以及 C m , q = C m / q C m C_{m,q}=C_m/qC_m Cm,q=Cm/qCm

假设 m = u ⋅ w m = u \cdot w m=uw,给定 f , g , h ∈ Z [ X ] f,g,h \in \mathbb Z[X] f,g,hZ[X]

  • 如果 h ( X ) ≡ f ( X ) ⋅ g ( X ) ( m o d Φ w ( X ) ) h(X) \equiv f(X) \cdot g(X) \pmod{\Phi_w(X)} h(X)f(X)g(X)(modΦw(X)),那么 h ( X u ) ≡ f ( X u ) ⋅ g ( X u ) ( m o d Φ m ( X ) ) h(X^u) \equiv f(X^u) \cdot g(X^u) \pmod{\Phi_m(X)} h(Xu)f(Xu)g(Xu)(modΦm(X))
  • 如果 h ( X ) ≡ f ( X ) ⋅ g ( X ) ( m o d X w − 1 ) h(X) \equiv f(X) \cdot g(X) \pmod{X^w-1} h(X)f(X)g(X)(modXw1),那么 h ( X u ) ≡ f ( X u ) ⋅ g ( X u ) ( m o d X m − 1 ) h(X^u) \equiv f(X^u) \cdot g(X^u) \pmod{X^m-1} h(Xu)f(Xu)g(Xu)(modXm1)

这可以视为环嵌入,将 R w R_w Rw 嵌入到 R m R_m Rm 的映射是 X w → X m u X_w \to X_m^u XwXmu C w ≤ C m C_w \le C_m CwCm 同理。

定义 Q m ( X ) = ( X m − 1 ) / Φ m ( X ) Q_m(X) = (X^m-1)/\Phi_m(X) Qm(X)=(Xm1)/Φm(X),以及多项式 G m ( X ) ∈ Z [ X ] G_m(X) \in \mathbb Z[X] Gm(X)Z[X],满足:
G m ( X ) ≡ m ( m o d Φ m ) G m ( X ) ≡ 0 ( m o d Q m ) \begin{aligned} G_m(X) &\equiv m \pmod{\Phi_m}\\ G_m(X) &\equiv 0 \pmod{Q_m}\\ \end{aligned} Gm(X)Gm(X)m(modΦm)0(modQm)
通过 CRT 求解出唯一的 G m ( X ) G_m(X) Gm(X),满足 deg ⁡ G m ≤ m − 1 \deg G_m \le m-1 degGmm1 以及 ∥ G m ∥ 2 = m ⋅ ϕ ( m ) \|G_m\|_2 = \sqrt{m \cdot \phi(m)} Gm2=mϕ(m)

那么多项式 G m G_m Gm 可以用于:把任意的等价类 f + ( Φ m ( X ) ) f+(\Phi_m(X)) f+(Φm(X)) 都 “提升”(Lift)到等价类 G ⋅ f + ( X m − 1 ) G\cdot f+(X^m-1) Gf+(Xm1),并且基本保持范数不变。将它定义到密文上,映射是:
( c 0 , c 1 ) ∈ R m , q 2 ↦ ( c 0 , c 1 ) ∈ Z [ X ] 2 ↦ ( G ⋅ c 0 , G ⋅ c 1 ) ∈ C m , q 2 (c_0, c_1) \in R_{m,q}^2 \mapsto (c_0,c_1) \in \mathbb Z[X]^2\mapsto \left(G \cdot c_0, G \cdot c_1\right) \in C_{m,q}^2 (c0,c1)Rm,q2(c0,c1)Z[X]2(Gc0,Gc1)Cm,q2
简记为 ( c , d ) ∈ C m , q 2 (c,d) \in C_{m,q}^2 (c,d)Cm,q2,假如 c 0 + c 1 ⋅ s = Δ a + δ e + q I ( m o d Φ m ) c_0 + c_1\cdot s = \Delta a + \delta e + qI \pmod{\Phi_m} c0+c1s=Δa+δe+qI(modΦm),其中 a ∈ R m , p a \in R_{m,p} aRm,p 是消息, e , I ∈ R m e,I \in R_m e,IRm 是噪声, p , q ∈ Z p,q \in \mathbb Z p,qZ 是明文和密文的模数, Δ , δ ∈ Z \Delta,\delta \in \mathbb Z Δ,δZ 是缩放因子,那么:
c + d ⋅ s = G m ⋅ ( Δ a + δ e + q I ( m o d Φ m ) ) = Δ ( G m ⋅ a ) + δ ( G m ⋅ e ) + q ( G m ⋅ I ) ( m o d X m − 1 ) \begin{aligned} c + d \cdot s &= G_m\cdot (\Delta a + \delta e + qI \pmod{\Phi_m})\\ &= \Delta(G_m\cdot a) + \delta(G_m\cdot e) + q(G_m\cdot I) \pmod{X^m-1} \end{aligned} c+ds=Gm(Δa+δe+qI(modΦm))=Δ(Gma)+δ(Gme)+q(GmI)(modXm1)
因此 ( c 0 ′ , c 1 ′ ) (c_0',c_1') (c0,c1) 是私钥 s ∈ Z [ X ] s \in \mathbb Z[X] sZ[X] 下的消息 G m ⋅ a ∈ C m , p G_m \cdot a \in C_{m,p} GmaCm,p 的密文,噪声 G m ⋅ e ∈ C m G_m \cdot e \in C_m GmeCm 是短的。注意 R m , q R_{m,q} Rm,q C m , q C_{m,q} Cm,q 都是 Z [ X ] \mathbb Z[X] Z[X]-模,提升前后的私钥 s s s 不需要改变。方便起见,我们将 Δ ( G m ⋅ a ) + δ ( G m ⋅ e ) \Delta(G_m\cdot a) + \delta(G_m\cdot e) Δ(Gma)+δ(Gme) 记作相位 μ ∈ C m \mu \in C_m μCm

现在我们考虑如下的环同构(Degree- u u u striding):
C m ≅ ( Z [ Y ] / ( Y w − 1 ) ) [ X ] / ( X u − Y ) C_m \cong (\mathbb Z[Y]/(Y^w-1))[X]/(X^u-Y) Cm(Z[Y]/(Yw1))[X]/(XuY)
具体的映射为:
a ( X ) = ∑ i = 0 m − 1 a i X i = ∑ k = 0 u − 1 X k ⋅ ( ∑ j = 0 w − 1 a k + u j ⋅ X u j ) = ∑ k = 0 u − 1 X k ⋅ a ( k ) ( Y ) \begin{aligned} a(X) &= \sum_{i=0}^{m-1}a_iX^i\\ &= \sum_{k=0}^{u-1}X^k\cdot \left(\sum_{j=0}^{w-1} a_{k+uj} \cdot X^{uj}\right)\\ &= \sum_{k=0}^{u-1} X^k \cdot a_{(k)}(Y) \end{aligned} a(X)=i=0m1aiXi=k=0u1Xk(j=0w1ak+ujXuj)=k=0u1Xka(k)(Y)
其中,系数 a ( k ) ∈ C w a_{(k)} \in C_w a(k)Cw 是如下的多项式,
a ( k ) ( Y ) = ∑ j = 0 w − 1 a k + u j ⋅ Y j a_{(k)}(Y) = \sum_{j=0}^{w-1} a_{k+uj} \cdot Y^{j} a(k)(Y)=j=0w1ak+ujYj
我们把 C m C_m Cm 视为一个 C w C_w Cw-模,它的一组 C w C_w Cw-basis 是 { X k } 0 ≤ k ≤ w − 1 \{X^k\}_{0\le k\le w-1} {Xk}0kw1

对于提升获得的密文 ( c , d ) ∈ C m 2 (c,d) \in C_m^2 (c,d)Cm2,将它们分别作上述的同构。我们要求私钥 s ∈ Z [ X ] s \in \mathbb Z[X] sZ[X] 落在 R m R_m Rm 的子环 R w R_w Rw 内(在同态的意义下),也就是说:
s ( X ) = ∑ i ≡ 0 ( m o d u ) s i ⋅ X i s(X) = \sum_{i\equiv0 \pmod{u}} s_i \cdot X^i s(X)=i0(modu)siXi
并且 deg ⁡ s ≤ m − 1 \deg s \le m-1 degsm1,我们简记 s ( X ) = s ( 0 ) ( Y ) s(X) = s_{(0)}(Y) s(X)=s(0)(Y),其中 Y = X u Y=X^u Y=Xu

现在,我们将这个 s ∈ Z [ X ] s \in \mathbb Z[X] sZ[X] 再视为卷积环 C m C_m Cm 中的元素,此时 s s s 就落在子环 C w C_w Cw 内(在同态的意义下),那么有:
( c + d ⋅ s ) ( X ) = ∑ k = 0 u − 1 X k ⋅ ( c ( k ) + d ( k ) s ( 0 ) ) ( Y ) = ∑ k = 0 u − 1 X k ⋅ μ ( k ) ( Y ) = μ ( m o d X m − 1 , q ) \begin{aligned} (c + d \cdot s)(X) &= \sum_{k=0}^{u-1} X^k \cdot \left(c_{(k)} + d_{(k)}s_{(0)}\right)(Y)\\ &= \sum_{k=0}^{u-1} X^k \cdot \mu_{(k)}(Y)\\ &= \mu \pmod{X^m-1,q}\\ \end{aligned} (c+ds)(X)=k=0u1Xk(c(k)+d(k)s(0))(Y)=k=0u1Xkμ(k)(Y)=μ(modXm1,q)
我们将 ( c ( k ) , d ( k ) ) ∈ C w , q 2 (c_{(k)}, d_{(k)}) \in C_{w,q}^2 (c(k),d(k))Cw,q2 视为关于私钥 s 0 ( Y ) ∈ Z [ Y ] s_{0}(Y) \in \mathbb Z[Y] s0(Y)Z[Y] 的密文,它们的相位分别是:
μ ( k ) = Δ ( G m ⋅ a ) ( k ) + δ ( G m ⋅ e ) ( k ) ∈ C w \mu_{(k)} = \Delta(G_m\cdot a)_{(k)} + \delta(G_m\cdot e)_{(k)} \in C_w μ(k)=Δ(Gma)(k)+δ(Gme)(k)Cw
这就将大环 C m C_m Cm 上的消息 ( G m ⋅ a ) ( X ) (G_m\cdot a)(X) (Gma)(X) 的密文 ( c , d ) (c,d) (c,d) 分解成了 u u u 个小环 C w C_w Cw 上的密文 ( c ( k ) , d ( k ) ) (c_{(k)},d_{(k)}) (c(k),d(k)),它们分别加密了消息 ( G m ⋅ a ) ( k ) ( Y ) (G_m\cdot a)_{(k)}(Y) (Gma)(k)(Y)。因为这是一个环同构,因此 u u u 个小密文也容易合成出单个大密文。事实上,这个环同构就是系数的置换、分区、级联,基本没有计算开销。

但是我们想要的是 R m R_m Rm 分解到 R w R_w Rw 的密文,可以再简单地取模:
( c ( k ) , d ( k ) ) ∈ C w , q 2 ↦ ( c ( k ) , d ( k ) )   m o d   Φ w ( Y ) (c_{(k)},d_{(k)}) \in C_{w,q}^2 \mapsto (c_{(k)},d_{(k)}) \bmod{\Phi_w(Y)} (c(k),d(k))Cw,q2(c(k),d(k))modΦw(Y)
把这些密文记为 ( c ~ k , d ~ k ) ∈ R w , q 2 (\tilde c_{k}, \tilde d_{k}) \in R_{w,q}^2 (c~k,d~k)Rw,q2,它们加密了消息 ( G m ⋅ a ) ( k ) ( m o d Φ w ) (G_m \cdot a)_{(k)} \pmod{\Phi_w} (Gma)(k)(modΦw),简记为 a ~ k ∈ R w \tilde a_k \in R_w a~kRw

虽然 a ~ k \tilde a_k a~k a a a 或者 a ( k ) a_{(k)} a(k) 之间的关系很复杂,但是我们考虑任意的 m m m-th 本原单位根 ζ \zeta ζ,由于 G m ( X ) = m ( m o d Φ m ( X ) ) G_m(X) = m \pmod{\Phi_m(X)} Gm(X)=m(modΦm(X)),因此有:
( G m ⋅ a ) ( ζ ) = G m ( ζ ) ⋅ a ( ζ ) = m ⋅ a ( ζ ) (G_m\cdot a)(\zeta) = G_m(\zeta) \cdot a(\zeta) = m \cdot a(\zeta) (Gma)(ζ)=Gm(ζ)a(ζ)=ma(ζ)
那么,
a ( ζ ) = m − 1 ⋅ ( G m ⋅ a ) ( ζ ) = m − 1 ⋅ ∑ k = 0 u − 1 ζ k ⋅ a ~ k ( ζ u ) a(\zeta) = m^{-1} \cdot(G_m\cdot a)(\zeta) = m^{-1} \cdot \sum_{k=0}^{u-1}\zeta^k \cdot \tilde a_k(\zeta^u) a(ζ)=m1(Gma)(ζ)=m1k=0u1ζka~k(ζu)
我们可以从 a ~ k ∈ R w , p \tilde a_k \in R_{w,p} a~kRw,p 恢复出原始消息 a ∈ R m , p a \in R_{m,p} aRm,p,确切地说:
a ( X ) = m − 1 ⋅ ∑ k = 0 u − 1 X k ⋅ a ~ k ( X u ) ∈ R m , p a(X) = m^{-1} \cdot \sum_{k=0}^{u-1}X^k \cdot \tilde a_k(X^u) \in R_{m,p} a(X)=m1k=0u1Xka~k(Xu)Rm,p
这里要求 gcd ⁡ ( m , p ) = 1 \gcd(m,p)=1 gcd(m,p)=1,此时也存在 ζ ∈ G F ( p d ) \zeta \in GF(p^d) ζGF(pd),其中 d = o r d ( p   m o d   m ) d=ord(p \bmod{m}) d=ord(pmodm) 是乘法阶。

同理,我们也可以把这些小密文 ( c ~ k , d ~ k ) ∈ R w , q 2 (\tilde c_{k}, \tilde d_{k}) \in R_{w,q}^2 (c~k,d~k)Rw,q2 重新合成出原始密文 ( c 0 , c 1 ) ∈ R m , q 2 (c_0,c_1) \in R_{m,q}^2 (c0,c1)Rm,q2,只要满足 gcd ⁡ ( m , q ) = 1 \gcd(m,q)=1 gcd(m,q)=1 即可。只需要系数的置换和级联,以及一些模乘,计算开销很小。

Construction

环切换的步骤为:

  1. Key-switch.
    • 输入密文 ( c 0 , c 1 ) ∈ R m , q 2 (c_0,c_1) \in R_{m,q}^2 (c0,c1)Rm,q2,对应的私钥是 s ∈ Z [ X ] s \in \mathbb Z[X] sZ[X],加密消息 a ∈ R m , p a \in R_{m,p} aRm,p
    • 使用 KS 过程,切换到 ( c 0 ′ , c 1 ′ ) ∈ R m , q 2 (c_0',c_1') \in R_{m,q}^2 (c0,c1)Rm,q2,它关于一个环元素 s ′ ∈ R w s' \in R_w sRw 对应的稀疏私钥 s ′ ′ ( X ) = s ′ ( X u ) s''(X)=s'(X^u) s′′(X)=s(Xu)
  2. Lift.
    • 将密文 ( c 0 ′ , c 1 ′ ) ∈ R m , q 2 (c_0',c_1') \in R_{m,q}^2 (c0,c1)Rm,q2 乘以 G m ( X ) ∈ Z [ X ] G_m(X) \in \mathbb Z[X] Gm(X)Z[X] 提升到 ( c , d ) ∈ C m , q 2 (c,d) \in C_{m,q}^2 (c,d)Cm,q2
    • 它的私钥是 s ′ ′ ∈ Z [ X ] s'' \in \mathbb Z[X] s′′Z[X],加密的消息是 G m ⋅ a ∈ C m , p G_m \cdot a \in C_{m,p} GmaCm,p
  3. Break.
    • ( c , d ) ∈ C m , q 2 (c,d) \in C_{m,q}^2 (c,d)Cm,q2 分解为 u u u 个小密文 ( c ( k ) , d ( k ) ) ∈ C w , q 2 (c_{(k)},d_{(k)}) \in C_{w,q}^2 (c(k),d(k))Cw,q2,简记 Y = X u Y=X^u Y=Xu
    • 它们的私钥是 s ′ ∈ Z [ Y ] s' \in \mathbb Z[Y] sZ[Y],各自加密 ( G m ⋅ a ) ( k ) ∈ C w , p (G_m \cdot a)_{(k)} \in C_{w,p} (Gma)(k)Cw,p
  4. Reduce.
    • 对小密文 ( c ( k ) , d ( k ) ) ∈ C w , q 2 (c_{(k)},d_{(k)}) \in C_{w,q}^2 (c(k),d(k))Cw,q2 取模,获得 ( c ~ k , d ~ k ) ∈ R w , q 2 (\tilde c_{k}, \tilde d_{k}) \in R_{w,q}^2 (c~k,d~k)Rw,q2
    • 它们的私钥是 s ′ ∈ Z [ Y ] s' \in \mathbb Z[Y] sZ[Y],各自加密 a ~ k ∈ R w , p \tilde a_k \in R_{w,p} a~kRw,p

如图所示:

在这里插入图片描述

Slot-packing

我们通常使用 SIMD 打包技术,分解得到的密文 ( c ( k ) , d ( k ) ) ∈ C w , q 2 (c_{(k)},d_{(k)}) \in C_{w,q}^2 (c(k),d(k))Cw,q2 加密的 a ~ k ∈ R w , p \tilde a_k \in R_{w,p} a~kRw,p,虽然可以恢复出原始消息 a ∈ R m , p a \in R_{m,p} aRm,p,但是 a ~ k ∈ R w , p \tilde a_k \in R_{w,p} a~kRw,p 的明文槽并非 a ∈ R m , p a \in R_{m,p} aRm,p 所编码的那些槽,因此无法对分解出的小密文直接做 SIMD 运算。

[GHPS12] 通过线性组合 a ~ k \tilde a_k a~k 来获得编码了明文槽小区块的一些小明文。对于 o r d ( p   m o d   m ) = o r d ( p   m o d   w ) = d ord(p \bmod m) = ord(p \bmod w)=d ord(pmodm)=ord(pmodw)=d 的特殊情况,可以找到 h ∈ R w , p h \in R_{w,p} hRw,p 使得 h ( τ j ) = ζ j h(\tau^{j}) = \zeta^j h(τj)=ζj,其中 ζ ∈ G F ( p d ) \zeta \in GF(p^d) ζGF(pd) m m m-th 本原单位根, τ = ζ u \tau=\zeta^u τ=ζu w w w-th 本原单位根, j ∈ S ⊆ Z m ∗ j \in S \subseteq \mathbb Z_m^* jSZm,这个子集 S S S 的大小是 ϕ ( w ) \phi(w) ϕ(w),满足 S ( m o d w ) = Z w ∗ S \pmod w = \mathbb Z_w^* S(modw)=Zw,并且乘以 p p p 封闭。

由于 w ∣ m w \mid m wm,因此 Z m ∗ \mathbb Z_m^* Zm 可以分成 ϕ ( m ) / ϕ ( w ) \phi(m)/\phi(w) ϕ(m)/ϕ(w) 个大小为 ϕ ( w ) \phi(w) ϕ(w) 的不交子集,每个子集都是 Z w ∗ \mathbb Z_w^* Zw 的代表,且乘以 p p p 封闭。把它们记作 S i ⊆ Z m ∗ S_i \subseteq \mathbb Z_m^* SiZm,各自对应 h i ∈ R w , p h_i \in R_{w,p} hiRw,p

线性组合 a i ∗ = ∑ k = 0 u − 1 h i k ⋅ a ~ k ∈ R w , p a_i^* = \sum_{k=0}^{u-1} h_i^k \cdot \tilde a_k \in R_{w,p} ai=k=0u1hika~kRw,p,对于 j ∈ S i ∩ Z m ∗ / ( p ) j \in S_i \cap \mathbb Z_m^*/(p) jSiZm/(p) 满足:
a i ∗ ( τ j ) = ∑ k = 0 u − 1 ζ j k ⋅ a ~ k ( ζ u j ) = a ( ζ j ) a_i^*(\tau^{j}) = \sum_{k=0}^{u-1} \zeta^{jk} \cdot \tilde a_k(\zeta^{uj}) = a(\zeta^j) ai(τj)=k=0u1ζjka~k(ζuj)=a(ζj)
因此 a i ∗ ∈ R w , p a_i^* \in R_{w,p} aiRw,p 编码了 a ∈ R m , p a \in R_{m,p} aRm,p 中的由 S i ∩ Z m ∗ / ( p ) S_i \cap \mathbb Z_m^*/(p) SiZm/(p) 索引的那些明文槽。对应的密文 ( c i ∗ , d i ∗ ) ∈ R w , q 2 (c_i^*,d_i^*) \in R_{w,q}^2 (ci,di)Rw,q2 容易计算。

但是对于 o r d ( p   m o d   m ) ≠ o r d ( p   m o d   w ) ord(p \bmod m) \neq ord(p \bmod w) ord(pmodm)=ord(pmodw) 的一般情况, h ∈ R w , p h \in R_{w,p} hRw,p 不一定存在。但它一定在 G F ( p d ) [ X ] / ( Φ w ( X ) ) GF(p^d)[X]/(\Phi_w(X)) GF(pd)[X]/(Φw(X)) 里边,所以明文空间需要被相应的扩展,这可以用 d d d R w , p R_{w,p} Rw,p 明文组合出来,效率很低。

Field-Switching

[GHPS13] 提出的域切换技术,它针对 slot-packing,并且考虑的是 dual RLWE 版本。

域切换采用了和环切换完全不同的思路,它采用分圆塔 K / K ′ K/K' K/K 上的迹映射:
T r K / K ′ ( a ) = ∑ i = 1 ( m o d m ′ ) τ i ( a ) Tr_{K/K'}(a) = \sum_{i=1 \pmod{m'}} \tau_i(a) TrK/K(a)=i=1(modm)τi(a)
其中 K = Q ( ζ m ) , K ′ = Q ( ζ m ′ ) K=\mathbb Q(\zeta_m), K'=\mathbb Q(\zeta_{m'}) K=Q(ζm),K=Q(ζm),以及 m ′ ∣ m m' \mid m mm,自同构 τ i : ζ m ↦ ζ m i , ∀ i ∈ Z m ∗ \tau_i: \zeta_m \mapsto \zeta_m^i, \forall i \in \mathbb Z_m^* τi:ζmζmi,iZm

R / R ′ R/R' R/R 是对应的分圆整数环,明文模数 p p p 下的明文槽分别是 F / F ′ \mathbb F/\mathbb F' F/F,槽的个数是 f , f ′ f,f' f,f。根据 CRT 同构,函数 ( F f / f ′ ) f ′ → ( F ′ ) f ′ (\mathbb F^{f/f'})^{f'} \to (\mathbb F')^{f'} (Ff/f)f(F)f 可以表示为某个 R ′ R' R-线性映射 L : R p → R p ′ L: R_p \to R_p' L:RpRp

Construction

域切换的步骤是:

  1. Switch to a small-ring secret key.
    • 把私钥切换到子环上, s ′ ∈ R ′ ⊆ R s' \in R' \subseteq R sRR
  2. Multiply by an appropriate (short) scalar.
    • 找出恰当的短元素 r ∈ R p r \in R_p rRp,构造出 R ′ R' R-线性映射 L ∨ ( a ∨ ) = T r K / K ′ ( r ⋅ a ∨ ) L^\vee(a^\vee)=Tr_{K/K'}(r \cdot a^\vee) L(a)=TrK/K(ra)
  3. Map to the small field.
    • L ∨ L^\vee L 作用到密文上

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

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

相关文章

【git】通过JetNrains IDE对git的操作

应该适用于所有jetbrains产品。 一、拉取(pull)代码 上方工具栏-Git-克隆。然后填写git地址与本地存放地址。 二、搁置 修改代码后搁置代码(不提交,但是也不撤销已修改的代码,把它暂存起来)。 界面的左上角。1->2->3。完事就可以写换到其他分支肆意妄为^^。 三…

【JAVA |开篇】JAVA入门及JDK环境配置

目录 一、JIAVA语言 二、Java开发环境安装 三、初识Java的main方法 四、注释 一、JIAVA语言 Java 是一种优秀的程序设计语言 ,它具有令人赏心悦目的语法和易于理解的语义 Write once, Run anywhere(这句话体现了JAVA语言的核心,一次运行 任…

能恢复永久删除文件的十大数据恢复软件

当您不小心删除了重要数据,或者由于病毒攻击而丢失了重要数据时,请不要惊慌,我们已经为您准备好了。别无他处,这是您目前市场上最佳数据恢复软件列表的一站式目的地。 能恢复永久删除文件的十大数据恢复软件 1. 奇客数据恢复 这是…

怎么制作流程图?介绍制作方法

怎么制作流程图?在日常生活和工作中,流程图已经成为我们不可或缺的工具。无论是项目规划、流程优化,还是学习理解复杂系统,流程图都能帮助我们更直观地理解和表达信息。然而,很多人可能并不清楚,其实制作流…

Android 如何启用user版本的adb源码分析

通过adb shell中执行getprop persist.sys.usb.config,可以看到系统usb的相关选项,persist.sys.usb.config显示的就是当前系统关于usb选项的系统配置【RK3188Android4.4刚移植的例子】: 全编脚本中make命令会调用build/core/main.mk,在里面可以看到一段…

品鉴中的平衡之美:如何欣赏红酒的口感与风格和谐

品鉴云仓酒庄雷盛红酒的过程,是对其口感与风格和谐的追求和欣赏。平衡是红酒品质的重要标志之一,它体现在红酒的色泽、香气、口感和余味等多个方面。通过欣赏红酒的平衡之美,我们可以更好地领略其精妙之处,感受其带来的美妙滋味。…

sql-labs(11-20)

1.less-11 1.判断类型 根据测试在使用 " 不会报错, 会报错,所以他是字符型的并且被单引号闭合,而且只有用户 登陆成功才会显示数据。所以先尝试报错注入 2.爆数据库 and updatexml(2,concat(0x7e,(select database()),0x7e),2)-- 3.爆数…

C++笔试强训day16

目录 1.字符串替换 2.神奇数 3.DNA序列 1.字符串替换 链接 简单的遍历替换即可&#xff1a; class Solution { public:string formatString(string str, vector<char>& arg) {string ret;int k 0;for (int i 0; i < str.size(); i){if (str[i] %){ret arg…

表格内容高效拆分,自定义行数随心所欲,让数据处理更高效!

在信息化社会的今天&#xff0c;表格成为了我们处理数据、整理信息的重要工具。然而&#xff0c;当表格内容过于庞大时&#xff0c;如何高效地拆分表格内容成为了摆在我们面前的一大难题。传统的拆分方法往往耗时耗力&#xff0c;且难以满足我们个性化的需求。 首先&#xff0…

Q1季度空气净化器行业线上市场(京东天猫淘宝)销售数据分析

随着人们对健康生活方式的追求&#xff0c;以及消费升级的推动&#xff0c;空气净化器市场正在逐步恢复增长态势。 根据鲸参谋数据显示&#xff0c;今年Q1季度空气净化器在线上市场&#xff08;京东天猫淘宝&#xff09;综合销量超90万件&#xff0c;同比去年增长4%&#xff1…

【配置】IT-Tools部署

github地址 docker运行如下&#xff0c;记得打开云服务器的9090端口 docker run -d --name it-tools --restart unless-stopped -p 9090:80 corentinth/it-tools:latestip:9090查看&#xff0c;很香大部分工具都有

react18【系列实用教程】useEffect —— 副作用操作 (2024最新版)

什么是副作用操作&#xff1f; useEffect 用于编写由渲染本身引起的对接组件外部的操作&#xff08;官方称呼为&#xff1a;副作用操作&#xff09; 以下情况会触发页面渲染 初次加载页面&#xff08;组的挂载&#xff09;响应式变量发生变化&#xff0c;触发页面根据新值重新…

代码随想录算法训练营第二十天:二叉树成长

代码随想录算法训练营第二十天&#xff1a;二叉树成长 110.平衡二叉树 力扣题目链接(opens new window) 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a;一个二叉树每个节点 的左右两个子树的高度差的绝…

语音网关有哪些?

语音网关是一种网络设备&#xff0c;它使得通过传统的电话网络&#xff08;如公共交换电话网络&#xff0c;PSTN&#xff09;和现代的数据网络&#xff08;如互联网或私有数据网络&#xff09;进行的语音通信成为可能。语音网关的主要作用是在模拟或数字电话信号与数据网络的数…

邓超大胆自嘲让全场观众笑出眼泪

《哈哈哈哈哈》第四季中&#xff0c;邓超大胆自嘲&#xff0c;让全场观众笑出眼泪&#xff01;嫁到上海已久的他&#xff0c;还听不懂上海话&#xff0c;这让老婆孙俪也忍不住笑出声来。这期节目一播出&#xff0c;网友们纷纷表示&#xff1a;“超哥今晚还敢回家吗&#xff1f;…

Oracle 多表查询

关联查询 一、sql:1992语法的连接笛卡尔积等值连接非等值连接自连接外连接 二、sql:1999语法的连接交叉连接自然连接USING创建连接ON创建连接左外连接右外连接FULL OUTER JOININNER JOIN 三、子查询子查询的种类单行子查询多行子查询 在From字句中使用子查询练习 四、行转列 一…

轮式机器人简介

迄今为止,轮子一般是移动机器人学和人造交通车辆中最流行的运动机构。它可达到很高的效率, 如图所示, 而且用比较简单的机械就可实现它的制作。 另外,在轮式机器人设计中,平衡通常不是一个研究问题。 因为在所有时间里,轮式机器人一般都被设计成在任何时间里所有轮子均与地接…

大模型时代,程序员如何卷?

最近在看电影《碟中谍7》&#xff0c;该片讲述了特工伊森亨特尝试与一个被称为智体的全能人工智能作战&#xff0c;其可以即时访问任何在线网络&#xff0c;他和他的团队成员试图找回控制人工智能智体所必需的两部分钥匙并将其摧毁的故事。 在剧中&#xff0c;智体是一个虚拟反…

日本住宅IP:安全、高效的新选择

在信息化社会&#xff0c;网络已成为人们工作、生活不可或缺的一部分。而IP地址&#xff0c;作为网络中的身份证&#xff0c;其重要性不言而喻。近年来&#xff0c;随着跨境业务、网络安全需求以及个人隐私保护意识的增强&#xff0c;日本住宅IP代理逐渐进入人们的视野&#xf…

Nginx Location配置详解

目录 一、Location语法结构1、语法结构说明2、各个标识的含义和优先级3、配置请求的根目录4、替换请求的uri 二、Location具体示例1、精确匹配2、正则匹配3、常规字符串匹配 三、调试Location的小技巧 一、Location语法结构 1、语法结构说明 在Nginx官方文档中定义的location…