整数上全同态加密方案分析
全同态加密技术的研究与应用
全同态加密技术的研究与应用在当今数字化的时代,信息安全成为了至关重要的问题。
随着云计算、大数据等技术的迅速发展,数据的处理和存储越来越多地依赖于第三方平台。
然而,在将数据交给第三方时,如何保证数据的机密性和隐私性成为了一个巨大的挑战。
全同态加密技术的出现,为解决这一问题提供了一种有效的途径。
全同态加密是一种特殊的加密形式,它允许在密文上进行任意的计算操作,而无需对数据进行解密,最终得到的结果与在明文上进行相同计算操作得到的结果一致。
这一特性使得数据在加密状态下仍然能够被处理和分析,极大地保护了数据的隐私。
全同态加密技术的发展历程并非一帆风顺。
早期的研究主要集中在理论层面,由于计算复杂度高、效率低下等问题,实际应用受到了很大的限制。
但随着密码学和计算机技术的不断进步,全同态加密技术逐渐取得了重要的突破。
从原理上讲,全同态加密通常基于数学难题,如整数分解、离散对数等。
通过复杂的数学运算和密钥管理,实现对数据的加密和解密。
在加密过程中,明文被转换为看似随机的密文,而解密则是通过特定的密钥将密文还原为明文。
在实际应用方面,全同态加密技术具有广泛的前景。
首先,在云计算领域,用户可以将敏感数据加密后上传至云端,云服务提供商能够在不获取明文的情况下对数据进行处理和分析,例如进行数据挖掘、机器学习等任务。
这既保护了用户的数据隐私,又充分利用了云计算的强大计算能力。
其次,在医疗健康领域,患者的医疗记录往往包含大量的个人隐私信息。
通过全同态加密技术,医疗机构可以在加密状态下对医疗数据进行统计分析,为疾病研究和医疗决策提供支持,同时避免患者隐私的泄露。
再者,金融行业对数据的安全性要求极高。
全同态加密可以用于加密交易数据、客户信息等,使得金融机构在进行风险评估、市场分析等操作时,无需担心数据被窃取或篡改。
然而,全同态加密技术目前还面临一些挑战。
一方面,其计算效率仍然有待提高。
复杂的加密和解密过程需要消耗大量的计算资源和时间,这在一定程度上限制了其在大规模数据处理中的应用。
一种较快速的基于整数的全同态加密方案
一种较快速的基于整数的全同态加密方案代洪艳;丁勇;吕海峰;高雯【期刊名称】《计算机应用研究》【年(卷),期】2015(32)11【摘要】为了提高目前全同态加密的效率,针对于志敏等人提出的基于整数 GCD 的全同态加密方案中,公钥尺寸过大的缺陷,利用 Coron 等人关于整数上的压缩公钥和换模运算的思想,提出一种较快速的全同态加密方案。
改进后的方案,公钥尺寸减小,攻击算法复杂度降低,无须 mod2运算以及 bootstrapping。
安全性可以规约到近似最大公因子问题。
%In view of research on FHE by Yu Zhimin et al.,to improve the efficiency,and reduce the size of public key,this paper proposed a faster scheme based on study on the public key compression and modulus switching over the integers by Coron et al.For the public key of new scheme is smaller,the complexity of attack algorithm is reduced,without mod2 arithmetic and bootstrapping.And the security depends on the approximate GCD problem.【总页数】5页(P3448-3451,3455)【作者】代洪艳;丁勇;吕海峰;高雯【作者单位】桂林电子科技大学数学与计算科学学院,桂林 541004;西安电子科技大学综合业务网理论与关键技术国家重点实验室,西安 710126;桂林电子科技大学数学与计算科学学院,桂林 541004;西安电子科技大学综合业务网理论与关键技术国家重点实验室,西安 710126【正文语种】中文【中图分类】TP309.7【相关文献】1.一种改进的基于整数的全同态加密方案 [J], 周津;王勇2.破解较快速的整数上的全同态加密方案 [J], 古春生;景征骏;于志敏3.一个较快速的整数上的全同态加密方案 [J], 汤殿华;祝世雄;曹云飞4.一种适用于n bit的整数上全同态加密方案 [J], 孙霓刚;朱浩然;汪伟昕5.一种基于整数多项式环上的非对称全同态加密方案 [J], 孙霓刚; 陈宣任; 朱浩然因版权原因,仅展示原文概要,查看原文内容请购买。
基于整数多项式环的多对一全同态加密算法
基于整数多项式环的多对一全同态加密算法王彩芬;赵冰;刘超;成玉丹;许钦百【摘要】针对传统公钥加密模式多数只能由单发送方将消息发送给单接收方的限制,基于整数全同态加密方案,设计一种基于整数多项式环的一对一全同态加密算法.在此基础上,通过修改一对一全同态加密算法的密钥生成方式,扩展加密方个数,提出基于整数多项式环的多方加密一方解密的全同态加密算法.给出该算法的正确性和同态性证明,并在随机预言机模型下,基于离散子集求和问题和近似最大公因子问题证明该算法的安全性.性能比较结果表明,该算法可扩展加密方个数,提高解密方效率.【期刊名称】《计算机工程》【年(卷),期】2019(045)004【总页数】6页(P130-135)【关键词】整数多项式环;多对一全同态加密方案;离散子集求和问题;近似最大公因子问题;随机预言机模型【作者】王彩芬;赵冰;刘超;成玉丹;许钦百【作者单位】西北师范大学计算机科学与工程学院,兰州730070;西北师范大学计算机科学与工程学院,兰州730070;西北师范大学计算机科学与工程学院,兰州730070;西北师范大学计算机科学与工程学院,兰州730070;西北师范大学计算机科学与工程学院,兰州730070【正文语种】中文【中图分类】TP309.70 概述随着科学技术的发展,特别是互联网+和云计算的兴起,人们对加密数据的关注和需求越来越高。
与此同时,可以解决云计算中数据隐私保护的同态加密方法越来越受到人们的重视。
文献[1]提出隐私同态,它可以确保被操作数据的隐私性,能够在不知晓明文的前提下,对密文直接操作然后进行解密,其结果和对明文进行同样操作得到的数据一致。
利用该特性明显的同态性质,将加密数据交付给不可信的第三方进行处理就不会泄露隐私。
随后,很多学者对全同态加密进行了深入的研究,并提出多种同态加密方案。
IBM公司的成员Gentry[2]研究出第一个可以定义为全同态加密的机制,文献[3]给出了其正确性证明,Gentry的方案是基于理想格进行运算的,实施起来比较困难。
同态加密 整数计算方法
同态加密整数计算方法同态加密:整数计算方法探秘同态加密作为一种前沿的加密技术,近年来在密码学领域备受关注。
它允许用户在加密数据上进行计算,而计算结果在解密后仍然保持正确性。
在同态加密的众多研究方向中,整数计算方法尤为重要。
本文将为您详细介绍同态加密中整数计算的相关方法。
一、同态加密概述同态加密是一种特殊的加密形式,它允许用户在加密数据上进行计算,而计算结果在解密后仍然保持正确性。
这意味着,对于任意函数f,同态加密满足以下性质:f(Enc(m1), Enc(m2), ..., Enc(mn)) = Enc(f(m1, m2, ..., mn))。
其中,Enc表示加密函数,m表示明文数据。
同态加密可以分为三类:部分同态加密、适应性同态加密和完全同态加密。
部分同态加密只支持对加密数据进行部分计算,适应性同态加密支持对加密数据进行任意次数的计算,但每次计算前需要重新选择密钥。
而完全同态加密则支持对加密数据进行任意次数的计算,且无需重新选择密钥。
二、整数计算方法在同态加密中,整数计算方法主要包括加法、乘法和比较等运算。
以下分别介绍这些运算的实现方法。
1.加法运算加法运算是同态加密中最基本的运算。
对于两个加密整数Enc(m1)和Enc(m2),可以通过以下方法进行加法运算:Enc(m1) + Enc(m2) = Enc(m1 + m2)这意味着,加密后的整数可以直接进行加法运算,计算结果在解密后仍然保持正确性。
2.乘法运算乘法运算是同态加密中的关键运算。
对于两个加密整数Enc(m1)和Enc(m2),可以通过以下方法进行乘法运算:Enc(m1) * Enc(m2) = Enc(m1 * m2)然而,传统的同态加密方案往往只支持加法运算,乘法运算需要通过特殊技巧实现。
一种常见的乘法实现方法是通过模重复平方法(Modular Multiplication)。
3.比较运算比较运算是同态加密中较为复杂的运算。
对于两个加密整数Enc(m1)和Enc(m2),可以通过以下方法进行比较:- 判断m1是否小于m2:利用同态加密的加法和乘法运算,构造一个比较函数,使得当m1 < m2时,函数输出为1,否则为0。
全同态加密的原理
全同态加密的原理
全同态加密是一种允许对加密的数据进行计算并得到加密结果,而不需要解密的加密方式。
其原理是使用公钥和私钥来加密和解密数据。
公钥用于加密数据,私钥用于解密数据。
在全同态加密中,即使知道了公钥和加密后的数据,也无法得到原始数据的明文,因此保证了数据的隐私性和安全性。
全同态加密的实现过程涉及到数学和计算机科学等多个领域的知识,包括代数、数论、概率论等。
其算法主要包括以下几个步骤:
1. 密钥生成:首先需要生成公钥和私钥,公钥用于加密数据,私钥用于解密数据。
2. 数据加密:使用公钥对数据进行加密,得到密文。
3. 数据处理:在密文状态下进行计算,得到加密结果。
4. 结果解密:使用私钥对加密结果进行解密,得到明文结果。
全同态加密具有以下优点:
1. 保证了数据的隐私性和安全性,即使知道了公钥和加密后的数据,也无法得到原始数据的明文。
2. 可以对加密的数据进行计算并得到加密结果,而不需要解密,因此可以方便地进行数据处理和分析。
3. 可以实现任意复杂的计算操作,包括加、减、乘、除等,因此可以广泛应用于各种数据处理和分析的场景。
需要注意的是,全同态加密也存在一些挑战和限制,例如算法复杂度高、计算成本高、可扩展性差等。
因此,目前的全同态加密算法还只是在实验阶段,距离实际应用还有一定距离。
同态学习的加密算法介绍(七)
同态学习的加密算法介绍同态学习的加密算法是一种重要的数据加密技术,它具有许多非常有用的应用。
在本文中,我将介绍同态学习的基本概念和原理,以及一些常见的同态学习加密算法。
概念和原理同态学习是一种特殊的加密技术,它允许在加密状态下执行计算,并在解密后获得正确的结果。
换句话说,同态加密允许在加密状态下对数据进行操作,而无需解密它们。
这种特性对于安全地处理敏感数据非常有用,因为它可以避免在数据处理过程中暴露数据的明文。
同态学习的基本原理是利用数学上的同态性质,即在两个加密数据之间进行运算后,得到的结果与对应的明文数据进行运算后的结果是相同的。
这种性质使得同态加密能够在不暴露数据明文的情况下进行计算。
常见的同态学习加密算法目前,有许多不同的同态学习加密算法,每种算法都有其特定的优点和局限性。
以下是一些常见的同态学习加密算法:1. RSA同态加密算法RSA是一种非对称加密算法,它使用两个密钥对数据进行加密和解密。
RSA 同态加密算法利用RSA算法的数学性质来实现同态加密。
虽然RSA同态加密算法在理论上是可行的,但实际应用中面临着性能和安全性方面的挑战。
2. 阶梯同态加密算法阶梯同态加密算法是一种基于整数编码的同态加密方案,它利用离散对数问题和素数分解问题的困难性来实现同态性。
阶梯同态加密算法在实践中表现出良好的性能和安全性,因此被广泛应用于各种加密场景。
3. 基于椭圆曲线的同态加密算法基于椭圆曲线的同态加密算法利用椭圆曲线离散对数问题的困难性来实现同态性。
由于椭圆曲线算法在密钥长度较短的情况下提供了与RSA相当的安全性,因此基于椭圆曲线的同态加密算法被广泛应用于移动设备和物联网等资源受限的环境中。
应用场景同态学习的加密算法在许多领域都有着广泛的应用。
其中,医疗保健领域和金融领域是同态学习加密算法最为重要的应用场景之一。
在医疗保健领域,医疗数据的隐私和安全性是非常重要的。
同态学习的加密算法可以帮助医疗机构在不暴露患者敏感数据的情况下进行数据分析和共享,从而提高医疗数据的利用率和安全性。
破解较快速的整数上的全同态加密方案
2 0 1 3 , 4 9 ( 2 1 )
1 0 1
破 解 较 快 速 的 整 数 上 的 全 同态 加 密 方 案
古春 生 , 景征骏 , 于 志敏
GU C h u n s h e n g , J I NG Zh e n g j n i l , YU Zh i mi n . B r e a k i n g f a s t e r f u l l y h o mo mo r p h i e e n c r y p t i o n s c h e me o v e r i n t e g e r . C o mp u t e r
E n g i n e e r i n g a n dAp p l i c a t i o n s , 2 0 1 3 , 4 9 ( 2 1 ) : 1 0 1 - 1 0 5 .
Ab s t r a c t :I t i s v e r y i mpo r t a n t t o a n a l y z e t h e s e c u r i t y o f o p t i mi z i n g f u l l y h o mo mo  ̄h i c e n c yp r t i o n s c h e me . F o r he t f u l l y h o mo — mo r p h i c e n c r y p t i o n s c h e me d e s i g n e d b y Ta n g e t a 1 . , t h i s p a pe r d i r e c t l y o b t a i n s t h e p l a i n t e x t b i t f r o m a c i p h e r t e x t b y a p p l y i n g l a t - t i c e r e d u c t i o n a t t a c k . Th u s , t h i s f a s t e r f u l l y h o mo mo  ̄h i c e n c yp r t i o n s c h e me i s b r o k e n .
同态加密方案
若一个加密方案对密文进行任意深度的操作后解密,结果与对明文做相应操作的结果相同,则该方案为完全同态加密方案。
通常一个公钥加密方案有三个算法: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,FHE)是一种特殊的加密方案,它允许在加密状态下进行计算,而不需要解密。
自举方案是指使用加密的密文对加密方案进行更新或修改。
全同态加密自举方案将全同态加密与自举技术相结合,允许对密文进行操作和计算,从而实现更强大的功能。
本文将介绍全同态加密自举方案的基本原理和应用场景,并分析其中的优缺点。
全同态加密概述全同态加密是一种特殊的加密技术,它允许对密文进行特定的计算操作,而不需要解密密文。
这意味着在不暴露明文内容的情况下,可以对密文进行数学运算,得到计算结果。
全同态加密可以实现加法和乘法操作,有些方案还支持更复杂的计算,如逻辑门操作。
全同态加密方案通常包括三个算法: - 密钥生成算法(Key Generation):生成公钥和私钥,用于加密和解密操作。
- 加密算法(Encryption):将明文转换为密文。
- 解密算法(Decryption):将密文转换回明文。
全同态加密的核心挑战是在保持加密状态下进行计算,并在解密时获得正确的结果。
全同态加密自举方案全同态加密自举方案是一种特殊的应用,它允许使用加密的密文对全同态加密方案进行更新或修改。
自举方案的关键思想是使用全同态加密的密文进行计算和加密操作,以实现更复杂的功能。
一种常见的全同态加密自举方案是基于评估电路(Circuit Evaluation)的方法。
该方法将计算任务表示为一个电路,然后使用全同态加密方案对电路进行计算。
通过将输入数据和电路表示为加密的密文,可以在不暴露明文的情况下进行计算,并获得加密的结果。
全同态加密自举方案的一个重要应用是安全外包计算(Secure Outsourced Computation)。
通过将计算任务外包给不可信的云服务器,使用全同态加密自举方案可以保护用户的隐私和数据安全。
全同态加密自举方案的优缺点优点1.隐私保护:使用全同态加密自举方案可以在不暴露明文的情况下进行计算,保护数据隐私和安全。
具有较短公钥的批处理整数上的全同态加密
形式与密文压缩技术, 提出一种批处理整数上全同态加密算法的改进方案 , 改进后方案的公钥尺寸为O ( A ’ 。 ) ,
具有较 小的公 钥尺 寸 , 并证 明 了该 方案语 义安 全 。
关键 词 :全 同态加 密 ; 批 处理 ; 公 钥尺 寸 ;密文压缩 ; 二 次形 式
中图 分类号 : T N 9 1 8 . 4
p u b l i c — k e y s i z e w a s 0( A ) .I n o r d e r t o r e d u c e t h e p u b l i c — k e y s i z e , c o m b i n e d w i t h t h e q u a d r a t i c f o r ms o f p u b l i c k e y e l e m e n t s
文 献标志 码 :A
文章 编号 :1 0 0 1 — 3 6 9 5 ( 2 0 1 4 ) 0 4 - 1 1 8 0 - 0 ቤተ መጻሕፍቲ ባይዱ
d o i : 1 0 . 3 9 6 9 / j . i s s n . 1 0 0 1 . 3 6 9 5 . 2 0 1 4 . 4. 0 0 5 4
B a t c h f u l l y h o mo mo r p h i c e n c r y p t i o n o v e r i n t e g e r s wi t h s h o r t e r p u b l i c k e y s
2012_全同态加密研究_陈智罡(1)
Survey on fully homomorphic encryption
CHEN Zhi-gang1,2a,3, WANGห้องสมุดไป่ตู้Jian1, SONG Xin-xia2b
(1. College of Computer Science and Technology, Nanjing University of Aeronautics and Astronautics, Nanjing 210016,China ;2a. College of Computer and Information, Zhejiang Wanli University, Zhejiang NingBo 315100, China;2b. College of Junior,Zhejiang Wanli University, Zhejiang NingBo 31510, China ;3. Information Security Group, Royal Holloway, University of London,UK ) Abstract: This paper introduced background, implication and the state of arts in fully homomorphic encryption (FHE). We analyzed the idea of constructing FHE, and classified the key techniques that are used to construct FHE scheme. Then this paper survey four kinds of FHE scheme, completely analyzed and compared them from noise problem, parameters and performance as well as security. At last we summarized three kinds of methods to construct FHE, and explained the essence of the way to construct FHE scheme, and point out the key problems that need to be solved at present. We hope this paper can provide guidance for further in-depth study of fully homomorphic encryption. Key words: Fully homomorphic encryption; noise; parameters and performance; security;
整数上的同态加密报告DGHV
2、(公钥)同态加密方案:除了上述3个基本算法之外,还有一个Evaluate算法。基本形式为: 。基本作用是输出 。且为了保证同态性,必须使得 解密后的结果为 ,即:
注: 满足该式子的函数f称为允许函数,所有允许函数的集合称为允许函数集合。
这里使用布尔电路来描述函数f。这是为了有效地表示f的复杂度。用布尔电路可以将f分解为简单的布尔电路的组合,如and电路、xor电路等。And电路对应两个பைடு நூலகம்进制数相乘,xor电路对应两个二进制数相加,且这两个电路是完备的。
2、对称型方案的构造
类全同态方案的构造
KeyGen( ):随机生成一个 比特(大)奇数p,作为密钥。
Encrypt(p,m):对某个明文比特 ,随机生成一个 比特(较小)整数r和一个Q比特整数q,(显然2r+m远小于p),输出密文: 。
Decrypt(p,c):输出(cmodp)mod2。其中 。
Evaluate )。
现记: ,则 。
一个比喻。有一位首饰商人Alice为了防止工人在制作首饰的过程中盗窃材料,想出了一个办法。她向一家公司定做了一种箱子。该箱子是带有挂锁的,钥匙只有Alice本人持有。箱子两侧有两个手套,工人可以在箱子外面使用手套来操作放在箱子里面的金银等材料来制作首饰。制作完成后,Alice使用钥匙打开箱子,拿出制作好的首饰。这样就实现了让工人在不直接接触材料的条件下对材料进行加工的目的。
一个较快速的整数上的全同态加密方案
TAN G a Di nhua ,Z H U Shi o ,C AO n ̄ i Fa t r f l m o o phi nc y i n s he e v r i e e . xi ng Yu . s e uly ho m r e e r pto c m o e nt g r
tec mpe i fted cy t n ag r h , h st egv n sh me i m oe e ce t Fn l , ti po e a h h o lxt o e rp i lo i m tu h i e c e s y h o t r f in . ial i s rv dt tte i y h
不 断增 大 的 , 声超 过 门 限值 时 , 噪 密文 就 不 能被 正 确
ห้องสมุดไป่ตู้
解 密 , 限制 了 同态加 密算 法 的处理 能力 。Get 考 这 nr y
虑在 电路 内部的每个 节点都进行更新密文 ( 采用重 加密技术 , 参见文献[ )使得密文 的噪声在允许范 3 , ] 围 内。如 此 , 电路每 一 层都 可 以保 证 噪声 可 控 , 意 任
prdwi e j lS ce ,hs c e a ee d a tg s f l r u l e i n s r o u ae t t ke a’ h me ti sh me sh s v na e s l bi kys ea df t mp — h h Di t s h t a o a ma e p c z a ec
s he ss ma tc ly s c r . c me i e n ia l e u e
Ke r s ul o mop i n r pin p b i e ie e ce c ; e u i ywo d :f l h mo r hce cy t ; u l k ysz ; f in y sc rt y o c i y
全同态密码算法
全同态密码算法全同态密码算法是一种重要的密码学技术,可以对加密的数据进行完全保密的同时进行计算,并生成加密结果。
在云计算和数据隐私保护等领域,全同态密码算法被广泛应用。
全同态密码算法的特点是可以在不解密数据的情况下进行计算操作,这意味着用户可以将加密数据发送给云服务器进行计算,而不必担心数据的泄露。
这种算法的应用可以实现数据所有权的保护、数据共享和隐私保护等需求。
全同态密码算法的核心是同态加密技术。
同态加密是一种特殊的加密方式,可以在密文上进行运算,然后解密得到与明文运算结果相对应的结果。
具体而言,全同态密码算法可以分为完全同态加密和部分同态加密两种类型。
完全同态加密算法允许对加密的数据进行任意的加法和乘法运算,并可以通过解密操作得到运算结果,而不需要解密原始数据。
这种算法的实现相对复杂,但能够满足更多的数据处理需求。
部分同态加密算法则是对部分运算进行了加密保护。
一般情况下,部分同态加密算法可以支持一种基本的运算,如加法或乘法,但不能同时支持两种运算。
这种算法的实现相对简单,但在某些复杂计算场景下可能无法满足需求。
全同态密码算法的应用非常广泛。
在云计算中,用户可以将加密的数据上传至云服务器,云服务器使用全同态密码算法进行计算,然后将结果返回给用户解密。
这样一来,用户的数据得到了保护,同时享受到了云计算的高效便捷。
除了云计算,全同态密码算法还可以应用于数据隐私保护、安全多方计算等场景。
在数据隐私保护中,全同态密码算法可以对敏感数据进行保护,防止未授权访问和信息泄露。
在安全多方计算中,多个参与方可以在不暴露自己私密数据的情况下进行联合计算。
然而,全同态密码算法也存在一些挑战和限制。
首先,全同态密码算法的计算效率较低,对计算资源要求较高。
其次,完全同态加密算法的实现复杂度较高,需要很高的算法设计和数学基础。
此外,由于全同态密码算法的安全性较强,对攻击的容忍度也较高,因此可能会引发新的安全漏洞。
为了解决这些问题,研究人员一直在努力改进全同态密码算法。
全同态加密研究动态及其应用概述
全同态加密研究动态及其应用概述刘明洁;王安【摘要】随着互联网的发展,尤其是云计算概念的诞生,人们在加密数据搜索与处理等方面的需求日益增加,使得全同态加密变得愈加重要.全同态加密的思想是20世纪70年代Rivest等人首次提出的,如何构造满足全同态性质的体制一直是困扰密码学家的难题,直到2009年Gentry基于理想格提出了第1个全同态加密体制使得该方面的研究取得突破性进展.随后许多密码学家在全同态加密方案的研究上作出了有意义的工作,促进了全同态加密向实用化的发展.对全同态加密的研究动态进行了概要的介绍,包括Gentry提出的第1个全同态加密方案及其优化;基于整数的全同态加密方案;基于LWE问题的全同态加密方案等.随后探讨了全同态加密的一般性应用框架,并以云计算、电子投票、数字水印3个应用为例,介绍了全同态加密的重要应用价值.【期刊名称】《计算机研究与发展》【年(卷),期】2014(051)012【总页数】11页(P2593-2603)【关键词】密码学;公钥密码学;全同态加密;云计算;信息安全【作者】刘明洁;王安【作者单位】北京大学北京国际数学研究中心北京 100871;清华大学微电子学研究所北京 100084【正文语种】中文【中图分类】TP309.71 全同态加密的研究现状利用同态加密来保护数据的私密性,这个概念最早由Rivest等人[1]于1978年提出.该想法的来源是通过加密函数的同态性质,实现对加密后的数据作运算的同时保护数据的私密性.这个概念被提出之后,密码学家设计出了很多具有同态性质的加密方案,如实现电子投票的体制[2-4]、保密信息检索协议[5-6]等.近几年,云计算受到广泛关注,而它在实现中遇到的问题之一即是如何保证数据的私密性,全同态加密可以在一定程度上解决这个技术难题.具体地说同态加密指这样一种加密函数,对明文进行环上的加法和乘法运算再加密,与加密后对密文进行相应的运算,结果是等价的.由于这个良好的性质,人们可以委托不信任的第三方对数据进行处理,而不泄露信息.因此,同态加密在云计算、电子政务等方面有重要应用.具有同态性质的加密函数是指2个明文a,b满足Dec(En(a)⊗En(b))=a⊕b的加密函数,其中En是加密运算,Dec是解密运算,⊕,⊗分别对应明文和密文域上的运算.当⊕代表加法时,称该加密为加同态加密.密码学家设计出很多具有加同态性质的加密体制包括文献[3,7-10].当⊗代表乘法时,称该加密为乘同态加密[11].2005年在理论密码学会议(TCC)上,Boneh等人[12]给出了第1个可以同时实现加法和乘法同态的密码体制,该体制可以允许进行任意次的加法运算和一次乘法运算仍然保持同态.全同态加密指同时满足加同态和乘同态性质,可以进行任意多次加和乘运算的加密函数.用数学公式来表达,即或者写成:如果f是任意函数,称为全同态加密.直到2009年,IBM的研究人员Gentry [13]第1次设计出一个真正的全同态加密体制,即可以在不解密的条件下对加密数据进行任何可以在明文上进行的运算.使得对加密信息仍能进行深入和无限的分析,而不会影响其保密性.经过这一突破,存储他人机密电子数据的电脑销售商就能受用户委托来充分分析数据,不用频繁与用户交互,也不必看到任何隐私数据.同态加密技术将允许公司将敏感的信息储存在远程服务器里,既避免从当地的主机端发生泄密,又依然保证了信息的使用和搜索.用户也得以使用搜索引擎进行查询并获取结果,而不用担心搜索引擎会留下自己的查询记录.Gentry[13]的同态加密体制是基于理想格设计的,我们将在下面的章节中对该体制作详细的介绍.其主要思想是先构造了一个部分同态加密的体制,该体制仅能保证对明文进行较低次数的多项式运算时的同态性,然后利用Squash技术降低解密函数的多项式次数,实现Bootstrapping,通过在不知道密钥的情况下更新密文,从而减少扰动,实现全同态加密.但该体制在期望的安全强度上远达不到实用的程度.随后很多密码学家在全同态加密体制的研究方面取得进展.2010年Dijk等人[14]利用Gentry的技术提出了基于整数的全同态加密体制.该体制比Gentry 的体制更简洁,但仍不实用.2010年Smart等人[15]在PKC上简化了Gentry09体制的实现,但仍然无法实现Bootstrapping的步骤.2011年Gentry等人[16]利用一些技术对Gentry09体制的实现作进一步的简化,包括提出了部分同态加密方案的新的密钥生成算法,不需要对整个多项式求逆的优化实现方法、时间空间部分平衡等,减少密钥和密文长度,使得部分参数的实现成为可能.为了提高全同态加密的效率,2011年之后密码学家又先后提出了不用Squash和Bootstrapping的体制[17-18],使得全同态加密继续向实用化靠近.2 Gentry基于理想格的全同态加密体制2.1 Gentry全同态加密的基本思想2009年Gentry[13]给出了第1个全同态加密体制,该体制的构造分为如下3步:1)构造一个部分同态加密体制,对加密数据进行次数比较低的多项式的运算时可以保持同态性,即式(2)成立;2)降低解密多项式的次数;3)利用Bootstrapping实现全同态加密.该构造过程的核心是找到一个体制,使得式(2)成立的函数f的次数尽量高,而其加密函数的次数尽量低,一旦式(2)中的f对解密函数成立,该体制即被称为Bootstrapping的,即可以转化成一个全同态加密体制.Gentry构造的部分同态加密体制是一个类GGH[19]的基于理想格的体制,并且证明了在密钥生成算法恰当的情况下,这个体制的安全性可以归约到理想格上最坏情况的某些困难问题.但这个部分同态加密体制不是Bootstrapping的,Gentry经过在公钥中加一部分秘密密钥的暗示信息,降低解密函数的次数.在稀疏背包问题困难的假设下,这些信息不会影响体制的安全性.2.2 理想格基础n维格是Rn中的离散子集,具体地说是n个线性无关向量的整系数线性组合,这n个向量称为格的一组基.一个格有很多不同的格基,格基的性质对求解格中困难问题的难度有很大的影响.格的行列式定义为格基{b1,b2,…,bn}组成的基本体P(B)=的体积,记det(L)=vol(P(B)),行列式是对格基的不变量.f(x)是一个n次整系数不可约多项式,通常取f(x)=xn+1,n是2的方幂.R 是整系数多项式模多项式f(x)得到的环,R=Z[x]/(f(x)).每个环里的元素是次数不超过n-1的多项式,因此可以表示成Zn中的一个向量.I是R中的一个理想即对R中元素加法和乘法有封闭性.因此I中的元素构成一个格,称为理想格.R中的一个元素v生成的理想对应的格可以由这样一组向量生成:2.3 Gentry的部分同态加密体制Gentry的部分同态加密体制是一种GGH类基于理想格的体制.公钥是一个理想格J的随机的“坏”格基Bpk和一个小的理想I的格基BI(用来将明文转换成扰动变量).比如I=(2),即所有系数为偶数的向量集合.通过将明文处理成扰动变量,密文是一个距离理想格J很近的向量.具体地说,明文空间是{0,1},将0编码成0n,1编码成0n1,即将明文嵌入到R/I={0,1}n 中.对编码后的明文m∈{0,1}n,我们选择一个随机的短向量r,计算e =2r+m,输出密文c←e mod Bpk.体制中的私钥(J的好的格基)是一个短向量w∈J-1,解密过程就是计算w×c的分数部分.由于c=j+e,其中j∈J,所以有w×c=w×j+w×e.而w×j在环R 中,即是一个整向量,因此w×c与w×e有相同的分数部分.如果w和e足够小,特别是如果能保证w×e的所有系数都小于1/2,w×e与w×e的分数部分[w×e]相同.解密者只需对密文c乘上w-1,即可得到e,计算m←e mod 2恢复m.在Gentry的原文中实际解密过程稍有不同.通过计算m←c-[w×c]mod 2解密.这个体制是部分同态的,2个密文c1=j1+e1,c2=j2+e2,它们的和可以表示成j3+e3,其中,j3=j1+j2∈J,e3=e1+e2 是小的扰动向量.2个密文的乘积可以写成:j4+e4,其中j4=j1×(j2+e2)+e1×j2∈J,e4=e1×e2,仍然较小.经过若干次乘法和加法在扰动大小还没有超过解密半径之前,该算法是同态的,即这是一个部分同态算法,具体可以进行的运算次数与具体参数选择有关.2.4 Gentry的全同态加密体制Gentry的部分同态加密体制对式(2)只能对低次数的函数f成立,当f的次数过大时,扰动变量超过秘密密钥的解密范围,同态性质就无法保持.为了实现全同态加密Gentry引入了Bootstrapping的思想.他观察到如果f是解密函数时能保证式(2)成立,就可以在不知道密钥的情况下更新密文,把扰动一直控制在较小的范围内,从而实现全同态加密.具体地说,如果满足:即可以用公钥pk2加密的私钥sk1和用公钥pk1加密的明文m作为输入,输出用公钥pk2加密的明文.实现了不知道私钥情况下的明文更新.满足这一条件的体制称作Bootstrapping的.但遗憾的是对2.3节介绍的部分同态加密体制来说,解密函数表示成密钥比特的多项式次数仍然太高,不满足式(2).为了克服这个问题,Gentry进一步引入了降低解密函数的次数的技巧,在文中称作Squash.将原来的部分同态加密体制转化成一个新的体制,使得解密函数的次数降低,但对其他的性质没有影响.在原来的体制中秘密密钥是向量w,在新的体制中公钥包括一部分对w的提示信息,一个大的集合S={xi,i=1,2,…,S}存在一个稀疏的子集T,其中的元素相加是w.用一个0,1比特串σ=[σ1,σ2,…,σs]表示,即新的体制中秘密密钥是σ.这样在原算法中需要计算m←c-[w×c]mod 2解密,在新的算法中对密文c作一个处理,对所有的xi∈S,计算yi=xi×c,解密过程转化成计算:再利用一些加法的技巧,该式可以表示成次数大约是集合T的元素数量的σj的多项式.合理地选择参数可以使得这里T足够小,得到一个Bootstrapping的体制.2.5 Smart-Vercauteren对Gentry体制的优化2010年PKC上Smart等人提出了第1个Gentry体制的优化[15].该体制定义在环R=Z[x]/(f(x))上,其中fn(x)=xn+1,n是2的幂次.在一个n维方体里随机选择向量v,满足v生成的格行列式是一个素数,记J=(v),这样的J是一个主理想,这样的理想可以用2个参数(d,r)来表示:d=det(J),r是fn(x)mod d的根.注意到该理想格的 Hermite形式具有如下的特征:这里[r]d 指将r模到(-d/2,d/2]之间.容易看出对一个向量a进行模HNF (J)的运算相当于计算多项式a(x)在点r处模d的取值,得到的向量是([a (r)]d,0,0,…,0).因此加密一个向量(m,0,0,…,0),其中m∈{0,1},即选择一个随机小的多项式u(x),计算在点r处的取值,输出密文c←[2u(r)+m]d.Smart和Vercauteren的体制中,秘密密钥只是一个整数w,计算即可解密.该体制可以实现Gentry的部分同态加密方案,但是Gentry体制的Squash仍因为参数太大无法实现,从而实现不了Bootstrapping,即无法实现全同态加密.Smart-Vercauteren的体制很大的一个局限是生成部分同态体制的密钥非常复杂,由于找到一个行列式是素数的元素需要生成大约n1.5个随机元素.计算秘密密钥的复杂度大约是n2.5.所以生成n>2 048的密钥已不实际.而它们的解密函数的次数高达几百,需要n达到227才可以进行Squash步骤,而这么大的n对密钥生成又是不可能的.2.6 Gentry-Halevi对Gentry体制的实现Gentry-Halevi第1次完全实现了全同态加密[16],对维数2 048,8 192,32 768公钥的大小大约为70MB到2.3GB,运行Bootstrpping的时间大约是30s到30min.本文对Gentry体制的优化主要有以下7个方面:1)放松了Smart-Vercauteren体制的对格的行列式是素数的要求,只需要基的HNF形式具有式(3)的特征即可.并且给出了一个非常容易的判别条件,判别这样的格.2)与Smart-Vercauteren体制类似,该体制也是使用一个秘密的逆多项式的一个系数来解密,但是为了简便用模计算代替了有理数的除法.3)在计算解密密钥时需要计算一个给定多项式模x2 m ±1的逆,这在Smart-Vercauteren的体制中是非常费时间的操作.给出了一个优化的算法可以高效地计算结式和逆多项式的一个系数,而不必计算整个多项式.4)使用了批处理技术加速加密,通过一起计算一些小系数的多项式在同一个点的值来有效计算.计算k个多项式只是计算一个多项式复杂度的倍.5)秘密密钥是一个长度为S≈1 000的二元向量,其中只有15个1,其他是0.通过用s个长度为S的(每个向量只有一个1)向量来表示秘密密钥提高算法的效率.6)公钥包含一个稀疏背包问题的实例,将其利用几何级数来表示,从而大大节省存储空间.7)全同态加密体制的公钥包含对秘密密钥比特的加密,利用时间和空间的平衡策略来优化存储空间而不增加过多的时间复杂度.3 基于整数的全同态加密2010年的欧密会上,Dijk等人[14]提出了一种基于整数的全同态加密体制.该体制与Gentry09体制非常类似,首先构造一个部分同态的体制,再利用Squash 降低解密函数次数,实现Bootstrapping.该体制的优势是它不需要理想格上的运算,但是公钥的长度仍然很长.算法安全性基于近似最大公因子问题.随后,在2011年美密会上,Coron等人提出了该体制的一种降低密钥长度的版本[20],并且借鉴文献[16]的方法进一步作了优化.实现了安全强度分别为42B,52B,62B,72B的几个实例.对安全强度为72B的参数,加密和重加密分别需要3min和12min,解密时间很短,公钥大小是800MB.同时证明了经过这些优化之后算法仍然是语义安全的,安全性基于一个变种的近似最大公因子问题.3.1 DGHV体制利用[z]p 表示z 模p 到(-p/2,p/2]之间.生成一个η比特的奇数p,xi←Dγ,p(p),选其中最大的记为x0,并且保证x0是奇数,[x0]p 是偶数.公钥pk=(x0,x1,…,xτ),私钥是p.加密1B的明文m,选择一个随机子集S⊆{1,2,…,τ}和1个在区间(-2ρ′,2ρ′)中的随机整数r,输出密文.解密计算m←(c mod p)mod 2.由于c mod需计算m在文献[14]中,证明了这是一个部分同态的体制,在近似GCD问题的困难性假设下是语义安全的.近似最大公因子问题,表述如下:参数(ρ,η,γ)近似GCD问题指对一个随机的η比特的奇数p,给定多项式个Dγ,p(p)中的取样,输出p.这个问题目前还没有找到高效的算法解决,被认为是困难的.将这个体制转化成全同态的,使用了与Gentry09类似的办法,通过增加公钥中部分私钥的信息,降低解密函数的系数从而实现Bootstraping.具体地说,是素数,因此只其中,κ=γη/ρ′,选择一个随机的比特的0,1向量,只有θ比特为1,为了达到2λ的安全强度,对参数有如下要求:抵抗对扰动变量的穷举搜索攻击ρ=ω(lbλ);为了Squash技术的实现η≥ρΘ(λlbλ2);抵抗格攻击γ=ω(η2 lbλ);保证安全性证明τ≥γ+ω(lbλ),ρ′=ρ+ω(lbλ).在文献[14]中,建议参数:ρ=λ,ρ′=2λ,η=O~(λ2),γ=O~(λ5),τ=γ+λ,公钥的长度是O~(λ10).3.2 优化版本的DGHV体制2011年的美密会上Coron等人提出的减少密钥长度的方案[20],主要创新点是xi生成的方式为x′i,j=xi0xi1mod x0,1≤i,j≤β,这样只需要存储2β个整数就可以生成β2个整数x′i,j,公钥的大小从τ个γ比特的数降低到个.另外的不同还有x0是无扰动的变量x0=pq0,该要求使得体制的安全性基于一个变体的近似最大公因子问题.称为无扰动近似最大公因子问题,具体描述如下:参数(ρ,η,γ)无扰动近似GCD问题指对一个随机的η比特的素数p,给定x0=pq0,其中q0是一个属于[0,2γ/p]的随机无小于2λ 因子的无平方数,多项式个D′p(p,q0)中的取样输出p.这个问题目前也还没有找到高效的算法解决,被认为是困难的.这里:密钥生成一个η比特的随机素数p,q0是一个属于[0,2γ/p]的随机无小于2λ因子的无平方数,生成xi,b=pqi,b+ri,b,1≤i≤β,b∈{0,1},其中qi,b是[0,q)的随机整数,ri,b∈(-2ρ,2ρ).私钥是p,公钥是(x0,x1,0,x1,1,…,xβ,0,xβ,1).加密对一个比特的明文m过程如下:生成一个随机大小为τ=β2的向量b=(bi,j)元素均在[0,2α)之间,生成一个(-2ρ′,2ρ′)中的随机整数r,输出密文bi,jxi,0xj,1mod x0.解密过程与原算法相同.在Squash的过程中,与原算法的不同之处就是为了节省存储,生成ui∈Z∩[0,2κ+1],i=1,…,Θ时,不再是随机选取而是通过一个伪随机生成函数f和种子e来生成,这样将这部分存储从O~(λ8)降到仅保留0,1表示小数点后的为了达到2λ的安全强度,对参数有如下要求:抵抗对扰动变量的穷举搜索攻击仍有ρ=ω(lbλ);抵抗格攻击γ=ω(η2 lbλ);为了Squash技术的实现η≥(2ρ+α)Θ(λlbλ2);保证安全性证明αβ2≥γ+ω(lbλ),ρ′=2ρ+α+ω(lbλ).在文献[20]中,建议参数与原算法相同有),另外还有=4λ,与原体制需要个xi 不同,这里只需要2β=O~(λ2)个xi,公钥的长4 全同态加密体制的新进展虽然在全同态体制的实用化方面做了很多工作,但其实现效率还远达不到应用的要求.主要有下面2点原因:1)Bootstrapping的复杂性至少是解密的复杂度乘以用来加密密钥比特的密文的比特长度.这是因为Bootstrapping需要同态计算解密函数,而解密密钥需要经过加密处理.而解密复杂度和密钥长度均为Ω(λ),因此Bootstrapping的复杂度至少是二次的.2)可以计算次数为d的函数部分同态加密体制,需要2d近似最短向量问题在2λ时间内不可解.格的维数需要达到Ω(dλ),向量的系数需要达到Ω(d)(单位B),因此更新后的密文长度至少是Ω(dλ2).但是部分同态体制要达到Bootstrapping必须可以对自身的解密函数进行同态运算,即d必须大于解密函数的次数Ω(λ),因此更新后密文的长度为Ω~(λ2).这样即使假设这些更新的密文解密只需要Θ(λ)的时间,总的时间仍然需要Ω~(λ4).由于全同态加密体制在实际中的重要应用前景,对其研究和优化不断有新的进展,很多文章[21-22]发表在顶级密码学会议上,由于篇幅所限,这里不再做详细介绍.4.1 不带Squash的全同态加密体制最近 Gentry等人[18]和 Brakerski等人[23]分别独立提出了不用Squash步骤的同态加密体制.这样使得体制的安全性不再需要稀疏背包问题的困难性假设.这2个体制仍需要Bootstraping步骤,没有从根本上提高算法的效率.但这2种算法都提出了很有意义的思想.Gentry等人[18]通过将解密函数表示成不同的形式实现了Bootstrapping.他们观察到基于格的密码体制的解密函数可以表示成一种特殊类型的对称多项式,这种多项式可以利用大域上的深度为3的算术电路表示.尽管这个多项式的次数较高,他们证明了可以将其转化成乘同态的体制(如ElGamal)进行同态计算,再将结果转化回去.这里的乘同态体制可以用加同态体制来代替,比如通过加上离散对数.该体制的安全性依赖于最坏情况的理想格上的困难问题.Brakerski等人设计的体制[23]基于LWE问题,该体制的创新性主要有2点:1)基于LWE构造了一个部分同态加密体制,主要的技术是重线性化,突破了之前的体制都基于理想格上的困难问题的缺陷;2)利用维数约化和模约化的技术来减少密文的长度,降低解密复杂度.从而在不用Squash的情况下实现Bootstrapping.在基于LWE的体制中,解密通过计算密文和密钥的内积 m=(〈c,s〉mod q)mod 2.维数约化技术将明文m在密钥s下的密文c转化成在一个不同的密钥s′加密下的密文c′,m=(〈c′,s′〉mod q)mod 2.这里c′和s′的维数都比c,s小.为了实现这个步骤需要在公钥中包括s在s′下的加密,但是这里s不是按比特加密的.模约化步骤将m在密钥s下的密文c转化成一个在不同的模下的密钥s′下的密文c′,m=(〈c′,s′〉mod q)mod 2.在部分同态加密的更新密文过程中,扰动会变得很大,利用维数约化和模约化得到同一个明文的小得多的密文,对这个小的密文执行解密过程,最终实现了不需要Squash的Bootstrapping.4.2 不带Bootstrapping的全同态加密体制Gentry借鉴Brakerski等人的设计中模约化的技术控制扰动变量的大小,提出了不需要Bootstrapping的全同态加密体制[17].模约化的核心是如下的引理:p,q是2个奇数,c是一个整数向量,c′是一个与(p/q)c接近的向量且.对任意l1(s),有〈c′,s〉mod p=〈c,s〉mod p mod 2,且,其中,l1(s)是s的l1 范数.该引理表明在不知道密钥s的情况下,只需要知道s长度的界,即可把一个模q 下的密文转化为一个模p的密文仍可以正确解密,即〈c′,s〉mod p=〈c,s〉mod pmod 2,这个转化只涉及到一个数乘和取整.如果s比较短,p比q小,该转化达到了减小密文中扰动的目的,即〈c′,s〉modp <〈c,s〉modp.在不知道密钥的情况下减少扰动是Bootstrapping希望达到的目的,而模约化的步骤显然比Bootstrapping要简洁很多.模约化从表面来看并不是一个好的处理扰动的方法,因为对于比q小的p,模约化虽然降低了扰动变量的绝对值,但也相应减少了模的长度,即扰动和模的比值没有减少.对体制的同态能力来说,扰动的绝对值更重要.特别是对乘法.比如取q≈xk,2个模q的部分同态加密体制的密文如果扰动大小都是x,相乘之后扰动变成x2,经过4轮的乘法,扰动变成x16,即只能进行lb k层的乘法.如果选择一系列递减的模{qi≈q/xi},i<k.2个模q的密文相乘之后,把密文转化成在一个小的模q1≈q/x下,这样对应的扰动从x2降到x(这里假设l1(s)很小可以忽略).再在模q1的情况下做2个密文的乘法,扰动仍是x2,再利用模约化技术将模降到q2,扰动仍可保持在x.以此类推,利用这种技术可以进行k层的乘法,大大提高了之前的lbk.这样通过模约化得到了噪声的减少,利用逐渐减少模,可以保持噪声一直比较小.实现了对任意多项式保持同态性质而不需要Bootstrapping,从而提高了算法的效率.关于该体制具体的优化可参见文献[17],在这里不再详述.5 全同态加密的应用现实生活中的实际应用往往会大幅推动科学理论的发展.随着互联网的发展,尤其是云计算概念的诞生,人们在加密数据搜索与处理等方面的需求日益增加,大大推动了全同态加密方向的科学研究.与此同时,自Gentry的创新性工作发表以来,关于全同态加密的研究工作开始出现了新的高潮,被广泛应用于多种实际环境.本节将对全同态加密的一些典型应用作简要介绍.5.1 全同态加密一般性应用框架密码协议是大多数安全模块中必备的环节,从广义上讲,所有的密码协议都是安全多方计算的一个特例.它们广泛应用于金融交易、社交网络、实时监控、信息管理等多个领域.常见的密码协议中,通常包括多个参与者,他们可能是可信方(例如用户自己、经过认证的参与者)或不可信方(未经认证的参与者).理论上,凡是存在不可信方的协议都具备全同态加密应用的可能.因此,全同态加密的大部分应用都可视作安全多方计算的范畴.当不可信方需要对敏感数据进行搜索、分析、处理等操作时,协议的其他参与者不希望不可信方掌握明文数据,因此可以采用全同态加密方案,让不可信方直接对密文进行操作,实现等同于对原始数据直接进行处理的效果,从而完成用户的需求.我们给出全同态加密的一般性应用框架,如图1所示:Fig.1 General application framework of fully homomorphic scheme.图1 全同态加密的一般性应用框架加密数据处理方法简述如下:假设存在全同态加密函数Enck(x),首先用户用自己的私钥k对需要处理的数据m进行同态加密c=Enck(m),然后将加密数据c上传到云端服务器.服务器能够对加密数据c直接进行处理,得到c′=f(c)=f (Enck(m)),然后将处理后的密文c′返回给用户.用户收到c′=f(c)=f (Enck(m))=Enck(f(m))后,利用自己的私钥k对其进行同态解密,得到已经处理好的明文数据f(m).5.2 云计算中的全同态加密云存储安全是云计算领域的重要安全问题之一.为解决数据隐私保护的问题,常见的方法是由用户对数据进行加密,把加密后的密文信息存储在服务端.然而,当用户需要服务器提供数据搜索、分析、处理等功能时,传统加密方案难以实现,但全同态加密为之提供了实现的可能.5.2.1 云计算中的加密数据检索。
基于整数的全同态加密体制的研究
量 的研 究 , 但 所 提 出的方 案均不 能 满足对 于 密文
进 行 任 意 次 数 的 操 作 和 处 理 。直 到 2 0 0 9年 ,
示 向下 取 整 , ( r ) 表 示就 近取 整 ( 即取 与 r 最 接近
的整 数 ) 。 也即『 r ]∈[ r , r +1 ) , l r j∈( 卜- 1 , r ] ,
想 j , 希望 能够 在不 解 密 密 文 的条 件 下 , 对 密 文
执 行操 作 , 从 而 实现对 明文数 据 的相应处 理 。在 这之后 , 国 内外 密码 界学 者对 同态 加密 进行 了大
1预 备 知 识
1 . 1符号定义
对 任 意 的实数 r , 『 r ]表示 向上 取整 , l r J表
第2 l 卷 第 2 期
Vo 1 . 2 1 No . 2
北 京 电 子科 技 学 院 学 报 J o u r n a l o f B e i j i n g E l e c t r o n i c S c i e n c e a n d T e c h n o l o g y I n s t i t u t e
任 意 的运 算 , 运 算 的结果 解密后 与对 明文 做 同样 运算 的结果 相 同 。G e n t r y的全 同态 加 密 体 制 的 构 造分 几步进 行 : 首先 , 构 造 一个 s o me w h a t 同态 加 密体 制 , 由于 密 文 中噪 声 的存 在 , 随着 对密 文
基金项 目: 国家 自然科学 基金 : 后量子数字签名算法研究与设计 ( N O . 6 1 0 7 0 2 1 9 ) 。 作者简介 : 张爽 , ( 1 9 8 9一) , 男, 西安 电子科技大学在读硕士研究生 , 研究方向为密码学 , 同态密码体制学院学报
全同态加密方案的研究
全同态加密方案的研究全同态加密方案的研究摘要:全同态加密是一种重要的密码学技术,能够对密文进行计算和操作,同时不需要解密。
本文对全同态加密的原理、实现方式以及应用进行了研究和探讨,介绍了几种常见的全同态加密方案,并分析了其优缺点和应用场景。
1. 引言全同态加密(Fully Homomorphic Encryption, FHE)是近年来密码学领域的突破性研究,是对传统加密算法的进一步扩展和发展。
在传统加密中,只能对密文进行传递和存储,对密文进行计算和操作的需求无法实现。
而全同态加密则能够满足对密文进行计算和操作的需求,实现对加密数据的高度保护和隐私安全。
2. 全同态加密的原理全同态加密的原理是通过混淆技术和特殊的加密算法,将明文加密为密文,并设计相应的解密算法。
与传统加密算法不同的是,全同态加密算法能够对密文进行计算和操作,而无需解密。
这是通过将计算操作转化为在密文上的操作实现的,使得加密数据在计算的过程中仍然保持加密状态。
3. 全同态加密的实现方式目前,全同态加密有多种实现方式,其中最为代表性的是基于整数和基于椭圆曲线的方案。
基于整数的方案利用整数的运算特性进行加密和计算,适用于简单的计算任务。
基于椭圆曲线的方案利用椭圆曲线的运算特性进行加密和计算,适用于复杂的计算任务。
此外,还有基于多线性映射和格的全同态加密方案,适用于不同场景和需求。
4. 几种常见的全同态加密方案4.1 基于整数的全同态加密方案基于整数的全同态加密方案主要有RSA全同态加密和Paillier全同态加密。
RSA全同态加密利用RSA算法的特性实现对密文的计算和操作。
而Paillier全同态加密则利用Paillier算法实现同样的功能。
这两种方案在实现方式和性能上有差异,可根据实际需求进行选择。
4.2 基于椭圆曲线的全同态加密方案基于椭圆曲线的全同态加密方案主要有ElGamal全同态加密和BGW全同态加密。
ElGamal全同态加密利用椭圆曲线的离散对数的困难性实现全同态加密。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
整数上全同态加密方案分析一篇论文看完了,如果都看懂了的话,很多人觉得案例都是小菜一碟,但是在我写这个案例的时候我发觉论文看懂了,更需要案例或者说实现来进一步深入或者夯实,因为只有通过具体的实现步骤,才能发现有些在论文中的一些细节问题,反过来更可以促进对论文的理解。
整数上全同态加密方案有两篇非常经典的论文,一篇是《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) 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 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)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 mod 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; 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思想中一个最重要的特性:同态解密。
那么同态解密对于降低噪音又有什么关系呢?当密文运算后,噪音会被迅速放大,如果我们对运算后的密文做一次同态解密,是不是相当于得到了一个新鲜密文呢,而新鲜密文的噪音是最小的,所以达到了降噪的目的。
(事实上同态解密后得到的密文的噪音要比新鲜密文噪音稍微大一些。
)这一手法称之为:重加密技术,它为我们提供了降低噪音的一个方法。
接下来你肯定会想到:每次密文运算前只要对密文进行重加密来降低噪音,然后再进行密文运算,那么噪音永远都在可控的范围内,运算结果的解密也就不会失败了。