CN106708921A - 对加密数据的多对数范围查询 - Google Patents

对加密数据的多对数范围查询 Download PDF

Info

Publication number
CN106708921A
CN106708921A CN201610911555.0A CN201610911555A CN106708921A CN 106708921 A CN106708921 A CN 106708921A CN 201610911555 A CN201610911555 A CN 201610911555A CN 106708921 A CN106708921 A CN 106708921A
Authority
CN
China
Prior art keywords
tree
search
token
encryption
scope
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610911555.0A
Other languages
English (en)
Inventor
F.哈恩
F.克施鲍姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SAP SE
Original Assignee
SAP SE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SAP SE filed Critical SAP SE
Publication of CN106708921A publication Critical patent/CN106708921A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

用于对加密数据进行范围查询的方法、系统和计算机可读存储介质,包括动作:接收范围查询令牌;确定加密搜索索引的树列表是否为空、以及令牌的范围是否与在树列表树说明的范围相交、加密的搜索索引是否包括树列表和点列表中的一个或多个;如果树列表非空并且令牌的范围是由树列表说明的范围的至少一个子范围,接收基于搜索树中的一个的加密的查询结果,以及如果树列表为空或令牌的范围不是由树列表说明的范围的至少一个子范围,并且更新基于令牌的加密搜索索引,接收点列表。

Description

对加密数据的多对数范围查询
技术领域
本申请涉及对加密数据的查询。
背景技术
在云平台和/或数据库即服务(DaaS)环境中加密数据库提供了数据保护(安全性)。在加密数据库中,可以在客户端上对数据(明文)加密以提供加密数据(密文),密文可以提供给数据库进行存储。在一些示例中,第三方提供并维护该数据库。即,数据库是外包给第三方的。例如,客户使用一个或多个加密密钥来加密数据以提供加密数据,客户将其发送给第三方在数据库中存储。
外包数据库为客户提供了有效的资源管理和低廉的维护费用,但将外包数据(客户数据)暴露给了服务提供商(第三方提供数据库及其代理)。例如,如果它们对应的明文落在要求的范围内,则私密性保护的范围查询使能加密数据,同时还能够进行密文的测试。这提供给数据所有者外包数据集给云服务供应商同时既不牺牲私密性也不失去过滤数据的功能的可能性。然而,用于处理范围查询的当前的方案或者泄漏另外的信息(例如,完整的数据集的顺序),或显著减慢搜索过程。
发明内容
本公开的实现包括计算机实现的用于对存储在服务器上的数据库中的加密数据进行多对数范围查询的方法。在某些实现中,动作包括:由服务器端计算装置从客户端计算装置接收范围查询令牌;由服务器端计算装置确定加密的搜索索引的树列表是否为空以及范围查询令牌的范围是否与在树列表中的至少一个树负责(account)的范围相交中的一个或多个,所述加密的搜索索引包括树列表和点列表;由服务器端计算装置,如果树列表非空并且范围查询令牌是由树列表中负责的范围的至少一个子范围则基于搜索树中的一个接收加密的查询结果,以及如果树列表为空或范围查询令牌的范围不是树列表负责的范围的至少一个子范围则接收点列表;以及由服务器端计算装置基于范围查询令牌和客户端-服务器端协议更新加密的搜索索引。该方面的其他实现包括相应的系统、设备和计算机程序,被配置为执行在计算机存储装置上经编码的所述方法的动作。
这些和其他实现方式可以分别可选地包括以下特征中的一个或多个:更新加密搜索索引包括,至少部分地基于发送范围查询令牌和之前接收的范围查询令牌到客户端计算装置,细化树列表的搜索树,从客户端计算装置接收细化的范围令牌,加密的搜索索引基于细化的范围令牌更新;更新加密的搜索索引包括,至少部分地基于发送搜索树的根节点和先前接收到的对应于该搜索树的查询到客户端计算装置来扩展树列表的搜索树,以提供扩展的搜索树,并提供对应于扩展的搜索树的新的范围查询令牌;更新加密的搜索索引包括至少部分地基于发送多个搜索树的相应根节点到客户端计算装置来合并树列表的多个搜索树以提供合并的搜索树,以及接收对应于合并后的搜索树的经修订的令牌;响应于确定在多个树之间没有任何值间隙合并多个树;动作还包括从客户端计算装置接收加密的搜索索引和密文;以及树列表包括基于先前接收到的范围查询令牌的至少一个搜索树。
本公开还提供耦合到一个或多个处理器的和具有在其上存储的指令的计算机可读存储介质,当由一个或多个处理器执行指令时,使得一个或多个处理器根据本文提供的方法的实现执行操作。
本公开还提供了一种系统,用于实现本文所提供的方法。该系统包括一个或多个处理器,以及耦合到一个或多个处理器的具有在其上存储的指令的计算机可读存储介质,当由一个或多个处理器执行指令时,使得一个或多个处理器根据本文提供的方法的实现执行操作。
可以理解,根据本公开的方法可以包括本文所描述的方面和特征的任意组合。也即,根据本公开的方法不限于本文具体描述的方面和特征的组合,也包括所提供的方面和特征的任意组合。
在下面的附图和说明中阐述本公开的一个或多个实现的细节。从说明书和附图,以及从权利要求书中,本公开的其它特征和优点将是显而易见的。
附图说明
图1描绘了根据本公开的实现的示例高级体系结构。
图2描绘了根据本公开的实现的示例搜索树。
图3描述范围之间的示例关系。
图4描绘了可以根据本公开的实现来运行的示例过程。
图5是可以用于执行本公开的实现的计算机系统的示意图。
在各个附图中相同的参考符号指示相同的元件。
具体实施方式
本公开的实现包括对在服务器上的数据库中存储的加密数据进行多对数范围查询的计算机实现的方法。更具体地,本公开的实现使能从客户(例如,数据所有者)请求的范围查询在服务器端(例如,承载的数据库)进行比较。以这种方式,服务供应商可以使用从先前查询的范围获得的信息以加快后续范围查询的搜索时间。在一些实现中,落在查询的范围中的值存储在交互地构建的搜索索引中用于后续的范围请求。在一些实现中,之前还没有查询过的值不会泄漏任何信息到云服务提供商并且保持完全安全。如在本文中进一步详细讨论的,本公开的实现减少了信息泄漏,同时支持平均多对数的搜索时间。
图1描绘了根据本公开的实现的高级体系结构100的例子。高级体系结构100包括计算装置102(例如,客户端)、服务器系统104、以及网络106。在一些示例中,计算装置102可以通过网络106和服务器系统104通信。在一些示例中,计算装置102可以通过一个或多个网络(例如,包括网络106)与服务器系统104通信。在一些示例中,计算装置102可以包括任何适当类型的计算装置,如台式计算机、膝上型计算机、手持式计算机、平板计算机、个人数字助理(PDA)、蜂窝电话、网络装置、照相机、智能电话、增强型通用分组无线业务(EGPRS)移动电话、媒体播放器、导航装置、电子邮件装置、游戏控制台、或这些装置或其他的数据处理装置的任何两种或更多中的适当组合。
在一些实现中,服务器系统104包括至少一个服务器装置108和至少一个数据存储器110。在图1的例子中,服务器系统104意在代表各种形式的服务器,包括但不限于:web服务器、应用服务器、代理服务器、网络服务器和/或服务器池。在一般情况下,服务器系统接受对应用服务的请求,并通过网络106向任何数量的客户端装置(例如,计算装置102)提供这样的服务。
在一些实现中,网络106可以包括大型计算机网络,诸如局域网(LAN)、广域网(WAN)、因特网、蜂窝网络、电话网络(例如,PSTN)或它们的适当组合,连接任何数目的通信装置、移动计算装置、固定计算装置和服务器系统。
根据本公开的实现,服务器系统104维护存储加密数据的数据库(例如,加密的数据库)。在一些示例中,数据(明文)在计算装置102(客户端)被加密,并且加密的数据(密文)通过网络106发送到服务器系统104以存储。在一些实现中,并且如本文所述,服务器系统104可以由第三方服务供应商提供,其存储并提供对加密数据的访问。
在一些实现中,数据库是也包括查询运行引擎的数据库系统的一部分。在一些示例中,查询运行引擎接收查询(例如,来自客户端的搜索令牌),基于查询提供查询计划,执行查询计划以提供响应(即,例如来自数据库的响应查询的加密数据),并将应答发送至客户(例如,从其接收了该查询)。在一些示例中,查询计划包括要对加密数据执行的一个或多个操作。
参照外包数据到云服务提供商(例如,云上的数据库)的示例上下文描述本公开的实现。云计算使得数据所有者外包数据,同时使得数据所有者使用一个或多个计算装置访问数据。例如,即使具有有限的计算能力(例如,智能电话,相对于台式计算机)的计算装置也可以用来访问相对大的数据集。通过委派计算昂贵的操作(例如,搜索)到云服务提供商,这是可能的。在一些示例中,匹配搜索查询的数据的相对小的子集被发送到客户端计算装置并由客户端计算装置进行处理。
为了保护数据私密性,对外包数据进行加密。例如,在客户端加密数据(明文)以提供加密的数据(密文),其被发送到并存储在服务器端。在一些示例中,标准加密方案不适合于数据外包场景,因为它们不使能加密数据的处理。其结果是,整个加密的数据需要被传送到客户端计算装置,并在本地解密和处理。
高级加密方案使能服务器端的计算装置(云服务提供商的)来执行搜索操作,例如,诸如对密文的精确模式匹配和/或范围查询。在一些示例中,数据所有者可以加密数据并使用附加信息(例如,关键字,时间戳)增强加密的数据。数据所有者传送密文到云服务提供商。使用密钥(例如,仅数据所有者所知的加密密钥),数据所有者可以创建被发送到云服务提供商搜索令牌(例如,对关键字的精确模式匹配,时间戳应落在其内的范围)。使用这种搜索令牌,云服务提供商可以对于搜索令牌相匹配的所有密文过滤加密的数据,并能够返回匹配的密文到数据所有者。
为了实用,可搜索的加密方案应该是有效和安全的。在一些示例中,搜索操作应该在次线性搜索时间可能的,这可以通过适当的加密搜索索引来实现。为了保护外包数据的私密性,加密的数据和加密的搜索索引应该尽可能少地泄漏信息。例如,从未搜索过的密文不应该揭露任何信息。
鉴于此,本公开的实现提供了用于对加密的数据实现私密性保护范围查询的加密搜索方案。根据本公开,并且如本文进一步详细描述的,实现使能云服务提供商比较已在先前的搜索请求中查询过的范围令牌。这使能云服务提供商降低其范围查询的平均搜索时间。虽然对于范围查询的初始搜索时间对于索引的密文(例如,文件)的数量是线性的,但后续查询可以加速。例如:在第一的、初始的搜索中,云服务提供商学习范围查询的结果集;如果第二搜索请求中的范围查询是在第一步骤中已经查询过的范围的子范围,则扫描先前学习的结果集就足够了。以这种方式,第二查询的搜索空间被缩减,这导致更快的搜索操作。此外,如本文所述,对每一个新的范围查询使用这种方法,云服务提供商可以在客户和服务器之间使用交互协议构建并细化加密搜索索引。因此,本公开的加密的搜索方案实现了平均降低了的搜索时间。此外,从未落在任何查询范围中的密文不包含在任何访问模式中。因此,使用合适的加密方案,未查询的密文不泄露任何信息。
在一些实现中,用于私密性保护的范围查询的加密搜索方案的特性可以相对于安全、效率和模块化总结。在非自适应模型中使用基于仿真的方法形式化安全。在一些示例中,提供了给出了由本公开的加密搜索方案泄露的信息的上限的泄露函数。就效率而言,加密搜索方案具有分摊的多对数运行时间。这通过交互地建立搜索索引来实现。就模块化而言,加密搜索方案是建立在功能性加密(functional encryption)的黑盒子接口上。
为进一步提供本公开的实施方式的上下文,提供了支配(governing)定义。在一些示例中,表示自然数集,[i,j]表示i≤j并且作为起始于i并包括j在内的整数集合(即,集合{i,...,j})。(可能是概率)算法的输出z被写为:在一些示例中,λ表示安全参数。如果对于每一个正多项式p(·)存在x0,使得对于所有的x>x0,f(x)<1/p(x)成立,则函数称为可忽略不计(在x中)。给定矩阵M,M[i]表示第i行,并且M[i][j]表示在第i行中的第j个元素。消息m提供为元组(f,v),其中f是任意文件(例如,文档、图像),以及用于索引的值点v。在一些示例中,每个消息m具有唯一的识别符ID(m),并且每个文件f可以由给定的相关联的识别符ID(m)访问。对于范围Q=[q(s),q(e)],IDQ可以定义为在值v下索引的文件识别符集合,其中v∈Q(即,IDQ={ID(m):m=(f,v)with q(s)≤v≤q(e)})。
在一些实现中,安全且高效的范围查询方案由以下(部分概率的)多项式算法构成:SRQ-Setup,SRQ-Enc,SRQ-IndexFile,SRQ-Token,SRQ-Search。在初始步骤中,数据所有者通过运行SRQ-Setup创建期望的值域的公共参数和主密钥。在一些示例中,公共参数由各方公知。在下一步骤中,通过运行SRQ-Enc,消息集合(明文)被加密,并在给定值点被索引。在一些示例中,每个值点依赖于在初始设置中使用的值域。这些步骤的结果包括加密的索引和密文集,使用SRQ-IndexFile将其传送到文件服务器端(例如,云服务提供商)。数据所有者(拥有主密钥mk)能够通过调用SRQ-Token创建范围令牌(用于各自的范围查询)。范围令牌可被发送到服务器端,使得可以对加密的数据运行各自的范围查询。在一些示例中,给定范围令牌,服务器可以运行SRQ-Search以过滤与落入所需范围内的值点相关联的所有(加密和索引)消息。
定义1:用于安全范围查询的方案SRQ包括以下(概率的)多项式时间算法:
mk←SRQ-Setup(1λ,[0,D-1]):是概率算法,接受安全参数1λ和值域[0,D-1]作为输入,并输出主密钥mk。
c←SRQ-Enc(mk,m):是概率算法,接受主密钥mk和消息m作为输入。消息m是文件f和值点v∈[0,D-1]的元组m=(f,v)。输出密文c。
γ′,C′←SRQ-IndexFile(ID(m),c,γ,C):是确定性算法,取标识符ID(m)、密文c、搜索索引γ和密文集合C作为输入。输出更新的安全搜索索引γ'和更新的密文集合C′。
τQ←SRQ-Token(mk,Q):是概率算法,取主密钥mk和范围作为输入,并输出范围Q的搜索令牌τQ
IDQ←SRQ-Search(τQ,γ):是确定性算法,取范围Q的范围令牌τQ和搜索索引γ作为输入,并输出IDQ
在一些实现中,可以使用保留顺序的加密方案。例如:
OPE=(OPE-Setup,OPE-Enc,OPE-Dec),其中
这个示例OPE方案可用于建立加密的搜索索引。例如,在每个消息m=(f,v),值点v使用OPE-Enc加密,并与消息识别符ID(m)相关联。具有形式ci=(OPE-Enc(vi),ID(mi))的所有索引条目根据其第一元素排序。对范围[q(s),q(e)]的搜索查询,范围令牌实现为元组τQ=(OPE-Enc(q(s)),OPE-Enc(q(e)))。给定τQ到存储搜索索引的服务器,服务器端能够通过运行二分搜索在对数时间获得集合{(OPE-Enc(vi),ID(mi)):OPE-Enc(q(s)≤OPE-Emc(vi)≤OPE-Enc(q(e))}。然而,即使被索引了,但没被查询的点也可以与所有其他被索引(被查询的和没被查询的)的点进行比较。
在隐藏之前没被查询的所有点的顺序的有关信息的另一示例方法中,可以使用范围谓词加密(RPE)。示例RPE方案包括下面的示例算法:
k←RPE-Setup(1λ,[0,D-1])在输入安全参数1λ和域范围[0,D-1]时,输出密钥k。
c←RPE-Enc(k,v)在输入密钥k和属性值v时,输出密文c。
tkQ←RPE-Token(k,Q),在输入密钥k和范围Q时,输出范围令牌tkQ
{0,1}←RPE-Dec(tkQ,c)在输入范围令牌tkQ和密文c=RPE-Enc(k,v)时,如果v∈Q,则输出1,否则输出0。
考虑到示例RPE方案,可以提供用于范围查询的线性运行时间(相对于索引元件的数目)的方案。也就是说,使用RPE-ENC加密的所有属性被添加到点列表对于范围Q的每一个范围查询,由持有主密钥的数据所有者使用RPE-Token创建令牌τQ,其被发送到服务器。服务器可以通过添加具有RPE-Dec(tkQ,c)=1的所有条目c∈P提供IDQ。在一些示例中,检查所有条目。因此,运行时间相对于所有的索引文件(密文)的数量是线性的。
在一些实现中,搜索索引以提高平均搜索速度的方式(例如,所有索引消息被布置)构造。此外,该索引结构被设计成泄漏尽可能少的信息。对于所有密文,可以使用以下的示例安全游戏来定义安全性。
定义2:RP是用于范围谓词加密的方案。下面示例的攻击者和挑战者之间的安全游戏包括:
初始化:提交它希望被挑战的两个值
设置:挑战者通过运行RPE-Setup(1λ,[0,D-1])生成秘密密钥MK。
查询阶段1:自适应地发出查询,其中,每个查询是两种类型之一:
(a)令牌查询:在第i个查询,提交满足条件或者(v0∈Qi∧v1∈Qi)二者之一的挑战者通过运行生成令牌并输出
(b)密文查询:在第i个查询,提交值点zi。挑战者通过运行RPE-Enc(mk,zi)加密值点zi并返回该输出。
挑战:挑战者翻转硬币b←{0,1}并输出RPE-Enc(mk,vb)。
查询阶段2:自适应地进一步发出具有与查询阶段1中的相同的限制的查询。
猜想:输出b的猜测b′。
在一些示例中,如果对于运行该安全游戏的所有概率多项式时间的攻击者
其中λ中ε可以忽略不计
成立,则RPE具有选择性的安全明文私密性,。
定义3:RPE是用于范围谓词加密的方案。下面的攻击者和挑战者之间的示例性安全游戏包括:
初始化:提交它希望被挑战的两个值
设置:挑战者通过运行RPE-Setup(1λ,[0,D-1])生成秘密密钥mk。
查询阶段1:自适应地发出查询,其中,每个查询是两种类型之一:
(a)令牌查询:在第i个查询,提交挑战者通过运行 生成令牌并输出
(b)密文查询:在第i个查询,提交值点zi使得zi∈R0∧zi∈R1或者挑战者通过运行RPE-Enc(mk,zi)加密值点zi并返回该输出。
挑战:挑战者翻转硬币b←{0,1}并输出RPE-Token(mk,Rb)。
查询阶段2:自适应地进一步发出具有与查询阶段1中的相同的限制的查询。
猜想:输出b的猜测b′。
在一些示例中,如果对于运行该安全游戏的所有概率多项式时间的攻击者
其中λ中ε可以忽略不计。
成立,则RPE具有选择性的安全明文私密性。
给定这样的RPE方案,可以提供具有线性运行时间(相对于索引元件的数目)的范围查询的方案。也就是说,所有使用RPE-Enc加密的属性被添加到点列表对于范围Q的每一个范围查询,由持有主密钥的数据所有者使用RPE-Token创建令牌τQ。给定该令牌,服务器可以通过添加所有的具有RPE-Dec(tkQ,c)=1的条目c∈P创建IDQ。因为检查了所有的条目,所以运行时间相对于所有的索引文件(密文)的数量是线性的。
在一些示例中,为提高平均搜索速度,所有索引消息被布置在合适的索引结构中。此外,该索引结构被设计成尽可能少地泄漏信息。给定安全且有效的范围查询方案SRQ,加密操作以使得有可能加密在值点v下索引的文件f的方式扩展。其结果是,稍微修改用于明文私密性的安全游戏以提供以下:
定义4:SRQ方案是用于安全且有效的范围查询方案。以下攻击者和挑战者之间的示例性安全游戏包括:
初始化:提交它希望被挑战的两个值v0,v1∈[0,D-1]。
设置:挑战者通过运行SRQ-Setup(1λ,[0,D-1])生成秘密密钥mk。
查询阶段1:自适应地发出查询,其中,每个查询是两种类型之一:
(a)令牌查询:在第i个查询,提交满足条件或者(v0∈Qi∧v1∈Qi)二者之一的挑战者通过运行生成令牌并输出
(b)密文查询:在第i个查询,提交值点zi和文件fi。挑战者通过运行SRQ-Enc(mk,(fi,zi))加密zi下索引的fi并返回输出。
挑战:提交两个相同大小的文件f0,f1。挑战者翻转随机硬币b←{0,1}并输出SRQ-Enc(mk,(fb,vb))。
查询阶段2:自适应地进一步发出具有与查询阶段1中的相同的限制的查询。
猜想:输出b的猜测b′。
在一些示例中,如果对于运行该安全游戏的所有概率多项式时间的攻击者
其中λ中ε可以忽略不计。
成立,则RPE具有选择性的安全明文私密性。
关于谓词私密性,本公开的实现使用从RPE谓词私密性直接给出的特性。使用这些定义和结果的特性,可提供用于本公开的SRQ方案的安全定义。在一些示例中,使用基于泄漏的定义来定义安全属性。
定义5:给定用于安全范围查询的方案SRQ=(SR-Setup,SR-En,SRQ-IndexFile,SRQ-Token,SR-Search)以及安全参数提供了以下具有对手模拟器和和泄露函数的概率实验:
挑战者运行SRQ-Setup(1λ,[0,D-1])以生成主密钥和空搜索索引γ。首先对手将消息M=(m1,...,mf)的f-元组(其中mi=(fi,vi),vi∈[0,D-1]并且对于所有i∈{0,...,f),fi是文件)以及查询Q={Q1,...,Qq)的q-元组(其中对于所有的i∈{1,...,q},)发到挑战者。挑战者将f-元组C=(SRQ-Enc(mk,m1),...,SRQ-Enc(mk,mf))和搜索令牌TK=(SRQ-Token(mk,Q1),...,(SRQ-Token(mk,Qq))的q-元组一起返回给对手。最后,返回由实验输出的位b。
模拟器设置针对域[0,D-1]的内部环境。对手发出消息M=(m1,...,mf)的f-元组(其中mi=(fi,vi),vi∈[0,D-1],并且对于所有的i∈{0,...,f},fi是文件)以及q-元组Q=(Q1,...,Qq)(对于所有的i∈{1,...,q},),并且假定模拟器用于消息元组的适当的泄漏以及用于查询元组的模拟器返回f-元组以及q-元组给对手。最后,返回由实验输出的位b。
在一些示例中,如果对于所有概率多项式时间算法存在概率多项式时间模拟器使得定义为:
的优势在λ中可以忽略不计,则SRQ方案对非适应性选择范围的攻击是-安全的。
根据本公开的实现,服务器使用从先前的范围查询获得的信息,以减少用于执行将来的查询的文件的数量。以这种方式,搜索时间被降低。为了进一步的讨论,可以假设该服务器(云服务提供商)在对索引消息的整个集合执行扫描之后习得了范围令牌τQ和其结果集IDQ。给定具有的新的范围令牌τR,扫描结果集IDQ(即索引值的整个集合的子集)足以获得IDR。此外,服务器可以计算用于Q中的R的相对补集(即,IDQ/R)的结果集合。此信息也可用于在将来更迅速地响应查询。
在一些实现中,为了提高平均搜索速度,所有被索引的消息以合适的方式布置在搜寻索引中,并且搜索索引有效地可更新。而且,搜索索引的结构被设计为尽可能少地泄漏信息。根据本公开的实现,搜索索引被组织成多个组件:
1.由表示的树列表是搜索树的列表,每个搜索树覆盖一个连贯的和已搜索过的范围。这使得服务器能够以对数时间回答已经查询过的范围的子范围的范围查询。
2.由表示的点列表是所有索引点的线性表。这使能服务器回答既不是已查询的范围的子范围之前也没有搜索过的所有范围查询。检查所有元素落在查询范围内具有线性的运行时间。
在树列表中,存储加密的(一维)R-树。在一些示例中,R-树Γ完全覆盖了连贯的范围。每个内节点包括多达t个条目。图2描绘了示例树200,其中t=3,覆盖范围[1-31]和索引信息A,...,H。在一些示例中,每个条目具有形式(p,R),其中,R是范围,且p是指向覆盖该范围的另一节点(或者是内部节点或者是叶子)的指针。相应地,指针p指向子树。在一些示例中,Γ[p]指代由p指向的Γ的子树。简单起见,如果Γ的覆盖范围是S的子集,则对于范围S来说,并且反之
此外,对于相同的节点的任何两个条目(p1,R1)和(p2,R2),(即,在一个节点中的范围不重叠)成立。对于每一个条目(p,R),以由p指向的节点为根的子树覆盖范围R(即,Γ[p]=R)。此外,所有叶子由多达t个条目组成,并且每个条目具有形式(obj,R),其中R是范围,且obj是指向在值v∈R下索引的所有文件的列表(即,obj指向IDR)。给定范围Q=[q(s),q(e)],持有覆盖Q的超集(也即,)的树Γ的服务器可以通过使用算法1在对数时间(相对于节点的数目)计算IDQ
算法1:范围查询的树搜索(SearchForRange)
在一些示例中,这样的范围查询所需要的唯一两个操作如下:首先,检查Q的开始点q(s)和结束点q(e)是否落入范围R内(也即,如果R和Q相交),以及第二,检查范围Q是否是范围R的子范围。在一些示例中,这个功能是由修改的RPE方案提供。因此,范围查询也可以通过包括由修改的RPE方案加密的范围的搜索树回答。在一些示例中,由RPE-Token创建的范围Q的范围令牌必须由使用RPE-Enc加密的加密限制性点(即开始点和结束点)来扩充。
在一些示例中,为了添加新的值到现有的树中,必须识别正确的叶子和条目。也即,包含了该新值(多个)落于的范围的条目。在一些示例中,这可以通过使用算法2来完成:
算法2:搜索特定值的条目(SearchEntry)
在一些实现中,利用加密的索引结构,SRQ方案可以以如下描述来限定。给定包括算法RPE-Setup,RPE-Enc,RPE-Token,RPE-Dec的RPE方案、(IND-CPA)安全加密方案Π1=(GenIND-C,EncIND-C,DecIND-CPA)和第二加密方案Π2=(Gen,Enc,Dec),可以如下提供SRQ方案:
mk,γ←SRQ-Setup(1λ,[0,D-1]),在输入安全参数和值域[0,D-1]时,使用k1←RPE-Setup(1λ,[0,D-1])和k2←GenIND-CPA(1λ)和k3←Gen(1λ);设置mk=(k1,k2,k3)。输出主密钥mk。
c←SRQ-Enc(mk,m):在输入主密钥mk=(k1,k2,k3)和消息m=(f,v)时,执行以下操作:
-加密c1←RPE-Enc(k1,v).
-加密c2←EncIND-C(k2,f).
输出c=(c1,c2)。
γ,C←SRQ-IndexFile((ID(mi),ci))i∈[1,n]):初始化空的包含空的点列表的搜索索引γ、空的树列表以及空的密文集合C。对于每个i∈[1,n],解析ci=(ci1,ci2)并将(ID(mi),ci2)加至C。此外,添加元组(ID(mi),ci1)至点列表输出C和γ.
τQ←SRQ-Token(mk,Q):在输入主密钥mk=(k1,k2,k3)和范围Q=[q(s),q(e)]时,使用RPE-Enc以加密以及此外,创建范围令牌tkQ=RPE-Token(k1,Q)。另外,加密Q为cQ=Enc(k3,Q)以使得客户解密该范围令牌。输出为范围令牌。
IDQ←SRQ-Search(τQ,γ),对范围Q和索引γ,给定范围令牌检查中的所有索引树,如果它们完全地或部分地覆盖所查询的值的话。初始化完全落在查询范围Q中的树的列表然后对边界点执行以下:
(a)检查是否存在包括的一个树如果情况如此,则通过调用算法1获得IDQ并且设置Γ(s)=Γ(e)=Γi.
(b)否则,检查是否存在部分地覆盖查询范围的树。更详细地,使用设置树否则Γ(s)=⊥。对和Γ(e)执行同样。
(c)否则设置Γ(s)=Γ(e)=⊥.
如果情况1没有发生,则使用扫描所有密文当且仅当ri=1时,在结果集IDQ中存储为了对那些是已经查询过的范围的子范围的将来的查询维持对数搜索时间,调用交互式过程 (如上所述)。输出IDQ作为结果。
使用上述的算法,能够外包加密的数据,并支持范围查询。例如,在初始步骤中,数据所有者通过调用SRQ-Setup创建主密钥并定义可能的值域。数据所有者通过调用SRQ-Enc加密文件,其中,每个文件都与一个值点相关联,并在这一点下索引。加密的文件被传送到服务器,并通过调用SRQ-IndexFile添加到搜索索引。在一些示例中,文件(例如,加密的文件)可以在客户端被删除。持有主密钥的数据所有者可以通过调用SRQ-Token创建范围搜索令牌。在一些示例中,该服务器可以在不知道主密钥的情况下比较不同的范围令牌。更具体地,持有两个令牌服务器能够检查下面的示例属性:
1.R和Q相交,如果或者如果
2.R是Q的子范围,如果并且
3.范围是相等的,如果R是Q的子范围,并且Q是R的子范围。
图3描绘了范围之间的示例关系。
在一些实现中,接收范围Q=[q(s),q(e)]的范围令牌的服务器可以通过使用SRQ-Search搜索与具有落在范围Q的值相关联的所有文件。在初始步骤中,服务器对每个树检查该树覆盖了Q的子范围还是与范围Q相交。例如,包含在任何树Γi的根节点中的所有条目与范围Q比较,其中,如果所有范围是Q的子范围,则Γi覆盖子范围;以及如果存在至少一个范围Rj与范围Q相交,则Γi与Q相交。创建覆盖Q的子范围的所有树的列表在一些示例中,计算索引搜索树和查询范围的部分交集。在一些示例中,Γ(s)是包含覆盖(即使得)的范围的数。如果没有找到这样的树,则设置Γ(s)=⊥。对于加密的结束值执行同样,这将导致树否则Γ(e)=⊥。
对于给定的范围令牌τQ有可能发生多个场景。每一个场景导致本文所述的SQR-UpdateIndex的不同的行为。示例场景包括:
1.一个树覆盖了完整的查询范围Q,即,Γ(s)=Γ(e),所以如果是这样的情况,则该服务器不需要对整个点列表执行搜索,而是搜索由Γ(s)索引的值点就足够。这通过上面描述的算法1完成。SQR-UpdateIndex通过使用从当前的范围查询获取的新的信息细化索引的范围。
2.当前范围查询和先前查询范围无交集,所以,Γ(s)=Γ(e)=⊥并且如果是这种情况,则服务器对于当前范围查询不知道任何事情。结果是,服务器必须扫描在点列表中搜索的所有点。SQR-UpdateIndex创建新的搜索树,其被添加到覆盖范围查询的树列表
3.查询范围仅有一部分被索引的搜索树覆盖。或者Γ(s)=⊥或者Γ(e)=⊥。如果是这种情况,则服务器不可能知道点列表中是否有值落在Q,但不被Γ(s)resp.Γ(e)覆盖。结果是,服务器会扫描在点列表中索引的所有点。SQR-UpdateIndex扩展了部分覆盖范围查询的一个树(也即,不是⊥的树)。
4.值落在不同的树中,也即c(s)∈Γ(s),c(e)∈Γ(e),其中,Γ(s)=Γ(e)。如果是这样的情况,服务器不能确定在两个树之间没有非索引间隙(即,中可能有值既不落在Γ(s)中也不在Γ(e)中,但是落在范围Q中)。结果是,服务器扫描在点列表中索引的所有点。SQR-UpdateIndex合并这两个树Γ(s)和Γ(e),因为间隙可能被当前范围查询封闭。
从高层视角来看,新的范围令牌包含给服务器的一些新的信息,诸如这个新的范围令牌的结果集IDQ。这个新获得的信息在搜索和访问模式中是隐含的,并且可以由服务器用来更新加密搜索索引用于将来的查询。如上所述,给定可能发生四个不同的更新,其中,服务器需要或者细化一个树、创建新树、延长一个树、或者合并树。此外,由Q完全覆盖(也即,包含在中)的树使用树扩展和树合并的组合组成。
由于操作可能使得有必要为加密树创建新的范围令牌,而这种创建仅在有主密钥时才可能,所以这些更新是服务器和数据所有者之间的交互协议。在继续的讨论中,在客户端执行的操作在下面的算法中被表示为@C。这可能是必要的,因为操作必须在明文上来执行,或者有必要创建新的范围令牌。
因为操作添加新的条目到一个或多个现有的树中,这些操作可以包括如本文算法3所讨论的平衡步骤,以保证之后每一个节点的大小比阈值T低。再次,重新平衡树强制创建新的范围令牌,所以它也是提供为互动协议。
算法3:重新平衡树(RebalanceTree)
对于细化树,服务器发送新的范围令牌和与这个新的令牌相交的的之前的范围令牌给数据所有者以请求帮助。数据拥有者解密范围令牌,创建(最多)四个不相交、但更细化的范围,并发送回由SRQ-Token生成的令牌。服务器可以使用新的、更细化的令牌替换旧的范围令牌,并且索引的文件列表根据这些新的令牌分割。算法4提供了正式的描述。因为这种更换增加了节点中的条目,所以服务器运行RebalanceTree。
Algorithm 4:细化树(RefineTree)
在一些实现中,如果Γ(s)=Γ(e)=⊥并且为空,则服务器创建新的树。在一些示例中,服务器创建了具有条目和索引项IDQ的新的加密树Γ。此树Γ被添加到树列表
在一些实现中,如果新的范围令牌与树部分相交(即,范围令牌与树相交),但这个新查询的范围的至少一个限制点不相交,则树被扩展。在一些示例中,扩展树是由服务器发送新习得的范围令牌和根节点到数据所有者启动。数据所有者解密所有范围以重建由这个树当前覆盖的整个范围。用于由树覆盖的范围和落在树范围之外的新的范围令牌的边界点的之间的间隙的新的范围令牌被创建并被添加到树的叶子。此外,树的内部节点(高至根)被更新。也就是说,所有内部节点的索引范围由扩展版本替换。算法5提供了正式的描述。在一些示例中,因为至少有一个叶子获得新的条目,所以所得到的树在树扩展之后重新平衡。
算法5:扩展新的范围树(ExtendTree)
在一些实现中,如果它们都与新查询范围相交,则两个树被合并。在一些示例中,这两个树之间不应具有值间隙。在一些实现中,由一个树覆盖的结束点直接由被另一个树覆盖的开始点紧接着。这可以通过使用如上所讨论的树扩展来实现。在一些示例中,为在对数时间合并树,树以较低的高度集成到具有更高的高度的树Γ。创建了在Γ的内部节点中的新条目指向Γ的根。这个新覆盖的范围通过内部节点传播到根。算法6提供了正式的描述。在一些示例中,所得到的树被重新平衡。
算法6:合并树(MergeTrees)
在一些实现中,如果已查询了其中多个树落入的范围令牌,则可以组合树扩展和树合并。在一些示例中,中所有的根,Γ(s),Γ(e)和新近查询的范围令牌τQ被发送到客户端。客户端解密所有的根,并得到由Γi所覆盖的范围Ri=[ri (s),ri (e)],按照它们的范围开始点ri (s)排序。客户端选择将要被合并的两个树Γj,Γj+1。在一些示例中,可以假设Γj具有更大的高度。因此,使用算法5扩展Γj以覆盖接着,可以使用算法6合并Γj和Γj+1,并且不同的树的数目减少一。重复这样的操作直到只剩下恰好一个搜索树覆盖整个被查询的范围。
本文中参考示例运行时间(例如,运行)更详细地描述了本公开的实现。在示例运行时间的开始点,假定到目前为止还没有多次查询范围。其结果是,每一个令牌都包含服务器可以用于更新索引γ的新信息。给定具有D个元素和n个索引项目的值域,存在个不同的连贯范围可查询。在一些示例中,在D2个不同的查询后,所有可能的范围已经被查询并且γ包括包含所有可能范围的恰好一个树。
在这种状态下,任何重复的范围查询可以在对数时间来回答。但是,假设搜索索引γ包含恰好一个树之前有重复的查询,这样的重复查询可能会引发问题。此外,这些重复的查询不包含新的信息,因此服务器无法更新索引γ。其结果是,有导致线性搜索时间的搜索模式:首先,O(n)个不同、不连贯的范围被查询和索引(例如,个不同的查询-每个大小为1)。现在,这些范围被重复查询——在提供答案之前平均检查了所有索引查询的一半。
根据本公开的实现,对于已经查询的范围使用了高速缓存。以这种方式,减少了这样的情况下的搜索时间。在一些示例中,使用由具有确定性范围标识符为键的哈希表(例如,Π2=(Gen,Enc,Dec)是每一个搜索令牌的一部分的确定性加密)时,重复范围查询的搜索时间被减少为恒定时间O(1)。
一个搜索操作的运行时间是实际搜索时间ts和更新时间tu的总和。树的高度以log(D)为界并且在一个谓词加密的密文上的操作的大小也是O(log(D))。因此,合并两个树、扩展一个树、细化一个树或重新平衡一个树可以在O(log2(D))完成,并且r个树可以在O(r·log2(D))合并。此外,因为任何更新操作增加了至少一个新的边界元素,所以最多可以有n个树。其结果是,预期更新时间以tu=O(n·log2(D))为界。
在一些实现中,搜索时间取决于新查询范围Q(即,如果新查询范围Q被由恰好一个树完全覆盖)。这样的概率由表示。如果是这种情况,搜索可以在O(log2(D))执行,因为搜索一个树足够习得结果集。否则,扫描并可能更新整个点列表,导致O(nlog2(D))的搜索时间。其结果是,预期的搜索时间可以被提供为:
在一些示例中,范围没有被单一的树完全覆盖的任何时间,D中的至少一个元素被添加到搜索树。因此,集合Γi的大小至少增加1。因此,至多进行n次O(nlog2(D))的搜索复杂度。花费在这些搜索上的最大总时间是n·nlog2(D)。在一些示例中,这个事件可以通过事件平摊。在一些示例中,x是直到发生平摊(amortization)的搜索的总数,其中:
根据本公开的实现,在n2次搜索后,在最近,可以实现平均多对数搜索时间。
本公开的SRQ方案的安全性关于使用SRQ-Enc加密文件的安全性,和使用SRQ-Token的令牌化查询的安全性详细地描述。提供了下面的示例定理:
定理1:如果所使用的方案RPE=(RPE-Setup,RPE-Enc,RPE-Tok,RPE-Dec)已经选择性地保护了明文私密性,并且Π1=(GenIND-CPA,EncIND-CPA,DecIND-CPA)是IND-CPA安全加密方案,则本发明的SRQ方案已选择性地保护了明文私密性。
证明:修改了上述的安全游戏(定义4的)以显示原始游戏和修改后的游戏的计算不可区分性。修改后的游戏如下:挑战者没有像原来的游戏中执行的唯一步骤是挑战步骤。相反,在修改的安全游戏中,挑战者响应c=(c1,c2),其中c1=RPE-Enc(mk1,vb)并且提供了攻击者使用在之间的区分器泄露IND-CPA安全。得到两个值v0,v1并创建密钥mk1=ROE-Setup(1λ,[0,D-1])的所有的令牌查询由使用RPE-Token和mk1直接回答。对于由区分器发送的所有密文查询(zi,fi),要求它的加密oracle对fi的c2进行(EncIND-CPA)加密,创建c1=RPE-Enc(mk1,zi),并发送c=(c1,c2)至对由区分器发送的挑战(t0,f0)和(t1,f1),翻转b←{0,1},创建c1=RPE-Enc(mk1,tb)并且提交fb和至它的挑战者用于IND-CPA游戏。IND-CPA游戏的挑战者翻转位b*←{0,1}并发送回c*,其中如果b*=0则c*=ENcIND-CPA(mk2,fb)并且如果b*=1则 发送(c1,c*)至如果b*=0则的视图和中的相同,如果b*=1则视图和中的相同。因此,由于∏的IND-CPA,区分的概率可以忽略不计。
可以仅在所使用的RPE方案的加密明文私密性的范围谓词上提供攻击者所使用的RPE方案使用以概率ε赢得的攻击者 得到由输出的两个值v0,v1并创建密钥mk2=GenIND-CPA(1λ)。希望在这些值v0,v1上被挑战并从而将它们输出到挑战者并发送回答案。在查询阶段,转发的所有令牌查询至自己的挑战者。对于所有的密文查询(zi,fi),创建c2=EncIND-CPA(mk2,fi),并向自己的挑战者要求c1=RPE-Enc(mk1,zi),并发送回c=(c1,c2)。在使用文件f0,f1的挑战,向自己的挑战者要求挑战(也即,挑战者翻转硬币b*并发送c*=RPE-Enc(mk1,vb*)至 创建并发送元组输出的猜测b也由返回。很显然,的赢得范围谓词游戏的概率与赢得的概率是相同的,这可忽略不计。因此,赢得的优势也可以忽略不计。
在提供根据定义5的安全证明值前,示例泄漏函数定义如下:
其中RR(Q)为q×q范围关系矩阵,每个元素都在集合中。这里,在第i行第j列的元素指示在查询i和j中给定的范围Qi和Qj的关系。表示没有交集,=表示两个范围相同,∩表示交集但没有范围是另一个的子范围。表示范围Qi是Qj的子集但没有共同的限制点,表示有一个共同的限制点的子集关系,并且反过来表示范围Qi是Qj的超集,也即,如果是在位置(i,j),则在位置(j,i)。
在上述定义4中,挑战者只接受都发生在访问模式的同一个子集的挑战v0,v1。例如,如果在vi下索引的文件fi是在中,则,对于i∈{0,1}和所有令牌查询,在v1-i下索引的f1-i也在中成立。否则,攻击者赢得安全比赛将是轻而易举。
在一些示例中,通过以访问模式和范围关系矩阵的形式给予模拟器对这些信息的访问移除了这些限制。这可以用来显示真实的协议的运行的安全性,其中,不能保证安全性游戏的限制的实现。另一方面,给定具有相同的范围关系矩阵(对于它们的范围)的两个范围令牌序列,没有攻击者可以在这些范围令牌序列之间进行区分。
定理2:给定建立在RPE方案上的具有选择性的安全明文的私密性和选择性的安全谓词的私密性的SRQ,域[0,D-1],具有和RR(Q)=RR(R)的两个查询序列(Q1,...,Qn)=Q=R=(R1,...,Rn),对于任何mk←SRQ-Se(1λ,[0,D-1]),TKQ=(SRQ-Toke(mk,q1),...,SR-Toke(mk,qn))以及TKR=(SRQ-Toke(mk,r1),...,SRQ-To(mk,rn))的概率,提供为:
对于任何区分器可以忽略不计。
证明:使用ε表示攻击者攻破所使用的IND-CPA安全加密方案的概率,使用ε1表示攻击者赢得RPE明文私密性安全游戏的概率,以及ε2作为攻击者赢得RPE谓词私密性游戏的概率。给定可忽略的εΠ、ε1和ε2,能够扩展、收缩和移动范围,使得任何攻击者区分令牌τQ和令牌的概率可忽略不计,其中是扩展、收缩或移动的Q的版本。
首先,给定范围令牌只要存在没有其令牌τR是已知的其他范围R,就可以扩展范围Q到范围在第一步骤中,可以假设不存在这样的范围R。可以提供一系列的游戏,显示任何攻击者区分两种游戏的概率是可忽略的。
给出了原始令牌τQ
使用新的加密取代cQ。攻击者可以有概率ε区分
用新的RPE令牌取代tkQ。请注意,仍然成立。因此,攻击者可以有概率ε2区分
移动加密q(e)的限制点使用替换攻击者可以有概率ε1区分
之后,提供了有效令牌用于新的范围放在一起,攻击者可以区分这些令牌的概率为:
只要存在没有其令牌τR是已知的其他范围R,其中收缩范围Q到范围就可以以类似的方式来完成。在一些示例中,互换其结果是,攻击者可以区分令牌τQ和用于收缩的范围的令牌的概率为:
组合这些技术,只要没有其他范围R,r(s)>q(s)但是r(s)<(q(s)+x)(否则,这个范围R在之前肯定移动过),则范围Q=[q(s),q(e)]可以移动到新的范围首先,扩展Q到范围Q′=[q(s),q(e)+x],然后收缩Q′到范围
不失一般性,可以假定以最大的限制点扩展用于Qi的令牌到用于范围的令牌(使用上述技术)。对所有范围以它们的结束点的降序重复这种技术,整个范围的序列Q被修改为与R具有相同终点的扩展范围序列Q′。扩展范围序列Q′中的所有范围被收缩到与范围序列R相同。如前所示,攻击者可以有概率区分这些扩展和收缩修改的每一个,其可忽略不计。因此,多项式的许多修改的组合仍是可忽略的。
给定这一定理,本公开的SRQ方案的安全性可以使用基于上面提供的定义5的泄漏更正式地定义。
定理3:如果SRQ方案具有基于具有选择性安全谓词私密性的RPE方案的选择性安全的明文私密性,并且∏1是IND-CPA安全加密方案,那么SRQ方案对于非适应性选择范围攻击是-安全的。
证明:提供了PPT模拟器对于任何PPT敌手A,区分从定义5的实验的优势是可忽略不计的。为此,可以被描述为使用泄漏设置环境和模拟范围令牌和密文
设置环境:内部运行SRQ-Setup(1λ,[0,D-1])并接收主密钥mk。
模拟 提取形成一个大的一致范围的范围簇。算法7提供了正式的描述。
算法7:提取范围簇
在本文中所描述的实施方式中每个簇是单独的R-树。对于每个簇,模拟具有与实际给定的范围关系矩阵RR(Q)相同的范围关系矩阵的范围。更详细地说,对于每一个簇,模拟器变换范围关系矩阵RR(Q)到已求解的线性程序。每个关系用公式表示为不等式。对所有的簇这样做,获得了具有的模拟范围现在设置这是定理2不可区分的。注意,给定范围令牌能恢复所模拟的范围因为组件包括可被解密的普通IND-CPA加密值。
模拟模拟器创建叶子集合L。更具体地说,划分在由不相交的集合构成的集合L中的IDQ,其中L和IDQ覆盖相同的值。的两个集合被分成了对于每一个模拟的叶子Li∈L,模拟器存储包含Li的所有范围查询的索引作为结果集:给定模拟叶子集合L,可以模拟密文如下:遍历所有元组(ID(fi),len(fi)))并且:
如果有模拟的具有ID(fi)∈Lj的Lj∈L,设置随机选择的模拟值点现在设置并添加元组或者
否则,没有模拟的具有ID(fi)∈Lj的叶子Lj∈L,加密的文件没有与任何查询范围的匹配。然后使用模拟范围之外的随机值:设置模拟器设置并增加
由于∏1的IND-CPA安全性、SRQ的选择性安全明文私密性和定理2,区分C和由S生成的的概率可忽略不计。
有可能从给定的泄漏模拟范围查询模拟器能够在这些令牌上模拟全部的更新协议。由于模拟器解密范围令牌是可能的,所以可以在模拟的范围上运行所有的更新查询。请注意,这些更新协议不包含新的信息,但所有的信息已经由覆盖。
图4描绘了示例过程400,其可以根据本公开的实现运行。在一些示例中,示例过程400可作为使用一个或多个计算装置运行的一个或多个计算机可运行程序来提供。在一些实现中,运行示例过程400以根据本公开的实现对加密数据执行范围查询。
接收范围查询令牌(402)。例如,由服务器端计算装置从客户端计算装置接收范围查询令牌。在一些示例中,该范围查询令牌是加密的。确定树列表是否为空(404)。在一些示例中,存储在服务器端的加密搜索索引包括树列表和点列表。在一些示例中,如果树列表中不包括至少一个搜索树,则该树列表为空。在一些示例中,搜索树与已经搜索的范围相关联(例如,从先前提交的范围查询令牌所得的范围)。在一些示例中,点列表包括将基于所接收的查询(例如,范围查询)进行搜索的密文的索引点的列表。如果树列表为空,则加密的查询结果基于点列表(406)确定。例如,服务器端计算装置基于在点列表中提供的索引点查询加密的数据(密文),以提供加密的查询结果(例如,范围)。
如果树列表非空,则确定范围查询令牌是否对应于树列表中搜索树的先前提交的范围查询令牌(410)。在一些示例中,如果范围查询令牌是树列表中的搜索树的先前提交的范围查询令牌的子范围,或等于它,则确定范围查询令牌对应于树列表中的搜索树的范围查询令牌。在一些示例中,如果范围查询令牌和树列表中的搜索树的先前提交的范围查询令牌不相交,范围查询令牌只和树列表中搜索树的先前提交的范围查询令牌部分相交,或者范围查询令牌的值对应与树列表中的多个搜索树的值,则确定范围查询令牌不对应树列表中的搜索树的范围。
如果确定该范围查询令牌不对应于树列表中的搜索树的范围,则基于点列表来确定加密的查询结果(406)。如果确定该范围查询令牌不对应于在树列表中的搜索树的范围,则基于搜索树确定加密的查询结果(412)。例如,加密的查询结果是基于由搜索树索引的值点。
对加密的搜索索引进行更新(414)。在一些示例中,基于范围查询令牌和客户端-服务器协议更新加密的搜索索引。在一些示例中,经加密的搜索索引是通过添加搜索树到树列表、细化搜索树(例如,算法4)、扩展搜索树(例如,算法5)、合并搜索树(例如,算法6)、和/或重新平衡搜索树(算法3)来更新的。返回加密查询结果(416)。例如,服务器端计算装置发送加密的查询结果到客户端计算装置。
现在参考图5,提供了示例计算系统500的示意图。系统500可用于与本文描述的实现相关联的所描述的操作。例如,系统500可以包括在本文所讨论的任何或所有的服务器组件。该系统500包括处理器510、存储器520、存储装置530、以及输入/输出装置540。组件510、520、530、540使用系统总线550互连。处理器510能够处理在系统500内执行的指令。在一个实现中,处理器510是单线程处理器。在另一实现中,处理器510是多线程处理器。处理器510能够处理存储在存储器520中或存储装置530上的指令,以在输入/输出装置540上显示用于用户界面的图形信息。
存储器520存储系统500内的信息。在一个实现中,存储器520是计算机可读介质。在一个实现中,存储器520是易失性存储器单元。在另一个实现中,存储器520是非易失性存储器单元。存储装置530能够为系统500提供海量存储。在一个实现中,存储装置530是计算机可读介质。在各种不同的实现中,存储装置530可以是软盘装置、硬盘装置、光盘装置、或磁带装置。输入/输出装置540提供用于系统500的输入/输出操作。在一个实现中,输入/输出装置540包括键盘和/或定点装置(pointing device)。在另一实现中,输入/输出装置540包括用于显示图形用户界面的显示单元。
描述的特征可以在数字电子电路、或者在计算机硬件、固件、软件或它们的组合中实现。该设备可以实现为在例如机器可读存储装置的有形地体现在信息载体中的计算机程序产品,由可编程处理器执行;以及可以由运行指令程序通过对输入数据进行操作并生成输出来执行所描述的实现的功能的可编程处理器来运行的方法步骤。所描述的特征可以有利地在由可编程系统可运行的一个或多个计算机程序中实现,可编程系统包括耦合为从数据存储系统接收数据和指令,并传送数据和指令到数据存储系统的至少一个可编程处理器、至少一个输入装置,以及至少一个输出装置。计算机程序是可以在计算机中直接或间接地使用,以执行某一活动或带来特定结果的一组指令。计算机程序可以用包括编译或解释语言的任何形式的编程语言编写,并且其可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序、或适合在计算环境中使用的其他单元。
用于执行的指令程序的合适的处理器包括,通过举例的方式,通用和专用微处理器两者、以及任何种类的计算机的单个处理器或的多处理器中的一个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的元件可以包括用于执行指令的处理器和存储指令和数据的一个或多个存储器。通常,计算机还可以包括或者可操作地耦合以与之通信用于存储数据文件的一个或多个海量存储装置;这样的装置包括磁盘,诸如内部硬盘和可移动盘;磁-光盘;以及光盘。适合于有形地体现计算机程序指令和数据的存储装置包括所有形式的非易失性存储器,例如包括半导体存储器装置,诸如EPROM、EEPROM和快闪存储器装置;磁盘,诸如内部硬盘和可移动盘;磁-光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由ASIC(专用集成电路)补充,或并入它。
为了提供与用户的交互,特征可以在具有诸如CRT(阴极射线管)或LCD(液晶显示器)监视器的用于向用户显示信息的显示装置,以及通过其用户可以向计算机提供输入的键盘和诸如鼠标或轨迹球的定点装置的计算机上实现。
这些特征可以在包括诸如数据服务器的后端组件,或者包括诸如应用服务器或因特网服务器的中间件组件,或者包括诸如具有图形用户界面或因特网浏览器的客户端计算机的前端组件,或它们的任意组合的计算机系统中实现。该系统的组件可以通过例如通信网络的任何形式或介质的数字数据通信连接。通信网络的例子包括(例如,局域网、广域网),以及形成因特网的计算机和网络。
计算机系统可以包括客户端和服务器。客户端和服务器通常远离彼此,并且通常通过诸如所描述的网络那样的网络交互。客户端和服务器的关系凭借在各自计算机上运行并且彼此具有客户端-服务器关系的计算机程序产生。
此外,附图中所描绘的逻辑流不要求所示的特定顺序或连续顺序,以达到期望的结果。此外,可以提供其他步骤,或者可以从所描述的流程中消除步骤,并且其它组件可被添加到所描述的系统或从所描述的系统中移除。因此,其他实现在以下权利要求的范围之内。
已经描述了本公开的许多实现。然而,将被理解的是,可以作出各种修改而不脱离本公开的精神和范围。因此,其他实现在以下权利要求的范围之内。

Claims (20)

1.一种用于对加密数据进行范围查询的计算机实现的方法,所述方法由服务器端计算装置执行,并且包括:
由服务器端计算装置从客户端计算装置接收范围查询令牌;
由服务器端计算装置确定以下中的一个或多个:加密的搜索索引的树列表是否为空,以及范围查询令牌的范围是否与树列表中的至少一个树负责的范围相交,所述加密的搜索索引包括树列表和点列表;
由服务器端计算装置,如果所述树列表非空并且范围查询令牌的范围是由树列表负责的范围的至少一个子范围则基于搜索树中的一个接收加密的查询结果,以及如果所述树列表为空或范围查询令牌的范围不是由树列表负责的范围的至少一个子范围,则接收点列表;以及
由服务器端计算装置基于所述范围查询令牌和客户端-服务器协议更新加密的搜索索引。
2.如权利要求1所述的方法,其中,更新所述加密的搜索索引包括至少部分地基于发送范围查询令牌和先前接收的范围查询令牌到客户端计算装置来细化树列表的搜索树,以及从客户端计算装置接收细化的范围令牌,所述加密的搜索索引基于所述细化的范围令牌更新。
3.如权利要求1所述的方法,其中,更新所述加密的搜索索引包括至少部分地基于发送所述搜索树的根节点和对应于搜索树的先前接收到的查询到客户端计算装置来扩展树列表的搜索树,以提供扩展的搜索树,从而提供对应于所述扩展的搜索树的新的范围查询令牌。
4.如权利要求1所述的方法,其中,更新所述加密的搜索索引包括至少部分地基于发送所述多个搜索树的相应根节点到客户端计算装置,合并树列表的多个搜索树以提供合并的搜索树,以及接收对应于合并的搜索树的修订的令牌。
5.如权利要求4所述的方法,其中,所述多个树响应于确定所述多个树之间没有任何值间隙合并。
6.如权利要求1所述的方法,还包括从所述客户端计算装置接收加密搜索索引和密文。
7.如权利要求1所述的方法,其中,所述树列表包括基于先前接收的范围查询令牌的至少一个搜索树。
8.一种非临时性计算机可读存储介质,耦合到一个或多个处理器,并具有存储在其上的、当被所述一个或多个处理器运行时使得所述一个或多个处理器执行用于执行对加密数据进行范围查询的操作的指令,所述操作包括:
由服务器端计算装置从客户端计算装置接收范围查询令牌;
由服务器端计算装置确定以下中的一个或多个:加密的搜索索引的树列表是否为空,以及范围查询令牌的范围是否与树列表中的至少一个树负责的范围相交,所述加密的搜索索引包括树列表和点列表;
由服务器端计算装置,如果所述树列表非空并且范围查询令牌的范围是由树列表负责的范围的至少一个子范围则基于搜索树中的一个接收加密的查询结果,以及如果所述树列表为空或范围查询令牌的范围不是由树列表负责的范围至少一个子范围则接收点列表;以及
由服务器端计算装置基于所述范围查询令牌和客户端-服务器协议更新加密的搜索索引。
9.如权利要求8所述的计算机可读存储介质,其中,更新所述加密的搜索索引包括至少部分地基于发送范围查询令牌和先前接收的范围查询令牌到客户端计算装置来细化树列表的搜索树,以及从客户端计算装置接收细化的范围令牌,所述加密的搜索索引基于所述细化的范围令牌更新。
10.如权利要求8所述的计算机可读存储介质,其中,更新所述加密的搜索索引包括至少部分地基于发送所述搜索树的根节点和对应于搜索树的先前接收到的查询到客户端计算装置来扩展树列表的搜索树以提供扩展的搜索树,从而提供对应于所述扩展的搜索树的新的范围查询令牌。
11.如权利要求8所述的计算机可读存储介质,其中,更新所述加密的搜索索引包括至少部分地基于发送所述多个搜索树的相应根节点到客户端计算装置,合并树列表的多个搜索树以提供合并的搜索树,以及接收对应于合并的搜索树的修订的令牌。
12.如权利要求11所述的计算机可读存储介质,其中,所述多个树响应于确定所述多个树之间没有任何值间隙合并。
13.如权利要求8所述的计算机可读存储介质,其中操作还包括:从所述客户端计算装置接收加密的搜索索引和密文。
14.如权利要求8所述的计算机可读存储介质,其中,所述树列表包括基于先前接收到的范围查询令牌的至少一个搜索树。
15.一种系统,包括:
服务器端计算装置;以及
计算机可读存储介质,耦合到服务器端计算装置,并具有存储在其上的、当被服务器端计算装置执行时使得所述服务器端计算装置执行用于执行对加密数据进行范围查询的操作的指令,所述操作包括:
从客户端计算装置接收范围查询令牌;
确定以下中的一个或多个:加密的搜索索引的树列表是否为空,以及范围查询令牌的范围是否与树列表中的至少一个树负责的范围相交,所述加密的搜索索引包括树列表和点列表;
如果所述树列表非空并且范围查询令牌的范围是由树列表负责的范围的至少一个子范围则基于搜索树中的一个接收加密的查询结果,以及如果所述树列表为空或范围查询令牌的范围不是由树列表负责的的范围至少一个子范围则接收点列表;以及
基于所述范围查询令牌和客户端-服务器协议更新加密的搜索索引。
16.如权利要求15所述的系统,其中,更新所述加密的搜索索引包括至少部分地基于发送范围查询令牌和先前接收的范围查询令牌到客户端计算装置来细化树列表的搜索树,以及从客户端计算装置接收细化的范围令牌,所述加密的搜索索引基于所述细化的范围令牌更新。
17.如权利要求15所述的系统,其中,更新所述加密的搜索索引包括至少部分地基于发送所述搜索树的根节点和对应于搜索树的先前接收到的查询到客户端计算装置来扩展树列表的搜索树,以提供扩展的搜索树,从而提供对应于所述扩展的搜索树的新的范围查询令牌。
18.如权利要求15所述的系统,其中,更新所述加密的搜索索引包括至少部分地基于发送所述多个搜索树的相应根节点到客户端计算装置来合并树列表的多个搜索树以提供合并的搜索树,以及接收对应于合并的搜索树的修订的令牌。
19.如权利要求18所述的系统,其中,所述多个树响应于确定所述多个树之间没有任何值间隙合并。
20.如权利要求15所述的系统,其中操作还包括:从所述客户端计算装置接收加密的搜索索引和密文。
CN201610911555.0A 2015-11-12 2016-10-19 对加密数据的多对数范围查询 Pending CN106708921A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/939,138 2015-11-12
US14/939,138 US11341128B2 (en) 2015-11-12 2015-11-12 Poly-logarithmic range queries on encrypted data

Publications (1)

Publication Number Publication Date
CN106708921A true CN106708921A (zh) 2017-05-24

Family

ID=57288103

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610911555.0A Pending CN106708921A (zh) 2015-11-12 2016-10-19 对加密数据的多对数范围查询

Country Status (3)

Country Link
US (1) US11341128B2 (zh)
EP (1) EP3168771B1 (zh)
CN (1) CN106708921A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111797097A (zh) * 2020-06-30 2020-10-20 杭州密数科技有限公司 一种基于软硬件结合的方式实现安全范围查询的方法
CN112329061A (zh) * 2020-11-06 2021-02-05 河北上晟医疗科技发展有限公司 智慧健康隐私保护系统
CN116074090A (zh) * 2023-01-31 2023-05-05 武汉大学 一种基于oprf的多用户顺序揭示加密方法及系统
CN116166693A (zh) * 2023-04-21 2023-05-26 支付宝(杭州)信息技术有限公司 一种基于密态范围索引的数据查询方法、装置以及设备
CN117494174A (zh) * 2023-12-28 2024-02-02 北京遥感设备研究所 多维数据加密范围查询方法和装置、存储介质及电子设备

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10073981B2 (en) * 2015-10-09 2018-09-11 Microsoft Technology Licensing, Llc Controlling secure processing of confidential data in untrusted devices
US10127391B1 (en) * 2015-12-28 2018-11-13 EMC IP Holding Company LLC Encrypted search indexes
US10929357B2 (en) * 2016-02-29 2021-02-23 Red Hat, Inc. Detecting stale storage layouts without using client locks
CN107547525B (zh) * 2017-08-14 2020-07-07 复旦大学 一种大数据查询处理的隐私保护方法
US10746567B1 (en) 2019-03-22 2020-08-18 Sap Se Privacy preserving smart metering
US11240005B2 (en) * 2019-10-28 2022-02-01 EMC IP Holding Company LLC Method and system for querying a secure database located on an untrusted device
CN111026754B (zh) * 2019-12-05 2022-12-02 中国科学院软件研究所 一种安全高效的圆形范围数据上传、查询方法及相应存储介质与电子装置
US11250151B2 (en) * 2020-05-05 2022-02-15 Google Llc Encrypted search over encrypted data with reduced volume leakage
CN112231752B (zh) * 2020-10-20 2022-09-09 南开大学 一种无交互频率隐藏的密文插入查询删除方法
CN112671720B (zh) * 2020-12-10 2022-05-13 苏州浪潮智能科技有限公司 一种云平台资源访问控制的令牌构造方法、装置及设备
CN112800067B (zh) * 2021-02-20 2023-06-20 成都佰维存储科技有限公司 范围查询方法、装置、计算机可读存储介质及电子设备
CN114416720B (zh) * 2021-12-08 2024-04-30 西安电子科技大学 云环境中高效灵活可验证的多属性范围检索方法及系统
CN115174072B (zh) * 2022-07-15 2024-05-14 杭州师范大学 一种保护隐私的医疗信息相似范围查询方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2199935A2 (en) * 2008-12-18 2010-06-23 Sap Ag Method and system for dynamically partitioning very large database indices on write-once tables
US20130046974A1 (en) * 2011-08-16 2013-02-21 Microsoft Corporation Dynamic symmetric searchable encryption
US20130262852A1 (en) * 2012-03-30 2013-10-03 Microsoft Corporation Range-Based Queries for Searchable Symmetric Encryption
CN104408177A (zh) * 2014-12-15 2015-03-11 西安电子科技大学 基于云文档系统的密文检索方法
CN104765848A (zh) * 2015-04-17 2015-07-08 中国人民解放军空军航空大学 混合云存储中支持结果高效排序的对称可搜索加密方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7500111B2 (en) 2003-05-30 2009-03-03 International Business Machines Corporation Querying encrypted data in a relational database system
US7395437B2 (en) 2004-01-05 2008-07-01 International Business Machines Corporation System and method for fast querying of encrypted databases
US9047342B2 (en) 2007-12-28 2015-06-02 Sybase, Inc. Method for accelerating queries containing local range conditions using subtraction of cumulative bitmaps
US9425960B2 (en) 2008-10-17 2016-08-23 Sap Se Searchable encryption for outsourcing data analytics
US8533489B2 (en) * 2010-09-29 2013-09-10 Microsoft Corporation Searchable symmetric encryption with dynamic updating
US8856138B1 (en) 2012-08-09 2014-10-07 Google Inc. Faster substring searching using hybrid range query data structures

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2199935A2 (en) * 2008-12-18 2010-06-23 Sap Ag Method and system for dynamically partitioning very large database indices on write-once tables
US20130046974A1 (en) * 2011-08-16 2013-02-21 Microsoft Corporation Dynamic symmetric searchable encryption
US20130262852A1 (en) * 2012-03-30 2013-10-03 Microsoft Corporation Range-Based Queries for Searchable Symmetric Encryption
CN104408177A (zh) * 2014-12-15 2015-03-11 西安电子科技大学 基于云文档系统的密文检索方法
CN104765848A (zh) * 2015-04-17 2015-07-08 中国人民解放军空军航空大学 混合云存储中支持结果高效排序的对称可搜索加密方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111797097A (zh) * 2020-06-30 2020-10-20 杭州密数科技有限公司 一种基于软硬件结合的方式实现安全范围查询的方法
CN111797097B (zh) * 2020-06-30 2024-02-27 杭州密数科技有限公司 一种基于软硬件结合的方式实现安全范围查询的方法
CN112329061A (zh) * 2020-11-06 2021-02-05 河北上晟医疗科技发展有限公司 智慧健康隐私保护系统
CN116074090A (zh) * 2023-01-31 2023-05-05 武汉大学 一种基于oprf的多用户顺序揭示加密方法及系统
CN116074090B (zh) * 2023-01-31 2024-05-03 武汉大学 一种基于oprf的多用户顺序揭示加密方法及系统
CN116166693A (zh) * 2023-04-21 2023-05-26 支付宝(杭州)信息技术有限公司 一种基于密态范围索引的数据查询方法、装置以及设备
CN117494174A (zh) * 2023-12-28 2024-02-02 北京遥感设备研究所 多维数据加密范围查询方法和装置、存储介质及电子设备
CN117494174B (zh) * 2023-12-28 2024-03-29 北京遥感设备研究所 多维数据加密范围查询方法和装置、存储介质及电子设备

Also Published As

Publication number Publication date
EP3168771A1 (en) 2017-05-17
US20170139985A1 (en) 2017-05-18
EP3168771B1 (en) 2018-03-28
US11341128B2 (en) 2022-05-24

Similar Documents

Publication Publication Date Title
CN106708921A (zh) 对加密数据的多对数范围查询
Li et al. Auditing cache data integrity in the edge computing environment
Zhang et al. IntegriDB: Verifiable SQL for outsourced databases
Fuller et al. Sok: Cryptographically protected database search
Xia et al. A secure and dynamic multi-keyword ranked search scheme over encrypted cloud data
Shi et al. Oblivious RAM with O ((log N) 3) worst-case cost
Boneh et al. Remote oblivious storage: Making oblivious RAM practical
US10833841B2 (en) Leakage-free order-preserving encryption
CN108701198A (zh) 合取sql语句的可搜索加密
CN110110163A (zh) 安全子字符串搜索以过滤加密数据
Goodrich Data-oblivious external-memory algorithms for the compaction, selection, and sorting of outsourced data
Vimercati et al. Shuffle index: Efficient and private access to outsourced data
US10984130B2 (en) Efficiently querying databases while providing differential privacy
Pattuk et al. Bigsecret: A secure data management framework for key-value stores
CN108182220A (zh) 云服务器中基于用户隐私保护的图像检索方法
Hozhabr et al. Dynamic secure multi-keyword ranked search over encrypted cloud data
CN108197499A (zh) 一种可验证的密文数据范围查询方法
Patel et al. What Storage Access Privacy is Achievable with Small Overhead?
CN106980796A (zh) 云环境下基于mdb+树的多域连接关键词的搜索方法
Xu et al. Efficient outsourcing of secure k-nearest neighbour query over encrypted database
CN112332979A (zh) 云计算环境中的密文搜索方法及系统、设备
Cash et al. A lower bound for one-round oblivious RAM
CN106250453A (zh) 基于云存储的数值型数据的密文检索方法及装置
Wei et al. Integrity assurance for outsourced databases without DBMS modification
CN106874379A (zh) 一种面向密文云存储的多维区间检索方法与系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination