关键词:
加密数据库
MapReduce
CryptDB系统
并行加密
分布式存储
摘要:
随着互联网技术的高速发展,日益增长的用户每日与服务器的交互产生了海量的数据。此外,个人网盘的普及使得用户更倾向于将数据保存在相对廉价的云盘中。这些数据中,不乏用户身份证信息、手机号码、银行卡号、就诊资料等隐私数据。各类网站在交互的过程中收罗数据的同时有义务做到对用户隐私数据的保护。因此,设计并实现一款能够使用户在不解密数据的情况下进行搜索的高性能加密数据库成为了当下热门的研究课题,并具有重要的研究意义。本文按照软件设计开发的流程,使用用例图对系统做了需求分析,抽象出了系统应有的功能模块。并使用活动图对系统的行为进行建模,确定了系统的整体流程。随后通过时序图确定了各个模块之间的交互关系和依赖关系,分析出了系统的整体架构。最后使用java编程语言结合MySQL-Proxy,基于Crypt DB的洋葱加密模型实现了简单的密文数据库系统。为了提高系统的易用性,本文还基于轻量级web应用框架Flask设计并实现了友好的人机交互页面。用户可以利用其进行数据库的可视化管理,该应用提供了明文和密文的对比窗口,支持SQL语句的执行并支持提交SQL文件进行并行插入操作。为了提高加密存储等数据处理速度,本文结合了MapReduce并行框架的特性和密文数据库系统的特点,设计并实现了一个并行密文数据库系统加密及分布式存储方案,包括设计了任务调度算法、文件分割算法以提高方案的并行性和可控性,修改设计了Map Reduce框架中的map方法以实现密文数据库系统的并行加密和分布式存储,分析了方案的性能。实验结果表明在3个密文数据库节点的集群中,该方案加速比达到2.51,加密和存储时间减少了60.2%,适用于大规模关系数据的加密存储。