一种面向云计算的可验证单关键词Top‑k检索方法与流程

文档序号:11287209阅读:162来源:国知局
一种面向云计算的可验证单关键词Top‑k检索方法与流程

本发明涉及云计算安全领域,是一种面向云计算的可验证单关键词top-k检索方法。



背景技术:

随着云计算技术的成熟,以amazonec2、googleappengine等为代表的云服务模式得到快速发展和应用普及。越来越多的企业和个人通过将存储、计算等资源外包至云服务提供商(cloudserviceprovider,云服务器p)来降低运营成本。it资源服务化的思想日益普及,呈现“一切皆服务”(xasaservice,xaas)的趋势,“服务”成为云计算的核心概念。然而在云计算蓬勃发展的同时,云安全也成为被广泛关注的问题。在云计算环境中,用户对放置在云服务器(cloudserver,云服务器)中的数据和计算失去控制,对于数据是否受到保护、计算任务是否被正确执行都无法确定,因此需要设计相应的安全机制和体系结构来保护用户数据的机密性和完整性。前者主要通过隐私保护等密码手段实现数据的不可窥探性;而后者主要是指用户对查询结果进行验证,防止数据被篡改、伪造或丢弃。

当前,研究者们主要考虑半诚实模型(honest-but-curious)框架下的安全检索问题,即假设云服务器能够严格按照约定的协议来对客户提供数据检索服务,但可能会窃取数据信息。针对云计算环境中文档检索的隐私保护问题已经成为现有研究工作关注的热点问题,其中,同态加密技术和可搜索加密技术是该类研究工作常用的安全技术手段。然而,云服务器并不一定总是遵守半诚实模型,云服务器可能不按照既定的协议提供数据,或者数据的计算过程可能由于负载过重、软件漏洞等问题而出现差错,导致返回给用户的检索结果不正确或不全面。针对检索结果完整性问题较少被研究者关注,事实上,在某些领域,检索结果的完整性要求极为重要,而数据私密性有时却不是必须的。例如,在证券交易领域,任何一只股票的对价成交数据都是公开的,并不具备私密性要求,每个用户都可以查看这些数据;而能否返回符合特定检索模式要求的正确且完整的检索结果才是用户最为关心的。随着越来越多的政府、企业和个人将自己的数据托管到云服务器,云服务器被攻击造成的检索结果不完整也越来越引起业界的关注。因此,在不考虑数据隐私性前提下,如何确保检索结果的完整性是云计算技术研究和应用中的一个重要问题。

现有技术中有的方法是基于云服务器按照“半诚实模型”方式提供服务这一假设的,不能验证由于系统错误或者主动减少计算开销等原因导致的计算结果不完整;有的构造验证码信息复杂,并且当数据使用者检索top-k文档时,返回的验证码信息冗余大,导致通信效率和重构验证码效率都比较低。



技术实现要素:

本发明的目的是提供一种面向云计算的可验证单关键词top-k检索方法。通过本发明提供的方法,数据使用者可以对检索结果的k个文档进行验证,从而确定检索结果是否被篡改或丢弃,确定结果的真实性和完整性。

一种面向云计算的可验证单关键词top-k检索方法,包括以下步骤:

数据拥有者构造验证码信息;对于关键词集合中的每个关键词,计算文档集合中每个文档与所述关键词的相关度并排序,按照相关度排序顺序构造验证码信息;

数据拥有者将文档集合和验证码信息发送到云服务器,供数据使用者检索,所述云服务器处理所述数据使用者的检索请求的过程如下:

s1、所述云服务器接收到所述数据使用者发来的检索指令,所述检索指令的参数为指定的文档集合、关键词和所述数据使用者需要检索的文档数量;

s2、所述云服务器根据所述指定的文档集合和所述关键词计算所述指定的文档集合中与所述关键词最相关的k个文档,将所述文档添加到检索结果集合中;

s3、判断所述检索结果集合中的top-k文档数量是否满足数据使用者需要的文档数量,如果是则将检索结果文档集合和文档对应的验证码信息一起发送至数据使用者;否则返回步骤s2;

s4、数据使用者接收云服务器返回的检索结果文档集合,进行以下操作:

s4-1、提取出top-k文档和验证码信息;

s4-2、检查检索结果中的文档是否是k个,如果是则继续执行步骤s4-3;否则检索结果验证失败,检索结果遭到篡改、丢弃等攻击,top-k检索及验证过程结束;

s4-3、数据使用者计算返回的检索结果文档和检索使用的关键词之间的相关度得分并排序,根据该顺序重构验证码信息;

s4-4、数据使用者比较云服务返回的检索结果中的验证码信息和重构得到的验证码信息是否相等,若不相等则检索结果验证失败,检索结果遭到篡改、丢弃等攻击,top-k检索及验证过程结束;若相等则检索结果验证通过,是真实且完整的检索结果,没有经过篡改、丢弃等攻击,top-k检索及验证过程结束。

本发明还提供一种面向云计算的可验证单关键词top-k检索方法,包括以下步骤:

云服务器接收数据拥有者发来的文档集合和验证码信息,所述的验证码信息由以下步骤得到:对于关键词集合中的每个关键词,数据拥有者计算文档集合中每个文档与所述关键词的相关度并排序,按照相关度排序顺序构造验证码信息;

云服务器接收并处理数据使用者的检索请求:

s1、所述云服务器接收到所述数据使用者发来的检索指令,所述检索指令的参数为指定的文档集合、关键词和所述数据使用者需要检索的文档数量;

s2、所述云服务器根据所述指定的文档集合和所述关键词计算所述指定的文档集合中与所述关键词最相关的k个文档,将所述文档添加到检索结果集合中;

s3、判断所述检索结果集合中的top-k文档数量是否满足数据使用者需要的文档数量,如果是则将检索结果文档集合和文档对应的验证码信息一起发送至数据使用者;否则返回步骤s2;

s4、数据使用者接收云服务器返回的检索结果文档集合,进行以下操作:

s4-1、提取出top-k文档和验证码信息;

s4-2、检查检索结果中的文档是否是k个,如果是则继续执行步骤s4-3;否则检索结果验证失败,检索结果遭到篡改、丢弃等攻击,top-k检索及验证过程结束;

s4-3、数据使用者计算返回的检索结果文档和检索使用的关键词之间的相关度得分并排序,根据该顺序重构验证码信息;

s4-4、数据使用者比较云服务返回的检索结果中的验证码信息和重构得到的验证码信息是否相等,若不相等则检索结果验证失败,检索结果遭到篡改、丢弃等攻击,top-k检索及验证过程结束;若相等则检索结果验证通过,是真实且完整的检索结果,没有经过篡改、丢弃等攻击,top-k检索及验证过程结束。

本发明的有益效果:

一、安全性分析

本发明考虑的是明文数据检索结果的可验证性,因此本发明方法的安全性即为可验证性。

在top-k检索与验证过程中,由于云服务器并不一定总是遵守半诚实模型,可能不按照既定的协议提供数据,或者数据的计算过程可能由于负载过重、软件漏洞等问题而出现差错,导致返回给用户的检索结果不正确或不全面。而这种不完整的检索结果要想通过数据使用者的完整性验证,必须修改对应的验证码信息,然而构造验证码信息使用的hmac密钥是由数据使用者和数据拥有者共享,对云服务器保密,在云服务器不知道存储密钥的情况下,破解top-k文档验证码信息的复杂度等同于破解hmac算法复杂度。因此,合理选择hmac算法(如sha-256等),就能保证云服务器无法破解检索结果的完整性而不被数据使用者识别,从而保证数据使用者对检索结果top-k文档完整性验证。

二、通信代价分析

对于面向云计算的top-k检索服务,数据使用者真正需要的数据是根据检索请求q=(ds,wq,k)返回的和wq最相关的k个文档集合,而返回的验证码信息hq,i是为了保证检索结果top-k文档的完整性,相对于数据使用者真正需要的top-k文档来说,hq,i是为了完成检索结果完整性验证而必须的冗余信息,因此,数据使用者希望达到相同安全性的同时,验证码信息要尽可能少。本发明使用检索结果冗余度δr衡量验证码信息长度占返回检索结果总长度的比值。冗余度越低,额外通信开销越小。设数据使用者接收到云服务器返回的检索结果数据为<ds,h’>,根据top-k检索及验证部分可知云服务器返回k个检索结果文档和1个验证码信息。与现有的方法相比,由于本发明返回的验证码信息只包含1个hmac信息,而上述论文中提到方法需要返回k个hmac信息,若验证码信息采用sha-256构造,则每次节省通信开销为(k-1)×256bit,从而本发明有效地降低了由于添加验证码信息在云服务器和du之间的带来的冗余通信代价。

三、验证码信息重构代价分析

由通信代价分析部分可知,数据使用者每次检索,返回的是k个最相关的文档和1个验证码信息,验证码信息基于hmac构造。那么在数据使用者接收到检索结果后只需要重构1个验证码信息,相比于原有方法,可以减少(k-1)次验证码信息构建,因此本发明使得每次检索验证码信息的重构代价有效降低。

附图说明

图1为面向云计算的可验证单关键词top-k检索框架;

图2为数据上传过程的流程示意图;

图3为top-k检索及验证过程的流程示意图。

具体实施方式

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

本实施方式研究云环境下根据单关键词进行top-k文档检索,验证云端返回的k个文档是否是和检索使用的关键词最相关的k个文档,并且这k个文档没有被篡改或丢弃。假设云服务器记为cs,文档集合中包含n个文档,记为ds={d1,d2,…,dn},热点关键词集合中包含m个关键词,记为w={w1,w2,w3,…,wm}。数据拥有者记为do,数据使用者记为du,g为生成验证码信息使用的hmac密钥,g由do和du共享,对cs保密。针对关键词wq的文档di的验证码信息记为hq,i,score(wq,di)表示wq和di的相关度得分,表示文档di相对于关键词wq的相关度高于文档dj,即score(wq,di)>score(wq,dj)。数据使用者发送的查询指令记为q=(ds,wq,k),表示在文档集合ds中获取和查询关键词wq最相关的k个文档。此外,设hmacg(·)为hmac函数(例如sha-256),其中g为密钥,表示数据连接操作。

在实际应用中,k<<n。显然,对于任意两个不同文档di和dj,如果将文档的id、创建时间等信息考虑进来,则能够确保di和dj对于检索关键词的相关度不相等。因此,设ds中各文档对于关键词wq的相关度具有严格偏序关系,即对于查询关键词wq,任何两个文档和wq的相关度都不相等,且可以比较大小。

面向云计算的可验证单关键词top-k检索方法包括数据上传和top-k检索及验证两个过程:

1、数据上传

为了实现针对检索结果完整性的验证,do在上传文档集合数据到cs时,同时要附带相关验证码信息。在du获得检索结果文档集合时,能够利用该验证码信息验证检索结果的完整性。下面给出了利用文档与检索关键词之间相关度得分的偏序关系构造验证码信息的方法,并基于该方法给出数据上传的具体过程,如图2所示。

(1)采用词频(termfrequency,tf)度量一个关键词wq和文档di的相关度,词频反映的是单词在单个文档中的出现次数,考虑到文档长度的不同,我们将词频标准化,得到关键词w与文档di相关度计算公式为:

其中,|di|是文档长度,di,w是w在di中出现次数。

(2)设ds={d1,d2,…,dn}中各文档对于关键词wq的相关度得分排序后得到按照如下方法为文档{d1,d2,…,dn}构造关于wq的验证码信息{hq,1,hq,2…,hq,n},

(3)按照(2)中的方法对关键词集合w={w1,w2,…,wm}中的每一关键词,分别构造针对ds中每一个文档的验证码信息,并将文档以及相应的针对关键词的验证码信息一起上传至cs,即:

(4)cs接收并存储do发来的数据信息。

2.top-k检索及验证

top-k检索及验证主要由du和cs协作完成,du发送检索指令至cs,然后cs根据指令要求执行检索处理,并返回相关结果,最后du验证返回结果的完整性,如图3所示。具体过程如下:

(1)du将检索指令q=(ds,wq,k)提交给cs,然后等待cs的返回结果。

(2)cs接收到q,查找包含关键词wq的文档编号列表,通过计算相关度得分最大的前k个文档,构成检索结果文档集合r,设r={d1,d2…,dk},且对于wq满足此时cs将r和验证码信息hq,k返回至du,即:

cs→du:<r,hq,k>

(3)du接收到cs返回的结果消息<ds,h>,其中ds为检索结果文档集合,h为验证码信息,du执行如下针对检索结果的验证过程:

①检查ds中是否包含k个文档,若|ds|=k成立则转验证步骤②,否则ds即为不满足完整性要求的检索结果,检索失败退出;

②设ds={d1,d2…,dk},对于wq满足此时du根据与do共享的密钥g重构验证码信息成立,则ds即为满足完整性要求的正确检索结果,检索成功退出;否则ds不满足完整性要求,检索失败退出。

在阐释以上流程的基础上,举一典型实施例。设文档集合ds={d1,d2,d3,d4},关键词集合w={w1,w2},对于w1有成立,对于w2有成立,因此,对于w1而言,d1、d2、d3和d4对应的验证码信息分别为对于w2而言,d1、d2、d3和d4对应的验证码信息分别为若du向cs发送检索请求(ds,w1,3),则cs应返回r={d1、d2、d3}和即ds3(w1)={d1,d2,d3},du接收到cs返回的结果,检查r中是否是3个文档,若不是,则验证不通过;否则检查重构h’1,3,检查h’1,3和h1,3是否相等,若不相等,则不通过验证,若相等则通过验证。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1