Hardness of Scheme-Switching and Comparison in FHE

news/2024/7/7 14:39:11 标签: 密码学, 数学, 计算机, 线性代数, 区块链

参考文献:

  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

文章目录

  • Homomorphic Scheme-Switching
  • Bootstrapping via a Weak Scheme-Switching Oracle
    • Bootstrapping for CKKS
    • Bootstrapping for BGV
    • Switching using Bootstrapping
  • Bootstrapping via a Comparison Oracle
    • Comparison Oracles
    • Bootstrapping for CKKS
    • Bootstrapping for BGV

[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] 的自举。

在这里插入图片描述


http://www.niftyadmin.cn/n/5431968.html

相关文章

命令模式在量化交易系统开发中的应用

文章目录 一、命令模式的特点及优点二、命令模式在量化交易系统的应用 一、命令模式的特点及优点 命令模式是一种行为设计模式&#xff0c;它将请求封装成一个对象&#xff0c;从而使得可以使用不同的请求、队列或者日志来参数化其他对象。命令模式的特点和优点如下&#xff1a…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的草莓成熟度检测系统详解(深度学习模型+UI界面+Python代码+训练数据集)

摘要&#xff1a;本研究介绍了一个使用深度学习技术对草莓成熟度进行检测的系统&#xff0c;它采用了最新的YOLOv8算法&#xff0c;以及YOLOv7、YOLOv6、YOLOv5等前版本的算法&#xff0c;并对它们进行了性能对比。该系统能够在不同媒介上——如图像、视频文件、实时视频流和批…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:ScrollBar)

滚动条组件ScrollBar&#xff0c;用于配合可滚动组件使用&#xff0c;如List、Grid、Scroll。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 可以包含单个子组件。 接口 ScrollBar(val…

Java 异常 File

异常 异常是什么 程序中可能出现的问题。 异常体系的最上层父类是谁&#xff1f;异常分为几类&#xff1f; 父类&#xff1a;Exception 异常分为两类&#xff1a;编译时异常&#xff0c;运行时异常 编译时异常和运行时异常的区别 编译时异常&#xff1a;没有继承Runtime…

C. Tree Infection

思路&#xff1a;先处理出每个结点有多少个子节点&#xff0c;然后存到数组中&#xff0c;然后用二分时间。 首先Injection一定用于优先感染兄弟结点比较多的结点,这样可以充分利用Spreading,我们可以结点按照兄弟的数量排序,然后优先感染兄弟多的结点.这样我们就知道了,第一秒…

LeetCode 每日一题 2024/3/11-2024/3/17

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 3/11 2129. 将标题首字母大写3/12 1261. 在受污染的二叉树中查找元素3/13 2864. 最大二进制奇数3/14 2789. 合并后数组中的最大元素3/15 2312. 卖木头块3/16 2684. 矩阵中移…

HarmonyOS NEXT星河版——还是Android上套个壳吗?

这真的是我2024年听过最搞笑的话,就在前几天&#xff0c;居然还有人说鸿蒙OS就是安卓套个壳&#xff0c;简直无语&#xff01; 你敢相信&#xff1f;就在前几天&#xff0c;我还听到有人说&#xff1a;鸿蒙os就是安卓上套一个壳。唉&#xff0c;我真是无语了。 哎&#xff0c…

openGauss学习笔记-243 openGauss性能调优-SQL调优-典型SQL调优点-子查询调优

文章目录 openGauss学习笔记-243 openGauss性能调优-SQL调优-典型SQL调优点-子查询调优243.1 子查询调优243.1.1 子查询背景介绍243.1.2 openGauss对SubLink的优化243.1.3 更多优化示例 openGauss学习笔记-243 openGauss性能调优-SQL调优-典型SQL调优点-子查询调优 SQL调优是一…