郭棟1,2,王偉1,2,曾國蓀1,2
1.同濟大學(xué) 計算機科學(xué)與技術(shù)系,上海 201804; 2.國家高性能計算機工程技術(shù)研究中心 同濟大學(xué)分中心,上海 201804
摘要:分布式緩存是云計算系統(tǒng)中提高應(yīng)用程序性能的重要手段,針對云計算環(huán)境中分布式緩存的隱私問題,提出一種基于中國剩余定理的輕量級分布式緩存數(shù)據(jù)加密存取方法。該方法能夠保護緩存數(shù)據(jù)的機密性,防止云計算環(huán)境中的其他用戶、平臺提供商或者攻擊者獲取明文緩存數(shù)據(jù),且能夠較好地保證緩存系統(tǒng)的性能,最后通過實驗證明了該方法的有效性。
關(guān)鍵詞:分布式緩存;云計算;中國剩余定理;對稱加密
0引言
隨著云計算技術(shù)發(fā)展的不斷深入,越來越多的應(yīng)用從傳統(tǒng)IT架構(gòu)遷移到了云計算環(huán)境,利用云計算的彈性資源分配和分布式處理技術(shù),增強了應(yīng)用系統(tǒng)的穩(wěn)定性,也方便應(yīng)用的快速部署和按需擴展[1]。為了進一步提高系統(tǒng)的性能,分布式緩存技術(shù)得以引入,為用戶提供高性能、高可用、可伸縮的數(shù)據(jù)緩存服務(wù),解決傳統(tǒng)數(shù)據(jù)庫面臨的大規(guī)模數(shù)據(jù)訪問的瓶頸問題。
當(dāng)前,云計算中的分布式緩存技術(shù)已有較多的研究?,F(xiàn)有的分布式緩存產(chǎn)品已有不少,如Memcached [23]是一個高性能的分布式內(nèi)存對象緩存系統(tǒng),用于動態(tài)Web應(yīng)用數(shù)據(jù)以減輕數(shù)據(jù)庫負(fù)載。它通過在內(nèi)存中緩存數(shù)據(jù)和對象來減少讀取數(shù)據(jù)庫的次數(shù),從而提高Web應(yīng)用的性能。目前各云計算平臺的緩存系統(tǒng)大多基于Memcached開發(fā),被Amazon Web Services[4]、Google App Engine[5]、Sina App Engine[6]、阿里云、盛大云等在內(nèi)的多家知名云平臺企業(yè)使用。而上述系統(tǒng)主要特征體現(xiàn)在其分布式算法、數(shù)據(jù)分區(qū)、數(shù)據(jù)一致性以及身份認(rèn)證方面[7],對數(shù)據(jù)隱私方面考慮欠缺[8]??偠灾?,目前關(guān)于分布式緩存系統(tǒng)的研究主要集中于其性能的提升,對分布式緩存系統(tǒng)的隱私性和安全性研究尚不充分。
1相關(guān)研究
1.1云計算中分布式緩存技術(shù)
分布式緩存將數(shù)據(jù)分布到多個緩存服務(wù)節(jié)點,在內(nèi)存中管理數(shù)據(jù),對外提供統(tǒng)一的訪問接口,基于冗余備份機制實現(xiàn)高可用支持。
當(dāng)應(yīng)用程序需要緩存數(shù)據(jù)時,客戶端通過相應(yīng)的分布式算法獲得key對應(yīng)的存儲節(jié)點,然后客戶端通過TCP/IP協(xié)議將數(shù)據(jù)發(fā)送給緩存服務(wù)器,緩存服務(wù)器調(diào)用本地Memcached服務(wù)將數(shù)據(jù)緩存在內(nèi)存中。類似的應(yīng)用程序讀取緩存時,首先通過分布式算法獲得key所在節(jié)點,然后通過網(wǎng)絡(luò)獲取相應(yīng)的數(shù)據(jù)。由于Memcached本身沒有加密處理的功能,數(shù)據(jù)的存儲往往是明文形式的,攻擊者、用戶或者系統(tǒng)管理員很容易獲得緩存內(nèi)容,從而造成了分布式緩存系統(tǒng)的安全性隱患[8]。
為了解決云計算中分布式緩存系統(tǒng)存在的上述安全問題,傳統(tǒng)的加密方案如AES、DES、3DES、IDEA[9]等雖然可以很好地完成加解密工作,但是其運算過程比較復(fù)雜,會導(dǎo)致分布式緩存系統(tǒng)的性能大幅下降,需要設(shè)計更加輕量級的加密算法。本文利用中國剩余定理,構(gòu)造一種輕量級的分布式緩存加密存取方法,下面將進行詳細的描述。
12中國剩余定理
中國剩余定理[9](Chinese Remainder Theorem, CRT)亦稱孫子定理,它描述了根據(jù)正整數(shù)的同余理論求解某一未知正整數(shù)的方法,具體可描述如下:
如果m1,m2,…,mn是兩兩互素的n個正整數(shù),那么對任意整數(shù)a1,a2,…,an,構(gòu)造一元線性同余方程組:
方程組S必有解,解的形式為:
M′i是Mi模mi的數(shù)論倒數(shù),即M′i是滿足同余方程(如式(5)所示)的最小正整數(shù)解,具體可以通過擴展歐幾里德算法(Extended Euclidean algorithm)[10]計算。
M′iMi≡1(modmi)(5)
根據(jù)式(2),可得S的最小正整數(shù)解為:
基于上述中國剩余定理,可以構(gòu)建相應(yīng)的數(shù)據(jù)加密與解密方法。
2云計算中分布式緩存加密存取方法
2.1加密過程
在一個云計算環(huán)境中,假如某一應(yīng)用需要將數(shù)據(jù)D安全地存到分布式緩存系統(tǒng)中,需要經(jīng)過下面的步驟實現(xiàn)原始數(shù)據(jù)D到密文X的變換。
(1)首先將D按字節(jié)順序分成N組G1,G2,…,GN,每組包含B bit,每組Gi(i=1,2,…,N)再分為n個單元u1,u2,…,un,每個單元包含b bit。則可以將D劃分為一個N行n列的矩陣:
(2)選取n個互素的整數(shù)m1,m2,…,mn,且滿足條件:
mj>uij(j=1,2,…,n;i=1,2,…,N)(8)
即保證mj大于矩陣中第j列的所有元素。
(3)對矩陣中的每一行ri(i=1,2,…,N)進行如下變換操作:
構(gòu)造如下一元線性同余方程組:
根據(jù)式(6)可得式(8)的解為:
則可得變換后的矩陣為:
(4)最后將x1,x2,…,xN按順序連接即可得到加密后的密文X:
X=x1⊕x2⊕…⊕xN(12)
經(jīng)過上述計算得到加密后的密文X后,保存密鑰(N,m1,m2,…,mn),同時調(diào)用分布式緩存系統(tǒng)的API對加密數(shù)據(jù)進行緩存,這樣就完成了緩存數(shù)據(jù)的加密存儲過程。
2.2解密過程
解密過程相對于加密過程來說是很簡單的,對于經(jīng)過上述加密過程加密的緩存數(shù)據(jù)X,需要經(jīng)過下面幾步完成X到D的變換。
(1)將X平均分成N組x1,x2,…,xN,得到加密后的數(shù)據(jù)矩陣:
P′=[x1 ,x2 ,...,xN]T(13)
(2)對每一行xi構(gòu)造如下同余方程組
則可以將xi解密為ui1,ui2,…,uin,也就恢復(fù)了原始數(shù)據(jù)矩陣P;
(3)將得到的原始數(shù)據(jù)矩陣按先行后列順序進行連接即可得到原始數(shù)據(jù)D:
D=u11⊕u12⊕…⊕u1n⊕u21⊕u22⊕…⊕uNn(15)
顯而易見,這是一種對稱加密模式。
2.3參數(shù)取值約束分析
對于計算機來說,目前常見的處理器最多能處理64位的字長整數(shù),在實際的系統(tǒng)中必需考慮這個因素。
首先,m1,m2,…,mn取值的選取需要保證式(3)中的M不超過264,則:
又根據(jù)式(8)的約束,需要原始數(shù)據(jù)矩陣P中的每個元素大小在合理的范圍內(nèi)。假設(shè)P中每個單元的數(shù)據(jù)長度為b bit,根據(jù)式(8)和式(16)可得,對P中任意一行ri(i=1,2,…,N),有:
所以:nb≤64(19)
由此可見,一般情況下,必需滿足式(19)的約束條件,才可以構(gòu)建實際的應(yīng)用系統(tǒng)。當(dāng)然,上述情況考慮的是P每一列數(shù)據(jù)都可能存在某單元的數(shù)據(jù)值是2b的情況,在這樣的假設(shè)下不需要通過遍歷P來求mi的下限;如果P的規(guī)模較小,可以通過并行方式遍歷P的每一列,獲得mi的下限,則可以取較小的mi,減少擴展歐幾里德算法計算M′i的時間。
綜上,在實際的系統(tǒng)中,可以根據(jù)加密數(shù)據(jù)規(guī)模的大小,選擇不同的約束方式來加快加密的過程。
3實驗與結(jié)果分析
3.1實驗環(huán)境與方案
為了測試本文提出方案的可用性和有效性,基于分布式Memcached環(huán)境,采用3臺PC構(gòu)建小型云計算環(huán)境和分布式緩存系統(tǒng),一臺作為應(yīng)用服務(wù)器,另外兩臺PC構(gòu)成分布式緩存環(huán)境,各節(jié)點之間通過百兆以太網(wǎng)連接。
為了排除分布式算法造成的影響,實驗統(tǒng)一采用簡單的哈希算法進行數(shù)據(jù)映射,即:
Nodeid=Hash(key)%2(20)
將本文提出的方法命名為SCHE方法,不加密的方法命名為NSCHE。實驗由兩部分構(gòu)成:
(1)對不同大小的數(shù)據(jù)進行加密緩存,分別使用NSCHE、SCACHE、DES、3DES、AES對數(shù)據(jù)進行加密,然后存儲到對應(yīng)的存儲節(jié)點。計算循環(huán)100次的時間消耗,比較各種加密方法的時間消耗情況。
(2)對(1)中加密的數(shù)據(jù)進行讀取,分別使用相應(yīng)的解密方案還原原始數(shù)據(jù),循環(huán)100次,比較各種解密方法的時間消耗情況。
3.2實驗結(jié)果分析
對于31節(jié)中的實驗方案,得到的實驗結(jié)果如圖1和圖2所示。
從圖1中可以看出,本文的方案與不使用加密方法的時間消耗相差不大,而其他幾種方案造成了明顯的性能影響。另外,圖2顯示了本文方案的解密過程與不使用加密的效果相差無幾,而其他方案需要較多的額外時間開銷。通過上述實驗,可以驗證本文提出方法的有效性。
4結(jié)論
本文針對目前云計算環(huán)境中分布式緩存系統(tǒng)存在的安全性問題,提出一種基于中國剩余定理的分布式緩存加密存取的方法,該方法能夠保證云環(huán)境中緩存數(shù)據(jù)的機密性,且效率高于目前主流的復(fù)雜加密方案,能夠滿足云環(huán)境中分布式緩存的性能需求。當(dāng)然,該方案仍有許多不足,比如不能解決緩存數(shù)據(jù)篡改的問題,未來工作希望能夠從多個角度優(yōu)化系統(tǒng)的安全措施,提高云計算中分布式緩存系統(tǒng)的安全性,從而進一步提高云計算系統(tǒng)的安全性。
參考文獻
[1] Wikipedia. Cloud computing[EB/OL]. [20150901].http://enwikipediaorg/wiki/Cloud_computing.
?。?] JOSE J, SUBRAMONI H, Luo Miao, et al. Memcached design on high performance RDMA capable interconnects[C]. 2011 International Conference on Parallel Processing(ICPP), 2011: 743752.
?。?] Memcached: highperformance, distributed memory object cachin system[EB/OL]. (20110000) [20150901]. http://memcachedorg.
[4] VARIA J. Architecting for the Cloud: Best practices[EB]. Amazon Web Services, 2010: 710.
?。?] BEDRA A. Getting started with Google app engine and clojure[J]. Internet Computing IEEE, 2010, 14(4):8588.
?。?] 叢磊. Sina App Engine 架構(gòu)—云計算時代的分布式 Web 服務(wù)解決方案[J]. 程序員, 2010 (11): 5962.
?。?] 秦秀磊, 張文博, 魏峻, 等. 云計算環(huán)境下分布式緩存技術(shù)的現(xiàn)狀與挑戰(zhàn)[J]. 軟件學(xué)報, 2013, 24(1): 5066.
?。?] 王偉, 曾國蓀. 基于 Bayes 認(rèn)知信任模型的 MANETs 自聚集算法[J]. 中國科學(xué): 信息科學(xué), 2010(2): 228239.
?。?] Wang Wei, Dong Guo, Deng Zhigang, et al. Reachability analysis of costreward timed automata for energy efficiency scheduling[C].Proceedings of Programming Models and Applications on Multicores and Manycores, ACM, 2014: 140.
?。?0] AUTHORS U. 58 performance evaluation of symmetric encryption algorithms performance evaluation of symmetric encryption algorithms[J]. International Journal of Computer Science & Network Security, 2008, 8(12):280286.