

摘? 要:當云存儲服務提供商不可信時,會嚴重影響客戶在云服務平臺中的數據安全性。本文對DGHV全同態加密算法進行改進,在改進加密算法的過程中,客戶端保存全部密鑰,而云服務器平臺僅保存可進行密文檢索,但無法進行密文解密的部分密鑰,從而在云存儲服務提供商不可信的情境下,保證用戶在云存儲平臺中的數據安全。
關鍵詞:云存儲平臺;同態加密算法;密文檢索
中圖分類號:TP333;TP309 ? ? ?文獻標識碼:A 文章編號: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? 引? 言
云存儲方法具有容量大、方便快捷的優勢,已成為當前最常用的共享存儲方案,很多企業和個人使用第三方云服務平臺進行自身數據、文件的存儲和管理。而第三方云服務平臺不僅會受外部攻擊影響平臺內的數據安全,同時也存在內部工作人員非法獲取平臺數據的安全風險。例如,iCloud的安全漏洞導致用戶隱私數據泄露,Dropbox的用戶私有數據曾被公開于網絡,受利益誘惑,云存儲服務提供商窺探用戶隱私數據的情況也時有發生。為此,在考慮云存儲服務器提供商不可信的情況下,加強云端數據的安全性,是促進云存儲平臺發展的重點,而進行數據加密是解決云存儲平臺數據機密問題的有效手段,可避免用戶數據被非法訪問或篡改,但存在數據檢索困難的難點。為此,本文采用包含兩個密鑰的同態加密改進算法,服務器端存儲檢索密鑰,用于平臺端加密數據的檢索,但由于服務器端無法獲取客戶端密鑰,因此也無法獲取服務器端存儲的明文數據,在為用戶提供數據檢索服務的同時,也保證了數據安全性。
1? 全同態加密算法研究
1.1? 同態加密的概念
同態加密(Homomorphic Encryption)要求找到這樣的數據加密算法:直接對密文數據進行處理,并且將處理后的結果還原出相應處理的明文。同態加密方法適用于對服務方并不完全信任的云存儲平臺環境。對于云平臺端存儲的同態加密密文,服務方可以進行檢索等處理,但是無法查看數據的具體內容。
同態加密算法可描述為六元組{M,C,E,D,K,?},其中M表示明文空間,C表示密文空間,E表示加密算法,D表示解密算法,K表示對稱密鑰,?表示同態代數運算。
對任意的明文m1,m2,…,mk∈M,滿足如式(1)所示關系:
?(m1,m2,…,mk)=D?(E(m1),E(m2),…,E(mk))? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)
即,對于任意明文m1,m2∈M,滿足如式(2)所示關系:
E(m1?m2)=E(m1)?E(m2)? ? ? ? ? ? ? ? (2)
滿足不同同態運算的同態算法分為加法和乘法同態算法。滿足加法同態性質的加法同態算法描述如式(3)所示:
m1+m2+…+mk=D(E(m1)+E(m2)+…+E(mk))
(3)
滿足乘法同態性質的乘法同態算法描述如式(4)所示:
m1×m2×…×mk=D(E(m1)×E(m2)×…×E(mk))
(4)
同時滿足加法同態性質和乘法同態性質的同態算法稱之為全同態加密算法,滿足:對密文進行加法或乘法運算,并進行解密得到的明文,與對明文進行相同運算后的結果相同。
1.2? DGHV加密算法簡介
傳統的RSA算法、ElGamal算法滿足乘法同態,但不滿足加法同態;Paillier算法滿足加法同態,但不滿足乘法同態。即RSA、ElGamal、Paillier算法均不是全同態算法。整數上全同態加密方案(DGHV)的安全性依賴于“近似GCD問題”,使用簡單的算法步驟與概念,在整數方案內使用基本運算模式,具有全同臺性質和操作效率。
DGHV的具體過程如下所示:
(1)KeyGen(η):隨機生成一個長度為η比特的大奇數p∈[2η-1,2η),作為DGHV全同態加密算法密鑰;
(2)Encrypt(p,m):基于密鑰p,對于明文m,隨機生成一個ρ比特長的整數r,和Q比特長的整數q,且有2r+m?p,輸出的密文為:pq+2r+m→c;
(3)Decrypt(p,c):按照(c mod p)mod 2的操作對密文c進行解密操作,其中,c mod p=c-[c/p]×p∈(-p/2,p/2];
(4)Evaluate:f(c1,c2,…,ct)。
在對密文進行解密的過程中,噪聲r相較于密鑰p足夠小,因此pq?2r+m,經過p運算的密文c,將去除掉pq,僅剩下2r+m,在經過mod 2操作后,剩下明文m。算法中的p是一個大奇數密鑰,在加密時不需要重新計算,加密過程的隨機參數q用以保證加密結果的隨機性,隨機參數r用以保證機密結果為密鑰p的近似倍數,保證密鑰的安全性。DGHV的明文空間為[0,1],密文空間為整數集合。Evaluate為評估算法,對給定的運算電路函數f和密文c1,c2,…,ct,實施電路操作f(c1,c2,…,ct)。密文c是密鑰p的近似倍數,由于GCD困難問題,因此根據明文和密文,推算出密鑰p是困難的。
DGHV算法的加法同態性和乘法同態性的驗證如下:兩個明文m1,m2,對應的密文分別為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),再在兩邊進行模2操作后,得到:
D(c1+c2)=[(c1+c2)mod p]mod 2=(m1+m2)? (6)
即DGHV算法具有加法同態性。同理有:
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)
進而得到:
D(c1c2)=[(c1c2)mod p]mod 2=(m1m2)? ? ? ?(9)
即DGHV算法具有乘法同態性。
1.3? 基于DGHV的密文檢索
如前所述,DGHV具有全同態性,對云存儲平臺數據進行檢索的具體流程為:對用戶上傳文件進行分詞處理,得到文件文本的關鍵詞,并進行文件關鍵詞同態加密處理,將加密后的文件和關鍵詞上傳到云存儲平臺上,用戶檢索時,提交檢索關鍵詞的同態加密密文,平臺基于加密算法的同態性質進行密文計算匹配,匹配成功則將平臺中存儲的密文文件返回給客戶端,在客戶端對密文進行解密后得到原文件。
在云存儲平臺數據進行檢索時,客戶端必須將密鑰p上傳到云存儲平臺,影響加密算法密鑰p的安全性,進而影響用戶數據的安全性,即雖然DHGV具有全同態特征,但是并不適用于云存儲平臺中。
2? 云存儲平臺的密文檢索算法研究
通過對DGHV算法的適當改進,提出一種具有全同態性和用于解決服務器不可信的密文檢索散算法。
2.1? 改進算法設計
改進后的DGHV算法如下所示:
(1)KeyGen(η1,η2):隨機生成長度分別為η1和η2比特的大奇數p1與p2,并有p1?p2,其中p1由客戶端生成,用作客戶端數據加密密鑰,p2在服務器端生成,作為專門檢索密鑰;
(2)Encrypt(p1,p2,m):隨機生成大數q(位數為Q),和較小整數r(位數為ρ),針對明文m,計算密文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為關鍵詞比特,其長度也較小,因此有(m×p1)mod p2=m×p1,即(c mod p2)/p1=m;
(4)Retrieval(cr,c):計算Retrieval(cr,c)=(cr-c)mod p2,若值為0,則表示密文檢索過程中,密文檢索詞cr與關鍵詞c匹配。
2.2? 加法同態性驗證
對明文m1,m2進行加密后,得到:
(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,改進算法的加法同態性得證。
2.3? 改進方案分析
首先,從密鑰的安全性上來看,改進算法有p1和p2兩個密鑰,只有同時獲得兩個密鑰才能正確解析密文,在加密過程中,客戶端僅將密鑰p2上傳到云端服務器保存,由于云端服務器不知道密鑰p1,因此其無法對存儲在云端服務器的密文進行解密,保證了云端服務器的數據安全。
其次,基于改進算法的加法同態性,對于檢索詞mr和關鍵詞mi(假設對應的密文分別為cr和ci),根據改進算法的加法同態性,有:
mr-mi=[(cr-ci)mod p2]/p1? ? ? ? ? ? ? ? ? (12)
若(cr-ci)mod p2=0,則有mr-mi=0,即明文匹配成功;反之則表示明文匹配不成功。在進行密文關鍵詞索引,判斷(cr-ci)mod p2是否為零時,僅涉及到密鑰p2,而必須要密鑰p1的支持,因此云端服務器不需要解密密文,即可實現密文檢索。
最后,從密鑰安全性角度來看,攻擊者可獲得多個密文c1,c2,…,ct,密文c是密鑰p1的近似倍數,由于GCD困難問題,因此根據明文和密文,推算出密鑰p1是困難的。
3? 結? 論
相較于DGHV全同態算法而言,本文研究的改進算法雖然滿足加法同態性,但是由于增加了密鑰數量,以及在檢索過程中僅涉及其中一個密鑰,因此可在讓云端服務器僅獲取其中一個密鑰的情況下實現密文檢索,從而提高了密鑰安全性,在云端服務器不可信的情況下,保證云端數據的安全。
參考文獻:
[1] 湯殿華,曹云飛,楊浩淼.緊致優化DGHV全同態加密方案 [J].通信技術,2013,46(12):53-57.
[2] 張爽,楊亞濤.基于整數的全同態加密體制的研究 [J].北京電子科技學院學報,2013,21(2):29-34.
[3] 徐海霞.云計算環境中改進的整數上全同態加密算法研究 [J].科技通報,2019,35(6):87-90+113.
[4] 洪家軍,陳俊杰.一種基于全同態加密的密文檢索算法 [J].廊坊師范學院學報(自然科學版),2018,18(4):15-18+30.
作者簡介:平恩鵬(1980.02-),男,漢族,陜西興平人,科員,講師,工學學士,研究方向:計算機科學與技術。