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