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