整数上全同态加密方案分析报告
- 格式:docx
- 大小:61.32 KB
- 文档页数:29
全同态加密技术的研究与应用在当今数字化的时代,信息安全成为了至关重要的问题。
随着云计算、大数据等技术的迅速发展,数据的处理和存储越来越多地依赖于第三方平台。
然而,在将数据交给第三方时,如何保证数据的机密性和隐私性成为了一个巨大的挑战。
全同态加密技术的出现,为解决这一问题提供了一种有效的途径。
全同态加密是一种特殊的加密形式,它允许在密文上进行任意的计算操作,而无需对数据进行解密,最终得到的结果与在明文上进行相同计算操作得到的结果一致。
这一特性使得数据在加密状态下仍然能够被处理和分析,极大地保护了数据的隐私。
全同态加密技术的发展历程并非一帆风顺。
早期的研究主要集中在理论层面,由于计算复杂度高、效率低下等问题,实际应用受到了很大的限制。
但随着密码学和计算机技术的不断进步,全同态加密技术逐渐取得了重要的突破。
从原理上讲,全同态加密通常基于数学难题,如整数分解、离散对数等。
通过复杂的数学运算和密钥管理,实现对数据的加密和解密。
在加密过程中,明文被转换为看似随机的密文,而解密则是通过特定的密钥将密文还原为明文。
在实际应用方面,全同态加密技术具有广泛的前景。
首先,在云计算领域,用户可以将敏感数据加密后上传至云端,云服务提供商能够在不获取明文的情况下对数据进行处理和分析,例如进行数据挖掘、机器学习等任务。
这既保护了用户的数据隐私,又充分利用了云计算的强大计算能力。
其次,在医疗健康领域,患者的医疗记录往往包含大量的个人隐私信息。
通过全同态加密技术,医疗机构可以在加密状态下对医疗数据进行统计分析,为疾病研究和医疗决策提供支持,同时避免患者隐私的泄露。
再者,金融行业对数据的安全性要求极高。
全同态加密可以用于加密交易数据、客户信息等,使得金融机构在进行风险评估、市场分析等操作时,无需担心数据被窃取或篡改。
然而,全同态加密技术目前还面临一些挑战。
一方面,其计算效率仍然有待提高。
复杂的加密和解密过程需要消耗大量的计算资源和时间,这在一定程度上限制了其在大规模数据处理中的应用。
基于同态加密的密文检索方案研究吕文斌;拱长青【摘要】现有的密文检索技术主要是采用的是布尔模型,它无法精确的计算出检索项与待检索文件的相关度,不能按相似度进行精确的排序.针对以上情况,结合同态加密技术和基于TF-IDF的向量空间模型技术,采用了一个基于向量空间模型全同态环境下的密文检索方案BVH (Based Vector space model and Homomorphism ciphertext retrieval scheme),BVH主要分为三个步骤:第一是预处理阶段,主要对上传的文件建立倒排索引,生成文件向量集,计算各个文件向量的模,对文件向量集和要上传的文件加密以密文的形式上传到云端;第二个阶段是检索阶段,主要是将搜索词的向量密文和各个文件向量的密文相乘将结果以密文的形式返回给客户端;第三个阶段结果处理阶段,主要是对解密后的结果进行相应的计算处理,对最后的处理结果按相似度大小排序;经分析,该方案在准确率和检索效率方面都得到了较大提升.【期刊名称】《计算机测量与控制》【年(卷),期】2016(024)003【总页数】5页(P154-158)【关键词】同态加密;向量空间模型;倒排索引;密文检索;相似度【作者】吕文斌;拱长青【作者单位】沈阳航空航天大学计算机学院,沈阳 110136;沈阳航空航天大学计算机学院,沈阳 110136【正文语种】中文【中图分类】TP309.7云计算是一种通过网络以按需、易扩展的方式获取所需服务的在线网络服务交付和使用模式,它是分布式计算的一种形式,它是网络上的服务以及提供这种服务的数据中心的软硬件集合[1]。
云计算是并行计算、分布式计算和网格计算的演进。
云计算的实现形式包括软件即服务、效用计算、平台即服务、基础设施即服务[1]。
云计算的提出对那些数据量极大而且复杂的数据提供一个高效稳定的计算方法。
首先要提供一个安全可靠的数据存储中心,一个可靠的方法就对用户要上传的数据加密,把数据以密文的形式存储到云端。
适用于字符串加密的全同态加密方案梅宇;孙霓刚;李雪佳【摘要】现有的全同态加密思想主要实现对整数进行加密,在密文的状态下可以实现加、减、乘、除等四则运算,将其密文进行解密得到的结果与对明文做相同运算的结果一致,然而当加密对象为字符串的时候这些运算将变的毫无意义;为了使得全同态加密算法可以应用在字符串中,设计了一个可以适用于字符串加密的全同态加密算法;首先介绍了全同态加密算法在整数上的实现原理,通过对中国剩余定理的证明过程中发现了中国剩余定理具备定位字符的能力,然后将中国剩余定理引入整数上全同态加密的思想中;引入的中国剩余定理便是可以在加密过程中实现字符串的定位,避免出现加密完成后无法按照原有顺序回复出原文;最后通过举例论证的方式,验证了实现字符串全同态加密算法的的正确性;从而丰富了全同态加密算法的使用范围.【期刊名称】《计算机测量与控制》【年(卷),期】2016(024)004【总页数】4页(P195-198)【关键词】中国剩余定理;全同态加密;字符串【作者】梅宇;孙霓刚;李雪佳【作者单位】常州大学信息科学与工程学院,江苏常州 213000;常州大学信息科学与工程学院,江苏常州 213000;常州大学信息科学与工程学院,江苏常州 213000【正文语种】中文【中图分类】TP309全同态加密思想是由Rivest等人在1978年提出的,希望在不对密文进行解密的条件下,对密文进行任何运算,得到的结果解密后与明文进行相应运算的结果相同。
这个思想提出后,国内外研究人员进行了大量的研究,直到2009年Gentry提出来基于理想格的全同态加密方案,并对该方案进行了详细论述。
此后国内外学者都提出来许多改进的全同态加密方案。
但这些方案的加密对象都是对整数进行加密。
当加密对象为“字符串”的时候,现有的算法将毫无办法。
在“大数据时代”,数据信息越来越中重要。
数据的存储方式最常见的便是以字符串的形式进行存储。
因此设计出一种可以适用于字符串的全同态加密算法,不仅可以扩展当前全同态加密算法的应用范围,还可以使得全同态加密更加具备实用性。
基于整数多项式环的多对一全同态加密算法王彩芬;赵冰;刘超;成玉丹;许钦百【摘要】针对传统公钥加密模式多数只能由单发送方将消息发送给单接收方的限制,基于整数全同态加密方案,设计一种基于整数多项式环的一对一全同态加密算法.在此基础上,通过修改一对一全同态加密算法的密钥生成方式,扩展加密方个数,提出基于整数多项式环的多方加密一方解密的全同态加密算法.给出该算法的正确性和同态性证明,并在随机预言机模型下,基于离散子集求和问题和近似最大公因子问题证明该算法的安全性.性能比较结果表明,该算法可扩展加密方个数,提高解密方效率.【期刊名称】《计算机工程》【年(卷),期】2019(045)004【总页数】6页(P130-135)【关键词】整数多项式环;多对一全同态加密方案;离散子集求和问题;近似最大公因子问题;随机预言机模型【作者】王彩芬;赵冰;刘超;成玉丹;许钦百【作者单位】西北师范大学计算机科学与工程学院,兰州730070;西北师范大学计算机科学与工程学院,兰州730070;西北师范大学计算机科学与工程学院,兰州730070;西北师范大学计算机科学与工程学院,兰州730070;西北师范大学计算机科学与工程学院,兰州730070【正文语种】中文【中图分类】TP309.70 概述随着科学技术的发展,特别是互联网+和云计算的兴起,人们对加密数据的关注和需求越来越高。
与此同时,可以解决云计算中数据隐私保护的同态加密方法越来越受到人们的重视。
文献[1]提出隐私同态,它可以确保被操作数据的隐私性,能够在不知晓明文的前提下,对密文直接操作然后进行解密,其结果和对明文进行同样操作得到的数据一致。
利用该特性明显的同态性质,将加密数据交付给不可信的第三方进行处理就不会泄露隐私。
随后,很多学者对全同态加密进行了深入的研究,并提出多种同态加密方案。
IBM公司的成员Gentry[2]研究出第一个可以定义为全同态加密的机制,文献[3]给出了其正确性证明,Gentry的方案是基于理想格进行运算的,实施起来比较困难。
同态学习的加密算法介绍同态学习的加密算法是一种重要的数据加密技术,它具有许多非常有用的应用。
在本文中,我将介绍同态学习的基本概念和原理,以及一些常见的同态学习加密算法。
概念和原理同态学习是一种特殊的加密技术,它允许在加密状态下执行计算,并在解密后获得正确的结果。
换句话说,同态加密允许在加密状态下对数据进行操作,而无需解密它们。
这种特性对于安全地处理敏感数据非常有用,因为它可以避免在数据处理过程中暴露数据的明文。
同态学习的基本原理是利用数学上的同态性质,即在两个加密数据之间进行运算后,得到的结果与对应的明文数据进行运算后的结果是相同的。
这种性质使得同态加密能够在不暴露数据明文的情况下进行计算。
常见的同态学习加密算法目前,有许多不同的同态学习加密算法,每种算法都有其特定的优点和局限性。
以下是一些常见的同态学习加密算法:1. RSA同态加密算法RSA是一种非对称加密算法,它使用两个密钥对数据进行加密和解密。
RSA 同态加密算法利用RSA算法的数学性质来实现同态加密。
虽然RSA同态加密算法在理论上是可行的,但实际应用中面临着性能和安全性方面的挑战。
2. 阶梯同态加密算法阶梯同态加密算法是一种基于整数编码的同态加密方案,它利用离散对数问题和素数分解问题的困难性来实现同态性。
阶梯同态加密算法在实践中表现出良好的性能和安全性,因此被广泛应用于各种加密场景。
3. 基于椭圆曲线的同态加密算法基于椭圆曲线的同态加密算法利用椭圆曲线离散对数问题的困难性来实现同态性。
由于椭圆曲线算法在密钥长度较短的情况下提供了与RSA相当的安全性,因此基于椭圆曲线的同态加密算法被广泛应用于移动设备和物联网等资源受限的环境中。
应用场景同态学习的加密算法在许多领域都有着广泛的应用。
其中,医疗保健领域和金融领域是同态学习加密算法最为重要的应用场景之一。
在医疗保健领域,医疗数据的隐私和安全性是非常重要的。
同态学习的加密算法可以帮助医疗机构在不暴露患者敏感数据的情况下进行数据分析和共享,从而提高医疗数据的利用率和安全性。
新的格上基于身份的全同态加密方案汤永利;胡明星;刘琨;叶青;闫玺玺【摘要】分析以往格上基于身份的全同态加密方案,指出方案效率低的根本原因在于陷门生成和原像采样过程的复杂度过高,为此提出一种新的解决方案.先将新型陷门函数与对偶容错学习(LWE,learning with errors)算法有机结合,构造一种新的格上基于身份的加密方案;再利用特征向量方法转化为格上基于身份的全同态加密方案.对比分析表明,所提方案的陷门生成复杂度显著降低,原像采样复杂度约降低为以往方案的1/3,SIVP近似因子缩小为以往方案的1/√m.在标准模型下,方案安全性归约至判定性LWE的难解性,并包含严格的安全性证明.%The previous identity-based homomorphic encryption schemes from lattice was analyzed.That the high complexity in previous schemes was mainly caused by trapdoor generation and preimage sampling was pointed out.A new solution was proposed.A novel identity-based encryption scheme from lattice by combining new trapdoor function and dual-LWE algorithm organically was constructed,and it was transformed to an identity-based fully homomorphic encryption scheme from lattice by employing the idea of parative analysis shows that the scheme's complexity of trapdoor generation has a significant reduction,the complexity of preimage sampling has a nearly three-fold reduction,and the SIVP approximation factor has a √m times reduction.The security of the proposed scheme strictly reduces to the hardness of decisional learning with errors problem in the standard model.【期刊名称】《通信学报》【年(卷),期】2017(038)005【总页数】9页(P39-47)【关键词】格;全同态加密;基于身份加密;标准模型;密码学【作者】汤永利;胡明星;刘琨;叶青;闫玺玺【作者单位】河南理工大学计算机科学与技术学院,河南焦作454000;河南理工大学计算机科学与技术学院,河南焦作454000;河南理工大学计算机科学与技术学院,河南焦作454000;河南理工大学计算机科学与技术学院,河南焦作454000;河南理工大学计算机科学与技术学院,河南焦作454000【正文语种】中文【中图分类】TP309近几年,云计算在实现中遇到的问题之一就是如何保证数据的私密性,全同态加密可以很好地解决这个技术难题。
若一个加密方案对密文进行任意深度的操作后解密,结果与对明文做相应操作的结果相同,则该方案为完全同态加密方案。
通常一个公钥加密方案有三个算法: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算法(解密)不仅能对初始密文解密,还能对计算后的密文解密。
引言全同态加密是一种先进的加密技术,可以将加密数据进行计算而无需解密,在计算结果上也能保持加密状态。
这种加密方案广泛应用于云计算、数据隐私保护等领域,具有重要的研究和实际价值。
本文将介绍全同态加密的基本概念、原理和应用,并探讨其在信息安全领域的前景。
全同态加密的基本概念全同态加密是指一种加密方案,允许对密文进行计算操作,得到的结果仍然是加密后的数据。
具体来说,对于两个密文C1和C2,全同态加密方案应具备以下性质:1.加法同态性: 对于明文m1和m2,通过加密算法加密得到的密文C1和C2,满足C1+C2 = Enc(m1) + Enc(m2) = Enc(m1+m2)。
即,对密文进行加法运算的结果与对应的明文之和的加密结果相同。
2.乘法同态性: 对于明文m1和m2,通过加密算法加密得到的密文C1和C2,满足C1 * C2 = Enc(m1) * Enc(m2) = Enc(m1 * m2)。
即,对密文进行乘法运算的结果与对应的明文乘积的加密结果相同。
3.解密性: 对于密文C,通过解密算法解密得到的结果D(C),满足D(C) = m。
即,密文经过解密操作能够还原为明文。
全同态加密的实现原理主要基于数学上的复杂运算和密码学技术。
其中,主要的数学基础涉及到离散对数问题、整数分解问题等难题。
具体实现全同态加密的算法有DGHV方案、BGV方案等。
下面简要介绍DGHV方案的原理:DGHV方案是一种基于整数分解问题的全同态加密方案。
其主要思想是通过整数分解问题构建一个同态系统,并利用置换和扩展技术来实现同态性。
具体实现步骤如下:1.参数生成:选择合适的安全参数n,并生成两个大素数p和q,使得p q >n^2。
此外,还需生成一些辅助参数,如模数N=p q、生成元g。
2.密钥生成:随机选择一个秘密密钥sk,并根据参数生成公钥pk。
3.加密算法:对于明文m,根据公钥pk和参数生成一个加密密钥ek,并将明文m和加密密钥ek进行加密,得到密文C。
基于整数的多对一全同态加密方案王彩芬;成玉丹;刘超;赵冰;许钦百【期刊名称】《电子与信息学报》【年(卷),期】2018(040)009【摘要】全同态加密是在不解密密文的情况下直接对密文进行操作.现有的基于整数的全同态加密方案是针对两个参与者“一方加密,一方解密”(一对一)设计的,计算效率普遍低,明文空间小,不能应用于大数据、云计算等环境.为此,该文提出一种“多方加密,一方解密”(多对一)的全同态加密方案,该方案在保证安全性的基础上简化密钥生成过程,并在全同态运算过程中给出能够正确解密的加密方个数的具体范围.同时,在随机预言机模型下,基于近似最大公因子问题证明了方案的安全性.数值结果表明,该方案与已有方案相比不仅扩展了数据传输量,而且提高了效率.模拟实验表明,该方案在整数范围内具有可行性,满足用户对系统响应的需求,最后将明文空间扩展为3 bit,并与1 bit的方案做出了实验上的对比分析.【总页数】8页(P2119-2126)【作者】王彩芬;成玉丹;刘超;赵冰;许钦百【作者单位】西北师范大学计算机科学与工程学院兰州 730070;西北师范大学计算机科学与工程学院兰州 730070;西北师范大学计算机科学与工程学院兰州730070;西北师范大学计算机科学与工程学院兰州 730070;西北师范大学计算机科学与工程学院兰州 730070【正文语种】中文【中图分类】TP309【相关文献】1.一种改进的基于整数的全同态加密方案 [J], 周津;王勇2.一种较快速的基于整数的全同态加密方案 [J], 代洪艳;丁勇;吕海峰;高雯3.一个基于整数的全同态加密改进方案 [J], 熊婉君;韦永壮;王会勇4.基于整数多项式环的多对一全同态加密算法 [J], 王彩芬;赵冰;刘超;成玉丹;许钦百5.一种基于整数多项式环上的非对称全同态加密方案 [J], 孙霓刚; 陈宣任; 朱浩然因版权原因,仅展示原文概要,查看原文内容请购买。
整数上全同态加密方案分析一篇论文看完了,如果都看懂了的话,很多人觉得案例都是小菜一碟,但是在我写这个案例的时候我发觉论文看懂了,更需要案例或者说实现来进一步深入或者夯实,因为只有通过具体的实现步骤,才能发现有些在论文中的一些细节问题,反过来更可以促进对论文的理解。
整数上全同态加密方案有两篇非常经典的论文,一篇是《Fully Homomorphic Encryption over the Integers 》以下简称DGHV 方案,还有一篇是Gentry 写的《Computing Arbitrary Functions of Encrypted Data 》简称CAFED论文。
入门者适合先阅读CAFED论文,这并不是说这篇论文简单,只是因为这篇文章的写法很通俗(严格意义上这篇文章并不是一篇真正的论文,是给杂志写的文章,有点科普性质),有一个很好的比喻的例子“ Glovebox”贯穿于整个论文中,Gentry 的文笔很好写的也很生动,对有些地方进行了背景解释,而这些解释恰好是DGHV论文中没有说的,当然一开始要想把CAFED论文彻底读懂也不是那么容易的。
这个时候可以开始阅读DGHV这篇论文。
这篇论文对于我来说是百读不厌,因为有些地方就算读了一百篇也不见得可以理解,而且这篇文章很适合深挖,有些很有趣的地方,例如噪声参数的设置等等。
还有一篇论文就是全同态的经典论文《Fully homomorphicencryption using ideal lattices 》,如果对格不熟悉的话,可以读这篇文章的前面三分之一,因为有详细的全同态的定义、层级全同态、允许电路、增强解密电路、bootstrable 、重加密原理,以及如何通过递归实现全同态的,尤其是递归实现全同态的过程,在论文中还是值得反复理解的。
剩下的当然还有Gentry 的博士论文,也可以分阶段阅读。
这篇文章就算是一个阅读笔记吧,分为两个部分,一个是实现过程,另一个是方案的参数分析。
一、方案实现过程1、全同态加密方案至于什么是全同态等等形式化定义我就不说了,请参阅论文。
全同态加密用一句话来说就是:可以对加密数据做任意功能的运算,运算的结果解密后是相应于对明文做同样运算的结果。
有点穿越的意思,从密文空间穿越到明文空间,但是穿越的时候是要被蒙上眼睛的。
另外上面的那句话是不能说反的,例如:运算的结果加密后是相应于对明文做同样运算结果的加密,这样说是不对的,因为加密不是确定性的,每次加密由于引入了随机数,每次加密的结果都是不一样的,同一条明文对应的是好几条密文。
而解密是确定的。
全同态具有这么好的性质,什么样的加密方案可以符合要求呢?往下看:Enc(m): m+2r+pqDec(c): (c mod p) mod 2= (c –p* 「c/p 」) mod 2 =Lsb(c) XOR Lsb( 「c/p 」)上面这个加密方案显然是正确的,模p 运算把pq 消去,模2运算把2r 消去,最后剩下明文m 。
这个公式看上去很简单,但是却很耐看,需要多看看。
公式中的p 是一个正的奇数,q 是一个大的正整数(没有要求是奇数,它比p 要大的多),p 和q 在密钥生成阶段确定,p 看成是密钥。
而r 是加密时随机选择的一个小的整数(可以为负数) 。
明文m ∈ {0,1} ,是对“位”进行加密的,所得密文是整数。
上面方案的明文空间是{0,1} ,密文空间是整数集。
全同态加密方案中除了加密、解密还有一个非常重要的算法就是:Evaluate ,它的作用就是对于给定的功能函数f 以及密文c1,c2, ⋯,ct 等做运算f (c1,c2, ⋯,ct) 。
在这里就是对密文做相应的整数加、减、乘运算。
以上方案可以看成是对称加密方案。
下面来考虑公钥加密方案。
其实把pq看成公钥就OK。
由于q是公开的,所以如果把pq 看成公钥,私钥p 立刻就被知道了( p=pq/q )。
怎么办呢?看上面加密算法中,当对明文0进行加密时,密文为2r+pq, 所以我们可以做一个集合{xi ;xi=2ri+pqi} ,公钥pk 就是这个集合{xi} ,加密时随机的从{xi} 中选取一个子集S,按如下公式进行加密:Enc(m): m+2r+sum(S); 其中sum(S)表示对S 中的xi 进行求和。
由于sum(S)是一些0的加密密文之和,所以对解密并不影响,整个解密过程不变。
这个方案是安全的,就是我们所说的DGHV方案。
其安全性依赖于一个困难问题“近似GCD问题”。
就是给你一些xi ,你求不出p 来(由于整数上全同态研究热了,近似GCD也成了研究的一个点)。
为了说明方便,我们还是采取pq 为公钥的方案(尽管不安全,但是不影响说明过程)。
所以加密和解密还是按照一开始的公式,现在pq为公钥,p 还是私钥,q 是公开参数。
再重复一遍我们的加密解密算法:Enc(m): m+2r+pqDec(c): (c mod p) mod 2= (c –p* 「c/p 」)mod 2 = Lsb(c) XOR Lsb(「c/p 」)另外在这里约定:一个实数模p 为:a modp = 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。
Lsb 是最低有效位,因为是模2运算,所以结果就是这个二进制数的最低位。
2、可怕的噪音由于公钥pq是公开的,所以知道密文c 后可以减去公钥得到:c-pq= m+2r由于存在r 的干扰,所以无法识别明文m。
我们就把m+2r 称为噪音。
另外在解密时只有当c mod p=m+2r <p/2 时, 再对它进行模2运算才能正确解密:( m+2r)mod 2= m。
如果噪音大于p/2 时,c mod p 就不再等于m+2r,解密就可能无法正确恢复出明文。
所以噪音是影响解密的关键。
而噪音会在密文计算中增长,下面来看看增长的势头:假设c1= m1+2r1+pq1; c2= m2+2r2+pq2; 其中c1是对密文m1的加密,c2是对密文m2的加密。
密文加和乘运算:c1+c2=(m1+m2)+2(r1+r2)+p(q1+q2)c1*c2=( m1+2r1)(m2+2r2)+p(pq1q2+m1q2+m2q1+2r1q2+2r2q1) (c1+c2) mod p= (m1+m2)+2(r1+r2) c1*c2 modp=( m1+2r1)(m2+2r2)由上可见:密文之和的噪音是各自密文的噪音之和;而密文乘积的噪音是噪音之积。
因此噪音的主要来源还是乘法运算,在乘法运算中噪音被放大的很快。
例如:设p=11, q=5, m1=0, m2=1 ,然后分别随机选取r1=1 和r2= - 4, 有:c1=Enc(m1)=m1+2r1+pq=0+2*(-1)+11*5=53; c1 mod p= -2, Dec(c1)=0.c2=Enc(m2)=m2+2r2+pq=1+2*1+11*5=58; c2 mod p= 3,Dec(1)=1. 因为c1 mod p 和c2 mod p 都是在( -p/2 ,p/2 )范围内,所以解密正确。
c1和c2称之为新鲜密文, 就是直接由明文生成的密文,在新鲜密文中噪音是在一定合理的范围内的。
我们再来看看c1*c2:c*=c1*c2=53*58=3074; c* mod p=5, Dec(c*)=1 ≠m1*m2=0, 解密错误,错误的原因是噪音c* mod p= -6 不在(-p/2 ,p/2 )范围内。
看来对密文运算会造成噪音的增大,当噪音超出范围,解密就失败,这意味着对密文运算不可能是无限次的(也就是Evaluate 运算功能函数的电路深度是有限的,这在后面我们说到电路时会看到)。
到这里我们只得到了一个运算时噪音范围不能超过p/2 的同态方案(Somewhat 同态方案),看来似乎用这个方案实现全同态是行不通的。
我们需要的是全同态方案即Evaluate 可以运行任意功能函数,而不是某一类功能函数(这叫同态方案)。
估计多少英雄好汉到了这里就觉得没戏了,于是另寻他路,于是一个突破就擦肩而过。
那么下面让我们分析一下症结所在。
二、方案参数分析1、Bootstappable :一个生硬的思路噪音阻碍了我们的目标,那么如何消除噪音这个敌人呢?一个直观的方法就是对密文解密,密文解密后噪音就没有了,但是要解密必须要知道私钥,要想通过获得私钥来消除噪音是不现实的。
那么如果对密钥加密来做可以么?让我们先看看Evaluate 算法。
在Evaluate 算法中能够对密文执行函数功能f 的运算,其中f 是属于permitted founctions 集合的任一founction (这里稍微解释一下,permitted founctions 集合也称permitted circuit ,例如有两个函数功能f1 和f2 ,运行Evaluate(pk, f1, c1,c2, ⋯,cn)和Evaluate(pk, f1, c1,c2, ⋯,cn),就是分别对密文执行f1 运算和f2 运算,如果f1 运算的结果解密后恰好是f1对相应明文运算的结果(同态成立),那么f1 就属于permitted founctions 。
而f2 运算的结果解密后如果不等于f2 对相应明文运算的结果,那么f2 就不属于permitted founctions 。
)。
试想如果Dec 解密算法也在permitted founctions 集合中,那么Evaluate 算法就可以执行Dec 解密功能了。
如果我们输入的是s*(是用pk2对私钥s 加密得到的密文),以及对运算密文c*(是用pk2对c 再加密的密文,原密文c 是用pk1进行加密的),那么执行Evaluate(pk2, Dec, s*,c*);所得结果为一个新的密文,该密文是明文在pk2下加密的密文,是不是有点像魔术,就像原来一个人穿的是西装,现在你没有看到这个人换衣服的情况下,魔术师只是施了一下魔法,这个人立刻就换了一身运动服,人还是原来那个人,只是包装变了。
这也是Gentry 思想中一个最重要的特性:同态解密。
那么同态解密对于降低噪音又有什么关系呢?当密文运算后,噪音会被迅速放大,如果我们对运算后的密文做一次同态解密,是不是相当于得到了一个新鲜密文呢,而新鲜密文的噪音是最小的,所以达到了降噪的目的。
(事实上同态解密后得到的密文的噪音要比新鲜密文噪音稍微大一些。