整数上全同态加密方案分析
- 格式:pdf
- 大小:228.21 KB
- 文档页数:26
同态学习的加密算法介绍同态学习的加密算法是一种重要的数据加密技术,它具有许多非常有用的应用。
在本文中,我将介绍同态学习的基本概念和原理,以及一些常见的同态学习加密算法。
概念和原理同态学习是一种特殊的加密技术,它允许在加密状态下执行计算,并在解密后获得正确的结果。
换句话说,同态加密允许在加密状态下对数据进行操作,而无需解密它们。
这种特性对于安全地处理敏感数据非常有用,因为它可以避免在数据处理过程中暴露数据的明文。
同态学习的基本原理是利用数学上的同态性质,即在两个加密数据之间进行运算后,得到的结果与对应的明文数据进行运算后的结果是相同的。
这种性质使得同态加密能够在不暴露数据明文的情况下进行计算。
常见的同态学习加密算法目前,有许多不同的同态学习加密算法,每种算法都有其特定的优点和局限性。
以下是一些常见的同态学习加密算法:1. RSA同态加密算法RSA是一种非对称加密算法,它使用两个密钥对数据进行加密和解密。
RSA 同态加密算法利用RSA算法的数学性质来实现同态加密。
虽然RSA同态加密算法在理论上是可行的,但实际应用中面临着性能和安全性方面的挑战。
2. 阶梯同态加密算法阶梯同态加密算法是一种基于整数编码的同态加密方案,它利用离散对数问题和素数分解问题的困难性来实现同态性。
阶梯同态加密算法在实践中表现出良好的性能和安全性,因此被广泛应用于各种加密场景。
3. 基于椭圆曲线的同态加密算法基于椭圆曲线的同态加密算法利用椭圆曲线离散对数问题的困难性来实现同态性。
由于椭圆曲线算法在密钥长度较短的情况下提供了与RSA相当的安全性,因此基于椭圆曲线的同态加密算法被广泛应用于移动设备和物联网等资源受限的环境中。
应用场景同态学习的加密算法在许多领域都有着广泛的应用。
其中,医疗保健领域和金融领域是同态学习加密算法最为重要的应用场景之一。
在医疗保健领域,医疗数据的隐私和安全性是非常重要的。
同态学习的加密算法可以帮助医疗机构在不暴露患者敏感数据的情况下进行数据分析和共享,从而提高医疗数据的利用率和安全性。
引言全同态加密是一种先进的加密技术,可以将加密数据进行计算而无需解密,在计算结果上也能保持加密状态。
这种加密方案广泛应用于云计算、数据隐私保护等领域,具有重要的研究和实际价值。
本文将介绍全同态加密的基本概念、原理和应用,并探讨其在信息安全领域的前景。
全同态加密的基本概念全同态加密是指一种加密方案,允许对密文进行计算操作,得到的结果仍然是加密后的数据。
具体来说,对于两个密文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。
全同态加密自举方案引言在现代密码学中,全同态加密(Fully Homomorphic Encryption,FHE)是一种特殊的加密方案,它允许在加密状态下进行计算,而不需要解密。
自举方案是指使用加密的密文对加密方案进行更新或修改。
全同态加密自举方案将全同态加密与自举技术相结合,允许对密文进行操作和计算,从而实现更强大的功能。
本文将介绍全同态加密自举方案的基本原理和应用场景,并分析其中的优缺点。
全同态加密概述全同态加密是一种特殊的加密技术,它允许对密文进行特定的计算操作,而不需要解密密文。
这意味着在不暴露明文内容的情况下,可以对密文进行数学运算,得到计算结果。
全同态加密可以实现加法和乘法操作,有些方案还支持更复杂的计算,如逻辑门操作。
全同态加密方案通常包括三个算法: - 密钥生成算法(Key Generation):生成公钥和私钥,用于加密和解密操作。
- 加密算法(Encryption):将明文转换为密文。
- 解密算法(Decryption):将密文转换回明文。
全同态加密的核心挑战是在保持加密状态下进行计算,并在解密时获得正确的结果。
全同态加密自举方案全同态加密自举方案是一种特殊的应用,它允许使用加密的密文对全同态加密方案进行更新或修改。
自举方案的关键思想是使用全同态加密的密文进行计算和加密操作,以实现更复杂的功能。
一种常见的全同态加密自举方案是基于评估电路(Circuit Evaluation)的方法。
该方法将计算任务表示为一个电路,然后使用全同态加密方案对电路进行计算。
通过将输入数据和电路表示为加密的密文,可以在不暴露明文的情况下进行计算,并获得加密的结果。
全同态加密自举方案的一个重要应用是安全外包计算(Secure Outsourced Computation)。
通过将计算任务外包给不可信的云服务器,使用全同态加密自举方案可以保护用户的隐私和数据安全。
全同态加密自举方案的优缺点优点1.隐私保护:使用全同态加密自举方案可以在不暴露明文的情况下进行计算,保护数据隐私和安全。
全同态密码算法全同态密码算法是一种重要的密码学技术,可以对加密的数据进行完全保密的同时进行计算,并生成加密结果。
在云计算和数据隐私保护等领域,全同态密码算法被广泛应用。
全同态密码算法的特点是可以在不解密数据的情况下进行计算操作,这意味着用户可以将加密数据发送给云服务器进行计算,而不必担心数据的泄露。
这种算法的应用可以实现数据所有权的保护、数据共享和隐私保护等需求。
全同态密码算法的核心是同态加密技术。
同态加密是一种特殊的加密方式,可以在密文上进行运算,然后解密得到与明文运算结果相对应的结果。
具体而言,全同态密码算法可以分为完全同态加密和部分同态加密两种类型。
完全同态加密算法允许对加密的数据进行任意的加法和乘法运算,并可以通过解密操作得到运算结果,而不需要解密原始数据。
这种算法的实现相对复杂,但能够满足更多的数据处理需求。
部分同态加密算法则是对部分运算进行了加密保护。
一般情况下,部分同态加密算法可以支持一种基本的运算,如加法或乘法,但不能同时支持两种运算。
这种算法的实现相对简单,但在某些复杂计算场景下可能无法满足需求。
全同态密码算法的应用非常广泛。
在云计算中,用户可以将加密的数据上传至云服务器,云服务器使用全同态密码算法进行计算,然后将结果返回给用户解密。
这样一来,用户的数据得到了保护,同时享受到了云计算的高效便捷。
除了云计算,全同态密码算法还可以应用于数据隐私保护、安全多方计算等场景。
在数据隐私保护中,全同态密码算法可以对敏感数据进行保护,防止未授权访问和信息泄露。
在安全多方计算中,多个参与方可以在不暴露自己私密数据的情况下进行联合计算。
然而,全同态密码算法也存在一些挑战和限制。
首先,全同态密码算法的计算效率较低,对计算资源要求较高。
其次,完全同态加密算法的实现复杂度较高,需要很高的算法设计和数学基础。
此外,由于全同态密码算法的安全性较强,对攻击的容忍度也较高,因此可能会引发新的安全漏洞。
为了解决这些问题,研究人员一直在努力改进全同态密码算法。
全同态加密方案的研究全同态加密方案的研究摘要:全同态加密是一种重要的密码学技术,能够对密文进行计算和操作,同时不需要解密。
本文对全同态加密的原理、实现方式以及应用进行了研究和探讨,介绍了几种常见的全同态加密方案,并分析了其优缺点和应用场景。
1. 引言全同态加密(Fully Homomorphic Encryption, FHE)是近年来密码学领域的突破性研究,是对传统加密算法的进一步扩展和发展。
在传统加密中,只能对密文进行传递和存储,对密文进行计算和操作的需求无法实现。
而全同态加密则能够满足对密文进行计算和操作的需求,实现对加密数据的高度保护和隐私安全。
2. 全同态加密的原理全同态加密的原理是通过混淆技术和特殊的加密算法,将明文加密为密文,并设计相应的解密算法。
与传统加密算法不同的是,全同态加密算法能够对密文进行计算和操作,而无需解密。
这是通过将计算操作转化为在密文上的操作实现的,使得加密数据在计算的过程中仍然保持加密状态。
3. 全同态加密的实现方式目前,全同态加密有多种实现方式,其中最为代表性的是基于整数和基于椭圆曲线的方案。
基于整数的方案利用整数的运算特性进行加密和计算,适用于简单的计算任务。
基于椭圆曲线的方案利用椭圆曲线的运算特性进行加密和计算,适用于复杂的计算任务。
此外,还有基于多线性映射和格的全同态加密方案,适用于不同场景和需求。
4. 几种常见的全同态加密方案4.1 基于整数的全同态加密方案基于整数的全同态加密方案主要有RSA全同态加密和Paillier全同态加密。
RSA全同态加密利用RSA算法的特性实现对密文的计算和操作。
而Paillier全同态加密则利用Paillier算法实现同样的功能。
这两种方案在实现方式和性能上有差异,可根据实际需求进行选择。
4.2 基于椭圆曲线的全同态加密方案基于椭圆曲线的全同态加密方案主要有ElGamal全同态加密和BGW全同态加密。
ElGamal全同态加密利用椭圆曲线的离散对数的困难性实现全同态加密。
专利名称:一种基于整数多项的全同态加密的数据加密方法专利类型:发明专利
发明人:刘静,杨正校
申请号:CN201610389082.2
申请日:20160602
公开号:CN106100818A
公开日:
20161109
专利内容由知识产权出版社提供
摘要:本发明涉及一种基于整数多项的全同态加密的数据加密方法,包括如下步骤:生成密钥过程中,选随机整数a,r∈Z,生成公钥pk、sk;加密过程中,选择随机整数子集S∈{1,2,L,n},输入值为公钥pk,输出值为密文c;同态求值过程中,输入值为密文数据c,输出值为同态运算结果;解密过程中,输入值为密文c,密钥sk,输出值为明文m。
本发明数据加密方法响应时间短,加解密效率高。
申请人:苏州健雄职业技术学院
地址:215411 江苏省苏州市太仓市科教新城健雄路1号
国籍:CN
代理机构:南京钟山专利代理有限公司
代理人:戴朝荣
更多信息请下载全文后查看。
整数上全同态加密方案分析一篇论文看完了,如果都看懂了的话,很多人觉得案例都是小菜一碟,但是在我写这个案例的时候我发觉论文看懂了,更需要案例或者说实现来进一步深入或者夯实,因为只有通过具体的实现步骤,才能发现有些在论文中的一些细节问题,反过来更可以促进对论文的理解。
整数上全同态加密方案有两篇非常经典的论文,一篇是《Fully Homomorphic Encryption over the Integers》以下简称DGHV方案,还有一篇是Gentry写的《Computing Arbitrary Functions of Encrypted Data》简称CAFED论文。
入门者适合先阅读CAFED论文,这并不是说这篇论文简单,只是因为这篇文章的写法很通俗(严格意义上这篇文章并不是一篇真正的论文,是给杂志写的文章,有点科普性质),有一个很好的比喻的例子“Glovebox”贯穿于整个论文中,Gentry的文笔很好写的也很生动,对有些地方进行了背景解释,而这些解释恰好是DGHV论文中没有说的,当然一开始要想把CAFED论文彻底读懂也不是那么容易的。
这个时候可以开始阅读DGHV这篇论文。
这篇论文对于我来说是百读不厌,因为有些地方就算读了一百篇也不见得可以理解,而且这篇文章很适合深挖,有些很有趣的地方,例如噪声参数的设置等等。
还有一篇论文就是全同态的经典论文《Fully homomorphic encryption using ideal lattices》,如果对格不熟悉的话,可以读这篇文章的前面三分之一,因为有详细的全同态的定义、层级全同态、允许电路、增强解密电路、bootstrable、重加密原理,以及如何通过递归实现全同态的,尤其是递归实现全同态的过程,在论文中还是值得反复理解的。
剩下的当然还有Gentry 的博士论文,也可以分阶段阅读。
这篇文章就算是一个阅读笔记吧,分为两个部分,一个是实现过程,另一个是方案的参数分析。
一、方案实现过程1、全同态加密方案至于什么是全同态等等形式化定义我就不说了,请参阅论文。
全同态加密用一句话来说就是:可以对加密数据做任意功能的运算,运算的结果解密后是相应于对明文做同样运算的结果。
有点穿越的意思,从密文空间穿越到明文空间,但是穿越的时候是要被蒙上眼睛的。
另外上面的那句话是不能说反的,例如:运算的结果加密后是相应于对明文做同样运算结果的加密,这样说是不对的,因为加密不是确定性的,每次加密由于引入了随机数,每次加密的结果都是不一样的,同一条明文对应的是好几条密文。
而解密是确定的。
全同态具有这么好的性质,什么样的加密方案可以符合要求呢?往下看:Enc(m):m+2r+pqDec(c):(c mod p)mod2=(c–p*「c/p」)mod2=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)mod2=(c–p*「c/p」)mod2=Lsb(c)XOR Lsb(「c/p」)另外在这里约定:一个实数模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。
Lsb是最低有效位,因为是模2运算,所以结果就是这个二进制数的最低位。
2、可怕的噪音由于公钥pq是公开的,所以知道密文c后可以减去公钥得到:c-pq=m+2r由于存在r的干扰,所以无法识别明文m。
我们就把m+2r称为噪音。
另外在解密时只有当c mod p=m+2r<p/2时,再对它进行模2运算才能正确解密:(m+2r)mod2=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*c2mod p=(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;c1mod p=-2, Dec(c1)=0.c2=Enc(m2)=m2+2r2+pq=1+2*1+11*5=58;c2mod p=3,Dec(1)=1.因为c1mod p和c2mod 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思想中一个最重要的特性:同态解密。
那么同态解密对于降低噪音又有什么关系呢?当密文运算后,噪音会被迅速放大,如果我们对运算后的密文做一次同态解密,是不是相当于得到了一个新鲜密文呢,而新鲜密文的噪音是最小的,所以达到了降噪的目的。
(事实上同态解密后得到的密文的噪音要比新鲜密文噪音稍微大一些。
)这一手法称之为:重加密技术,它为我们提供了降低噪音的一个方法。
接下来你肯定会想到:每次密文运算前只要对密文进行重加密来降低噪音,然后再进行密文运算,那么噪音永远都在可控的范围内,运算结果的解密也就不会失败了。
运算电路可以反复递归此过程,就可以达到无限次密文运算的目的了。
然而降低噪音并不是最终目的,降低噪音是为了能够进行下一次运算,所以解密电路加上一个门电路(这个门电路可以是加法门电路或者乘法门电路等等基本电路)称之为“增强电路”。