[發明專利]密文長度固定的多密鑰全同態加密方法有效
| 申請號: | 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.szxzyx.cn/pat/books/202011153928.5/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種測距式自動對焦打標方法
- 下一篇:一種地下綜合管廊自動除濕系統





