本发明涉及数据查询验证技术领域,尤其涉及位置服务技术中的数据查询处理验证领域,具体是一种数据外包场景下基于服务提供商信誉的查询验证方法。
背景技术:
随着移动设备在社交网络服务中的广泛使用,以及基于位置的应用不断繁荣,数据外包场景下的空间查询处理变得越来越频繁和重要。因为减轻了数据拥有者do在数据管理过程中的巨大负担,数据外包有潜力提供更有效和节约成本的服务。在数据外包过程中,数据拥有者do将自己的数据委派给服务提供商sp,服务提供商sp为数据建立索引,反馈用户的查询要求。因为服务器不在数据拥有者do的管理权限范围内,服务器可以篡改返回的查询结果,因此,用户在收到查询结果后,还需要由服务器提供可验证对象vo,用于对查询结果进行验证,确保查询结果满足三个条件:真实性,正确性,完整性。
专利申请号:cn201510101056.0的中国专利申请公开了一种基于merkle树的空间查询完整性验证方法,该方法在已有的自适应hilbert曲线所生成的四分树节点上,提出了支持查询完整性验证的merkle树结构的构建方法,并提出了范围查询与knn查询的完整性验证方法,使得本发明所提供的完整性验证结果不存在误报与漏报的情况,进而使得服务提供者难以对用户的查询结果进行恶意更改。本发明方法可以在空间数据外包的服务模式下,为用户提供高效的验证结构生成功能,以及准确的范围查询与knn查询完整性验证功能,从而保证空间查询服务的质量。然而该方法只提供了一种merkle树结构的空间查询完整性验证方法,对数据的有效性和正确性没有相关涉及。
专利申请号:cn201310132565.0的中国专利申请公开了一种基于哈希树的数据动态操作可验证性方法,是由用户user、云计算数据中心cdc和第三方审计机构tpa三部分通过通信网络连接组成。用户user作为数据存储服务请求的提出一方,希望将自己拥有的数据文件存储到云计算数据中心的云存储空间之中。用户user既可以是个人用户,也可以是企业用户。cdc负责响应用户的数据存储服务请求,按照一定的规则将用户的数据文件存储到自己庞大的数据中心,并对数据文件的管理维护负责。tpa作为可靠的第三方审计机构,受user的委托对存储在cdc数据中心的数据文件进行完整性和一致性的审查。本发明解决了云计算环境下对于用户数据文件完整性和一致性的验证问题。然而,本发明在查询验证上不够高效。
在数据外包场景下,现有的数据查询验证方法都不可避免地需要用户在每次查询过程中让服务提供商在返回查询结果的同时返回可验证对象vo,以便对查询结果进行验证。然而,可验证对象vo的大小通常远大于查询结果的大小,这将导致可验证对象vo成为可验证查询中主要的通信开销。
技术实现要素:
本发明的目的在于克服现有技术的不足,提供一种数据外包场景下基于服务提供商信誉的查询验证方法,显著降低服务提供商和用户之间的通信和计算开销,提升查询过程的效率,并高概率地保证查询结果真实可靠。
本发明的目的是通过以下技术方案来实现的:一种数据外包场景下基于服务提供商信誉的查询验证方法,在数据外包场景下的查询服务中,
所述的方法,使用一种基于概率的查询验证策略,用一个信誉值来衡量服务提供商返回虚假结果的可能性,并根据信誉值来选择性地要求服务提供商返回可验证对象vo,用可验证对象vo来对查询结果进行验证。
所述地进行验证,包括对查询结果的真实性、正确性和完整性进行验证。
所述的方法,进一步,包括步骤:
服务提供商sp在接收到用户查询请求并进行处理生成可验证对象vo和结果集r后,返回结果集r给用户,用户接收到结果集r后,先计算出对结果集r的满意度,然后根据满意度和信誉值计算出向服务提供商sp请求可验证对象vo的概率,再根据概率生成可验证对象vo请求序列,接着将可验证对象vo请求序列发送至服务提供商sp,服务提供商sp根据请求序列向用户返回相应的可验证对象vo,用户接收到可验证对象vo后,根据可验证对象vo验证查询结果。
进一步,计算满意度,包括步骤:
(1)建立l维的坐标系来展示偏好点的非空间属性,在l维的坐标系中,在每两条坐标轴之间画出一条平分线,通过计算出一个兴趣点poipj到该平衡线的距离σj来衡量用户对结果点pj的满意程度,使用如下计算方式:
其中,
(2)进一步地,在时间跨度ti内,使用如下计算方式,计算第j个查询结果的满意度
其中,||r||为第j个查询的结果集的大小,对于第i个时间跨度ti,τi为该时间跨度内的查询次数;
(3)更进一步地,在τi时间跨度内用户的总体满意度si的计算方式为:
其中,
其中,
其中,||·||是一个计数方程。
进一步,计算信誉值,包括步骤:
(2)用户根据服务提供商sp的信誉值在前一个时间跨度中的表现来计算服务提供商sp当下的信誉值,服务提供商sp在时间跨度ti的信誉值ηi的计算方式为:
其中,∈i表示服务提供商在该时间跨度中返回虚假结果的次数,δ为惩罚系数。
进一步,计算满意度,在步骤(2)之前,包括步骤(1):初始状态下,默认服务提供商不可信,将其信誉值设置为0。
进一步,计算概率,包括步骤:
用户以概率κi来向服务提供商sp请求可验证对象vo,κi的计算方式为:
其中,ηi为计算出的服务提供商sp的信誉值。
进一步,在每一个时间跨度ti的末尾,用户根据概率κi生成随机的可验证对象vo请求序列rsi={qid1,qid2,...},用户将生成的序列rsi发送给服务提供商sp的服务器,服务提供商sp的服务器根据rsi返回相应的可验证对象vo。
进一步,更新κi。
本发明的有益效果是:
(1)本发明在数据外包场景下的查询服务中,使用一种基于概率的查询验证策略,用一个信誉值来衡量服务提供商返回虚假结果的可能性,并根据信誉值来选择性的要求服务提供商返回可验证对象vo,用可验证对象vo来对查询结果的真实性、正确性和完整性进行验证,以此来提升查询验证的效率。本发明可以显著降低服务提供商和用户之间的通信和计算开销,提升查询过程的效率,并高概率地保证查询结果真实可靠。
(2)在数据外包应用中,尤其是基于位置的各种服务,服务提供商sp出于自身商业利益考虑,很可能向用户返回虚假结果。为了避免这种情况,本发明在保障用户使用服务提供商数据的真实可靠性的前提下,通过衡量服务提供商返回虚假结果的可能性,减少了不必要的查询处理开销,提高了效率。
(3)对服务提供商sp来说,可验证对象vo的计算和返回会造成额外的计算和传输开销,本发明减少了vo的使用,降低了程序开发成本,降低了服务提供商的运营成本。通过减少请求可验证对象vo的次数,服务提供商sp和用户之间的通信和计算开销可以被显著地降低,与此同时,查询结果的安全可靠性仍然能够得到保证。
附图说明
图1为本发明的第一示意图。
图2为本发明的流程图。
图3为本发明的第二示意图。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
面向偏好的多用户空间查询(preference-orientedmultipleuserspatialqueries,pmusq),来满足多用户场景下的多维度查询需求。具体来说,对于一组位置不同且个人偏好各不相同的查询用户,pmusq查询请求会向该组所有用户返回一组最能同时满足所有用户偏好的结果点集合,集合中结果点的数量由用户决定。
在数据外包服务场景中,有三个角色:数据拥有者do、服务提供商sp和用户,本领域技术人员可以按照如下方式定义,但是,本发明不限于如下定义,本领域技术人员根据本发明的实质还可以采取作适应性修改后的其他定义方式。
定义:
(1)服务提供商的sp属性默认是诚实并好奇(honest-but-curious)的,即,服务提供商sp不会主动攻击用户。
(2)用户在向服务器请求服务时希望收到服务器提供的查询结果,而并不会主动地攻击服务器,即,用户不是恶意用户。
分析:
(1)对服务提供商来说,它有可能向用户返回虚假的结果。为了避免这种情况,我们可以设计一种方法来衡量服务提供商返回虚假结果的可能性。
(2)对服务提供商来说,vo的计算和返回会造成额外的计算和传输开销,它希望减少vo的使用。
(3)通过减少请求vo的次数,服务提供商和用户之间的通信和计算开销可以被显著地降低,与此同时,查询结果的安全可靠性仍然能够得到保证。
在此基础上,本发明提出基于信誉的查询验证方式。首先,本发明将时间分割为一系列时间跨度t1,t2,...,tn。服务提供商sp在不同的时间跨度内有不同的信誉值。服务提供商sp在一个时间跨度ti内的信誉值由它在该时间段内的查询质量(查询时间、查询结果真实性等)和它在前一个时间跨度内的信誉值计算得到。信誉值直接反映了用户对服务提供商的信任程度。用户对于查询结果的评价是由它们对服务提供商返回的兴趣点poi结果集的满意程度来决定的。
我们假设查询用户集合提出的偏好点均为各个属性维度上的极值。对于一个用户的偏好点p'来说:
θ为属性维度集,θm为属性维度值,我们建立一个l维(l≤m)的坐标系来展示偏好点的非空间属性。在这l维的坐标系中,我们可以在每两条坐标轴之间画出一条平分线,即与两轴均形成45度夹角。我们通过计算出一个兴趣点poipj到该平衡线的距离来衡量用户对于结果点pj的满意程度。该距离的计算方式为:
如图1,2,3所示,一种数据外包场景下基于服务提供商信誉的查询验证方法,在数据外包场景下的查询服务中,
所述的方法,使用一种基于概率的查询验证策略,用一个信誉值来衡量服务提供商返回虚假结果的可能性,并根据信誉值来选择性地要求服务提供商返回可验证对象vo,用可验证对象vo来对查询结果进行验证。
所述地进行验证,包括对查询结果的真实性、正确性和完整性进行验证。
所述的方法,进一步,包括步骤:
服务提供商sp在接收到用户查询请求并进行处理生成可验证对象vo和结果集r后,返回结果集r给用户,用户接收到结果集r后,先计算出对结果集r的满意度,然后根据满意度和信誉值计算出向服务提供商sp请求可验证对象vo的概率,再根据概率生成可验证对象vo请求序列,接着将可验证对象vo请求序列发送至服务提供商sp,服务提供商sp根据请求序列向用户返回相应的可验证对象vo,用户接收到可验证对象vo后,根据可验证对象vo验证查询结果。
进一步,计算满意度,包括步骤:
(1)建立l维的坐标系来展示偏好点的非空间属性,在l维的坐标系中,在每两条坐标轴之间画出一条平分线,通过计算出一个兴趣点poipj到该平衡线的距离σj来衡量用户对结果点pj的满意程度,使用如下计算方式:
其中,
(2)进一步地,在时间跨度ti内,使用如下计算方式,计算第j个查询结果的满意度
其中,||r||为第j个查询的结果集的大小,对于第i个时间跨度ti,τi为该时间跨度内的查询次数;
(3)更进一步地,在τi时间跨度内用户的总体满意度si的计算方式为:
其中,
其中,
其中,||·||是一个计数方程。
进一步,计算信誉值,包括步骤:
(2)用户根据服务提供商sp的信誉值在前一个时间跨度中的表现来计算服务提供商sp当下的信誉值,服务提供商sp在时间跨度ti的信誉值ηi的计算方式为:
其中,∈i表示服务提供商在该时间跨度中返回虚假结果的次数,δ为惩罚系数。
进一步,计算满意度,在步骤(2)之前,包括步骤(1):初始状态下,默认服务提供商不可信,将其信誉值设置为0。
进一步,计算概率,包括步骤:
用户以概率κi来向服务提供商sp请求可验证对象vo,κi的计算方式为:
其中,ηi为计算出的服务提供商sp的信誉值。
进一步,在每一个时间跨度ti的末尾,用户根据概率κi生成随机的可验证对象vo请求序列rsi={qid1,qid2,...},用户将生成的序列rsi发送给服务提供商sp的服务器,服务提供商sp的服务器根据rsi返回相应的可验证对象vo。
进一步,更新κi。
实施例1
服务提供商实施本发明向用户提供查询验证服务:
s11:服务提供商sp接收数据拥有者do发布的已签名的供选数据流ads,并存储;并且,服务提供商sp接收多用户查询请求pmusq;
s12:服务提供商sp进行pmusq查询处理和生成可验证对象vo;
s13:服务提供商sp向用户返回查询结果集r;
s14:服务提供商sp接收用户发送的请求序列rsi;
s15:服务提供商sp根据接收到请求序列rsi,再向用户选择性地返回对应可验证vo,以便用户根据返回的vo进行验证,控制vo的返回次数,减少计算开销,减少传输开销。
实施例2
基于位置的应用程序开发厂家实施本发明,他们开发与查询验证相关的应用服务程序,这些应用程序可能在开发阶段,或者在测试阶段,或者在使用阶段,包括如下步骤:
s21:可选的,在用户终端(例如移动终端),使用客户端程序(如app)向服务提供商sp发起pmusq请求;
s22:客户端程序接收服务提供商sp返回的查询结果集r,根据对结果集r的满意度更新κi值,并生成可验证对象vo请求序列rsi,然后将rsi发送给服务提供商sp;
s23:客户端程序接收服务提供商sp返回对应的可验证对象vo;
s24:客户端程序根据可验证对象vo验证对应结果集,包括进行真实性、正确性和完整性验证。
实施例3
用户在通用设备上,使用实施了本发明步骤流程的程序所实现的功能,例如,用户使用相关应用程序,包括app和web应用等,对地理空间下的兴趣点poi(pointofinterest,poi,如餐馆、旅游景点、酒店、娱乐设施等)发起快速查询请求,并得到服务器快速、高效地响应,提高用户使用体验。
实施例4
设备厂商将本发明公开的方法步骤,使用程序实现为程序模块,并将该程序模块固化在硬件模块中构成功能硬件模块,该功能硬件模块在工作时,其程序执行流程执行本发明的步骤,表现为使用带有该功能硬件模块的装置,基于概率和信誉计算,能够减少vo次数的使用,降低开发成本,降低计算开销成本和传输成本,提高设备响应于多用户空间查询的效率。
实施例5
运营商实施本发明,包括构建带有本发明上述所述功能硬件模块的设备基础设施,以及运营管理业务流程,或者基于运营管理业务流程开发平台管理软件系统进行通信网络管理,提供通信服和增值服务等,执行本发明如下步骤:
s31:数据拥有者do构建供选数据流ads,并对供选数据流ads签名,然后发布已签名供选数据流ads给服务提供商sp,在服务提供商sp端存储有签名供选数据流ads;
s32:用户发起pmusq查询请求,服务提供商sp接收用户查询请求后,并对用户查询请求进行处理,可以使用标准算法执行可验证查询处理,生成可验证对象vo和结果集r,值得注意的是,虽然服务提供商sp此时在本地生成了可验证对象vo,但是不需要与结果集r一起返回给用户;
s33:服务提供商sp返回结果集r给用户,用户接收到结果集r后,首先计算出对结果集r的满意度,然后根据满意度,计算出向服务提供商请求可验证对象vo的概率κi;
s34:用户端在每一个时间跨度ti的末尾,用户根据概率ti生成随机的vo请求序列;
s35:用户将生成的序列rsi发送给服务器,服务器根据rsi返回相应的vo;
s36:用户收到vo并验证rsi中的查询结果,包括进行真实性、正确性和完整性验证。
服务提供商出于自身商业利益考虑,很可能向用户返回虚假结果,例如虚假营销信息等,在数据外包应用中,尤其是基于位置的各种服务,例如各种导航应用和商品推荐app等,用户通过移动终端设备或应用,发起基于位置空间的查询请求,本发明可以显著降低服务提供商和用户之间的通信和计算开销,提升查询过程的效率,并高概率地保证查询结果真实可靠。
数据拥有者do,dataowner。
服务提供商sp,servicesproviders。
用户,user。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的方法步骤及模块,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法实现所描述的功能,但是这种实现不应超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、设备、方法的具体工作过程,可以参考前述实施例中的对应过程,在此不再赘述。
本发明所揭露的方法、系统和设备,可以通过其它的方式实现。例如,可以使用模块,包括程序模块,对模块的划分,可以仅仅是一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以说通过一些接口,装置或系统的间接耦合或通信连接,可以是电性,机械或其它的形式。分立部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例的方案目的。
另外,在本发明实施例中的方法步骤,可以使用程序模块集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、制度存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。