课程笔记:全同态加密的理论与构造-下篇
第一代全同态加密算法
第一代全同态加密方案使用的是近似GCD难解问题。在这个问题中,给定,找到是困难的。其中是一个大整数,是一些小的随机噪声。
这里是应该是.
4 Eval
加法和乘法的误差项在p 以及 2 之后刚好可以消掉。但是对于乘法,如果噪声增长过快,快到超过的话,会导致解密出错。
第二代全同态加密算法
2.1 LWE问题
最基本的LWE问题有着两个版本, 这两个版本分别对应计算复杂性中两类最基本的问题, 且两个问题之间存在多项式时间的归约. 我们将分别介绍两个版本的LWE问题。
在介绍两类问题之前, 我们首先介绍一些基础知识. 首先是LWE分布.
对于LWE问题更详细的讲解请参考:https://lingeros-tot.github.io/
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 解密
被称为误差项。
首先我们引入一个观察结果
这里我们得到密文乘法的等价代换。
同时观察到密钥规模指数倍增加。
为了解决这个问题,BGV作者提出了key switching的方法。
Key Switching(Dimension Reduction)
Key Switching能做到将密钥加密的密文, 转换成用密钥加密的密文,而明文不变。
有了这个公式之后,我们可以得到下面等式
这里有一个问题,Key Switching等式后面得到的误差项会非常大。
为了解决这个问题,作者引入了Gadget矩阵。矩阵的构造如下:
得到的的误差是很小的一部分。
这样我们就通过很小的代价,使得密钥不变,实现了全同态加密。
误差增长分析
由此看出,乘法误差增长还是非常快的。我们使用Modulus Switching来减小误差增长。
Modulus Switching
转换算法:
下面证明转换后,两者解密结果是等价的:
由公式
我们可以得到,最后得到的误差是原来倍。通过合理设置,可以实现误差的线性增长。
2.3 BFV方案
BFV方案来源于文章 "Somewhat Practical Fully Homomorphic Encryption",它是基于 RLWE (Ring-Learning With Errors)难题的全同态加密方案[5]。
2 加密
3 解密
4 Eval
第三代全同态加密方案
GSW方案
需要说明一点,GSW方案是在概念上更加简单了,但是在性能上是比BGV以及BFV是要更慢的。
2 加密
3 解密
当把误差项项以及项去掉后,我们可以看到,是的一个近似特征值。
这样我们就可以利用特征向量和特征值得关系,得到一个漂亮的同态操作。
这里的乘法操作比较复杂,我们简单证明一下这个操作是正确的。
其中,是误差项。
面向应用的全同态算法
在实际应用中,比如机器学习算法中,我们需要对浮点小数进行操作。而我们的同态加密算法是对整数进行操作的。因此我们需要将浮点数编码为整数。例如:
对于编码后的加法和乘法,乘法因子需要消去一个。
4.1 CKKS方案
1 密钥生成
2 加密
3 解密
4.2 TFHE
The Ring Learning with Errors (LWE) Problem[8]
使用RLWE, 我们可以加密多项式。
相关开源库
同态加密的相关研究已经引起了工业界和学术界的广泛关注,其中也有许多细的问题值得研究。
开放问题和研究方向
参考文献
[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
庄智廉,重庆大学大数据与软件学院研究生在读。主要研究兴趣包括隐私保护机器学习、差分隐私、联邦学习。语雀:阿柴; 知乎:acai
往期推荐