Multi-value PBS

参考文献:

  1. [CIM19] Carpov S, Izabachène M, Mollimard V. New techniques for multi-value input homomorphic evaluation and applications[C]//Topics in Cryptology–CT-RSA 2019: The Cryptographers’ Track at the RSA Conference 2019, San Francisco, CA, USA, March 4–8, 2019, Proceedings. Springer International Publishing, 2019: 106-126.
  2. [CGGI20] Chillotti I, Gama N, Georgieva M, et al. TFHE: fast fully homomorphic encryption over the torus[J]. Journal of Cryptology, 2020, 33(1): 34-91.
  3. [GBA21] Guimarães A, Borin E, Aranha D F. Revisiting the functional bootstrap in TFHE[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2021: 229-253.

文章目录

  • Multi-value PBS
    • Test polynomial factorization
    • Homomorphic LUT
  • Combine PBS
    • Tree-based PBS
    • Chain-based PBS
    • Improving building blocks
      • Base-aware Key-Switching
      • Multi-Value Extract

Multi-value PBS

[CIM19] 分析了 FHEW 和 TFHE 的自举程序,发现:

  1. FHEW 使用 ACC 计算 X b − s T a X^{b-s^Ta} XbsTa,然后使用关于 F F F 的 Test Vector 作用到 ACC 上(多项式数乘),将 LUT 旋转为常数项是 F ( m ) F(m) F(m)
    • 优点:盲旋转获得的 ACC,可以作用到关于不同 F F F 的多个 TV 上
    • 缺点:由于 ACC 和 TV 的乘法,噪声增长依赖于 TV 的范数
  2. TFHE 直接把这个 Test Vector 嵌入到初始的 ACC 中,计算过程中将它旋转 X b − s T a X^{b-s^Ta} XbsTa 使得常数项是 F ( m ) F(m) F(m)
    • 优点:公开的 TV 直接初始嵌入到了 ACC 里,输出的噪声独立于 TV 范数
    • 缺点:每次 PBS 只能计算单个函数

总体来说,FHEW-like 的 LUT 计算步骤是:选取合适的 T V F TV_F TVF,使得
T V F ( X ) ⋅ X m ≡ F ( m ) + R ( X ) ( m o d Φ 2 N ( X ) ) TV_F(X) \cdot X^m \equiv F(m) + R(X) \pmod{\Phi_{2N}(X)} TVF(X)XmF(m)+R(X)(modΦ2N(X))
其中 R ( X ) R(X) R(X) 的常数项为零, F ( m ) F(m) F(m) 是常数项。其中的 X m X^m Xm 是在 ACC 中同态计算的, T V F TV_F TVF 根据需要加密(电路隐私)或不加密(公开的电路)。

注意 FHEW-like 不支持 LWE/RLWE 密文之间的 BGV-like 乘法,

  • TFHE 可以之间将 T V F TV_F TVF 加密在 RLWE-based ACC 中。
  • 但是 FHEW 需要将 T V F TV_F TVF 加密在 RGSW 内,使用外积来计算乘积(同态的模结构)。如果仅知道它的 RLWE 密文,还需要使用 [CGGI20] 的电路自举(多个 Gate PBS 求出若干 LWE 拼接成 GSW)。

Test polynomial factorization

为了综合 FHEW 和 TFHE 的优点,[CIM19] 提出将 Test Vector 分解为两部分,一部分(独立于 F F F)初始加密在 ACC 内,另一部分(依赖 F F F)最后最用到 ACC 上。

确切地说,给定任意的反循环函数 F : Z 2 N → Z 2 N F: \mathbb Z_{2N} \to \mathbb Z_{2N} F:Z2NZ2N(编码了待计算的 f : Z s → Z t f:\mathbb Z_s \to \mathbb Z_t f:ZsZt),Test Vector 对应的多项式为:
T V F ( X ) = F ( 0 ) − ∑ i = 1 N − 1 F ( N − i ) ⋅ X i ∈ Z [ X ] TV_F(X) = F(0) - \sum_{i=1}^{N-1} F(N-i) \cdot X^i \in \mathbb Z[X] TVF(X)=F(0)i=1N1F(Ni)XiZ[X]
我们简记 T V F ( X ) TV_F(X) TVF(X) 的各项系数为 t i ∈ Z 2 N t_i \in \mathbb Z_{2N} tiZ2N

我们做如下分解:
τ ⋅ T V ( 0 ) ( X ) ⋅ T V ( 1 ) ( X ) ≡ T V F ( X ) ( m o d Φ 2 N ( X ) ) \tau \cdot TV^{(0)}(X) \cdot TV^{(1)}(X) \equiv TV_F(X) \pmod{\Phi_{2N}(X)} τTV(0)(X)TV(1)(X)TVF(X)(modΦ2N(X))
[CIM19] 设置 τ = 1 / 2 \tau = 1/2 τ=1/2 以及 T V ( X ) = ∑ i X i TV(X) = \sum_i X^i TV(X)=iXi,计算出 T V F ( 1 ) ( X ) TV_F^{(1)}(X) TVF(1)(X) 系数:
t 0 ′ = t 0 + t N − 1 , t k ′ = t k − t k − 1 , ∀ k ≥ 1 t_0' = t_0+t_{N-1},\,\, t_k' = t_k-t_{k-1},\forall k \ge 1 t0=t0+tN1,tk=tktk1,k1
其实也可以令 τ \tau τ 是多项式 T V F TV_F TVF 系数的最大公因子,这使得 T V F ( 1 ) ( X ) TV_F^{(1)}(X) TVF(1)(X) 的范数更小些。

在这里插入图片描述

几何解释:

  1. T V ( 0 ) TV^{(0)} TV(0) 嵌入到 ACC 内,它测试的是消息的 MSB,分别输出 ± τ \pm \tau ±τ
  2. T V F ( 1 ) TV_F^{(1)} TVF(1) 作用到 ACC 上,它将上述的结果做了线性组合 t i ′ X i t_i'X^i tiXi,最终输出 F ( m ) F(m) F(m)

对于待计算的反循环函数 f : Z s → Z q f:\mathbb Z_s \to \mathbb Z_q f:ZsZq s , q ∣ 2 N s,q \mid 2N s,q2N,令 r ( m ) : = ⌊ m ⋅ t / 2 N ⌉ r(m):=\lfloor m \cdot t/2N \rceil r(m):=mt/2N 是缩放舍入函数,那么设置 F = f ∘ r F = f \circ r F=fr,构造出 T V F ( 1 ) ( X ) TV_F^{(1)}(X) TVF(1)(X),[CIM19] 证明了
∥ T V F ( 1 ) ( X ) ∥ 2 2 ≤ s ⋅ ( q − 1 ) 2 \Big\| TV_F^{(1)}(X) \Big\|_2^2 \le s \cdot (q-1)^2 TVF(1)(X) 22s(q1)2

Homomorphic LUT

现在,我们利用分解出的单个 τ ⋅ T V ( 0 ) \tau \cdot TV^{(0)} τTV(0) 和若干个 T V F i ( 1 ) TV^{(1)}_{F_i} TVFi(1),执行 multi-value PBS,

在这里插入图片描述

其中最花费时间的 step 3 是公共部分,仅执行一次。根据不同的 F i F_i Fi,多次执行 step 4,输出同一个消息 m m m 的不同函数值 F i ( m ) F_i(m) Fi(m)

在这里插入图片描述

为了计算 multi-value 布尔函数 f : Z 2 r → Z 2 t f:\mathbb Z_2^r \to \mathbb Z_2^t f:Z2rZ2t,由于 T V F ( 1 ) TV_F^{(1)} TVF(1) 范数的约束,[CIM19] 将它分解为多个函数
f 1 , ⋯ f t : Z 2 r → Z 2 f_1,\cdots f_t: \mathbb Z_{2^r} \to \mathbb Z_2 f1,ft:Z2rZ2
其中 f i f_i fi 的 domain 是整环 Z s , s = 2 r \mathbb Z_s,s=2^r Zs,s=2r,range 是整环 Z q , q = 2 \mathbb Z_q,q=2 Zq,q=2,从而有 ∥ T V F ( 1 ) ∥ 2 2 ≤ 2 r \| TV_F^{(1)} \|_2^2 \le 2^r TVF(1)222r

为了方便布尔值和整环之间的转换 ϕ : ( m 0 , ⋯ , m r − 1 ) ∈ Z 2 r ↦ m ∈ Z 2 r \phi: (m_0,\cdots,m_{r-1})\in \mathbb Z_2^r \mapsto m \in \mathbb Z_{2^r} ϕ:(m0,,mr1)Z2rmZ2r,以及为了计算任意的布尔函数,[CIM19] 将 m ∈ Z 2 r m \in \mathbb Z_{2^r} mZ2r 缩放为 m / 2 r + 1 ∈ [ 0 , 0.5 ) m/2^{r+1} \in [0,0.5) m/2r+1[0,0.5) 加密在 TFHE 密文中(MSB 强制为零),同时把 m i ∈ Z 2 m_i \in \mathbb Z_2 miZ2 缩放为 m i / 2 r + 1 m_i/2^{r+1} mi/2r+1,从而实现 PBS 的输入输出之间的连接。

在这里插入图片描述

对于 6-bits to 6-bits PBS,此方案的计算时间为 1.57 秒(相较于 Gate PBS 的 10 ms 简直太慢了吧)。

Combine PBS

随着 LUT 的精度提高(相位空间 Z q \mathbb Z_q Zq,编码消息空间 Z t \mathbb Z_t Zt),为了留出足够的纠错冗余(区间长度 Δ ≈ q / t \Delta \approx q/t Δq/t 大于噪声规模),不得不增大 ACC 的维度。

在这里插入图片描述

[GBA21] 提出可以将单个高精度 LUT 切分为多个很小的 LUT,迭代地计算出最终的查表结果。因为只需要 PBS 支持低精度 LUT 即可,从而避免参数规模的扩大。

他们给出了两种组合方法:树型组合(PBS 结果是 LUT)、链式组合(PBS 结果是 Seletor)

在这里插入图片描述

Tree-based PBS

设置数字分解基底 B B B,让 ACC 仅支持 t = B t=B t=B 的明文空间(LUT 的各个数值在 RLWE 系数上连续重复 N / B N/B N/B 次),

  • 输入数据 m ∈ Z B d m \in \mathbb Z_{B^d} mZBd,将它分解为 ∑ i m i ⋅ B i \sum_i m_i\cdot B^i imiBi,分别加密为 c i = L W E ( m i ) c_i=LWE(m_i) ci=LWE(mi)
  • 对于高精度函数 f : Z B d → Z B f: \mathbb Z_{B}^d \to \mathbb Z_B f:ZBdZB(并行 d d d 个函数),对应的 B d B^d Bd-size LUT,将它顺序拆分 B d − 1 B^{d-1} Bd1 个区间,作为 B B B-size LUT
  • 易知各个 LUT 都以 m 0 m_0 m0 作为 Selector,因此执行 PBS 获得 B d − 1 B^{d-1} Bd1 个消息 f ( x 0 = m 0 , ⋯ ) f(x_0=m_0,\cdots) f(x0=m0,) 的 LWE 密文
  • 将它们顺序打包 B d − 2 B^{d-2} Bd2 B B B-size LUT(通过 Functional Key-Switch),继续使用 m 1 m_1 m1 作为 Selector 执行 PBS,计算出 f ( x 0 = m 0 , x 1 = m 1 , ⋯ ) f(x_0=m_0,x_1=m_1,\cdots) f(x0=m0,x1=m1,) 的 LWE 密文
  • 迭代执行,最终会输出 f ( m 0 , m 1 , ⋯ , m d − 1 ) f(m_0,m_1,\cdots,m_{d-1}) f(m0,m1,,md1) 的 LWE 密文

注意到第一层的各个 LUT 是明文列表,并且作用在相同的 m 0 m_0 m0 上,因此可以使用 [CIM19] 的 Multi-value PBS,仅执行一次盲旋转。但是输出的 LUT 被加密在了 RLWE 内(包含了 m 0 m_0 m0 的信息),因此 Test Vetor 作用到 ACC 上需要利用外积。因为电路自举太慢了,所以 [GBA21] 对于后续的计算不再使用 Multi-value PBS 技术,仅仅使用 TFHE 的方式挨个计算。

在这里插入图片描述

对于特殊结构的函数 f f f,它可能连续的小区间内的数值是常数或者线性函数,从而某些小的 LUT 可以被简化掉(但是泄露的电路信息,不过不会泄露消息本身)。对于 Sigmoid,它的两端基本是常数(简单设置常数密文),中间基本是线性函数(利用 LWE 的线性同态),其余的部分是非线性的(利用 PBS 计算)。

在这里插入图片描述

Chain-based PBS

上述的 Tree-based PBS 是通用结构,但是噪声增长比较大。[GBA21] 推广了之前某个工作的整数比较算法,给出了链式组合结构:

  • 依旧是将 m m m 分解为 m i m_i mi,将高精度 LUT 使用某种复杂的方式分解为 d d d 个很小的 LUT
  • 首先 c 0 c_0 c0 执行 PBS 获得 c ˉ \bar c cˉ,将它和 c 1 c_1 c1 做线性组合后,被用作下一个 LUT 的 Selector(而非 LUT),利用这些 Selector 迭代处理各个 LUT

它的噪声更小,但是更加适合 carry-like logics(例如:比较、算术加法、算术乘法)。

[GBA21] 并没有详细描述 Chain-based PBS 的具体流程。高精度 LUT 到底怎么分解的?Selector 的线性组合又是怎么确定的?完全没有写。

Improving building blocks

Base-aware Key-Switching

在 Tree-based PBS 中,需要使用 Functional Key-Switch,将上一层的 B B B 个 LWE 打包为一个 ACC 密文。由于 ACC 中需要留足冗余区间,导致其中包含大量的连续重复的系数,因此这个特殊的 KS 过程可以被专门优化:

在这里插入图片描述

使用空间换时间的策略,[GBA21] 将 KS 的规模扩大了 B B B 倍,但是同态线性解密时,不再需要计算较慢的多项式数乘,而是简单的内积(常数多项式数乘的加和)。

Multi-Value Extract

此外为了降低数乘的噪声,因为加和的方差 σ x + y 2 = σ x 2 + σ y 2 + 2 ρ σ x σ y \sigma_{x+y}^2 = \sigma_x^2+\sigma_y^2+2\rho\sigma_x\sigma_y σx+y2=σx2+σy2+2ρσxσy,其中 ρ \rho ρ 是相关系数。如果计算数乘,

  • 给定一个 X X X 它是 x x x 附近的随机变量,那么 ρ = 1 \rho=1 ρ=1,从而 σ n x 2 = n 2 σ x 2 \sigma_{nx}^2=n^2\sigma_x^2 σnx2=n2σx2
  • 如果给定 X 1 , ⋯ , X n X_1,\cdots,X_n X1,,Xn 它们是 x x x 附近的独立变量,则有 ρ = 0 \rho=0 ρ=0,就仅是 σ n x 2 = n σ x 2 \sigma_{nx}^2=n\sigma_x^2 σnx2=nσx2

根据 TFHE 的启发式假设,ACC 的各个系数使用了独立的高斯噪声,因此我们可以将 x x x 对应区间的 b b b 项加起来,作为数乘 b x bx bx 的结果。这要求噪声规模更小一点,从而 PBS 输出的 ACC 常数项附近的半径 b / 2 b/2 b/2 区间内都加密相同的数值。

在这里插入图片描述

不幸的是,[GBA21] 在实验中并没有观察到噪声增长从平方降低而线性,并且实际噪声水平比 TFHE 估计的还要偏大。因此系数之间存在的相关性,事实上会影响到自举过程。

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

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

相关文章

RocketMQ系统性学习-RocketMQ高级特性之消息存储的高效与刷盘策略、Broker 快速读取消息机制

🌈🌈🌈🌈🌈🌈🌈🌈 【11来了】文章导读地址:点击查看文章导读! 🍁🍁🍁🍁🍁🍁&#x1f3…

探索Qt 6.3:了解基本知识点和新特性

学习目标: 理解Qt6.3的基本概念和框架:解释Qt是什么,它的核心思想和设计原则。学会安装和配置Qt6.3开发环境:提供详细的步骤,让读者能够顺利安装和配置Qt6.3的开发环境。掌握Qt6.3的基本编程技巧:介绍Qt6.…

图灵日记之java奇妙历险记--数据类型与变量运算符

目录 数据类型与变量字面常量数据类型变量语法格式整型变量浮点型变量字符型变量希尔型变量类型转换自动类型转换(隐式)强制类型转换(显式) 类型提升不同数据类型的运算小于4字节数据类型的运算 字符串类型 运算符算术运算符关系运算符逻辑运算符逻辑与&&逻辑或||逻辑非…

Open3D 入门教程

文章目录 1、概述2、安装3、点云读写4、点云可视化 4.1、可视化单个点云4.2、同一窗口可视化多个点云4.3、 可视化的属性设置 5、k-d tree 与 Octree 5.1、k-d tree5.2、Octree 5.2.1、从点云中构建Octree5.2.2、从体素栅格中构建 Octree 6、点云滤波 6.1、体素下采样6.2、统计…

webpack学习-7.创建库

webpack学习-7.创建库 1.暴露库1.1概念1.2验证1.2.1 不导出方法1.2.2 导出方法 2.外部化 lodash3.外部化的限制4.最终步骤5.使用自己的库5.1坑 6.总结 1.暴露库 这个模块学习有点坑。看名字就是把自己写的个包传到npm,而且还要在项目中使用到它,支持各种…

function的使用

函数的返回值为integer 函数的返回值为clogb2 对于一个输入数据,如果其值大于0,右移1位,返回值加1; 再次判断右移后的结果任然大于0,返回值继续加1。 直到不满足判断条件,计算出一个输入数据的二进制位宽。…

yocto系列讲解[实战篇]93 - 添加Qtwebengine和Browser实例

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 概述集成meta-qt5移植过程中的问题问题1:virtual/libgl set to mesa, not mesa-gl问题2:dmabuf-server-buffer tries to use undecl…

Peter算法小课堂—贪心与二分

太戈编程655题 题目描述: 有n辆车大甩卖,第i辆车售价a[i]元。有m个人带着现金来申请购买,第i个到现场的人带的现金为b[i]元,只能买价格不超过其现金额的车子。你是大卖场总经理,希望将车和买家尽量多地进行一对一配对…

重温经典struts1之国际化(I18N)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 拿Google网站来举例,在世界上不同国家和地区,登陆Google网站,网站上都会显示本国家语言,它是怎么做到的,就是…

华为云Windows Server服务器下,Node使用pm2-logrotate分割pm2日志,解决pm2日志内存占用过高的问题。

一、简介 PM2 是一个守护进程管理器,它将帮助您管理和保持您的应用程序在线。PM2 入门很简单,它以简单直观的 CLI 形式提供,可通过 NPM 安装。官网地址:https://pm2.keymetrics.io/ 二、问题:pm2日志内存占用过高&am…

【Linux】编辑、查看和搜索文件

大多数 Linux 发行版不包含真正的 vi;而是自带一款高级替代版本,叫做 vim(它是“vi improved”的简写)由 Bram Moolenaar 开发的,vim 相对于传统的 Unix vi 来说,取得了实质性进步。 启动和退出 vim 使用vim可以启动,如命令行输…

SpringBoot Elasticsearch全文搜索

文章目录 概念全文搜索相关技术Elasticsearch概念近实时索引类型文档分片(Shard)和副本(Replica) 下载启用SpringBoot整合引入依赖创建文档类创建资源库测试文件初始化数据创建控制器 问题参考 概念 全文搜索(检索),工作原理:计算…

电子合同在物流运输中的场景应用

物流运输行业发展迅速,形成了采购、运输、仓储、配送、代理等全面的产业体系,在业务的开展过程中,各类纸质文件的签章管理如承运协议、运输合同、电子回单、入仓及出仓单据、融资保理协议、代理合作协议、商家入驻协议、员工劳动合同等&#…

任天堂,steam游戏机通过type-c给VR投屏与PD快速充电的方案 三type-c口投屏转接器

游戏手柄这个概念,最早要追溯到二十年前玩FC游戏的时候,那时候超级玛丽成为了许多人童年里难忘的回忆,虽然长大了才知道超级玛丽是翻译错误,应该是任天堂的超级马里奥,不过这并不影响大家对他的喜爱。 当时FC家用机手柄…

中国社科院与新加坡新跃社科大联合培养博士—未来是我们自己创造的

没有任何东西能像大胆的幻想那样促进未来的创立,没有任何东西能像扎实的实践那样实现幻想的未来,今天的幻想加实践就是明天的现实!中国社科大-新加坡新跃社科大学联合培养工商管理博士,期待与您一起实现我们的未来。 人的一生其实…

SAP系统标准表之间的关联关系对应

SAP系统标准表之间的关联关系对应

指标体系构建-02-从0开始,梳理数据指标体系

指标体系构建-02-从0开始,梳理数据指标体系 一个例子,看懂并列式指标梳理 并列式指标体系,一般用于:描述个体情况 当我们想从几个不同角度,描述问题的时候,就需要并列关系 举个栗子🌰&#xf…

阿里云 ACK One 新特性:多集群网关,帮您快速构建同城容灾系统

云布道师 近日,阿里云分布式云容器平台 ACK One[1]发布“多集群网关”[2](ACK One Multi-cluster Gateways)新特性,这是 ACK One 面向多云、多集群场景提供的云原生网关,用于对多集群南北向流量进行统一管理。 基于 …

SpringBoot+Redis的Bloom过滤器

1.保姆级Linux安装Redis ①把redis.tar.gz下载到linux中,并用命令tar -zxvf安装 ②安装完成进入目录输入make进行编译,编译完成后输入make install 进行安装 ③创建两个文件夹mkdir bin mkdir etc 将redis目录下的redis.conf文件移动到etc文件中&…

Modbus-TCP数据帧

Modbus-TCP基于4种报文类型 MODBUS 请求是客户机在网络上发送用来启动事务处理的报文MODBUS 指示是服务端接收的请求报文MODBUS 响应是服务器发送的响应信息MODBUS 证实是在客户端接收的响应信息 Modbus-TCP报文: 报文头MBAP MBAP为报文头,长度为7字节&#xff0c…