专业挖矿2000人QQ群:677381516 提供挖矿知识,解决矿机各种问题

巴比特专栏 | 全同态加密是如何被办理的?

当前位置:首页 > 业界讯息 >

因此输出位的次数最多为t次,因为上面3位数相加次数最多为3次。

c1+c2=(m1+m2)+2(r1+r2)+p(q1+q2)

然后用si’乘以上面矩阵第i行的每一位,获得一个整数矩阵(矩阵中每一个元素都是整数):

上面有一小我私家说对了一半,其实我们可以把解密电路用AND电路和XOR电路暗示出来,计较一下电路的深度(电路的深度是运算次数的对数,譬喻深度是d,计较次数就是log d),然后再和permitted functions中成果电路所答允的最大深度做个较量,就知道解密电路是否属于permitted functions荟萃了。

 

 

8

假设c1= m1+2r1+pq1; c2= m2+2r2+pq2; 个中c1是对密文m1的加密,c2是对密文m2的加密。

 

所得功效为一个新的密文,该密文是明文在pk2下加密的密文,是不是有点像把戏,就像本来一小我私家穿的是西装,此刻你没有看到这小我私家更衣服的环境下,把戏师只是施了一下邪术,这小我私家立即就换了一身举动服,人照旧本来那小我私家,只是包装变了。这也是Gentry思想中一个最重要的特性:同态解密。

a2,0 ·  a2,-1 …… a2,-(n-1)  a2,-n

Lsb是最低有效位,因为是模2运算,所以功效就是这个二进制数的最低位

deg=1 · deg=1…… deg=1 deg=1

取y1,y2,…,yn ∈[0, 2),存在一个稀疏子集S,使得∑si · yi ≈ 1/p mod 2 (i∈S)(因为是实数所以用近似便是1/p暗示,是存在一个误差的,这个误差不影响取整后的功效)。令 zi←c· yi  mod 2,zi保存必然的准确度,从而有:∑si · zi ≈ c/p  mod 2。所以解密电路中的「c/p」可以替换成「∑si * zi 」。解密电路酿成:

7

 

别的在这里约定:一个实数模p为:a mod p = a -「a/p」*p, 「a」暗示最近整数, 即有独一整数在(a-1/2, a+1/2]中。所以a mod p的范畴也就酿成了(-p/2,p/2 ](这个紧记)。这个和我们平时说的模p范畴是纷歧样的,平时模p范畴是[0, p-1],那是因为模公式中取得是向下取整:a mod p = a –floor(a/p)*p。

知道此c*和c有什么干系么?c*是c的“更生”,噪音比本来低落了。

5)   然后将c*输入门电路。门电路一般都是二元的,需要两个输入,别的一个输入也用同样的要领计较获得

那么t个数应用这个能力颠末log3/2 t 次相加后获得两个数,输出位的次数为2log3/2 t = tlog3/2 2= t1.71

at,0  · at,-1 ……  at,-(n-1)  at,-n    deg=1 · deg=1…… deg=1 deg=1

由于sum(S)是一些0的加密密文之和,所以对解密并不影响,整个解密进程稳定。

c* = c’+ b

6

4

对付任意一个二进制向量<a1,a2,……,at>,其海明重量为W,而且其二进制暗示为:wn,……w1w0的话,则wi可以暗示为关于变元a1,a2,……,at的一个次数是2i多项式。这个多项式很好求,就是对称多项式e2i (a1,a2,……,at),有现成的算法。

如何把电路变浅呢?一个直观的要领就是替别人包袱一些事情,这样本来的任务量就变小了。

3、Bootstappable:一个生硬的思路

噪音阻碍了我们的方针,那么如何消除噪音这个仇人呢?一个直观的要领就是对密文解密,密文解密后噪音就没有了,可是要解密必需要知道私钥,要想通过得到私钥来消除噪音是不现实的。那么假如对密钥加密来做可以么?

……        …………

所以每次计较的根基步调如下:

1)   对输入的明文m举办加密Enc(m),获得密文(c,z),c是密文,z是向量<z1,z2,……>也称为扩展密文。

 

f ( x1, x2, …,xn ) = x1x2…xd + x1x3…xd + ……;个中d<=n

看来对密文运算会造成噪音的增大,当噪音超出范畴,解密就失败,这意味着对密文运算不行能是无限次的(也就是Evaluate运算成果函数的电路深度是有限的,这在后头我们说到电路时会看到)。到这里我们只获得了一个运算时噪音范畴不能高出p/2的同态方案(Somewhat 同态方案),看来好像用这个方案实现全同态是行不通的。我们需要的是全同态方案即Evaluate可以运行任意成果函数,而不是某一类成果函数(这叫同态方案)。预计几多英雄俊杰到了这里就以为没戏了,于是另寻他路,于是一个打破就擦肩而过。那么下面让我们阐明一下症结地址。

Lsb(c) XOR Lsb(「∑si·zi 」)。

由于重加密在每次执行前都需要一个公钥来加密私钥和密文,要举办多次重加密就需要一个公钥序列{pk1,pk2,…,pki},对应于公钥序列也有一个加密私钥链{sk1*,sk2*,…,sk(i-1)*}(个中ski*是用pk(i+1)加密ski获得的密文)。这个进程是如何举办的呢?

这个调动后的方案,公钥除了本来的公钥pk之外还多加了一个向量{yi}。密文除了本来的c之外多出了一个向量{zi}。这个多出来的zi可以看做是提前拿出来计较以减轻解密电路承担的,这个要领叫预处理惩罚(post-process)。私钥由本来的sk酿成了{si}。可以看到公钥变大,密文也变大,这个价钱就是为了换得更浅的电路。那么电路变浅了吗?下面来阐明一下: