陈智罡-全同态加密释疑.docx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
陈智罡-全同态加密释疑 全同态加密释疑(一):四个算法(1) 陈智罡 ?2009年全同态加密(Fully Homomorphic Encryption)的诞生,不仅是密码学界的一个大的突破(Breakthrough),而且是计算机理论界的一个突破。自从2011年创建了全同态加密QQ群,从几十号人到现在的将近200人,来自各个大学,包括国外。可见人们对全同态加密研究的热情。 ? 另外在网上有许多同学问我一些问题,有些问题很雷同,可能也是初学者必经之路。全同态加密的入门确实比较难。作为一个过来者,非常愿意分享我的一些心得,所以这里我会把一些共性的问题,用一种深入浅出的方法讲述,希望每个人都能看懂。 ? 其实在全同态加密论文的背后,有许多可以说出来的秘密,只不过这个秘密在论文里没空间也不适合讲,那么这里就搞一个专题“全同态加密 外一种公钥,即密文计算公钥,我们把它称之为Evk。 ? 密文计算公钥Evk的作用是在执行Evaluate算法时用到,而且Evk的形式与使用的全同态方案直接相关。例如,如果是通过启动技术(Bootstrapple)获得全同态加密,即每次密文计算前要用同态解密约减密文的噪音,这时Evk就是对密钥的每一位加密后生成的密文,即密钥有多少位,Evk里包含的公钥就有多少个。Evk中每个公钥的大小就是使用Enc加密后产生密文的大小。典型的代表就是Gentry的理想格方案以及后续的整数上的方案。 ? 当然还有其他情况,例如,如果使用密钥交换与模交换技术获得全同态加密,典型代表就是BGV方案。这时Evk中包含的就是L–1个矩阵,L是方案中电路的深度,该矩阵用于密钥转换。每次密文计算后,都需要使用Evk中的公钥将维数扩张的密文向量转换成正常维数的密文向量。 当然还有一种情况就是不需要Evk,例如在Crypto13会议的论文GSW13中,Gentry使用的密文是矩阵(方阵),所以密文乘积或相加不会产生密文维数改变的事情,所以在密文计算时没有用到公钥,这也是该论文可以产生基于身份或基于属性全同态加密方案的根本原因。 ? 关于Evk就说了这么多,你觉得简单么?一个成功男人的背后,有多少……,那么一个概念的背后就有多少个概念在支撑。千万别小看了概念,只有善于抓概念,才能体会方案的脉络。 ?继续说全同态加密中的其他三个算法。 Enc算法(加密)和我们平常意义的加密是一样的,但是在全同态加密的语境里,使用Enc算法加密的密文,一般称之为新鲜密文,即该密文是一个初始密文,没有和其他密文计算过。所以新鲜密文的噪音称之为初始噪音。这个相当重要。 ? Dec算法(解密)也和我们平常理解的一样,就是对密文的解密,但是这里解密算法不仅能对初始密文解密,还能够对计算后的密文解密。但是由于部分同态加密方案中密文存在噪音,例如在整数上的全同态加密方案里,密文乘积的噪音是噪音之积,密文加法的噪音是噪音之和。所以当密文计算到一定程度,其噪音将超过上限,所以对这样的密文解密将可能失败。全同态加密的关键就是对噪音的控制,使之能对任何密文解密。 ? 最后一个算法:Evaluate算法(密文计算),这个算法是整个全同态加密四个算法中的核心。可以做个这样的比喻:前面三个算法是大楼的地基,后面这个Evaluate算法就是大楼。这个比喻在后面会体会到它的用意。密文的计算是在电路里进行的,电路是分层的,电路深度越深,层数越多,密文就能够进行更多次的计算。随便提一句,密文计算的次数等于电路深度的对数。什么是计算次数?例如c1*c2,就是进行了一次计算,次数为2,c1*c2*c3就是进行了两次计算,次数为3。在全同态加密中,我们一般用乘法次数来衡量计算次数,这是因为乘法的噪音比加法噪音增长的快很多。 ? Evaluate算法有三个输入,第一个输入是计算公钥Evk,就是我们在上次博文里讲到的。Evk可以没有。第二个输入是函数f,就是Evaluate算法所要执行的函数,可以是任意函数,因为全同态加密的目标就是对密文能够进行任意计算。当然这个函数也可以是“解密函数”,Gentry通过观察发现了一个秘密,等会我们说。第三个输入是密文,理论上可以有无穷多个密文,但是这是不可能的。 ? 所以Evaluate算法就是将密文输入到函数f里进行计算。我们知道在全同态加密的方案里,密文都是含有噪音的,密文的计算会导致噪音的增长,如果把函数f表示成电路,那么Evaluate算法实际上只能够对有限深度L的电路进行计算,超过这个深度L的电路就不行了。所以我们把这样的方案称之为部分同态加密方案。由此可见Evaluate算法的重要性,全同态加密就靠它了。还记得刚才的比喻么?Evaluate算法相当于大楼,这个大楼的层数是有限的,而全同态加密的目标是无限高! ? 所以噪音问题导致了Evaluate算法不能够对任

文档评论(0)

138****2866 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档