论文部分内容阅读
云计算是并行计算、网格计算、分布式计算、网络存储、虚拟化等传统计算机技术和网络技术发展融合的产物,它实现了人们长期以来将计算作为一种设施的梦想。云计算通过外包的方式将计算和存储等资源提供给用户,大大减低了资源受限的用户对软件开发和硬件维护的负担。云存储与云计算密切相关,它允许资源受限的用户将本地无法存储的大数据库发送到云服务器进行存储和管理,然后通过按需付费的方式获取相应的数据服务。然而,云存储在提供诸多数据服务的同时,也不可避免的面临一些安全挑战。首先,数据库存储到云服务器后使得数据所有权与管理权完全分离。如何防止不诚实的云服务器篡改数据,保护数据库的完整性是一个技术难点问题,特别是在动态数据库的情形(即数据库不断地进行更新)下实现完整性极为困难;其次,数据库包含了用户的敏感隐私信息,因此必须以密文的方式进行存储。如何对密文数据进行高效的操作(如检索和询问)是一个技术难点问题;最后,由于自身利益的驱动,云服务器有可能对数据库执行不正确的操作,并给用户返回一个计算上不可区分的错误结果。如何对云服务器返回的操作结果进行高效验证是一个技术难点问题。近年来,许多学者对云存储中数据库外包的安全问题进行了大量的研究。可验证数据库(Verifiable Database with Efficient Updates,简写为VDB)的概念较好的解决了上述三个技术难点。然而,目前VDB方案的构造仍然存在如下的问题:首先,它只支持数据库的替换更新(replacement)操作,而没有考虑其它更新操作如删除和插入(deletion and insertion);其次,它只支持用户的指标询问操作(query based on an index),而没有考虑其它的操作如基于关键词的检索。本论文主要研究云环境中加密数据库的可验证更新和检索技术,特别是研究如何设计支持全操作更新和关键词检索的VDB方案。具体来说,本论文的主要贡献如下:·我们首次指出目前所有的VDB方案只支持替换更新操作,如何设计支持全操作更新(替换、删除和插入)的VDB方案是一个困难问题。此外,我们利用分层向量承诺提出了第一个支持全操作更新VDB方案的具体构造,该方案中一次插入或删除操作的计算量几乎与一次替换操作的计算量相同。因此,我们所提出的VDB方案和现有的基于向量承诺的VDB方案效率相当,具有较好的实用性。此外,我们所提出的VDB方案可以同时实现秘密可验证性和公开可验证性。(第三章,发表在Journal of Computer and System Science,86,49-58,2017)·我们提出一个新的密码原语Merkle求和哈希树(Merkle sum hash tree),它可以看做是Merkle哈希树的扩展。同时,利用Merkle求和哈希树和外包多项式函数等原语,我们给出了一个支持全操作更新VDB方案的新构造。该方案中所有更新操作(替换、删除和插入)都可以看做是Benabbas-Gennaro-Vahlis等人VDB方案中替换更新操作的一个特例。此外,Merkle求和哈希树中叶子节点的数目固定不变,且叶子节点输入与数据记录的大小无关(只与数据记录的数目有关),该性质使得Merkle求和哈希树的更新过程非常高效。因此,我们所提出的的VDB方案几乎与Benabbas-Gennaro-Vahlis等人的方案一样高效,具有良好的实用价值。(第四章,发表在IEEE Transaction on Information Forensics and Security,13(2),511-520,2018)·我们指出目前所有的VDB方案只支持用户的指标询问操作,而不能支持其它的操作如基于关键词的搜索操作。基于向量承诺和Merkle哈希树等原语,我们设计了一个双层可验证的索引结构,并提出了第一个可支持关键词搜索的VDB方案。该方案也可以同时满足动态数据库的秘密可验证性和公开可验证性。而且,所提出的VDB方案可推广到其它的搜索方式如Boolean查询。因此,任何一个可搜索加密方案都可以以黑盒的方式作为我们VDB方案的模块,这大大提高了VDB方案的实用性。(第五章,发表在Information Sciences,475,18-28,2019)。