段淑敏,殷守林,張燕麗,王學(xué)穎
(沈陽師范大學(xué) 科信軟件學(xué)院,遼寧 沈陽 110034)
摘要:同態(tài)加密是一種加密形式,它允許特定類型的計算對密文進行加密,解密時對明文執(zhí)行匹配結(jié)果的操作可以獲得一個加密的結(jié)果,當(dāng)對位于遠程服務(wù)器上的數(shù)據(jù)做計算時,云供應(yīng)商有必要訪問原始數(shù)據(jù)并解密。為滿足企業(yè)信息的數(shù)據(jù)和算法的私密性需求,數(shù)據(jù)加密方法與防篡改硬件技術(shù)被使用。公開加密數(shù)據(jù)的計算上,隱私的建立成為必要條件。此時同態(tài)加密方法被使用且提出一種基于Paillier和RSA密碼體制的代理重加密技術(shù)。同態(tài)加密是一種無需解密即可在加密數(shù)據(jù)上進行計算的方法,與在原始數(shù)據(jù)上計算能夠獲得相同的結(jié)果,并通過使用代理重加密技術(shù)防止被選擇的密文受攻擊。
關(guān)鍵詞:云計算;同態(tài)加密;代理重加密技術(shù);數(shù)據(jù)安全
0引言
同態(tài)加密廣泛用于支持簡單聚合,對加密數(shù)據(jù)的數(shù)值計算以及私人信息檢索。同態(tài)加密理論的突破產(chǎn)生了全同態(tài)加密[1],能夠計算加密數(shù)據(jù)的任意函數(shù)。同態(tài)加密通常被認為是一種在加密數(shù)據(jù)基礎(chǔ)上解決數(shù)據(jù)庫查詢問題的關(guān)鍵方式。用于處理更復(fù)雜結(jié)構(gòu)數(shù)字數(shù)據(jù)和算法的隱私性需求呈指數(shù)形式增加,這正好平行于通信網(wǎng)絡(luò)及其設(shè)備的增長和它們能力的增長。為了數(shù)據(jù)的安全存儲和訪問,當(dāng)前技術(shù)提供了幾種保證數(shù)據(jù)隱私的方法如數(shù)據(jù)加密[23]和防篡改硬件[4]等。然而,當(dāng)私有數(shù)據(jù)使用同態(tài)加密公開計算或者修改函數(shù)、算法時,它們?nèi)匀豢梢詧?zhí)行,隱私也可得到確保。使用同態(tài)加密的系統(tǒng)可以計算與加密數(shù)據(jù)。
數(shù)據(jù)在發(fā)送到服務(wù)器端之前將會被加密,但是客戶端面臨一些問題,因為服務(wù)提供商需要執(zhí)行對數(shù)據(jù)的計算來回應(yīng)客戶端的請求,因此客戶端必須在執(zhí)行所需計算之前給服務(wù)器提供密鑰來解密數(shù)據(jù),這可能會影響存儲在云端的數(shù)據(jù)保密性。同態(tài)加密可以執(zhí)行加密數(shù)據(jù)的操作而無需解密[56]。提出這種方法的目的是解決托管在云計算中的數(shù)據(jù)安全問題。本文主要研究同態(tài)加密的應(yīng)用對于云計算的安全性,尤其在沒有解密的情況下執(zhí)行加密數(shù)據(jù)計算的可能性。
1云計算
云計算[7]是一個模型,能夠方便、按需訪問可配置的網(wǎng)絡(luò)計算資源共享池(如網(wǎng)絡(luò)、服務(wù)器、存儲應(yīng)用程序和服務(wù)),可以快速地配置工作環(huán)境,并能以消耗最小的管理工作或服務(wù)與提供商交互發(fā)布。關(guān)于云計算流量、安全和資源管理有很多問題,可以通過多種方式,在數(shù)據(jù)、網(wǎng)絡(luò)和存儲上保證云安全。同態(tài)加密方法給數(shù)據(jù)提供更加安全的保護[7],因為不涉及密鑰的管理。使用代理重加密技術(shù)防止被選擇的密文受到攻擊,所以該系統(tǒng)比現(xiàn)有系統(tǒng)更安全。
1.1新定義
通過云計算概念,對其給出新定義:對于可計算的信息技術(shù)模型由所有的信息技術(shù)組件構(gòu)成包括硬件[8]、軟件、網(wǎng)絡(luò)以及服務(wù)等,以便開發(fā)和通過因特網(wǎng)或者專用網(wǎng)絡(luò)云服務(wù)傳遞。這個定義在云計算中對于數(shù)據(jù)沒有安全定義。云供應(yīng)商,如IBM、谷歌和亞馬遜在他們的云平臺中使用虛擬化,在同一臺服務(wù)器中,它們可以共用存儲空間,也可以處理并發(fā)企業(yè)的虛擬化。
1.2云計算結(jié)構(gòu)模型
云計算系統(tǒng)可以分為兩部分:前端和后端。前端實現(xiàn)用戶與服務(wù)器交互,后端是服務(wù)器提供給用戶數(shù)據(jù),服務(wù)器和客戶端之間的網(wǎng)絡(luò)為中間件。圖1為云基本體系結(jié)構(gòu)。
2同態(tài)加密
同態(tài)加密指的是在加密過程中純文本和密文都被看作具有等效的代數(shù)函數(shù)。同態(tài)加密允許服務(wù)器在不知道原始明文情況下做加密數(shù)據(jù)的操作。數(shù)據(jù)保護基本流程如圖2所示。
同態(tài)加密允許在加密的數(shù)據(jù)上執(zhí)行復(fù)雜的數(shù)學(xué)運算而無需原始數(shù)據(jù)。對于明文X1和X2以及對應(yīng)的密文Y1和Y2,基于同態(tài)加密方案,已知Y1和Y2,就可以直接計算出X1ΘX2的值。密碼系統(tǒng)的乘法同態(tài)或者加法同態(tài)取決于運算符號Θ是乘還是加[910]。
以下重點介紹乘法同態(tài)加密。
一個同態(tài)加密方案是乘法的(其中m是明文的個數(shù)),如果:
Enc(xy)=Enc(x)Enc(y)
Enc(∏mi=1mi)=∏mi=1Enc(mi)
RSA加密系統(tǒng)過程:
第一步:密鑰產(chǎn)生KeyGen(p,q)
?、佥斎耄簆,q∈P
?、谟嬎悖簄=p×q,φ(n)=(p-1)(q-1)
③選擇一個數(shù)e使Gcd(e,φ(n))=1,確定一個d使e×d≈1modφ(n)。
?、茌敵觯?pk,sk)
公鑰:pk=(e,n);私鑰:sk=(d)
第二步:加密Enc(m,pk)
?、佥斎耄簃∈Zn
?、谟嬎悖篶=memodn
?、圯敵觯篶∈Zn
第三步:解密Dec(c,sk)
?、佥斎耄篶∈Zn
?、谟嬎悖簃=cdmodn
③輸出:m∈Zn
假設(shè)有兩個密碼C1和C2,而且:
C1=me1modn
C2=me2modn
C1C2=me1me2modn=(m1m2)emodn
因此,RSA密碼系統(tǒng)找到乘法同態(tài)加密的屬性,但是不符合好的安全概念,原因是:假設(shè)兩個密鑰C1和C2以及相對應(yīng)的信息m1和m2:
C1=me1modn
C2=me2modn
發(fā)送器把密鑰對(C1,C2)發(fā)送到云服務(wù)器上,服務(wù)器根據(jù)客戶要求執(zhí)行計算并發(fā)送加密之后的密文(C1×C2)到客戶。如果攻擊者攔截了這兩個使用相同密碼加密的密鑰,那么將會解密兩個客戶之間交流的全部信息,因為同態(tài)加密是乘法的,也就說密碼的積等于積的密碼。
3新系統(tǒng)設(shè)計
為防止密文信息從CCA泄露,提出了使用Paillier和RSA密碼體制的代理重加密算法[1112]。在同態(tài)加密體制中數(shù)據(jù)由私鑰加密,公鑰只有客戶端有。再次通過代理重加密算法獲得每次隨機密鑰生成的密碼數(shù)據(jù),如果攻擊者獲得一個密鑰,那么還需要另外一個不同于此的密鑰解密數(shù)據(jù)[1316]。即使攻擊者得到了這些數(shù)據(jù),也不能在客戶機和服務(wù)器之間解密得到明文。所以新系統(tǒng)比現(xiàn)有系統(tǒng)提供了更安全的保障。
3.1代理重加密算法
第一步:密鑰產(chǎn)生KeyGen(p,q)
①選擇兩個素數(shù)p,q
?、谟嬎鉵=p·q和φ(n)=(p-1)(q-1)
選擇數(shù)e使gcd(e,φ(n))=1
③確定一個d使e×d=1modφ(n)
?、艽砉€由Rpk=(e,n)產(chǎn)生,代理私鑰由Rsk=d產(chǎn)生。
第二步:加密Enc(c,Rpk)
令m是即將加密的消息,且m∈Zn
計算密文:Rc=m·e modn
第三步:解密Dec(Rc,Rsk)
密文:c∈Zn
計算消息:M=c·d modn
3.2基于Paillier算法提出的代理重加密
第一步:產(chǎn)生密鑰。
①隨機選擇兩個比較大且相互獨立的素數(shù)p,q。令(pq,(p-1)(q-1))=1
?、谟嬎鉵=pq和λ=1cm(p-1,q-1)
③選擇隨機整數(shù)g,使g∈Z*n2
④通過下面計算判斷模塊化的乘法逆元素是否存在,來確定n及劃分g的順序:
μ=(L(aλmodn2))-1modn
其中函數(shù)L被定義為L(u)=u-1/n
?、莨€密鑰為(n,g),私鑰密鑰為(λ,μ)
第二步:加密Enc(m,pk)
?、倭頼是要被加密的消息且m∈Zn
?、陔S機選擇r,使r∈Zn*
?、塾嬎忝芪模篶=gm·nrmodn2
第三步:代理重加密
?、儆嬎愎€和私鑰(Rsk,Rpk)
?、谥丶用苊芪挠蒔aillier算法生成并發(fā)送公鑰(Rpk)到云服務(wù)器
第四步:解密Dec(c,sk)
?、倜芪腸∈Zn*
?、谟嬎阆ⅲ?/p>
m=L(cλmodn2)/L(gλmodn2)modn
3.3基于RSA算法提出的代理重加密
第一步:產(chǎn)生密鑰。
?、龠x擇兩個素數(shù)p,q,計算n=pq和φ(n)=(p-1,q-1)
?、谶x擇整數(shù)e,使gcd(e,φ(n))=1
?、鄞_定d使e·d=1modφ(n)
?、芄€由(e,n)產(chǎn)生,私鑰由(d)產(chǎn)生
第二步:加密Enc(m,pk)
?、倭頼是要被加密的消息且m∈Zn
?、谟嬎忝芪模篶=memodn
第三步:代理重加密
①計算公鑰和私鑰(Rsk,Rpk)
?、谥丶用苊芪挠蒖SA算法生成并發(fā)送公鑰(Rpk)到云服務(wù)器
第四步:解密Dec(c,sk)
①密文c∈Zn
?、谟嬎阆ⅲ簃=cdmodn
4結(jié)論
本文使用同態(tài)加密技術(shù)在云端提供安全服務(wù)。同態(tài)加密是一個新的安全概念,能夠在不知道原始數(shù)據(jù)情況下對加密的數(shù)據(jù)提供計算結(jié)果,保證了數(shù)據(jù)的機密性?;诖碇丶用芩惴?,首次提出了RSA和Paillier同態(tài)加密算法,可有效防止密文受到選擇性密文文本攻擊。因此,這個系統(tǒng)比現(xiàn)有系統(tǒng)更安全。在以后的工作中,可以通過減少密鑰的大小來提高工作效率,并且也可以為其他同態(tài)加密方案進行代理?;谌瑧B(tài)加密云計算安全也是一個新的安全概念,也將是以全同態(tài)加密應(yīng)用為基準(zhǔn)的。
參考文獻
?。?] 陳智罡,王箭,宋新霞. 全同態(tài)加密研究[J].計算機應(yīng)用研究, 2014(6):16241631.
[2] 馮朝勝,秦志光,袁丁. 云數(shù)據(jù)安全存儲技術(shù)[J]. 計算機學(xué)報,2015(1):150163.
?。?] 張澤普,李國剛.基于OHNN和驅(qū)動表的公鑰加密算法[J].微型機與應(yīng)用,2013,32(12):4850,53.
[4] 段國云,陳浩,黃文,等. 一種Web程序防篡改系統(tǒng)的設(shè)計與實現(xiàn)[J]. 計算機工程,2014(5):149153.
?。?] 劉天華,殷守林,李航. 一種新的在線社交網(wǎng)絡(luò)的隱私保護方案[J]. 電子技術(shù)應(yīng)用,2015,41(4):122124,128.
?。?] TIAN M, HUANG L. Certificateless and certificatebased signatures from lattices[J]. Security & Communication Networks, 2015, 8(8):15751586.
?。?] 韋茜,王晨,李星毅,等.基于RSA算法的快遞信息隱私保護應(yīng)用[J].電子技術(shù)應(yīng)用,2014,40(7):5860.
?。?] 殷守林,劉天華,李航. 基于模擬退火算法的卡爾曼濾波在室內(nèi)定位中的應(yīng)用研究[J]. 沈陽師范大學(xué)學(xué)報(自然科學(xué)版),2015(1):8690.
[9] 陳智罡,宋新霞,張延紅.基于BinaryLWE噪音控制優(yōu)化的全同態(tài)加密方案與安全參數(shù)分析[J].四川大學(xué)學(xué)報(工程科學(xué)版),2015(2):7581.
?。?0] 李超良,劉琴,謝永明,等.基于同態(tài)加密的物聯(lián)網(wǎng)隱私保護計算方案[J].計算機工程與應(yīng)用,2015(6):2226.
?。?1] 劉東升,樊沛,張亮. 云計算環(huán)境下數(shù)據(jù)安全防護探討[J]. 信息安全與通信保密,2015(1):8789,94.
[12] 周德華. 代理重加密體制的研究[D].上海:上海交通大學(xué),2013.
?。?3] 藍才會,王彩芬,屈宜麗. 基于身份的單向多用的代理重加密方案[J]. 計算機應(yīng)用研究,2014(8):24772480,2484.
?。?4] 錢萍,吳蒙.同態(tài)加密隱私保護數(shù)據(jù)挖掘方法綜述[J].計算機應(yīng)用研究,2011(5):16141617,1622.
?。?5] 李少鯤.標(biāo)準(zhǔn)模型下可證安全的無證書全同態(tài)加密體制[J].計算機應(yīng)用,2015(2):387392,406.
[16] 張祖蓮,王命全,李景林,等.一種自定義動態(tài)密鑰預(yù)防DDoS攻擊的算法鄢[J].微型機與應(yīng)用,2013,32(20):7779,86.