大精度同态比较(符号评估)

传统的 FHE 评估比较操作的方法基于使用 FHEW/TFHE 引导(文献中通常称为可编程引导)的符号函数评估。
我们提出的符号函数 评估算法与密⽂(明 ⽂)模成对数关系。
我们的符号评估算法基于同态底层函数算法的迭代使用
我们将底函数评估程序推广到任意函数评估,既可用于支持较小的明文模数(直接),也可用于支持较大的明文模数(通过使用同态数字分解算法,
resolve this problem is to use scheme switching between CKKS and FHEW/TFHE,
例如,我们在第 7 节中展示了单个 FHEW/TFHE 引导(在 FHE 中执行加密比较的典型方法),使用 [29] 中的经典参数,最多能有效支持 4 比特精度的加密比较
我们将把重点放在符号函数上,并假定我们关于符号函数的所有结果都适用于加密比较
符号函数评估与 FHEW/TFHE 引导的主要思想密切相关,我们需要找到加密数的最显著位(MSB)
FHEW/TFHE 引导程序的复杂度与密文模 Q 成线性关系,即与 Q 的比特大小成指数关系。这意味着,与目前的布尔运算结果相比,10 比特精度的运行时间需要增加 26=64 倍。
我们还利用符号评估算法的中心思想,推导出高效的通用函数引导程序,该程序支持任意函数的评估。
boot实现取MSB,但是需要密文模小于q。Q=1+q,MSB,没做一次Boot减少密文模logq位。限制:LWE密文进行boot

请注意,函数引导通常也被称为可编程引导
贡献:1.提出了一种利用 FHEW/ TFHE 引导进行大精度同态符号评估的新程序:将大精度密码文本分解为数字,然后从最小有效位开始,依次执行同态下取整函数,清除每个数位。

 2.为同态下取整函数开发了两种算法,

 3.

 4.

5.实验中基于两次引导的更好,演示了关于ckks的例子 

消息m以Q/ α 为模,是h-l bit的整数

 α = 2^l and Q = 2^h

 问题是计算m最高有效位的加密⌊m/2^h−l−1⌋,最高有效位是符号位,负数是1,正数是0

FHEW支持: f(x + Q/2) = −f(x)负循环

有一个映射

这个映射就满足负循环

 

 

有噪音约束的:两次自举,噪声约束:|e|< α/4

 

 

其实也不能叫q/ α位,应该是密文模Q减少了q/ α倍。

无噪音约束的,三次自举:可以评估任意密文

 与上一种方法相比可以提升1个额外精度。

可以将这两种方法推广到任意函数,但是需要密文模小于q,就类似于刚刚分解为小于q的每个小模在做自举。

同态分解算法:

 

 

 执行这些操作的前提:提取LWE密文,把输入提取出LWE密文

以前两种方法的主要思想:−1 · (−m) = m,因此需要一次乘法同态

而本文不用乘法,因此可以应用于加法同态加密方案

以前的两种方法噪声更高,消耗的bootstrapping次数更多。

不同的方法的优缺点:

 

ckks的方案的运行复杂度依赖于两个数字之间允许的精度大小,和两个数字之间差的大小有关 ,我们的方案不会

 

 

 环维度为N,粗体是向量

LWE密文:

三元组密钥: 

FHEW中bootstrapping的提取函数必须满足负循环,bootstrapping只能对LWE密文做。

bootstrapping过程:

1.首先计算LWE密文

输入LWE密文(a,b)

 

 

2.模切换

 这篇文章bootstrapping的定理:

 大精度同态符号评估:

LWE密文:

密文模Q,明文模Q/  α

e+  β∈(0,α),因此符号位与解密后的m一样,(e+  β)/α小于1

由于只关心m’的MSB,因此可以将m’视为任意整数模Q

利用数字分解后的小q和bootstrapping来清除最低有效位

q设置为FHEW有效支持的适当值,Q’通常不是2的幂次,是为了支持NTT

FHEW复杂度与logQ'成线性关系,与logq成指数关系

满足负循环的函数:

两次boot :α = 4β

核心是一个HomFloor

输入:

噪声估计:

 输出:

输出的密文对应的明文是:

结果:

  

噪声估计一样: 

m的最高有效位与r(m)一样 

HomSign使用HomFloor作为子例程清除最低有效位直到只剩下MSB的符号位

再使用modulus Switch把模降为(α/q) · Q以获得scaling factor为α的密文

然后继续这个过程

一共需要减少log Q − log qbit,一次减少 log(q/α)bit,因此需要迭代⌈(log Q − log q)/ log(q/α)⌉次HomFloor函数

若β > 2是bootstrapping噪声,则当α = 4β是一个较小的值时,HomSign运行时间越小,(因为运行时间与成正比),这种情况下需要次HomFloor和1次Boot,也就是次Boot。

算法详解:思路,modq就是只需要m的后logq位,然后减掉这个就是向下取整了

 先提取LWE密文(a,b)

三次bootstrapping:α = 2β

 

次boot 

floor函数到任意函数 

一个数字m的加密 (c, d)

限制:floor函数需要是负循环

f0是去除最高有效位的 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值