本發(fā)明屬于密文數(shù)據(jù)處理技術(shù)領(lǐng)域,更為具體地講,涉及一種全同態(tài)加密密文除法實現(xiàn)方法。
背景技術(shù):
隨著云計算的發(fā)展,越來越多的數(shù)據(jù)需要上傳到云服務(wù)器來存儲和處理。在用戶上傳數(shù)據(jù)到云服務(wù)器,云服務(wù)器存儲數(shù)據(jù),并完成基于數(shù)據(jù)的相關(guān)計算的過程中,存儲在云服務(wù)器上的數(shù)據(jù),可能會暴露用戶的隱私。因此,在上傳數(shù)據(jù)前,對數(shù)據(jù)進(jìn)行加密是保護(hù)用戶隱私的有效手段。
但是,加密數(shù)據(jù)會使得數(shù)據(jù)的利用變得更加困難。全同態(tài)加密算法可以直接對加密的數(shù)據(jù)(加密密文)進(jìn)行多次的加法和乘法運算。但是在許多的應(yīng)用中,對于加密密文除了需要進(jìn)行加法和乘法運算外,還需要進(jìn)行其它的操作。在加密數(shù)據(jù)庫(cryptDB)中,我們不僅需要對加密密文進(jìn)行查詢,還需要利用加密密文進(jìn)行統(tǒng)計分析,這樣,加密數(shù)據(jù)庫(cryptDB)才能更加完備,以真正實用化。在加密數(shù)據(jù)庫過程中,加密密文除法運算是數(shù)據(jù)庫必須具備的基本功能之一。在加密密文處理過程中,我們需要使用加密密文的均值進(jìn)行加密復(fù)合信號的解壓。這樣加密密文處理的速度可以得到極大提高。在大規(guī)模的數(shù)據(jù)統(tǒng)計和分析過程中,加密密文的除法運算也是基本操作之一?;诩用苊芪牡臋C器學(xué)習(xí),可以在保護(hù)用戶和數(shù)據(jù)隱私的前提下,直接利用加密密文進(jìn)行數(shù)據(jù)的分類,分析和預(yù)測分析。在基于密文的機器學(xué)習(xí)算法中,大量的算法涉及到除法運算。因此,加密密文的除法運算是基于密文機器學(xué)習(xí)的基本運算。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種全同態(tài)加密密文除法實現(xiàn)方法,以實現(xiàn)加密(密文)數(shù)據(jù)在云服務(wù)器中進(jìn)行除法運算。
為實現(xiàn)上述發(fā)明目的,本發(fā)明全同態(tài)加密密文除法實現(xiàn)方法,其特征在于,包括以下步驟:
(1)、將需要上傳到云服務(wù)器的數(shù)據(jù)編碼為多項式,多項式的系數(shù)為0或1,以滿足全同態(tài)加密要求;
(2)、首先,用戶本地對需要在云服務(wù)器進(jìn)行除法計算的兩個數(shù)據(jù)p1、p2的多項式q1(x)、q2(x)分別進(jìn)行全同態(tài)加密,得到的密文分別為E(q1(x))、E(q2(x)),其中:
E(q1(x))=a0+a1x+…+am-1xm-1
E(q2(x))=b0+b1x+…+bn-1xn-1 (1);
其中,E表示基于NTRU(Number Theory Reseach Unit)的全同態(tài)加密,密文E(q1(x))也為多項式,a1~am-1為多項式的系數(shù);密文E(q2(x))也為多項式,b1~bn-1為多項式的系數(shù);x為多項式的自變量;
然后,計算冪指數(shù)j,冪指數(shù)j為整數(shù),并且使得數(shù)據(jù)p2的滿足
2j-1≤p2≤2j (2);
最后,得到加密密文E(q1(x))、E(q2(x))以及冪指數(shù)j上傳至云服務(wù)器;
(3)、快速傅里葉變換的密文計算
在云服務(wù)器中,構(gòu)建一個快速傅里葉變換密文計算函數(shù)DFTω,T(E(q(x)),用于計算加密密文E(q(x))在每個T次本原單位元根ω處的密文,ωT=1,T根據(jù)具體的加密方案確定,且T為2的整數(shù)次冪,加密密文E(q(x))為多項式,可表示為:
E(q(x))=c0+c1x+…+cl-1xl-1;
其中,所述T<l/2;
對于加密密文E(q(x))的快速傅里葉變換的密文計算為:
3.1)、如果T=1,則直接返回加密密文E(q(x))的多項式各項系數(shù),多項式各項系數(shù)組成一個向量,作為加密密文E(q(x))在每個T次本原單位元根處的密文,表示為DFTω,T(E(q(x));
3.2)、如果T≠1,則:
3.2.1)、計算加密密文E(q(x))的第t項和t+T/2項密文的和,其中,t=0,1,2,…,T-1,得到計算結(jié)果:
3.2.2)、計算加密密文E(q(x))的第t項和t+T/2項密文的差,其中,t=0,1,2,…,T-1,得到計算結(jié)果:
3.2.3)、將步驟3.2.1)獲得的結(jié)果中的t項分別與T次本原單位元根ω的t次冪相乘求和,得到計算結(jié)果:
3.2.4)、對計算結(jié)果D(x)、F(x)分別進(jìn)行離散傅里葉變換,即:
DFTω,T:D(x)→(D(1),D(ω),D(ω2),…,D(ωT-1))
DFTω,T:F(x)→(F(1),F(ω),F(ω2),…,F(xiàn)(ωT-1)) (6);
這樣得到兩個向量(D(1),D(ω),D(ω2),…,D(ωT-1))、(F(1),F(ω),F(ω2),…,F(xiàn)(ωT-1));
3.2.5)、將步驟3.2.4)得到的兩個向量的分量進(jìn)行交叉,構(gòu)成一個新的向量,即加密密文E(q(x))在每個T次本原單位元根處的密文,表示為DFTω,T(E(q1(x)),即:
DFTω,T(E(q(x))=(D(1),F(1),D(ω),F(ω),…D(ωT-1),F(ωT-1)) (7);
(4)、密文乘積計算
在云服務(wù)器中,根據(jù)步驟(3)構(gòu)建的快速傅里葉變換密文計算函數(shù),可以得到任意兩個多項式q′(x)、E(q″(x))的密文乘積E(q′(x))E(q″(x))為:
(5)、計算多項式E(r(x))
在云服務(wù)器中,根據(jù)以下步驟計算多項式E(r(x)):
5.1)、如果加密密文E(q1(x))的次數(shù)小于加密密文E(q2(x))的次數(shù),則直接返回E(r(x))=E(q1(x));
5.2)、如果加密密文E(q1(x))的次數(shù)大于等于加密密文E(q2(x))的次數(shù),則:
5.2.1)、令k為加密密文E(q1(x))減去加密密文E(q2(x))得到的多項式的冪次;
5.2.2)、計算加密密文E(q1(x))的逆(即多項式的逆),記為即:
其中,k1是加密密文E(q1(x))的冪次,計算時,將作為公式(8)中的q′(x),作為公式(8)中的q″(x),按照公式(8)進(jìn)行計算;
計算加密密文E(q2(x))的逆(即多項式的逆),記為即:
其中,k2是加密密文E(q2(x))的冪次,計算時,將作為公式(8)中的q′(x),作為公式(8)中的q″(x),按照公式(8)進(jìn)行計算;
5.2.3)、計算多項式E*(h(x))
多項式E*(h(x))等于模(mod)xk+1;
5.2.4)、計算多項式E(r(x))
E(r(x))=E(q1(x))-E(h(x))E(q2(x)) (11);
其中:
E(h(x))=revkE*(h(x)) (12);
計算時,將E(h(x))作為公式(8)中的E(q′(x)),E(q2(x))作為公式(8)中的q″(x),按照公式(8)進(jìn)行計算;
(6)、在云服務(wù)器中,根據(jù)以下公式,計算數(shù)據(jù)p2的倒數(shù)密文:
Ei(r(x))=(E(r(x)))i (13);
其中,冪次z根據(jù)具體方案確定;
(7)、在云服務(wù)器中,根據(jù)以下公式,計算出:
然后,發(fā)送回用戶。
本發(fā)明的目的是這樣實現(xiàn)的。
本發(fā)明提出了一種新的全同態(tài)加密密文除法實現(xiàn)方法,可以實現(xiàn)對任意大小實數(shù)(數(shù)據(jù))的加密并對兩個加密密文執(zhí)行密文同態(tài)除法運算。用戶上傳數(shù)據(jù)時,對數(shù)據(jù)進(jìn)行多項式編碼,然后進(jìn)行全同態(tài)加密,將加密密文以及被除數(shù)的冪指數(shù)上傳到云服務(wù)器,云服務(wù)器可以直接對上傳到服務(wù)器上的任意兩個加密密文執(zhí)行除法運算,然后,云服務(wù)器將計算的結(jié)果返回給用戶,用戶使用加密算法的私鑰進(jìn)行解密,獲取明文計算結(jié)果。
附圖說明
圖1是本發(fā)明全同態(tài)加密密文除法實現(xiàn)方法一種具體方式流程圖;
圖2是圖1所示的基于編碼的數(shù)據(jù)多項式表示的流程圖;
圖3是圖1所示的快速傅里葉變換的密文計算流程圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明的具體實施方式進(jìn)行描述,以便本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明。需要特別提醒注意的是,在以下的描述中,當(dāng)已知功能和設(shè)計的詳細(xì)描述也許會淡化本發(fā)明的主要內(nèi)容時,這些描述在這里將被忽略。
圖1是本發(fā)明全同態(tài)加密密文除法實現(xiàn)方法一種具體方式流程圖。
在本實施例中,如圖1所示,本發(fā)明包括以下步驟:
步驟S1:將需要上傳到云服務(wù)器的數(shù)據(jù)編碼為多項式,多項式的系數(shù)為0或1,以滿足全同態(tài)加密要求。
對任意大小的實數(shù)即數(shù)據(jù)u需要上傳到云服務(wù)器前,進(jìn)行全同態(tài)加密時,需要首先使用以下編碼方式對實數(shù)進(jìn)行編碼。
在本實施例中,如圖2所示,編碼分為兩步,即步驟S101:對于任意一個數(shù)據(jù)u,我們首先利用補碼和比例數(shù)格式編碼結(jié)合的方法進(jìn)行編碼,將數(shù)據(jù)u轉(zhuǎn)化成一個正整數(shù)。步驟102:對轉(zhuǎn)化后得到的正整數(shù),使用基于特征為2的有限域進(jìn)行第二次編碼。經(jīng)過這樣的編碼后,該數(shù)據(jù)可以編碼為多項式u(x),該多項式可表示為:
u(x)=d0+d1x+…+dh-1xh-1
其中,多項式u(x)的各項系數(shù)d0,d1,...,dh-1為0或1。經(jīng)過這樣的轉(zhuǎn)換以后,得到的多項式滿足全同態(tài)加密要求。
步驟S2:首先,用戶本地對需要在云服務(wù)器進(jìn)行除法計算的兩個數(shù)據(jù)p1、p2的多項式q1(x)、q2(x)分別進(jìn)行全同態(tài)加密,得到的密文分別為E(q1(x))、E(q2(x)),其中:
E(q1(x))=a0+a1x+…+am-1xm-1
E(q2(x))=b0+b1x+…+bn-1xn-1 (1);
其中,E表示全同態(tài)加密,密文E(q1(x))也為多項式,a1~am-1為多項式的系數(shù);密文E(q2(x))也為多項式,b1~bn-1為多項式的系數(shù);x為多項式的自變量;
然后,計算冪指數(shù)j,冪指數(shù)j為整數(shù),并且使得數(shù)據(jù)p2的滿足
2j-1≤p2≤2j (2);
最后,得到加密密文E(q1(x))、E(q2(x))以及冪指數(shù)j上傳至云服務(wù)器;
步驟S3:快速傅里葉變換的密文計算
在云服務(wù)器中,構(gòu)建一個快速傅里葉變換密文計算函數(shù)DFTω,T(E(q(x)),用于計算加密密文E(q(x))在每個T次本原單位元根ω處的密文,ωT=1,T根據(jù)具體的加密方案確定,且T為2的整數(shù)次冪,加密密文E(q(x))為多項式,可表示為:
E(q(x))=c0+c1x+…+cl-1xl-1;
其中,所述T<l/2。
在本實施例中,如圖3所示,對于加密密文E(q(x))的快速傅里葉變換的密文計算為:
步驟S301:如果T=1,則直接返回加密密文E(q(x))的多項式各項系數(shù),多項式各項系數(shù)組成一個向量,作為加密密文E(q(x))在每個T次本原單位元根處的密文,表示為DFTω,T(E(q(x));
步驟302:如果T≠1,則:
步驟3021:計算加密密文E(q(x))的第t項和t+T/2項密文的和,其中,t=0,1,2,…,T-1,得到計算結(jié)果:
步驟3022:計算加密密文E(q(x))的第t項和t+T/2項密文的差,其中,t=0,1,2,…,T-1,得到計算結(jié)果:
步驟3023:將步驟3021)獲得的結(jié)果中的t項分別與T次本原單位元根ω的t次冪相乘求和,得到計算結(jié)果:
步驟3024:對計算結(jié)果D(x)、F(x)分別進(jìn)行離散傅里葉變換,即:
DFTω,T:D(x)→(D(1),D(ω),D(ω2),…,D(ωT-1))
DFTω,T:F(x)→(F(1),F(ω),F(ω2),…,F(xiàn)(ωT-1)) (6);
這樣得到兩個向量(D(1),D(ω),D(ω2),…,D(ωT-1))、(F(1),F(ω),F(ω2),…,F(xiàn)(ωT-1));
步驟3025:將步驟3024得到的兩個向量的分量進(jìn)行交叉,構(gòu)成一個新的向量,即加密密文E(q(x))在每個T次本原單位元根處的密文,表示為DFTω,T(E(q1(x)),即:
DFTω,T(E(q(x))=(D(1),F(1),D(ω),F(ω),…D(ωT-1),F(ωT-1)) (7);
步驟S4:密文乘積計算
在云服務(wù)器中,根據(jù)步驟S3構(gòu)建的快速傅里葉變換密文計算函數(shù),可以得到任意兩個多項式q′(x)、E(q″(x))的密文乘積E(q′(x))E(q″(x))為:
步驟S5:計算多項式E(r(x))
在云服務(wù)器中,根據(jù)以下步驟計算多項式E(r(x)):
5.1)、如果加密密文E(q1(x))的次數(shù)小于加密密文E(q2(x))的次數(shù),則直接返回E(r(x))=E(q1(x));
5.2)、如果加密密文E(q1(x))的次數(shù)大于等于加密密文E(q2(x))的次數(shù),則:
5.2.1)、令k為加密密文E(q1(x))減去加密密文E(q2(x))得到的多項式的冪次;
5.2.2)、計算加密密文E(q1(x))的逆(即多項式的逆),記為即:
其中,k1是加密密文E(q1(x))的冪次,計算時,將作為公式(8)中的q′(x),作為公式(8)中的q″(x),按照公式(8)進(jìn)行計算;
計算加密密文E(q2(x))的逆(即多項式的逆),記為即:
其中,k2是加密密文E(q2(x))的冪次,計算時,將作為公式(8)中的q′(x),作為公式(8)中的q″(x),按照公式(8)進(jìn)行計算;
5.2.3)、計算多項式E*(h(x))
多項式E*(h(x))等于模(mod)xk+1;
5.2.4)、計算多項式E(r(x))
E(r(x))=E(q1(x))-E(h(x))E(q2(x)) (11);
其中:
E(h(x))=revkE*(h(x)) (12);
計算時,將E(h(x))作為公式(8)中的E(q′(x)),E(q2(x))作為公式(8)中的q″(x),按照公式(8)進(jìn)行計算;
步驟S6:在云服務(wù)器中,根據(jù)以下公式,計算數(shù)據(jù)p2的倒數(shù)密文:
Ei(r(x))=(E(r(x)))i (13);
其中,冪次z根據(jù)具體方案確定,
步驟S7:在云服務(wù)器中,根據(jù)全同態(tài)加密的乘法同態(tài)運算,依據(jù)以下公式,計算出:
然后,發(fā)送回用戶。
上述全同態(tài)加密密文除法實現(xiàn)方法滿足CPA安全,即選擇明文安全性。
應(yīng)用:
(1)、在加密的數(shù)據(jù)庫系統(tǒng)中,我們可以使用上述的同態(tài)加密除法實現(xiàn)方法,實現(xiàn)針對加密數(shù)據(jù)的相關(guān)統(tǒng)計分析。
用戶上傳加密的數(shù)據(jù)(使用全同態(tài)加密算法),云服務(wù)器做相關(guān)的統(tǒng)計分析計算。假設(shè)需要統(tǒng)計的數(shù)據(jù)為x1,x2,...,xn,云服務(wù)器上對應(yīng)的密文是E(x1),E(x2),...,E(xn),云服務(wù)器根據(jù)上述的全同態(tài)密文除法運算可以求解均值,期望,協(xié)方差和方差等。云服務(wù)器完成計算后,將結(jié)果返回給用戶,用戶用私鑰解密,就可以得到計算結(jié)果。
(2)、在機器學(xué)習(xí)領(lǐng)域,特別是需要利用加密數(shù)據(jù)實現(xiàn)基于密文的機器學(xué)習(xí)領(lǐng)域,很多算法都需要使用密文的除法計算。例如在基于Fisher分類器的數(shù)據(jù)分類算法中,我們在計算各類樣本均值向量Fisher準(zhǔn)則函數(shù)和選定分界閾值點等都需要使用密文數(shù)據(jù)除法運算。在多層感知機分類模型和反饋式神經(jīng)網(wǎng)絡(luò)算法中Logistic函數(shù)和局部梯度等的計算都需要使用密文數(shù)據(jù)除法運算。
本發(fā)明除了可以使用在上述所舉的應(yīng)用示例外,還有很多其它涉及密文除法計算應(yīng)用。
盡管上面對本發(fā)明說明性的具體實施方式進(jìn)行了描述,以便于本技術(shù)領(lǐng)域的技術(shù)人員理解本發(fā)明,但應(yīng)該清楚,本發(fā)明不限于具體實施方式的范圍,對本技術(shù)領(lǐng)域的普通技術(shù)人員來講,只要各種變化在所附的權(quán)利要求限定和確定的本發(fā)明的精神和范圍內(nèi),這些變化是顯而易見的,一切利用本發(fā)明構(gòu)思的發(fā)明創(chuàng)造均在保護(hù)之列。