首页> 中国专利> 前向安全的连接关键词对称可搜索加密方法、系统及应用

前向安全的连接关键词对称可搜索加密方法、系统及应用

摘要

本发明属于云计算安全技术领域,公开了一种前向安全的连接关键词对称可搜索加密方法、系统及应用,用户对明文数据进行加密得到密文数据,根据密文数据建立索引,对关键词文档对加密生成支持成员资格检查的验证器,将密文数据、索引和验证器外包至云服务器;在搜索时,用户提交所搜索关键词的搜索令牌,服务器收到令牌之后,根据令牌信息在索引上进行检索,并在验证器上进行检查,然后将满足检索条件的结果返回给用户。本发明使用了HVE加密构造验证器,来实现隐藏关键词文档对结果模式的连接关键词检索,不仅支持连接关键词检索,同时可以避免关键词文档对结果模式泄露,可以达到预期的安全性目标,同时实现高效的更新和搜索操作。

著录项

  • 公开/公告号CN113254955A

    专利类型发明专利

  • 公开/公告日2021-08-13

    原文格式PDF

  • 申请/专利权人 西安电子科技大学;

    申请/专利号CN202110486730.7

  • 发明设计人 王剑锋;朱怡超;田冠杰;吕春阳;

    申请日2021-05-01

  • 分类号G06F21/60(20130101);G06F16/33(20190101);G06F16/27(20190101);G06F16/22(20190101);

  • 代理机构61227 西安长和专利代理有限公司;

  • 代理人黄伟洪

  • 地址 710071 陕西省西安市太白南路2号西安电子科技大学

  • 入库时间 2023-06-19 12:13:22

说明书

技术领域

本发明属于云计算安全技术领域,尤其涉及一种前向安全的连接关键词对称可搜索加密方法、系统及应用。

背景技术

目前:与本发明最接近的现有技术为对称可搜索加密,对称可搜索加密可以在保护数据和查询的机密性的同时,对加密的数据进行搜索。具体来说,对称可搜索加密通过生成加密索引来工作,这些索引与加密数据一起外包给服务器。用户在检索时通过对关键字进行加密生成搜索令牌,服务器对搜索令牌和加密索引执行搜索并将结果返回给用户。使用这种方法,用户数据的安全和隐私性得到了保证。

自从Song等人开创性的提出对称可搜索加密方案后,很多工作致力于提高其效率、安全性和丰富查询方式。最近,支持动态数据库的前向安全对称可搜索加密引起了广泛关注,它可以防止服务器得知新近更新的文档中是否包含了之前查询过的关键词。在数据被上传到云服务器之后,用户有可能希望对数据做出修改,例如插入和删除一个文档。一种朴素的解决方法是将所有的数据文件下载下来,解密,完成更新操作之后重新加密,之后重新上传给服务器。但是这势必会造成大量不必要的传输开销,而且对客户端的储存能力提出了很高的要求。

在更新数据的过程中,往往会泄露关于密文数据库的信息。例如客户端插入一个文档给服务器,如果处理不当,服务器会得知这个新插入的文档中包含哪些关键词。利用这种信息,敌手将恢复用户所查询的关键字。近年来,有学者研究表明这种泄露往往带来很严重的后果。例如,通过在外包数据库中注入14个文件,敌手可以得知恢复出超过一万个搜索令牌对应的关键词。因此,动态可搜索加密技术中的前向安全成为一个研究热点。

而现有的大多数前向安全的对称可搜索加密仅支持单关键词检索,直接扩展为连接关键词检索存在检索效率低下、隐私信息泄露多等问题。对于连接关键词检索,现有的连接关键词检索方案仅考虑了静态数据库中的检索问题,对于更常见的动态数据库来说并不实用。连接关键词检索是搜索模式中一种最基本而有很常用的检索模式,一种简单的想法是对每个关键词单独进行检索后,将单关键词检索结果的交集返回。这种方式不仅效率低下,而且泄露的信息也过多。Wang等人将Bost提出的前向安全的单关键词对称可搜索加密方案与Cash等人的连接关键词检索方案OXT相结合,构造出了一个高效的支持关键词文档对更新的前向安全的连接关键词对称可搜索加密方案,并且没有泄露有关每个搜索关键字的信息。但是,该方案对于连接关键字搜索存在着关键词文档对结果模式泄漏,即会泄露检索结果与每个搜索关键词之间的关系。

通过上述分析,现有技术存在的问题及缺陷为:现有的云存储技术中存在如何在密文数据中检索、如何对密文数据库进行更新操作、如何在动态数据库中进行连接关键词检索;对于动态数据库中连接关键词检索,如何保证不向用户泄露不必要的信息。

解决以上问题及缺陷的难度为:要实现前向安全的连接关键词对称可搜索加密方法,一方面,难度在于如何使连接关键词检索方案支持文档的动态更新,同时保证不向用户泄露不必要的信息。具体地说,如何在实现连接关键词检索的前提下保证搜索效率,避免关键词文档对结果模式泄漏,并且不破坏前向安全的性质。

解决以上问题及缺陷的意义为:密文可搜索技术的研究意义在于允许客户在将数据外包给服务器之前对数据进行加密,并能够在密文上直接进行搜索。前向安全的属性能够保证在更新数据的过程中,不泄露之前上传的数据的隐私信息。换句话说,服务器不知道之前搜索过的关键词是否包含在新插入的这个文档中。连接关键词检索是搜索模式中一种最基本而又很常用的检索模式。避免关键词文档对结果模式泄漏,可以提高数据的安全性,减少向用户泄露不必要的信息。

发明内容

针对现有技术存在的问题,本发明提供了一种前向安全的连接关键词对称可搜索加密方法、系统及应用。

本发明是这样实现的,一种前向安全的连接关键词对称可搜索加密方法包括:

用户对明文数据进行加密得到密文数据,根据密文数据建立索引,对关键词文档对加密生成支持成员资格检查的验证器,将密文数据、索引和验证器外包至云服务;

在搜索时,用户提交所搜索关键词的搜索令牌,服务器收到令牌之后,根据令牌信息在索引上进行检索,并在验证器上进行检查,然后将满足检索条件的结果返回给用户。

进一步,所述前向安全的连接关键词对称可搜索加密方法具体包括:

步骤一,客户端和服务器端分别初始化各自的存储结构和系统参数;

步骤二,客户端将文档预处理为key-id对,对key-id对进行加密处理,生成索引和验证器信息,然后将密文信息、索引和验证器信息上传给服务器,服务器对索引和验证器缓存结构进行更新;

步骤三,客户端对搜索关键词进行处理,生成搜索陷门,将陷门上传给服务器;

步骤四,服务器收到搜索陷门之后,在索引上进行搜索,得到频率最低的搜索关键词的搜索结果;

步骤五,服务器根据搜索结果构建针对搜索结果和其他搜索关键词的验证信息,并将验证信息返回给客户端;

步骤六,客户端利用验证信息生成验证令牌上传给服务器;

步骤七,服务器收到验证令牌之后,在验证器上对步骤四得到的搜索结果进行筛选,并将筛选结果返回给客户端。

进一步,步骤一中,所述客户端和服务器端对存储结构和系统参数进行初始化时,采用的为Setup算法,所述Setup算法包括:

生成所必须的一些参数、密钥和数据结构,客户端输入安全参数λ,根据λ初始化存储结构Σ和Γ,生成HVE加密主密钥msk,根据关键词文档对数量初始化一个布隆过滤器BF,使用HVE加密BF得到初始验证器c并发送给服务器端,服务器端初始化三个存储结构C、T

进一步,所述Setup算法的初始化阶段具体包括:

客户端输入安全参数λ,根据λ初始化存储结构Σ和Γ,该存储结构是map结构的数据结构,Σ用来存放每个关键词w的状态st和计数器c

进一步,步骤二中,所述服务器对索引和验证器缓存结构进行更新时,采用的Update算法,所述Update算法包括:

客户端将需要插入的文档预处理为key-id对,以key-id为单位进行处理,生成该key-id对的密文和索引,将密文和索引打包发送给服务器,服务器在收到客户端发送的数据之后,将其存储在T

在更新时还对验证器信息进行更新,客户端对每个key-id对生成验证信息后发送给服务器,服务器将其暂存在C中。

进一步,所述Update算法更新阶段具体包括:

要插入新的关键词文档对(w,ind),对于关键词w,客户端从映射Σ中读取它的最新状态st和计数器c

然后使用哈希函数h

随后,客户端计算与关键词文档对(w,ind)有关的xtag和y,其中xtag的计算需要使用Diffie-Hellman密钥交换,xtag=g

最后,客户端将存有所有(u,(e,y))的集合AddSet和ABF发送给服务器,服务器端根据AddSet和ABF分别对T

进一步,步骤三中搜索陷门的生成,采用的是Search算法中第一轮交互中客户端的操作:

客户端要执行连接关键词检索(w

客户端判断计数器c

然后客户端生成xtoken,xtoken的作用是帮助服务器对xtag进行还原,xtoken[i,j]=g

进一步,在步骤四中,得到频率最低的搜索关键词的搜索结果,采用的是Search算法中服务器在第一轮交互中的单关键词检索:

在收到搜索陷门之后,服务器先使用t

进一步,在步骤五中,服务器构建检索信息,采用的是Search算法中服务器对xtag进行还原的操作:

服务器得到w

进一步,在步骤六中,客户端利用验证信息生成验证令牌上传给服务器,采用的是Search算法中,客户端在第二轮交互中的操作:

客户端在收到服务器发来的所有位置之后,对关键词w

进一步,在步骤七中,服务器得到最终结果,采用的是Search算法中,服务器端在第二轮交互中的操作:

服务器端收到tokenc之后,服务器端需要先将位于C中的与搜索关键词相关的数据更新到密文数据库c中,然后删除C中的相应数据执行HVE.Query(tokenc,c)来进行筛选,即判断该tokenc对应的文档indc是否包含查询的其他关键词;如果返回结果为预先设置的消息True,则说明该文档中包含所有的查询关键词,将其添加到返回集R中;最后,返回最终结果R给客户端。

进一步,在搜索时采用Search算法,所述Search算法包括:

用户提交所搜索关键词的令牌,服务器收到令牌之后,根据令牌信息在T

进一步,所述Search算法搜索阶段具体包括:

搜索期间,客户端和服务器端共有两轮交互:

第一轮,客户端要执行连接关键词检索(w

客户端判断计数器c

然后客户端生成xtoken,并将其作为搜索令牌的一部分发送给服务器,在服务器端,服务器先使用t

第二轮:客户端在收到服务器发来的所有位置之后,对关键词w

本发明的另一目的在于提供一种前向安全的连接关键词对称可搜索加密存储系统,所述前向安全的连接关键词对称可搜索加密存储系统包括:

数据拥有者,用于将个人数据外包存储在云服务器上,数据文件在上传之前要先被预处理为w-id形式,对w-id对进行加密处理,并根据w-id信息生成增量索引和验证器;数据拥有者将密钥分享给其希望授权的用户,被授权的用户称作数据使用者;只有数据使用者能够进行搜索并得到搜索结果;

云服务器,具有海量存储资源以及充足的计算资源,做到安全地存储数据拥有者上传的数据、索引和验证器;忠实地执行数据使用者的查询请求,并根据验证令牌对搜索结果进行筛选,返回完整且正确的搜索结果;

数据使用者,是被数据拥有者授权的用户,其拥有生成搜索令牌的密钥;在搜索阶段,数据使用者根据所搜索的关键字生成搜索陷门并提交陷门信息到云服务器;在收到云服务器返回的验证信息之后,数据使用者根据验证信息生成验证令牌发送给云服务器,从而得到正确且完整的搜索结果。

本发明的另一目的在于提供一种应用所述前向安全的连接关键词对称可搜索加密方法的云服务器。

结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明通过用户对明文数据进行加密得到密文数据,根据密文数据建立索引生成验证信息,将密文数据、索引和验证信息上传到云服务器上;在进行连接关键词搜索时,先对频率最低的关键词进行检索,然后根据检索结果生成验证信息发送给客户端,客户端收到验证信息后生成验证令牌发送给服务器,服务器使用验证令牌将搜索结果在验证器上进行筛选得到最终结果,使用HVE加密所生成的验证器能够避免关键词文档对结果模式泄漏。此外,本发明还进行了详细的性能评估;结果表明,本发明可以达到预期的安全性目标,同时实现高效的搜索操作。

本发明使用了HVE加密构造验证器,来实现隐藏关键词文档对结果模式的连接关键词检索,然后将其与目前最高效的前向安全对称可搜索加密方案相合,实现了所述前向安全的连接关键词对称可搜索加密方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的前向安全的连接关键词对称可搜索加密方法流程图。

图2是本发明实施例提供的系统模型图。

图3是本发明实例提供的设置阶段时间开销示意图。

图4是本发明实例提供的验证器存储开销示意图。

图5是本发明实例提供的更新效率评估示意图。

图6是本发明实例提供的检索时间评估示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

首先,给出本发明描述中涉及到的各个符号代表的含义:

表1符号定义

针对现有技术存在的问题,本发明提供了一种前向安全的连接关键词对称可搜索加密方法、系统及应用,下面结合附图对本发明作详细的描述。

如图1所示,本发明实施例提供的前向安全的连接关键词对称可搜索加密方法包括以下步骤:

S101:客户端和服务器端分别初始化自己的存储结构和系统参数;

S102:客户端将文档预处理为keyid对,对keyid对进行加密处理,生成索引和验证器信息,然后将密文信息、索引和验证器信息上传给服务器,服务器对索引和验证器缓存结构进行更新;

S103:客户端对搜索关键词进行处理,生成搜索陷门,将陷门上传给服务器;

S104:服务器收到搜索陷门之后,在索引上进行搜索,得到频率最低的搜索关键词的搜索结果;

S105:服务器根据搜索结果构建针对搜索结果和其他搜索关键词的验证信息,并将验证信息返回给客户端;

S106:客户端利用验证信息生成验证令牌上传给服务器;

S107:服务器收到验证令牌之后,在验证器上对第四步的搜索结果进行筛选,并将筛选结果返回给客户端。

本发明实例提供的前向安全的连接关键词对称可搜索加密方法公开了一种具有前向安全性质,且支持连接关键词检索对称可搜索技术。包含了以下三个算法:

Setup算法:生成所必须的一些参数、密钥和数据结构。客户端输入安全参数λ,根据λ初始化存储结构Σ和Γ,生成HVE加密主密钥msk,根据关键词文档对数量初始化一个布隆过滤器BF,使用HVE加密BF得到初始验证器c并发送给服务器端,服务器端初始化三个存储结构C,T

初始化阶段具体包括:

客户端输入安全参数λ,根据λ初始化存储结构Σ和Γ,该存储结构是map结构的数据结构,Σ用来存放每个关键词w的状态st和计数器c

Update算法:在更新算法中,客户端将需要插入的文档预处理为key-id对,以key-id为单位进行处理,生成该key-id对的密文和索引,将密文和索引打包发送给服务器;服务器在收到客户端发送的数据之后,将其存储在T

所述更新阶段具体包括:

要插入新的关键词文档对(w,ind),具体来说,对于关键词w,客户端从映射Σ中读取它的最新状态st和计数器c

Search算法:在搜索算法中,用户提交所搜索关键词的令牌,服务器收到令牌之后,根据令牌信息在T

搜索阶段具体包括:

搜索期间,客户端和服务器端共有两轮交互。第一轮:客户端要执行连接关键词检索(w

本发明的隐藏关键词文档对结果模式连接关键词检索技术,是通过隐藏向量加密(HIDDEN VECTOR ENCRYPTION,HVE)来实现的。HVE是一种谓词加密,它支持对加密数据进行连接、对比和子集查询等。

如图2所示,本发明包含数据拥有者、云服务器和数据使用者三类实体:

数据拥有者,用于将个人数据外包存储在云服务器上,数据文件在上传之前要先被预处理为w-id形式,对w-id对进行加密处理,并根据w-id信息生成增量索引和验证器;数据拥有者将密钥分享给其希望授权的用户,被授权的用户称作数据使用者;只有数据使用者能够进行搜索并得到搜索结果;

云服务器,具有海量存储资源以及充足的计算资源,做到安全地存储数据拥有者上传的数据、索引和验证器;忠实地执行数据使用者的查询请求,并根据验证令牌对搜索结果进行筛选,返回完整且正确的搜索结果;

数据使用者,是被数据拥有者授权的用户,其拥有生成搜索令牌的密钥;在搜索阶段,数据使用者根据所搜索的关键字生成搜索陷门并提交陷门信息到云服务器;在收到云服务器返回的验证信息之后,数据使用者根据验证信息生成验证令牌发送给云服务器,从而得到正确且完整的搜索结果。

下面结合性能分析对本发明的应用效果作详细的分析。

使用Python3.9实现了本发明中的方案。对于该方案中的密码学原语及算法,使用Python自带的hashlib模块以及第三方加密模块cryptography来实现。安全参数设为128比特。因实验条件所限,本实例的客户端和服务端均运行在一台安装有win10专业版系统的电脑上,该电脑的配置为Core i5-9400F@2.90GHz的处理器,16.0GB的主存,以及500GB的固态硬盘。HVE算法还使用到了一个对称加密算法Sym,和伪随机函数F

在设置阶段,本发明的方案需要对BF加密生成验证器c,BF确定之后,c的大小在所有阶段都保持不变。我们将BF的误报率设为0.01。在图3中,我们给出了设置阶段的时间开销。图4中,我们给出了验证器的存储开销。设置阶段的时间存储花销均是与关键词文档对数量成正比。

本发明中的方案将和F0XT-E方案的更新和搜索性能进行对比。首先,关注的是更新效率,如图5所示。由于本发明的方案在更新时需要用到HVE.Enc来完成验证器信息的更新,所以在更新效率方面略有不及,但是F0XT-E方案是基于OXT协议实现的连接关键词检索,而我们方案所使用的HVE加密具有更好的安全性,向服务器泄露的信息更少,所以,这些性能的稍许延迟是可以接受的。

最后,进行搜索效率比较。如图6所示,在大小不同的数据库上执行任意两个关键词的连接检索,以评估搜索效率。可以看到,搜索时间与数据库的大小不是线性关系。由于实验条件的限制,本次测试是使用同一台电脑作为客户端和服务端,本发明的方案在搜索时需要进行两轮交互,而FOXT-E方案只需要一轮。但可以明确的是,本发明的方案也具有亚线性的搜索效率。

虽然本发明的方案在效率上有所不及,但仍然是非常有效的。尤其是本发明所使用的HVE加密,消除了连接关键词检索中存在的结果模式泄露问题。以稍微增加通信和计算开销为代价获得了更好的安全性。

应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号