密文长度固定的多密钥全同态加密方法技术

技术编号:27776024 阅读:89 留言:0更新日期:2021-03-23 13:15
本发明专利技术属于信息安全技术领域,具体设计了两种密文长度固定的多密钥全同态加密通用构造方法以及两种具体的密文定长的多密钥全同态加密方案THFE型和CKKS型,密文长度固定的MKFHE方案的通用构造方法包括以下步骤:将用户集的公钥进行累加,构造了长度固定的用户集的累加公钥;各用户用累加公钥加密自己私钥,生成累加计算密钥;对单个用户密文和对应的累加自举密钥运行自举过程,实现密文的刷新;对刷新后的密文运行同态计算和联合解密。本发明专利技术利用CGGI系列方案高效的自举方法和CKKS方案支持近似数据同态计算的优点,构造了两个高效的定长MKFHE方案。分析表明,本申请的密文规模、同态计算效率与用户数无关,同单用户全同态加密方案一样高效。

【技术实现步骤摘要】
密文长度固定的多密钥全同态加密方法
本申请属于信息安全
,设计了密文长度固定的多密钥全同态加密通用构造方法,特别涉及针对TFHE型定长MKFHE和CKKS型MKFHE的密文长度固定的多密钥全同态加密方法。
技术介绍
作为信息安全领域的核心技术,密码技术在保护用户隐私数据的安全存储、传输和处理方面发挥着至关重要的作用。全同态加密支持对密文数据进行任意的运算处理,为云环境下用户隐私数据的安全存放、传输和处理提供了强有力的工具。MKFHE支持对不同用户(不同密钥)的密文进行任意的同态运算,且运算之后的结果可由参与计算的所有用户联合解密,可以较好地解决多用户数据之间的安全联合计算问题。随着云计算、大数据等新兴需求牵引,外包计算、安全多方计算(Multi-partycomputation,MPC)等新型计算模式迅速发展,如何保证信息在处理过程中的安全和信息所有者的隐私,已成为当前信息安全领域的研究热点。全同态加密(Fullyhomomorphicencryption,FHE)支持对密文数据运行任意的函数,具备强大的密态计算能力。典型的FHE只能支持对单个用户的密文进行同态计算,即参与计算的所有密文对应于相同的密钥。然而在许多的现实场景中,通常需要对网络中多个用户上传到云端的数据一起进行计算。多密钥全同态加密(Multi-Keyfullyhomomorphicencryption,MKFHE)支持对不同用户(不同密钥)的密文进行任意的同态运算,运算之后的结果由参与计算的用户联合解密,因此可以较好地解决多用户密文进行同态计算的问题,云环境下MKFHE在多用户数据安全计算中应用的流程见图1。当前,MKFHE方案都是在经典的全同态加密方案的基础上发展而来,按照底层同态加密方案的不同类型,当前多密钥全同态加密主要分为NTRU型、GSW型、BGV型、TFHE型,四类MKFHE方案的分析对比见表1:表1四类MKFHE方案的分析多密钥全同态加密具有重要理论价值和应用前景,表1对现阶段4类MKFHE(NTRU型、GSW型、BGV型、TFHE型)方案进行了分析,目前,大多数BGV型、GSW型、TFHE型MKFHE方案都使用转化模式,其中以密文级联为特征的单用户密文到用户集密文的密文扩展算法,使扩展密文规模随着用户数的增加呈平方或线性规模增长,这限制了MKFHE在大量用户参与场景中的应用。本方案将多个用户公钥直接累加的方式生成用户集的联合公钥,将自举过程引入密文扩展过程,构造基于LWE/RLWE问题的固定长度扩展密文。分析表明,本方案方案的密文规模、同态计算效率与用户数无关,和单用户全同态加密方案一样高效。当用户集合更新时,原先集合的密文经过密文转化后可以用到新集合的同态计算,但方案需要各用户提供新的公共密钥。本方案与LZY+19,CCS19,CDKS方案空间对比见表2,其中k是参与计算的用户数,n是(R)LWE的维度。表2本方案与LZY+19,CCS19,CDKS方案空间对比
技术实现思路
本申请的目的在于提出一个密文长度固定的多密钥全同态加密方法,设计了密文长度固定的MKFHE方案的通用构造方法,利用CGGI系列方案高效的自举方法和CKKS方案支持近似数据同态计算的优点,构造了两个高效的定长MKFHE方案,方案的密文规模、同态计算效率与用户数无关,同单用户全同态加密方案一样高效。TFHE型定长MKFHE包括以下步骤:·HDTMK.Setup(1λ)→pp=(ppLWE,ppGSW):LWE.Setup(1λ)→ppLWE=(η,χ,α,Bks,dks,B);GSW.Setup(1λ)→ppGSW=(N,φ,α,B,d,y),其中,B,y随机产生的公用变量;·HDTMK.KeyGen(pp)→(pki,ski,pkBK,i,skBK,i);LWE.KeyGen(pp)→{pki=Ai,ski=si};RGSW.KeyGen(pp)→{pkBK,i=Zi,skBK,i=zi};当所有用户都完成HDTMK.KeyGen(params)程序之后,运行累加计算密钥生成算法;如果方案中有用户更新,则重新运行密钥生成算法;·1)公钥累加:给定k个用户的公钥b1,...,bk生成累加公钥累加自举公钥:给定k个用户的自举公钥d1,...,dk生成累加自举公钥2)用户累加自举密钥:输入累加自举公钥secretkeyofLWEciphertext输出单用户的累加自举密钥其中i∈[k],j∈[n]。3)用户累加计算密钥:输入累加公钥RGSW密文的私钥zi,令生成单用户的累加转化密钥其中i∈[k]。·HDTMK.Enc(pk,μ):输入明文μ,用户公钥pk,运行·HDTMK.Dec((sk1,...,skk),ct):输入密文输入密钥(sk1,...,skk),返回使得最小的明文比特μ′∈{0,1};·输入密文和自举密钥集合转化密钥集合使用如下自举过程实现同态运算:1)云端通过生成累加密文的累加转化密钥云端通过生成累加密文的累加自举密钥其中j∈[n],HomAddk(,)是k个1位TGSW密文的同态加法算法,可以使用TGSW密文的同态乘法和同态加法构造。对于固定的用户集,云端只需要计算一次和之后将其作为公共变量给出。2)密文刷新:给定密文和对应的计算密钥或运行如下的同态累加算法:2-1.输入密文返回和以及对应的自举密钥2-2.初始化RLWE密文其中令对于j=1到n,,运行:(1).(2)....其中选择最大电路CMux(C,d1,d0)沿用CGGI16的表达,输入一个控制TGSW密文C和两输入的RLWE密文数据d1,d0,输出RLWE的密文是GSW密文和BGV密文的混合同态乘法运算;2-3.输出3)密钥转化过程:最后一步将ACC转化为LWE密文,并运行密钥转化算法;3-1.输入密文ACC=(c0,c1)∈T2,令b″是多项式c0中的常数项,a″是由多项式c1的系数组成的向量;输出LWE密文3-2.令Let运行密钥转化算法,输出密文·利用自举过程构造同态与非门NAND电路HDTMK.NAND(c1,c2)=HDTMK.Boot((0,5/8)-c1-c2);CKKS型定长MKFHE包括以下步骤:·HDCMK.Setup(1λ):输入安全参数λ,选择一个为2的幂次的整数N;令χkey,χerr,χenc分别为私钥、噪声和加密过程使用的上的分布;选择素数P,p和层数L,令密文模数ql=pl,其中1≤l≤L,随机选择输出公共参数pp=(N,χkey,χerr,χenc,L,P,ql,a,a′);·HDCMK.KeyGen(pp):输入公共参数pp,选取s←χkey,e←χerr,输出用户公钥pk为选取e′←χerr,输出用户计算公钥pke本文档来自技高网
...

【技术保护点】
1.密文长度固定的多密钥全同态加密方法,其特征在于,/n所述加密方法是半动态定长MKFHE方法,其具体过程是:/n·HDMK.Setup(1

【技术特征摘要】
1.密文长度固定的多密钥全同态加密方法,其特征在于,
所述加密方法是半动态定长MKFHE方法,其具体过程是:
·HDMK.Setup(1λ):FHE.Setup(1λ)→params
·HDMK.KeyGen(params):FHE.KeyGen(params,B)→pki,ski
当所有用户都完成HDMK.KeyGen(params)程序之后,运行计算密钥生成算法;如果方案中有用户更新,则重新运行密钥生成算法;
·HDMK.EvalKeyGen(params,ski,{pk1,...,pkN})



·HDMK.Enc(pk,μ):FHE.Enc(pk,μ)→C;
·HDMK.Dec((sk1,...,skN),C):构造联合解密协议,协议分为部分解密和最终解密两个部分,
1)HDMK.PartDec(C,i,ski):用户i利用自身私钥ski=(-si,1),运行部分解密协议,保留密文的公用部分不进行运算,
2)HDMK.FinDec(p′1,...,p′N):解密者得到所有用户的中间变量后,最终解密
·通用模式使用自举过程实现同态运算;
1)该过程实现密文公钥的刷新,其中是Ci对应的自举密钥,如果Ci是单个用户的密文,则其自举密钥是对应的如果Ci是累加公钥的密文,则其自举密钥是对应的
2)该过程实现联合密文同态计算,其中是联合密文的计算密钥;
用户集合更新时,需要所有用户更新计算密钥和自举密钥。


2.根据权利要求1所述的密文长度固定的多密钥全同态加密方法,其特征在于,
对于TFHE型定长MKFHE,其具体的加密方法是:
·HDTMK.Setup(1λ)→pp=(ppLWE,ppGSW):
LWE.Setup(1λ)→ppLWE=(η,χ,α,Bks,dks,B);
GSW.Setup(1λ)→ppGSW=(N,φ,α,B,d,y),其中,B,y随机产生的公用变量;
·HDTMK.KeyGen(pp)→(pki,ski,pkBK,i,skBK,i):
LWE.KeyGen(pp)→{pki=Ai,ski=si};
RGSW.KeyGen(pp)→{pkBK,i=Zi,skBK,i=zi};
当所有用户都完成HDTMK.KeyGen(params)程序之后,运行累加计算密钥生成算法;如果方案中有用户更新,则重新运行密钥生成算法;

1)公钥累加:给定k个用户的公钥b1,...,bk生成累加公钥



累加自举公钥:给定k个用户的自举公钥d1,...,dk生成累加自举公钥



2)用户累加自举密钥:输入累加自举公钥用户私钥输出单用户的累加自举密钥其中i∈[k],j∈[n];
3)用户累加计算密钥:输入累加公钥RGSW密文的私钥zi,令生成单用户的累加转化密钥其中i∈[k];
·HDTMK.Enc(pk,μ):输入明文μ,用户公钥pk,运行
·HDMK.Dec((sk1,...,skk),ct):输入密文输入密钥(sk1,...,sk),返回使得最小的明文比特μ′∈{0,1};
·输入密文和自举密钥集合转化密钥集合使用如下自举过程实现同态运算:
1)云端通过生成累加密文的累加转化密钥云端通过生成累加密文的累加自举密钥其中j∈[n]...

【专利技术属性】
技术研发人员:周潭平刘文超刘尧吴旭光车小亮张敏情韩益亮杨晓元
申请(专利权)人:中国人民武装警察部队工程大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1