陳永府 宋 鵬 王啟富 陳立平
(華中科技大學(xué)機(jī)械科學(xué)與工程學(xué)院 湖北 武漢 430074)
?
云環(huán)境下的數(shù)據(jù)防泄密存儲(chǔ)技術(shù)
陳永府宋鵬王啟富陳立平
(華中科技大學(xué)機(jī)械科學(xué)與工程學(xué)院湖北 武漢 430074)
防止數(shù)據(jù)泄密是云存儲(chǔ)安全研究的重要方向之一。云環(huán)境下數(shù)據(jù)泄密的途徑主要有兩條:一是云端數(shù)據(jù)被云服務(wù)商惡意竊??;二是明文數(shù)據(jù)傳輸過(guò)程中被黑客截獲。鑒于此,提出一種云環(huán)境下數(shù)據(jù)防泄密存儲(chǔ)技術(shù)。采用全同態(tài)加密算法對(duì)數(shù)據(jù)事先加密,既增強(qiáng)了數(shù)據(jù)在云端存儲(chǔ)和信道傳輸過(guò)程中的安全性,又實(shí)現(xiàn)了云端對(duì)密文數(shù)據(jù)的直接操作。同時(shí),提出密鑰生成算法和密文檢索算法,解決了加密帶來(lái)的密鑰管理困難和密文檢索效率低的難題。該技術(shù)增強(qiáng)了數(shù)據(jù)保密性且提高了密文檢索效率。
數(shù)據(jù)防泄密云存儲(chǔ)安全全同態(tài)加密密鑰管理密文檢索
云存儲(chǔ)是將網(wǎng)絡(luò)中大量不同類(lèi)型的存儲(chǔ)設(shè)備通過(guò)應(yīng)用軟件協(xié)同起來(lái),對(duì)外提供數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)訪問(wèn)功能的一個(gè)系統(tǒng)[1]。用戶(hù)可以將資源存儲(chǔ)到云端以節(jié)省空間或方便他人共享,通過(guò)可聯(lián)網(wǎng)的裝置用戶(hù)可以在任何時(shí)間、任何地點(diǎn)進(jìn)行數(shù)據(jù)的訪問(wèn)和存取。國(guó)內(nèi)外諸多IT企業(yè)均開(kāi)設(shè)了云存儲(chǔ)服務(wù),比如:微軟公司的Windows Azure Blob、惠普公司的HP CloudObject、蘋(píng)果公司的iCloud、百度公司的百度云盤(pán)、騰訊公司的微云等。但是,據(jù)Gartner發(fā)布的調(diào)查報(bào)告《云計(jì)算安全風(fēng)險(xiǎn)評(píng)估》[2]表明,超過(guò)80%的受訪企業(yè)和機(jī)構(gòu)并未將重要數(shù)據(jù)存儲(chǔ)到云端。在這些企業(yè)和機(jī)構(gòu)中,70%以上擔(dān)心云存儲(chǔ)造成數(shù)據(jù)泄密。因?yàn)閿?shù)據(jù)一旦上傳到云端,企業(yè)就失去對(duì)數(shù)據(jù)的控制權(quán),在競(jìng)爭(zhēng)激烈的信息時(shí)代,核心數(shù)據(jù)一旦泄密將給企業(yè)帶來(lái)不可估量的損失。
這些擔(dān)憂(yōu)是有現(xiàn)實(shí)依據(jù)的,Google Docs、Dropbox、Salesforce、蘋(píng)果iCloud等多家著名云服務(wù)商都曾數(shù)次出現(xiàn)過(guò)泄密事件:2007年salesforce的一名工作人員泄露了賬戶(hù)密碼,造成數(shù)百萬(wàn)客戶(hù)信息泄密;2012年8月,黑客找到蘋(píng)果iCloud賬戶(hù)的安全漏洞,對(duì)部分iCloud賬戶(hù)進(jìn)行攻擊,致使用戶(hù)多項(xiàng)重要信息丟失等[3]。這些泄密事件不僅使云存儲(chǔ)服務(wù)商的信譽(yù)蒙受損失,也使用戶(hù)對(duì)云存儲(chǔ)的安全性產(chǎn)生質(zhì)疑。因此,如何保證云環(huán)境下的數(shù)據(jù)不被泄密,是保證云存儲(chǔ)安全的關(guān)鍵一環(huán)。
傳統(tǒng)云存儲(chǔ)平臺(tái)架構(gòu)自下而上分為4層:數(shù)據(jù)存儲(chǔ)層、數(shù)據(jù)管理層、數(shù)據(jù)服務(wù)層以及用戶(hù)訪問(wèn)層[4]。在數(shù)據(jù)存儲(chǔ)層,云服務(wù)提供商將服務(wù)器組成存儲(chǔ)設(shè)備集群,再通過(guò)虛擬化技術(shù),為用戶(hù)上傳到云端的明文數(shù)據(jù)提供隔離存儲(chǔ)服務(wù);在數(shù)據(jù)管理層,通過(guò)設(shè)計(jì)統(tǒng)一的用戶(hù)管理、安全管理、副本管理及策略管理等公共數(shù)據(jù)管理功能,將底層存儲(chǔ)及上層應(yīng)用無(wú)縫銜接,實(shí)現(xiàn)多存儲(chǔ)設(shè)備之間的協(xié)同工作,以更好的性能對(duì)外提供多種服務(wù);數(shù)據(jù)服務(wù)層作為用戶(hù)和云端交互的接口,主要響應(yīng)客戶(hù)的需求,包括:存儲(chǔ)需求、獲取資源請(qǐng)求、備份數(shù)據(jù)請(qǐng)求及共享請(qǐng)求等;通過(guò)用戶(hù)訪問(wèn)層,任何一個(gè)授權(quán)用戶(hù)都可以在任何地方使用聯(lián)網(wǎng)的終端設(shè)備,按照標(biāo)準(zhǔn)的公用應(yīng)用接口來(lái)登錄云存儲(chǔ)平臺(tái),享受云存儲(chǔ)服務(wù)[5]。
從傳統(tǒng)云存儲(chǔ)平臺(tái)架構(gòu)可以看出,云服務(wù)提供商管理員能接觸到用戶(hù)通過(guò)用戶(hù)訪問(wèn)層上傳到云端的明文數(shù)據(jù)且對(duì)其有絕對(duì)控制權(quán)。此外,數(shù)據(jù)在用戶(hù)和云端之間的不安全信道中也是以明文形式傳輸?shù)?。因此,云環(huán)境下用戶(hù)數(shù)據(jù)泄密的主要途徑有兩條:一是明文數(shù)據(jù)被云服務(wù)提供商惡意泄密;二是明文數(shù)據(jù)在不安全信道傳輸過(guò)程中被黑客截獲。
眾所周知,通過(guò)加密算法使用戶(hù)數(shù)據(jù)在進(jìn)入用戶(hù)訪問(wèn)層之前加密,便能有效封堵上述兩條泄密途徑。但是,相對(duì)于明文數(shù)據(jù)而言,云端對(duì)密文的處理操作是非常困難的,云端將無(wú)法通過(guò)數(shù)據(jù)服務(wù)層準(zhǔn)確高效地響應(yīng)用戶(hù)的數(shù)據(jù)處理請(qǐng)求。因此,用一種特殊的加密算法,使云端能按照用戶(hù)的需求直接對(duì)密文進(jìn)行數(shù)據(jù)處理操作,是非常必要的。
本文提出的云環(huán)境下的數(shù)據(jù)防泄密存儲(chǔ)技術(shù),采用允許直接對(duì)密文進(jìn)行操作的全同態(tài)加密算法[6],使用戶(hù)數(shù)據(jù)在通過(guò)用戶(hù)訪問(wèn)層上傳到云端之前便已加密,不僅保證云服務(wù)提供商無(wú)法接觸到明文,而且數(shù)據(jù)在傳輸過(guò)程中即便被黑客截獲也不能被輕易破解,安全性得到極大提升。此外,用戶(hù)對(duì)將要上傳的明文數(shù)據(jù)提前進(jìn)行全同態(tài)加密會(huì)帶來(lái)密鑰管理困難的問(wèn)題,該技術(shù)也提出了密鑰生成算法予以解決。云端通過(guò)數(shù)據(jù)服務(wù)層接收到用戶(hù)的需求并對(duì)數(shù)據(jù)進(jìn)行處理操作之前,必須首先檢索到用戶(hù)指定的密文。因此,密文檢索將是云端最頻繁的一個(gè)操作。針對(duì)傳統(tǒng)的密文檢索算法在檢索效率、精度和安全性方面存在的不足,該技術(shù)也提出了一種基于多屬性排序的密文檢索方法來(lái)予以改善。
本文提出的防泄密存儲(chǔ)技術(shù)基于如圖1所示的系統(tǒng)模型。其中,用戶(hù)端主要由數(shù)據(jù)的加解密、密文數(shù)據(jù)的上傳與下載、用戶(hù)身份認(rèn)證三部分組成;云端則由數(shù)據(jù)存儲(chǔ)、索引文件、數(shù)據(jù)檢索三部分組成。
圖1 防泄密存儲(chǔ)系統(tǒng)總體設(shè)計(jì)圖
1.1用戶(hù)端模型
1) 身份認(rèn)證
云端為所有可信的客戶(hù)端創(chuàng)建了個(gè)人身份信息(包括用戶(hù)名、密碼等),在向云端服務(wù)器上傳數(shù)據(jù)前,需要先經(jīng)過(guò)云端服務(wù)器的身份認(rèn)證。身份認(rèn)證模塊主要用于訪問(wèn)控制,對(duì)于合法或?qū)?shù)據(jù)有共享權(quán)限的用戶(hù),才能允許其成功登錄并進(jìn)行上傳和下載密文數(shù)據(jù)等功能。
2) 數(shù)據(jù)加解密
為了方便客戶(hù)隨時(shí)隨地的享用云服務(wù),該技術(shù)采用了一種新的密鑰生成算法。該算法將用戶(hù)的記憶密碼N和文檔的唯一標(biāo)示符FT相結(jié)合組成密鑰生成種子S,再將密鑰生成種子輸入密鑰生成函數(shù)并進(jìn)行奇數(shù)化處理,輸出固定長(zhǎng)度的密鑰P作為全同態(tài)加密算法的密鑰。該密鑰生成算法不僅保證了不同的文檔有不同的密鑰,也降低了用戶(hù)記憶密碼的難度,而全同態(tài)加密則可使云端對(duì)密文處理無(wú)障礙。
3) 密文上傳與下載
該模塊主要用于用戶(hù)和云端之間的數(shù)據(jù)傳輸。此外,為了防止黑客攻擊,云服務(wù)器會(huì)對(duì)存儲(chǔ)到云端的數(shù)據(jù)進(jìn)行加密。因此,該模塊也包含了用戶(hù)上傳數(shù)據(jù)時(shí)云端對(duì)數(shù)據(jù)的再次加密,以及用戶(hù)下載數(shù)據(jù)時(shí)云端對(duì)數(shù)據(jù)的解密。
1.2云端模型
1) 數(shù)據(jù)存儲(chǔ)
用于存儲(chǔ)用戶(hù)上傳到云端的密文,是云端的文檔資源池。資源池是云計(jì)算最關(guān)鍵的技術(shù)之一,對(duì)于高效地調(diào)度資源池中的資源有重要的現(xiàn)實(shí)意義[7]。此外,數(shù)據(jù)存儲(chǔ)區(qū)也存儲(chǔ)數(shù)據(jù)的共享權(quán)限等相關(guān)信息。
2) 索引文件
當(dāng)用戶(hù)有檢索需求時(shí),系統(tǒng)通過(guò)索引文件查找并匹配用戶(hù)的檢索詞。建立索引文件要解決好兩個(gè)問(wèn)題:一是如何對(duì)文本進(jìn)行分詞;二是如何建立索引的數(shù)據(jù)結(jié)構(gòu)。分詞的好壞關(guān)系到檢索的準(zhǔn)確度和生成的索引大小,該系統(tǒng)采用中文分詞法,客戶(hù)端先對(duì)明文進(jìn)行中文分詞并將分詞結(jié)果進(jìn)行加密,考慮到加密的效率,此處采用對(duì)稱(chēng)加密算法。然后將對(duì)稱(chēng)加密后的詞條和全同態(tài)加密后的文檔一起傳送至云端服務(wù)器保存,并基于這些詞條在云端構(gòu)建倒排索引。所謂倒排索引是將每一個(gè)單詞作為索引項(xiàng),根據(jù)該索引項(xiàng)查找包含該單詞的所有文檔。
此外,為了節(jié)省存儲(chǔ)空間,云服務(wù)器在對(duì)密文詞條構(gòu)建倒排索引之前,首先在已存索引中查找該密文詞條是否已存在,如果存在則不重復(fù)存儲(chǔ)該詞條,僅添加一條映射關(guān)系。
3) 密文檢索
用戶(hù)將檢索詞對(duì)稱(chēng)加密后提交給云端,云服務(wù)器通過(guò)索引文件檢索出匹配文檔,并計(jì)算出檢索詞和這些文檔之間的相關(guān)度,然后根據(jù)相關(guān)度大小將文檔排序,最后將這些文檔有序返回給用戶(hù)[8]。
加密能保護(hù)用戶(hù)隱私,是增強(qiáng)數(shù)據(jù)安全性的一項(xiàng)重要舉措,但是數(shù)據(jù)加密后會(huì)喪失許多特性,使云服務(wù)器對(duì)密文的處理存在一定困難。全同態(tài)加密算法實(shí)現(xiàn)了加法同態(tài)和乘法同態(tài),服務(wù)器不需要接觸明文數(shù)據(jù)也能方便地對(duì)數(shù)據(jù)進(jìn)行處理。
2.1算法原理
1978年,Rivest等人首次提出了同態(tài)加密的概念[9]。所謂同態(tài),即一個(gè)加密方案E如果滿(mǎn)足:E(m1⊕m2)=E(m1)?E(m2),其中m1、m2是明文消息,E是加密函數(shù),?是對(duì)密文的某種運(yùn)算,⊕是對(duì)明文的某種運(yùn)算,則稱(chēng)該加密方案是同態(tài)加密方案[10]。也可描述為,若DecryptE是方案E的解密算法,sk、pk分別是私鑰和公鑰,f(x1,x2,…,xt)是一個(gè)t元的函數(shù),則DecryptE(f(c1,c2,…,ct),sk)=f(m1,…m2,mt)。如果該加密方案E對(duì)加法和乘法都具有同態(tài)性,就叫全同態(tài)加密算法,否則稱(chēng)為偏同態(tài)加密算法。在本文提出的防泄密存儲(chǔ)系統(tǒng)中,用戶(hù)先用全同態(tài)加密算法對(duì)明文加密,再將密文數(shù)據(jù)上傳到云端,當(dāng)用戶(hù)發(fā)送數(shù)據(jù)處理請(qǐng)求時(shí),云端服務(wù)器無(wú)需對(duì)密文解密即可完成相應(yīng)操作,再將結(jié)果以密文形式返回給用戶(hù),用戶(hù)對(duì)返回的密文解密便可得到已處理的明文。
一般而言,公鑰體制的全同態(tài)加密方案由如下四個(gè)算法組成:
(1)KeyGen(λ):根據(jù)安全參數(shù)λ產(chǎn)生公鑰pk和私鑰sk。
(2)Encrypt(pk,m):用公鑰pk將明文m加密為密文c。
(3)Decrypt(sk,c):用私鑰sk解密密文c,得到明文m。
(4)Evaluate(pk,f,c1,c2,…,ct):輸入公鑰pk,具有t個(gè)輸入的函數(shù)f,以及t個(gè)密文c1,c2…,ct,其中ci=Encrypt(pk,mi),(i=1,2,…,t)。輸出c*=Evaluate(pk,mi),且滿(mǎn)足Decrypt(sk,c*)=f(m1,m2,…,mt)。Evaluate算法的含義是:對(duì)密文進(jìn)行任意操作再解密,結(jié)果與對(duì)明文進(jìn)行相應(yīng)的操作結(jié)果相同。此處的函數(shù)f也可以換成函數(shù)對(duì)應(yīng)的電路C作為輸入。
2.2算法過(guò)程
1) 加密過(guò)程
全同態(tài)加密過(guò)程可分為三步:首先對(duì)明文數(shù)據(jù)進(jìn)行二進(jìn)制分組,分組長(zhǎng)度根據(jù)安全需求來(lái)定;然后對(duì)每個(gè)明文分塊進(jìn)行加密操作得到對(duì)應(yīng)的密文分塊;最后將所有密文分塊組合成完整的密文數(shù)據(jù)C。
為了描述方便,本文使用Gentry提出的全同態(tài)加密算法[11]。加密流程見(jiàn)圖2所示,其加密步驟如下:
(1) 選取加密參數(shù)P、Q和R。其中P是一個(gè)正奇數(shù),Q是一個(gè)很大的正整數(shù)。P和Q在密鑰生成階段確定,P是加密密鑰而R是加密時(shí)選取的一個(gè)隨機(jī)數(shù);
(2) 將消息M分組為若干長(zhǎng)度為L(zhǎng)(L的長(zhǎng)度應(yīng)該小于P)的消息分塊M=m1,m2,…,mt;
(3) 依次讀取明文分塊中的字符,并將其轉(zhuǎn)換為二進(jìn)制數(shù)字。
(4) 使用加密算法ci=mi+ 2R+PQ對(duì)二進(jìn)制數(shù)字加密,同時(shí)將若干密文分塊組合成完整的密文數(shù)據(jù)C=c1,c2,…,ct。
2) 解密過(guò)程
全同態(tài)解密過(guò)程的流程如圖3所示,解密步驟如下:
(1) 將密文數(shù)據(jù)C分組C=c1,c2,…,ct;
(2) 對(duì)每個(gè)密文分塊ci使用解密密鑰P進(jìn)行解密mi=(cimodp)mod2,得到二進(jìn)制文件。
(3) 先由解密后的二進(jìn)制文件生成臨時(shí)文件,再將臨時(shí)文件轉(zhuǎn)換為對(duì)應(yīng)的明文分塊,最后把明文分塊組合成完整的明文數(shù)據(jù)M=m1,m2,…,mt。
圖2 全同態(tài)加密流程圖 圖3 全同態(tài)解密密流程圖
2.3同態(tài)驗(yàn)證
根據(jù)全同態(tài)加密算法的定義,分別對(duì)該加密算法的加法同態(tài)性和乘法同態(tài)性進(jìn)行驗(yàn)證。假設(shè)有兩組明文m1和m2,加密后的密文分別對(duì)應(yīng)為c1和c2,即:
c1=m1+ 2R1+PQ1
(1)
c2=m2+ 2R2+PQ2
(2)
對(duì)密文c1和c2執(zhí)行加法操作:
c1+c2= (m1+m2)+2(R1+R2)+P(Q1+Q2)
(3)
把cmodp的值稱(chēng)為噪聲,當(dāng)噪聲m+ 2R
(c1+c2)modP=(m1+m2)+2(R1+R2)
(4)
再將 (m1+m2)+ 2(R1+R2)對(duì)2取??傻茫?/p>
m1+m2= [(m1+m2) +2(R1+R2)] mod 2
(5)
顯然,該算法滿(mǎn)足加法同態(tài)性。
同理,對(duì)密文c1和c2執(zhí)行乘法操作:
c1×c2=m1m2+2(2R1R2+m2R1+m1R2)+
P[PQ1Q2+Q2(m1+2R1)+Q1(m2+2R2)]
(6)
由于m1m2+2(2R1R2+m2R1+m1R2)小于P,則對(duì)P和2分別取模有:
m1m2= [(c1×c2) modP] mod 2
(7)
顯然,該算法滿(mǎn)足乘法同態(tài)性。
2.4算法選取
Gentry在文獻(xiàn)[11]所提出的全同態(tài)加密算法是基于理想格的,加解密效率不高,而且該算法存在一定的噪聲。如果對(duì)密文進(jìn)行一系列操作,噪聲就會(huì)相應(yīng)的增長(zhǎng),只有當(dāng)噪聲低于某個(gè)閾值才能正確解密,否則會(huì)出現(xiàn)解密錯(cuò)誤。假設(shè)密文e1、e2的原始噪聲上界為L(zhǎng),則L=m+ 2R,那么對(duì)密文e1進(jìn)行n次加法同態(tài)操作后,其噪聲上界就會(huì)變?yōu)長(zhǎng)′=(nL) ;如果對(duì)密文e2進(jìn)行n次乘法同態(tài)操作,其噪聲就會(huì)變?yōu)長(zhǎng)′=(L2n)。因此,這個(gè)方案只能進(jìn)行不高于一定層級(jí)K的加密電路,實(shí)用性不高。
針對(duì)這一問(wèn)題,Gentry也提出了一種降低噪聲的處理方法,就是自舉轉(zhuǎn)換理論。該方法的思想是對(duì)解密電路進(jìn)行壓縮直到其層級(jí)低于限定值K,這樣噪聲就不會(huì)對(duì)解密造成影響。舉例如下:假設(shè)我們有密文e,是通過(guò)用密鑰p加密明文m而得到的,即e=Encrypt(p,m);然后用另一密鑰p′對(duì)密鑰p和密文e進(jìn)行加密得到p*和e*,加密算法分別為p*=Encrypt(p′,p)和e*=Encrypt(p′,e)。如果y=f(x)是一個(gè)低于層級(jí)K的電路操作,則通過(guò)全同態(tài)加密的定義有:
e′=Evaluate(e,f(e))=Encrypt(p,f(m))
(8)
將式(8)中的e換成e*和p*,密鑰p換成p′,f(x)換成Decrypt(p,e),則有:
e′=Evaluate(e*,p*,Decrypt())
=Encrypt(p′,f(Decrypt(p,e)))
=Encrypt(p′,m′)
(9)
從式(9)可以看出,先把密文e進(jìn)行二次加密得到e*,再通過(guò)解密操作處理會(huì)得到新的密文e′,而新的密文e′正是用新的密鑰p′對(duì)新的明文m′進(jìn)行加密后的結(jié)果。通過(guò)這種方法,把原來(lái)需要進(jìn)行多次加法或乘法操作中可能帶來(lái)的噪聲給清除了,達(dá)到了正確解密的結(jié)果。但這種自舉轉(zhuǎn)換的方式也有局限性:首先,并不是所有解密算法都可以進(jìn)行自舉轉(zhuǎn)換;其次,由于要在電路內(nèi)的所有節(jié)點(diǎn)都進(jìn)行密文更新以降低噪聲,可想而知執(zhí)行效率很低。
林如磊等人在Dijk等人的全同態(tài)加密方案基礎(chǔ)上進(jìn)行了改進(jìn)[13]。將模2運(yùn)算改為模4運(yùn)算,并限制了部分參數(shù)的選取,提出了一種更快速的全同態(tài)加密方案,改進(jìn)之后的方案一次可以加密2 bit的數(shù)據(jù),且公鑰尺寸降低到ò(λ7),比Dijk等人的方案具有更高的效率和更小的公鑰尺寸。
對(duì)比文獻(xiàn)[11]自舉轉(zhuǎn)換全同態(tài)加密算法、文獻(xiàn)[12]的DGHV算法和文獻(xiàn)[13]的改進(jìn)算法,相關(guān)性能如表1所示。
表1 文獻(xiàn)[11-13]性能比較
因此,本技術(shù)決定采用文獻(xiàn)[13]這種全同態(tài)加密方案來(lái)提升用戶(hù)端的加解密執(zhí)行效率,并降低公鑰的長(zhǎng)度。
3.1算法原理
用戶(hù)在全同態(tài)加解密過(guò)程中都要使用密鑰,且只有用戶(hù)本人擁有密鑰。除非密鑰隨用戶(hù)遷移,否則用戶(hù)無(wú)法隨時(shí)隨地使用云存儲(chǔ)服務(wù)。鑒于此,該防泄密存儲(chǔ)技術(shù)提出了一種新的密鑰生成算法。該算法的原始輸入由兩部分構(gòu)成:一是用戶(hù)自行設(shè)定的記憶密碼N;二是待加密文檔的唯一身份認(rèn)證標(biāo)示符FT。這樣,用戶(hù)可以用相同的記憶密碼為不同的文件產(chǎn)生不同的密鑰生成種子,繼而產(chǎn)生不同的密鑰,避免為了給不同的加密文件使用不同的密鑰而記憶大量不同的密碼,方便了密鑰的管理。
3.2算法過(guò)程
該算法原理如下:
(4)將密鑰生成種子S輸入密鑰生成函數(shù),擴(kuò)展成定長(zhǎng)度的密鑰輸出P′??紤]到全同態(tài)加密定義中要求密鑰P是一個(gè)正的奇數(shù),故須再對(duì)P′進(jìn)行奇數(shù)化處理得到最終的密鑰P。
密鑰生成算法如圖4所示。
圖4 密鑰生成過(guò)程
密鑰生成函數(shù)應(yīng)該滿(mǎn)足以下兩個(gè)條件:一是當(dāng)且僅當(dāng)輸入的密鑰生成種子S相同時(shí),密鑰生成函數(shù)的輸出P′才會(huì)相同;二是密鑰生成函數(shù)應(yīng)該具備將長(zhǎng)度不定的密鑰生成種子S發(fā)散成長(zhǎng)度固定的密鑰P′的功能。顯然,哈希函數(shù)MD5或SHA1都具備這兩種特性,可以充當(dāng)我們的密鑰產(chǎn)生函數(shù),本系統(tǒng)選用哈希函數(shù)MD5。
3.3密鑰強(qiáng)度
與傳統(tǒng)全同態(tài)加密算法不同,該技術(shù)所采用的全同態(tài)加密算法中密鑰P是由密鑰生成算法生成。因此,數(shù)據(jù)的安全性不再完全取決于全同態(tài)加密算法的安全性,而是與密鑰生成算法有關(guān),但這種密鑰生成算法產(chǎn)生的密鑰P仍然具備較好的抵御黑客攻擊的能力。
由于不同的加密文件密鑰P均不相同且無(wú)規(guī)律可循,黑客即使獲取了密鑰P也很難破解密文,原因有三:首先,哈希算法具有不可逆性且密鑰生成種子是由“用戶(hù)記憶密碼N”和“文檔唯一身份認(rèn)證標(biāo)示符F”兩部分組成,黑客無(wú)法由密鑰P逆推用戶(hù)記憶密碼。其次,在沒(méi)有獲取用戶(hù)云端數(shù)據(jù)訪問(wèn)控制權(quán)限的情況下,黑客無(wú)法獲取云端密文。第三,密鑰P和云端密文是一一對(duì)應(yīng)的關(guān)系,即便黑客獲取云端數(shù)據(jù)訪問(wèn)權(quán)限,在不知密鑰P與密文對(duì)應(yīng)關(guān)系的情況下,也無(wú)法定位并獲取正確的密文。
綜合以上三點(diǎn)可知,除非黑客能同時(shí)獲取密鑰P、云端數(shù)據(jù)的訪問(wèn)權(quán)限、密鑰P與密文的對(duì)應(yīng)關(guān)系,才能破解對(duì)應(yīng)的密文。但是,在不考慮特殊途徑如電腦中毒直接導(dǎo)致密碼泄露的情況下,黑客要同時(shí)獲取以上信息并非易事。因此,這種密鑰生成算法產(chǎn)生的密鑰強(qiáng)度值得信賴(lài)。
用戶(hù)以往是將數(shù)據(jù)以明文的形式上傳到云端存儲(chǔ),云服務(wù)商為了防止黑客入侵也會(huì)對(duì)存儲(chǔ)在云服務(wù)器上的數(shù)據(jù)進(jìn)行加密。由于加密后的數(shù)據(jù)很難進(jìn)行檢索等操作,用戶(hù)一旦有檢索需求,云端只能先解密數(shù)據(jù)再檢索,這樣數(shù)據(jù)便完全暴露給云端管理員。按照本技術(shù)的思想,用戶(hù)先對(duì)明文數(shù)據(jù)m進(jìn)行全同態(tài)加密e=E(m)再將密文e上傳,云服務(wù)商再對(duì)全同態(tài)加密后的密文e進(jìn)行二次加密e′=E′(e),再將e′存儲(chǔ)到云端服務(wù)器。當(dāng)用戶(hù)有檢索需求R時(shí),云端管理員先進(jìn)行外層解密e=D′(e′)得到全同態(tài)加密的密文e,再對(duì)密文e進(jìn)行檢索。由于是對(duì)密文進(jìn)行檢索操作,數(shù)據(jù)便不會(huì)暴露給云端管理員,保證了數(shù)據(jù)隱私安全。
4.1檢索現(xiàn)狀
隨著云存儲(chǔ)技術(shù)的發(fā)展,云端數(shù)據(jù)的存儲(chǔ)量必將呈現(xiàn)爆炸性的增長(zhǎng),而云端在響應(yīng)用戶(hù)的任何數(shù)據(jù)處理請(qǐng)求之前必須進(jìn)行檢索操作。因此,如何高效且準(zhǔn)確地在海量密文數(shù)據(jù)中搜索出用戶(hù)想要的數(shù)據(jù),是密文檢索算法亟待解決的難題。目前,關(guān)于密文檢索的研究主要存在以下幾個(gè)問(wèn)題:
1) 檢索效率與精度無(wú)法兼顧
目前,有關(guān)學(xué)者提出的線性搜索算法雖然在檢索效率高、計(jì)算量小,但檢索結(jié)果的準(zhǔn)確度卻不夠[14]。此外,有學(xué)者提出基于關(guān)鍵詞的公鑰加密檢索算法,雖然具有一定的檢索精度,但檢索過(guò)程中卻需要大量的對(duì)數(shù)運(yùn)算,計(jì)算過(guò)程復(fù)雜、檢索效率較低[15];也有學(xué)者意識(shí)到上述兩種檢索算法存在的不足,提出了基于屬性排序的密文檢索方法,但這種檢索方法只是基于單屬性進(jìn)行了排序,單屬性考慮的情況比較單一,查詢(xún)條件不具備權(quán)威性,查準(zhǔn)率很低[16]。對(duì)文獻(xiàn)[14-16]三種密文檢索算法進(jìn)行性能比較,如表2所示。
表2 三種密文搜索方法的比較
2) 不能安全進(jìn)行檢索
在全同態(tài)加密的情況下,大部分學(xué)者公認(rèn)的進(jìn)行云端密文檢索的方法如下:首先,用戶(hù)對(duì)明文檢索詞ms也用全同態(tài)加密算法加密,加密算法為cs=(ms+2rs+p×qs);其次,云端服務(wù)器接收到密文檢索詞之后,讀取存儲(chǔ)在云端的密文集{C1,C2,…,Cs},其中任一密文Cs均以密文分塊的形式存在Cs=c1,c2,…,cn,并使用檢索算法Retrieval=((ci-cs)modpmod2來(lái)檢索密文集中包含密文詞的文檔,若Retrieval結(jié)果為0,則檢索到含有檢索詞的密文。
通過(guò)上述檢索過(guò)程可以發(fā)現(xiàn),在檢索算法Retrieval中,當(dāng)用戶(hù)需要檢索某個(gè)分詞時(shí),必須將密鑰p發(fā)送給云端服務(wù)器。而一旦云服務(wù)商管理員獲得密鑰p,就可以解密存儲(chǔ)在云端的密文,密文信息被解密之后完全暴露給了云服務(wù)商管理員,大大增加了密文信息泄密的風(fēng)險(xiǎn)。也有學(xué)者對(duì)這種檢索方法提出了改進(jìn),提出用qs取代P上傳到云端,使用檢索算法Retrieval= ( (ci-cs)modqs) mod 2,若Retrieval為0,則檢索到含有檢索詞的密文。但是這種檢索方法并沒(méi)有從根本上解決問(wèn)題,因?yàn)樵品?wù)商管理員接受到qs之后,便可以用另一種解密算法 = (cimodqs) mod 2解密云端的密文得到明文,同樣有泄密的風(fēng)險(xiǎn)。
3) 不能有效對(duì)檢索結(jié)果排序
如今,密文檢索不僅需要保證檢索到含有檢索詞的全部文檔,而且對(duì)檢索效率和檢索安全性越來(lái)越有較高的要求。特別是隨著用戶(hù)信息量的膨脹,現(xiàn)有的電腦硬件更新?lián)Q代的速度遠(yuǎn)遠(yuǎn)比不上信息量增長(zhǎng)的速度,隨著云存儲(chǔ)的出現(xiàn),用戶(hù)有迫切的需求來(lái)把信息存儲(chǔ)在云端以節(jié)省存儲(chǔ)空間。隨著存儲(chǔ)在云端的數(shù)據(jù)量的增多,如何解決用戶(hù)在海量密文信息中檢索的耗時(shí)問(wèn)題,如何將最符合用戶(hù)檢索預(yù)期的文檔返回給用戶(hù),都是迫切需要解決的問(wèn)題。
4.2檢索原理
顯然,在檢索過(guò)程中使用逐次匹配密文信息的線性搜索算法和需要大量對(duì)數(shù)運(yùn)算的公鑰加密算法是不合適的,而已有的密文排序搜索算法盡管計(jì)算量小速度快但查準(zhǔn)率不高。因此,該技術(shù)采用基于多屬性排序的密文檢索算法[17]。
該密文檢索方法主要包括文檔預(yù)處理和密文檢索及相關(guān)性排序兩部分內(nèi)容。其中,文檔預(yù)處理包括三步:一是中文分詞;二是關(guān)鍵詞多屬性特征向量的提?。蝗堑古潘饕慕?。密文檢索及相關(guān)性排序包括兩步:一是密文檢索;二是檢索結(jié)果的排序。
此外,由于使用不同的密鑰P對(duì)相同的分詞進(jìn)行全同態(tài)加密后的密文結(jié)果不同,將導(dǎo)致云端無(wú)法進(jìn)行檢索和匹配。因此,分詞的加密需要統(tǒng)一采用具有相同密鑰ps的加密算法,考慮到加密的效率,該防泄密存儲(chǔ)技術(shù)采用對(duì)稱(chēng)加密算法對(duì)分詞進(jìn)行單獨(dú)加密。
4.3文檔預(yù)處理
1) 文檔中文分詞
與英語(yǔ)有空格可以作為天然分詞符不同,中文分詞會(huì)復(fù)雜很多?;谥R(shí)理解的中文分詞算法能在盡可能保證語(yǔ)義的情況下進(jìn)行分詞,是一種得到廣泛應(yīng)用的成熟算法。該防泄密存儲(chǔ)技術(shù)采用基于知識(shí)理解的中文分詞算法Fa來(lái)對(duì)明文進(jìn)行處理,分詞過(guò)程如下:
(1) 用分詞算法Fa處理待加密的明文Ti,得到分詞結(jié)果集合:Fa(Ti)Wi
(5) 由于可能存在重復(fù)的情況,為了節(jié)省存儲(chǔ)空間,提升檢索效率,每次將關(guān)鍵詞和非關(guān)鍵詞提取至云端的時(shí)候,要對(duì)云端關(guān)鍵詞集合和非關(guān)鍵詞集合進(jìn)行更新。假如某分詞已存在則不再重復(fù)存儲(chǔ),只須添加一條新的映射關(guān)系即可。
2) 分詞多屬性特征向量的提取
分詞的屬性可以分為局部屬性和全局屬性,局部屬性主要包括分詞出現(xiàn)的頻率和位置,全局屬性主要包括整篇文檔被引頻次和下載次數(shù)。例如,用戶(hù)輸入某關(guān)鍵詞,如果在云端某文檔中出現(xiàn)的頻率多,位置較重要,則說(shuō)明該關(guān)鍵詞與該文檔局部相關(guān)性好;如果某幾篇文檔局部相關(guān)性差別較小,則考慮全局相關(guān)性,被引頻次和下載次數(shù)多的文檔與該關(guān)鍵詞相關(guān)性更好。分詞的多屬性如表3所示。
表3 分詞的多屬性
(1) 在關(guān)鍵詞集合Wi
(2) 局部屬性主要考慮分詞出現(xiàn)的頻率ti和位置posi。全局屬性則主要考慮云端文檔被引頻次ri和被下載次數(shù)dowi。
(3) 當(dāng)用戶(hù)輸入某個(gè)分詞時(shí),會(huì)優(yōu)先在關(guān)鍵詞索引中進(jìn)行匹配,如果沒(méi)有匹配成功再到非關(guān)鍵詞索引中進(jìn)行匹配。這樣,既可以提高檢索效率,又使檢索結(jié)果更具完備性。
3) 云端服務(wù)器建立倒排索引
倒排文件和索引文件一起構(gòu)成倒排索引結(jié)構(gòu)。其中,索引列表又分為關(guān)鍵詞索引列表和非關(guān)鍵詞索引列表兩部分。索引列表由一條條包含文檔所有分詞和分詞對(duì)應(yīng)指針的記錄組成。指針指向倒排文件中相應(yīng)的邏輯地址,倒排文件指出哪些文檔含有這個(gè)關(guān)鍵字以及關(guān)鍵字的詞頻、位置、被引頻次、下載次數(shù)等屬性信息,以及這些文檔的地址集合。通過(guò)檢索詞查找索引文件,再由索引文件指向倒排文件,倒排文件指向密文文件,這樣就可以很快地檢索出關(guān)鍵詞在哪些文檔中出現(xiàn)了。多屬性倒排索引如圖5所示。
圖5 多屬性倒排索引示意圖
4.4檢索及排序
該防泄密存儲(chǔ)技術(shù)采用的密文檢索方法如下:用戶(hù)將檢索詞明文對(duì)稱(chēng)加密后上傳到云端,云端通過(guò)該檢索詞去索引文件中匹配;然后通過(guò)映射關(guān)系得到包含該檢索詞的文檔結(jié)果集,得到文檔檢索結(jié)果后再計(jì)算該檢索詞和檢索結(jié)果中各文檔的相關(guān)度;最后按照相關(guān)度評(píng)分高低對(duì)結(jié)果文檔進(jìn)行排序。在檢索之前須要先對(duì)檢索語(yǔ)句進(jìn)行分詞、詞干化等預(yù)處理操作,用戶(hù)檢索過(guò)程如圖6所示。
圖6 密文檢索過(guò)程
(10)
在實(shí)際應(yīng)用中,屬性所對(duì)應(yīng)的權(quán)重大小可根據(jù)用戶(hù)選擇不同的排序方式而動(dòng)態(tài)調(diào)節(jié)。此外,檢索詞是否為關(guān)鍵詞也會(huì)影響到屬性權(quán)重的高低,比如:檢索詞為關(guān)鍵詞時(shí),局部屬性中該詞“出現(xiàn)的位置”屬性權(quán)重較高;檢索詞為非關(guān)鍵詞時(shí),局部屬性中該詞“出現(xiàn)的次數(shù)”屬性權(quán)重較高。該檢索算法不僅保證了檢索效率和檢索結(jié)果的完備性,也通過(guò)多屬性評(píng)分函數(shù)提高了檢索結(jié)果的準(zhǔn)確性。
本文提出的云環(huán)境下數(shù)據(jù)防泄密存儲(chǔ)技術(shù),是以Gentry提出的全同態(tài)加密算法為基礎(chǔ)的,并采用密鑰生成算法對(duì)傳統(tǒng)密鑰生成過(guò)程進(jìn)行了改進(jìn),不僅增強(qiáng)了數(shù)據(jù)在信道傳輸中的安全性也降低了密鑰管理的難度。此外,本文提出的密文檢索方法則降低了云服務(wù)器在傳統(tǒng)全同態(tài)加密檢索過(guò)程中因獲得密鑰P而解密云端密文造成泄密的概率。接下來(lái)就從上述兩方面詳細(xì)分析其性能。
1) 傳輸過(guò)程防黑客攻擊
現(xiàn)有的大多數(shù)云服務(wù)提供商僅僅對(duì)傳入云端的數(shù)據(jù)進(jìn)行加密存儲(chǔ),但數(shù)據(jù)在信道中卻是以明文形式傳輸,黑客一旦成功截獲,信息便被泄露無(wú)疑。該數(shù)據(jù)防泄密存儲(chǔ)技術(shù)以全同態(tài)加密算法為基礎(chǔ),使用戶(hù)數(shù)據(jù)在進(jìn)入信道之前便加密,即便黑客截獲也很難破解,大大降低了信道數(shù)據(jù)泄密的概率,增強(qiáng)了數(shù)據(jù)傳輸過(guò)程的安全性。
2) 檢索過(guò)程防云服務(wù)商泄密
本文提出的檢索方法是提前將明文數(shù)據(jù)進(jìn)行了分詞處理,把分詞用對(duì)稱(chēng)加密算法加密并上傳到云端索引文件進(jìn)行存儲(chǔ)。當(dāng)用戶(hù)有檢索需求時(shí),首先將檢索詞用相同的對(duì)稱(chēng)加密算法加密之后,上傳到云端與索引文件進(jìn)行匹配;再通過(guò)匹配成功的索引文件找到對(duì)應(yīng)的倒排文件;最后通過(guò)倒排文件找到對(duì)應(yīng)的密文。整個(gè)檢索過(guò)程,云端都不會(huì)獲取任何密鑰。因此,這種檢索方法保障了檢索過(guò)程的安全性。
3) 云服務(wù)商不能接觸到明文
數(shù)據(jù)上傳到云端之后,云服務(wù)提供商出于安全考慮會(huì)對(duì)存儲(chǔ)到服務(wù)器上的用戶(hù)數(shù)據(jù)進(jìn)行加密。如果用戶(hù)以明文形式將數(shù)據(jù)上傳到云端存儲(chǔ),擁有密鑰的云端管理員就能輕易破解服務(wù)器上的數(shù)據(jù),從而存在云端管理員泄密數(shù)據(jù)的威脅。本文提出的數(shù)據(jù)防泄密存儲(chǔ)技術(shù)是用戶(hù)先將明文數(shù)據(jù)加密成原始密文,然后將原始密文數(shù)據(jù)上傳到云端存儲(chǔ),云服務(wù)提供商對(duì)存儲(chǔ)在云服務(wù)器上的原始密文再進(jìn)行二次加密。因?yàn)樵贫斯芾韱T只擁有二次加密的密鑰而沒(méi)有原始密文的解密密鑰,所以無(wú)法破解原始密文得到明文,防止了云端管理員對(duì)存儲(chǔ)在云服務(wù)器上的數(shù)據(jù)泄密。
傳統(tǒng)云存儲(chǔ)平臺(tái)雖然也在云端對(duì)數(shù)據(jù)進(jìn)行了加密,但是擁有密鑰的云服務(wù)商卻能通過(guò)解密接觸到明文數(shù)據(jù)。此外,在云端和客戶(hù)之間的信道中數(shù)據(jù)以明文狀態(tài)傳遞容易被黑客截獲。在明文數(shù)據(jù)進(jìn)入不安全信道之前加密,則可以降低云服務(wù)商和黑客造成數(shù)據(jù)泄密的風(fēng)險(xiǎn)。如果用一般的加密算法對(duì)數(shù)據(jù)加密后再上傳到云端存儲(chǔ),勢(shì)必會(huì)影響云服務(wù)器對(duì)數(shù)據(jù)的處理性能,而對(duì)加法和乘法都具有同態(tài)性的全同態(tài)加密算法則無(wú)此問(wèn)題。針對(duì)全同態(tài)加密帶來(lái)的密鑰管理復(fù)雜和密文檢索困難的問(wèn)題,本文也提出了“密鑰管理算法”和“密文檢索算法”予以解決。在性能上,該技術(shù)增強(qiáng)了數(shù)據(jù)傳輸與存儲(chǔ)的保密性,其密文檢索效率高、結(jié)果準(zhǔn)確且文檔排序合理,值得推廣與應(yīng)用。
[1] 晏強(qiáng),張曉鋒,丁蕊.云存儲(chǔ)技術(shù)研究[J].計(jì)算機(jī)與信息技術(shù),2011(12):35-37.
[2] Jay Heiser,Mark Nicolett.Assessing the Security Risks of Cloud Computing[EB/OL].(2008-6-3)[2012-12-28].www.gartner.com/id=685308.
[3] Bit network.HTC泄密等30起泄密案的啟示[EB/OL].2013-09-05.http://www.people.com.cn/.
[4] 郭璐璐,許春根.云存儲(chǔ)密文檢索方法的研究[J].技術(shù)研究,2013(9):6-8.
[5] 李美云,李劍,黃超.基于同態(tài)加密的可信云存儲(chǔ)平臺(tái)[J].信息網(wǎng)絡(luò)安全,2012(9):35-40.
[6] 周可,王樺,李春花.云存儲(chǔ)技術(shù)及其應(yīng)用[J].中興通訊技術(shù),2010,16(4):24-27.
[7] 劉賽,李緒蓉,萬(wàn)麟瑞,等.云環(huán)境下資源調(diào)度模型研究[J].計(jì)算機(jī)工程與科學(xué),2013,35(3):48-51.
[8] 黃永峰,張久齡,李星.云存儲(chǔ)應(yīng)用中的加密存儲(chǔ)及其檢索技術(shù)[J].中興通訊技術(shù),2010,16(4):33-36.
[9] Riverst R,Adleman L,Dertouzos M.On data banks and privacy homomorphisms[M].New York:Academic Press,1978:169-180.
[10] 何勁.基于同態(tài)加密與認(rèn)證的WSN安全數(shù)據(jù)融合[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(9):314-316,321.
[11] Gentry C.Fully homomorphic encryption using ideal lattices[M].New York:Association for Computing Machinery,2009:169-178.
[12] Marten Van Dijk,Gentry C,Halev s,et al.Fully homomorphic encryption over the integers[C]//Pro of the 29th Annual International Conference on Theory and Application of Cryptograhic Technational.Berlin:Springer-Verlag,2010:24-43.
[13] 林如磊,王箭,杜賀.整數(shù)上的全同態(tài)加密方案[J].計(jì)算機(jī)應(yīng)用研究,2013,5(5):1515-1519.
[14] Song D,Wagner,Perrig A.Practical techniques for searcheson encrypted data[C]//Proc.of IEEE Symposium on Seccurity and Privacy’00.2000.
[15] Boneh D,Crescenzo G D,Ostrovsky R,et al.Public keyenccryption with keyword search[C]//Proc.of Eurocryp’04,Volume3027 of LNCS.Springer,2004.
[16] Wang C,Cao N,Li J,et al.Secure ranked keyword search over encrypted cloud data[C]//Proc.of ICDCS’10.2010.
[17] 馮貴蘭,譚良.云環(huán)境中基于多屬性排序的密文檢索方案[J].計(jì)算機(jī)科學(xué),2013,40(11):131-136.
DATA LEAK PREVENTION STORAGE TECHNOLOGY UNDER CLOUD ENVIRONMENT
Chen YongfuSong PengWang QifuChen Liping
(SchoolofMechanicalScienceandEngineering,HuazhongUniversityofScienceandTechnology,Wuhan430074,Hubei,China)
Preventing data leakage is one of the important directions of cloud storage security research.There are two main ways of data leaking under the cloud environment:one is the malicious theft of cloud data by cloud services providers,the other is the interception by hackers during the process of plaintext data transmission.In view of this,this paper puts forward a data leak prevention storage technology under the cloud environment.The technology uses fully homomorphism encryption algorithm to encrypt data in advance,which not only enhances the security of data in cloud storage or channel transmission process,but also achieves the direct operation on encrypted data in cloud.In addition,this paper also puts forward key generation algorithm and cipher text retrieval algorithm,they solve the key management difficulty and cipher text retrieval problem caused by this technology.The technology enhances the data confidentiality and improves the cipher text retrieval efficiency.
Data leak preventionCloud storage securityFully homomorphism encryptionKey managementCipher text retrieval
2015-03-06。國(guó)家自然科學(xué)基金項(xiàng)目(51475186)。陳永府,講師,主研領(lǐng)域:信息安全,云計(jì)算。宋鵬,碩士生。王啟富,教授。陳立平,教授。
TP393.2
A
10.3969/j.issn.1000-386x.2016.10.064