[发明专利]密文长度固定的多密钥全同态加密方法有效
申请号: | 202011153928.5 | 申请日: | 2020-10-26 |
公开(公告)号: | CN112543091B | 公开(公告)日: | 2022-10-14 |
发明(设计)人: | 周潭平;刘文超;刘尧;吴旭光;车小亮;张敏情;韩益亮;杨晓元 | 申请(专利权)人: | 中国人民武装警察部队工程大学 |
主分类号: | H04L9/00 | 分类号: | H04L9/00;H04L9/08;H04L9/40 |
代理公司: | 西安智萃知识产权代理有限公司 61221 | 代理人: | 方力平 |
地址: | 710086 陕西省西*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 长度 固定 密钥 同态 加密 方法 | ||
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(p1′,...,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)用户累加自举密钥:输入累加自举公钥LWE密文的私钥si∈Zn,输出单用户的累加自举密钥其中i∈[k],j∈[n];
3)用户累加计算密钥:输入累加公钥RGSW密文的私钥zi,令ti=:(zi,0,-zi,w-1,...,-zi,1)∈BN,生成单用户的累加转化密钥其中i∈[k];
·HDTMK.Enc(pk,μ):输入明文μ,用户公钥pk,运行LWE.Enc(pk,μ)→ct=(b,a)∈Tn+1;
·HDMK.Dec((sk1,...,skk),ct):输入密文ct=(b,a)∈Tn+1,输入密钥(sk1,...,skk),返回使得最小的明文比特μ′∈{0,1};
·输入密文ct=(b′,a′)∈Tn+1和自举密钥集合转化密钥集合使用如下自举过程实现同态运算:
1)云端通过生成累加密文的累加转化密钥云端通过生成累加密文的累加自举密钥其中j∈[n],HomAddk(,)是k个l位TGSW密文的同态加法算法;
对于固定的用户集,云端只需要计算一次和之后将其作为公共变量给出;
2)密文刷新:给定密文c=(b′,a′)∈Tn+1和对应的计算密钥或运行如下的同态累加算法:
2-1.输入密文c=(b′,a′)∈Tn+1,返回和以及对应的自举密钥
2-2.初始化RLWE密文其中
令对于j=1到n,运行:
(1)
(2)
...
其中选择最大电路CMux(C,d1,d0)沿用CGGI16的表达,输入一个控制TGSW密文C和两输入的RLWE密文数据d1,d0,输出RLWE的密文C*(d1-d0)+d0,*是GSW密文和BGV密文的混合同态乘法运算;
2-3.输出
3)密钥转化过程:最后一步将ACC转化为LWE密文,并运行密钥转化算法;
3-1.输入密文ACC=(c0,c1)∈T2,令b″是多项式c0中的常数项,a″是由多项式c1的系数组成的向量;输出LWE密文
3-2.令运行密钥转化算法,输出密文
·HDTMK.NAND(c1,c2):利用自举过程构造同态与非门NAND电路,HDTMK.NAND(c1,c2)=HDTMK.Boot((0,5/8)-c1-c2)。
3.根据权利要求1所述的密文长度固定的多密钥全同态加密方法,其特征在于,
对于CKKS型定长MKFHE,其具体的加密方法是:
·HDCMK.Setup(1λ):输入安全参数λ,选择一个为2的幂次的整数N,令χkey,χerr,χenc分别为私钥、噪声和加密过程使用的R=Z[X]/(XN+1)上的分布;选择素数P,p和层数L,令密文模数ql=pl,其中1≤l≤L,随机选择输出公共参数pp=(N,χkey,χerr,χenc,L,P,ql,a,a′);
·HDCMK.KeyGen(pp):输入公共参数,选取s←χkey,e←χerr,输出用户公钥pk为选取e′←χerr,输出用户计算公钥pkevk为
当所有用户都完成HDCMK.KeyGen(pp)程序之后,运行累加计算密钥生成算法;如果方案中有用户更新,则重新运行密钥生成算法;
·
1)累加公钥:给定k个用户的公钥b1,...,bk生成CKKS型累加公钥
2)累加计算公钥:给定k个用户的计算公钥b1′,...,bk′生成CKKS型累加公钥
3)累加计算密钥部件生成:
生成用户i的密文集合刷新密钥
生成用户i生成转化密钥的部件其中es←χerr,输出
输出移位密钥共轭密钥
4)云端生成计算密钥
当系统的用户集合更新时,HDCMK系统不使用自举,而用累加的密钥转化过程实现密文对应的密钥集合的刷新,即将老集合的密文转化为新集合的密文;
·HDCMK.Enc(pk,m):c=CKKS.Encpk(m);
·HDCMK.Dec((sk1,...,skk),c):输入l层的密文c,输出m′=<c,sk1+...+skk>(modql);
当系统的用户集合更新时,HDCMK系统不使用自举,而用累加的密钥转化过程实现密文对应的密钥集合的刷新,即,将旧集合的密文转化为新集合的密文;
·输入密文c′=(b′,a′),构造对应的累加转化密钥输出
·同态运算:如果输入同态运算的密文对应的公钥不相同时,利用将其转化到相同公钥,之后再进行同态运算;
-HDCMK.Add(ct,ct′):CKKS.Add(ct,ct′)
-HDCMK.CMult(a,ct):CKKS.CMult(a,ct)
-
-
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民武装警察部队工程大学,未经中国人民武装警察部队工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011153928.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种测距式自动对焦打标方法
- 下一篇:一种地下综合管廊自动除湿系统