云计算中一种分布式缓存加密存取方法Word格式.doc
《云计算中一种分布式缓存加密存取方法Word格式.doc》由会员分享,可在线阅读,更多相关《云计算中一种分布式缓存加密存取方法Word格式.doc(8页珍藏版)》请在冰豆网上搜索。
对称加密
中图分类号:
(作者本人填写)文献标识码:
A文章编号:
1000-7180(2008)xx-xxxx-x
AnEncryptedAccessforDistributedCacheinCloudComputing
GUODong1,2,WANGWei1,2,ZENGGuo-sun1,2
(1DepartmentofComputerScienceandEngineering,TongjiUniversity,Shanghai200092,China;
2TongjiBranchNationalEngineering&
TechnologyCenterofHighPerformance,Shanghai200092,China)
Abstract:
Distributedcachingisanimportantmeansofcloudcomputingsystemstoimproveapplicationperformance.Inordertosolveprivacyissuefordistributedcacheincloudcomputingenvironment,alightweightdataencryptionaccessmethodsbasedonChineseremaindertheoremisproposed.Themethodcaneffectivelyprotecttheconfidentialityofdatacache,andpreventotherusers,theplatformproviderorattackerstoobtaintheplaintextdatacache,withbetterperformance.Andtheeffectivenessofthismethodcanbeprovebyexperiment.
Keywords:
Distributedcache;
Cloudcomputing;
Chineseremaindertheorem;
Symmetricencryption
1引言
随着云计算技术发展的不断深入,越来越多的应用从传统IT架构迁移到了云计算环境,利用云计算的弹性资源分配和分布式处理技术,增强了应收稿日期:
基金项目:
国家自然科学基金(61272107,61202173,61103068)、上海市优秀学科带头人计划项目(10XD1404400)、教育部网络时代的科技论文快速共享专项研究课题(20110740001)、教育部博士点基金项目(20110072120017)、浙江大学CAD&
CG国家重点实验室开放课题(A1311)、南京大学计算机软件新技术国家重点实验室开放课题(KFKT2012B24)、同济大学中央高校基本科研业务费专项资金项目(0800219208)、中科院模式识别国家重点实验室开放课题(201103187)
用系统的稳定性,也方便应用的快速部署和按需扩展[1]。
随着应用系统的复杂性越来越高,数据量越来越大,为了进一步提高系统的性能,降低由磁盘IO造成的性能瓶颈影响,以应对海量数据与用户请求带来的挑战,分布式缓存技术得以引入,为用户提供高性能、高可用、可伸缩的数据缓存服务,解决传统数据库面临的大规模数据访问瓶颈问题。
当前,分布式缓存技术在云计算系统中得到了广泛的应用,是云计算系统中提高应用程序性能的主要手段之一。
然而,云计算的开放性、共享性、数据集中性也给构建云计算环境中安全的分布式缓存系统带来了巨大的挑战。
当前,云计算中的分布式缓存技术已有较多的研究。
现有的分布式缓存产品已有不少,如Memcached[2][3]是一个高性能的分布式内存对象缓存系统,用于动态Web应用数据以减轻数据库负载。
它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高Web应用的性能。
目前各云计算平台的缓存系统大多基于Memcached开发,通过在Memcached上层增加身份验证机制,实现多用户共享的分布式缓存系统,被Amazon
Web
Services[10],Google
App
Engine[11],SinaAppEngine[13],阿里云,盛大云等在内的多家知名云平台企业使用[5]。
除了Memcached,其他的分布式缓存系统如Oracle
Coherence[6],WindowsAppfabricCaching[3],TerracottaServer
Array[7],Amazon
ElastiCache[9]等也各自针对其应用领域实现了高性能分布式缓存系统。
而上述系统主要特征体现在其分布式算法、数据分区、数据一致性以及身份认证方面[8],对数据隐私方面考虑欠缺[5]。
总而言之,目前关于分布式缓存系统的研究主要集中于其性能的提升,对分布式缓存系统的隐私性和安全性研究还尚不充分。
针对上述背景,本文首先对目前云计算中的分布式缓存技术进行分析,并指出其存在的问题;
进而提出云计算中分布式缓存加密存取方法,然后对该方法的安全性进行分析;
最后通过实验来验证该方案的有效性。
2相关研究
2.1云计算中分布式缓存技术
分布式缓存将数据分布到多个缓存服务节点,在内存中管理数据,对外提供统一的访问接口,基于冗余备份机制实现高可用支持。
如新浪SAE的memcache服务[13]和Amazon的ElastiCache服务[9],它们以分布式Memcached为基本缓存组件,通过key-value的形式提供应用级API,应用程序调用类似set(key)和get(key)方法实现缓存的存储和读取。
当应用程序需要缓存数据时,客户端通过相应的分布式算法获得key对应的存储节点,比如通过一致性哈希分布算法即可很好地实现数据与服务器的映射。
然后客户端通过TCP/IP协议将数据发送给缓存服务器,缓存服务器调用本地memcached服务将数据缓存在内存中。
类似的,应用程序读取缓存时,先通过分布式算法获得key所在节点,然后通过网络获取相应的数据即可。
在实际的云环境中,由于需要共享分布式缓存系统,云平台提供商在缓存系统上层增加身份认证机制,通过给key增加前缀或者通过二级哈希表索引,实现多租户共享的效果。
而由于memcached本身没有加密处理的功能,数据的存储往往是明文形式的,攻击者、用户或者系统管理员很容易获得缓存内容,从而造成了分布式缓存系统的安全性隐患。
站在攻击者的角度,由于云计算环境中的分布式缓存是共享且以明文存储的,其内容很容易被攻击者获取。
一旦攻击者获取了某个缓存节点的操作权限,攻击者很容易获取缓存中的数据;
另外,由于分布式缓存节点之间通过网络连接,攻击者也可以通过侦听网络数据包来截获数据信息,从而导致信息泄露。
为了解决云计算中分布式缓存系统存在的上述安全问题,必需采取措施对缓存数据的存取过程进行保护,同时还要尽可能保证缓存系统的高效性,传统的加密方案如AES,DES,3DES,IDEA[16]等虽然可以很好地完成加解密工作,但是其运算过程比较复杂,会导致分布式缓存系统的性能大幅下降,需要设计更加轻量级的加密算法。
基于云计算环境中分布式缓存系统存在的上述问题,本文利用中国剩余定理,构造一种轻量级的分布式缓存加密存取方法,下面将进行详细的描述。
2.2中国剩余定理
中国剩余定理[14][15](Chineseremaindertheorem,CRT)亦称孙子定理,它描述了根据正整数的同余理论求解某一未知正整数的方法,具体可描述如下:
如果是两两互素的个正整数,那么对任意整数,构造一元线性同余方程组
(1)
方程组必有解,解的形式为
(2)
其中
(3)
(4)
是模的数论倒数,即是满足同余方程
(5)
的最小正整数解,具体的计算过程可以通过扩展欧几里德算法(ExtendedEuclideanalgorithm)[17]计算。
根据式
(2),可得的最小正整数解为
(6)
基于上述中国剩余定理,可以构建相应的数据加密与解密方法。
3云计算中分布式缓存加密存取方法
3.1加密过程
在一个云计算环境中,假如某一应用需要将数据安全地存到分布式缓存系统中,需要经过下面的步骤实现原始数据到密文的变换。
Ⅰ.首先将按字节顺序分成组,每组包含位(bit),每组再分为个单元,每个单元包含位(bit)。
则可以将划分为一个行列的矩阵
(7)
Ⅱ.选取个互素的整数,且满足条件
(8)
即保证大于矩阵中第列的所有元素。
Ⅲ.对矩阵中的每一行进行如下变换操作:
构造如下一元线性同余方程组
(9)
根据(6)式可得(8)式的解为
(10)
则可得变换后的矩阵
(11)
Ⅳ.最后将按顺序连接即可得到加密后的密文
(12)
经过上述计算得到加密后的密文后,保存密钥,同时调用分布式缓存系统的API对加密数据进行缓存,这样就完成了缓存数据的加密存储过程。
3.2解密过程
解密过程相对于加密过程来说是很简单的,对于经过上述加密过程加密的缓存数据,需要经过下面几步完成到的变换:
Ⅰ.首先将平均分成组,得到加密后的数据矩阵
(13)
Ⅱ.对每一行构造如下同余方程组
(14)
则可以将解密为,也就恢复了原始数据矩阵;
Ⅲ.将得到的原始数据矩阵按先行后列顺序进行连接即可得到原始数据
(15)
显而易见,这是一种对称加密模式。
3.3参数取值约束分析
对于计算机来说,目前常见的处理器最多能处理64位的字长整数,在实际的系统中必需考虑这个因素。
首先,取值的选取需要保证(3)式中的不超过,则
(16)
又根据(8)式的约束,需要原始数据矩阵中的每个元素大小在合理的范围内。
假设中每个单元的数据长度为位,根据(8)式和(16)式可得,对中任意一行
(17)
可得
(18)
所以
(19)
由此可见,一般情况下,必需满足式(19)的约束条件,才可以构建实际的应用系统,当然,上述情况考虑的是每一列数据都可能存在某单元的数据值是的情况,在这样的假设下不需要通过遍历来求的下限;
如果的规模较小,可以通过并行方式遍历的每一列,获得的下限,则可以取较小的,减少扩展欧几里德算法的计算的时间。
综上,在实际的系统中,可以根据加密数据规模的大小,选择不同的约束方式,以加快加密的过程。
4安全性分析
假如攻击者获取到密文,希望通过分析的结构和数据获取原始数据。
首先,攻击者不知道加密的分组数,攻击者难以对进行正确的分割,也就无法获取正确的,而由和唯一确定,攻击者更不知道,所以无法破解得到,从而无法构造出原始数据。
假如攻击者分析的长度,取的所有约数作为进行穷举,则有可能得