Linear Decryption: Rate-1 FHE TLP

news2025/7/19 0:32:17

参考文献:

  1. [ILL89] Russell Impagliazzo, Leonid A. Levin, and Michael Luby. Pseudo-random generation from oneway functions (extended abstracts). In 21st Annual ACM Symposium on Theory of Computing, pages 12–24, Seattle, WA, USA, May 15–17, 1989. ACM Press.

  2. [RSW96] Rivest R L, Shamir A, Wagner D A. Time-lock puzzles and timed-release crypto[J]. 1996.

  3. [DJ01] Damgård I, Jurik M. A generalisation, a simplification and some applications of Paillier’s probabilistic public-key system[C]//Public Key Cryptography: 4th International Workshop on Practice and Theory in Public Key Cryptosystems, PKC 2001 Cheju Island, Korea, February 13–15, 2001 Proceedings 4. Springer Berlin Heidelberg, 2001: 119-136.

  4. [Mic19] Daniele Micciancio. From linear functions to fully homomorphic encryption. Technical report,2019. https://bacrypto.github.io/presentations/2018.11.30-Micciancio-FHE.pdf.

  5. [BDGM19] Brakerski Z, Döttling N, Garg S, et al. Leveraging linear decryption: Rate-1 fully-homomorphic encryption and time-lock puzzles[C]//Theory of Cryptography Conference. Cham: Springer International Publishing, 2019: 407-437.

  6. [MT19] Giulio Malavolta and Sri Aravinda Krishnan Thyagarajan. Homomorphic time-lock puzzles and applications. CRYPTO, 2019.

文章目录

  • Linear decrypt-and-multiply
    • from LHE to FHE
    • Linear Function
  • Rate-1 FHE
    • 密文收缩的 Regev
    • 扩展的 Paillier
    • Rate-1 FHE Construction
  • FH-TLP
    • Time-lock puzzles
    • Rate-1 FH-TLP

Linear decrypt-and-multiply

from LHE to FHE

[Mic19] 讨论了如何从弱线性同态(Weak Linear Homomorphic)得到全同态(Full Homomorphic)。

基于 LWE 的线性同态加密方案(Linear Homomorphic Encryption, LHE),不考虑细节,

  • 对称加密算法 E s ( m ; ( A , e ) ) : = ( A , A s + e + m ) ( m o d q ) E_s(m;(A,e)) := (A,As+e+m) \pmod q Es(m;(A,e)):=(A,As+e+m)(modq),可以视为 One-time Pad,特别地 ( O , m ) = E s ( m ; ( O , 0 ⃗ ) ) (O,m) = E_s(m;(O,\vec 0)) (O,m)=Es(m;(O,0 ))
  • 对称解密算法 D s ( ( A , b ) ) : = b − A s = m + e ( m o d q ) D_s((A,b)) := b-As = m+e \pmod q Ds((A,b)):=bAs=m+e(modq),这既是 c t = ( A , b ) ct=(A,b) ct=(A,b) 的线性函数,也是 s ′ = ( − s , 1 ) s'=(-s,1) s=(s,1) 的线性函数

由于解密是带噪的,因此我们往往对 m m m 做编码;这儿我们先不考虑纠错码。易知,上述的 LHE 满足:
E s ( m 1 ; ( A , e 1 ) ) + E s ( m 1 ; ( A , e 1 ) ) = E s ( m 1 + m 2 ; ( A , e 1 + e 2 ) ) c ⋅ E s ( m ; ( A , e ) ) = c ⋅ E s ( c ⋅ m ; ( c ⋅ A , c ⋅ e ) ) ,    c ∈ Z q E_s(m_1;(A,e_1))+E_s(m_1;(A,e_1)) = E_s(m_1+m_2;(A,e_1+e_2))\\ c \cdot E_s(m;(A,e)) = c \cdot E_s(c\cdot m;(c\cdot A,c\cdot e)),\,\, c \in \mathbb Z_q Es(m1;(A,e1))+Es(m1;(A,e1))=Es(m1+m2;(A,e1+e2))cEs(m;(A,e))=cEs(cm;(cA,ce)),cZq

由于数乘运算的噪声为 c ⋅ e c \cdot e ce,因此为了解密正确性,标量 c c c 是个有界范围的数。上述的 LHE 满足(弱)线性同态。为了计算任意标量 c c c 的数乘,可以定义 Powerof2 的密文:
E s ′ ( m ) = { E s ( m ) , E s ( 2 m ) , ⋯   , E s ( 2 log ⁡ q m ) } E'_s(m) = \{E_s(m),E_s(2m),\cdots,E_s(2^{\log q}m)\} Es(m)={Es(m),Es(2m),,Es(2logqm)}

那么对于任意的常数 c = ∑ i 2 i c i ∈ Z q c=\sum_i 2^ic_i \in \mathbb Z_q c=i2iciZq,我们定义运算 c ∗ E ′ ( m ) : = ∑ i c i ⋅ E ( 2 i m ) = E ( c ⋅ m ) c*E'(m) := \sum_i c_i \cdot E(2^i m) = E(c\cdot m) cE(m):=iciE(2im)=E(cm),噪声扩张因子仅为 log ⁡ q \log q logq 而非 q q q。为了维持密文格式,可以这么计算:
E s ′ ( c ⋅ m ) = { c ∗ E ′ ( m ) , ( 2 c ) ∗ E ′ ( m ) , ⋯   , ( 2 log ⁡ q c ) ∗ E ′ ( m ) } E_s'(c \cdot m) = \{c*E'(m),(2c)*E'(m),\cdots,(2^{\log q}c)*E'(m)\} Es(cm)={cE(m),(2c)E(m),,(2logqc)E(m)}

任意的弱线性同态的对称加密方案,都可以导出公钥方案:令公钥是一组密文 c t i = E s ( 0 ; ( A i , b i ) ) ct_i = E_s(0;(A_i,b_i)) cti=Es(0;(Ai,bi)),那么加密方案就是一种同态线性运算
∑ i r i ⋅ c t i + ( O , α ⋅ m ) = E s ( m ; ( ∑ i r i A i ,    ∑ i r i e i ) ) \sum_i r_i \cdot ct_i + (O,\alpha\cdot m) = E_s\left(m;\left(\sum_i r_iA_i,\,\, \sum_i r_ie_i\right)\right) iricti+(O,αm)=Es(m;(iriAi,iriei))

因为解密算法是关于私钥的线性函数,因此 LHE 可以使用私钥的密文来同态解密:将 E ′ ( s ′ ) = ( E ′ ( − s ) , E ′ ( 1 ) ) E'(s')=(E'(-s),E'(1)) E(s)=(E(s),E(1)) 作为公钥一部分,给定密文 E ( m ) = ( A , b ) E(m)=(A,b) E(m)=(A,b)
E ( m ) ∗ E ′ ( s ′ ) = A ∗ E ′ ( − s ) + b ∗ E ′ ( 1 ) = E ( b − A s ) = E ( m ) E(m) * E'(s') = A*E'(-s) + b*E'(1) = E(b-As) = E(m) E(m)E(s)=AE(s)+bE(1)=E(bAs)=E(m)

也就是我们把左操作数视为常数矩阵,右操作数视为 LHE 密文列向量,计算对应的线性函数(同态加法、任意标量的同态数乘)。如果我们以 E ′ ( α ⋅ s ′ ) E'(\alpha \cdot s') E(αs) 作为公钥一部分,那么就可以计算出 E ( m ) ∗ E ′ ( α ⋅ s ′ ) = E ( α ⋅ m ) E(m) * E'(\alpha \cdot s') = E(\alpha\cdot m) E(m)E(αs)=E(αm),这里的 α ∈ Z q \alpha \in \mathbb Z_q αZq 是任意小常数。

对 LHE 做同态的 “decrypt and multiply(解密+数乘)”,就可以实现 FHE:我们定义加密算法为 E ′ ′ ( m ) : = E ′ ( m ⋅ s ′ ) E''(m):=E'(m \cdot s') E′′(m):=E(ms),明文 m ∈ Z q m \in \mathbb Z_q mZq 是标量,那么
E ′ ′ ( m 1 ) ∗ E ′ ′ ( m 2 ) = { E ( m 1 ⋅ 2 i s ′ ) ∗ E ′ ( m 2 ⋅ s ′ ) } i = { E ( m 1 ⋅ 2 i s ′ ⋅ m 2 ) } i = E ′ ( m 1 m 2 ⋅ s ′ ) = E ′ ′ ( m 1 m 2 ) \begin{aligned} E''(m_1) * E''(m_2) &= \{E(m_1 \cdot 2^is')*E'(m_2 \cdot s')\}_i\\ &= \{E(m_1 \cdot 2^is' \cdot m_2)\}_i\\ &= E'(m_1m_2 \cdot s')\\ &= E''(m_1m_2)\\ \end{aligned} E′′(m1)E′′(m2)={E(m12is)E(m2s)}i={E(m12ism2)}i=E(m1m2s)=E′′(m1m2)

[GSW13] 的矩阵密文和它的近似本征矢,其实就是上述的 E s ′ ′ ( m ) E_s''(m) Es′′(m)(需要循环安全假设),所以它的同态乘法不会导致如 BGV/BFV 那样的密文规模扩张。而 [AP14] 中的 GSW 快速自举算法,其实就是 E s ( m ) ∗ E s ′ ′ ( s ) E_s(m)*E_s''(s) Es(m)Es′′(s)(也需要循环安全)。之后的 FHEW 中的 Multiplication via addition,基于布尔输入的特性 m 1 + m 2 = 2    ⟺    m 1 ⋅ m 2 = 1 m_1+m_2=2 \iff m_1 \cdot m_2=1 m1+m2=2m1m2=1 使用加法取代乘法 m 1 ⋅ m 2 = m 1 + m 2 2 m_1\cdot m_2 = \frac{m_1+m_2}{2} m1m2=2m1+m2

Linear Function

利用上述的 Linear decrypt-and-multiply,我们可以实现一个线性函数加密

g = ( 1 , 2 , 4 , ⋯   , 2 k ) g=(1,2,4,\cdots,2^{k}) g=(1,2,4,,2k) 是 Gadget 行矢, k k k 是明文比特长度,对应的 g − 1 ( ⋅ ) g^{-1}(\cdot) g1() 是二进制分解(列矢)。将 g g g 排列为 Gadget 矩阵 G ∈ Z q l × l k G \in \mathbb Z_q^{l \times lk} GZql×lk,那么 m ⃗ G = ( m 1 g , m 2 g , ⋯   , m l g ) \vec m G=(m_1g,m_2g,\cdots,m_lg) m G=(m1g,m2g,,mlg) 就是各个分量 powerof2 组成的行矢,容易对应构造 G − 1 ( ⋅ ) G^{-1}(\cdot) G1() 是各个分量的二进制分解组成的列矢。于是 m ⃗ G ⋅ G − 1 ( f ⃗ ) = m ⃗ ⋅ f ⃗ \vec mG \cdot G^{-1}(\vec f) = \vec m \cdot \vec f m GG1(f )=m f 计算了 l l l 变元线性函数 f ( m ) f(m) f(m)

我们令 Δ ∈ Z \Delta \in \mathbb Z ΔZ 是纠错能力,密文模数 q ≥ Δ ( 2 k ) 2 q \ge \Delta (2^k)^2 qΔ(2k)2(使得 Δ m i 2 k < q \Delta m_i 2^k < q Δmi2k<q 不溢出), ( A , B ) ∈ Z q n × m × Z q n × l k (A,B) \in \mathbb Z_q^{n \times m} \times \mathbb Z_q^{n \times lk} (A,B)Zqn×m×Zqn×lk 是公钥, S = [ − S ′ , I ] T ∈ Z q ( m + l k ) × l k S=[-S',I]^T \in \mathbb Z_q^{(m+lk) \times lk} S=[S,I]TZq(m+lk)×lk,易知 ( A , B ) ⋅ S = B − A S ′ = E ∈ Z q n × l k (A,B) \cdot S=B-AS'=E \in \mathbb Z_q^{n \times lk} (A,B)S=BAS=EZqn×lk

  1. 我们加密行矢 m ⃗ G ∈ Z q l k \vec mG \in \mathbb Z_q^{lk} m GZqlk,随机数 r ∈ Z q n r \in \mathbb Z_q^n rZqn,得到密文 C = ( r A , r B + Δ m ⃗ G + e ) ∈ Z q m + l k C=(rA,rB+\Delta\vec mG+e) \in \mathbb Z_q^{m+lk} C=(rA,rB+Δm G+e)Zqm+lk(行矢)

  2. 使用函数秘钥 S G − 1 ( f ⃗ ) ∈ Z q m + l k SG^{-1}(\vec f) \in \mathbb Z_q^{m+lk} SG1(f )Zqm+lk(列矢),线性解密得到
    C S ⋅ G − 1 ( f ⃗ ) = ( Δ m ⃗ G + e + r E ) ⋅ G − 1 ( f ⃗ ) = Δ f ( m ) + ( e + r E ) ⋅ G − 1 ( f ⃗ ) ∈ Z q \begin{aligned} CS \cdot G^{-1}(\vec f) &= (\Delta\vec mG+e+rE) \cdot G^{-1}(\vec f)\\ &= \Delta f(m)+(e+rE)\cdot G^{-1}(\vec f) \in \mathbb Z_q \end{aligned} CSG1(f )=(Δm G+e+rE)G1(f )=Δf(m)+(e+rE)G1(f )Zq

  3. 纠错后提取出函数值 f ( m ) = m ⃗ ⋅ f ⃗ ∈ [ 0 , 2 k ] f(m)=\vec m \cdot \vec f \in [0,2^k] f(m)=m f [0,2k]

Rate-1 FHE

正如 [Mic19] 所描述的,许多基于 LWE/SIS 的加密方案,其解密函数是关于私钥的线性函数,它满足
L α , c ( s ) = α ⋅ m + e , ∣ e ∣ < B L_{\alpha,c}(s) = \alpha \cdot m+e, |e|<B Lα,c(s)=αm+e,e<B

其中的 α \alpha α 并非被协议固定,而是可以任意选取的。这个计算过程叫做 “linear decrypt-and-multiply”,它可以在 LHE 下同态计算。

我们定义 Linear Decrypt-and-Multiply FHE

在这里插入图片描述

我们可以利用 L α , c L_{\alpha,c} Lα,c 线性函数,对于不同的密文 c i c_i ci 选取不同的标量 α i \alpha_i αi将多个 FHE 密文(明文空间 { 0 , 1 } \{0,1\} {0,1})打包到单个 LHE 密文(明文空间 Z q \mathbb Z_q Zq)中
L ∗ ( s ) : = ∑ i = 1 l L 2 i + 1 , c i ( s ) = ∑ i = 1 l 2 t + i m i + ∑ i = 1 l e i L^*(s) := \sum_{i=1}^l L_{2^{i+1},c_i}(s) = \sum_{i=1}^l 2^{t+i}m_i + \sum_{i=1}^l e_i L(s):=i=1lL2i+1,ci(s)=i=1l2t+imi+i=1lei

其中 e e e l B lB lB-bounded 的噪声项,只要满足 2 t > ∣ e ∣ 2^t>|e| 2t>e 则噪声不干扰消息 m i m_i mi 所占据的高位比特。由于 LHE 明文空间是 Z q \mathbb Z_q Zq,噪声占据了低位的 log ⁡ ( l B ) \log(lB) log(lB) 比特,我们设置参数 ϵ > 0 \epsilon>0 ϵ>0 使得模数 q ≈ ( l B ) 1 / ϵ q\approx (lB)^{1/\epsilon} q(lB)1/ϵ,那么消息 m i m_i mi 的空间占比至多为
log ⁡ ( q ) − log ⁡ ( l B ) log ⁡ ( q ) ≈ 1 − ϵ \dfrac{\log(q) - \log(lB)}{\log(q)} \approx 1-\epsilon log(q)log(q)log(lB)1ϵ

我们定义 FHE 方案的码率(Rate),

在这里插入图片描述

只要 LHE 本身是 Rate-1 的,那么将 l l l 个 FHE 密文的消息编码到单个 LHE 密文中,这也是 Rate-1 的。在需要进行同态计算时,类似自举,将 LHE 转化回 FHE 即可;而计算结束后,重新把 FHE 密文打包到 LHE 密文中,以降低存储开销。

上述的消息打包方案可以写作 ( 2 t + 1 , ⋯   , 2 t + l ) ⋅ ( m 1 , ⋯   , m l ) (2^{t+1},\cdots,2^{t+l}) \cdot (m_1,\cdots,m_l) (2t+1,,2t+l)(m1,,ml),更一般的编码形式为 T ⋅ m ,    T ∈ Z q k × l T \cdot m,\,\, T \in \mathbb Z_q^{k \times l} Tm,TZqk×l,它支持从 T m + e Tm+e Tm+e 中纠错解码出消息 m ⃗ \vec m m 。对于 Regev 方案,编码矩阵为 T = q 2 I T=\frac{q}{2}I T=2qI

密文收缩的 Regev

[BDGM19] 通过对 Regev-like 方案的密文做 “收缩(记为 Shrink,与 Compress 做区分)”,从而得到 Rate-1 LHE

除了原始 Regev 方案的 ( K e y G e n , E n c , D e c , E v a l ) (KeyGen, Enc, Dec, Eval) (KeyGen,Enc,Dec,Eval),我们额外添加两个功能:

  1. c ˉ ← S h r i n k ( p k , c ) \bar c \leftarrow Shrink(pk,c) cˉShrink(pk,c):将 LHE 密文收缩为一个 shrunk ciphertext
  2. m ← S h r i n k D e c ( s k , c ˉ ) m \leftarrow ShrinkDec(sk,\bar c) mShrinkDec(sk,cˉ):对 shrunk ciphertext 解密

[BDGM19] 将 LHE 的解密函数中的纠错码解码(舍入、取模)分离出来,使得 D e c ( ⋅ ) Dec(\cdot) Dec() 仅仅是一个线性函数。令编码矩阵 T ∈ Z q k × l T \in \mathbb Z_q^{k \times l} TZqk×l 指定了消息 m ∈ { 0 , 1 } l m \in \{0,1\}^l m{0,1}l 如何编码到空间 Z q k \mathbb Z_q^k Zqk 中,

在这里插入图片描述

假设私钥 S ∈ Z q k × n S \in \mathbb Z_q^{k \times n} SZqk×n,密文形如 ( c 1 , c 2 ) (c_1,c_2) (c1,c2),解密算法写作
D e c S ( c 1 , c 2 ) = F ( c 2 ) − S ⋅ H ( c 1 ) Dec_S(c_1,c_2) = F(c_2) - S \cdot H(c_1) DecS(c1,c2)=F(c2)SH(c1)

其中 F , H F,H F,H 是公开函数,于是解密函数就是关于 S S S 的线性函数,常数是 F ( c 2 ) ∈ Z q k , H ( c 1 ) ∈ Z q n F(c_2) \in \mathbb Z_q^k,H(c_1) \in \mathbb Z_q^n F(c2)Zqk,H(c1)Zqn

假设噪声规模为 B B B,编码矩阵为 T = q 2 I , k = l T=\frac{q}{2}I, k=l T=2qI,k=l,那么危险区是 [ q / 4 − B , q / 4 + B ] [q/4-B,q/4+B] [q/4B,q/4+B] 以及 [ − q / 4 − B , − q / 4 + B ] [-q/4-B, -q/4+B] [q/4B,q/4+B]。只要 q m / 2 qm/2 qm/2 不落在危险区内,解码时就不会出现错误。

密文收缩算法如下:

  • S h r i n k ( p k , ( c 1 , c 2 ) ) Shrink(pk,(c_1,c_2)) Shrink(pk,(c1,c2)):计算 F ( c 2 ) F(c_2) F(c2) 得到 ( y 1 , ⋯   , y l ) ∈ Z q l (y_1,\cdots,y_l) \in \mathbb Z_q^l (y1,,yl)Zql,定义区域
    U = ⋃ i = 1 l [ q / 4 − B − y i , q / 4 + B − y i ] ∪ [ − q / 4 − B − y i , − q / 4 + B − y i ] U = \bigcup_{i=1}^l [q/4-B-y_i,q/4+B-y_i] \cup [-q/4-B-y_i,-q/4+B-y_i] U=i=1l[q/4Byi,q/4+Byi][q/4Byi,q/4+Byi]

    我们任意选取 r ∈ Z q − U r \in \mathbb Z_q - U rZqU(只要 q q q 足够大,总会存在),计算 w i = ⌈ y i + r ⌋ 2 w_i = \lceil y_i+r \rfloor_2 wi=yi+r2,输出收缩的密文 c ˉ = ( r , c 1 , w 1 , ⋯   , w l ) \bar c = (r,c_1,w_1,\cdots,w_l) cˉ=(r,c1,w1,,wl)

  • S h r i n k D e c ( S , c ˉ ) ShrinkDec(S,\bar c) ShrinkDec(S,cˉ):计算 S ⋅ H ( c 1 ) S \cdot H(c_1) SH(c1) 得到 ( v 1 , ⋯   , v l ) ∈ Z q l (v_1,\cdots,v_l) \in \mathbb Z_q^l (v1,,vl)Zql,然后计算 m i = w i − ⌈ v i + r ⌋ 2 ( m o d 2 ) m_i = w_i-\lceil v_i+r \rfloor_2 \pmod 2 mi=wivi+r2(mod2),输出消息 m = ( m 1 . ⋯   , m l ) m=(m_1.\cdots,m_l) m=(m1.,ml)

因为 r ∉ U r \not\in U rU,因此 ∀ y i , y i + r ∉ [ q / 4 − B , q / 4 + B ] ∪ [ − q / 4 − B , − q / 4 + B ] \forall y_i, y_i+r \not\in [q/4-B,q/4+B] \cup [-q/4-B,-q/4+B] yi,yi+r[q/4B,q/4+B][q/4B,q/4+B]。根据解密函数等式 y i − v i = q m i / 2 + e i y_i-v_i = qm_i/2+e_i yivi=qmi/2+ei,得到
w i = ⌈ y i + r ⌋ 2 = ⌈ y i + r − e i ⌋ 2 = ⌈ q m i / 2 + v i + r ⌋ 2 = ⌈ v i + r ⌋ 2 + m i ( m o d 2 ) w_i=\lceil y_i+r \rfloor_2 = \lceil y_i+r-e_i \rfloor_2 = \lceil qm_i/2+v_i+r \rfloor_2 = \lceil v_i+r \rfloor_2+m_i \pmod 2 wi=yi+r2=yi+rei2=qmi/2+vi+r2=vi+r2+mi(mod2)

因为共有 l l l 个危险区 [ q / 4 − B − y i , q / 4 + B − y i ] ∪ [ − q / 4 − B − y i , − q / 4 + B − y i ] [q/4-B-y_i,q/4+B-y_i] \cup [-q/4-B-y_i,-q/4+B-y_i] [q/4Byi,q/4+Byi][q/4Byi,q/4+Byi],每个危险区长度为 4 B 4B 4B,因此只要模数 q > 4 l B q>4lB q>4lB,就可以找到 r ∉ U r \not\in U rU。上述密文收缩过程,把密文分量 c 2 c_2 c2 压缩到了 log ⁡ q + l \log q + l logq+l 比特( r r r w i w_i wi),而消息长度为 l l l 比特。接下来,我们让多个 LHE 密文共用分量 c 1 c_1 c1,于是均摊之后将得到 rate-1 的 LHE 方案。

k = log ⁡ q k=\log q k=logq,设 g = ( 1 , 2 , ⋯   , 2 k ) g=(1,2,\cdots,2^k) g=(1,2,,2k) 是 Gadget 行矢,那么 y = g x ∈ Z q y=gx \in \mathbb Z_q y=gxZq 就是二进制合成,而对应的 g − 1 ( y ) g^{-1}(y) g1(y) 就是二进制分解。我们记 G i ∈ Z q l × k G_i \in \mathbb Z_q^{l \times k} GiZql×k 是除了第 i i i 行是 g g g 其他的位置都是零的矩阵。

由于 Regev 方案仅仅是加法同态的,为了支持任意标量的数乘,使用 g , g − 1 g,g^{-1} g,g1 将消息 m i m_i mi 扩展为向量。我们定义 Packed Regev Encryption 线性同态加密方案,

在这里插入图片描述

只要 m > ( n + l ) log ⁡ q + w ( log ⁡ λ ) m>(n+l)\log q+w(\log \lambda) m>(n+l)logq+w(logλ),那么根据 Leftover-Hash Lamma [ILL89] 可知密文 ( C 1 , C 2 ) (C_1,C_2) (C1,C2) 统计接近均匀分布。经过 E v a l Eval Eval 后,噪声为 e = E ⋅ ∑ i R i ⋅ g − 1 ( f i ) e=E \cdot \sum_i R_i \cdot g^{-1}(f_i) e=EiRig1(fi),规模 ∥ e ∥ ∞ ≤ t k m B \|e\|_\infty \le tkmB etkmB。因此我们选取 q ≈ 4 l t k m B q \approx 4ltkmB q4ltkmB,使得存在 r r r 来收缩密文得到 ( r , c 1 , w 1 , ⋯   , w l ) (r,c_1,w_1,\cdots,w_l) (r,c1,w1,,wl),密文规模为 ( n + 1 ) log ⁡ q + l (n+1)\log q+l (n+1)logq+l,码率为
ρ = l ( n + 1 ) log ⁡ q + l ≥ 1 − ( n + 1 ) log ⁡ q l \rho = \dfrac{l}{(n+1)\log q+l} \ge 1 - \dfrac{(n+1)\log q}{l} ρ=(n+1)logq+ll1l(n+1)logq

对于 q = p o l y ( λ ) q=poly(\lambda) q=poly(λ),可界定 log ⁡ q ≤ ( log ⁡ λ ) 2 \log q \le (\log \lambda)^2 logq(logλ)2,选取充分大的 l ≥ n λ ( log ⁡ λ ) 2 l \ge n\lambda(\log \lambda)^2 l(logλ)2 可以使得 ρ ≥ 1 − 1 / λ \rho \ge 1-1/\lambda ρ11/λ。这就得到了 Rate-1 LHE。

扩展的 Paillier

[DJ01] 扩展了 Paillier 算法,将群 Z n 2 ∗ \mathbb Z_{n^2}^* Zn2 推广到了 Z n s + 1 ∗ , ∀ s ≥ 1 \mathbb Z_{n^{s+1}}^*, \forall s\ge 1 Zns+1,s1,使得码率接近于 1 1 1。而 Paillier 本身是一个 LHE,这是另一种 Rate-1 LHE,好处是计算无噪声,但是安全性基于数论假设而非格上困难问题。

p , q p,q p,q 是安全素数, n = p q n=pq n=pq 是个 RSA 模数。对于 ∀ s < p , q \forall s < p,q s<p,q,可以证明乘法群 Z n s + 1 ∗ ≅ G × H \mathbb Z_{n^{s+1}}^* \cong G \times H Zns+1G×H,其中 G G G n s n^s ns 阶循环群,且 H ≅ Z n ∗ H \cong \mathbb Z_n^* HZn。可以证明在 Z n s + 1 ∗ \mathbb Z_{n^{s+1}}^* Zns+1 中有 o r d ( n + 1 ) = n s ord(n+1)=n^s ord(n+1)=ns,于是 G ˉ : = Z n s + 1 ∗ / H = ⟨ ( n + 1 ) H ⟩ \bar G := \mathbb Z_{n^{s+1}}^*/H = \langle (n+1)H \rangle Gˉ:=Zns+1/H=⟨(n+1)H 是循环群,陪集 ( n + 1 ) i H ⊆ Z n s + 1 ∗ (n+1)^iH \subseteq \mathbb Z_{n^{s+1}}^* (n+1)iHZns+1 可以用自然数编号。

循环群 G ˉ \bar G Gˉ 上的 DL 问题是简单的。定义函数 L ( b ) = ( b − 1 ) / n L(b)=(b-1)/n L(b)=(b1)/n(这儿就是整数除法,并非求逆元),那么
L ( ( n + 1 ) i ( m o d n s + 1 ) ) = ( i 1 ) + ( i 2 ) n + ⋯ + ( i s ) n s − 1 ( m o d n s ) L((n+1)^i \pmod{n^{s+1}}) = {i \choose 1}+{i \choose 2}n +\cdots+ {i \choose s}n^{s-1} \pmod{n^s} L((n+1)i(modns+1))=(1i)+(2i)n++(si)ns1(modns)

为了提取出 ( n + 1 ) i ( m o d n s + 1 ) (n+1)^i \pmod{n^{s+1}} (n+1)i(modns+1) 的指数 i i i,我们依次计算 i j : = i ( m o d n j + 1 ) i_j:=i \pmod{n^{j+1}} ij:=i(modnj+1),易知
i 1 = L ( ( n + 1 ) i ( m o d n 2 ) ) = i ( m o d n ) i_1 =L((n+1)^i \pmod{n^{2}}) = i \pmod n i1=L((n+1)i(modn2))=i(modn)

假设已知 i j − 1 i_{j-1} ij1,我们计算 i j = i j − 1 + k ⋅ n j − 1 i_j = i_{j-1}+k \cdot n^{j-1} ij=ij1+knj1
L ( ( n + 1 ) i ( m o d n j + 1 ) ) = ( i j 1 ) + ( i j 2 ) n + ⋯ + ( i j j ) n j − 1 ( m o d n j ) = ( i j − 1 + k ⋅ n j − 1 ) + ( i j − 1 2 ) n + ⋯ + ( i j − 1 j ) n j − 1 ( m o d n j ) \begin{aligned} L((n+1)^{i} \pmod{n^{j+1}}) &= {i_j \choose 1}+{i_j \choose 2}n +\cdots+ {i_j \choose j}n^{j-1} \pmod{n^j}\\ &= (i_{j-1}+k \cdot n^{j-1}) + {i_{j-1} \choose 2}n +\cdots+ {i_{j-1} \choose j}n^{j-1} \pmod{n^j} \end{aligned} L((n+1)i(modnj+1))=(1ij)+(2ij)n++(jij)nj1(modnj)=(ij1+knj1)+(2ij1)n++(jij1)nj1(modnj)

于是重写为迭代公式:
i j = i j − 1 + k ⋅ n j − 1 = L ( ( n + 1 ) i ( m o d n j + 1 ) ) − ( i j − 1 2 ) n − ⋯ − ( i j − 1 j ) n j − 1 ( m o d n j ) \begin{aligned} i_j &= i_{j-1}+k \cdot n^{j-1}\\ &= L((n+1)^{i} \pmod{n^{j+1}}) - {i_{j-1} \choose 2}n -\cdots- {i_{j-1} \choose j}n^{j-1} \pmod{n^j} \end{aligned} ij=ij1+knj1=L((n+1)i(modnj+1))(2ij1)n(jij1)nj1(modnj)

i 1 i_1 i1 开始,迭代到 i s i_s is 结束,输出指数 i = i s ∈ Z n s i=i_s \in \mathbb Z_{n^s} i=isZns

[DJ01] 给出的加密算法如下:

在这里插入图片描述

消息空间 Z n s \mathbb Z_{n^s} Zns,密文空间 Z n s + 1 ∗ \mathbb Z_{n^{s+1}}^* Zns+1,因此码率为
ρ = log ⁡ ( n s ) log ⁡ ( n s + 1 ) \rho = \dfrac{\log(n^{s})}{\log(n^{s+1})} ρ=log(ns+1)log(ns)

当选取足够大的 s s s,就得到了 Rate-1 LHE。我们使用 T = ( 2 log ⁡ B , 2 log ⁡ B + 1 , ⋯   , 2 ⌈ s log ⁡ n ⌉ ) T=(2^{\log B},2^{\log B+1},\cdots,2^{\lceil s\log n\rceil}) T=(2logB,2logB+1,,2slogn) 作为编码矩阵,抵御 B B B-bounded 的噪声。

Rate-1 FHE Construction

现在我们给出 Rate-1 FHE 的构造。除了原始 FHE 方案的 ( K e y G e n , E n c , D e c , E v a l ) (KeyGen, Enc, Dec, Eval) (KeyGen,Enc,Dec,Eval),我们额外添加两个功能:

  1. c ∗ ← C o m p r e s s ( p k , c 1 , ⋯   , c l ) c^* \leftarrow Compress(pk,c_1,\cdots,c_l) cCompress(pk,c1,,cl):将多个FHE 密文压缩为一个 compressed ciphertext
  2. ( m 1 , ⋯   , m l ) ← C o m p r e s s D e c ( s k , c ∗ ) (m_1,\cdots,m_l) \leftarrow CompressDec(sk,c^*) (m1,,ml)CompressDec(sk,c):对 compressed ciphertext 解密得到多个消息

基于 FHE 以及 Rate-1 LHE,我们构造 Rate-1 FHE:

在这里插入图片描述

在这里插入图片描述

FH-TLP

Time-lock puzzles

时间锁谜题(Time-lock puzzles)最早在 [RSW96] 中作为一种 “时间依赖的密码” 被提出。谜题是基于困难问题的,并且被设置为无法并行加速,为了得到秘密,人们不得不持续运行求解器。[RSW96] 给出了一种基于 RSA 问题的 TLP,

  1. Alice 生成一对安全素数 p , q p,q p,q,计算 n = p q n=pq n=pq ϕ ( n ) = ( p − 1 ) ( q − 1 ) \phi(n)=(p-1)(q-1) ϕ(n)=(p1)(q1)
  2. Alice 生成对称秘钥 K K K,加密消息 M M M C M = E n c K ( M ) C_M=Enc_K(M) CM=EncK(M)
  3. Alice 随机生成 a ∈ [ n ] a \in [n] a[n],加密秘钥 K K K C K = K + a 2 t C_K = K+a^{2^t} CK=K+a2t,其中 t t t 是预设的延迟时间。由于 Alice 持有 ϕ ( n ) \phi(n) ϕ(n),因此 e = 2 t ( m o d ϕ ( n ) ) e=2^t \pmod {\phi(n)} e=2t(modϕ(n)) 是容易计算的。
  4. Alice 发布 ( C M , C K , n , a , t ) (C_M,C_K,n,a,t) (CM,CK,n,a,t) 作为谜题。由于 Bob 不知道 ϕ ( n ) \phi(n) ϕ(n),因此他只能串行计算一系列的模平方 e 2 , e 4 , ⋯   , e 2 t e^2,e^4,\cdots,e^{2^t} e2,e4,,e2t,花费的时间是 t t t

想要更快的完成 t t t 次模平方,除非 Bob 拥有 IPS 特别高的 CPU,别无他法。

Rate-1 FH-TLP

同态的时间锁谜题,他可以对加密在多个时间锁谜题中的消息做同态计算,得到一个新的时间锁谜题,而无需爆破每一个谜题。定义如下:

在这里插入图片描述

在 [MT19] 中提出了一种线性同态的时间锁谜题:公钥 ( N = p q , g ∈ Z N ∗ , h = g 2 T ) (N=pq, g \in \mathbb Z_N^*, h=g^{2^T}) (N=pq,gZN,h=g2T),秘密 s ∈ Z N s \in \mathbb Z_N sZN,谜题为 ( g r ( m o d N ) , h r N ( N + 1 ) s ( m o d N 2 ) ) \left(g^r \pmod N, h^{rN}(N+1)^s \pmod{N^2}\right) (gr(modN),hrN(N+1)s(modN2)),其中 r ← R Z N 2 r \leftarrow_R \mathbb Z_{N^2} rRZN2 是随机数。Alice 知道 r r r,因此可以用快速幂算法计算 h r N ( m o d N 2 ) h^{rN} \pmod{N^2} hrN(modN2);而 Bob 只知道 g r ( m o d N ) g^r \pmod N gr(modN),只能串行计算 T T T 次模平方,恢复出 ( N + 1 ) s ( m o d N 2 ) (N+1)^s \pmod{N^2} (N+1)s(modN2) 则指数 s s s 容易计算。它是线性同态的,类似于 [DJ01] 可以获得 Rate-1 LH-TLP

因为全同态 TLP 的各个谜题可能来自多个用户,我们需要用到 MK-FHE,使用上面的技术可以做到 Rate-1 的。基于 MK-FHE 和 LH-TLP,可以得到 Rate-1 FH-TLP

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

苹果macOS13Ventura更新体验:新功能带来的全新体验

macOS 13 Ventura 是一款功能强大、界面美观的操作系统。它为用户提供了更好的使用体验&#xff0c;加强了与其他设备的互联互通&#xff0c;提高了隐私和安全性。无论是日常办公还是娱乐&#xff0c;macOS 13 Ventura 都能满足用户的需求&#xff0c;并带来更多的便利和乐趣。…

Linux之history、tab、alias、命令执行顺序、管道符以及exit

目录 Linux之history、tab、alias、命令执行顺序、管道符以及exit history历史命令 格式 参数 修改默认记录历史命令条数 案例 案例1 --- 显示history历史记录中出现次数最高的top10 案例2 --- 增加history显示的时间信息 命令与文件名补全 --- tab 命令别名 格式 案…

线性代数的学习和整理22:矩阵的点乘(草稿)

4 矩阵乘法 A,B两个同阶同秩N阵&#xff0c;看上去结构一样&#xff0c;但两厢相乘&#xff0c;在做在右&#xff0c;地位差别巨大。 在左&#xff0c;你就是基&#xff0c;是空间的根本&#xff0c;是坐标系&#xff0c;是往哪去、能到哪的定海神针&#xff0c;是如来佛手&a…

编程语言排行榜

以下是2023年的编程语言排行榜&#xff08;按照流行度排序&#xff09;&#xff1a; Python&#xff1a;Python一直以来都是非常受欢迎的编程语言&#xff0c;它简洁、易读且功能强大。在数据科学、机器学习、人工智能等领域有广泛应用。 JavaScript&#xff1a;作为前端开发…

seatunnel win idea 本地调试

调试FakeSource&#xff0c;LocalFile # Set the basic configuration of the task to be performed env {execution.parallelism 1job.mode "BATCH" }# Create a source to connect to Mongodb source {# This is a example source plugin **only for test and d…

穷举深搜暴搜回溯剪枝(4)

一)单词搜索: 直接在矩阵中依次找到特定字符串 79. 单词搜索 - 力扣&#xff08;LeetCode&#xff09; 画出决策树&#xff0c;只需要做一个深度优先遍历: 1)设计dfs函数:只需要关心每一层在做什么即可&#xff0c;从这个节点开始&#xff0c;开始去尝试匹配字符串的下一个字符…

如何配置视频直播点播平台EasyDSS视频服务平台参数,使同一直播间实现重复推流?

EasyDSS视频直播点播平台集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体&#xff0c;可提供音视频采集、视频推拉流、播放H.265编码视频等功能&#xff0c;分发的视频流可覆盖全终端、全平台。 EasyDSS已创建的直播间可支持重复推流&#xff0c;但为了保证直…

使用Idea导入mybatis dependence时爆红解决方法

<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.5</version></dependency>如上在pom.xml中配置mybatis的dependence1时出现爆红的情况。 解决方法 找到idea编辑器右侧的maven按钮…

Linux 中的 chroot 命令及示例

Linux/Unix系统中的chroot命令用于更改根目录。Linux/Unix 类系统中的每个进程/命令都有一个称为root 目录的当前工作目录。它更改当前正在运行的进程及其子进程的根目录。 在此类修改的环境中运行的进程/命令无法访问根目录之外的文件。这种修改后的环境称为“ chroot监狱”或…

maven依赖找不到的解决:手动下载、多镜像导入。

maven中央仓库&#xff0c;远在国外&#xff0c;没下载&#xff0c;因为网络原因迟迟下载不下来&#xff0c;所以我们就需要配置一些国内的镜像仓库&#xff0c;来进行jar包的下载。但是阿里的仓库并没有收录中央仓库的全部jar包&#xff0c;因此导致我们有些jar包下载不下来&a…

什么是数据中台,关于数据中台的6问6答6方法

在大数据/数字孪生时代&#xff0c;数据中台已经成为企业治理数据的核心平台。数据中台不仅处理和整合大量数据&#xff0c;还负责数据的存储、管理和保护工作&#xff0c;确保数据的准确性和可用性。数据中台的特点在于其能够提高业务效率&#xff0c;降低成本&#xff0c;增加…

【漏洞复现】深信服科技EDR平台存在任意用户登录漏洞

漏洞描述 深信服终端检测响应平台EDR,通过云网端联动协同、威胁情报共享、多层级响应机制,帮助用户快速处置终端安全问题,构建轻量级、智能化、响应快的下一代终端安全系统。 该EDR系统存在任意用户登录漏洞&#xff0c;攻击者通过漏洞可以登录系统后台并获取服务器的敏感信息…

深入讲解内存分配函数 malloc 原理及实现

任何一个用过或学过C的人对 malloc 都不会陌生。大家都知道malloc可以分配一段连续的内存空间&#xff0c;并且在不再使用时可以通过free释放掉。但是&#xff0c;许多程序员对malloc背后的事情并不熟悉&#xff0c;许多人甚至把malloc当做操作系统所提供的系统调用或C的关键字…

libQGLViewer的编译和使用

文章目录 libQGLViewer的编译和使用1 前言2 libQGLViewer开发环境搭建2.1 Qt Creator的下载安装2.2 libQGLViewer的下载编译2.3 安装Qt Designer 的QGLViewer控件插件&#xff08;可选&#xff09;2.3 关于Qt Designer 的QGLViewer控件插件的一些问题 3 在自己的项目中调用4 总…

苹果macOS 13.5.2正式发布 修复ImageIO进程

9 月 8 日消息&#xff0c;苹果今日向 Mac 电脑用户推送了 macOS 13.5.2 更新&#xff08;内部版本号&#xff1a;22G91&#xff09;&#xff0c;本次更新距离上次发布隔了 21 天。 需要注意的是&#xff0c;因苹果各区域节点服务器配置缓存问题&#xff0c;可能有些地方探测到…

LED屏幕电流驱动设计原理

LED电子显示屏作为户外最大的应用产品&#xff0c;是大型娱乐&#xff0c;体育赛事&#xff0c;广场大屏幕等场所不可或缺的产品&#xff0c;从单双色简单的文字展示到今天的高清全彩&#xff0c;显示屏的技术一直都在进步&#xff0c;全球80%的LED电子显示屏皆产自于中国。显示…

Docker 概念构成

0 概述 构成原理 Docker 客户端(Client)Docker 客户端通过命令行或者其他工具使用 Docker SDK与 Docker 的守护进程通信。Docker 主机(Host)一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。Docker Hub 提供了庞大的镜像集合供使用。一个 Docker Registry 中可以包含多…

小程序代码管理

“微信开发者工具”点击版本管理&#xff0c;然后点击代码管理会打开代码管理网页。 选择对应的项目组。 进来后点击创建项目。 输入git名称&#xff0c;然后选择命名空间&#xff0c;最后创建即可。 在刚才的“微信开发者工具”选择设置&#xff0c;然后添加远程。 输入名称&…

创建vue项目时如何选择代码检测和格式化方案

&#x1f3ff; 前言 我们创建vue项目时&#xff0c;通常会涉及到选择代码检测和格式化方案&#xff0c;该如何挑选适合自己的个性化配置&#xff1f;本文就来谈谈 ESLint 各个模式的编码规范&#xff0c;以便大家根据自身情况进行选取。 选择Linter / Formatter配置: 选项&…

IIS解析漏洞复现

文章目录 漏洞复现总结 漏洞复现 打开虚拟机&#xff0c;在C:\inetpub\wwwroot\8000_test目录下放一个phpinfo.php文件&#xff1a; 在服务器管理器中打开IIS管理器&#xff0c;选择处理映射程序&#xff1a; 点击添加模块映射&#xff1a; 配置映射模板&#xff0c;php文件…