本发明属于信息安全和隐私保护领域,具体涉及一种高效的bgv型多密钥全同态加密方法。
背景技术:
全同态加密(full-homomorphicencryption,fhe)能够在密钥未知的情况下对密文进行任意计算,具有加密和运算可交换的性质,在当前的云计算环境下具有很高的理论和应用价值,可被广泛应用于密文检索、安全多方计算、云数据分析等。自2009年gentry提出了首个基于理想格的全同态加密方案gen09之后,基于gentry为全同态加密所描绘的蓝图,越来越多的全同态加密方案(dghv10,bv11a,bv11b,bgv12,gsw13,ap14等)被提出。
多密钥全同态加密(multi-keyfhe,mkfhe)允许对不同私钥的密文进行计算,是全同态加密在安全多方计算方面的延伸。latv12首先提出了mkfhe的概念,并提出了一种基于ntru公钥密码系统的多密钥全同态加密方案,但是基于ntru的加密方案的安全性基于多项式环上的不标准假设,无法严格规约到格上的困难问题,因此安全性有待进一步考证。
clear和mcgoldrick利用gsw型fhe,提出了首个基于误差学习问题(learningwitherror,lwe)的gsw型mkfhe方案cm15,由于lwe问题可以量子规约到理想格上最坏情况下的困难问题,因此方案的安全性得到保证,同时该方案中参与方密钥的数量没有上限。mukherjee和wichs对cm15进行了改进,提出了基于lwe的mkfhe方案mw16,该方案可以用来实现一轮的门限解密协议,并在此基础上实现了一个两轮安全多方计算(multipartycomputation,mpc)协议。
cm15和mw16方案需要提前对参与同态计算的方用户的数量进行设置,并且在运算过程中无法实现新用户的加入,这种类型的mkfhe在ps16中被称为单跳(single-hop)型mkfhe。同时ps16提出了多跳(multi-hop)mkfhe的概念:原有参与方经过同态运算后的密文,能够与新加入的参与方的密文重新进行运算,即任何参与方都可以实时、动态地加入到密文运算的过程中。bp16提出了全动态的mkfhe的概念,即参与方的数量不需要提前进行设定。
在tcc2017上,陈隆等人提出了基于rlwe的bgv型多跳mkfhe。该方案支持基于中国剩余定理的密文打包技术,并且对mkfhe中的密文扩展过程进行了简化,该方案可以用于构造两轮的mpc协议和门限解密协议。
目前,支持batchedmulti-hop的bgv型mkfhe方案以czw17为代表。bgv型mkfhe方案存在密文量,公共参数相对较大,生成计算密钥过程运算量大的缺陷。
技术实现要素:
为了解决现有技术中存在的密文量和公共参数相对较大、生成计算密钥过程运算量大的缺陷,本发明提出一个高效的bgv型多密钥全同态加密方法,该bgv型多密钥全同态加密方法能够允许在拥有不同密钥的用户的密文之间进行同态运算,从而实现安全的多方计算功能。为了达到上述目的,本发明采用的技术方案如下:
一种高效的bgv型多密钥全同态加密方法,包括如下步骤:
步骤一:对参与运算的用户的明文进行bgv型同态加密,得到该用户所对应的密文;
步骤二:对参与运算的用户的密文进行扩展,得到对应用户集的扩展密文;
步骤三:对参与运算的用户集的扩展密文进行同态运算,得到高维度的bgv密文,并对参与计算的用户的密钥分别进行bgv同态加密和gsw同态加密,且对加密后的结果进行密文扩展和混合同态乘法,从而得到计算密钥,通过计算密钥对高维度的bgv密文进行降维;
步骤四:对降维后的密文运行换模函数,缩减密文中的噪声,最后输出同态运算的最终密文结果。
进一步地,上述步骤一的具体操作为:给定安全参数l,整数m,模数q=ploy(n),多项式环r=z[x]/φm以及环上b-有界的离散分c(b<<q),整数n=o(nlogq),
(1)密钥生成:生成第j个参与方所需要的密钥:
选择zl,j←χ,定义
随机选取
计算密文同态运算时所需要的计算密钥的生成部件,
(a)对于m∈{0,...,βl-1},j∈{1,...,k},ζ∈{0,...,k},计算
(b)对于j∈{1,...,k},ζ∈{0,...,k},计算
(2)加密过程:输入待加密的明文μ∈rp和公钥pkl,j,随机选取r∈r2和误差矩阵e=(e1,e2)←χ2,生成明文μj的第l层密文:
输出密文元组ct={c,{j},l}。
进一步地,上述步骤二的具体操作为:
bgv.ctext(cl,s′):将密文元组
(1)将密文c分解为k+1等份:
(2)生成扩展密文:
容易验证
进一步地,上述步骤三的具体操作为:输入t个经过密文扩展之后的密文组(ct1,…ctt),并假设其处于同一电路层,且
(1)通过调用方案中基本的同态运算部件
(2)生成密文运算过程中所需要的计算密钥evks=mkfhe.evkgen(ems);
(3)对密文
进一步地,上述步骤四的具体操作为:输入l层经过同态运算之后的密文
与现有技术相比,本发明的有益效果:
1.本发明对bgv密文和gsw密文由单用户转化为多用户,减少了扩展密文的尺寸;
2.本发明对密钥转化技术中所需的转化密钥生成过程进行了改进,由rbgv和rgsw密文的混合同态乘法替换原有的rgsw密文乘法,减少了公共参数和计算密钥的尺寸;
3.本发明将用户的私钥系数的取值范围设定为{-1,0,1},减少了计算密钥生成过程中的密文的尺寸和数量;
4.本发明降低了同态计算过程的数据量,数据量的降低可进一步降低同态运算的计算复杂度。
附图说明
图1是本发明的流程示意图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
本实施例提供了一种高效的bgv型多密钥全同态加密方法,利用密文扩展技术,将单用户密文转化为多用户密文,从而将一个多密钥全同态加密方案转化为单密钥全同态加密方案,并利用密钥转化技术和换模技术,对密文进行处理,降低密文的维度和噪声。该bgv型多密钥全同态加密方法能够被有效应用于云计算环境下多用户间的安全多方计算,具备机密性、密文可用性、抗合谋攻击性、抗量子攻击等优良特性。相比于bgv型多密钥全同态加密方案[czw17],
参照图1,该bgv型多密钥全同态加密方法,包括如下步骤:
步骤一:对参与运算的用户的明文进行bgv型同态加密,得到该用户所对应的密文;
步骤二:对参与运算的用户的密文进行扩展,得到对应用户集的扩展密文;
步骤三:对参与运算的用户集的扩展密文进行同态运算,得到高维度的bgv密文,并对参与计算的用户的密钥分别进行bgv同态加密和gsw同态加密,且对加密后的结果进行密文扩展和混合同态乘法,从而得到计算密钥,通过计算密钥对高维度的bgv密文进行降维;
步骤四:对降维后的密文运行换模函数,缩减密文中的噪声,最后输出同态运算的最终密文结果。
初始化:给定安全参数l,整数m,模数q=ploy(n),多项式环r=z[x]/φm以及环上b-有界的离散分c(b<<q),整数n=o(nlogq),
密钥生成:生成第j个参与方所需要的密钥:
选择zl,j←χ,定义
随机选取
计算密文同态运算时所需要的计算密钥的生成部件,
(a)对于m∈{0,...,βl-1},j∈{1,...,k},ζ∈{0,...,k},计算
(b)对于j∈{1,...,k},ζ∈{0,...,k},计算
加密过程:输入待加密的明文μ∈rp和公钥pkl,j,随机选取r∈r2和误差矩阵e=(e1,e2)←χ2,生成明文μj的第l层密文:
输出密文元组ct={c,{j},l}。
解密过程:输入
bgv密文扩展过程:
bgv.ctext(cl,s′):将密文元组
(1)将密文c分解为k+1等份:
(2)生成扩展密文:
容易验证
多用户密文同态运算过程:输入t个经过密文扩展之后的密文组(ct1,…,ctt),并假设其处于同一电路层,且
(1)通过调用方案中基本的同态运算部件
(2)生成密文运算过程中所需要的计算密钥evks=mkfhe.evkgen(ems);
(3)对密文
换模过程:输入l层经过同态运算之后的密文
安全性分析:在基础方案方面,本发明和czw17采用相同的bgv加密方案和gsw加密方案。本发明和czw17的主要区别有两点:一方面本文提出了bgv密文嵌套式扩展函数、gsw型密文拆分式扩展函数、rbgv和rgsw密文间的混合同态乘法函数,这三个函数的输入和输出都是密文,计算过程都是在密文上,所以不会降低方案的安全性;另一方面,本发明将bgv密文的私钥的系数取值由c限制到{0,1},因此需要一定程度的增大多项式的维度n,以保证方案的安全性。
本发明和czw17的存储开销对比:
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。