论文部分内容阅读
近年来,数据呈指数级增长,如何建立安全、可靠的数据交易平台,互连大量闲置的空间以满足人们日益增长的存储需求是十分必要的。虽然,P2P系统被认为是构建大规模分布式存储系统的理想模型,但其缺乏安全的激励机制,无法保障交易的公平,并未被广泛使用。直到区块链技术的出现,带来了一种全新的P2P系统,该系统能有效激励服务器提供资源,同时保证用户执行诚实的支付。尽管如此,基于区块链的P2P存储系统仍存在诸多问题,如缺乏对加密数据的有效搜索能力、数据更新的开销大以及无法验证查询结果等。因此,如何在基于区块链的P2P存储系统中,实现对数据的加密搜索和有效验证是当前研究亟待解决的问题。虽然,应用可搜索加密技术在P2P存储系统中能有效地保护用户隐私,避免信息泄露,但目前可搜索加密模式大多采用静态方案,不支持文件的动态更新,同时没有考虑系统更新后的前向安全,使得恶意服务器常常利用文件注入攻击非法获取隐私数据,严重损害了用户权益。因此,在基于区块链的P2P存储系统中,如何设计有效的加密搜索方案,以解决动态更新和前向安全问题仍是一项挑战。针对上述问题,本文首先构建了一个安全、有效的基于区块链的P2P存储系统,借助区块链和可搜索加密技术,将具有存储需求的用户和拥有闲置空间的服务器有效连接,通过验证查询结果的正确性和完整性来确保服务的公平可靠,从而实现了高安全且高效率的加密搜索。为了解决动态更新和前向安全问题,本文基于所构建的区块链P2P存储系统,进一步提出了支持文件动态更新且保证前向安全的加密搜索算法。该算法采用双索引结构,通过在索引链中同时添加文件索引和关键词索引,有效地平衡了搜索与更新的效率,实现了快速的文件更新。为了保证前向安全,即新添加的文档无法链接到之前搜索过的关键词,本文引入了随机数在每个结果集中,并且总是使用新的随机掩码生成新索引以链接到原有索引链的头部,从而有效地避免了文件注入攻击。为了验证查询结果,本文还提出了一个新的验证方案,通过预定义一个包含结果哈希值的加密验证表在区块链中,有效地降低了区块链的开销,实现了强大的数据保护。最终,根据DSSE安全概念给出了本文算法的安全定义,从理论上证明了算法的安全性和可行性。同时,编程实现了系统原型并成功部署智能合约在以太坊区块链上,通过大量实验对系统进行了性能评估和对比分析,结果表明我们的设计能应用在基于区块链的P2P存储系统中,实现安全、可验证且高效的加密搜索。