全同态加密十(几)年的发展历程 - Craig Gentry - 2021 EUROCRYPT 邀请报告

全同态加密十(几)年的发展历程 - Craig Gentry - 2021 EUROCRYPT 邀请报告

报告 中文翻译
YouTube指路
B站指路

FHE发展历程

2009年,Gentry提出了第一个似乎可行的全同态加密方案,简单来说,此方案的基本思想是一个自处理过程,称为自举过程,自举过程所关联的问题是同态加密方案中,密文是否可以被加密的私钥解密,自举过程以加密数据和加密私钥为输出,在密文下解密数据。

—— 是否有可能跳出当前全同态加密的已有构造蓝图,跳出自举、格、带噪声密文这种传统方法?如果能跳出这种方法构造出全新的方案,那会是极好的,这是一个令人心潮澎湃的研究方向。

  • 第一代(mod-p numbers,arithmetic circuits):2009 Gentry论文 - 构造了支持整数运算的方案 - 包含自举过程。2011:自举过程是FHE中最复杂的步骤

  • 第二代(mod-p numbers,arithmetic circuits):开始于Brakershi和Vaikuntanathan的论文(如何基于LWE问题构造FHE方案)

    • 模归约(modulus reduction) -> BGV(参数长度不与同态求值的电路阶数有关,而是与深度有关)

    • SIMD操作(把密文切出上千个槽,把上千个明文放在密文槽中,由此并行处理各个槽中的数据。在此基础上,还可以利用同构性置换各个槽中的数据,这样各个槽中的数据可以相互运算)

  • 第三代(bits,Boolean circuis):开始于Gentry、Amity Sahai和Brent Waters的论文中

    • Brakersh和Vaikuntanthan:G.A.B的方案可以使用较短的参数实现FHE,因此该方案的噪声增加量不会太大。这意味着,用基于格的PKE方案类似的参数,就可以满足FHE的安全性要求。之前FHE方案的参数非常大,因此FHE的安全性损失比较大,现在FHE可以和PKE一样安全。

    • 调整方案构造,使自举高效,2016年的论文已经可以将自举时间降到0.1秒一下。但这类方案不支持密文打包,而第二代FHE可以在一个密文里放置上千个明文

  • 第四代 CKKS scheme(real/complex numbers,approximate (floating pt)arithmetic):支持浮点数同态运算

  • 嵌合FHE(chimeric FHE):利用自举的思想,让密文在不同FHE方案间切换

    • 在密文上使用同态解密函数,将某个FHE方案的密文转换成另一个FHE方案的密文

FHE on PIR

私有信息检索中不可避免的一个缺点是,服务器在检索过程中必须触达到数据库中的所有数据,否则服务器就会知道你检索的数据一定和某个未被检索的数据无关。从必要性角度看,服务端在回复PIR问询是需要触达数据库中的所有数据,因此服务器的计算开销非常影响PIR的性能,因为服务器要触达整个数据库。如果涉及触达整个数据库的密码学操作比较繁琐,PIR的性能就很糟糕。

Sion和Carbunar早在2007年发表了一篇论文,他们指出,单服务器私有信息检索方案的性能不可能比服务器把整个数据库发送给用户的性能更高,他们的分析结果基于很多如Paillier等的理论方案,如果使用这些理论方案,结果很可能是对的。

但不久之后,学者们就应用基于格的PIR方案重新分析了PIR的性能,会有量级上的提升,服务端可以非常高效的恢复PIR问询,比发送整个数据库的性能要好得多。

这里提及一篇Gentry和Shai Halevi发表的论文(compossible FHE with Applications to PIR),这个方案非常高效,明文长度和密文的的比例是4/9,也就是说此方案只有2倍左右的密文放大效应,此方案的通信带宽即使在实际角度看也非常优异,前提是单次PIR问询所包含的信息量不低于某个下界。Samir Menon和David Wu给出了方案的初步实现,他们的实验结果表明,在百万个30KB的文件上执行PIR问询只需要花费86秒。我们也可以用硬件加速FHE。

同态加密方案构造原理

为实现语义安全性(Goldwassar Micali,1982),任意公钥加密方案必须为概率加密

在这里插入图片描述
如果把这些密文和某个函数 f f f输入到求值算法V中,求值算法的输出应该为加密 f ( m 1 , . . . , m t ) f(m_1,...,m_t) f(m1,...,mt)的密文——另一个密文,安全性的定义与基础公钥加密相同,换句话说,同态加密应满足语义安全性,每个明文仍应该包含多个对应的密文

在这里插入图片描述
也可以看如上的“交换图表”,从左上角的一系列密文到右下角的明文,可以先解密出t个明文,再在明文上应用函数f,得到另一个明文;或者先在t个密文上应用包含函数f的求值函数,得到另一个密文,解密该密文也能得到需要的明文。

每一个同态加密方案,都绑定了一个函数族,只有f在函数族内,先调用f的求值函数V,再解密才能得到正确结果。最典型的函数族就是代数电路族(代数电路就是分层加法、乘法门组成的图,该图\函数可以用布尔电路表示)。如果同态加密方案支持所有的函数,该同态加密方案就是全同态加密方案。

在这里插入图片描述

同态性:两个代数结构间的映射,在此映射下,一种代数结构下的运算,等价于另一种代数结构间的运算 —— 两个代数结构间的运算不一定相同。
在这里插入图片描述

通用交换图,HE = homomorphisms + complexity theory

通用交换图表如下:向右的箭头=运算,比较好处理;向下的箭头=同态映射,除非持有trapdoor否则很难计算——同态加密的基本概念

同态加密是同态性、复杂性理论的通用组合方法。可以在横着的密文层执行运算,但很难沿着向下的箭头,将密文层转换到明文层——解密就是同态映射。

在这里插入图片描述

密文对应明文的奇偶性 = 集合d中选取的密文个数,即|S|

简化了安全性证明:加密过程是可证明安全的,只需要关注公钥中密文的不可区分性

在这里插入图片描述

如何通过数学方法构建出Goldwasser-Micali加密方案?首先选择一个同态映射模p下的legendre符号,将模p下的可逆数映射到±1群(这是一个乘法群)

如何基于该同态加密映射构建一个安全加密方案呢?——不能公开p,否则任何人都能计算legendre symbol。Goldwassar与Micali的方案是用N隐藏p:N=pq,二次剩余假设:对于模N的数x,很难知道x mod N that happens to have Jacobi symbol 1 is a square or a non-square

实际上,应用数学方法构建出的加密方案,就是将同态映射函数加固(隐藏)——用另一个素数q

在这里插入图片描述
给出一个实际的加密方案:应用Rothblum技术,将Goldwasser-Micali方案改造为同态加密方案。

将公钥设置成一系列 1、-1的密文,加解密过程一致 —— 可以继续简化,所以实际没有直接采用该方法

在这里插入图片描述

量子计算机可以攻破所有应用可解群(如阿贝尔群)的同态加密方案:原理是对于0(或群单位元)的加密会构成密文空间的子群。应用Watrous攻击,如果想知道某个密文是否为0,只需要计算密文对应群的阶数,来判断该密文是属于子群,还是一个更大的群

在这里插入图片描述
想要构造全同态加密方法,采用环,有+、×,整数情况下主要有两种方法:模归约(modular reduction)、多项式求值(多项式求值后相乘 = 多项式相乘后求值)

在这里插入图片描述
0的密文构成了密文群的加法子群,可以应用Watrous攻击。

同时,该方案存在一个非常平凡的线性代数攻击:将一系列密文看成一个向量空间,0的密文会形成子向量空间,简单的线性代数方法就可以区分这两个向量空间

在这里插入图片描述
1978年,Rivest,Adleman和Dertouzos提出了一个方案,此方案基于模数为合数下的环同态映射方法构造,私钥为质因子p,解密就是密文模p。采用N隐藏p的方法并不足以满足安全性:该方案中,m的密文是某个模下等于m的数,因此0的密文都是p的整数倍,只需要计算0的密文和N的最大公约数(gcd)就能恢复出私钥 ~~ CPK安全模型 尚未提出

在这里插入图片描述
在密文生成时添加噪声,得到 近似GCD假设:采样得到很多x,这些x近似等于p的整数倍,但不严格等于 —— 这些整数与相同数量的随机整数不可区分。

在这里插入图片描述

利用近似GCD假设构造同态加密方案:

在此采样x时,为简化方案描述,要求x模p的结果都是偶数。创建的公钥是一系列的y(就是采样得到的x,模p得到偶数)、z(x+1,模p得到奇数)

直接使用Rothblum奇数加密:随机选择密文的子集,如果明文是1,z的求和结果就是奇数;明文是0,求和结果就是偶数。

解密时,对密文模p,然后再对该值模2,得到|S|,而|S|模2就是明文。执行同态计算时,只需要对密文整数作加法或乘法—— 对密文整数作加法或乘法相当于密文在模p下做加法或乘法,再模2时相当于对明文做加法或乘法。

安全性基于Rothblum方案、近似GCD假设。

问题:

  1. 噪声会随着运算的增加而增加,decryption中,[c mod p]与噪声和有关,当噪声和 > p时,等式不成立,解密结果错误。

  2. 当整数相乘时,结果很大,此时密文的大小,即密文的比特长度会膨胀

在这里插入图片描述
采用多项式求值构造同态加密方案:令R为模q下的整数环,同态映射δ为多项式在某个秘密点s下的求值结果 —— 需要隐藏s,但这做不到,因为0的密文对应的所有多项式都包含一个相同的根s。一般认为,很难计算出多项式的Grobner基,所以如果不希望密文包含的单项式数量膨胀 = 希望密文包含可控数量的单项式,可以基于这些多项式构造一个向量空间,即密文多项式所构成的线性空间,而0的密文形成该线性空间的子空间,利用线性代数,可以很容易地区分出某密文对应的明文是不是0。

Fellow和Koblitz早在1993年就提出了这样的一个加密方案,他们没有过多强调此加密方案的同态性,原因就是前面提到的,如果你对密文做加法和乘法,则密文包含的单项式数量会膨胀的很厉害,方案就会变得不高效。我们希望修复这一方案,如何做到这一点呢?

在这里插入图片描述

可以引入噪声、信息熵,LWE假设(多项式下的描述):给定线性多项式 f i ( x ) f_i(x) fi(x) ,如果此多项式在私钥s下求值模q后的结果非常小,则此多项式在非s下的求值结果与随机线性多项式在非s下的求值结果是不可区分的。
在这里插入图片描述
利用LWE假设,得到Brakerski-Vaikuntanathan同态加密方案。

私钥是一个随机点

利用Rothblum技术来生成公钥:简单来说,我们将一系列s下求值结果,比较小的多项式作为g和h,其中 g(s) 为偶数,是0的密文, h(s) 为奇数,是1的密文。

我们取公钥中这些密文的随机子集,执行同态加运算从而得到一个新的密文,此密文噪声的奇偶性等于你加密的消息,

解密过程如下,首先,计算密文多项式在s下的求值结果,对结果模q,此时得到一个与e相关的结果,随后,你可以再对结果模2,从而恢复出 |S| ,即得到消息m。

此同态加密方案的同态运算是密文多项式的加法和乘法运算,这与密文中明文消息的加法和乘法运算是等价的,

与整数方案类似,我们会遇到这两个类似的问题,第一个问题是噪声增大,第二个问题是密文多项式相乘后,多项式的阶会变大,得到的密文就不是线性多项式了,如何修复这个问题呢?

在这里插入图片描述

重线性化 / 重随机化(约束相乘后的多项式在s下运算结果模q的误差为偶数,这样噪声模2后奇偶性不变):将公钥增广为只包含1个二次项的二次多项式,比如二次项是 2 t ⋅ x j ⋅ x k 2^t⋅x_j⋅x_k 2txjxk,只需要用C减去所有包含二次项的公钥,最后得到的密文就变回一个线性多项式了

在这里插入图片描述
另一个问题是自举:如何将噪声降低到可控的大小呢?

一种想法是适当选择好一系列0的密文,用密文减去密文,不会改变密文加密的明文,但这种方法不可行,因为不知道密文包含噪声的具体值,无法正确将噪声减掉。

另一种想法是,用私钥调用解密算法即可移除噪声

在这里插入图片描述

该交换图仅对部分函数族f成立,不是所有代数电路都满足此交换图表,即该方案是部分同态加密方案(somewhat HE) —— 同态运算要求多项式的阶小于某个特定值,当多项式的阶高于此特定值时,噪声会变得过大,方案不再满足同态性

目标:可以加密相同消息的“fresh”密文,即刷新密文,使新的密文包含更少的噪声 —— 用解密算法、私钥绘制交换图表

由于消息m是隐藏的,而刷新密文的自举过程是公开的,且应用自举过程刷新密文的操作无法知道m本身,只能知道c是m的密文。所以左下角只能放c,这意味着函数f必须是解密函数:解密函数是唯一一个可以从c中得到m的方法。

左上角必须放密文 X i X_i Xi(对密文比特再加密的密文):c在左下角,左侧向下的箭头表示解密

右上角放置密文c*,对应求值函数V的内部应该设置成 用解密函数解密密文 X i X_i Xi对应的函数,但在此不知道私钥,所以要换成加密的私钥 S i S_i Si、加密的密文比特 X i X_i Xi。由此也可以得到加密m的密文c*,条件是解密函数属于该方案支持求值的函数族F。

从某种程度上来看,自举是唯一可以实现密文刷新的过程。

在这里插入图片描述

密文空间为保留原始明文空间的环结构特性,可以在密文空间上执行二元运算,二元运算满足交换律。但密文空间不满足结合律或其他代数性质 —— 密文空间满足“原群magma”结构,极度非结构化,在代数层面仅满足交换律。
在这里插入图片描述
我们需要考虑的是,全同态加密的密文空间是否一定是一个“magma”,使得求值算法V涉及的操作,在某种程度上必须相当非结构化。—— 密文空间是非结构化的,才可能构建出全同态加密算法吗?
magma
如果密文空间使用不可解群,可以使用Barrington的理论来得到(全)同态加密方案,如何使用非阿贝尔群对电路求值。
在这里插入图片描述

问题是,量子计算子群攻击仍然成立:可能会在非可解群中找到一个阿贝尔子群,由此可以区分大群、子群。

另一个问题是,非可解群一般都是线性的,线性群与矩阵群同构。本质上,在表示论视角下,非可解群基本都是线性群,所以这些方案一定可以被攻破。
在这里插入图片描述
可以参考多变量加密系统中使用 f 、 f − 1 f、f^{-1} ff1的方式,设计一些奇特的求逆操作,利用这些求逆操作实现同态运算。或许可以在伪随机的密文空间上进行跳转,就像格密码学一样,但现在还没有想到具体的构造方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值