首页 同态加密方案

同态加密方案

举报
开通vip

同态加密方案若一个加密方案对密文进行任意深度的操作后解密,结果与对明文做相应操作的结果相同,则该方案为完全同态加密方案。通常一个公钥加密方案有三个算法:KeyGen算法(密钥生成),Enc算法(加密),Dec算法(解密)。但是在全同态加密中,除了上述三个算法之外,还包含第四个算法:Evaluate算法(密文计算),这个算法的功能是对输入的密文进行计算。KeyGen算法(密钥生成)用于生成公钥和密钥,公钥用于加密,私钥用于解密。还可能生成另外一种公钥,即密文计算公钥,我们把它称之为Evk。密文计算公钥Evk的作用是在执行Eval...

同态加密方案
若一个加密 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 对密文进行任意深度的操作后解密,结果与对明文做相应操作的结果相同,则该方案为完全同态加密方案。通常一个公钥加密方案有三个算法:KeyGen算法(密钥生成),Enc算法(加密),Dec算法(解密)。但是在全同态加密中,除了上述三个算法之外,还包含第四个算法:Evaluate算法(密文计算),这个算法的功能是对输入的密文进行计算。KeyGen算法(密钥生成)用于生成公钥和密钥,公钥用于加密,私钥用于解密。还可能生成另外一种公钥,即密文计算公钥,我们把它称之为Evk。密文计算公钥Evk的作用是在执行Evaluate算法时用到,而且Evk的形式与使用的全同态方案直接相关。例如,如果是通过启动技术(Bootstrapple)获得全同态加密,即每次密文计算前要用同态解密约减密文的噪音,这时Evk就是对密钥的每一位加密后生成的密文,即密钥有多少位,Evk里包含的公钥就有多少个。Evk中每个公钥的大小就是使用Enc加密后产生密文的大小。当然还有其他情况,例如,如果使用密钥交换与模交换技术获得全同态加密,典型代表就是BGV方案。这时Evk中包含的就是L–1个矩阵,L是方案中电路的深度,该矩阵用于密钥转换。每次密文计算后,都需要使用Evk中的公钥将维数扩张的密文向量转换成正常维数的密文向量。当然还有一种情况就是不需要Evk,例如在Crypto13会议的 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 GSW13中,Gentry使用的密文是矩阵(方阵),所以密文乘积或相加不会产生密文维数改变的事情,所以在密文计算时没有用到公钥,这也是该论文可以产生基于身份或基于属性全同态加密方案的根本原因。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算法不能够对任意电路(函数)进行计算。全同态加密(FullyHomomorphicEncryption)方案中,有一个非常重要技术:同态解密。为什么要同态解密,前面说过噪音问题是实现全同态加密方案的最大障碍。Gentry在实现全同态加密方案时,注意到可以在Evaluate算法中执行自己的解密函数,那么输入的数据是什么呢?解密函数当然输入的是密钥sk和密文c。但是不要忘了Evaluate算法是如何定义的。Evaluate算法是对输入的密文c1,c2,…执行函数f的操作,也就是对密文进行计算,本质是对密文做同态计算,即计算后的密文解密后要等于对明文做同样的计算,如果这点做不到,那么Evaluate算法即使能对密文做很多次运算,也是没有意义的,这就是两种形态,明文态和密文态,两种形态对应的是同一个计算电路。在明文态,输入电路的是明文,而这些明文都是位(因为是布尔电路)。在密文态,输入电路的就是把每一个明文变成密文就可以了(算术电路)。而现在如果f是解密函数,那么输入的密文是什么呢?在明文态,对于解密电路,输入的肯定是密钥sk的每一位二进制位,以及密文c的每一位二进制位,因为是布尔电路,所以输入的数据都要化成二进制位的形式。在密文态,相应的把明文位变成密文就可以了,原来是一个位的地方现在变成了一个密文,那么将这些密文输入到解密电路中,结果是一个密文,这个密文解密后等于在明文态对明文做同样计算的结果。现在我们关心的是这个从解密电路里出来的新密文和原来的密文c之间有什么关系?这两个密文对应的是同样的明文。两个密文的噪音是不一样的,因为密文计算的噪音会随着计算次数不断增长。而从解密电路里出来的密文的噪音是一个固定值,保持不变。我们希望的是什么?是解密电路里出来的密文的噪音比原密文的噪音小么?NO!我们 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 没有这么高。我们只要求解密电路里出来的密文的噪音,还允许再进行一次乘法计算就可以了。因为如果上面的要求成立的话,那么每次密文计算前,只要通过同态解密,出来的密文就可以保证再进行一次计算,不断循环下去,就可以做无限次计算了。当然要想做无限次计算还需要一个假设条件就是:循环安全。如果不做这个假设,我们只能做深度为L的电路计算。总之能够保证对密文做我们想要的计算了。所以同态解密,是实现全同态加密的一个关键技术,Gentry就通过它实现了全同态加密。要想使用同态解密,必须在Evaluate算法中能够执行自己的解密函数才可以。很多人都纳闷,解密函数不就是计算一下么,例如在整数方案里解密函数就是:(cmodp)mod2,在LWE或环-LWE上解密函数是:(modq)mod2,难道不能够执行这些函数?前面说过,想降低密文计算带来的噪音,可以通过同态解密得到一个新的密文(噪音是恒定),使得我们可以进行下一次计算,每次计算后都通过同态解密约减噪音,就能够获得全同态加密了。然而同态解密需要Evaluate算法能够运行自己的解密函数,在早期的全同态加密方案中(Gentry09,DGHV),包括BV11方案如果最后一步不使用模维数约减的话,Evaluate都不能够运行自己的解密函数。很多同学学到这里的时候,都很纳闷,解密函数不就是一些加法乘法模运算么,为什么计算不了,难道还有计算不了的函数?这个问题是问我的人最多的,今天给大家好好解释一下。所谓的运行不了自己的解密函数,是有语境的,准确的说是“Evaluate算法不能够运行自己的解密函数”,而Evaluate算法的输入是什么?同态解密时,Evaluate算法输入的是解密电路(f函数),还有往解密电路里输入的一些密文,这些密文是由密钥和密文的每一位加密而成的。那么Evaluate算法做的工作是什么呢?Evaluate算法做的工作就是让这些密文在解密电路里计算,是密文的计算,记住了!由于密文计算过程会产生噪音,所以密文只能够进行有限次的计算,超过这个界就会产生解密的错误。所以如果解密电路的深度小于方案所允许计算的深度(这里方案所允许计算的深度指的是Somewhat同态方案的计算能力),那么就可以完成同态解密的工作。但是如果解密电路的深度大于方案所允许计算的深度,那么就悲催了,我们就不能够使用同态解密这个方法去降低密文的噪音。Gentry发明了一种方法叫“压缩解密电路”,就是把解密电路的深度降低,从而满足“解密电路的深度小于方案所允许计算的深度”,这样就可以使用同态解密技术,方案就可以启动了!压缩解密电路是要付出代价的,同时需要一个假设“稀疏子集和问题”,该问题没有被很好的研究过,所以是假设。不过目前的方案已经不需要压缩解密电路了,例如BGV方案,Bra12方案,这些方案都能够运行自己的解密电路,所以不需要压缩的方法了。同态解密的技术成就了全同态加密,然而其效率却非常低,所以后面诞生了模交换技术。Gentry第一个全同态加密方案是基于理想格构造的。方案所选择的代数结构是理想格,是因为在格里解密操作比较简单,绝大多数都是矩阵向量乘或是内积,都属于NC1,具有低的解密电路复杂度,此外理想格像格一样具有加法结构,同时它还有乘法结构的特性。所有后面沿着Gentry的构造思路都是按照这个思想来的。直到LWE上的全同态加密方案的出现。Gentry构造全同态加密方案的思想可以抽象概述为:首先在环R上构造一个线性纠错码C,“线性”意味着保证加法同态性,“纠错”意味着码字中存在错误,如果该错误在一定范围内就可以纠错。而且C是环上的一个理想,其基有两种表示,一种是“好”的表示,用来做密钥,可以对大的错误进行纠错(相当于解密),当错误超过上限后将无法纠错(即无法解密)。另外一种表示是“坏”的表示,用来做公钥,可以产生随机的码字,用于加密。由于线性纠错码C的线性特性决定了其具有加法同态特性,另外C是环上的一个理想,所以其乘法也具有同态特性,然而由于错误存在上限,因此仅对有限次的乘法计算保持其同态特性。该思想形成的方案就是部分(Somewhat)同态加密方案,由于密文计算中错误增长的原因,该方案只能对密文进行有限次的运算。最初的方案都可以用这种思想解释。上述构造思想中的环结构保证了乘法计算,但是对于LWE(环LWE)上的加密方案由于没有环结构,所以无法提供密文向量的乘法,一度成为LWE(环LWE)上构造全同态加密的最大障碍。Brakerski在论文Bv11中引入了再线性化技术与维数模约减技术,成功的解决了在没有环结构的方案中进行密文乘积的问题。后来在BGV方案中经过改进形成了密钥交换技术和模交换技术。在基于LWE(环LWE)的全同态加密方案中,密文乘积定义为两个密文c1和c2的张量c1c2,对应的密钥为s.按照这种形式的乘法定义,一方面,密文乘积将导致密文维数的膨胀,只能进行常数次的密文乘法计算;另一方面,同样面临着噪音在乘法中急剧增长的问题。解决这些问题,一方面通过使用密钥交换技术,可以将密文的维数还原到原来的维数,因此可以进行下一次密文的乘积;另一方面使用模交换技术,可以将增长的噪音约减回原来的噪音大小上。因此,不需要启动就可以获得层次型全同态加密方案(可以执行任意多项式深度的电路),所以不再需要稀疏子集和问题假设和循环安全假设,这是全同态加密思想上的一次飞跃,打破了原有的Gentry构造框架,效率上也得到了极大地提升。目前效率最高的环-LWE上的BGV方案使用的就是这种构造方法
本文档为【同态加密方案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_686908
暂无简介~
格式:doc
大小:21KB
软件:Word
页数:8
分类:
上传时间:2022-08-04
浏览量:3