http://www.7klian.com

初探全同态加密之四:Bootstrapping的道理与实现

在GSW结构被提出之后,Brakerski与Vaikuntanathan试图寻找一个较量公道的Bootstrapping方案,即找到一个可以有效办理中Dec第二步的要领。他们选择的要领是首先用逻辑电路来表达解密函数Dec,然后再利用Barrington’s Theorem把这个逻辑电路转化为一系列的Matrix Branching Program(矩阵分叉措施,MBP)。
直到有一天,Alice溘然想到了一个idea。

密钥轮回与Circular Security

2. Bob可以通过单向的进口把对象投入手套箱中,可是无法取出任何对象。这代表了我们接头的FHE加密系统是一个安详的public key(公钥)的加密系统,即任意第三方都可以缔造密文但不能解开密文。

当BV二人按照这个布局提出Bootstrapping的方案之后,各人逐渐找到了一条可以真正实现Bootstrapping的路,而且开始用代码来实现。到2014年,Halevi与Shoup在HElib(IBM的FHE库)中利用雷同的观念举办Bootstrapping计较,而且可以在半个小时阁下的时间内举办一次Bootstrapping,利用的参数的存储空间到达了几十个GB阁下。

当噪声的取值范畴逐渐迫近士q/4之后,我们的密文就酿成了一个“饱和”的密文,不可以或许举办任何同态计较了。因为一旦举办计较的话,代表0的一头与代表1的一头的噪音区间就会重叠在一起,这样我们在解密的时候,就不能通过一个简朴的thresholding(即较量最后的功效是否靠近0的一头照旧q/2的一头)来完美还原出一开始的原文了。

TFHE所用到的能力也很是巧妙,它的焦点也是调查到FHEW所用的Accumulator的结构,发明假如把密文映射到Torus T(环面空间)中,那么组成这个Accumulator的结构越发简朴。因为整个计较空间是一个环形的,只需要通过一个盲旋转(blind rotation)的操纵,就可以提取出密文的最高位的值。
整个想法瞬间震惊了所有珠宝店的人,通过这样的结构,Bob就可以不消Alice资助加工任意巨大度的珠宝了,两个不足就串三个,三个不足就四个。独一需要做的就是Alice需要在开始之前把对应的钥匙丢入对应的箱子中。
可是,我们近几年已经找到了许多反例,即找到了一些必然不满意Circular Security的加密系统。好比说我们手动的在某个加密系统中塞入一个后门,使得一旦拥有了轮回密钥,即加密了密钥的密文之后,就可以通过这个后门来得到密钥的原文。可是这些加密系统都是工钱的结构的,由于我们今朝还没有在现有的公钥加密体系找到一个很自然的反例,所以我们相信Circular Security仍然是个安详的假设。

这些库之间并没有出格多的优劣较量,更多的只是他们适应于差异的利用需求。好比说有的库会利用许多浮点操纵,有的库会利用CUDA加快,有的库会利用GPL License下的其他插件(好比FFTW),所以不能用来闭源开拓等等。由于时间干系,笔者就没有一一去测试了,把这个时机留给各人去实验一下。

2. 其次,固然手套箱上了锁之后,Alice就可以安心Bob不会偷走珠宝了。可是这样的价钱就是,当Bob加工完了之后,他并没有步伐直接把加工完的珠宝拿出来给顾主,而是得等Alice过来了才气打开来。这样一来假如Alice很忙的话,大概顾主得Alice忙完了才气拿到本身买的商品。
为什么这样的方案可行呢?因为一开始说到了,手套箱上安装的单向进口可以放入任何对象,包罗另一个手套箱,所以就可以层层嵌套啦。独一需要留意的一点是,在手套箱B中解开箱A的锁这个步调,也会给箱B带来必然的损耗。所以在选取锁的时候,Alice特意选择了不需要太大力大举气可以几步解开的锁。
1. 首先,套上手套的Bob的加工手艺并没有以前那么精深了。也许原本只需要半天的活,此刻大概要磨蹭两三天才气干完。
一筹莫展的Alice看着一个只能用有限次的手套箱,很是的失望。这一有限的加工次数抉择了Bob可以加工的珠宝的庞洪水平。凭据此刻这个样子,Bob只能加工一些半制品出来,然后需要Alice去开锁,再把半制品放到一个新的手套箱中,继承让Bob加工。
Bootstrapping的观念
假如乍一看有点一头雾水,不要急,我们一步一步的来看在FHE中Bootstrapping是如何实现的。

利用Barrington’s Theorem举办Bootstrapping
Alice所想到的这个能力,正是我们这一期想要接头的Bootstrapping的观念!假如拿到FHE的世界中简朴的归纳综合的话,那就是:把一个满噪音的FHE的密文加密进另一个FHE密文中,而且同态计较FHE的解密算法,把里层的密文解密还原为原文,就能得到一个全新的低噪音FHE密文。

直到有一天,Alice在看Bob加工珠宝的进程中,溘然灵机一动:如果我事先知道了Bob加工一个珠宝需要两个手套箱,我能不能想步伐可以让Bob在没有钥匙的环境下把未加工完的半制品从第一个手套箱中转移到第二个手套箱中呢?
紧接着,在2016年的【CGGI16】中,TFHE降生了,担任了FHEW的特点,不外举办了一系列越发优化的操纵,把Bootstrapping的时间压缩到了0.05秒之内。在2017年的follow up 【CGGI17】中,又把这一下限压到了0.013秒!
这种布局和Gate的思路相反,把Bootstrapping的观念直接袒露在了应用层。我们在举办计较的时候可以按照今朝的噪声值来选择是否要举办Bootstrapping。这样的长处在于,假如我们需要同态验证的电路的巨大度不是很高的话,我们就可以很快速的举办Leveled同态计较,而不需要花特另外时间来通过Bootstrapping来刷新噪声。

Alice买来了一个手套箱(Glove Box),就是那种做尝试用的密封的箱子,中间有两个带有手套的洞,手可以伸进去遇到箱子内里。她的想法很简朴:只需要把所有的原质料全部锁在箱子里,然后Alice保管着可以开锁的钥匙,Bob就偷不走了。Bob想要加工这些原质料也很简朴,只需要把手伸进去隔着手套加工珠宝,就可以完成事情了。
Bootstrapping的计策

同态计较无限级数电路

同态解密GSW密文

Alice开了一家珠宝店,天天她需要把差异的珠宝(钻石、黄金)加工拼接起来,然后把完成的首饰卖给顾主。
FHE库的较量
我们先从头回首一下GSW的加密与解密布局。
这样一来,Alice根基上得全程在旁边看着。原本雇Bob来是为了淘汰承担的,没想到此刻反而还越发加重了事情压力。
那么此刻问题来了,Alice可以如何不改造手套箱,可是增加它的利用寿命呢?我们继承回到Alice的世界中来看看Gentry是怎么描写的。
和之前先容FHE系统差异的是,Bootstrapping其实是一个很广义、宽泛的观念。我们并没有用一系列公式来展示Bootstrapping的进程,而只是先容了这一种思路,即同态验证解密函数。这种思路可以用于任何FHE的系统,包罗BGV与GSW系统。
3. Bob可以通过两个手套口,任意的加工放在手套箱中的物品,可是效率比起直接加工要慢上很多。这一步对应了FHE中的同态计较(Eval)。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读