郭栋1,2,王伟1,2,曾国荪1,2
1.同济大学 计算机科学与技术系,上海 201804; 2.国家高性能计算机工程技术研究中心 同济大学分中心,上海 201804
摘要:分布式缓存是云计算系统中提高应用程序性能的重要手段,针对云计算环境中分布式缓存的隐私问题,提出一种基于中国剩余定理的轻量级分布式缓存数据加密存取方法。该方法能够保护缓存数据的机密性,防止云计算环境中的其他用户、平台提供商或者攻击者获取明文缓存数据,且能够较好地保证缓存系统的性能,最后通过实验证明了该方法的有效性。
关键词:分布式缓存;云计算;中国剩余定理;对称加密
0引言
随着云计算技术发展的不断深入,越来越多的应用从传统IT架构迁移到了云计算环境,利用云计算的弹性资源分配和分布式处理技术,增强了应用系统的稳定性,也方便应用的快速部署和按需扩展[1]。为了进一步提高系统的性能,分布式缓存技术得以引入,为用户提供高性能、高可用、可伸缩的数据缓存服务,解决传统数据库面临的大规模数据访问的瓶颈问题。
当前,云计算中的分布式缓存技术已有较多的研究。现有的分布式缓存产品已有不少,如Memcached [23]是一个高性能的分布式内存对象缓存系统,用于动态Web应用数据以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高Web应用的性能。目前各云计算平台的缓存系统大多基于Memcached开发,被Amazon Web Services[4]、Google App Engine[5]、Sina App Engine[6]、阿里云、盛大云等在内的多家知名云平台企业使用。而上述系统主要特征体现在其分布式算法、数据分区、数据一致性以及身份认证方面[7],对数据隐私方面考虑欠缺[8]。总而言之,目前关于分布式缓存系统的研究主要集中于其性能的提升,对分布式缓存系统的隐私性和安全性研究尚不充分。
1相关研究
1.1云计算中分布式缓存技术
分布式缓存将数据分布到多个缓存服务节点,在内存中管理数据,对外提供统一的访问接口,基于冗余备份机制实现高可用支持。
当应用程序需要缓存数据时,客户端通过相应的分布式算法获得key对应的存储节点,然后客户端通过TCP/IP协议将数据发送给缓存服务器,缓存服务器调用本地Memcached服务将数据缓存在内存中。类似的应用程序读取缓存时,首先通过分布式算法获得key所在节点,然后通过网络获取相应的数据。由于Memcached本身没有加密处理的功能,数据的存储往往是明文形式的,攻击者、用户或者系统管理员很容易获得缓存内容,从而造成了分布式缓存系统的安全性隐患[8]。
为了解决云计算中分布式缓存系统存在的上述安全问题,传统的加密方案如AES、DES、3DES、IDEA[9]等虽然可以很好地完成加解密工作,但是其运算过程比较复杂,会导致分布式缓存系统的性能大幅下降,需要设计更加轻量级的加密算法。本文利用中国剩余定理,构造一种轻量级的分布式缓存加密存取方法,下面将进行详细的描述。
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加密过程
在一个云计算环境中,假如某一应用需要将数据D安全地存到分布式缓存系统中,需要经过下面的步骤实现原始数据D到密文X的变换。
(1)首先将D按字节顺序分成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),同时调用分布式缓存系统的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位的字长整数,在实际的系统中必需考虑这个因素。
首先,m1,m2,…,mn取值的选取需要保证式(3)中的M不超过264,则:
又根据式(8)的约束,需要原始数据矩阵P中的每个元素大小在合理的范围内。假设P中每个单元的数据长度为b bit,根据式(8)和式(16)可得,对P中任意一行ri(i=1,2,…,N),有:
所以:nb≤64(19)
由此可见,一般情况下,必需满足式(19)的约束条件,才可以构建实际的应用系统。当然,上述情况考虑的是P每一列数据都可能存在某单元的数据值是2b的情况,在这样的假设下不需要通过遍历P来求mi的下限;如果P的规模较小,可以通过并行方式遍历P的每一列,获得mi的下限,则可以取较小的mi,减少扩展欧几里德算法计算M′i的时间。
综上,在实际的系统中,可以根据加密数据规模的大小,选择不同的约束方式来加快加密的过程。
3实验与结果分析
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实验结果分析
对于31节中的实验方案,得到的实验结果如图1和图2所示。
从图1中可以看出,本文的方案与不使用加密方法的时间消耗相差不大,而其他几种方案造成了明显的性能影响。另外,图2显示了本文方案的解密过程与不使用加密的效果相差无几,而其他方案需要较多的额外时间开销。通过上述实验,可以验证本文提出方法的有效性。
4结论
本文针对目前云计算环境中分布式缓存系统存在的安全性问题,提出一种基于中国剩余定理的分布式缓存加密存取的方法,该方法能够保证云环境中缓存数据的机密性,且效率高于目前主流的复杂加密方案,能够满足云环境中分布式缓存的性能需求。当然,该方案仍有许多不足,比如不能解决缓存数据篡改的问题,未来工作希望能够从多个角度优化系统的安全措施,提高云计算中分布式缓存系统的安全性,从而进一步提高云计算系统的安全性。
参考文献
[1] 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.
[3] 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.
[5] 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.
[7] 秦秀磊, 张文博, 魏峻, 等. 云计算环境下分布式缓存技术的现状与挑战[J]. 软件学报, 2013, 24(1): 5066.
[8] 王伟, 曾国荪. 基于 Bayes 认知信任模型的 MANETs 自聚集算法[J]. 中国科学: 信息科学, 2010(2): 228239.
[9] 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.
[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):280286.