论文部分内容阅读
数据库外包服务是近些年兴起的一种应用模式。用户或企业为了节约硬件存储资源和管理成本,取消自己的数据中心,将数据库外包给专业的数据库服务提供商进行管理和维护。然而,服务提供商是不可信的,他可能试图篡改数据库的内容或伪造查询结果,数据拥有者在将数据库外包给数据库服务提供商时,会更加关注数据完整性保护的问题。因此,用户希望能够检测并验证查询结果的完整性,防止服务器篡改数据库的查询结果。针对现有的外包数据库完整性验证方案无法很好地支持多种SQL查询以及效率低等缺点,本文对外包数据库SQL查询完整性验证方法进行了研究,完成了以下工作:本文分析了外包数据库完整性验证的研究现状,提出了外包数据库完整性验证模型。对外包数据库完整性验证模型进行形式化定义,给出了模型的六个基本算法,并对模型的安全性进行定义。此外,借助双线性映射累加器,实现了集合中元素的求和运算的完整性验证方法。在模型的基础上,基于认证跳表、可验证集合运算等技术构建了一个外包数据库SQL查询完整性验证方案,该方案支持的SQL查询有范围查询、函数查询、连接查询和部分嵌套查询,同时方案支持数据拥有者对数据进行更新。基于现有的密码学假设,给出了方案的安全性分析。代价分析表明,该方案具有较高的效率。本文在Ubuntu系统下使用C++语言设计并实现了外包数据库SQL查询完整性验证的原型系统。针对系统中的数据拥有者、服务器和客户端三方实体,进行了功能设计和类的设计,给出了原型系统关键功能的实现。对原型系统分别进行了功能测试和性能测试,测试结果表明该系统可以正确完成各项功能,同时在初始化、查询与验证等方面的运行时间表现良好。因此,支持多种SQL查询完整性验证的研究具有广阔的应用前景和较高的应用价值。