摘? 要:當(dāng)云存儲(chǔ)服務(wù)提供商不可信時(shí),會(huì)嚴(yán)重影響客戶在云服務(wù)平臺(tái)中的數(shù)據(jù)安全性。本文對(duì)DGHV全同態(tài)加密算法進(jìn)行改進(jìn),在改進(jìn)加密算法的過程中,客戶端保存全部密鑰,而云服務(wù)器平臺(tái)僅保存可進(jìn)行密文檢索,但無法進(jìn)行密文解密的部分密鑰,從而在云存儲(chǔ)服務(wù)提供商不可信的情境下,保證用戶在云存儲(chǔ)平臺(tái)中的數(shù)據(jù)安全。
關(guān)鍵詞:云存儲(chǔ)平臺(tái);同態(tài)加密算法;密文檢索
中圖分類號(hào):TP333;TP309 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2019)23-0156-03
Research on Data Security Scheme of Cloud Storage Platform
PING Enpeng
(Yan’an Branch of Shaanxi Radio and Television University,Yan’an? 716000,China)
Abstract:When cloud storage service providers are not trusted,it seriously affects the data security of customers in cloud service platform. In this paper,the DGHV homomorphic encryption algorithm is improved. In the improved encryption algorithm,the client saves all the keys,while the cloud server platform stores only some key which can carry out ciphertext retrieval,but can not carry out the ciphertext decryption,so as to ensure the data security of users in the cloud storage platform under the condition of cloud storage service providers are not trusted.
Keywords:cloud storage platform;homomorphic encryption algorithm;ciphertext retrieval
0? 引? 言
云存儲(chǔ)方法具有容量大、方便快捷的優(yōu)勢(shì),已成為當(dāng)前最常用的共享存儲(chǔ)方案,很多企業(yè)和個(gè)人使用第三方云服務(wù)平臺(tái)進(jìn)行自身數(shù)據(jù)、文件的存儲(chǔ)和管理。而第三方云服務(wù)平臺(tái)不僅會(huì)受外部攻擊影響平臺(tái)內(nèi)的數(shù)據(jù)安全,同時(shí)也存在內(nèi)部工作人員非法獲取平臺(tái)數(shù)據(jù)的安全風(fēng)險(xiǎn)。例如,iCloud的安全漏洞導(dǎo)致用戶隱私數(shù)據(jù)泄露,Dropbox的用戶私有數(shù)據(jù)曾被公開于網(wǎng)絡(luò),受利益誘惑,云存儲(chǔ)服務(wù)提供商窺探用戶隱私數(shù)據(jù)的情況也時(shí)有發(fā)生。為此,在考慮云存儲(chǔ)服務(wù)器提供商不可信的情況下,加強(qiáng)云端數(shù)據(jù)的安全性,是促進(jìn)云存儲(chǔ)平臺(tái)發(fā)展的重點(diǎn),而進(jìn)行數(shù)據(jù)加密是解決云存儲(chǔ)平臺(tái)數(shù)據(jù)機(jī)密問題的有效手段,可避免用戶數(shù)據(jù)被非法訪問或篡改,但存在數(shù)據(jù)檢索困難的難點(diǎn)。為此,本文采用包含兩個(gè)密鑰的同態(tài)加密改進(jìn)算法,服務(wù)器端存儲(chǔ)檢索密鑰,用于平臺(tái)端加密數(shù)據(jù)的檢索,但由于服務(wù)器端無法獲取客戶端密鑰,因此也無法獲取服務(wù)器端存儲(chǔ)的明文數(shù)據(jù),在為用戶提供數(shù)據(jù)檢索服務(wù)的同時(shí),也保證了數(shù)據(jù)安全性。
1? 全同態(tài)加密算法研究
1.1? 同態(tài)加密的概念
同態(tài)加密(Homomorphic Encryption)要求找到這樣的數(shù)據(jù)加密算法:直接對(duì)密文數(shù)據(jù)進(jìn)行處理,并且將處理后的結(jié)果還原出相應(yīng)處理的明文。同態(tài)加密方法適用于對(duì)服務(wù)方并不完全信任的云存儲(chǔ)平臺(tái)環(huán)境。對(duì)于云平臺(tái)端存儲(chǔ)的同態(tài)加密密文,服務(wù)方可以進(jìn)行檢索等處理,但是無法查看數(shù)據(jù)的具體內(nèi)容。
同態(tài)加密算法可描述為六元組{M,C,E,D,K,?},其中M表示明文空間,C表示密文空間,E表示加密算法,D表示解密算法,K表示對(duì)稱密鑰,?表示同態(tài)代數(shù)運(yùn)算。
對(duì)任意的明文m1,m2,…,mk∈M,滿足如式(1)所示關(guān)系:
?(m1,m2,…,mk)=D?(E(m1),E(m2),…,E(mk))? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)
即,對(duì)于任意明文m1,m2∈M,滿足如式(2)所示關(guān)系:
E(m1?m2)=E(m1)?E(m2)? ? ? ? ? ? ? ? (2)
滿足不同同態(tài)運(yùn)算的同態(tài)算法分為加法和乘法同態(tài)算法。滿足加法同態(tài)性質(zhì)的加法同態(tài)算法描述如式(3)所示:
m1+m2+…+mk=D(E(m1)+E(m2)+…+E(mk))
(3)
滿足乘法同態(tài)性質(zhì)的乘法同態(tài)算法描述如式(4)所示:
m1×m2×…×mk=D(E(m1)×E(m2)×…×E(mk))
(4)
同時(shí)滿足加法同態(tài)性質(zhì)和乘法同態(tài)性質(zhì)的同態(tài)算法稱之為全同態(tài)加密算法,滿足:對(duì)密文進(jìn)行加法或乘法運(yùn)算,并進(jìn)行解密得到的明文,與對(duì)明文進(jìn)行相同運(yùn)算后的結(jié)果相同。
1.2? DGHV加密算法簡(jiǎn)介
傳統(tǒng)的RSA算法、ElGamal算法滿足乘法同態(tài),但不滿足加法同態(tài);Paillier算法滿足加法同態(tài),但不滿足乘法同態(tài)。即RSA、ElGamal、Paillier算法均不是全同態(tài)算法。整數(shù)上全同態(tài)加密方案(DGHV)的安全性依賴于“近似GCD問題”,使用簡(jiǎn)單的算法步驟與概念,在整數(shù)方案內(nèi)使用基本運(yùn)算模式,具有全同臺(tái)性質(zhì)和操作效率。
DGHV的具體過程如下所示:
(1)KeyGen(η):隨機(jī)生成一個(gè)長度為η比特的大奇數(shù)p∈[2η-1,2η),作為DGHV全同態(tài)加密算法密鑰;
(2)Encrypt(p,m):基于密鑰p,對(duì)于明文m,隨機(jī)生成一個(gè)ρ比特長的整數(shù)r,和Q比特長的整數(shù)q,且有2r+m?p,輸出的密文為:pq+2r+m→c;
(3)Decrypt(p,c):按照(c mod p)mod 2的操作對(duì)密文c進(jìn)行解密操作,其中,c mod p=c-[c/p]×p∈(-p/2,p/2];
(4)Evaluate:f(c1,c2,…,ct)。
在對(duì)密文進(jìn)行解密的過程中,噪聲r(shí)相較于密鑰p足夠小,因此pq?2r+m,經(jīng)過p運(yùn)算的密文c,將去除掉pq,僅剩下2r+m,在經(jīng)過mod 2操作后,剩下明文m。算法中的p是一個(gè)大奇數(shù)密鑰,在加密時(shí)不需要重新計(jì)算,加密過程的隨機(jī)參數(shù)q用以保證加密結(jié)果的隨機(jī)性,隨機(jī)參數(shù)r用以保證機(jī)密結(jié)果為密鑰p的近似倍數(shù),保證密鑰的安全性。DGHV的明文空間為[0,1],密文空間為整數(shù)集合。Evaluate為評(píng)估算法,對(duì)給定的運(yùn)算電路函數(shù)f和密文c1,c2,…,ct,實(shí)施電路操作f(c1,c2,…,ct)。密文c是密鑰p的近似倍數(shù),由于GCD困難問題,因此根據(jù)明文和密文,推算出密鑰p是困難的。
DGHV算法的加法同態(tài)性和乘法同態(tài)性的驗(yàn)證如下:兩個(gè)明文m1,m2,對(duì)應(yīng)的密文分別為c1,c2,其中:
(5)
則有:c1+c2=(q1+q2)p+2(r1+r2)+(m1+m2),由于2(r1+r2)+(m1+m2)?p,有(c1+c2)mod p=2(r1+r2)+(m1+m2),再在兩邊進(jìn)行模2操作后,得到:
D(c1+c2)=[(c1+c2)mod p]mod 2=(m1+m2)? (6)
即DGHV算法具有加法同態(tài)性。同理有:
c1c2=[q1q2p+2(r1+m1)+2(r2+m2)]p+2(r1r2+r1m2+ r2m1)+m1m2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (7)
由于2(r1r2+r1m2+r2m1)+m1m2?p,有:
(c1c2)mod p=2(r1r2+r1m2+r2m1)+m1m2? ? ? ? (8)
進(jìn)而得到:
D(c1c2)=[(c1c2)mod p]mod 2=(m1m2)? ? ? ?(9)
即DGHV算法具有乘法同態(tài)性。
1.3? 基于DGHV的密文檢索
如前所述,DGHV具有全同態(tài)性,對(duì)云存儲(chǔ)平臺(tái)數(shù)據(jù)進(jìn)行檢索的具體流程為:對(duì)用戶上傳文件進(jìn)行分詞處理,得到文件文本的關(guān)鍵詞,并進(jìn)行文件關(guān)鍵詞同態(tài)加密處理,將加密后的文件和關(guān)鍵詞上傳到云存儲(chǔ)平臺(tái)上,用戶檢索時(shí),提交檢索關(guān)鍵詞的同態(tài)加密密文,平臺(tái)基于加密算法的同態(tài)性質(zhì)進(jìn)行密文計(jì)算匹配,匹配成功則將平臺(tái)中存儲(chǔ)的密文文件返回給客戶端,在客戶端對(duì)密文進(jìn)行解密后得到原文件。
在云存儲(chǔ)平臺(tái)數(shù)據(jù)進(jìn)行檢索時(shí),客戶端必須將密鑰p上傳到云存儲(chǔ)平臺(tái),影響加密算法密鑰p的安全性,進(jìn)而影響用戶數(shù)據(jù)的安全性,即雖然DHGV具有全同態(tài)特征,但是并不適用于云存儲(chǔ)平臺(tái)中。
2? 云存儲(chǔ)平臺(tái)的密文檢索算法研究
通過對(duì)DGHV算法的適當(dāng)改進(jìn),提出一種具有全同態(tài)性和用于解決服務(wù)器不可信的密文檢索散算法。
2.1? 改進(jìn)算法設(shè)計(jì)
改進(jìn)后的DGHV算法如下所示:
(1)KeyGen(η1,η2):隨機(jī)生成長度分別為η1和η2比特的大奇數(shù)p1與p2,并有p1?p2,其中p1由客戶端生成,用作客戶端數(shù)據(jù)加密密鑰,p2在服務(wù)器端生成,作為專門檢索密鑰;
(2)Encrypt(p1,p2,m):隨機(jī)生成大數(shù)q(位數(shù)為Q),和較小整數(shù)r(位數(shù)為ρ),針對(duì)明文m,計(jì)算密文c=m×p1+p1×p2×q+p2×r,其中,q和r在每次加密過程中重新生成;
(3)Decrypt(p1,p2,c):按照(c mod p2)/p1得到明文,其中c mod p2=/(m×p1)mod p2,由于p1?p2,明文m為關(guān)鍵詞比特,其長度也較小,因此有(m×p1)mod p2=m×p1,即(c mod p2)/p1=m;
(4)Retrieval(cr,c):計(jì)算Retrieval(cr,c)=(cr-c)mod p2,若值為0,則表示密文檢索過程中,密文檢索詞cr與關(guān)鍵詞c匹配。
2.2? 加法同態(tài)性驗(yàn)證
對(duì)明文m1,m2進(jìn)行加密后,得到:
(10)
則有:
D(c1+c2)=[((q1+q2)×p1p2+p1×(m1+m2)+p2×(r1+r2))mod p2]/p1=[(p1×(m1+m2))mod p2]/p1? ? ? ? ? (11)
由于p1×(m1+m2)?p2,則有D(c1+c2)=m1+m2,改進(jìn)算法的加法同態(tài)性得證。
2.3? 改進(jìn)方案分析
首先,從密鑰的安全性上來看,改進(jìn)算法有p1和p2兩個(gè)密鑰,只有同時(shí)獲得兩個(gè)密鑰才能正確解析密文,在加密過程中,客戶端僅將密鑰p2上傳到云端服務(wù)器保存,由于云端服務(wù)器不知道密鑰p1,因此其無法對(duì)存儲(chǔ)在云端服務(wù)器的密文進(jìn)行解密,保證了云端服務(wù)器的數(shù)據(jù)安全。
其次,基于改進(jìn)算法的加法同態(tài)性,對(duì)于檢索詞mr和關(guān)鍵詞mi(假設(shè)對(duì)應(yīng)的密文分別為cr和ci),根據(jù)改進(jìn)算法的加法同態(tài)性,有:
mr-mi=[(cr-ci)mod p2]/p1? ? ? ? ? ? ? ? ? (12)
若(cr-ci)mod p2=0,則有mr-mi=0,即明文匹配成功;反之則表示明文匹配不成功。在進(jìn)行密文關(guān)鍵詞索引,判斷(cr-ci)mod p2是否為零時(shí),僅涉及到密鑰p2,而必須要密鑰p1的支持,因此云端服務(wù)器不需要解密密文,即可實(shí)現(xiàn)密文檢索。
最后,從密鑰安全性角度來看,攻擊者可獲得多個(gè)密文c1,c2,…,ct,密文c是密鑰p1的近似倍數(shù),由于GCD困難問題,因此根據(jù)明文和密文,推算出密鑰p1是困難的。
3? 結(jié)? 論
相較于DGHV全同態(tài)算法而言,本文研究的改進(jìn)算法雖然滿足加法同態(tài)性,但是由于增加了密鑰數(shù)量,以及在檢索過程中僅涉及其中一個(gè)密鑰,因此可在讓云端服務(wù)器僅獲取其中一個(gè)密鑰的情況下實(shí)現(xiàn)密文檢索,從而提高了密鑰安全性,在云端服務(wù)器不可信的情況下,保證云端數(shù)據(jù)的安全。
參考文獻(xiàn):
[1] 湯殿華,曹云飛,楊浩淼.緊致優(yōu)化DGHV全同態(tài)加密方案 [J].通信技術(shù),2013,46(12):53-57.
[2] 張爽,楊亞濤.基于整數(shù)的全同態(tài)加密體制的研究 [J].北京電子科技學(xué)院學(xué)報(bào),2013,21(2):29-34.
[3] 徐海霞.云計(jì)算環(huán)境中改進(jìn)的整數(shù)上全同態(tài)加密算法研究 [J].科技通報(bào),2019,35(6):87-90+113.
[4] 洪家軍,陳俊杰.一種基于全同態(tài)加密的密文檢索算法 [J].廊坊師范學(xué)院學(xué)報(bào)(自然科學(xué)版),2018,18(4):15-18+30.
作者簡(jiǎn)介:平恩鵬(1980.02-),男,漢族,陜西興平人,科員,講師,工學(xué)學(xué)士,研究方向:計(jì)算機(jī)科學(xué)與技術(shù)。