CN108701198A - 合取sql语句的可搜索加密 - Google Patents

合取sql语句的可搜索加密 Download PDF

Info

Publication number
CN108701198A
CN108701198A CN201780011666.9A CN201780011666A CN108701198A CN 108701198 A CN108701198 A CN 108701198A CN 201780011666 A CN201780011666 A CN 201780011666A CN 108701198 A CN108701198 A CN 108701198A
Authority
CN
China
Prior art keywords
encryption
query
inquiry
database
multiple mapping
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.)
Granted
Application number
CN201780011666.9A
Other languages
English (en)
Other versions
CN108701198B (zh
Inventor
S·卡玛拉
T·莫塔兹
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN108701198A publication Critical patent/CN108701198A/zh
Application granted granted Critical
Publication of CN108701198B publication Critical patent/CN108701198B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

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

Abstract

一种安全控制器,其控制加密关系数据库中的查询的安全处理。查询控制器从客户端装置接收使用合取查询形式的结构化查询语言(SQL)查询而生成的加密令牌格式的安全查询,并将对安全查询的加密响应发送到客户端装置。搜索引擎通过在不解密安全查询并且不解密加密多重映射的情况下发起对加密关系数据库的搜索,来生成对安全查询的加密响应。加密关系数据库包括:加密字典和与在客户端装置处托管的关系数据库相对应的加密多重映射,加密字典基于结构化加密、使用结构化加密代替使用性质保持加密(PPE)并且代替使用全同态加密(FHE)。

Description

合取SQL语句的可搜索加密
背景技术
电子装置的用户常常需要进入数据库系统以获得各种类型的信息和/或执行各种操作。已经设计了许多不同的技术来控制数据库管理系统(DBMS)中的数据项的存储和检索。数据库管理系统中的数据的机密性是持续关注的问题,因为数据的持有者可能更喜欢它们的信息免受其它人看到/使用。例如,对数据安全和数据泄露的担忧可能阻碍云技术的采用。数据可能是有价值的资产,并且云中的未保护数据可能容易受到黑客和/或窥探管理员的攻击。
发明内容
根据一个总体方面,系统可以包括:至少一个硬件装置处理器;以及计算机可读存储介质,其存储可执行指令,所述可执行指令在被执行时使得至少一个硬件装置处理器中的一个或多个硬件装置处理器:通过以下来控制关系数据库中的查询的安全处理:使用结构化加密代替使用性质保持加密(PPE)、基于使用合取查询形式的结构化查询语言(SQL)查询而生成加密令牌,来生成安全查询。加密令牌包括元数值和维度值,元数值指示在查询的叉积部分中包括的表的基数,维度值指示在叉积中包括的表的维度。安全查询被提交到托管加密数据库的装置,加密数据库包括与关系数据库相对应的加密多重映射和基于结构化加密的加密字典。接收对安全查询的加密响应。
根据另一方面,通过以下来控制关系数据库中的查询的安全处理:从客户端装置接收安全查询,所述安全查询具有使用合取查询形式的结构化查询语言(SQL)查询来生成的加密令牌的格式,加密令牌包括元数值和维度值,元数值指示在查询的叉积部分中包括的表的基数,维度值指示在叉积中包括的表的维度。使用加密数据库生成对安全查询的加密响应,加密数据库包括:加密字典和与关系数据库相对应的加密多重映射,加密字典基于结构化加密、使用结构化加密代替使用性质保持加密(PPE)并且代替使用全同态加密(FHE)。加密响应被发送到客户端装置。
根据另一方面,系统可以包括至少一个服务器,所述至少一个服务器包括至少一个硬件装置处理器。服务器可以包括加密关系数据库,所述加密关系数据库包括:加密字典和与在客户端装置处托管的关系数据库相对应的多重映射,加密字典基于结构化加密、使用结构化加密代替使用性质保持加密(PPE)并且代替使用全同态加密(FHE)。安全控制器可以包括存储可执行指令的计算机可读存储介质,所述可执行指令在被执行时使得硬件装置处理器控制加密关系数据库中的查询的安全处理。安全控制器包括查询控制器,所述查询控制器从客户端装置接收安全查询并将对安全查询的加密响应发送到客户端装置,所述安全查询具有使用合取查询形式的结构化查询语言(SQL)查询而生成的加密令牌的格式。查询控制器包括搜索引擎,所述搜索引擎通过在不解密安全查询并且不解密加密多重映射的情况下发起对加密关系数据库的搜索,来生成对安全查询的加密响应。
提供本发明内容以便以简化的形式引入一系列概念,其将在下面的具体实施方式中进一步描述。本内容不旨在确定所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。在附图和下面的描述中阐述一个或多个实施方式的细节。其它特征将通过说明书、附图和权利要求而清楚。
附图说明
图1是用于控制加密数据库管理系统中的数据的安全的示例架构的框图。
图2A-2B示出了用于对关系数据库的选择、投影和笛卡尔乘积(SPC)查询的示例结构化加密方案的示例Setup技术。
图3示出了用于对关系数据库的选择、投影和笛卡尔乘积(SPC)查询的示例结构化加密方案的示例Token生成技术。
图4A-4B示出了用于对关系数据库上的选择、投影和笛卡尔乘积(SPC)查询的示例结构化加密方案的示例Query处理技术。
图5是用于控制加密数据库管理系统中的安全的示例系统的示例架构的框图。
图6A-6D是示出图5的系统的示例操作的流程图。
图7A-7C是示出图5的系统的示例操作的流程图。
图8A-8B是示出图5的系统的示例操作的流程图。
具体实施方式
I.简介
硬件平台的最新发展已经开发了各种处理器和各种存储装置,它们致力于提供更高性能(例如,速度、效率)和更安全的机密数据处理。数据库管理系统中的数据的机密性是持续关注的问题。作为示例,对数据安全和数据泄露的担忧可能阻碍云技术的采用。数据可能是有价值的资产,并且云中未保护的数据可能易受到黑客和/或窥探管理员的攻击。因此,提供攻击者无法获知关于数据的信息的、能够有力保证数据机密性的数据管理系统(DBMS)可以是有利的。例如,这种DBMS可以处理安全漏洞,并且可能产生将云数据库作为服务(cloud database-as-a-service)的新的机会。
本文讨论的示例技术可以以其能够支持合取查询的方式来加密关系数据库,合取查询可以是结构化查询语言(SQL)查询的特定类别。解决该问题的传统尝试可以依赖于被称为性质保持加密(PPE)的加密类型,诸如例如确定性和保序性加密。这种基于PPE的方法可能泄漏大量信息。另一方面,本文讨论的示例技术可以大幅减少信息泄漏。
另一方法可以使用信任硬件;然而,用户可能于是需要信任该硬件。本文讨论的示例技术可以不需要使用信任硬件(即,可以在非信任硬件上执行,可以在不具有针对例如本文讨论的示例特定系统的信任硬件的情况下执行)。
本文讨论的示例技术可以加密关系数据库,以使得该关系数据库可以有效地支持较多类别的SQL查询。本文讨论的示例技术可以仅基于结构化加密,而不使用诸如确定性和保序性加密的任何性质保持加密(PPE)方案。这样,本文讨论的示例技术可以比诸如CRYPTDB和CIPHERBASE的基于PPE的方案大幅减少泄漏,CRYPTDB和CIPHERBASE最近已经被证明可能在特定设定中揭示大量信息(参见,例如,Naveed等人的“Inference Attacks onProperty-Preserving Encrypted Databases,”In Proceedings of the 22nd ACMSIGSAC Conference on Computer and Communications Security,October 12,2015)。
由于其对云计算和数据安全的潜在应用,加密搜索的问题已经得到工业界、学术界和政府的大量关注。然而,该领域的大部分进展一直存在于对加密文件的关键字搜索的设定中。虽然这在实践中可以具有许多应用(例如,电子邮件、NoSQL数据库、桌面搜索引擎、云文件存储),然而在实践中产生和消耗的数据可能在关系数据库中被存储和处理。粗略地说,关系数据库可以是具有代表实体/项的行和代表该实体/项的属性的列的一组表。关系数据库模型由Codd提出(参见,例如,Codd E.F.的“A relational model of data forlarge shared data banks,”In Communications of the ACM,Vol.13,Issue 6,1970,pp.377-387),并且许多关系数据库(DB)使用结构化查询语言(SQL)来查询,结构化查询语言(SQL)是由Chamberlain和Boyce引入的专用声明性语言(参见,例如,Chamberlin等的“SEQUEL:A structured English query language,”In Proceedings of the ACMSIGFIDET Workshop on Data Description,Access and Control,1974,pp.249-264)。
加密关系DB的问题是数据库安全的重要工作领域。例如,其被Iyer、Li和Mehrotra等人明确研究(参见,例如,等的“Executing SQL overencrypted data in the database-service-provider model,”Proceedings of the2002 ACM SIGMOD International Conference on Management of Data(SIGMOD'02),2002,pp.216-227),等描述了基于量化的方法,粗略地说,其泄漏项落入的范围。Popa、Redfield、Zeldovich和Balakrishnan(参见,例如,Popa等的“CryptDB:protecting confidentiality with encrypted query processing,”In Proceedings ofthe Twenty-Third ACM Symposium on Operating Systems Principles(SOSP'11),October 2011,pp.85-100)讨论了称为CRYPTDB的系统,其在不量化的情况下支持加密关系DB的SQL的非平凡子集。CRYPTDB可以部分通过使用类似分别揭示相等和顺序的确定性和保序性(OPE)加密的性质保持加密(PPE)方案而实现。通过对PPE加密密文基本上相同的操作,示例的高级别技术替代了为执行SQL查询所需的明文操作(例如,相等测试和比较)。这种方法之后影响了包括CIPHERBASE(参见,例如,Arasu等的“Orthogonal Security withCipherbase,”In Proceedings of 6th Biennial Conference on Innovative DataSystems Research,2013)和SEEED(参见,例如,Grofig等的“Experiences andobservations on the industrial implementation of a system to search overoutsourced encrypted data,”In Proceedings of the 7th Annual Meeting of theDepartment of Security of the Society for Computer Science,March 19,2014)的其它系统。虽然这可能使得系统高效并且传统方面较友好,但是近来由Naveed、Kamara和Wright证明(参见,例如,Naveed等的“Inference Attacks on Property-PreservingEncrypted Databases,”In Proceedings of the 22nd ACM SIGSAC Conference onComputer and Communications Security,October 12,2015)这种基于PPE的EDB系统在诸如例如电子医疗记录(EMR)的设定中使用时可能会泄漏大量的信息。鉴于这种结果,加密搜索中的潜在问题、更一般地说数据库安全中的潜在问题在于确定是否可以在不使用PPE的情况下高效地对加密关系DB执行SQL查询,并且具有仅“合理”量的泄漏—或至少比基于PPE的解决方案具有更少泄漏。
本文讨论的示例技术可以(至少)解决该问题,并且可以为加密DB提供SQL示例方案,其不使用PPE并且可以比大多数传统方法明显泄漏更少。本文讨论的示例技术可以是高效的并且可以处理大的子类别的SQL查询,并且在允许客户端处的少量后处理的情况下甚至可以处理更大类别的SQL查询。更特别地,本文讨论的示例技术可以处理合取查询的类别(参见,例如,Chase等的“Structured encryption and controlled disclosure,”InProceedings of 16th International Conference on the Theory and Application ofCryptology and Information Security,2010,pp.577-594),其可以对应于以下形式的SQL查询
Select attributes From tables Where(a1=X1∧…∧al=Xl)其中,a1至al是DB 方案中的属性,X1至Xn是属性或常数。虽然合取查询的类别比由基于PPE解决方案支持的类 别小,但它可能是研究最多且最有用的查询类别之一。此外,如上所述,当允许在客户端处 的少量后处理时,本文讨论的示例技术的表达性可以扩展到更宽的子类别。
通常,对加密数据库(EDB)的基于PPE的方法可以被视为通过直接在加密单元上执行服务器的低级别操作(即,比较和相等测试)而利用查询的加密执行来替代SQL查询的明文执行。这可以由于PPE的保证对明文的操作也可以对密文完成的性质而完成。这种“即插即用”类型的方法可以使EDB的设计相对简单,因为唯一的要求可能是用PPE加密单元替代明文单元。鉴于关系DB和SQL查询的复杂性,在没有PPE或没有求助于诸如例如全同态加密(FHE)或遗忘RAM(oblivious RAM,ORAM)的通用解决方案的情况下,可能无法先验清楚如何解决此问题)。
解决方案的示例第一步骤可能涉及隔离问题的一些概念上的困难。例如,从数据结构的角度来看,关系DB可能看起来相对简单,因为它们可以包括一组二维数组。然而,示例的高级别挑战可能源于SQL、更具体地源于其复杂性(例如,它可以表达一阶逻辑)并且源于其声明的本质。为了克服这个问题,可以使用SQL查询的更简单但广泛适用且经过充分研究的子集(参见上文),并且可以采用SQL的更加程序化的视图。例如,可以使用可能更适合于密码技术的SQL的关系代数公式。关系代数由Codd引入(参见,例如,Codd,E.F.的“Arelational model of data for large shared data banks,”Communications of theACM,Vol.13,Issue 6,1970,pp.377-387),作为用于对关系数据库的查询形式化的示例技术。通常,其可以包括能够从一组基本操作表达出的查询。Chandra和Merlin后来证明了(参见,例如,Chandra等的“Optimal implementation of conjunctive queries inrelational data bases,”In Proceedings of the Ninth Annual ACM Symposium onTheory of Computing,1977,pp.77-90)这些操作中的三个操作(选择、投影和叉积)可以捕捉称为“合取查询”的大类别的有用查询,“合取查询”可以具有有利的理论性质。
由选择、投影和笛卡尔乘积(例如,叉积)运算符表示的关系代数的子集在本文也可以被称为“SPC代数”。通过以SPC代数工作,可能不仅获得SQL查询的程序表示,还简化该问题至仅处理这三种基本运算。概念上地,这可能让人联想到可以通过在安全多方计算和FHE中利用电路工作获得的好处。此外,SPC代数允许范式;也就是说,SPC查询可以以标准形式被写入。通过利用这种范式,可以(与其它通用解决方案一样)设计和分析处理所有SPC查询的单个架构。然而,有些类似于电路表示的是,SPC范式可能并不总是最高效的。
如上所述,SPC代数包括可以由选择、投影和叉积运算符的组合表达的查询,该组合在高级别时可以以如下讨论的方式工作。
例如,选择运算符σψ可以将表T作为输入,并且输出满足谓词(predicate)ψ的T的行。例如,投影运算符可以将表T作为输入,并且输出由a1,...,ah索引的T的列。此外,叉积运算符T1×T2可以将两个表作为输入,并且输出第三表,第三表包括在被视为行组时笛卡尔乘积T1和T2的行。例如,对数据库DB=(T1,...,Tn)的SPC查询的范式可以被表示为:
其中ψ具有a1=X1∧…∧al=Xl的形式,其中a1,…,al是DB方案中的属性,并且X1,…,Xl是属性或常数。因此,具体地,问题可以被简化为以其可以支持范式SPC查询的方式加密关系数据库DB=(T1,...,Tn)的问题。
上述具体问题是结构化加密问题:即,如何可以加密数据结构(即,DB)以使得其可以支持特定类型的查询(即,SPC范式查询)。结构化加密(STE)是由Chase和Kamara引入的引入的可搜索对称加密(SSE)的概括(参见,例如,Chase等,同上),其允许客户端加密数据结构从而其能够被私下查询。如上所述,关系DB可以是相对简单的结构(即,二维数组),但是它们支持的查询可以较复杂。这可能与许多STE方案相反,STE方案可以处理诸如字典、多重映射(即,倒排索引)、树、图表和网络图的相对复杂的结构,但是它们可以支持相对简单的查询。例如,在关系DB以及在处理SPC查询的情况中潜在的问题是,查询可以被认为是构造性的,因为它们可以从原始基础结构中产生新的数据结构。直观地说,处理构造性查询(没有交互)可能具有挑战性,因为服务器为回答查询而创建的中间和最终结构可能依赖于该查询,并且因此客户端可能无法在设置/预处理阶段构造查询。
然而,关于可能成为本文讨论的示例技术的基础的关系DB的示例观察是,虽然SPC查询可以是构造性的,但它们可能不是任意构造性的。换言之,用于回答SPC查询的表可能不是完全任意的,而是可以以在设置时能够被预测的方式被构造。可能与查询相关的是这些表的内容,但是,该内容的全部可能已经被存储在原始数据库中。因此,可能需要为服务器设置构造适当的中间表和最终表并且设计加密结构的部件,其允许高效地找到填入那些表所需的(加密)内容。
在检查SPC范式时,可以注意到,回答查询所需的第一中间表可以是叉积为了便于说明,忽略与[a1],...,[af]的叉积,剩余的中间表以及最终表可以是由(根据ψ)选择行子集以及(根据a1,...,ah)保持列子集而产生的T'的“子表”。如下面进一步讨论的,仅从t和的维度,不仅可以导出T'的维度,而且可以导出将DB中的任何单元映射到其在T'中的位置的映射Λ。本文中该映射可以称为“位置映射”,其可以被提供给服务器,以使得它可以将加密的内容放置在T'中。为了帮助服务器在第一时间找到所需内容,可以生成一组加密结构,该加密结构粗略地说可以被视为数据库的不同表示。例如,能够生成的加密结构之一可以提供数据库的按行(row-wise)表示,而另一个可以提供按列(column-wise)表示。通过使用这些各种表示并通过以适当的方式“组合”它们,可以为服务器生成令牌以恢复由将选择和投影运算符应用于T'而产生的(加密的)数据库单元。一旦服务器可以恢复那些加密单元,则可以使用位置映射图将其放置在T'中并修剪T'以生成最终表。此外,在整个过程中,可能不需要执行实际的叉积,因为位置映射图以能够从T'中仅选择子表的方式来隐含地模拟叉积。
如本文所使用的,长度n的所有二进制串的集合可以被表示为{0,l}n,并且所有有限二进制串的集合可以被表示为{0,1}*。如本文所使用的,[n]可以表示整数集合{1,...,n}。如本文所使用的,x←χ可以用于表示从分布χ中采样的元素x,并且表示从集合X中随机均匀采样的元素x。如本文所使用的,算法A的输出x可以用x←A表示。给定n个元素的序列v,其第i个元素在本文可以被称为vi或v[i]。如本文所使用的,如果S是集合,则#S可以指其基数。如果s是字符串,则|s|指其长度(例如,以位为单位)。计算领域的技术人员将理解,也可以使用除“位”之外的其他值。
如本文所使用的,私人秘钥加密方案是三个多项式时间算法Π=(Gen,Enc,Dec)的集合,由此Gen是采用安全参数k并返回秘密密钥K的概率算法;Enc是采用密钥K和消息m并返回密文c的概率算法;Dec是采用秘钥K和密文c并在K是产生c的秘钥的情况下返回m的确定性算法。非正式地,甚至对于能够自适应地查询加密oracle数据库的对手来说,如果私人秘钥加密方案输出的密文不揭示关于明文的任何部分的信息,则该私人秘钥加密方案对于选择明文攻击(CPA)可以是安全的。
如本文所使用的,抽象数据类型可以包括一组对象以及对那些对象定义的一组操作。示例包括集合、字典(也被称为秘钥值商店或关联数组)和图表。与抽象数据类型相关联的操作可以落入两个类别中:查询操作,其返回关于对象的信息;或更新操作,其可以修改对象。如果抽象数据类型仅支持查询操作,则它可以被称为是静态的,否则它可以被称为是动态的。本文讨论的示例技术可以涉及具有单个操作的静态类型。
如本文所使用的,针对给定数据类型的数据结构可以指给定类型的对象的一些计算模型中的表示(例如,基础模型可以被称为“RAM”)。例如,可以优化该表示以尽可能高效地支持该类型的查询操作。对于支持多个查询的数据类型,可以优化所述表示以高效地支持尽可能多的查询。作为具体示例,可以取决于可能想要高效支持哪些查询而使用各种数据结构来表示字典类型。例如,哈希表可以在预期的O(1)时间内支持获得(Get)和放置(Put),而平衡的二叉搜索树可以在最坏情况的log(n)时间内支持这两个操作。为了便于理解和匹配口语用法,数据类型与结构之间的区别有时可能会模糊。因此,例如,当引用字典结构或多重映射结构时,提到的可能是字典或多重映射数据类型的未指定例式。
本文可以使用多种基本数据类型,包括数组、字典和多重映射。例如,容量n的数组A可以在位置1至n(或在位置0至n-1)处存储n个项,并且可以支持读取和写入操作。如本文所使用的,v:=A[i]可以表示读取位置i处的项,并且A[i]:=v表示在位置i处存储项的操作。如本文所使用的,容量n的字典DX可以指支持获得和放置操作的n个标签/值对{(li,vi)}i≤n的集合。如本文所使用的,vi:=DX[li]可以表示获得与标签li相关联的值,并且DX[li]:=vi可以表示将DX中的值vi与标签li.相关联的操作。如本文所使用的,具有容量n的多重映射MM可以指n个标签/元组对{(li,ti)i}i≤n的集合,并且可以支持获得和放置操作。与字典类似,ti:=MM[li]可以表示获得与标签li相关联的元组,并且MM[li]:=ti表示将元组ti与标签li相关联的操作。多重映射是由倒排索引实例化的抽象数据类型。在加密搜索文献中,多重映射有时被称为索引、数据库或元组集(T集)。如本文所使用的,数据结构支持的可能查询的组可以被称为数据结构的查询空间,并且其可能响应的组可以被称为数据结构的响应空间。对于一些数据结构DS,DS:Q→R可以表示DS分别具有查询空间Q和响应空间R。
如本文所使用的,关系数据库DB=(T1,...,Tn)可以指一组表,其中每个表Ti是二维数组,该二维数组的行对应于实体(例如,顾客或雇员),列对应于属性(例如,年龄、身高、薪水)。对于任何给定属性,其可以采用的所有可能值的集合可以称为该属性的空间(例如,整数、布尔值、字符串)。如本文所使用的,表T的方案可以指其属性集合,并且可以表示为于是,数据库DB=(T1,...,Tn)的方案为集合例如,可以假设中的属性是唯一的并且被表示为正整数。如本文所使用的,表T的行数(例如,基数、计数)可以表示为||T||r并且其列数(例如,基数、计数)可以表示为||T||c
例如,表可以被视为行的元组,其可以表示为r∈T。例如,表还可以被视为列的元组,其可以表示为c∈TT。类似地,对于r∈∪iTi元素可以分别表示为r∈DB和c∈DBT。对于行r∈Ti,其表标识符tbl(r)是i并且其行秩rrk(r)是在被视为行的元组时其在Ti中的位置。类似地,对于列其表标识符tbl(c)是i并且其列秩crk(c)是在被视为列的元组时其在Ti中的位置。对于任意行r∈DB和列c∈DBT,对(tbl(r)、rrk(r))和(tbl(c)、crk(c))分别可以称为该行和该列在DB中的坐标。符号r[i]和c[i]可以分别指行r和列c的第i元素。行r∈Ti中第j个单元的坐标是三元组(i,rrk(r),j)。给定列c∈DBT,其对应的属性可以由att(c)表示。对于使得dom(a1)=dom(a2)的任意一对属性 可以表示行对{(r1,r2)∈DB2:r1[a1]=r2[a2]}的集。对于任意属性和任意常数 DBa=a可以表示行{r∈DB:r[a]=a}的集。
在实践中,可以使用由Chamberlain和Boyce引入的专用语言SQL来查询关系数据库(参见,例如,Chamberlin等的“SEQUEL:A structured English query language,”InProceedings of the ACM SIGFIDET Workshop on Data Description,Access andControl,1974,pp.249-264)。SQL是一种声明性语言,可用于修改和查询关系DB。非正式地,SQL查询通常可以具有以下形式:
Select tables From attributes Where condition,
其中attributes是属性/列的集,tables是表的集,condition是对tables的行的 谓词并且本身可以包含嵌套的SQL查询。使用Group-by、Order-by和聚合运算符(即,max、 min、average等)可以获得更复杂的查询,但上面的简单形式已经捕获了SQL的较大的子集。 关于关系DB的常见类别查询是合取查询(参见,例如,Chandra等,同上),其具有上述形式, 其中限制是condition是对属性和常数上的等式的结合。特别地,这表示condition中可能 没有嵌套查询。更准确地,合取查询可以被表示为:
Select tables From tables Where(a1=X1∧…∧al=Xl),
其中ai中的属性,Xi可以是属性或常数。
Chandra和Merlin证明了合取查询可以被表达为Codd关系代数的子集,Codd关系代数是基于基本运算符的集的命令式查询语言。例如,他们证明了三个运算符select(选择)、project(投影)和cross product(叉积)就足够了。select运算符σψ用谓词ψ参数化,并且可以将表T作为输入并输出包括满足谓词ψ的T的行的新表T'。
projection运算符通过属性a1,...,ah的集被参数化,并且可以将表T作为输入并输出表T',表T'包括由a1至an索引的T的列。cross product运算符×可以将两个表T1和T2作为输入并输出新表T'=T1×T2,以使得T'的每一行是T1的行的集与T2的行的集之间的笛卡尔乘积的元素。由选择、投影和叉积的任意组合产生的查询语言可以被称为SPCalgebra(SPC代数),其在下面进一步形式化。
如本文所使用的,如果DB=(T1,...,Tn)是关系数据库,则SPC algebra包括从以下运算符的组合产生的任意查询:
T'←σψ(T):选择运算符利用a1=X1∧…∧al=Xl形式的谓词ψ被参数化,其中和Xi是属性或ai域中的常数a。将表T∈DB作为输入并输出表T'={r∈T:ψ(r)=1},其中如果r(ai)=r(xj)则满足形式ai=xj,并且如果r(ai)=a则满足形式ai=a。
投影运算符由属性的集被参数化。将表T∈DB作为输入并输出表T'={<r(a1),...,r(ah)>:r∈T}。
T3←T1×T2:叉积运算符将两个表T1和T2作为输入,并输出表T3={<r,v>:r∈T1andv∈T2},其中<r,v>是行r和v的级联。
直观地,合取SQL查询与SPC代数之间的连接可以看作如下:Select可以被视为对应于投影运算符,From对应于叉积,Where对应于(SPC)选择运算符。
如本文所使用的,可以使用标识的示例集将SPC代数中的查询简化为范式(例如,“SPC范式”)。例如,对关系数据库DB=(T1,...,Tn)的SPC查询的范式可以具有以下形式:
其中,dom(a)并且[aj]是容纳aj的1×1表。这里,投影中的属性a1,...,ah是(DB)或指通过[a1]至[ah]生成的列。在后一种情况下,本文中这些列可以被称为虚拟属性并且位于中,其中VDB是被限定为VDB=([a1],...,[af])的虚拟数据库。
将上述形式的SQL查询转换为SPC查询已经被研究,并且可以具有基本上优化的解决方案。例如,从这种转译产生的SPC查询可能是“紧凑的”,因为在产生的SPC查询中,投影、选择和叉积的数目可以分别与原始SQL查询中的属性、表格和条件的数目基本相同。此外,SPC查询到其范式的转化也可以基于标识的标准集而高效地完成,并且还可以产生在上述意义上的“紧凑的”范式查询。
如本文所使用的,“位置映射”直观地将DB中的单元坐标映射到其叉积中的位置。这里,可以假设表全部具有相同的行数m。例如,使M为mt×∑i si的二维数组。位置映射Λt,m,s可以通过叉积中的表的数目t≥1、表的尺寸m≥1和使得si=||Ti||c的矢量s=(s1,...,st)而被参数化。例如,可以将DB中的任意单元的坐标作为输入,并输出M中的位置(α,β)∈[mt]×[∑i si]的集。具体地,示例位置映射可以被定义为:
其中,z∈{i1,...,it},i∈[m]并且j∈||Tz||c
以下讨论STE方案的示例句法和安全性。例如,STE方案可以以数据结构能够被私下查询的方式来加密数据结构。存在多种自然形式的结构化加密。示例原始定义考虑了加密结构和关联数据项集(例如,文档、电子邮件、用户简介等)两者的方案。在另一示例中,仅结构的方案(structure-only schemes)可以仅加密结构。可以在交互方案与非交互方案之间进行另一种区分。例如,交互方案可以产生能够通过交互双方协议被查询的加密结构,而非交互方案可以产生能够通过发送单个消息(即,令牌)被查询的结构。还可以区分响应揭示方案和响应隐藏方案:前者可以揭示对服务器的查询响应,而后者不能揭示对服务器的查询响应。
本文讨论了示例非交互仅结构的方案。示例构造SPX是响应隐藏的,但可以使用响应揭示方案作为构建块。因此,下面讨论这两种形式。
在高级别时,非交互STE可以如下所述地工作。
在设置阶段期间,客户端可以在来自明文结构DS的密钥K下构建加密结构EDS。然后,客户端可以将EDS发送到服务器。在查询阶段期间,客户端可以构造并发送从其查询q和秘密密钥K生成的令牌tk。服务器然后可以使用令牌tk以查询EDS并且根据该方案是响应揭示的还是响应隐藏的来恢复响应r或恢复r的加密ct。
示例响应揭示结构化加密方案∑=(Setup,Token,Query)可以包括能够如下所讨论地工作的三种多项式-时间技术(例如,算法):
(K,EDS)←Setup(lk,DS):是将安全参数lk和结构DS作为输入并且输出秘密密钥K和加密结构EDS的概念性算法。
tk←Token(K,q):是将秘密秘钥K和查询q作为输入并返回令牌tk的概念性算法。
{⊥,r}←Query(EDS,tk):是将加密结构EDS和令牌tk作为输入并输出⊥或响应的确定性算法。
如本文所讨论的,如果对于所有对于所有的尺寸为poly(k)的结构DS:Q→R、对于由Setup(lk,DS)输出的所有(K,EDS)和m=poly(k)查询q1,...,qm的所有序列、对于由Token(K,qi)输出的所有令牌tki,Query(EDS,tki)在除了概率几乎可以忽略不计之外的全部情况下返回DS(qi),则响应揭示结构化加密方案∑可以被表示为“正确”。
响应隐藏结构化加密方案∑=(Setup,Token,Query,Dec)可以包括使得Setup和Token如上所述并且Query和Dec可以如下定义的四种多项式-时间算法:
{⊥,ct}←Query(EDS,tk):是将加密结构化EDS和令牌tk作为输入并且输出⊥或密文ct的确定性算法。
r←Dec(K,ct):是将秘密秘钥K和密文ct作为输入并且输出响应r的确定性算法。
如本文所使用的,如果对于所有对于类型T的所有的尺寸为poly(k)的结构DS:Q→R、对于由Setup(lk,DS)输出的所有(K,EDS)和m=poly(k)查询q1,...,qm的所有序列、对于Token(K,qi)输出的所有令牌tki,DecK(Query(EDS,tki))在除了概率几乎可以忽略不计之外的全部情况下返回DS(qi),则响应隐藏结构化加密方案∑可以被表示为“正确”。
用于结构化加密的安全性的示例概念可以保证加密结构在设置泄漏LS之外不揭示关于其基础结构的信息,并且查询算法不揭示查询泄漏LQ之外的其他结构和查询的信息。如果这适用于非自适应选择的操作,则可以被称为非自适应语义安全性。另一方面,如果操作被自适应地选择,则可以引出更强的自适应语义安全性的概念。
使∑=(Setup,Token,Query)为响应揭示结构化加密方案,并且考虑其中为状态性的对手、S为状态性的模拟器、LS和LQ为泄漏资料以及z∈{0,1}*的以下概率实验:
给定z,对手输出类型T的结构DS。从挑战者接收EDS,其中(K,EDS)←Setup(lk,DS)。然后,对手可以自适应地选择多项式数目的查询q1,...,qm。对于所有i∈[m],对手接收tk←Token(K,qi)。最后,输出由实验输出的位b。
给定z,对手生成类型T的结构DS,并将其发送给挑战者。给定z和来自挑战者的z的泄漏LS(DS),模拟器S将加密数据结构EDS返回到然后,对手可以自适应地选择多项式数目的操作q1,...,qm。对于所有i∈[m],模拟器接收元组(DS(qi),LQ(DS,qi))并将令牌tki返回到最后,输出由实验输出的位b。
计算领域的技术人员将理解也可以使用除“位”之外的值。
如本文所使用的,如果对于所有PPT对手存在PPT模拟器S,使得对于所有z∈{0,1}*,以下表达式的k基本上可忽略不计,则∑可以被表示为自适应(LS,LQ)-语义上安全:
可以通过给出模拟器(⊥,LQ(DS,qi))代替(DS(qi),LQ(DS,qi))来导出响应隐藏方案的安全性定义。
如本文进一步讨论的,图1是用于控制加密数据库管理系统中的数据安全性的示例架构100的框图。如图1的示例中所示,客户端装置102可以经由网络106与服务器104通信(例如,在与客户端装置102不同(并且远离客户端装置102)的服务器装置上)。计算领域的技术人员将理解客户端装置102还可以在本地将服务器104托管到客户端装置102,而不通过网络106通信。例如,服务器104可以包括加密数据库管理系统(EDBMS)服务器104。
客户端侧安全控制器108可以控制关系数据库112中的查询110的安全处理。例如,应用114可以提供查询110以用于处理。例如,客户端侧安全控制器108可以包括加密数据库生成器116、加密查询生成器118和解密查询结果生成器120。
例如,如图1所示,加密数据库生成器116可以使用关系数据库112生成加密数据库122。如下面进一步讨论的,加密数据库生成器116还可以输出密钥124。
如图1所示,服务器104可以包括服务器安全控制器126,其可以包括加密数据库控制器128、加密查询控制器130和加密查询结果生成器132。例如,如图1所示,加密数据库控制器128可以控制从客户端102接收加密数据库122,并使用加密数据库122建立服务器侧加密数据库136。
如下面进一步讨论的,加密查询生成器118可以获得查询110并生成加密查询138(例如,令牌)。例如,加密查询控制器130可以获得加密查询138、可以将该加密查询138本地存储为加密查询140、并且可以使用该加密查询138查询加密数据库136(如下面进一步讨论的)以获得加密查询结果142,该加密查询结果142可以被提供给客户端侧安全控制器108。例如,加密查询控制器130可以包括搜索引擎,其通过在不解密安全查询138并且不解密加密多重映射的情况下启动对加密关系数据库(122)的搜索,来生成加密查询结果142(例如,作为对安全查询的加密响应)。
解密查询结果生成器120可以获得加密查询结果142并控制解密以生成查询结果144(例如,对于应用114,作为查询110的结果)。例如,如果加密查询结果142是表,则解密查询结果生成器120可以解密表中的每个单元以生成查询结果144。
下面讨论针对关系DB的SPC查询的示例结构化加密方案。图2A、图2B、图3、图4A和图4B示出了示例实施方式,其在本文中可以被称为SPX。图2A-2B示出了用于对关系数据库的选择、投影和笛卡尔乘积(SPC)查询的示例结构化加密方案的示例设置技术。如图2A(202)所示,示例方案可以进行响应揭示多重映射加密方案∑MM=(Setup,Token,Get)、响应揭示字典加密方案∑DX=(Setup,Token,Get)和对称密钥加密方案SKE=(Gen,Enc,Dec)的黑盒使用。
如图2A中所示,Setup可以将关系数据库DB=(T1,...,Tn)作为输入(204)并且可以创建(206)三个多重映射MMR、MMC和MMV,每个多重映射存储数据库的不同表示。例如,MMR存储数据库的按行表示,即,其将行坐标(即,行表和行秩)映射到加密行。类似地,MMC存储DB的按列表示并将列坐标(即,列表和列秩)映射到加密列。然后,Setup利用∑MM加密MMR和MMC,产生EMMR和EMMC(208)。然后,它使用MMV来存储(210)数据库的按值表示,因为后者将单元的值映射到DB中存储相同值的行的令牌(其中这些令牌用于EMMR)。再一次地,Setup使用∑MM加密MMV,产生EMMV(212)。如上所述,SPC范式可以被表示为:
在高级别处,EMMC可以启用投影操作,并且与EMMR组合的EMMV可以启用类型1选择操作(即,形式ai=ai的选择操作)。然而,为了支持类型2选择操作,可能需要附加的结构。
为此,(如图2B所示)Setup可以为所有列c∈DBT创建(214)多重映射MMC,该MMC将以下形式的对
<<tbl(c),crk(c)>,<tbl(c’),crk(c’)>>
映射到行(r1,r2)∈DBatt(c)=att(c’)的令牌,其中c’∈DBT是与c具有相同域的列。然后利用∑MM对这些多重映射中的每一个多重映射加密(216),产生集并创建(218)字典DX,该字典DX针对所有c∈DBT将每列的属性att(c)映射到EMMC。然后利用∑DX加密DX,产生加密字典EDX(220)。
Setup输出(222)密钥其中KR、KC、KV、KD分别是EMMR、EMMC、EMMV、EDX和的秘钥,并且K1是SKE的秘钥。示例加密数据库可以被表示为
EDB=(EMMR,EMMC,EMMV,EDX)
图3示出用于对关系数据库的选择、投影和笛卡尔乘积(SPC)查询的示例结构化加密方案的示例Token生成技术。例如,Token可以采用秘密密钥K和范式的SPC查询q作为输入(302)。示例技术可以首先生成用于投影的令牌。如上所述,在SPC范式中,投影可以在虚拟或真实属性上发生。因此,(如图3的步骤2所示),对于所有i∈[h],如果则Token设定ytki=(1,ai);否则,如果则Token创建投影令牌 并设定sets ytki=(0,ptki)。
对于每个常数a1到af,Token计算 然后,对于ψ的每个项ai=Xi,Token执行以下操作。如果该项是ai=ai形式的类型1查询,则针对包括常数ai和坐标ai的对来计算EMMV令牌vtki并设置stki=vtki。在这种情况下,这种形式的s-令牌可以称为类型1令牌。另一方面,如果该项是ai=xi形式的类型2查询,则它计算两个令牌dtki和jtki。第一令牌dtki是用于坐标ai的EDX令牌,第二令牌jtki是用于包括坐标ai和xi的对的令牌。然后设定stki=(dtki jtki),如图3的步骤4所示。如本文所使用的,这种形式的s-令牌可以被称为类型2令牌。然后,Token创建矢量s,其保持的(列)尺寸(如图3的步骤6所示)并输出令牌
这在图3的步骤7中示出。
图4A-4B示出用于对关系数据库的选择、投影和笛卡尔乘积(SPC)查询的示例结构化加密方案的示例Query处理技术。如图4A中所示,Query将加密数据库EDB和令牌tk作为输入(402)。给定叉积t的元数、列m的尺寸和乘积中表的列尺寸s,Query实例化空mt×∑i si矩阵M(404)。
然后,如图4A的步骤4所示,Query处理s-令牌stk1到stkl。如果stki是类型1,则使用其来查询EMMV。这产生Query随后用于查询EMMR结构的行令牌的元组t。例如,对于所有rtk∈t,可以计算
<ct1,...,ctd,tb,rrk>←∑MM.Get(EMMR,rtk),
其中<ct1,...,ctd>是加密行,并且(tb,rrk)是其坐标。这些将是DB中在列ai处保持常数ai的行的加密,其中ai和ai是作为vtki基础的类型1选择查询中的属性/常数对。对于上面每个加密行的每个密文cti,Query随后计算(α,β)←Λt,m,s(tb,rrk,i)并设定M[α,β]:=cti。另一方面,如果stki是类型2,则算法使用dtki来查询EDX,生成加密多重映射EMMC,然后使用jtki来查询该EMMC。最后一个操作产生EMMR的行令牌对的元组t。对于每对令牌,Query查询EMMR,产生一对带有其坐标的加密行。Query使用每对坐标上的位置映射来恢复位置(α,β)和(α',β')。如果α=α',则Query进一步使用位置映射将每个密文放置在M中的加密行中。
在处理s令牌之后,Query如下处理y令牌(ytk1,...,ytkh)。首先开始于初始化1乘1矩阵VA。如图4B中的步骤5所示,如果对于某些属性a而言ytki具有形式(1,a),则设定VA=VA×ea
备选地,如果ytki=(0,ptki),则计算
<ct1,…,ctm,tb,crk>←∑MM.Get(EMMC,ptki)
并且针对所有j∈[m],设定M[αjj]:=ctj,其中(αjj)←Λt,m,s(tb,crk,j)。然后,Query设定ET:=VA×M(如图4B的步骤6所示),并且在消除包含至少一个空单元的所有列之后输出ET(如图4B的步骤7和8所示)。
示例Dec技术可以将秘密秘钥K和由服务器返回的加密表ET作为输入,并且可以简单地解密ET的每个单元。
为了便于说明,本文的SPX的示例讨论可能不是最高效的。例如,在实践中,可能没有必要在Query的步骤3中花费O(mt·∑i si)工作来初始化M,因为M可以在整个查询进程中被动态地构造。而且,由于M可能是稀疏的,因此计算领域的技术人员将理解,在不脱离本文讨论的技术的情况下,除了简单的二维数组之外的其他备选数据结构可能更有利。此外,例如,可以从ET修剪行(在Query的步骤6中),而在处理s令牌之后(以及在处理y令牌之前)紧接着删除M中的空行可能更有效,因为这可以减少在步骤6中叉积的尺寸。此外,尽管加密多重映射可以被存储在加密字典EDX中,但是加密多重映射也可以“通过引用”来完成,其中存储有指向实际的本地多重映射的指针,而不是(即,代替)存储实际的本地多重映射。
下面讨论示例构造的搜索和存储效率的分析。
关于搜索复杂性,当处理令牌时,在加密数据库EDB=(EMMR,EMMC,EMMV,EDX)上,
服务器侧搜索复杂性可以如下所述。
为了便于说明,假设所有表具有相同的行数m,服务器可以涉及用于每个虚拟投影的O(1)工作和用于每个真实投影的O(m·mt-1)工作。对于类型1的每个s令牌,可以涉及O(#DBa=a·mt-1)工作,其中s令牌的基础项是a=a。对于类型2的s令牌,可以涉及O(#DBa=a’·mt -1)工作,其中s令牌的基础项是a=a'。这可以与对plaintext(明文)关系数据库的SPC范式查询的搜索复杂性相竞争。然而,商业数据库可能不使用范式,因此可以通过利用查询优化技术来更快地执行查询。
关于存储复杂性的考虑,对于数据库DB=(T1,...,Tn),SPX可以产生四个加密多重映射EMMR、EMMC、EMMV和EDX。让s=∑i||Ti||C。为了便于说明,可以再次假设每个表有m行。此外,可以注意到,标准多重映射加密方案可以产生元组尺寸的总和的加密结构,该加密结构具有线性的存储开销。使用这种方案作为基础多重映射加密方案,EMMR和EMMC可以分别是O(∑r∈DB#r)和因为前者将DB中每行的坐标映射到其(加密的)行并且后者将列的坐标映射到其(加密的)列。由于EMMV将DB中的每个单元映射到包括相同值的行的令牌,因此可以涉及的存储。EDX可以将每列c∈DBT的坐标映射到加密多重映射EMMC,加密多重映射EMMC进而映射每对形式(c,c')以使得dom(c)=dom(c')映射到针对DBc=c'中的行的令牌的元组。因此,EDX可以具有尺寸
以上示例表达式可以取决于DB中具有相同域的列数而显著变化。在最坏情况的示例中,所有列可以具有共同域,并且表达式可以是形式#DBc=c'的s(s-1)个项的和。在最佳情况的示例中,没有列可以共用域并且EDX可以是空的。然而,在实践中,能够预期的是可能存在具有共同域的相对少量的列。
如下讨论的,示例构造可以相对于特定泄漏资料是自适应语义上安全的。例如,一些泄漏可能是“黑盒”,因为它可能来自基础方案,而泄漏的一部分可能是“非黑盒”,因为它可能直接来自SPX构造本身。在本文中对SPX泄漏的讨论中,考虑了其黑盒泄漏(即,当基础方案被保留为抽象的时)和其具体泄漏(即,当基础方案被实例化时)两者。为了实例化基础方案,可以考虑所有具有相同泄漏资料(即,如果重复查询并且在重复查询时揭示的搜索模式)的SSE构造的任意标准集(因为方案是自我揭示的,那么SSE方案的“访问模式泄漏”(其可以被定义为搜索响应)在本文中不被认为是泄漏)。特别地,这些SSE方案可以用于实例化∑MM和∑DX两者,因为前者可以是后者的概括。
SPX的设置泄漏可以捕捉对手在执行任何查询操作之前可以获知的内容。SPX的设置泄漏可以被表示为
其中分别表示∑DX和∑MM的设置泄漏。如果后者用标准加密多重映射构造实例化,则SPX的设置泄漏可以包括DB中的行数和列数。标准加密字典构造可能只泄漏它们存储的值的最大尺寸,因此可以隐藏EMMc的尺寸(上至最大尺寸)。
查询泄漏可能更复杂,并且例如可以被表示为:
其中每个单独的模式在下面进一步讨论。
针对该讨论的第一示例泄漏模式是叉积模式,其可以被定义为:
并且包括查询中所需的表的数目和尺寸以及虚拟属性的尺寸。
第二示例泄漏模式是投影模式,其可以被定义为:
PrP(DB,q)=(P(a1),…,P(ah))
其中
如果
如果
其中ci∈DBT是具有属性ai的列,并且AccP(ci)表示之前是否已经访问列ci以及何时访问了列ci。PrP捕捉服务器查询MMC时产生的泄漏,并且针对每个属性ai揭示该属性是真实的还是虚拟的。如果是真实的,PrP还揭示投影列中项目的尺寸以及之前是否已经访问该列以及何时访问该列。此外,PrP还揭示在投影属性的坐标上的∑MM查询泄漏。如果后者用任意标准多重映射加密方案实例化,那么这种泄漏可以揭示属性ai是否已出现在先前的查询中。如果属性是虚拟的,则只揭示该属性。
第三示例泄漏模式是选择模式,其可以被定义为:
SelP(DB,q)=(Z(a1,X1),…,Z(al,Xl))
如果ai=Xi是类型1,则Z(ai,Xi)可以被定义为
其中AccP(r)表示之前是否已经访问行r。Z(ai,Xi)可以捕捉服务器查询MMV时产生的泄漏,并且可以使用产生的行令牌以随后查询MMR。它揭示选择项是否为类型1,以及在常数Xi上的∑MM查询泄漏和属性ai的坐标。此外,它还泄漏中行的坐标上的∑MM查询泄漏以及该坐标之前是否已经访问过和何时访问过。如果利用标准构造实例化加密多重映射,则Z(ai,Xi)等于:之前是否已经查询过和何时查询过对(Xi,ai),以及过去是否已经访问过和何时访问过中的任意行
另一方面,如果ai=Xi是类型2,则Z(ai,Xi)被定义为
其中AccP(r)、AccP(r1)、AccP(r2)和表示之前是否已经访问过以及何时访问过r、r1、r2在这种情况下,Z(ai,Xi)捕捉服务器查询EDX时的泄漏以检索某个EMMa,EMMa进而查询以检索用于查询EMMR的行令牌。它揭示了选择项是否为类型2、ai坐标上的∑DX查询泄漏、上的∑MMsetup泄漏以及过去是否已经访问过和何时访问过此外,它揭示了ai和Xi的坐标上的∑MM查询泄漏,以及对于中的每对行(r1,r2)而言该坐标的∑MM查询泄漏和该坐标过去是否已经访问过或何时访问过。再一次,如果使用标准加密多重映射来实例化,这可以等于:选择的类型、在过去是否已经查询过和何时查询过ai、DB中与ai共享域的列数、在先前的查询中是否已经出现过和何时出现过对(ai,Xi)、以及对于中的每对行而言在过去是否已经访问过和何时访问过这些行。
如上面的讨论中所提到的,基于PPE的解决方案可以处理包括合取查询的大类别SQL查询。然而,为了支持合取查询,这些解决方案可能依赖于确定性加密。例如,为了处理对列c的类型1选择,它们可能揭示c的确定性加密(即,该列的每个元素在相同的密钥下被加密)。为了处理两列c1与c2之间的类型2选择,可以揭示(在相同的秘钥下的)这两列的确定性加密。进而,这可以为服务器提供整个列的频率信息。取决于设定,频率模式可能是不利的(参见,例如,Naveed等,同上)。
]相比之下,SPX可以显著减少泄漏。首先,可能不会泄漏在整个列或行上的任何频率信息。对于类型1选择,SPX可以仅泄漏关于选择的属性以及与该项匹配的行的信息。对于类型2选择,SPX可以仅泄漏关于选择的属性对(ai,Xi)以及与该项匹配的行的信息。这种泄漏可以只是查询中的属性和与之匹配的行的函数,而基于PPE的方案中的泄漏可以是整个列的函数。此外,在SPX的情况下,如果基础多重映射和字典方案用标准构造实例化,则所泄漏的关于属性和匹配行的信息可以是“重复”类型的信息,即,在过去是否已经出现过以及何时出现过该属性和匹配行。类似地,SPX中的投影操作可以仅泄漏关于投影中的属性和与之匹配的列的信息,以及所泄露的“重复”类型信息的信息。
如下面讨论的,相对于上面讨论的泄漏资料,可以证明SPX为自适应语义安全的。
定理6.1。如果∑DX自适应语义安全的且∑MM 自适应安全的,那么SPX是语义安全的。
证明。使SDX和SMM为由∑DX和∑MM的自适应安全而保证存在的模拟器,并且考虑如下工作的SPX模拟器S。给定S通过计算 来模拟EDB并且输出
EDB=(EMMR,EMMC,EMMV,EDX)。
如上面讨论的,SPX是响应隐藏的,因此S接收作为实验的输入。给定该输入,S可以模拟令牌
tk=(t,s,(ei)i∈[f],(ytki)i∈[h],(stki)i∈[l])
如下。S直接从XPP(DB,q)检索t和s。然后S采样并且针对所有i∈[f]计算其中|ai|也来自于XPP(DB,q)。
对于所有的i∈[h],如果
S设定
其中,如果之前没有已经访问过列则其中ctj是先前另外使用过的密文。另一方面,如果P(ai)=(virtual,ai),则设置ytki:=ai
那么,对于所有的i∈[l],其模拟stki如下。如果Z(ai)是类型1,S首先针对所有的来计算,
其中,如果没有访问过r则否则的话ctj是先前使用过的密文。然后可以计算令牌
另一方面,如果Z(ai)是类型2,则S可以通过计算以下开始
其中,如果之前没有访问过否则的话是先前使用过的结构。然后S可以针对所有的 来计算
以及
其中,如果没有访问过ctj和ct’j并且 否则的话ctj和ct’j是先前使用的密文。最终,S可以计算并且设定stki=(dtki,jtki)。
如下面进一步讨论的,对于概率多项式-时间对手 输出1的概率可忽略地接近输出1的概率。这可以使用以下游戏(games)的序列示出:
Game0:与实验基本相同。为了便于说明,Locψ可以被定义为ψ的类型2的项的左手侧属性的元组;即,在形式ai=xi的项中的ai
Game1:与Game0基本相同,除了EMMC的输出替代,并且对于范式查询q而言每个真实的y-令牌ytki被以下输出替代
Game2:与Game1基本相同,除了EMMV的输出替代,并且对于范式查询q而言每个类型1的s-令牌stki被以下输出替代
Game3:与Game2基本相同,除了EDX被的输出替代,并且对于范式查询q而言类型2的s-令牌stki=(dtki,jtki)中的每个字典令牌dtki被以下输出替代
针对l∈[#Locψ]的Game3+l:与Game2+l基本相同,除了的输出替代,并且对于ψ中使得ai=Locψ[l]的所有类型2的项ai=xi,类型2的s-令牌stki=(dtki,jtki)中的加入令牌jtki被以下输出替代
基本相同,除了EMMR 的输出替代,并且针对行r的每个行令牌rtkr被以下输出替代
其中
基本相同,除了消息m的每个SKE加密ct被替代。消息尺寸信息通过其泄漏可用于模拟器S。
基本相同,除了针对范式查询q、t和s的每个令牌tk被来自XPP(DB,q)的t和s替代。基本上与相同。
结论:针对所有PPT对手
|Pr[Game0=1]-Pr[Game1=1]|≤negl(k)。
如下面进一步讨论的,如果存在与结论矛盾的PPT对手则存在相对于任意PPT模拟器S'破坏∑MM的自适应语义安全性的PPT对手B。B通过使运行开始。当输出DB=(T1,...,Tn)时,B创建字典DX、列多重映射MMC、行多重映射MMR、值多重映射MMV和来自DB的一组多重映射例如,这可以通过执行SPX.Setup的步骤1至10来完成。B随后输出MMC。在从实验或实验接收到时,B向发送ERD,其中
其中(KD,EDX)←∑DX.Setup(lk,DX)以使得对于所有c∈DBT,DX[c]=EMMc,其中(Kc,MMc)←∑MM.Setup(lk,EMMc),{KR,EMMR)←∑MM.Setup(lk,MMR)并且(KV,EMMV)←∑MM.Setup(lk,MMV))。
每当输出范式查询其中ψ=a1=X1∧…∧al=Xl时,B做以下步骤。对于所有i∈[h],B将<tbl(ai),crk(ai)>作为其自身查询输出到并且接收然后将以下令牌发送到
其中t是查询表的数目,并且对于所有i∈[f], 对于所有i∈[l],如果ai=Xi是类型1,则stki=vtki以使得
否则,如果ai=Xi是类型2,则stki=(dtki,jtki)以使得 并且
在回答所有的查询之后,输出B返回的位作为其自身的输出。计算领域的技术人员将理解,也可以使用除“位”之外的其他值。
可以注意到,如果B在实验中被执行,则通过构造,的视图基本上是其在Game0中的视图。另一方面,如果B在 实验中被执行,则通过构造,的视图基本上是其在Game1中的视图。如上所讨论的,它遵循最初的假设,即
为不可忽视的,这是矛盾的。
结论。对于所有PPT对手
|Pr[Game1=1]-Pr[Game2=1]|≤negl(k)。
如下面进一步讨论的,如果存在与结论矛盾的PPT对手则存在相对于任意PPT模拟器S'破坏∑MM的自适应语义安全性的PPT对手B。B通过使运行开始。当输出DB=(T1,...,Tn)时,B从DB创建字典DX、列多重映射MMC、行多重映射MMR、值多重映射MMV和来自DB的一组多重映射例如,这可以通过执行SPX.Setup的步骤1至10来完成。B随后输出MMV。在从(k)实验或实验接收到时,B向发送ERD,其中
其中Setup(lk,DX)以使得对于所有c∈DBT,DX[c]=EMMc,其中(Kc,MMc)←∑MM。Setup(lk,EMMc)并且(KR,EMMR)←∑MM.Setup(lk,MMR)。
输出范式查询q时,B做以下步骤。对于所有使得ai=Xi是类型2的i∈[l],,B将<Xi,<tbl(ai),crk(ai)>>作为其自身查询输出到并且接收然后将以下令牌发送到
其中t是查询表的数目,并且对于所有i∈[f], 如果
给定AccP(ai),如果之前没有已经访问过列,则ctj等于否则的话则为先前使用的密文。另一方面,如果则ytki:=ai。对于所有i∈[l],如果ai=Xi是类型2,则stki=(dtki,jtki)以使得并且
在回答所有的查询之后,输出B返回的位作为其自身的输出。计算领域的技术人员将理解,也可以使用除“位”之外的其他值。
可以注意到,如果B在实验中被执行,则通过构造,的视图基本上是其在Game1中的视图。另一方面,如果B在 实验中被执行,则通过构造,的视图基本上是其在Game2中的视图。如上所述,它遵循最初的假设,即
为不可忽视的,这是矛盾的。
结论。对于所有PPT对手
|Pr[Game2=1]-Pr[Game3=1]|≤negl(k)。
如下面进一步讨论的,如果存在与结论矛盾的PPT对手则存在相对于任意PPT模拟器S'破坏∑DX的自适应语义安全性的PPT对手B。B通过使运行开始。当输出DB=(T1,...,Tn)时,B创建字典DX、列多重映射MMC、行多重映射MMR、值多重映射MMV和来自DB的一组多重映射B随后输出DX。在从实验或实验接收到EDX*时,B向发送ERD,其中
EDB=(EMMR,EMMC,EMMV,EDX*)
其中,以及(KR,EMMR)←∑MM.Setup(lk,MMR)。
每当输出范式查询q时,B做以下步骤。对于所有使得ai=Xi是类型2的i∈[l],B将<<tbl(ai),crk(ai)>>作为其自身查询输出到EDX*,并且接收然后将以下令牌发送到
其中t是查询表的数目,并且对于所有 如果
给定AccP(ai),如果之前没有访问过列,则ctj等于否则的话则为先前使用的密文。另一方面,如果则ytki:=ai。对于所有i∈[l],如果ai=Xi是类型1,则 其中 如果ai=Xi是类型2,则 以使得
在回答所有的查询之后,输出B返回的位作为其自身的输出。计算领域的技术人员将理解,也可以使用除“位”之外的其他值。
可以注意到,如果B在实验中被执行,则通过构造,的视图基本上是其在Game2中的视图。另一方面,如果B在 实验中被执行,则通过构造,的视图基本上是其在Game3中的视图。如上所述,其遵循最初的假设,即
为不可忽视的,这是矛盾的。
结论。对于所有l∈[#Locψ]、所有PPT对手
|Pr[Game2+l=1]-Pr[Game3+l=1]|≤negl(k)。
如下面进一步讨论的,如果存在与结论矛盾的PPT对手则存在相对于任意PPT模拟器S'破坏∑MM的自适应语义安全性的PPT对手B。B通过使运行开始。当输出DB=(T1,...,Tn)时,B创建字典DX、列多重映射MMC、行多重映射MMR、值多重映射MMV和来自DB的一组多重映射B随后输出在从实验或实验接收到发送ERD,其中
EDB=(EMMR,EMMC,EMMV,EDX)
其中 并且
(KR,EMMR)←∑MM.Setup(lk,MMR)。
每当输出范式查询q时,B做以下步骤。对于所有使得ai=Xi并且ai=Locψ[l]的i∈[l],B将<<tbl(Locψ[l]),crk(Locψ[l])>,<tbl(Xi),crk(Xi)>>作为其自身查询输出到并且接收然后将以下令牌发送到
其中t是查询表的数目,并且对于所有i∈[f], 如果
给定AccP(ai),如果之前没有访问过列,则ctj等于否则的话则为先前使用的密文。另一方面,如果则ytki:=ai。对于所有i∈[l],如果ai=Xi是类型1,则 并且对于 如果ai=Xi是类型2,则 等于:
1)如果z=l,则 并且
2)对于所有z<1, 其中是在生成时并且生成的地方捕捉的泄漏。因此,dtki可以等于或者先前模拟的一个dtk,并且
其中并且
3)对于所有 其中 或者先前生成的一个dtk,并且
在回答所有的查询之后,输出B返回的位作为其自身的输出。计算领域的技术人员将理解,也可以使用除“位”之外的其他值。
可以注意到,如果B在实验中被执行,则通过构造,的视图基本上是其在Game2+l中的视图。另一方面,如果B在实验中被执行,则通过构造,的视图基本上是其在Game3+l中的视图。如上所述,它遵循最初的假设,即
为不可忽视的,这是矛盾的。
结论。对于所有PPT对手
如下面进一步讨论的,如果存在与结论矛盾的PPT对手则存在相对于任意PPT模拟器S'破坏∑MM的自适应语义安全性的PPT对手B。B通过使运行开始。当输出DB=(T1,...,Tn)时,B创建字典DX、列多重映射MMC、行多重映射MMR、值多重映射MMV和来自DB的一组多重映射B随后输出MMR。在从 实验或实验接收到时,--B向发送ERD,其中
其中并且
每当输出范式查询q时,B做以下步骤。B将<tbl(r),rrk(r)>作为其自身查询输出到并且接收然后将以下令牌发送到
其中t是查询表的数目,并且对于所有 如果
给定AccP(ai),如果之前没有访问过列,则ctj等于否则的话则为先前使用的密文。另一方面,如果则ytki:=ai。对于所有i∈[l],如果ai=Xi是类型1,则 如果ai=Xi是类型2,则stki=(dtki,jtki)以使得 其中是在生成时并且生成的地方捕捉的泄漏。因此,dtki可以等于 或者先前模拟的一个dtk,并且
在回答所有的查询之后,输出B返回的位作为其自身的输出。计算领域的技术人员将理解,也可以使用除“位”之外的其他值。
可以注意到,如果B在实验中被执行,则通过构造,的视图基本上是其在中的视图。另一方面,如果B在实验中被执行,则通过构造,的视图基本上是其在中的视图。如上所述,它遵循最初的假设,即
为不可忽视的,这是矛盾的。
结论。对于所有PPT对手
如下面进一步讨论的,如果存在与结论矛盾的PPT对手则存在相对于任意PPT模拟器S'破坏SKE=(Gen,Enc,Dec)的自适应语义安全性的PPT对手B。B通过使运行开始。当输出DB=(T1,...,Tn)时,B创建字典DX、列多重映射MMC、行多重映射MMR、值多重映射MMV和来自DB的一组多重映射B随后输出针对所有单元的全部消息m。在从RealSKE,B(k)实验或IdealSKE,B,S’(k)实验接收到针对DB中所有单元的ct*时,B向发送ERD,其中
EDB=(EMMR,EMMC,EMMV,EDX),
其中 并且
每当输出查询χ时,B做以下步骤。对于所有i∈[f],B输出ai,并且接收然后B将以下令牌发送到
其中t是查询表的数目,如果
给定AccP(ai),如果之前没有访问过列,则ctj等于模拟的密文,否则的话则为先前使用的密文。另一方面,如果则ytki:=ai。对于所有i∈[l],如果ai=Xi是类型1,则 如果ai=Xi是类型2,则stki=(dtki,jtki)以使得 其中是在生成时并且生成的地方捕捉的泄漏。因此,dtki可以等于 或者为先前模拟的一个dtk,并且
其中,在以上两种情况下rtkr被表示为
其中,AccP(r)捕捉已经查询到r的时间和地点。因此,可以是新生成的,或由先前生成的而再次使用的。
在回答所有的查询之后,输出B返回的位作为其自身的输出。计算领域的技术人员将理解,也可以使用除“位”之外的其他值。
可以注意到,如果B在RealSKE,B(k)实验中被执行,则通过构造,的视图基本上是其在中的视图。另一方面,如果B在IdealSKE,B,S’(k)实验中被执行,则通过构造,的视图基本上是其在中的视图。如上所述,它遵循最初的假设,即
|Pr[RealSKE,B(k)=1]-Pr[IdealSKE,B,S’(k)=1]|
为不可忽视的,这是矛盾的。
结论。对于所有PPT对手
根据以上讨论,可以证明这些游戏中的两个游戏的视图基本上相同。
除了基本的Select-From-Where结构之外,SQL查询还可以包括用于后处理查询结果的附加子句。一些示例包括Group-by,Order-by以及包括Sum、Average、Median、Count、Mode、Max和Min的各种集合函数。此外,SQL查询可以用诸如extended queries(扩展查询)的附加项引用。尽管特定实施方式可能不能显式地处理扩展查询,但是附加子句可以例如在客户端处被执行。在结果表R是 的情况下,用SPX外包数据库能够仍然比在本地执行查询的计算成本更低。
Order-by子句根据指定属性以升序或降序的方式对结果表R中的行进行排序。这些查询可以是以下形式:
Select tables From attributes Where conditions Order-by attribute。
对客户端处的R排序可以在O(m log m)时间下完成,其中m=||R||r。可以注意到,客户端可以仅执行O(m)工作以对结果表进行解密,因此,渐近地说,对R排序可能似乎不是实际上有利的。然而,在实践中,可以对整数或字符串列执行Order-by操作,并且在后一种情况下,如果字符串较长,则该操作可能有些费时。然而,作为示例优化,客户端可以在设置阶段期间计算行的顺序,并且可以添加包括每行顺序的CPA安全加密的列。当客户端检索结果表R时,其可以随后解密该列并使用数字(numerical)排序技术对行排序(即,与词典排序技术相反)。
另一常见SQL子句是Group-by,其可用于通过指定的属性对结果表中的行分区。例如,Group-by可以与聚合函数(例如,Sum、Max等)一起使用。例如,这种查询可以表示为
Select attributes attributes From tables Where conditions Group-by attributes。
例如,可以在O(m)时间下在客户端处处理Group-by子句,其中m=||R||r
作为聚合的示例,可以利用聚合函数在SQL中处理在结果表的行上计算函数(例如,从雇员表计算薪水的总和)。例如,具有Sum函数的查询可以表示为:
Select Sum(attribute)From tables Where conditions。
服务器可以以自然方式通过扩展SPX来处理一些聚合。例如,为了处理Count,服务器可以简单地返回加密结果表ET中的行数。为了对给定属性a处理Sum,可以利用附加同态加密方案加密该列的单元并使服务器返回结果列的总和。例如,可以在客户端处理剩余的函数(例如,Max、Min、Median、Mode)。
计算领域的技术人员将理解,在不脱离本文的讨论的情况下,还可以使用其它指令或操作来实现这种(或类似的)功能。
II.示例操作环境
本文讨论的特征被提供作为示例实施例,该示例实施例可以不脱离本文讨论的情况下以计算领域的技术人员能够理解的许多不同方式实现。这些特征仅被解释为示例实施例特征,而不旨在被解释为仅限于那些详细描述。
图5示出了可以实现本文所讨论的主题的方面的合适的计算系统环境500的示例(例如,EDBMS)。计算系统环境500仅是合适的计算环境的一个示例,并且不旨在对本文讨论的主题的方面的使用范围或功能提出任何限制。也不应将计算环境500解释为对示例操作环境500中示出的任何一个组件或其组合具有任何依赖性或要求。
本文讨论的主题的方面可与许多其它通用或专用计算系统环境或配置一起操作。可适用于与本文描述的主题的方面的公知的计算系统、环境或配置的示例包括:个人计算机,服务器计算机-裸机或虚拟机-,手持或膝上型装置,多处理器系统,基于微控制器的系统,机顶盒、可编程和非可编程消费电子,网络PC,小型计算机,大型计算机,个人数字助理(PDA),游戏装置,打印机,包括机顶盒、媒体中心的家用电器或其它家用电器,汽车嵌入式或附接式计算装置,其它移动装置,包括蜂窝电话、无线电话和有线电话的电话装置,包括任何上述系统或装置的分布式计算环境等。虽然各种实施例可以限于一种或多种上述装置,但是除非另有说明,否则术语计算机旨在覆盖上述装置。
本文描述的主题的方面可以在由计算机执行的计算机可执行指令(诸如程序模块)的一般上下文中描述。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本文描述的主题的方面还可以在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理装置执行。在分布式计算环境中,程序模块可以位于包括存储器存储装置的本地和远程计算机存储介质中。
备选地或附加地,本文描述的功能可以至少部分地由一个或多个硬件逻辑组件执行。例如但不限于,可以使用的说明性类型的硬件逻辑组件包括:现场可编程门阵列(FPGA)、程序专用集成电路(ASIC)、程序专用标准产品(ASSP)、芯片系统(SOC)、复杂可编程逻辑装置(CPLD)等。
参照图5,用于实现本文讨论的主题的方面的示例系统包括以计算机510形式的通用计算装置。计算机可以包括能够执行指令的任何电子装置。计算机510的组件可以包括处理单元520、系统存储器530、以及将包括系统存储器的各种系统组件耦合到处理单元520的一个或多个系统总线(由系统总线521表示)。系统总线521可以是包括使用各种总线架构中的任意总线架构的存储器总线或存储器控制器、外围总线和本地总线的几种类型的总线结构中的任意总线结构。作为示例而非限制,这种架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线、也称为夹层总线的外围组件互连(PCI)、外围组件互连扩展(PCI-X)总线、高级图形端口(AGP)和高速PCI(PCIe)。
计算机510通常包括各种计算机可读介质。计算机可读介质可以是能够由计算机510访问的任何可用介质,并且包括易失性和非易失性介质、以及可移除和不可移除介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质(或“计算机可读存储介质”)包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括:RAM、ROM、EEPROM、固态硬盘、闪存或其它存储器技术、CD-ROM、数字通用光盘(DVD)、蓝光光盘(BD)或其它光盘存储(例如,通用串行总线(USB)驱动、硬盘驱动)、磁带盒、磁带、磁盘存储或其它磁存储装置、或者可以用于存储所需信息并且能够由计算机510访问的任何其它介质。“计算机存储介质”不包括“通信介质”。因此,如本文所使用的,术语“计算机可读存储介质”本身不是信号,也不是任何类型的传播信号。
“通信介质”通常以诸如载波或其它输送机制的经调制数据信号的形式实施计算机可读指令、数据结构、程序模块或其它数据,并且包括任意信息传送介质。术语“经调制数据信号”表示以对信号中的信息编码的方式设定或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、RF、红外和其它无线介质的无线介质。上述任意组合也应被包括在计算机可读介质的范围内。
系统存储器530可以包括以诸如只读存储器(ROM)531和随机存取存储器(RAM)532的易失性和/或非易失性存储器形式的计算机存储介质。非易失性存储器可以替换ROM 531和/或RAM 532中的一些或全部。例如,可以使用忆阻存储器、相变存储器(PCM)或一些其它类型的非易失性存储器来代替ROM 531和/或RAM 532,或者可以在ROM 531和/或RAM 532之外还使用忆阻存储器、相变存储器(PCM)或一些其它类型的非易失性存储器。
包含诸如在启动期间有助于在计算机510内的元件之间传递信息的基本例程的基本输入/输出系统533(BIOS)通常被存储在ROM 531中。RAM 532通常包含立即可访问处理单元520和/或当前正在由处理单元520操作的数据和/或程序模块。作为示例而非限制,图5示出了操作系统534、应用程序535、其它程序模块536和程序数据537。
计算机510还可以包括其它可移除/不可移除、易失性/非易失性计算机存储介质。仅作为示例,图5示出了从不可移除非易失性磁介质读取或写入不可移除非易失性磁介质的硬盘驱动器541、从可移除非易失性磁盘552读取或写入可移除非易失性磁盘552的磁盘驱动器551、以及从可移除非易失性光盘556(诸如CD ROM、DVD、BD)或其它光学介质读取或者写入可移除非易失性光盘556(诸如CD ROM、DVD、BD)或其它光学介质的光盘驱动器555。
在一个实施方式中,可以使用忆阻存储器、相变存储器或一些其它类型的非易失性存储器代替硬盘驱动器541,或者除硬盘驱动器541之外还可以使用忆阻存储器、相变存储器或一些其它类型的非易失性存储器。
可以在示例操作环境中使用的其它可移除/不可移除、易失性/非易失性计算机存储介质(或“计算机可读存储介质”)包括:磁带盒、闪存卡和其它固态存储装置、数字碟片、其它光盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器541可以通过接口140被连接到系统总线521,磁盘驱动器551和光盘驱动器555可以通过用于可移除非易失性存储器的接口(诸如接口550)而被连接到系统总线521。
在上面讨论并在图5中示出,驱动器及其相关计算机存储介质为计算机510提供计算机可读指令、数据结构、程序模块和其它数据的存储。在图5中,例如,硬盘驱动541被示出为存储操作系统544、应用程序545、其它程序模块546和程序数据547。注意到,这些组件可以与操作系统534、应用程序535、其它程序模块536和程序数据537相同或不同。操作系统544、应用程序545、其它程序模块546和程序数据547在本文给出不同的附图标记,以说明它们可能是不同的。
用户可以通过诸如键盘562和指点装置561(通常指鼠标、轨迹球或触摸板)的输入装置将命令和信息键入到计算机510中。其它输入装置(未示出)可以包括麦克风(例如,用于输入语音或其它音频)、操纵杆、游戏板、卫星天线、扫描仪、触敏屏幕、书写板、相机(例如,用于输入手势或其它视觉输入)等。这些和其它输入装置通常通过被耦合到系统总线的用户输入接口560而被连接到处理单元520,但是也可以通过诸如并行端口、游戏端口或通用串行总线(USB)的其它接口和总线结构而被连接。
通过使用上述输入装置中的一个或多个,可以建立自然用户界面(NUT)。NUI可以依赖于话语识别、触摸和手写笔识别、屏幕上和屏幕附近两者的手势识别、空中手势、头部和眼睛追踪、语音和话语、视觉、触摸、手势、机器智能等。为了与用户交互而可以采用的一些示例性NUI技术包括:触敏显示器、语音和话语识别、意图和目标理解、使用深度相机(诸如立体相机系统、红外相机系统、RGB相机系统和其组合)的运动手势检测、使用加速度计/陀螺仪的运动手势检测、面部识别、3D显示、头部、眼睛和凝视追踪、沉浸式增强现实和虚拟现实系统、以及使用电场感应电极(EEG和相关方法)来感测大脑活动的技术。
监控器591或其它类型的显示装置也经由诸如视频接口590的接口被连接到系统总线521。除了监控器之外,计算机还可以包括其它外围输出装置、诸如扬声器597和打印机596,其可以通过输出外围接口595连接。
计算机510可以使用与一个或多个远程计算机(诸如远程计算机580)的逻辑连接在联网环境中操作。远程计算机580可以是个人计算机、服务器、路由器、网络PC、对等装置或其它公共网络节点,并且通常包括上面相对于计算机510描述的许多元件或所有元件,尽管图5中仅示出了存储器存储装置581。图5中描绘的逻辑连接包括局域网(LAN)571和广域网(WAN)573,但也可以包括电话网络、近场网络和其它网络。这种网络环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。
当在LAN网络环境中使用时,计算机510通过网络接口或适配器570被连接到LAN571。当在WAN网络环境中使用时,计算机510可以包括调制解调器572或用于建立通过诸如互联网的WAN 573的通信的其它装置。可以是内部的或外部的调制解调器572能够通过用户输入接口560或其它适当的机制被连接到系统总线521。在联网环境中,相对于计算机510或其一部分描绘的程序模块可以被存储在远程存储器存储装置中。作为示例而非限制,图5示出了远程应用程序(RAP)585驻留在存储器装置581上。将理解的是,所示的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其它装置。
在上下文中,“处理器”可以包括被配置为处理与计算系统相关联的指令的单个处理器或多个处理器。因此,处理器可以包括并行和/或以分布式方式执行指令的一个或多个处理器。例如,图5中所示的系统可以包括一个或多个处理器(例如,硬件处理器)。
例如,系统可以包括至少一个硬件装置处理器,以及存储用于由该装置处理器执行的可执行指令的计算机可读存储介质,以用于实现本文所讨论的EDBMS。
例如,系统可以包括至少一个硬件装置处理器,以及存储可执行指令的计算机可读存储介质,该可执行指令在被执行时使得至少一个硬件装置处理器中的一个或多个硬件装置处理器控制关系数据库中的查询的安全处理。
可以使用结构化加密代替使用性质保持加密(PPE)、基于使用合取查询形式的结构化查询语言(SQL)查询而生成的加密令牌,来生成安全查询,该加密令牌包括元数值和维度值,元数值指示在查询的叉积部分中包括的表的基数,维度值指示在叉积中包括的表的维度。
可以将安全查询提交给托管加密数据库的装置,加密数据库包括与关系数据库相对应的加密多重映射和基于结构化加密的加密字典。可以接收对安全查询的加密响应。
例如,可以通过生成与关系数据库相对应的加密多重映射和使用结构化加密代替使用性质保持加密(PPE)的加密字典,而在客户端装置处生成加密数据库,加密多重映射包括按行多重映射和按列多重映射,按行多重映射存储关系数据库的加密按行表示,按列多重映射存储关系数据库的加密按列表示。
例如,加密数据库可以从客户端装置传输到托管加密数据库的装置。
例如,加密多重映射可以包括按值多重映射,按值多重映射存储多个单元值到相应令牌的加密映射,该相应令牌用于关系数据库中分别存储相同的相应值的相应行。
例如,可以通过生成字典而在客户端装置处生成加密数据库,字典识别标签与对应于相应标签的相应值之间的对应性。
例如,字典的加密版本可以从客户端装置传输到托管加密数据库的装置。
例如,可以通过生成与关系数据库相对应的加密多重映射和使用结构化加密代替使用性质保持加密(PPE)的加密字典而在客户端装置处生成加密数据库,其中加密多重映射包括一个或多个倒排索引。
例如,加密数据库可以从客户端装置传输到被包括在托管加密数据库的装置中的服务器。
例如,可以通过生成与关系数据库相对应的加密多重映射和使用结构化加密代替使用性质保持加密(PPE)的加密字典而在客户端装置处生成加密数据库。加密多重映射可以包括按值多重映射,按值多重映射存储加密形式的关系数据库的按值表示,按值表示表明单元值到关系数据库中的行的映射,该行存储与相应单元相同的相应值。
加密数据库可以从客户端装置传输到服务器,该服务器包括在托管加密数据库的装置中。
例如,可以使用结构化加密代替使用性质保持加密(PPE)、代替使用全同态加密(FHE)并且代替使用信任硬件,基于使用选择、投影和笛卡尔乘积(SPC)范式的结构化查询语言(SQL)查询而生成的加密令牌,来生成安全查询。
例如,可以从客户端装置上托管的应用获得SQL查询。
例如,可以解密所接收的对SQL查询的加密响应。
例如,解密的接收响应可以被提供给应用。
例如,接收对SQL查询的加密响应包括接收加密表。
例如,解密所接收的加密表中的相应单元以生成解密查询结果。
在另一方面中,通过以下方式来控制关系数据库中的查询的安全处理:从客户端装置接收安全查询,安全查询具有使用合取查询形式的结构化查询语言(SQL)查询而生成的加密令牌的格式,加密令牌包括元数值和维度值,元数值指示在查询的叉积部分中包括的表的基数,维度值指示在叉积中包括的表的维度。
可以使用加密数据库来生成对安全查询的加密响应,加密数据库包括:加密字典和与关系数据库相对应的加密多重映射,加密字典基于结构化加密、使用结构化加密代替使用性质保持加密(PPE)并且代替使用全同态加密(FHE)。加密响应可以被发送到客户端装置。
可以在服务器装置处从客户端装置接收加密数据库。
例如,将加密响应发送到客户端装置可以包括:将加密表发送到客户端装置。
例如,生成对安全查询的加密响应可以包括:在不解密安全查询并且不解密加密数据库的情况下,生成加密响应。
例如,加密多重映射可以包括按行多重映射,按行多重映射存储加密形式的关系数据库的按行表示。
例如,加密多重映射可以包括按列多重映射,按列多重映射存储加密形式的关系数据库的按列表示。
例如,加密多重映射可以包括按值多重映射,按值多重映射存储加密形式的关系数据库的按值表示,按值表示表明单元值到关系数据库中的行的映射,该行存储与相应单元相同的相应值。
在另一方面中,系统可以包括至少一个服务器,至少一个服务器包括至少一个硬件装置处理器和加密关系数据库,加密关系数据库包括:加密字典和与在客户端装置处托管的关系数据库相对应的加密多重映射,加密字典基于结构化加密、使用结构化加密代替使用性质保持加密(PPE)并且代替使用全同态加密(FHE)。
安全控制器可以包括计算机可读存储介质,计算机可读存储介质存储可执行指令,可执行性指令在被执行时使得至少一个硬件装置处理器中的一个或多个硬件装置处理器控制加密关系数据库中的查询的安全处理。
安全控制器可以包括查询控制器,查询控制器从客户端装置接收使用合取查询形式的结构化查询语言(SQL)查询来生成的具有加密令牌的格式的安全查询,并将对安全查询的加密响应发送到客户端装置。
查询控制器可以包括搜索引擎,搜索引擎通过在不解密安全查询并且不解密加密多重映射的情况下发起对加密关系数据库的搜索,来生成对安全查询的加密响应。
例如,加密多重映射可以包括按值多重映射,按值多重映射存储加密形式的关系数据库的按值表示,按值表示表明单元值到关系数据库中的行的映射,该行存储与相应单元相同的相应值。
例如,加密多重映射可以包括按值多重映射,按值多重映射存储多个单元值到相应令牌的加密映射,该相应令牌用于关系数据库中分别存储相同的相应值的相应行。
例如,所接收的安全查询可以包括:使用结构化加密代替使用性质保持加密(PPE)并且代替使用全同态加密(FHE),使用选择、投影和笛卡尔乘积(SPC)范式的结构化查询语言(SQL)查询而生成的加密令牌。
计算领域的技术人员将理解可以使用许多不同的技术来实现本文讨论的特征。
III.流程描述
本文讨论的特征被提供作为在不脱离本文讨论的情况下以计算领域的技术人员可以理解的许多不同方式实现的示例实施例。这些特征仅被解释为示例实施例特征,而不旨在被解释为仅限于那些详细描述。
图6A-6D是示出根据示例实施例的图5的系统的示例操作的流程图。如图6A的示例所示,控制关系数据库中的查询的安全处理(602)。使用结构化加密代替使用性质保持加密(PPE)、基于使用合取查询形式的结构化查询语言(SQL)查询而生成加密令牌,来生成安全查询(604)。
加密令牌包括元数值和维度值,元数值指示在查询的叉积部分中包括的表的基数,维度值指示在叉积中包括的表的维度(606)。
将安全查询提交到托管加密数据库的装置,加密数据库包括与关系数据库相对应的加密多重映射和基于结构化加密的加密字典(608)。接收对安全查询的加密响应(610)。
例如,在图6B中,可以通过生成与关系数据库相对应的加密多重映射和使用结构化加密代替使用性质保持加密(PPE)的加密字典,而在客户端装置处生成加密数据库,加密多重映射包括按行多重映射和按列多重映射,按行多重映射存储关系数据库的加密按行表示,按列多重映射存储关系数据库的加密按列表示(612)。
例如,加密数据库可以从客户端装置传输到托管加密数据库的装置(614)。
例如,加密多重映射可以包括按值多重映射,按值多重映射存储多个单元值到用于关系数据库中分别存储相同相应值的相应行的相应令牌的加密映射(616)。
例如,可以通过生成字典而在客户端装置处生成加密数据库,字典识别标签与对应于相应标签的相应值之间的对应性(618)。
例如,字典的加密版本可以从客户端装置传输到托管加密数据库的装置(620)。
例如,在图6C中,可以通过生成与关系数据库相对应的加密多重映射和使用结构化加密代替使用性质保持加密(PPE)的加密字典,而在客户端装置处生成加密数据库,其中加密多重映射包括一个或多个倒排索引(622)。
例如,加密数据库可以从客户端装置传输到服务器,该服务器包括在托管加密数据库的装置中(624)。
例如,可以通过生成与关系数据库相对应的加密多重映射和使用结构化加密代替使用性质保持加密(PPE)的加密字典,而在客户端装置处生成加密数据库,其中加密多重映射包括按值多重映射,按值多重映射存储加密形式的关系数据库的按值表示,按值表示表明单元值到关系数据库中的行的映射,该行存储与相应单元相同的相应值(626)。
例如,加密数据库可以从客户端装置传输到服务器,该服务器包括在托管加密数据库的装置中(628)。
例如,在图6D中,可以使用结构化加密代替使用性质保持加密(PPE)、代替使用全同态加密(FHE)并且代替使用受信任硬件,基于使用选择、投影和笛卡尔乘积(SPC)范式的结构化查询语言(SQL)查询而生成加密令牌,来生成安全查询(630)。
例如,可以从客户端装置上托管的应用获得SQL查询。
例如,可以解密所接收的对SQL查询的加密响应。
例如,可以将解密的接收响应提供给应用。
例如,接收对SQL查询的加密响应可以包括接收加密表(638)。
例如,可以解密所接收的加密表中的相应单元以生成解密查询结果(640)。
图7A-7C是示出根据示例实施例的图5的系统的示例操作的流程图。如图7A的示例所示,控制加密关系数据库中的查询的安全处理(702)。从客户端装置接收使用合取查询形式的结构化查询语言(SQL)查询而生成的具有加密令牌的格式的安全查询(704)。
加密令牌包括元数值和维度值,元数值指示在查询的叉积部分中包括的表的基数,维度值指示在叉积中包括的表的维度(706)。
使用加密数据库生成对安全查询的加密响应,加密数据库包括:与关系数据库相对应的加密多重映射,以及使用结构化加密代替使用性质保持加密(PPE)并且代替使用全同态加密(FHE)的、基于结构化加密的加密字典(708)。将加密响应发送到客户端装置(710)。
例如,在图7B中,可以在服务器装置处从客户端装置接收加密数据库(712)。
例如,将加密响应发送到客户端装置可以包括:将加密表发送到客户端装置(714)。
例如,生成对安全查询的加密响应可以包括:在不解密安全查询并且不解密加密数据库的情况下,生成加密响应(716)。
例如,加密多重映射可以包括按行多重映射,按行多重映射存储加密形式的关系数据库的按行表示(718)。
例如,在图7C中,加密多重映射可以包括按列多重映射,按列多重映射存储加密形式的关系数据库的按列表示(720)。
例如,加密多重映射可以包括按值多重映射,按值多重映射存储加密形式的关系数据库的按值表示,按值表示表明单元值到关系数据库中的行的映射,该行存储与相应单元相同的相应值(722)。
图8A-8B是示出根据示例实施例的图5的系统的示例操作的流程图。如图8A的示例所示,控制加密关系数据库中的查询的安全处理(802)。从客户端装置接收使用合取查询形式的结构化查询语言(SQL)查询而生成的具有加密令牌的格式的安全查询(804)。将对安全查询的加密响应发送到客户端装置(806)。
通过在不解密安全查询并且不解密加密多重映射的情况下发起对加密关系数据库的搜索,来生成对安全查询的加密响应(808)。
加密关系数据库包括:加密字典和与在客户端装置处托管的关系数据库相对应的加密多重映射,加密字典基于结构化加密、使用结构化加密代替使用性质保持加密(PPE)并且代替使用全同态加密(FHE)(810)。
例如,在图8B中,加密多重映射可以包括按值多重映射,按值多重映射存储加密形式的关系数据库的按值表示,按值表示表明单元值到关系数据库中的行的映射,该行存储与相应单元相同的相应值(812)。
例如,加密多重映射可以包括按值多重映射,按值多重映射存储多个单元值到相应令牌的加密映射,该相应令牌用于关系数据库中分别存储相同的相应值的相应行(814)。
例如,所接收的安全查询可以包括:使用结构化加密代替使用性质保持加密(PPE)并且代替使用全同态加密(FHE),使用选择、投影和笛卡尔乘积(SPC)范式的结构化查询语言(SQL)查询而生成的加密令牌(816)。
计算领域的技术人员将理解可以在不脱离本文讨论的情况下使用许多其它类型的技术来控制关系数据库中的安全性。
本文讨论的特征被提供作为能够在不脱离本文讨论的情况下以计算领域的技术人员可以理解的许多不同方式实现的示例实施例。这些特征仅被解释为示例实施例特征,而不旨在被解释为仅限于那些详细描述。
在上下文中,“处理器”可以包括被配置为处理与计算系统相关联的指令的单个处理器或多个处理器。因此,处理器可以包括并行和/或以分布式方式执行指令的一个或多个处理器。
例如,如本文所讨论的,系统500可以包括一个或多个处理器。例如,系统500可以包括存储可由一个或多个处理器执行的指令的至少一个有形计算机可读存储介质(例如,制造的物品),可执行指令被配置为使至少一个处理器执行与被包括在系统500中的各个示例组件相关联的操作。例如,一个或多个处理器可以被包括在至少一个处理设备中。计算领域的技术人员将理解,在不脱离本文讨论的情况下,可以根据这种讨论来配置处理器和处理设备的许多配置。
在上下文中,“组件”或“模块”可以表示能够被配置为执行特定操作的指令或硬件。这些指令可以被包括在指令的组件组内,或者可以分布在多于一个组上。例如,与第一组件的操作相关联的一些指令可以被包括在与第二组件(或更多组件)的操作相关联的一组指令中。例如,本文的“组件”可以指能够由可以位于单个实体中的指令实现的、或者能够由可以在多个实体上扩展或分布的指令实现的、并且可以与和其它组件相关联的指令和/或硬件重叠的指令实现的功能的类型。
在本上下文中,“存储器”可以包括被配置为存储数据和/或指令的单个存储器装置或多个存储器装置。此外,存储器可以跨越多个分布式存储装置。此外,存储器可以被分布在多个处理器中。
计算领域的技术人员将理解,可以存在许多方式来实现本文所讨论的特征。
多年来,客户隐私和机密性一直是计算环境中持续考虑的问题。因此,用于维护数据库的示例技术可以使用用户输入和/或由用户提供的数据,该用户已经经由具有关联应用或与这种技术相关联的服务的一个或多个订阅协议(例如,“服务条款”(TOS)协议)提供了许可。例如,用户可能同意将其输入/数据传输并存储在装置上,尽管能够明确地表示(例如,经由用户接受的协议)每一方可以控制传输和/或存储如何发生、以及可以维持的存储的级别或持续时间(如果有的话)。此外,可以例如通过散列实际用户信息来混淆能够被用于识别用户使用的装置的标识符。应该理解的是,可以根据任何相关辖区的隐私法律和法规获得任何用户输入/数据。
本文描述的各种技术的实施方式可以实现在数字电子电路、在计算机硬件、固件、软件或其组合(例如,配置为执行指令以执行各种功能的设备)中。
实施方式可以被实现为在信号(例如,诸如纯传播信号的纯信号)中实施的计算机程序。如下所述,这种实施方式在本文中将表示为经由“计算机可读传输介质”实施,该“计算机可读传输介质”在本文中不被视为如下面所讨论的“计算机可读存储介质”或“计算机可读存储装置”。
备选地,可以经由机器可用或机器可读存储装置(例如,诸如通用串行总线(USB)存储装置的磁性或数字介质、磁带、硬盘驱动、光盘(CD)、数字视频盘(DVD)等)来实现,机器可用或机器可读存储装置存储可执行指令(例如,计算机程序),以用于通过计算设备(例如,数据处理设备)的执行、或者控制计算设备(例如,数据处理设备)的操作,计算设备例如为可编程处理器、专用处理器或装置、计算机或多个计算机。这种实施方式在本文中可以表示为经由“计算机可读存储介质”或“计算机可读存储装置”实现,并且因此不同于纯信号、诸如纯传播信号(并且因此在本文中不被视为如上所述的“计算机可读传输介质”)的实施方式。因此,如本文所使用的,对“计算机可读存储介质”或“计算机可读存储装置”的引用明确地排除对作为信号(例如,传播信号)本身的介质和装置的引用。
诸如上述(一个或多个)计算机程序的计算机程序可以以任意形式的编程语言(包括编译语言、解释语言或机器语言)写入,并且可以以任意形式(包括作为独立程序或作为适用于计算环境中的模块、组件、子例程或其它单元)部署。计算机程序可以被有形地实施为机器可用或机器可读存储装置(例如,计算机可读介质)上的可执行代码(例如,可执行指令)。可以部署能够实现上述技术的计算机程序,以在一个计算机上执行、或在一个站点的多个计算机上执行、或在跨多个站点分布并通过通信网络互连的多个计算机上执行。
方法步骤可以通过一个或多个可编程处理器执行,该可编程处理器执行计算机程序以通过对输入数据进行操作并生成输出来执行功能。一个或多个可编程处理器可以并行执行指令,和/或可以被布置在分布式配置中以用于分布式处理。本文讨论的示例功能也可以由一个或多个硬件逻辑组件执行,并且设备可以至少部分地实现为一个或多个硬件逻辑组件。例如但不限于,能够使用的说明性类型的硬件逻辑组件可以包括:现场可编程门阵列(FPGA)、程序专用集成电路(ASIC)、程序专用标准产品(ASSP)、芯片系统(SOC)、复杂可编程逻辑装置(CPLD)等。
作为示例,适用于执行计算机程序的处理器包括通用微处理器和专用微处理器二者,以及任何种类的数字计算机的任意一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或只读存储器和随机存取存储器两者接收指令和数据。计算机的元件可包括用于执行指令至少一个处理器和用于存储指令和数据的一个或多个存储器装置。通常,计算机还可以包括用于存储数据的一个或多个大容量存储装置、或者被可操作地耦合以从用于存储数据的一个或多个大容量存储装置接收数据或将数据传输到用于存储数据的一个或多个大容量存储装置或上述接收和传输二者,大容量存储装置例如为磁、磁光盘或光盘。适用于实施计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,其包括例如:半导体存储器装置,例如EPROM、EEPROM和闪存装置;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,实施方式可以在具有用于向用户显示信息的显示装置以及用户可以将输入提供给计算机的键盘和指点装置的计算机上实现,显示装置例如为阴极射线管(CRT)、液晶显示器(LCD)或等离子监控器,指点装置例如为鼠标或轨迹球。也可以使用其它种类的装置以提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈。例如,可以经由任何形式的感觉输出来提供输出,感觉输出包括(但不限于)视觉输出(例如,视觉手势、视频输出)、音频输出(例如,语音、装置声音)、触觉输出(例如,触摸、装置运动)、温度、气味等。
此外,可以以任何形式接收来自用户的输入,包括声学、话语或触觉输入。例如,可以经由任何形式的感觉输入而从用户接收输入,包括(但不限于)视觉输入(例如,手势、视频输入)、音频输入(例如,语音、装置声音)、触觉输入(例如,触摸、装置运动)、温度、气味等。
此外,自然用户界面(NUI)可以用于与用户交互。在本上下文中,“NUI”可以指使用户能够以“自然”的方式与装置交互,而不受诸如鼠标、键盘、遥控等输入装置施加的人为约束的任何接口技术。
NUI技术的示例可以包括依赖于话语识别、触摸和手写笔识别、在屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛追踪、语音和话语、视觉、触摸、手势和机器智能的那些技术。示例NUI技术可以包括但不限于:触敏显示器、语音和话语识别、意图和目标理解、使用深度相机(例如,立体相机系统、红外相机系统、RGB(红色、绿色、蓝色)相机系统及其组合)的运动手势检测、使用加速度计/陀螺仪的运动手势检测、面部识别、3D显示、头部、眼睛和凝视追踪、沉浸式增强现实和虚拟现实系统(所有这些都可以提供更自然的界面)、以及使用电场感测电极(例如,脑电图(EEG)及相关技术)感测大脑活动的技术。
实施方式可以在包括后端组件、或包括中间件组件、或包括前端组件、或包括这种后端、中间件或前端组件的任意组合的计算系统中实现,后端组件例如为数据服务器,中间件组件例如为应用服务器,前端组件例如为具有用户可以通过其与实施方式交互的图形用户界面或Web浏览器的客户端计算机。组件可以通过任何形式或介质的数字数据通信互连,例如通信网络。通信网络的示例包括局域网(LAN)和广域网(WAN)、例如因特网。
尽管已经用结构特征和/或方法动作专用的语言描述了本主题,但是应该理解的是,所附权利要求中限定的主题不必受限于上述具体特征或动作。相反,公开上述具体特征和动作作为实现权利要求的示例形式。虽然已经如本文所述示出了描绘的实施方式的特定特征,但是本领域技术人员现在将可以进行许多修改、替换、改变和等同。因此,应该理解的是,所附权利要求旨在覆盖落入实施例范围内的所有这些修改和变化。

Claims (15)

1.一种系统,包括:
至少一个硬件装置处理器;以及
计算机可读存储介质,其存储可执行指令,所述可执行指令在被执行时使得所述至少一个硬件装置处理器中的一个或多个硬件装置处理器:
通过以下方式来控制关系数据库中的查询的安全处理:
使用结构化加密代替使用性质保持加密(PPE)、基于使用合取查询形式的结构化查询语言(SQL)查询而生成加密令牌,来生成安全查询,所述加密令牌包括元数值和维度值,所述元数值指示所述查询的叉积部分中包括的表的基数,所述维度值指示所述叉积中包括的所述表的维度;以及
将所述安全查询提交到托管加密数据库的装置,所述加密数据库包括与所述关系数据库相对应的加密多重映射和基于结构化加密的加密字典;以及
接收对所述安全查询的加密响应。
2.根据权利要求1所述的系统,其中:
控制所述关系数据库中的查询的所述安全处理包括:
通过生成与所述关系数据库相对应的所述加密多重映射和使用结构化加密代替使用性质保持加密(PPE)的所述加密字典,来在客户端装置处生成所述加密数据库,所述加密多重映射包括按行多重映射和按列多重映射,所述按行多重映射存储所述关系数据库的加密按行表示,所述按列多重映射存储所述关系数据库的加密按列表示;以及
将所述加密数据库从所述客户端装置传输到托管所述加密数据库的所述装置。
3.根据权利要求2所述的系统,其中:
所述加密多重映射包括按值多重映射,所述按值多重映射存储多个单元值到相应令牌的加密映射,所述相应令牌用于所述关系数据库的分别存储相同的相应值的相应行。
4.根据权利要求1所述的系统,其中:
控制所述关系数据库中的查询的所述安全处理包括:
通过生成字典来在客户端装置处生成所述加密数据库,所述字典识别标签与对应于相应标签的相应值之间的对应性;以及
将所述字典的加密版本从所述客户端装置传输到托管所述加密数据库的所述装置。
5.根据权利要求1所述的系统,其中:
控制所述关系数据库中的查询的所述安全处理包括:
通过生成与所述关系数据库相对应的所述加密多重映射和使用结构化加密代替使用性质保持加密(PPE)的所述加密字典,来在客户端装置处生成所述加密数据库,其中所述加密多重映射包括一个或多个倒排索引;以及
将所述加密数据库从所述客户端装置传输到服务器,所述服务器包括在托管所述加密数据库的所述装置中。
6.根据权利要求1所述的系统,其中:
控制所述关系数据库中的查询的所述安全处理包括:
通过生成与所述关系数据库相对应的所述加密多重映射和使用结构化加密代替使用性质保持加密(PPE)的所述加密字典,来在客户端装置处生成所述加密数据库,其中所述加密多重映射包括按值多重映射,所述按值多重映射存储加密形式的所述关系数据库的按值表示,所述按值表示表明单元值到所述关系数据库中的行的映射,所述行存储与相应单元相同的相应值;以及
将所述加密数据库从所述客户端装置传输到服务器,所述服务器包括在托管所述加密数据库的所述装置中。
7.根据权利要求1所述的系统,其中:
控制所述关系数据库中的查询的所述安全处理包括:
使用结构化加密代替使用性质保持加密(PPE)、代替使用全同态加密(FHE)并且代替使用受信任硬件,基于使用选择、投影和笛卡尔乘积(SPC)范式的结构化查询语言(SQL)查询而生成所述加密令牌,来生成所述安全查询。
8.根据权利要求1所述的系统,其中:
控制所述关系数据库中的查询的所述安全处理包括:
从客户端装置上托管的应用获得所述SQL查询;
解密所接收的对所述SQL查询的加密响应;以及
将解密的接收响应提供给所述应用。
9.根据权利要求1所述的系统,其中:
接收对所述SQL查询的所述加密响应包括接收加密表,其中控制所述关系数据库中的查询的所述安全处理包括:
解密所接收的加密表中的相应单元以生成解密查询结果。
10.一种方法,包括:
通过以下来控制关系数据库中的查询的安全处理:
从客户端装置接收安全查询,所述安全查询具有使用合取查询形式的结构化查询语言(SQL)查询而生成的加密令牌的格式,所述加密令牌包括元数值和维度值,所述元数值指示在所述查询的叉积部分中包括的表的基数,所述维度值指示在所述叉积中包括的所述表的维度;
使用加密数据库生成对所述安全查询的加密响应,所述加密数据库包括加密字典和与所述关系数据库相对应的加密多重映射,所述加密字典基于结构化加密、使用结构化加密代替使用性质保持加密(PPE)并且代替使用全同态加密(FHE);以及
将所述加密响应发送到所述客户端装置。
11.根据权利要求10所述的方法,进一步包括:
在服务器装置处从所述客户端装置接收所述加密数据库。
12.根据权利要求10所述的方法,其中:
将所述加密响应发送到所述客户端装置包括:将加密表发送到所述客户端装置。
13.根据权利要求10所述的方法,其中:
生成对所述安全查询的所述加密响应包括:在不解密所述安全查询并且不解密所述加密数据库的情况下,生成所述加密响应。
14.根据权利要求10所述的方法,其中:
所述加密多重映射包括按值多重映射,所述按值多重映射存储加密形式的所述关系数据库的按值表示,所述按值表示表明单元值到所述关系数据库中的行的映射,所述行存储与相应单元相同的相应值。
15.一种系统,包括:
至少一个服务器,包括:
至少一个硬件装置处理器;
加密关系数据库,包括加密字典和与在客户端装置处托管的关系数据库相对应的加密多重映射,所述加密字典基于结构化加密、使用结构化加密代替使用性质保持加密(PPE)并且代替使用全同态加密(FHE);以及
安全控制器,包括计算机可读存储介质,所述计算机可读存储介质存储可执行指令,所述可执行指令在被执行时使得所述至少一个硬件装置处理器中的一个或多个硬件装置处理器控制所述加密关系数据库中的查询的安全处理,所述安全控制器包括:
查询控制器,所述查询控制器从所述客户端装置接收安全查询,所述安全查询具有使用合取查询形式的结构化查询语言(SQL)查询而生成的加密令牌的格式,并且所述查询控制器将对所述安全查询的加密响应发送到所述客户端装置,所述查询控制器包括:
搜索引擎,所述搜索引擎通过在不解密所述安全查询并且不解密所述加密多重映射的情况下发起对所述加密关系数据库的搜索,来生成对所述安全查询的所述加密响应。
CN201780011666.9A 2016-02-17 2017-02-09 安全控制系统和方法 Active CN108701198B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/045,251 2016-02-17
US15/045,251 US10255454B2 (en) 2016-02-17 2016-02-17 Controlling security in relational databases
PCT/US2017/017085 WO2017142769A1 (en) 2016-02-17 2017-02-09 Searchable encryption of conjunctive sql statements

Publications (2)

Publication Number Publication Date
CN108701198A true CN108701198A (zh) 2018-10-23
CN108701198B CN108701198B (zh) 2021-10-26

Family

ID=58098693

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780011666.9A Active CN108701198B (zh) 2016-02-17 2017-02-09 安全控制系统和方法

Country Status (4)

Country Link
US (1) US10255454B2 (zh)
EP (1) EP3417397B1 (zh)
CN (1) CN108701198B (zh)
WO (1) WO2017142769A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782648A (zh) * 2020-06-23 2020-10-16 中国平安人寿保险股份有限公司 结构化数据处理方法、装置、计算机设备及存储介质
CN111797097A (zh) * 2020-06-30 2020-10-20 杭州密数科技有限公司 一种基于软硬件结合的方式实现安全范围查询的方法
CN111797425A (zh) * 2019-04-02 2020-10-20 Sap欧洲公司 利用字典编码的安全数据库
CN113722754A (zh) * 2021-08-25 2021-11-30 上海阵方科技有限公司 隐私可执行文件的生成方法、装置和服务器

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10554384B2 (en) 2016-03-17 2020-02-04 Microsoft Technology Licensing, Llc Aggregation of encrypted data
US11405192B2 (en) * 2016-08-24 2022-08-02 Robert Bosch Gmbh Searchable symmetric encryption system and method of processing inverted index
US10095880B2 (en) * 2016-09-01 2018-10-09 International Business Machines Corporation Performing secure queries from a higher security domain of information in a lower security domain
US10187199B2 (en) * 2016-09-09 2019-01-22 Microsoft Technology Licensing, Llc Aggregation based on splayed data
US10693627B2 (en) 2017-01-20 2020-06-23 Enveil, Inc. Systems and methods for efficient fixed-base multi-precision exponentiation
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US20180212753A1 (en) 2017-01-20 2018-07-26 Enveil, Inc. End-To-End Secure Operations Using a Query Vector
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
US10903976B2 (en) 2017-01-20 2021-01-26 Enveil, Inc. End-to-end secure operations using a query matrix
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
US20200151356A1 (en) * 2017-08-11 2020-05-14 Duality Technologies, Inc. System and method for fast and efficient searching of encrypted ciphertexts
US10601580B2 (en) 2017-11-20 2020-03-24 International Business Machines Corporation Secure order preserving string compression
US10769295B2 (en) * 2018-01-18 2020-09-08 Sap Se Join operations on encrypted database tables
US11232224B2 (en) * 2018-03-15 2022-01-25 Servicenow, Inc. Database encryption
US10958415B2 (en) * 2018-07-11 2021-03-23 Informatica Llc Method, apparatus, and computer-readable medium for searching polymorphically encrypted data
US10902133B2 (en) 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
US11080280B2 (en) 2018-11-02 2021-08-03 International Business Machines Corporation Enable merge join on encrypted data
US10817262B2 (en) 2018-11-08 2020-10-27 Enveil, Inc. Reduced and pipelined hardware architecture for Montgomery Modular Multiplication
US11290264B2 (en) * 2019-11-06 2022-03-29 Robert Bosch Gmbh Secure and efficient multi-server oblivious random access machine in a malicious execution environment
KR20220009643A (ko) 2020-07-16 2022-01-25 삼성전자주식회사 스토리지 컨트롤러, 이를 포함하는 클라이언트 및 서버, 및 이의 동작 방법
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods
CN112749412B (zh) * 2021-01-18 2024-01-23 中国民航信息网络股份有限公司 旅客身份信息的处理方法、系统、设备和存储介质
CN113111357B (zh) * 2021-03-09 2022-02-22 深圳市教育信息技术中心(深圳市教育装备中心) 字段加密方法、装置、设备和介质
US20220344012A1 (en) * 2021-04-27 2022-10-27 Synerio Technologies, Inc. System and Method of Electronic Health Record Permissioning and Monetization
US20220368533A1 (en) * 2021-05-16 2022-11-17 CodeNotary Inc. System and method to cryptographically validate rich query results
US11501013B1 (en) 2021-07-09 2022-11-15 Sotero, Inc. Autonomous machine learning methods for detecting and thwarting malicious database access
US20230085239A1 (en) * 2021-09-13 2023-03-16 International Business Machines Corporation Querying fully homomorphic encryption encrypted databases using client-side preprocessing or post-processing

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050004924A1 (en) * 2003-04-29 2005-01-06 Adrian Baldwin Control of access to databases
CN1601429A (zh) * 1995-02-13 2005-03-30 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US20060041533A1 (en) * 2004-05-20 2006-02-23 Andrew Koyfman Encrypted table indexes and searching encrypted tables
US20060277413A1 (en) * 2005-06-01 2006-12-07 Drews Dennis T Data security
US20070073731A1 (en) * 2005-09-23 2007-03-29 Reimer Clay A Systems and methods for remote storage of electronic data
US7266699B2 (en) * 2001-08-30 2007-09-04 Application Security, Inc. Cryptographic infrastructure for encrypting a database
CN101512511A (zh) * 2005-09-07 2009-08-19 百利游戏有限公司 系统博弈
CN104363236A (zh) * 2014-11-21 2015-02-18 西安邮电大学 一种自动化漏洞验证的方法
CN104657673A (zh) * 2013-11-22 2015-05-27 Sap欧洲公司 平均复杂度理想安全的保序加密
CN105284052A (zh) * 2012-11-26 2016-01-27 思杰系统有限公司 用于基于字典的压缩的系统和方法
CN105279269A (zh) * 2015-10-27 2016-01-27 中通服公众信息产业股份有限公司 一种支持表自由关联的sql生成方法和系统
US9852306B2 (en) * 2013-08-05 2017-12-26 International Business Machines Corporation Conjunctive search in encrypted data

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7325129B1 (en) 2000-11-16 2008-01-29 Protegrity Corporation Method for altering encryption status in a relational database in a continuous process
US7418098B1 (en) 2000-11-27 2008-08-26 Protegrity Corporation Data type preserving encryption
US7353387B2 (en) 2001-03-08 2008-04-01 International Business Machines Corporation Method and system for integrating encryption functionality into a database system
US7269729B2 (en) 2001-12-28 2007-09-11 International Business Machines Corporation Relational database management encryption system
US7500111B2 (en) 2003-05-30 2009-03-03 International Business Machines Corporation Querying encrypted data in a relational database system
US7797342B2 (en) 2004-09-03 2010-09-14 Sybase, Inc. Database system providing encrypted column support for applications
US7827403B2 (en) 2005-04-13 2010-11-02 Oracle International Corporation Method and apparatus for encrypting and decrypting data in a database table
US8165305B2 (en) 2008-12-08 2012-04-24 Harrison Corporation Enhanced relational database security through encryption of table indices
US8938067B2 (en) 2009-10-30 2015-01-20 Voltage Security, Inc. Format preserving encryption methods for data strings with constraints
US9059851B2 (en) 2010-02-23 2015-06-16 Salesforce.Com, Inc. Method and computer program product for order preserving symbol based encryption
US8429421B2 (en) * 2010-12-17 2013-04-23 Microsoft Corporation Server-side encrypted pattern matching
US8806223B2 (en) 2011-05-03 2014-08-12 Douglas Norman Crowe System and method for management of encrypted data
US8949625B2 (en) 2012-01-30 2015-02-03 Voltage Security, Inc. Systems for structured encryption using embedded information in data strings

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1601429A (zh) * 1995-02-13 2005-03-30 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US7266699B2 (en) * 2001-08-30 2007-09-04 Application Security, Inc. Cryptographic infrastructure for encrypting a database
US20050004924A1 (en) * 2003-04-29 2005-01-06 Adrian Baldwin Control of access to databases
US20060041533A1 (en) * 2004-05-20 2006-02-23 Andrew Koyfman Encrypted table indexes and searching encrypted tables
US20060277413A1 (en) * 2005-06-01 2006-12-07 Drews Dennis T Data security
CN101512511A (zh) * 2005-09-07 2009-08-19 百利游戏有限公司 系统博弈
US20070073731A1 (en) * 2005-09-23 2007-03-29 Reimer Clay A Systems and methods for remote storage of electronic data
CN105284052A (zh) * 2012-11-26 2016-01-27 思杰系统有限公司 用于基于字典的压缩的系统和方法
US9852306B2 (en) * 2013-08-05 2017-12-26 International Business Machines Corporation Conjunctive search in encrypted data
CN104657673A (zh) * 2013-11-22 2015-05-27 Sap欧洲公司 平均复杂度理想安全的保序加密
CN104657673B (zh) * 2013-11-22 2020-02-07 Sap欧洲公司 计算机实现的方法、计算机系统及计算机可读存储介质
CN104363236A (zh) * 2014-11-21 2015-02-18 西安邮电大学 一种自动化漏洞验证的方法
CN105279269A (zh) * 2015-10-27 2016-01-27 中通服公众信息产业股份有限公司 一种支持表自由关联的sql生成方法和系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111797425A (zh) * 2019-04-02 2020-10-20 Sap欧洲公司 利用字典编码的安全数据库
CN111797425B (zh) * 2019-04-02 2024-04-19 Sap欧洲公司 利用字典编码的安全数据库
CN111782648A (zh) * 2020-06-23 2020-10-16 中国平安人寿保险股份有限公司 结构化数据处理方法、装置、计算机设备及存储介质
CN111782648B (zh) * 2020-06-23 2023-08-18 中国平安人寿保险股份有限公司 结构化数据处理方法、装置、计算机设备及存储介质
CN111797097A (zh) * 2020-06-30 2020-10-20 杭州密数科技有限公司 一种基于软硬件结合的方式实现安全范围查询的方法
CN111797097B (zh) * 2020-06-30 2024-02-27 杭州密数科技有限公司 一种基于软硬件结合的方式实现安全范围查询的方法
CN113722754A (zh) * 2021-08-25 2021-11-30 上海阵方科技有限公司 隐私可执行文件的生成方法、装置和服务器

Also Published As

Publication number Publication date
EP3417397B1 (en) 2022-12-07
EP3417397A1 (en) 2018-12-26
CN108701198B (zh) 2021-10-26
WO2017142769A1 (en) 2017-08-24
US10255454B2 (en) 2019-04-09
US20170235969A1 (en) 2017-08-17

Similar Documents

Publication Publication Date Title
CN108701198A (zh) 合取sql语句的可搜索加密
US10489604B2 (en) Searchable encryption processing system and searchable encryption processing method
US9787647B2 (en) Secure computer evaluation of decision trees
CN110110163A (zh) 安全子字符串搜索以过滤加密数据
US9852306B2 (en) Conjunctive search in encrypted data
US9742556B2 (en) Comparison and search operations of encrypted data
Liu et al. Intelligent and secure content-based image retrieval for mobile users
US10691754B1 (en) STAGS: secure, tunable, and accountable generic search in databases
KR20150052131A (ko) 블룸 필터를 숨기는 콘텐츠에 의한 안전한 개인 데이터베이스 쿼링
US9729525B1 (en) Secure data analytics
US8769302B2 (en) Encrypting data and characterization data that describes valid contents of a column
US10984130B2 (en) Efficiently querying databases while providing differential privacy
Kim et al. Efficient privacy-preserving fingerprint-based authentication system using fully homomorphic encryption
WO2016168027A1 (en) Customized trusted computer for secure data processing and storage
Hu et al. Quantum image encryption scheme based on 2d s ine 2-l ogistic chaotic map
CN108170753A (zh) 一种共有云中Key-Value数据库加密与安全查询的方法
Leeser et al. Accelerating large garbled circuits on an FPGA-enabled cloud
Lam et al. Gpu-based private information retrieval for on-device machine learning inference
KR102123435B1 (ko) 멀티 클라이언트 환경에서 동치 질의를 지원하는 암호화 방법 및 이를 이용한 장치
Nita et al. Advances to Homomorphic and Searchable Encryption
Yu et al. A compressible image encryption method based on nondegenerate hyperchaotic system and its implementation on ZYNQ
Geng Enhancing Relation Database Security With Shuffling
Yang et al. An efficient update algorithm for mutable order-preserving encryption
Fugkeaw et al. PPAC-CDW: A Privacy-Preserving Access Control Scheme with Fast OLAP Query and Efficient Revocation for Cloud Data Warehouse
Elkawkagy et al. Elevating Big Data Privacy: Innovative Strategies and Challenges in Data Abundance

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
GR01 Patent grant
GR01 Patent grant