论文部分内容阅读
云数据库以其低成本,高扩展,管理方便的特性,得到了广泛的应用。然而,用户将自己的数据直接上传到不完全受自己控制的云数据库中,会存在安全隐患。以CryptDB为代表的基于同态加密的数据库能够支持对加密数据直接进行计算,从而使得用户能在保证数据安全的情况下使用云端计算资源。然而,CryptDB采用了对数据列进行复制,基于列使用洋葱模型进行加密的方法来支持加密计算。这种基于列复制的加密机制在数据备份时存在很大的空间开销。 现有的数据库备份工具只考虑了备份的完整性,不能根据同态加密的特性做对应的空间优化。数据库备份时常用的数据压缩技术是一种通用的方法,不能感知同态加密的特性,因而不能有效压缩加密数据。以TPC-C数据的全备份为例,79MB的明文数据在CryptDB加密以后扩展成了1.7GB,引入了20多倍的存储空间开销,即使使用Gzip压缩依然占有1.4GB空间。为了解决这个问题,本文针对CryptDB提出了一种备份空间优化方案CryptZip,通过在备份过程中引入加密元数据解析模块,使得用户能够在备份过程中发现数据复制特征,并应用相应的备份策略减少存储空间的开销。本文主要贡献如下: (1)基于CryptDB,提出了一种基于列做备份空间优化的方案。通过在备份过程中引入加密元数据解析模块来识别同态加密数据库的数据复制特征,解决了普通备份方案不能识别加密数据复制特征的问题。 (2)在能够识别数据复制特征的基础上,通过对备份问题的建模,定义了最优备份的目标。提出了加密层计算速率的概念,并基于对计算速率的优先级排序,得到了不同数据类型的最优备份时间与空间变化曲线,从而针对不同数据类型分别给出了三种级别的最优备份策略。 (3)设计并实现了备份工具CryptZip用于CryptDB的数据备份,并对不同备份策略的时间空间开销进行了分析。实验结果表明,采用最小备份策略时,对于使用两种不同模式加密的TPC-C数据,CryptZip可以分别将备份的存储空间开销降低到原来的9.5%以及27%。并且,CryptZip的备份文件可以进一步使用数据压缩工具Gzip进行处理,达到50.6%的压缩率。