java加密 密文中含有+号_全同态加密是如何被解决的-5

本文介绍了全同态加密的早期研究,探讨了为何明文不能以整数形式加密以及全同态加密方案用电路描述的原因。重点阐述了如何通过AND、XOR电路实现任意功能的加密运算,并利用解密电路降低噪音,确保计算正确性,最终实现全同态加密的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:这篇文章是由陈智罡博士于2013年写的博客文章,当时全同态加密研究刚起步,方案非常复杂。陈博士的这篇博客文章,成为了每个进入全同态加密领域同学的必读文章,也为很多学习全同态加密的同学解答了很多学习困惑。今天读起来,会让我们很好的了解当初全同态加密是如何被解决的。

———————————这是一条美丽的分割线——————————————

4、 电路复杂度

前面的方案中大家看到了是按“位”来加密的(即m∈ {0,1}),加密后得到的是一个整数,密文膨胀的很厉害,那么为什么明文不取整数来加密呢?例如取明文m∈Z。我想原因是这样的:每个研究全同态的人们都想过了,但是没有找到一个方案可以把明文按照整数来加密。并不是说没有这种方案,估计只是现在还没有找到。

又有人会问:为什么全同态方案要用电路来描述呢?

首先我们来说说什么叫一个方案是全同态的?如果一个方案能够对密文做任意功能的运算,而且运算结果所得密文是紧凑的,同时Evaluate算法(即运算)是有效地,那么我们就称该方案是全同态的。可以用下式说明:

c2ae20c1f1440b554b0cf11d7cc78257.png

上式太重要了,我觉得只要把上面的式子牢记在心,那么全同态的概念就装在心里了。“紧凑的”在这里就不说了,论文里有解释,而且也很好理解。正确性当然是必须的。

那么如何衡量Evaluate的有效性呢?最直观的方法可以通过复杂度来衡量。显然Evaluate的复杂度依赖于所运算的函数f。那么f的复杂度如何衡量呢?当然最直接的方法是通过在图灵机上运算f的时间来衡量。但是函数f又是什么呢?我想应该是五花八门的功能函数,如果想用功能去描述它恐怕是一言难尽,但是如果用布尔电路的大小(the size of boolean circuit,即门电路的数量)来衡量,那么f就能够被拆解成一些简单的布尔电路:例如“与”电路、“或”电路、“非”电路。而这些电路是可以组合成任意电路的,也就是说可以表示任意功能的电路。

同样我们也可以选择用AND电路和XOR电路,因为这两个电路是具有完备性质的,也就是说这两个电路的组合也可以表出任意功能的电路(而且用这两个电路来描述更加直观,它们直接对应的算术运算就是乘法和加法)。

显然AND电路和XOR电路是属于permitted functions集合里的(为什么?因为AND电路是对应的是两个二进制位相乘,XOR对应的是两个二进制位相加,上述同态方案肯定能够正确执行这两个运算,因为就是一次乘法或者一次加法,既然能够正确执行,所以它们就属于permitted functions集合)。

又由于AND电路和XOR电路是完备的,所以任意功能都可以用这两个电路组合表出,也就是说该同态方案可以对密文做任意功能的运算,这不就是传说中的全同态定义么!任意功能的问题解决了,但是还缺一点:必须是正确的才行。你对密文一阵蹂躏后,如果结果解密后不是同样对明文蹂躏的结果,你有什么感觉?

那么上述同态方案能够保证计算的正确性么?上面我们已经看到由于噪音的存在,该方案只能做有限次的运算,也就是说只能够对permitted functions集合里的功能函数保证是正确的,在此之外保证不了,现在你知道permitted functions集合里有什么东西了吧。那如何能够保证对密文做任意功能的运算还是正确的呢?

前面说过可以通过重加密技术降低噪音呀!具体如何做呢?很简单:给AND电路上接一个解密电路,给XOR电路上也接一个解密电路,任何密文在进入AND电路或XOR电路之前,先让它进入解密电路进行重加密,之后从解密电路里出来的密文就是一个类似于新鲜密文的密文,噪音比进来前降低了,然后再让这个新的密文进入AND电路或XOR电路,这样我们就可以对密文正确的做任意功能的计算了!而接了解密电路的AND电路或XOR电路就称为增强电路。

总结一下:任意函数功能拿来,先用增强型AND电路和增强型XOR电路表示出来,这样就可以对密文做任意功能的计算了,由于是增强型的,我们不再害怕噪音的阻碍,可以无限运算下去。OK,全同态的蓝图终于在纸上实现了。

但是还有一个问题(问题真多,难怪人说科学是由问题产生的,现在我才理解),解密电路是属于permitted functions集合里的么?可能有人会说,方案中不是有解密电路么,Evaluate应该可以运行它吧。另外还有人说,按照上面方法把解密电路表示成增强电路不就行了。别忘了,增强型电路是含有解密电路的,所以这样说等于由果来推因了。AND电路、XOR电路、解密电路都可看成是“原电路”(这个名字是我自己取的),就是说它们是构成任意功能函数的基石,permitted functions集合里含有它们就完全够了。

前面我们已经解释了AND电路和XOR电路属于permitted functions集合的原因。唯一缺的就是没有证实解密电路也在permitted functions集合里。下面就来分析分析解密电路。

==========================================================================

文章首发在微信公众号:btc201800知识星球ID:28018093

音频发布在喜马拉雅上“区块链杂谈 (第2季)” http://xima.tv/Bjq4se

解读区块链白皮书 http://xima.tv/RNU1Q8

宁波格密链网络科技有限公司,专注于区块链上的密码技术研发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值