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