Hardness of Scheme-Switching and Comparison in FHE

参考文献:

  1. [AP13] Alperin-Sheriffff, J., Peikert, C.: Practical bootstrapping in quasilinear time. In: Canetti, R., Garay, J.A. (eds.) CRYPTO 2013. LNCS, vol. 8042, pp. 1–20. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-40041-4 1
  2. [EGM23] Eldefrawy K, Genise N, Manohar N. On the Hardness of Scheme-Switching Between SIMD FHE Schemes[C]//International Conference on Post-Quantum Cryptography. Cham: Springer Nature Switzerland, 2023: 196-224.
  3. Bit Extraction and Bootstrapping for BGV/BFV

[EGM23] 证明了 Scheme-Switching 以及 Comparison 的困难度,给出了 BTS 到它们的归约。因此,方案切换和同态比较的计算复杂度不会很低,都与自举的复杂度相关联。

Homomorphic Scheme-Switching

根据 [AP13],可以使用标量乘法实现 BGV 和 BGV 之间的密文切换。现在,我们只关注 BGV 和 CKKS 之间的方案切换。[EGM23] 证明这是至少和 BTS 一样困难的问题。

首先,我们定义 Weak Scheme-Switching Oracles,这里的 “weak” 指的是不处理 encoding/decoding 问题,仅保证 m ( X ) ∈ R m(X) \in R m(X)R 是相同的。

在这里插入图片描述

当然,BGV 密文的相位是 m 1 ( X ) + p ⋅ e 1 ( X ) ∈ R Q 1 m_1(X)+p \cdot e_1(X) \in R_{Q_1} m1(X)+pe1(X)RQ1,而 CKKS 密文的相位是 Δ ⋅ m 2 ( X ) + e 2 ( X ) ∈ R Q 2 \Delta \cdot m_2(X)+e_2(X) \in R_{Q_2} Δm2(X)+e2(X)RQ2,为了保证可以相互正确转换,最基本的要求是 ∥ f ( e 1 ) ∥ ∞ < Δ \|f(e_1)\|_\infty < \Delta f(e1)<Δ 以及 ∥ m 2 ∥ ∞ < p / 2 \|m_2\|_\infty < p/2 m2<p/2

接下来,我们定义 Strong Scheme-Switching Oracles,它保证 evaluation representation (slots) 的一致性。可以由 weak 版本再附加上 StC 和 CtS 线性变换来得到。

在这里插入图片描述

Bootstrapping via a Weak Scheme-Switching Oracle

[EGM23] 给出了从 Bootstrapping 到 Weak Scheme-Switching 的归约。乍一看 BTS 似乎是比 Weak SS 更复杂的任务,但实际上后者不比前者简单。

Bootstrapping for CKKS

我们可以用 BGV-to-CKKS 实现 CKKS-BTS:关键在于把 CKKS 密文 c t ( s ) = Δ m + e + q I ( X ) ∈ R ct(s) = \Delta m+e + qI(X) \in R ct(s)=Δm+e+qI(X)R 视为 BGV 密文

设置其明文空间为 p = q p=q p=q,则消息是 Δ m + e \Delta m+e Δm+e,噪声是 I ( X ) I(X) I(X)。使用 BGV-to-CKKS 获得相位是 Δ ′ ( Δ m + e ) + e χ \Delta'(\Delta m+e)+e_\chi Δ(Δm+e)+eχ 的 CKKS 密文,利用 RS 消除额外的缩放因子,获得原始相位的 CKKS 密文。

在这里插入图片描述

归约算法的示意图:

在这里插入图片描述

Bootstrapping for BGV

我们可以用 CKKS-to-BGV 实现 BGV-BTS:关键在于把 BGV 密文 c t ( s ) = z ∈ R ct(s) = z \in R ct(s)=zR,其中 q = p r + 1 q=p^r+1 q=pr+1,视为 CKKS 密文

设置编码因子为 Δ = p r \Delta=p^r Δ=pr,则消息是 z [ r ] z[r] z[r],噪声是 z [ r − 1 : 0 ] z[r-1:0] z[r1:0]。使用 CKKS-to-BGV 获得 z [ r ] z[r] z[r] 的 BGV密文,然后可以利用 [GHS12] 的简化解密算法,获得 m = [ [ z ] q ] p = [ z [ 0 ] − z [ r ] ] p m = [[z]_q]_p = [z[0]-z[r]]_p m=[[z]q]p=[z[0]z[r]]p 的 BGV 密文。

在这里插入图片描述

归约算法的示意图:

在这里插入图片描述

Switching using Bootstrapping

利用 BTS 容易实现方案切换:关键在于把 BFV 密文 c t ( s ) = ⌊ Q / p ⌉ ⋅ m + e ct(s)=\lfloor Q/p\rceil \cdot m+e ct(s)=Q/pm+e 视为 “耗尽的” CKKS 密文,其中 Δ = ⌊ Q / p ⌉ \Delta=\lfloor Q/p\rceil Δ=Q/p

构造 weak 版本的方案切换,

  • 对于 BFV-to-CKKS,我们将 BFV 密文直接视为 CKKS 密文,调用 CKKS-BTS 提升模数,这就获得了具有足够计算容量的 CKKS 密文
  • 对于 CKKS-to-BFV,我们将 CKKS 密文模切换到最底层,可以视为 BFV 密文,调用 BFV-BTS 消除噪声,这就获得了具有足够计算容量的 BFV 密文

由于 BGV 和 BFV 的密文很容易相互转换,这也就实现了 BGV 和 CKKS 之间的切换。

Bootstrapping via a Comparison Oracle

在机器学习中,Min/Max 和 ReLU 都大量的用到了比较运算。但是比较运算难以表示为低次多项式,同态下计算的效率很低。[EGM23] 给出了同态比较的困难度证明,它也至少和 BTS 一样困难。

Comparison Oracles

首先,分别定义 BGV 和 CKKS 中的比较运算,

在这里插入图片描述

注意,这里定义的是密文 c t ct ct 和标量 α \alpha α 之间的比较。一般的算法设计中,计算的是两个密文之间的比较。前者可以归约到后者(自行用 pk 加密就是了),[EGM23] 证明了 BTS 可以归约到前者。因此两个密文的比较,实际上是一个很难的问题。

Bootstrapping for CKKS

由于 CKKS 密文的相位是 c t ( s ) = m + e + q I ∈ R ct(s)=m+e+qI \in R ct(s)=m+e+qIR,满足 q I ≪ Q qI \ll Q qIQ,因此可以假设 ∥ I ∥ ∞ < K \|I\|_\infty < K I<K,然后通过 log ⁡ K \log K logK 次迭代,依次二分搜索获得 I = ∑ i 2 i I i I=\sum_i 2^iI_i I=i2iIi,从而消除它得到 m + e ∈ R Q m+e \in R_Q m+eRQ 的密文。

在这里插入图片描述

Bootstrapping for BGV

在 BGV 密文自举时,首先得到 z = a ⋅ s + b ( m o d p r + 1 ) z=a \cdot s +b \pmod{p^{r+1}} z=as+b(modpr+1) 下的密文,然后试图分别提取 z [ 0 ] z[0] z[0] z [ r ] z[r] z[r],前者是自然的,而后者可以写作 z [ r ] = ∑ i 2 i z i z[r] = \sum_i 2^iz_i z[r]=i2izi,然后通过 log ⁡ p \log p logp 次迭代的二分搜索来获得,从而完成 [GHS12] 的自举。

在这里插入图片描述

  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值