黃琪 王大帝 蔡啟煌
摘 要:現(xiàn)有的云數(shù)據(jù)存儲策略不能同時兼?zhèn)鋽?shù)據(jù)加密和數(shù)據(jù)檢索更新等功能,本文在深入研究同態(tài)加密技術(shù)的理論后,提出了基于同態(tài)加密技術(shù)的云數(shù)據(jù)存儲策略。該策略可以實現(xiàn)在不解密的情況下對密文信息進行檢索、更新等操作,既保證了云數(shù)據(jù)存儲的安全性和保密性,又增強了密文信息操作的方便性和易用性。同態(tài)加密技術(shù)支持對密文的檢索運算,可以解決傳統(tǒng)密文存儲策略不能及時有效地完成數(shù)據(jù)更新問題。
關(guān)鍵詞:云計算;云數(shù)據(jù);同態(tài)加密;存儲;安全
中圖分類號:TP333 文獻標識碼:A 文章編號:1671-2064(2019)03-0043-04
0 引言
云存儲是云計算的一種重要服務(wù)模式,它允許用戶將本地數(shù)據(jù)轉(zhuǎn)存到云中,節(jié)省了用戶本地的存儲空間。雖然如此,仍由很多用戶不愿意使用云存儲服務(wù),其根本原因在于云存儲的安全性不能得到有效的保護。云存儲的安全問題主要有云服務(wù)商不可信任、數(shù)據(jù)控制權(quán)與所有權(quán)分離、數(shù)據(jù)丟失、數(shù)據(jù)操作復雜以及數(shù)據(jù)保密等。本文是對云數(shù)據(jù)安全存儲和便利操作問題研究提出的一種新型數(shù)據(jù)存儲策略。
1 常見的云數(shù)據(jù)存儲策略
云數(shù)據(jù)存儲策略有很多種,根據(jù)云數(shù)據(jù)是否加密存儲,云數(shù)據(jù)存儲策略可分為兩類,即明文存儲和密文存儲。
1.1 明文存儲
明文存儲策略是指云數(shù)據(jù)不經(jīng)加密直接存放在云數(shù)據(jù)中心。明文存儲具有檢索方便、高效等特點。但是由于數(shù)據(jù)以明文的形式存放在云端,一旦非法用戶獲取登錄權(quán)限,就可以獲取全部的數(shù)據(jù)信息,因而數(shù)據(jù)安全性不能得到保證。
1.2 密文存儲
密文存儲策略是指將數(shù)據(jù)信息經(jīng)過加密后存放在云端,一旦用戶需要某項數(shù)據(jù)信息,可以通過密文傳輸?shù)姆绞絺魉偷接脩籼?,并予以解密。與明文存儲策略相比,密文存儲策略的安全性極大的加強了,但是由于云間數(shù)據(jù)都是采用密文格式存儲,數(shù)據(jù)檢索比較復雜,效率降低。
如圖1中(a)所示,在密文存儲策略中,用戶A和用戶B的數(shù)據(jù)都是采用加密的形式存儲在云端。當用戶A請求獲得用戶B中的數(shù)據(jù),首先要向云數(shù)據(jù)中心提出請求,然后云數(shù)據(jù)中心將加密數(shù)據(jù)解密獲得明文,在明文數(shù)據(jù)庫中找到用戶A需要的數(shù)據(jù),最后再從用戶B處提取數(shù)據(jù)發(fā)送給用戶A。
采用密文存儲策略雖然有效的保護了云間的數(shù)據(jù)安全,但是檢索效率極為低下。雖然云計算具有超級計算能力,但是這種每次請求信息都要進行加解密運算,極大的浪費了云中計算資源,而且這種密文存儲策略也是有風險的,當云數(shù)據(jù)中心進行解密時,生成的暫時明文數(shù)據(jù)庫,也有被非法用戶竊取的風險。
為了提高密文存儲策略,研究者又提出了基于關(guān)鍵詞的密文存儲策略?;陉P(guān)鍵詞的密文存儲策略是在原有的密文存儲策略中添加關(guān)鍵詞數(shù)據(jù)庫,云數(shù)據(jù)同樣是采用密文的格式存儲,但在數(shù)據(jù)中心增加關(guān)鍵詞數(shù)據(jù)庫,以明文格式存儲,關(guān)鍵詞與密文存儲的數(shù)據(jù)信息建立對應關(guān)系(倒排記錄)。
如圖1(b)所示,在基于關(guān)鍵詞的密文存儲策略中,當用戶檢索數(shù)據(jù)信息時,先向數(shù)據(jù)中心發(fā)送檢索請求,數(shù)據(jù)中心在接收請求后,從關(guān)鍵詞數(shù)據(jù)庫中檢索,最后將符合要求的密文數(shù)據(jù)轉(zhuǎn)發(fā)給請求用戶?;陉P(guān)鍵詞的密文存儲策略雖然不再需要對密文數(shù)據(jù)庫進行解密,計算效率有所提高,但是僅對關(guān)鍵詞檢索性的能不夠好,效率不高。
由于現(xiàn)有的密文存儲策略不支持對密文直接運算操作,因此數(shù)據(jù)更新也是一個比較復雜的過程。如圖2所示,在密文存儲策略中對數(shù)據(jù)更新,首先要將數(shù)據(jù)解密,然后對明文數(shù)據(jù)進行更新操作,最后再將數(shù)據(jù)重新加密存儲,并刪除原有的密文數(shù)據(jù)。
2 同態(tài)加密技術(shù)
2.1 同態(tài)加密理論
同態(tài)加密(Homomorphic Encryption)的概念是由Rivest、Adleman和Dertouzos在1978年提出的。同態(tài)加密技術(shù)具有零知識證明特征,不需要對密文信息解密而直接對密文進行數(shù)據(jù)操作運算,在完成數(shù)據(jù)檢索運算功能的同時,保證了數(shù)據(jù)存儲安全的保密性。
定義1(同態(tài)加密).同態(tài)加密又稱為隱私同態(tài),它是一種允許對密文進行特定代數(shù)運算得到的結(jié)果與對明文進行同樣運算后再進行加密得到的結(jié)果一致的加密體制。
定義2(加法同態(tài)).設(shè)明文經(jīng)過加密后生成密文,即,若對明文和密文分別進行加法運算,且滿足,則稱該加密算法為加法同態(tài)加密算法。
定義3(乘法同態(tài)).設(shè)明文經(jīng)過加密后生成密文,即,若對明文和密文分別進行加乘法運算,且滿足,則稱該加密算法為乘法同態(tài)加密算法。
定義4(全同態(tài)).一個加密算法如果既是加法同態(tài),又是乘法同態(tài)的,則該算法稱為全同態(tài)加密算法。
定義5(同態(tài)加密方案).同態(tài)加密方案通常由密鑰生成、加密、解密和評估算法組成,即HE=(KeyGen,Enc,Dec,Eval)。
(1)密鑰生成算法KeyGen:(pk,sk,evk)←KeyGen(k),k為安全參數(shù)。KenGen算法根據(jù)安全參數(shù)k為用戶生成公共密鑰pk、私有密鑰sk和評估密鑰evk。
(2)加密算法Enc:。加密算法根據(jù)明文和公共密鑰pk生成密文c。
(3)解密算法Dec:。解密算法通過私有密鑰sk將密文c解密,生成解密信息。
(4)評估算法Eval:,其中為評估函數(shù),為密文,評估算法Eval根據(jù)評估密鑰evk,評估函數(shù)對密文進行評估運算生成評估密文,當時,則可以判定該算法具有函數(shù)性質(zhì)的同態(tài)算法。如為加法運算,則該加密算法為加法同態(tài)。
2.2 同態(tài)加密技術(shù)在云存儲中應用的可行性
云存儲是指通過集群應用、網(wǎng)格計算或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中大量各種不同類型的存儲設(shè)備通過應用軟件集合起來協(xié)同工作,共同對外提供數(shù)據(jù)存儲和業(yè)務(wù)訪問功能的服務(wù)系統(tǒng)。為了保證云中數(shù)據(jù)的保密性和安全性,通常采用數(shù)據(jù)加密技術(shù)將云數(shù)據(jù)加密,使不具有數(shù)據(jù)訪問權(quán)限的用戶無法讀取、檢索和修改云數(shù)據(jù)。但是,傳統(tǒng)的加密技術(shù)雖然能夠保證數(shù)據(jù)的安全性,但無法對密文信息進行直接檢索、修改、更新等操作,因而極大的降低了云數(shù)據(jù)的使用效率。
同態(tài)加密能夠在不解密的前提下對密文數(shù)據(jù)進行操作運算,既增強了數(shù)據(jù)存儲的安全性,也簡化了密文數(shù)據(jù)操作流程,因而得到研究者的廣泛關(guān)注。2009年IBM研究員Gentry在參考文獻[2]中提出基于理想格的全同態(tài)加密方案,為同態(tài)加密研究提供了新的思路?,F(xiàn)有的研究工作多是在該基礎(chǔ)上展開的。2010年Maten、Gentry等人在參考文獻[3]中又進一步提出了整數(shù)上的全同態(tài)加密方案。2011年湯殿華等在參考文獻[4]中提出了以減少公鑰尺寸、加快計算速度的改進方案。2011年黃汝維等在參考文獻[5]中提出了將同態(tài)加密應用于云環(huán)境中的加密算法。
目前同態(tài)加密技術(shù)還處于研究階段,雖然Gentry等人提出了相應的同態(tài)加密算法,但是其算法實現(xiàn)復雜、計算量大,因而在普通網(wǎng)絡(luò)環(huán)境很難得到應用。但是,由于云計算具有自助服務(wù)、資源共享、超大規(guī)模、虛擬化、高擴展性、高可靠性、通用性、價格低廉等特點,因此可以將云計算環(huán)境中空閑的計算設(shè)備通過虛擬技術(shù)抽象為一個超級計算服務(wù)器運行同態(tài)加密算法提供加密服務(wù),因而同態(tài)加密技術(shù)可以在云計算環(huán)境中得到有效應用。黃汝維等在參考文獻[5]中已經(jīng)提出了基于云計算環(huán)境的同態(tài)加密方案CESVMC,并通過實驗證明其加密性能和密文計算性能。
3 基于同態(tài)加密技術(shù)的云數(shù)據(jù)存儲策略
3.1 數(shù)據(jù)存儲
基于同態(tài)加密技術(shù)的云數(shù)據(jù)存儲采用非對稱加密機制,利用云服務(wù)提供商提供的公共密鑰和同態(tài)加密算法對數(shù)據(jù)進行加密,然后通過密文傳輸提交給云數(shù)據(jù)中心,云數(shù)據(jù)中心將云用戶數(shù)據(jù)轉(zhuǎn)存到云環(huán)境中的存儲設(shè)備。在云數(shù)據(jù)加密存儲中,私有密鑰僅為數(shù)據(jù)屬主的云用戶所有,因此在整個云環(huán)境中只有數(shù)據(jù)屬主用戶才可以對數(shù)據(jù)解密。
如圖3所示,云用戶A將本地數(shù)據(jù)通過加密生成密文信息并傳送到云端,云服務(wù)提供商的數(shù)據(jù)中心將用戶A的密文數(shù)據(jù)分發(fā)到可利用的云間存儲設(shè)備B、C、D三處,在B、C、D三處的存儲設(shè)備中存儲用戶A的數(shù)據(jù)都是密文數(shù)據(jù),因而B、C、D三方無法讀取獲得存儲在其存儲設(shè)備中的數(shù)據(jù)信息,不僅B、C、D不能讀取A用戶的數(shù)據(jù)信息,而且連負責分發(fā)數(shù)據(jù)的云數(shù)據(jù)中心也無法獲得A提交數(shù)據(jù)的真實內(nèi)容。
基于同態(tài)加密技術(shù)的云數(shù)據(jù)存儲過程中,用戶將本地數(shù)據(jù)加密后傳送給云數(shù)據(jù)中心,在整個云計算環(huán)境中,云數(shù)據(jù)中心都是對密文信息進行傳輸、存儲、檢索、更新和計算的,因此保證了云數(shù)據(jù)的保密性。
由于數(shù)據(jù)在云環(huán)境中是以密文形式呈現(xiàn)的,因此即使數(shù)據(jù)被非法用戶竊聽截獲,也不會泄露數(shù)據(jù)信息。采用非對稱加密機制的數(shù)據(jù)加密策略,解密私鑰僅為數(shù)據(jù)所有,數(shù)據(jù)的控制管理者云服務(wù)提供商也不能破解數(shù)據(jù)信息,從而避免了第三方服務(wù)商不能切實履行信托責任的監(jiān)守自盜行為。
3.2 數(shù)據(jù)檢索
基于同態(tài)加密技術(shù)的云數(shù)據(jù)存儲策略與傳統(tǒng)的密文存儲策略相比,最突出的優(yōu)點就是允許對密文信息進行直接操作。經(jīng)過加密存儲在云環(huán)境中的數(shù)據(jù)信息可以不經(jīng)解密,直接執(zhí)行檢索、更新等操作,既方便用戶的數(shù)據(jù)操作需求,也提高了數(shù)據(jù)計算的效率。
圖4是基于同態(tài)加密技術(shù)的云數(shù)據(jù)存儲策略的數(shù)據(jù)檢索過程示意圖。在圖4中,云用戶A、B、C、D、E、F、G、H等通過云端加密服務(wù)器將數(shù)據(jù)進行加密后傳送給云數(shù)據(jù)中心,云數(shù)據(jù)中心將密文數(shù)據(jù)轉(zhuǎn)存到云間可用存儲設(shè)備中。
當用戶A向云數(shù)據(jù)中心請求數(shù)據(jù)時,云數(shù)據(jù)中心直接對密文進行檢索計算,其檢索步驟如下所示:
Step1:請求用戶A向云數(shù)據(jù)中心提交“數(shù)據(jù)請求”;
Step2:數(shù)據(jù)中心在接收到“數(shù)據(jù)請求”后,執(zhí)行以下步驟:
Step2.1:對請求的數(shù)據(jù)m進行加密,生成密文c;
Step2.2:對密文c進行檢索運算;
Step2.3:生成檢索報告提交給數(shù)據(jù)中心;
Step3:云數(shù)據(jù)中心根據(jù)“檢索報告”向請求用戶A發(fā)送“回復”信息,告知其所需數(shù)據(jù)為用戶G所有,需要獲得用戶G的授權(quán);
Step4:請求用戶A在收到數(shù)據(jù)中心的“回復”后,直接與用戶G取得聯(lián)系,發(fā)送“數(shù)據(jù)請求”。
傳統(tǒng)的數(shù)據(jù)加密存儲策略由于不允許對密文數(shù)據(jù)的直接操作,因此其檢索過程通常比較復雜,耗時時間長且效率低;而基于同態(tài)加密技術(shù)的數(shù)據(jù)存儲策略在不解密的情況下對密文信息進行直接操作,過程簡單、耗時時間短且效率高。
3.3 數(shù)據(jù)更新
傳統(tǒng)加密存儲策略中數(shù)據(jù)更新的過程極為復雜,首先要對明文信息進行更新,然后將更新后的明文再次加密存儲,最后將原有的過期明文刪除。而基于同態(tài)加密技術(shù)的數(shù)據(jù)存儲策略由于允許對密文數(shù)據(jù)直接操作,其數(shù)據(jù)更新過程非常簡單,只需要對相應的密文信息直接更新即可。
如圖5所示的數(shù)據(jù)更新流程中,傳統(tǒng)數(shù)據(jù)加密存儲策略的數(shù)據(jù)更新過程除了要對明文進行更新操作外,還要進行“新明文加密”和“舊密文刪除”等輔助操作,過程復雜、耗時時間長,而基于同態(tài)加密技術(shù)的數(shù)據(jù)存儲策略的更新過程只需要直接對密文數(shù)據(jù)進行更新操作即可,過程簡單、耗時時間少。
4 結(jié)語
本文是針對密文存儲中密文直接操作問題提出的解決方案。同態(tài)加密技術(shù)可以實現(xiàn)對密文數(shù)據(jù)的直接操作,簡化了數(shù)據(jù)檢索、更新的操作過程,節(jié)省了執(zhí)行時間,提高了運行效率。雖然現(xiàn)有的同態(tài)加密技術(shù)的實現(xiàn)比較復雜,所需計算資源比較大,但是由于云計算具有超大規(guī)模、超強計算能力的特征,正好彌補了同態(tài)加密技術(shù)的不足,因此基于同態(tài)加密技術(shù)的云數(shù)據(jù)存儲將有比較廣闊的應用空間。
參考文獻
[1] Balachandra Reddy Kandukuri, Ramakrishna Paturi V, Dr. Atanu Rakshit. Cloud Security Issues// 2009 IEEE International Conference on Services Computing,2009:516-520.
[2] Craig Gentry. Fully Homomorphic Encryption Using Ideal Lattices// STOC09 ACM 978-1-60558-506-2/09/05:169-178.
[3] Marten van Dijk, Craig Gentry, Shai Halevi, Vinod Vaikuntanathan. Fully Homorphic Encryption over the Integers// EUROCRYPT 2010,LNCS 6110,pp.24-43,2010.
[4] Craig Gentry, Shai Halevi. Implementing Gentrys Fully-Homomorphic Encryption Scheme// Eurocrypt 2011, LNCS 6632,pp.129-148,2011.
[5] 黃汝維,桂小林,余思,等.云環(huán)境中支持隱私保護的可計算加密方法[J].計算機學報,2011(12):2391-2402.
[6] Vinod Vaikuntanathan, Computing Blindfolded: New Developments in Fully Homomorphic Encryption.
[7] 馮登國,張敏,張妍,等.云計算安全研究[J].軟件學報,2011,22(1):71-83.