由此可见,全同态加密这一概念已经被提出了很久了。令人惊讶的是,1976年,也就是论文发表的两年前,Diffle-Hellman密钥交换协议才刚刚被提出!由此可见密码届大牛的想象力还是非常丰富的。当FHE的概念被提出来之后,整个学术界都为之所动,开始了长达几十年的搜索,试图找到一个拥有全同态性质的完美算法。但是这几十年下来,人们试遍了所有可以想到的选择,但是找不到一个又能满足全同态所有条件,并且安全性可以被轻易证实的选项。直到2009年,在斯坦福读书的PhDCraigGentry突然灵光一现,攻破了FHE算法的难关。在他的博士毕业论文中,他第一次给出了一个合理并且安全的全同态加密系统!这一系统基于理想格的假设。Gentry09提出来的全同态系统,我们往往称之为第一代全同态加密系统。在Gentry的论文中,他还提到了一个至关重要的概念叫做Bootstrapping。Bootstrapping是一种对于密文的特殊处理技巧,处理过后竟然可以把一个噪音接近临界值的密文「重新刷新」成一个噪音很低的新密文。通过Bootstrapping,一个有限级数的系统的噪音可以永远不超过临界值,从而变成了全同态的系统。这样一来,我们就可以同态计算任意大小的了。在Gentry的重大突破之后,整个密码圈又一次陷入了疯狂,大家都开始争相基于Gentry提出的想法寻找更加高效率和全能的全同态体系。在2011年的时候,两位大佬Brakerski和Vaikuntanathan提出了一个新的全同态加密体系,这一体系基于格加密的另一种假设LearningWithErrors。在同一年,Brakerski,Gentry与Vaikuntanathan这三人一起把这个体系做完了,并且正式发表出来。他们发明的全同态系统简称为BGV系统。BGV系统是一个有限级数的同态加密系统,但是可以通过Bootstrapping的方式来变成全同态系统。BGV系统相比起Gentry09提出的系统,使用了更加实际一点的LWE假设。一般来说我们都把BGV系统称之为第二代全同态加密系统。2013年,Gentry又卷土重来了。Gentry,Sahai和Waters三个大佬推出了新的GSW全同态加密系统。GSW系统和BGV相似,本身具有有限级数全同态性质,基于更加简单的LWE假设,并且通过Bootstrapping可以达到全同态。我们一般把GSW系统称为第三代全同态加密系统。2013年之后,密码圈基本上就百花齐放了。基于原来的三代全同态系统之上,出现了各种各样新的设计,致力于优化和加速BGV与GSW系统的运行效率。IBM基于BGV系统开发了一个开源的全同态运算库HElib,并且成功的移植到各大移动平台上。与此同时,还有另外一个开源项目TFHE也非常值得注意。TFHE是基于GSW系统,又加以了各种优化与加速,现在也非常的有名。在开发传统的全同态库之外,也有很多团队在研究如何通过GPU,FPGA,ASIC等异构硬件来更好的加速全同态加密算法的计算。比如cuFHE就是一个比较有名的基于CUDA的GPU加速全同态加密系统。站在今天的角度上,一路看来,全同态体系的大门被Gentry大神敲开已经过去了11年了。现在业界对于FHE的研究百花齐放,不少人都在不同的角度和应用需求上在研究全同态系统。直到今天,我们已经拥有了多种可行的FHE实现方法,但是现在大家还在不断追求的是FHE系统运转的效率。拿现在最前沿的FHE库来说,在移动平台上同态计算一些比较简单的逻辑可能要少则花上几十毫秒,多则花费几十秒的时间。这些时间单位对于计算机系统来说是极其缓慢的。如何可以让FHE系统更加高效率的在异构平台上运行,仍然是一个未解之谜。如果这道难题一旦被解决了,那么把所有的电脑运算都转为全同态,代理在第三方的云端上进行计算,都是伸手可得的未来。FHE与MPC的关系
在结束文章之前,我还想补充说明一下FHE与MPC之间的关系。MPC即SecureMulti-PartyComputation,就是可信多方计算。通常代表的是有多方拥有自己的私密输入,不想泄露给别人,但是他们想使用自己的输入一起计算一个函数并分享计算的结果。MPC其实已经是一个非常广为人知,并且被研究了很久的一个领域了。自从上个世纪密码学家姚期智推出了他的GarbledCircuits之后,MPC领域获得了非常广的认可,并且也有很多突破。现在我们已经拥有很多可以使用的MPC库,并且也具有一定的运行效率了。如果了解MPC的朋友,看到全同态加密系统的艰辛历史之后,也许会有很多疑问:为什么不可以直接通过一个MPC协议来代替全同态加密呢?的确,一个MPC协议可以完全代替一个FHE协议。我们只需要把用户和私密输入作为一个协议中的一个Party,再把远程的代理计算服务器作为另一个Party,就满足了MPC协议执行的条件,只需要通过一定的交互,就可以实现代理计算,并且服务器也看不到私密输入。但是有很重要的一点我们忽略了:由于MPC是有交互性的,所以需要用户和服务器共同进行计算与交流才可以完成协议。这也就和FHE代理计算最根本的需求冲突了。如果用户需要一直保持在线完成协议,并且也要付出一部分算力的话,那其实计算根本就没有被「代理」出去,双方只是为了信息的安全性而在做更多的计算。这也说明了为什么MPC领域已经得到重大突破了,但是FHE的领域仍然是一片未知,因为他们两个系统解决的是完全不同的问题。下一站:GSW全同态加密系统
看到这里,想必大家已经对于全同态加密系统有了非常透彻的理解。下一站,我们可以一起来学习一下前文提到的GSW全同态加密系统。虽然说这是全同态系统的第三代,但是我认为Gentry09,BGV,GSW这三套系统中用到假设最少,构造最简单,并且最容易理解的就是GSW了。并且现在也有很多开源库就是基于GSW系统构建的。由于篇幅原因,我们就在这里结束这一篇文章吧。下一篇文章,我们可以首先学习一下GSW系统的基础:基于格的加密体系与LWE问题。一旦了解了LWE问题之后,GSW解决的问题就变得非常清晰了。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。