郭 棟,王 偉,曾國蓀
(1.同濟大學(xué) 計算機科學(xué)與技術(shù)系,上海 201804;2.國家高性能計算機工程技術(shù)研究中心 同濟大學(xué)分中心,上海 201804)
云計算中一種分布式緩存加密存取方法*
郭 棟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)的性能,最后通過實驗證明了該方法的有效性。
分布式緩存;云計算;中國剩余定理;對稱加密
隨著云計算技術(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ù)已有較多的研究。現(xiàn)有的分布式緩存產(chǎn)品已有不少,如Memcached[2-3]是一個高性能的分布式內(nèi)存對象緩存系統(tǒng),用于動態(tài)Web應(yīng)用數(shù)據(jù)以減輕數(shù)據(jù)庫負載。它通過在內(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ù)一致性以及身份認證方面[7],對數(shù)據(jù)隱私方面考慮欠缺[8]??偠灾?,目前關(guān)于分布式緩存系統(tǒng)的研究主要集中于其性能的提升,對分布式緩存系統(tǒng)的隱私性和安全性研究尚不充分。
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)造一種輕量級的分布式緩存加密存取方法,下面將進行詳細的描述。
1.2 中國剩余定理
中國剩余定理[9](Chinese Remainder Theorem, CRT)亦稱孫子定理,它描述了根據(jù)正整數(shù)的同余理論求解某一未知正整數(shù)的方法,具體可描述如下:
如果m1,m2,…,mn是兩兩互素的n個正整數(shù),那么對任意整數(shù)a1,a2,…,an,構(gòu)造一元線性同余方程組:
(1)
方程組S必有解,解的形式為:
(2)
其中:
(3)
(4)
(5)
根據(jù)式(2),可得S的最小正整數(shù)解為:
(6)
基于上述中國剩余定理,可以構(gòu)建相應(yīng)的數(shù)據(jù)加密與解密方法。
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,每組包含Bbit,每組Gi(i=1,2,…,N)再分為n個單元u1,u2,…,un,每個單元包含bbit。則可以將D劃分為一個N行n列的矩陣:
(7)
(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)造如下一元線性同余方程組:
(9)
根據(jù)式(6)可得式(8)的解為:
(10)
則可得變換后的矩陣為:
(11)
(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)造如下同余方程組
(14)
則可以將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,則:
(16)
又根據(jù)式(8)的約束,需要原始數(shù)據(jù)矩陣P中的每個元素大小在合理的范圍內(nèi)。假設(shè)P中每個單元的數(shù)據(jù)長度為bbit,根據(jù)式(8)和式(16)可得,對P中任意一行ri(i=1,2,…,N),有:
(17)
(18)
所以:nb≤64
(19)
綜上,在實際的系統(tǒng)中,可以根據(jù)加密數(shù)據(jù)規(guī)模的大小,選擇不同的約束方式來加快加密的過程。
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é)果分析
對于3.1節(jié)中的實驗方案,得到的實驗結(jié)果如圖1和圖2所示。
圖1 不同加密模式時間比較
圖2 不同模式解密時間比較
從圖1中可以看出,本文的方案與不使用加密方法的時間消耗相差不大,而其他幾種方案造成了明顯的性能影響。另外,圖2顯示了本文方案的解密過程與不使用加密的效果相差無幾,而其他方案需要較多的額外時間開銷。通過上述實驗,可以驗證本文提出方法的有效性。
本文針對目前云計算環(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]. [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 架構(gòu)—云計算時代的分布式 Web 服務(wù)解決方案[J]. 程序員, 2010 (11): 59-62.
[7] 秦秀磊, 張文博, 魏峻, 等. 云計算環(huán)境下分布式緩存技術(shù)的現(xiàn)狀與挑戰(zhàn)[J]. 軟件學(xué)報, 2013, 24(1): 50-66.
[8] 王偉, 曾國蓀. 基于 Bayes 認知信任模型的 MANETs 自聚集算法[J]. 中國科學(xué): 信息科學(xué), 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] 戴曼琴, 曹衛(wèi)東. 同余與中國剩余定理[J]. 江蘇教育學(xué)院學(xué)報(自然科學(xué)版), 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
國家自然科學(xué)基金(61272107,61202173,61103068)
TP14
A
1674-7720(2016)02-0001-03
郭棟,王偉,曾國蓀. 云計算中一種分布式緩存加密存取方法[J].微型機與應(yīng)用,2016,35(2):1-3,10.
2015-09-16)
郭棟(1991-),男,碩士研究生,主要研究方向:云計算和分布式系統(tǒng)。
王偉(1979-),男,博士,副教授,主要研究方向:計算機系統(tǒng)結(jié)構(gòu)。