),1 < 4 <滬(化),求得屯,得到RSA私鑰(屯,隊)。
[0026] 步驟S102中,所述數(shù)據(jù)使用者User利用公鑰(ei,Ni)對乘法計算函數(shù)匕中所需 要的所述數(shù)據(jù)使用者的數(shù)據(jù)User(&taFi)進行加密,形成對應乘法計算函數(shù)匕所需要的 所述數(shù)據(jù)使用者的加密數(shù)據(jù)RSACUseK&MFi)),將乘法計算函數(shù)匕及對應其所需要的 所述數(shù)據(jù)使用者的加密數(shù)據(jù)RSA(User(dataFi ))發(fā)送至云端;
[0027] 例如,若乘法計算函數(shù)匕需用到數(shù)據(jù)使用者的數(shù)據(jù)UsLT(dataFi),則用(ei,Ni)加 密乘法計算函數(shù)匕所需的數(shù)據(jù)使用者的數(shù)據(jù)USu'(dataFi);若乘法計算函數(shù)Fk需用到使 用者的數(shù)據(jù)User(dataFk),則用(ek,Nk)加密乘法計算函數(shù)Fk所需用到的數(shù)據(jù)使用者的數(shù) 據(jù)Uscr(dataFk)。
[0028] 步驟S103中,所述數(shù)據(jù)提供者7f利用公鑰(ei,Ni)對乘法計算函數(shù)Fi中所需要 的所述數(shù)據(jù)提供者的數(shù)據(jù)TT^data)進行加密,形成對應乘法計算函數(shù)Fi所需要的所述數(shù) 據(jù)提供者的加密數(shù)則RSA(77(data)),將乘法計算函數(shù)Fi所需要的所述數(shù)據(jù)提供者的加 密數(shù)據(jù)RSA(77 (data))發(fā)送至云端;
[0029] 例如:若乘法計算函數(shù)匕需用到數(shù)據(jù)提供者T/和#的數(shù)據(jù),則數(shù)據(jù)提供者#和T;2 利用公鑰(ei,Ni)加密各自擁有且乘法計算函數(shù)匕需要的數(shù)據(jù)。
[0030] 步驟S104中,根據(jù)所述乘法計算函數(shù)Fi,所述云端對加密數(shù)據(jù)進行乘法運算, 得到k個乘法計算函數(shù)Fi的加密運算結(jié)果RSA(Fi(result)),將k個所述加密運算結(jié)果 RSA(Fi(result))發(fā)送至所述數(shù)據(jù)使用者,所述加密數(shù)據(jù)包括所述數(shù)據(jù)使用者的加密數(shù)據(jù) RSA(User(dataFi ))和所述數(shù)據(jù)提供者的加密數(shù)據(jù)RSACT/1 (data));
[0031] 例如:若乘法計算函數(shù)?:是要求計算數(shù)據(jù)提供者對的數(shù)據(jù)TKdata)、數(shù) 據(jù)提供者對的數(shù)據(jù)(data)和數(shù)據(jù)使用者的數(shù)據(jù)User(dataFi )的乘積,則云端 計算數(shù)據(jù)提供者對,對和使用者數(shù)據(jù)進行加密后數(shù)據(jù)的乘積:RSA^Mdata);)-
,并將加密運算結(jié)果RSA的(result))返回給 數(shù)據(jù)使用者。其中.Ti^data)灰小屈于數(shù)據(jù)提供者T,1且乘法計算函數(shù)匕所需要的數(shù)據(jù); RSApiHdata);)表示利用RSA加密屬于數(shù)據(jù)提供者邛巨乘法計算函數(shù)R所需要的數(shù)據(jù)后 的加密數(shù)據(jù);User(da1;aFi)表示乘法計算函數(shù)匕所需要的且屬于數(shù)據(jù)使用者的數(shù)據(jù)。
[0032] 步驟S105中,在所述數(shù)據(jù)使用者接收到k個乘法計算函數(shù)匕的加密運算結(jié) 果RSA^kesult))后,所述數(shù)據(jù)使用者同時解密k個乘法計算函數(shù)匕的加密運算結(jié)果 RSA(Fi(result)),得到每個乘法計算函數(shù)?1的解密運算結(jié)果。
[0033] 在本實施例中,如圖2和圖3,所述數(shù)據(jù)使用者同時解密k個乘法計算函數(shù)匕為所 述數(shù)據(jù)使用者基于BatchRSA技術(shù)進行同時解密,BatchRSA技術(shù)為批量處理RSA技術(shù),具 體包括如下步驟:
[0034] 向上過濾階段:從下向上構(gòu)造Batch樹,每個葉節(jié)點的樹枝為一個公鑰,公鑰指數(shù) 為E-ei,內(nèi)節(jié)點的公鑰指數(shù)值為其左右孩子公鑰指數(shù)值的乘積E- ^ ?EK,每個加密密文 q在與之相對應公鑰ei的葉結(jié)點上,且每個內(nèi)節(jié)點c<-C^R C& ;
[0035] 求冪階段:計算得到根節(jié)i
[0036]向下過濾階段:取X使其滿足:X=0(modEJ和X=1(modEK),根據(jù)中 國剩金定理CRT椎得X,今X,=X/E,和X"=(X-1) /EK,每個內(nèi)節(jié)點mx等價于 _
^ mL -m/mK遞歸,求得每個明文 h表示第i個解 密后的明文。
[0037] 在客戶端中的數(shù)據(jù)使用者根據(jù)各個乘法計算函數(shù)產(chǎn)生對應的公鑰,并利用各個乘 法計算函數(shù)對應的公鑰對各個乘法計算函數(shù)所需要的數(shù)據(jù)使用者的數(shù)據(jù)進行加密發(fā)送至 云端,同時數(shù)據(jù)提供者也利用各個乘法計算函數(shù)對應的公鑰對各個乘法計算函數(shù)所需要的 數(shù)據(jù)提供者的數(shù)據(jù)進行加密發(fā)送至云端,云端根據(jù)各個乘法計算函數(shù)對加密的數(shù)據(jù)進行加 密運算發(fā)送給客戶端中的數(shù)據(jù)使用者,數(shù)據(jù)使用者在接收到所有的乘法計算函數(shù)的加密運 算結(jié)果后,同步解密得到所有數(shù)據(jù)。能夠滿足云端對密文數(shù)據(jù)進行乘法運算操作且得不到 數(shù)據(jù)的信息,同時提高了數(shù)據(jù)使用者對多個從云端返回的加密計算結(jié)果同時解密,提升了 計算效率。
[0038] 圖4示出了本發(fā)明實施例提供的云計算中基于BatchRSA的乘法運算系統(tǒng)的原理 圖,所述系統(tǒng)包括:RSA公鑰生成單元41、數(shù)據(jù)使用者的數(shù)據(jù)加密單元42、數(shù)據(jù)提供者的數(shù) 據(jù)加密單元43、乘法運算單元44和解密運算單元45。具體描述如下 :
[0039] RSA公鑰生成單元41用于對k個乘法計算函數(shù)Fi分別產(chǎn)生一個對應的RSA公鑰 (ei,隊),將所述RSA公鑰(ei,隊)分別發(fā)送至對應乘法計算函數(shù)匕中所包括的數(shù)據(jù)提供者 771,其中,k,i,j,n均為自然數(shù)、ei關(guān)ei且1彡i,j彡k。
[0040] 所述RSA公鑰生成單元通過對所述乘法計算函數(shù)Fi(1 < i < k)選取兩個大素數(shù) Pi,Qi,計算出隊=口仏,屮(1^) =(Pi-iXqi-1);隨機選取一個整數(shù)ep其中,ei關(guān)e』、 1彡i,j彡k且i關(guān)j,并滿足1 <ej<屮(化)_ 1 ,向,屮(^)) = 1,得到RSA公鑰(ei, 隊)。
[0041] 所述RSA公鑰生成單元包括產(chǎn)生一個與RSA公鑰(ei,隊)互為密鑰的RSA 私鑰(屯,隊),通過對所述乘法計算函數(shù)FJ1彡i彡k)選取兩個大素數(shù)Pi,qi,計 算出隊=口4,,、. .^
,、-u -, , 機選取一個整數(shù)ei,其中,ei關(guān)e』、 1彡i,j彡k且i關(guān)j,并滿足
丨根據(jù) eA= 1mod(p(Ni),1 <屮 < 少(1^),求得屯,得到RSA私鑰(屯,隊)。
[0042] 數(shù)據(jù)使用者的數(shù)據(jù)加密單元42用于所述數(shù)據(jù)使用者User利用公鑰(ei,隊)對乘 法計算函數(shù)匕中所需要的所述數(shù)據(jù)使用者的數(shù)據(jù)UseitdataFi)進行加密,形成對應乘法 計算函數(shù)匕所需要的所述數(shù)據(jù)使用者的加密數(shù)則RSACUsertdatcVi)),將乘法計算函數(shù) 匕及對應其所需要的所述數(shù)據(jù)使用者的加密數(shù)掘RSA(User(dataFi ))發(fā)送至云端。
[0043] 例如,若乘法計算函數(shù)匕需用到數(shù)據(jù)使用者的數(shù)據(jù)UsLT(dataFi),則用(ei,Ni)加 密乘法計算函數(shù)F1所需的數(shù)據(jù)使用者的數(shù)據(jù)Uwt'(dataFi);若乘法計算函數(shù)^需用到使 用者的數(shù)據(jù)User(dataFk),則用(ek,Nk)加密乘法計算函數(shù)Fk所需用到的數(shù)據(jù)使用者的數(shù) 據(jù)Uscr(dat:aFk)。
[0044] 數(shù)據(jù)提供者的數(shù)據(jù)加密單元43用于所述數(shù)據(jù)提供者77利用公鑰(ei,隊)對乘法 計算函數(shù)匕中所需要的所述數(shù)據(jù)提供者的數(shù)據(jù)TfCdata)進行加密,形成對應乘法計算函 數(shù)匕所需要的所述數(shù)據(jù)提供者的加密數(shù)據(jù)RSA(77(data)),將乘法計算函數(shù)匕所需要的 所述數(shù)據(jù)使用者的加密數(shù)據(jù)RSAafCdata))發(fā)送至云端。
[0045] 例如:若乘法計算函數(shù)Fi需用到數(shù)據(jù)提供者Ti1和Tf的數(shù)據(jù),則數(shù)據(jù)提供者Ti1和 If利用公鑰(ei,Ni)加密各自擁有且乘法計算函數(shù)匕需要的數(shù)據(jù)。
[0046] 乘法運算單元44用于根據(jù)所述乘法計算函數(shù)&,所述云端對加密數(shù)據(jù)進行乘法運 算,得到k個乘法計算函數(shù)Fi的加密運算結(jié)果RSA(Fi(result)),將k個聽述加密運算結(jié)果RSA(Fi(result))發(fā)送至所述數(shù)據(jù)使用者,所述加密數(shù)據(jù)包括所述數(shù)據(jù)使用者的加密數(shù)據(jù) RSA(User(data.Fi ))和所述數(shù)據(jù)提供者的加密數(shù)據(jù)RSA(Jf(dcito))。
[0047]例如:若乘法計算函數(shù)匕是要求計算數(shù)據(jù)提供者邛的數(shù)據(jù).TfCdata)、數(shù) 據(jù)提供者Tf的數(shù)據(jù)Tf(data):和數(shù)據(jù)使用者的數(shù)據(jù)User(dataFi )的乘積,則云端 計算數(shù)據(jù)提供者對,??和使用者數(shù)據(jù)進行加密后數(shù)據(jù)的乘積:RSAf^Hdata))-RSA^Mdata)) .RSA(User(dataFi ),并將加密運算結(jié)果RSA(Fi(result))返回給數(shù) 據(jù)使用者。其中,TKdata)表示屬于數(shù)據(jù)提供者-!!1且乘