多密钥TFHE学习笔记3-基于MKTFHE库的8位加法器实现实验

基于MKTFHE库的8位加法器实现实验整体思路

MKTFHE 是基于 TFHE 的多密钥版本,提供了一个自举的与非门 (NAND gate) 的实现。本实验基于 MKTFHE 库构造一个多密钥同态加密的 8位 (原码) 加法器,能够对 8 位不同密钥加密下的密文进行加法操作。整体思路如下:

  1. 通过更改自举的逻辑实现除了与非门之外的其他常用的基础门电路(如 AND/OR/XOR 等) - 基于MKTFHE库的各类门实现实验
  2. 通过拼接 (1) 中的基础门电路,实现一个 naive 的 多密钥同态加密 8 位原码加法器 - 基于MKTFHE库的8位加法器实现实验

实验环境

  • 操作系统:Ubuntu 18.04 bionic

  • 内核:x86_64 Linux 4.15.0-108-generic

  • CPU:Intel Xeon Gold 5220 @ 72x 2.201GHz

  • 内存:46512MiB / 257600MiB

  • 语言:C++

实验对应论文

  • MKTFHE库对应论文:Chen H, Chillotti I, Song Y. Multi-key homomorphic encryption from TFHE[C]//International Conference on the Theory and Application of Cryptology and Information Security. Springer, Cham, 2019: 446-472.
  • TFHE方案中各门电路的实现公式: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.
  • TFHE方案中各门电路的实现公式:Ilaria Chillotti; Nicolas Gama; Mariya Georgieva; Malika Izabachene. Faster Fully Homomorphic Encryption: Bootstrapping in less than 0.1 Seconds. ASIACRYPT 2016.

基于MKTFHE库的各类门实现实验

整体思路分析

以 MKTFHE 库中 FFT 自举与非门函数间调用关系简略示意图为例,图中红色框部分为自举门中需要修改逻辑的部分,更改后可实现其他基础门电路:
MKTFHE 库中 自举与非门函数间调用关系简略示意图
具体实现表达式与所需的算法:
在这里插入图片描述

  • 多密钥 LWE sample 之间的加法: MKlweAddTo()
  • 多密钥 LWE sample 之间的乘法和累加:MKlweMulAddTo()
  • 多密钥自举非门:MKlweNegate()
  • 多密钥自举与门:MKbootsAND_FFT_v2m2()
  • 多密钥自举或门:MKbootsOR_FFT_v2m2()

以异或门为例,异或门中自举的逻辑如下:

  1. 计算 2 ⋅ c i 2 \sdot c_i 2ci ,可能的结果有 2 种 : c i c_i ci 为真或为假
  2. 计算 2 ⋅ ( c 1 + c 2 ) 2 \sdot (c_1 + c_2) 2(c1+c2) ,可能的结果有 3 种 : c 1 , c 2 c_1, c_2 c1,c2 全为真、全为假或一真一假
  3. 计算 1 8 + 2 ⋅ ( c 1 + c 2 ) \frac{1}{8} + 2 \sdot (c_1 + c_2) 81+2(c1+c2) ,可能的结果有 3 种 (与 2 中相同) ,对得到的结果进行划分,如果结果为负则返回 false (对应 c 1 , c 2 c_1, c_2 c1,c2 全为真或全为假的情况 ) ,否则返回 true (对应 c 1 , c 2 c_1, c_2 c1,c
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值