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