郭 棟,王 偉,曾國蓀
(1.同濟大學 計算機科學與技術系,上海 201804;2.國家高性能計算機工程技術研究中心 同濟大學分中心,上海 201804)
云計算中一種分布式緩存加密存取方法*
郭 棟1,2,王 偉1,2,曾國蓀1,2
(1.同濟大學 計算機科學與技術系,上海 201804;2.國家高性能計算機工程技術研究中心 同濟大學分中心,上海 201804)
分布式緩存是云計算系統中提高應用程序性能的重要手段,針對云計算環境中分布式緩存的隱私問題,提出一種基于中國剩余定理的輕量級分布式緩存數據加密存取方法。該方法能夠保護緩存數據的機密性,防止云計算環境中的其他用戶、平臺提供商或者攻擊者獲取明文緩存數據,且能夠較好地保證緩存系統的性能,最后通過實驗證明了該方法的有效性。
分布式緩存;云計算;中國剩余定理;對稱加密
隨著云計算技術發展的不斷深入,越來越多的應用從傳統IT架構遷移到了云計算環境,利用云計算的彈性資源分配和分布式處理技術,增強了應用系統的穩定性,也方便應用的快速部署和按需擴展[1]。為了進一步提高系統的性能,分布式緩存技術得以引入,為用戶提供高性能、高可用、可伸縮的數據緩存服務,解決傳統數據庫面臨的大規模數據訪問的瓶頸問題。
當前,云計算中的分布式緩存技術已有較多的研究。現有的分布式緩存產品已有不少,如Memcached[2-3]是一個高性能的分布式內存對象緩存系統,用于動態Web應用數據以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高Web應用的性能。目前各云計算平臺的緩存系統大多基于Memcached開發,被Amazon Web Services[4]、Google App Engine[5]、Sina App Engine[6]、阿里云、盛大云等在內的多家知名云平臺企業使用。而上述系統主要特征體現在其分布式算法、數據分區、數據一致性以及身份認證方面[7],對數據隱私方面考慮欠缺[8]。總而言之,目前關于分布式緩存系統的研究主要集中于其性能的提升,對分布式緩存系統的隱私性和安全性研究尚不充分。
1.1 云計算中分布式緩存技術
分布式緩存將數據分布到多個緩存服務節點,在內存中管理數據,對外提供統一的訪問接口,基于冗余備份機制實現高可用支持。
當應用程序需要緩存數據時,客戶端通過相應的分布式算法獲得key對應的存儲節點,然后客戶端通過TCP/IP協議將數據發送給緩存服務器,緩存服務器調用本地Memcached服務將數據緩存在內存中。類似的應用程序讀取緩存時,首先通過分布式算法獲得key所在節點,然后通過網絡獲取相應的數據。由于Memcached本身沒有加密處理的功能,數據的存儲往往是明文形式的,攻擊者、用戶或者系統管理員很容易獲得緩存內容,從而造成了分布式緩存系統的安全性隱患[8]。
為了解決云計算中分布式緩存系統存在的上述安全問題,傳統的加密方案如AES、DES、3DES、IDEA[9]等雖然可以很好地完成加解密工作,但是其運算過程比較復雜,會導致分布式緩存系統的性能大幅下降,需要設計更加輕量級的加密算法。本文利用中國剩余定理,構造一種輕量級的分布式緩存加密存取方法,下面將進行詳細的描述。
1.2 中國剩余定理
中國剩余定理[9](Chinese Remainder Theorem, CRT)亦稱孫子定理,它描述了根據正整數的同余理論求解某一未知正整數的方法,具體可描述如下:
如果m1,m2,…,mn是兩兩互素的n個正整數,那么對任意整數a1,a2,…,an,構造一元線性同余方程組:
(1)
方程組S必有解,解的形式為:
(2)
其中:
(3)

(4)

(5)
根據式(2),可得S的最小正整數解為:
(6)
基于上述中國剩余定理,可以構建相應的數據加密與解密方法。
2.1 加密過程
在一個云計算環境中,假如某一應用需要將數據D安全地存到分布式緩存系統中,需要經過下面的步驟實現原始數據D到密文X的變換。
(1)首先將D按字節順序分成N組G1,G2,…,GN,每組包含Bbit,每組Gi(i=1,2,…,N)再分為n個單元u1,u2,…,un,每個單元包含bbit。則可以將D劃分為一個N行n列的矩陣:
(7)
(2)選取n個互素的整數m1,m2,…,mn,且滿足條件:
mj>uij(j=1,2,…,n;i=1,2,…,N)
(8)
即保證mj大于矩陣中第j列的所有元素。
(3)對矩陣中的每一行ri(i=1,2,…,N)進行如下變換操作:
構造如下一元線性同余方程組:
(9)
根據式(6)可得式(8)的解為:
(10)
則可得變換后的矩陣為:
(11)
(4)最后將x1,x2,…,xN按順序連接即可得到加密后的密文X:
X=x1⊕x2⊕…⊕xN
(12)
經過上述計算得到加密后的密文X后,保存密鑰(N,m1,m2,…,mn),同時調用分布式緩存系統的API對加密數據進行緩存,這樣就完成了緩存數據的加密存儲過程。
2.2 解密過程
解密過程相對于加密過程來說是很簡單的,對于經過上述加密過程加密的緩存數據X,需要經過下面幾步完成X到D的變換。
(1)將X平均分成N組x1,x2,…,xN,得到加密后的數據矩陣:
P′=[x1,x2,...,xN]T
(13)
(2)對每一行xi構造如下同余方程組

(14)
則可以將xi解密為ui1,ui2,…,uin,也就恢復了原始數據矩陣P;
(3)將得到的原始數據矩陣按先行后列順序進行連接即可得到原始數據D:
D=u11⊕u12⊕…⊕u1n⊕u21⊕u22⊕…⊕uNn
(15)
顯而易見,這是一種對稱加密模式。
2.3 參數取值約束分析
對于計算機來說,目前常見的處理器最多能處理64位的字長整數,在實際的系統中必需考慮這個因素。
首先,m1,m2,…,mn取值的選取需要保證式(3)中的M不超過264,則:
(16)
又根據式(8)的約束,需要原始數據矩陣P中的每個元素大小在合理的范圍內。假設P中每個單元的數據長度為bbit,根據式(8)和式(16)可得,對P中任意一行ri(i=1,2,…,N),有:
(17)

(18)
所以:nb≤64
(19)

綜上,在實際的系統中,可以根據加密數據規模的大小,選擇不同的約束方式來加快加密的過程。
3.1 實驗環境與方案
為了測試本文提出方案的可用性和有效性,基于分布式Memcached環境,采用3臺PC構建小型云計算環境和分布式緩存系統,一臺作為應用服務器,另外兩臺PC構成分布式緩存環境,各節點之間通過百兆以太網連接。
為了排除分布式算法造成的影響,實驗統一采用簡單的哈希算法進行數據映射,即:
Nodeid=Hash(key)%2
(20)
將本文提出的方法命名為SCHE方法,不加密的方法命名為NSCHE。實驗由兩部分構成:
(1)對不同大小的數據進行加密緩存,分別使用NSCHE、SCACHE、DES、3DES、AES對數據進行加密,然后存儲到對應的存儲節點。計算循環100次的時間消耗,比較各種加密方法的時間消耗情況。
(2)對(1)中加密的數據進行讀取,分別使用相應的解密方案還原原始數據,循環100次,比較各種解密方法的時間消耗情況。
3.2 實驗結果分析
對于3.1節中的實驗方案,得到的實驗結果如圖1和圖2所示。

圖1 不同加密模式時間比較

圖2 不同模式解密時間比較
從圖1中可以看出,本文的方案與不使用加密方法的時間消耗相差不大,而其他幾種方案造成了明顯的性能影響。另外,圖2顯示了本文方案的解密過程與不使用加密的效果相差無幾,而其他方案需要較多的額外時間開銷。通過上述實驗,可以驗證本文提出方法的有效性。
本文針對目前云計算環境中分布式緩存系統存在的安全性問題,提出一種基于中國剩余定理的分布式緩存加密存取的方法,該方法能夠保證云環境中緩存數據的機密性,且效率高于目前主流的復雜加密方案,能夠滿足云環境中分布式緩存的性能需求。當然,該方案仍有許多不足,比如不能解決緩存數據篡改的問題,未來工作希望能夠從多個角度優化系統的安全措施,提高云計算中分布式緩存系統的安全性,從而進一步提高云計算系統的安全性。
[1] Wikipedia. Cloud computing[EB/OL]. [2015-09-01].http://en.wikipedia.org/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: 743-752.
[3] Memcached: high-performance, distributed memory object cachin system[EB/OL]. (2011-00-00) [2015-09-01]. http://memcached.org.
[4] VARIA J. Architecting for the Cloud: Best practices[EB]. Amazon Web Services, 2010: 7-10.
[5] BEDRA A. Getting started with Google app engine and clojure[J]. Internet Computing IEEE, 2010, 14(4):85-88.
[6] 叢磊. Sina App Engine 架構—云計算時代的分布式 Web 服務解決方案[J]. 程序員, 2010 (11): 59-62.
[7] 秦秀磊, 張文博, 魏峻, 等. 云計算環境下分布式緩存技術的現狀與挑戰[J]. 軟件學報, 2013, 24(1): 50-66.
[8] 王偉, 曾國蓀. 基于 Bayes 認知信任模型的 MANETs 自聚集算法[J]. 中國科學: 信息科學, 2010(2): 228-239.
[9] Wang Wei, Dong Guo, Deng Zhigang, et al. Reachability analysis of cost-reward timed automata for energy efficiency scheduling[C].Proceedings of Programming Models and Applications on Multicores and Manycores, ACM, 2014: 140.
[10] 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):280-286.
[11] 戴曼琴, 曹衛東. 同余與中國剩余定理[J]. 江蘇教育學院學報(自然科學版), 2006,23(4): 59-62.
[12] WANG X, PAN V Y. Acceleration of euclidean algorithm and rational number reconstruction[J]. SIAM Journal on Computing, 2003, 32(2): 548-556.
曾國蓀(1964-), 男,博士,教授,主要研究方向:計算機軟件理論與并行計算。
An encrypted access for distributed cache in Cloud computing
Guo Dong1,2, Wang Wei1,2, Zeng Guosun1,2
(1. Department of Computer Science and Engineering, Tongji University, Shanghai 200092, China;2. Tongji Branch, National Engineering & Technology Center of High Performance, Shanghai 200092, China)
Distributed caching is an important means of Cloud computing systems to improve application performance. In order to solve privacy issue for distributed cache in Cloud computing environment, a lightweight data encryption access methods based on Chinese remainder theorem is proposed. The method can effectively protect the confidentiality of data cache, and can prevent other users, the platform provider or attackers to obtain the plaintext data cache, with better performance. And the effectiveness of this method is proved by experiment.
distributed cache; Cloud computing; Chinese remainder theorem; symmetric encryption
國家自然科學基金(61272107,61202173,61103068)
TP14
A
1674-7720(2016)02-0001-03
郭棟,王偉,曾國蓀. 云計算中一種分布式緩存加密存取方法[J].微型機與應用,2016,35(2):1-3,10.
2015-09-16)
郭棟(1991-),男,碩士研究生,主要研究方向:云計算和分布式系統。
王偉(1979-),男,博士,副教授,主要研究方向:計算機系統結構。