查看原文
其他

课程笔记:全同态加密的理论与构造-下篇

庄智廉 隐私计算研习社 2022-11-05

前言:本文是全同态加密暑期班下午场的课程笔记下篇。课程由谢翔老师主讲。主要对三代全同态加密算法进行介绍,并更多聚焦于第二代和第三代算法。谢老师在最后对全同态加密方向的开放问题和可研究的方向进行了介绍。


1





第一代全同态加密算法
针对第一代全同态加密算法,谢翔老师给了一个实现思路,更多的细节读者可以查看原论文[1][2]


第一代全同态加密方案使用的是近似GCD难解问题。在这个问题中,给定,找到是困难的。其中是一个大整数,是一些小的随机噪声。

1 密钥生成


2 加密


3 解密


这里是应该是.

4 Eval


加法和乘法的误差项在p 以及 2 之后刚好可以消掉。但是对于乘法,如果噪声增长过快,快到超过的话,会导致解密出错。


乘法深度


2






第二代全同态加密算法
第二代和第三代的全同态加密算法都是基于LWE问题的(Learning with Errors Problem)。目前我们所说的第二代算法主要是指BGV以及BFV。

2.1 LWE问题

最基本的LWE问题有着两个版本, 这两个版本分别对应计算复杂性中两类最基本的问题, 且两个问题之间存在多项式时间的归约. 我们将分别介绍两个版本的LWE问题。
在介绍两类问题之前, 我们首先介绍一些基础知识. 首先是LWE分布.
对于LWE问题更详细的讲解请参考:https://lingeros-tot.github.io/

LWE分布

给定某个和错误分布, 定义LWE分布为: 均匀选择并采样 ,计算并输出.
这里也就是秘密向量, 称为噪声(或错误)分布, 称为噪声(或错误). 我们可以理解为, 每次从LWE分布中采样, 都可以得到一个近似解为的线性方程. 如果有一个专门提供这样的分布的Oracle, 那么我们就可以多次来调用该Oracle已积攒足够数量的方程来求解该问题. 应该注意到, 中我们省略了参数, 这是一种常用的写法, 因为这里的可以根据上下文推出. 我们牺牲部分符号上的严谨性来与大多数论文统一符号, 来帮助读者快速熟悉这些记号.

搜索LWE问题

搜索LWE问题(search LWE problem, SLWE)就是我们前边提到的解近似线性方程组的问题, 即SLWE问题定义为:
给出的Oracle, 在最多进行次Oracle访问的情况下求.
该问题的表述可以是多种多样的, 有的表述中, 直接将个Oracle的结果一并给出, 即均匀选择和采样, 计算, 根据.
一般来说, 我们会要求是一个有关于的多项式, 即是一个多项式函数. 毕竟, 对于一个只能在概率多项式时间内运行的攻击者是无法有充足的时间访问超多项式次Oracle的.

判定LWE问题

判定LWE问题同其他判定一样, 要求输出的是YES/NO(或1/0).
DLWE问题定义为: 给出个来自一下两个分布中的任何一个的采样结果:

  • 分布
  • 上的均匀分布

求采样结果所服从的分布.
下文中, 我们统一输出结果的方式: 如果拿到的是分布, 输出为正确答案.
如果两个版本的LWE问题要求均为多项式, 这个问题似乎这个问题看起来更加简单一些? 但是接下来我们将会发现, 这两个问题相互之间是可以概率多项式规约的, 即一台概率图灵机, 如果有求解两个问题中任何一个的Oracle的访问权限, 就可以在多项式时间内以压倒性概率求解另一个问题.

2.2 BGV方案

BGV是一个整数域的同态加密方案[3][4]。

1 密钥生成

2 加密

3 解密


被称为误差项。

4 同态操作
加法:


乘法

首先我们引入一个观察结果



这里我们得到密文乘法的等价代换。

同时观察到密钥规模指数倍增加。

为了解决这个问题,BGV作者提出了key switching的方法。

Key Switching(Dimension Reduction)

Key Switching能做到将密钥加密的密文, 转换成用密钥加密的密文,而明文不变。

首先我们用来加密


有了这个公式之后,我们可以得到下面等式


这里有一个问题,Key Switching等式后面得到的误差项会非常大。

为了解决这个问题,作者引入了Gadget矩阵。矩阵的构造如下:

有了这个矩阵之后,我们对Key Switching的构造进行了一些修改(红框部分是修改了的地方)




得到的的误差是很小的一部分。

这样我们就通过很小的代价,使得密钥不变,实现了全同态加密。

误差增长分析


由此看出,乘法误差增长还是非常快的。我们使用Modulus Switching来减小误差增长。

Modulus Switching

Modulus Switching :如果有一个密文模数是,我们将它转换为模数是远小于)。这里是针对同一个明文。我们可以将误差规模减小为
转换算法:


下面证明转换后,两者解密结果是等价的:

误差分析:


由公式
我们可以得到,最后得到的误差是原来倍。通过合理设置,可以实现误差的线性增长。

2.3 BFV方案

BFV方案来源于文章 "Somewhat Practical Fully Homomorphic Encryption",它是基于 RLWE (Ring-Learning With Errors)难题的全同态加密方案[5]。

1 密钥生成


2 加密

3 解密


4 Eval


3





第三代全同态加密方案

GSW方案

需要说明一点,GSW方案是在概念上更加简单了,但是在性能上是比BGV以及BFV是要更慢的。

1 密钥生成


2 加密


3 解密


当把误差项项以及项去掉后,我们可以看到,的一个近似特征值。

这样我们就可以利用特征向量和特征值得关系,得到一个漂亮的同态操作。

4 Eval

这里的乘法操作比较复杂,我们简单证明一下这个操作是正确的。



其中,是误差项。


4





面向应用的全同态算法

在实际应用中,比如机器学习算法中,我们需要对浮点小数进行操作。而我们的同态加密算法是对整数进行操作的。因此我们需要将浮点数编码为整数。例如:

对于编码后的加法和乘法,乘法因子需要消去一个。

4.1 CKKS方案

为了能对浮点数进行操作,17年时Cheon等提出了CKKS方案[7]。这里给出算法的主要idea。

1 密钥生成


2 加密


3 解密


4.2 TFHE

TFHE属于类GSW分支,并且是FHEW方案的一个改进,TFHE方案是目前最快的全同态加密方案[9][10]。

The Ring Learning with Errors (LWE) Problem[8]


使用RLWE, 我们可以加密多项式。
方案的主要思路:



5





相关开源库


同态加密的相关研究已经引起了工业界和学术界的广泛关注,其中也有许多细的问题值得研究。


6





开放问题和研究方向

参考文献

[1] Gentry C. Fully homomorphic encryption using ideal lattices[C]//Proceedings of the forty-first annual ACM symposium on Theory of computing. 2009: 169-178.
[2] Dijk M, Gentry C, Halevi S, et al. Fully homomorphic encryption over the integers[C]//Annual international conference on the theory and applications of cryptographic techniques. Springer, Berlin, Heidelberg, 2010: 24-43.
[3] Z. Brakerski and V. Vaikuntanathan. Efficient Fully Homomorphic Encryption from (Standard) LWE. FOCS 2011
[4] Z. Brakerski, C. Gentry, and V. Vaikuntanathan. Fully homomorphic encryption without bootstrapping. ITCS 2012  
[5] Z. Brakerski. Fully homomorphic encryption without modulus switching from classical GapSVP. CRYPTO 2012.  
[6] C. Gentry, A. Sahai, and B. Waters. Homomorphic encryption from learning with errors:Conceptually-simpler, asymptotically-faster, attribute-based. CRYPTO 2013
[7] J. H. Cheon, A. Kim, M. Kim, Y. Song, Homomorphic encryption for arithmetic of approximate numbers. Asiacrypt 2017  
[8] V. Lyubashevsky, C. Peikert, and O. Regev. On ideal lattices and learning with errors over rings. EUROCRYPT 2010
[9] L. Ducas, D. Micciancio, FHEW: Bootstrapping homomorphic encryption in less than a second. EUROCRYPT 2015
[10] I. Chillotti, N. Gama, M. Georgieva, M. Izabachène. Faster fully homomorphic encryption: Bootstrapping in less than 0.1 seconds. ASIACRYPT 2016


END

作者简介:

庄智廉,重庆大学大数据与软件学院研究生在读。主要研究兴趣包括隐私保护机器学习、差分隐私、联邦学习。语雀:阿柴; 知乎:acai

往期推荐


论文笔记:隐私保护的梯度提升决策树

论文笔记-联邦学习攻防研究综述

课程笔记:全同态加密理论与基础

联邦学习顶会论文及开源框架汇总





欢迎投稿
邮箱:pet@openmpc.com
参与更多讨论,请添加小编微信加入交流群

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存