CN101512525A - 加密的数据搜索 - Google Patents

加密的数据搜索 Download PDF

Info

Publication number
CN101512525A
CN101512525A CNA2007800328508A CN200780032850A CN101512525A CN 101512525 A CN101512525 A CN 101512525A CN A2007800328508 A CNA2007800328508 A CN A2007800328508A CN 200780032850 A CN200780032850 A CN 200780032850A CN 101512525 A CN101512525 A CN 101512525A
Authority
CN
China
Prior art keywords
data
item
plaintext
index
index structure
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
CNA2007800328508A
Other languages
English (en)
Other versions
CN101512525B (zh
Inventor
E·D·克里斯托弗
L·B·克里斯托弗
T·杜塔
R·加西亚
S·L·胡苏
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 Corp
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 Corp filed Critical Microsoft Corp
Publication of CN101512525A publication Critical patent/CN101512525A/zh
Application granted granted Critical
Publication of CN101512525B publication Critical patent/CN101512525B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/6245Protecting personal data, e.g. for financial or medical purposes
    • 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
    • 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/606Protecting data by securing the transmission between two devices or processes
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Abstract

可基于所需明文数据项和密钥,对于请求者透明地确定索引值。可使用该索引值来访问索引结构中的条目以获得包括非确定性地加密的密文项的对应的数据库条目。在另一实施例中,可访问数据库的索引结构。索引结构的项的位置可基于对应的明文项。有关索引结构中的对应的明文项的引用可被加密,而该索引结构中的其他信息可不被加密。索引结构的一部分可被加载到存储器中并且可对有关明文项之一的加密引用中的至少一个进行解密。可使用解密的引用来访问来自数据库的对应的非确定性地加密的数据项。

Description

加密的数据搜索
背景
公司使用数据库系统来存储和搜索其业务的各方面中所使用的数据。这些数据可包括几百万条记录之多,这些记录中的至少某些是公司希望保密的,诸如,例如顾客信息等。这些信息对于可能具有恶意目的的其他人而言可能是有价值的。如果一个公司的对手能够获得这些私人信息,则该对手可能对该公司、其顾客或两者造成问题。
用于保护数据库中的有价值的信息并且符合隐私规章或政策的一种常见方法是加密。然而,对数据库中的加密数据的使用引发了其他问题,诸如,例如如何准许现有应用程序对该数据的授权访问以及如何在不对所有数据进行解密和执行线性搜索的情况下找到该数据的特定项。
现有数据库系统通过使用可被称为确定性加密的技术解决了上述问题。在这些数据库系统中,明文项在使用相同的加密密钥时始终会被加密成相同的密文。确定性加密的示例包括以电子码本(ECB)模式使用分组密码或使用常数初始化向量(IV)。因为确定性加密在使用给定密钥时始终将相同的明文加密成相同的密文,所以数据模式可能是可识别的,从而导致信息泄漏。这在要加密的数据太大以至于无法适合可能是8个或16个字节长度的单个块(取决于使用哪一分组密码算法)时尤其成问题。
概述
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。
以下所讨论的实施例涉及其中对非确定性地加密的数据执行搜索的数据库系统。
在一个实施例中,对与数据库的加密列中的非确定性地加密的密文项相对应的数据项的搜索可通过使用对应于该数据库的加密列的索引结构来执行。可基于数据项和密钥,对于请求者透明地计算码。该码可被用作对该索引结构的索引,该索引结构可具有根据基于对应数据项和密钥的相应的码来组织的条目。在某些实施例中,索引结构的每一条目都可包括相应的码和用于访问数据库的行的数据,该数据库的行包括该数据库的加密列中的对应的非确定性地加密的密文项。
在另一实施例中,对与数据库的加密列中的非确定性地加密的密文项相对应的所需数据项的搜索可通过访问对应于该数据库的加密列的索引结构来执行。索引结构的条目可根据对应于该数据库的加密列中的非确定性地加密的密文项的明文数据项来组织。在该索引结构中,有关对应的明文数据项的引用可被加密,而该索引结构中的其他信息可以不被加密。该搜索可通过将该索引结构的至少一部分加载到存储器中,访问该索引结构的条目并且对该索引结构的条目的引用中的至少一个进行解密来执行。可使用该至少一个解密的引用来访问数据库的行,其包括该数据库的加密列中的相应的非确定性地加密的密文项。
附图
为了描述能够获得上述和其它优点和特征的方式,以下将描述更为具体的描述并通过参考附图中示出的各具体实施例来呈现。可以理解,这些附图仅描述各典型实施例,从而不被认为是对其范围的限制,将通过使用附图用附加特征和细节来描述和说明各个实现。
图1示出了根据本发明的主题的示例性操作环境。
图2是可用于实现图1的处理设备102、图1的处理设备104或这两个处理设备的示例性处理设备的功能框图。
图3A-3C示出了可在根据本发明的主题的各实施例中采用的示例性索引结构。
图4是示出可根据图3A-3C的示例性索引结构来执行的方法的流程图。
图5示出了可在根据本发明的主题的另一实施例中采用的示例性索引结构。
图6是示出可根据图5的示例性索引结构来执行的方法的流程图。
图7是示出可在根据本发明的主题的第三实施例中执行的方法的流程图。
详细描述
以下详细描述各实施例。尽管讨论各个具体实现,但应当理解,这仅是出于说明的目的。相关领域技术人员将认识到,可以使用其它组件和配置而不背离本发明的主题的精神和范围。
示例性操作环境
图1示出了用于根据本发明的主题的实施例的示例性操作环境100。操作环境100可包括处理设备102、处理设备104和网络106。
处理设备102可以是,例如服务器或能够执行数据库系统的其他处理设备。处理设备104可以是个人计算机(PC)或能够执行应用程序并经由网络106与处理设备102进行通信的其他处理设备。
网络106可以是有线或无线网络,并可包括经由有线或无线手段连接的多个设备。网络104可包括仅一个网络或多个不同的网络,其中某些可以是不同类型的网络。
在操作环境100中,处理设备104可执行一应用程序,其经由网络106来访问处理设备102的数据库中的信息。该应用程序可创建、删除、读取或修改处理设备102的数据库中的数据。
图1示出了一示例性操作环境。其他操作环境或操作环境100的变型可以与根据本发明的主题的其他实施例一起使用。例如,图1将处理设备102和处理设备104示为单独的设备。然而,处理设备102和104在一个实施例中可被组合在单个处理设备中。在这一实施例中,操作环境可能不包括网络106。在另一实施例中,由处理设备102执行的功能或服务可以分布在可经由诸如,例如网络106等网络来连接的多个处理设备上。
示例性处理设备
图2是示出可用于实现处理设备102、处理设备104或这两个设备的示例性处理设备200的功能框图。处理设备200可以包括总线210、处理器220、存储器230、只读存储器(ROM)240、存储设备250、输入设备260、输出设备270和通信接口280。总线210可以准许处理设备200的各组件之间的通信。在其中处理设备200用于在单个处理设备中实现处理设备102和处理设备104两者的实施例中,通信接口280可能不作为处理设备200的组件中的一个来包括。
处理器220可以包括解释和执行指令的至少一个常规处理器或微处理器。存储器230可以是随机存取存储器(RAM)或存储供处理器220执行的信息和指令的另一种类型的动态存储设备。存储器230还可以存储在处理器220执行指令期间使用的临时变量或其它中间信息。ROM 240可以包括常规ROM设备或为处理器220存储静态信息和指令的另一种类型的静态存储设备。存储设备250可以包括用于存储数据和/或指令的任何类型的介质。当处理设备200用于实现处理设备102时,存储设备250可包括数据库系统的一个或多个数据库。
输入设备260可以包括准许用户向处理设备200输入信息的一个或多个常规机制,诸如例如,键盘、鼠标、或其它输入设备。输出设备270可以包括向用户输出信息的一个或多个常规机制,包括显示器、打印机、或其它输出设备。通信接口280可以包括使处理设备200能够与其它设备或网络进行通信的任何收发器类机制。在一实施例中,通信接口280可以包括到网络106的接口。
处理设备200可以响应于处理器220执行诸如,例如存储器230或其它介质等计算机可读介质中所包含的指令序列来执行这些功能。这些指令可从诸如存储设备250等另一计算机可读介质或经由通信接口280从单独的设备读入存储器230中。
概览
在一典型的数据库系统中,数据可被视作存储在表中。表的行可对应于文件中的记录。某些数据库系统可准许加密存储在表的列中的数据。这些数据库系统可准许搜索加密列中的数据,只要该数据是确定性地加密的。即,可执行对表中具有对应于该数据库的加密列中的确定性地加密的密文的特定明文值的行的搜索。然而,如上所述,确定性加密始终将明文项加密成相同的相应密文项。因此,数据模式可能是可识别的,从而导致信息泄漏。
诸如,例如以具有随机初始化向量的密码块链接(CBC)模式使用分组密码等非确定性加密方法,或其他非确定性加密方法可将相同的明文数据项加密成不同的密文数据项。例如,根据以具有随机初始化向量的CBC模式的对分组密码的使用的非确定性加密可通过在加密当前块之前将当前明文块与前一个密文块进行异或(XOR)来加密每一明文块。由此,密文数据项的值可不仅基于相应的明文数据项和密钥,而且还基于其他数据,诸如,例如先前加密的数据块或随机初始化向量。
根据本发明的主题的各实施例涉及其中可对数据库的加密列中的非确定性地加密的数据执行搜索的数据库系统。在一个实施例中,码可基于所需明文数据项和密钥来计算。该码可以是消息认证码(MAC)、散列消息认证码(HMAC)或其他码。该码可被用作对于索引结构的索引,该索引结构可具有根据基于对应的数据项和密钥的相应的码来组织的条目。
在一个实现中,索引结构可以是B树或其他索引结构,其可用于搜索数据库中具有对应于该数据库的加密列中的加密数据的特定明文数据项的一个或多个行。该索引结构的每一条目都可包括一索引值,其对应于基于对应的明文数据项和密钥来计算的码,以及用于访问数据库中包括该数据库的加密列中的对应的非确定性地加密的密文项的行的数据。
在另一实现中,索引结构可包括根据对应的散列值来分配给各个项的散列桶。散列消息认证码可基于相应的明文数据项和密钥来计算。散列值可通过对所计算的散列消息认证码求散列来产生。散列桶中的每一个项都可包括用于获得包括对应于相应的明文数据项的非确定性地加密的数据项的数据库条目的信息。
在其他实施例中,可访问数据库的非确定性地加密的列的索引结构。索引结构的每一条目都可根据对应于数据库的加密列中的非确定性地加密的密文项的明文数据项来组织。索引结构的每一条目都可包括关于对应的明文数据项的一个或多个引用。关于对应的明文数据项的一个或多个引用可被加密,而该索引结构中的其他信息可以不被加密。当执行搜索时,索引结构中的至少一部分可被加载到存储器中并且可访问对应的索引结构的条目中的一个。索引结构的条目之一的一个或多个加密的引用可被解密并用于访问包括该数据库的加密列中的对应的非确定性地加密的密文项的行。
在某些实施例中,非确定性加密和解密可使用对称密钥来执行。即,可使用密钥来非确定性地加密数据项并且可使用相同的密钥来解密所加密的数据项。
在其他实施例中,非确定性加密和解密可使用非对称密钥来执行。即,可使用公钥来非确定性地加密数据项并且可使用私钥来解密该数据。
示例性方法
数据库系统通常使用某种类型的索引方案以便快速搜索存储在数据库的列中的数据以访问特定记录或行。一种公知的索引方案包括使用B树,但在其他实施例中也可使用其他索引方案。在一个实施例中,被称为二元组(duplet)的新数据类型可以与数据库系统的索引方案一起使用。二元组可包括成对的数据项。例如,二元组可包括基于对应于存储在数据库的加密列中的非确定性地加密的密文项的明文项的码,以及非确定性地加密的密文,其可等价于存储在该数据库的加密列中的非确定性地加密的密文项。非确定性地加密的密文被称为E值。
当数据库系统在该数据库中插入或更新数据时,该数据库系统可保持二元组的两个部分在单个原子操作中同步。即,在某些实施例中,数据库系统可能无法写入二元组的一部分而不写入该二元组的另一部分。
在根据本发明的主题的各实施例中,基于明文项的码可以是消息认证码(MAC)或其他码。在一个实现中,MAC可以是散列消息认证码(HMAC),其是使用明文项和密钥来计算的单向散列。密钥可等价于用于形成E值的密钥、可由用于形成E值的密钥保护的第二密钥、或完全独立的密钥。
图3A示出了一示例性B树,其可在根据本发明的主题的各实施例中用作索引结构。该示例性B树可包括索引节点302、312、320、326、328、330、332、334、336、338、340和342。每一个索引节点都可包括一个或多个条目。不是叶节点的索引节点可包括到其他索引节点的一个或多个链接。例如,索引节点302可包括多个条目并且还可包括到诸如索引节点312、320、326和328等其他索引节点的链接。索引节点312可包括多个条目并且还可包括到诸如索引节点330、332和334等在该示例中可能是叶节点的其他索引节点的链接。索引节点320可包括至少一个条目以及到在该示例中可能是叶节点的索引节点336和338的链接。索引节点326可包括至少一个条目以及到在该示例中可能是叶节点的索引节点340的链接。索引节点328可包括至少一个条目以及到在该示例中可能是叶节点的索引节点342的链接。
图3B示出了根据本发明的主题的图3A的示例性索引节点302、312和320的更详细的视图。在该示例性B树索引结构中,索引节点中的每一条目都可包括一个二元组。然而,二元组在其他实施例中可与其他索引结构一起使用。如图3B所示,每一个索引节点都可包括一个或多个项并且该一个或多个项中的每一个都可包括一个二元组。例如,索引节点302可包括第一项,其具有包括索引值和E值hdfyjd的二元组,其中该索引值可以是诸如,例如33567等码,该码可以是基于第一明文项的MAC或HMAC,而该E值对应于由密钥k1加密的第一明文项;第二项,其具有包括索引值和E值olhdrs的二元组,其中该索引值可以是诸如,例如58957等码,该码可以是基于第二明文项的MAC或HMAC,而该E值对应于由密钥k1加密的第二明文项;以及第三项,其具有包括索引值和E值thdksim的二元组,其中该索引值可以是诸如,例如97460等码,该码可以是基于第三明文项的MAC或HMAC,而该E值对应于由密钥k1加密的第三明文项。如从图3B可以看出,索引节点312可包括两个条目。索引节点312的第一条目可包括具有基于第四明文项的索引值16485和对应于由密钥k1加密的第四明文项的E值ifjtrslkm的二元组。索引节点312的第二条目可包括具有基于第五明文项的索引值20945和对应于由密钥k1加密的第五明文项的E值eswgh的二元组。索引节点320可包括一个条目,其包括一个二元组。该二元组可包括基于第六明文项的索引值46789和对应于由密钥k1加密的第六明文项的E值dfthvc。
索引节点302可包括链接304,其可以是到索引节点312的链接,其中索引节点312具有带有小于索引节点302的索引值33567的对应索引值的条目;链接306,其可以是到索引节点320的链接,其中索引节点320具有带有大于索引节点302的索引值33567且小于索引值58957的对应索引值的条目;链接308,其可将索引节点302链接到索引节点326,其中索引节点326具有带有大于索引节点302的索引值58957且小于索引值97460的相应索引值的一个或多个条目;以及链接310,其可将索引节点302链接到索引节点328,其中索引节点328包括具有大于索引节点302的索引值97460的相应索引值的一个或多个条目。
此外,索引节点312可包括到索引节点330的链接314,其中索引节点330可包括具有小于索引节点312的索引值16485的索引值的一个或多个条目;到索引节点332的链接316,其中索引节点332可包括具有大于索引节点312的索引值16485且小于索引值20945的索引值的一个或多个条目;以及到索引节点334的链接318,其中索引节点334可包括具有大于索引节点312的索引值20945的索引值的一个或多个条目。索引节点320可包括到索引节点336的链接322,其中索引节点336可包括具有小于索引节点320的索引值46789的索引值的一个或多个条目;以及到索引节点338的链接324,其中索引节点338可包括具有大于索引节点320的索引值46789的索引值的一个或多个条目。
每一个索引节点条目都可包括指示对应的明文数据项的数据类型的信息(未示出),并且可包括对数据库的加密列中的对应的非确定性地加密的密文的引用或指针(未示出)。此外,每一个索引节点都可包括与图3B的示例性索引结构所示的不同数量的项。例如,索引节点302、312或320可具有被包括在各自索引节点中的与图3B所示的不同数量的项。
图3A和3B的索引结构是示例性索引结构。虽然图3B示出了包括索引值和E值的示例性索引结构的每一项,但在其他实施例中,索引结构的每一项都可包括索引值,而对应的E值驻留在单独的数据结构中。例如,图3C的示例性索引节点302′类似于图3B的索引节点302。然而,索引节点302′的每一个项都可包括二元组的第一条目,其在该示例中是索引值;以及对数据结构360中所包括的对应的E值的引用或指针,其中数据结构360可以是表、数组或其他数据结构。尽管数据结构360示出对应于索引节点302′的E值在数据结构360中的连续位置中,但这些E值可被安排在数据结构360中不连续或不相连的位置中。
在根据本发明的主题的各实施例中,诸如,例如图3A-3C的索引结构等索引结构可由处理设备102通过将一个项添加到索引节点或通过添加包括新项的新索引节点来更新,以使得对应于该索引结构中的新项的链接能够以图3A-3C所示的方式来执行。即,添加到索引结构中的节点的每一个新项(不是叶节点)都可具有指向包括具有小于所添加的项的索引值的相应索引值的一个或多个项的索引节点的链接,以及指向包括具有大于所添加的项的索引值的相应索引值的一个或多个项的索引节点的第二链接。此外,当一新索引节点被添加到索引结构时,处理设备102可将该索引结构的现有链接中的至少一个更新为指向该新索引节点。处理设备102可添加到索引结构的每一个新项都可包括一相应的索引值以及或者对应的E值或者对对应E值的引用。当对对应E值的引用被存储在索引结构的项中时,该对应E值可被存储在单独的数据结构中,诸如,例如表、数组或其他数据结构。
图4是示出在根据本发明的主题的各实施例中用于使用诸如,例如图3A-3C的示例性索引结构等索引结构来搜索数据库中的非确定性地加密的数据的示例性过程的流程图。首先,处理设备102可接收对可能被包括在处理设备102的数据库中的所需数据项的请求(动作402)。该请求可来自诸如,例如处理设备102的用户或应用程序等请求者,或者来自诸如,例如另一处理设备的用户或应用程序等请求者,该另一处理设备可以是诸如,例如可经由诸如,例如网络106等网络来与处理设备102进行通信的处理设备104。该请求可以是搜索请求或包括找出所需数据项的其他请求并且可包括所需数据项的明文形式。给定所需明文数据项,处理设备102就可对于请求者透明地计算索引值,其可以是诸如,例如MAC或HMAC等基于所需明文数据项和密钥的码(动作404)。处理设备102然后可访问并搜索数据库的索引结构以试图定位对应于所需明文数据项的数据(动作406)。如果索引结构例如是B树,则处理设备102可检查该B树的索引节点中的二元组的索引值以遍历该B树来试图定位所需数据。
接着,处理设备102可确定是否找到所需项(动作408)。如果没有找到所需项,则处理设备102可返回在该数据库中未找到所需数据的指示(动作422)。否则,处理设备102可获得对应于在动作404期间计算的索引值的二元组的E值(动作410)。处理设备102然后可解密该E值以提供相应的明文(动作412)。然后可将该相应的明文与在动作402期间提供的所需数据项的明文形式进行比较(动作414)。如果处理设备102确定所比较的明文是相等的,则可从数据库中获得对应于索引结构中的所找到的项的数据并可将其返回给请求者(动作416)。即,索引结构中的所找到的项可包括对存储在数据库中的对应数据的引用。处理设备102然后可确定所找到的数据项是否是唯一的(动作418)。在一个实现中,处理设备102可基于所找到的数据项是否是数据库中的主键,基于可被包括在数据库中或索引结构的条目中的唯一性指示符,或者基于其他准则来确定所找到的数据项是否是唯一的。如果处理设备102确定所找到的数据项是数据库中唯一的,则该过程完成。否则,处理设备102可搜索索引结构以查找对应于索引值的下一个项(动作420)。处理设备102然后可重复动作408-424。
如果在动作414期间执行的比较指示明文不相等,则处理设备102可确定发生了散列冲突。即,两个不同的明文项在使用相同的密钥时生成了相同的索引值。这一事件的可能性很小,但是可能的。当处理设备102确定发生散列冲突时,处理设备102可采用多个公知方法中的任一种来解决散列冲突(动作424)。例如,在一个实施例中,具有相同的码或索引值(指示散列冲突)的项可被存储在索引结构的节点的连续位置中。当确定发生散列冲突时,处理设备102可搜索节点中的连续的项以确定该节点中的连续项中的任一个是否与在解密后匹配所需项的明文的E值相关联。一旦解决了散列冲突,处理设备102就可重复动作408-424。
图5示出了可以在根据本发明的主题的另一实施例中使用的另一示例性索引结构。图5示出了示例性B树索引结构,但在其他实施例中可以使用其他索引结构。在图5右侧的索引结构502的一部分示出当驻留在存储器中时的索引结构502的索引节点。存储器中的索引结构502可包括使用明文项作为索引值来构建的节点。每一个节点都可包括索引值或明文项,以及关于该明文项的其他数据和其他未加密数据。例如,存储器中的节点502可包括两个项,第一项可包括作为索引值的相应的明文项,即明文-1,和关于该明文项的其他数据,以及可以是该第一项的其他未加密信息的未加密数据-1。节点502的第二项可包括作为索引值的另一相应的明文项,即明文-2,和关于该明文项的其他数据,以及可以是该第二项的其他未加密信息的未加密数据-2。例如,如果该索引结构是为在数据库中搜索雇员名字而构建的,则索引值可以是雇员名字。对这一索引结构的搜索可通过遍历该索引结构直到在该索引结构的节点中找到所需名字或者直到在未找到所需名字时可确定所需名字未被包括在该数据库中来执行。
图5的左侧示出了当被保存在数据库系统内的存储中时的索引结构502。索引结构502的保存的版本可包括所有明文引用的加密版本,例如,节点502的第一项的加密文本-1以及节点502的第二项的加密文本-2。即,包括索引值在内的所有明文引用都可以按加密形式保存,同时索引结构的组织保持不变。换言之,索引节点中的项的次序以及节点之间的链接可根据明文索引值来排列,尽管包括索引值在内的左右明文引用都可以按加密形式保存。此外,还可加密可由索引使用的关于明文项的任何其他信息,诸如,例如明文统计数据。由索引结构使用的、包括关于明文项的信息的明文引用可通过使用用于加密数据库中的对应数据的相同密钥或另一密钥来在保存的索引结构中加密。
图5示出了具有两个项的索引结构的示例性节点。在其他实施例中,可在索引结构的节点中存储更多或更少的项。
图6是示出在根据本发明的主题的各实施例中用于使用诸如,例如图5的示例性索引结构等索引结构来搜索数据库中的非确定性地加密的数据的示例性过程的流程图。首先,处理设备102可接收对可能被包括在处理设备102的数据库中的所需数据项的请求(动作602)。该请求可直接由诸如,例如用户或应用程序等请求者经由处理设备102或经由诸如处理设备104等另一处理设备经由诸如网络106等网络来做出。该请求可以是搜索请求并且可包括所需数据项的明文形式。接着,处理设备102可访问数据库的索引结构以执行对该数据库中对应于所需数据项的数据的搜索(动作604)。处理设备102然后可将索引结构的至少一部分加载到诸如存储器230等动态存储中(动作606)。处理设备102然后可解密索引结构的所加载部分中的加密引用(动作608)并且可使用该索引结构的所加载部分来找出和访问该数据库中的一个或多个非确定性地加密的数据项(动作610)。
在一个实施例中,处理设备102可以在索引页或索引结构的一部分被加载到存储器230中时解密该索引结构的加密引用。在这一实施例中,搜索然后可使用对应的明文引用和来自该索引结构的其他信息来执行。在另一实施例中,可以在诸如,例如在需要来自索引的明文引用时的执行搜索时解密来自索引结构的明文引用。
以上参考图6描述的示例性方法可用于搜索关于特定数据项的数据,诸如,例如等式搜索,可用于搜索关于一定范围的数据值的数据,诸如,例如范围搜索,或者可用于执行对类似于特定数据项的信息的搜索,诸如,例如模糊搜索。
可以在根据本发明的主题的各实施例中使用的另一示例性方法参考图7解释。该方法可以与支持基于散列的索引的数据库系统一起使用。根据图7的示例性方法,处理设备102可接收搜索请求或找出关于明文项的数据库数据的其他请求(动作702)。该请求可直接由诸如,例如用户或应用程序等请求者经由处理设备102或经由诸如处理设备104等另一处理设备经由诸如网络106等网络来做出。处理设备102然后使用密钥对明文项计算HMAC(动作704)。处理设备102然后可对所计算的HMAC求散列以产生散列值(动作706)。处理设备102可将该散列值用作对基于散列的索引结构710中的散列桶的索引值以便根据基于散列的索引结构710的索引条目来获得关于所请求的明文数据项的信息(动作708)。因为散列值是从基于明文项的HMAC计算出的,所以可根据对应的明文数据项的相应HMAC来将基于散列的索引的散列桶分配给对应于明文数据项的项。在至少某些实施例中,基于散列的索引结构710可包括到数据库中具有关于所请求的明文数据项的加密信息的项的链接。该加密信息可包括非确定性地加密的数据。
图7所示的示例性基于散列的索引结构方法避免了可能由于根据索引散列函数来排列散列桶而发生的可能的信息泄漏。
结论
尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。
虽然以上描述可能包含具体细节,但决不应将其解释为是对权利要求的限制。所述各实施例的其它配置也是本发明的范围的一部分。此外,根据本发明主题的各个实现可以具有比所描述的更多或更少动作,或可以按与所示出的顺序不同的顺序来实现各个动作。因此,只有所附权利要求书及其合法的等效技术方案才应定义本发明,而非任何给出的具体示例。

Claims (20)

1.一种用于执行对数据库系统中的非确定性地加密的数据的搜索的方法,所述方法包括:
对于用户透明地确定所述用户提供的所需明文数据项的索引值,所述索引值至少部分地基于所述所需明文数据项和密钥(动作402、404);
使用所述索引值来访问索引结构中的对应条目以获得包括对应于所述所需明文数据项的非确定性地加密的密文的数据库条目(动作406、408、410、412、414、416)。
2.如权利要求1所述的方法,其特征在于,确定所需明文数据项的索引值还包括:
基于所述所需明文数据项来计算消息认证码。
3.如权利要求1所述的方法,其特征在于,所述索引结构至少包括多个成对数据项中的每一个的第一项,所述多个成对数据项中的每一个的第一项是具有基于相应的明文数据项和所述密钥的值的索引数据项,而所述成对数据项中的每一个的第二项是对应于所述相应的明文数据项的密文。
4.如权利要求1所述的方法,其特征在于:
所述索引结构至少包括多个成对数据项中的每一个的第一项,所述成对数据项中的每一个的第一项是具有基于将散列消息认证码和所述密钥应用于相应的明文数据项的值的索引数据项,而所述成对数据项中的每一个的第二项是对应于所述相应的明文数据项的密文。
5.如权利要求1所述的方法,其特征在于:
所述索引结构至少包括多个成对数据项中的每一个的第一项,所述成对数据项中的每一个的第一项是具有基于将散列消息认证码和所述密钥应用于相应的明文数据项的值的索引数据项,而所述成对数据项中的每一个的第二项是对应于所述相应的明文数据项的密文,并且
所述方法还包括:
使用所述索引值来获得所述成对数据项中对应的一个数据项的第二项;
解密所述成对数据项中所述对应的一个数据项的第二项;以及
将所述成对数据项中所述对应的一个数据项的解密的第二项与所述所需明文数据项进行比较以确定是否发生散列冲突。
6.如权利要求1所述的方法,其特征在于,所述确定所需明文数据项的索引值还包括:
基于所述密钥和所述所需明文数据项来计算消息认证码;以及
对所计算的消息认证码求散列以确定所述索引值。
7.如权利要求1所述的方法,其特征在于,所述索引结构包括根据对应的明文数据项的散列消息认证码来分配给各个项的多个散列桶。
8.一种其上存储了用于至少一个处理器的指令的机器可读介质,所述机器可读介质包括:
用于访问数据库的索引结构的指令,所述索引结构中的项的位置基于对应的明文项(动作604),关于所述索引结构中的对应明文项的引用被加密,而所述索引结构中的其他信息不被加密(502);
用于将所述索引结构的至少一部分加载到存储器中(动作606)的指令;
用于解密所述索引结构的至少一部分中关于所述明文项中对应的一个明文项的引用中的至少一个(动作608)的指令;以及
用于使用解密的至少一个引用来访问来自所述数据库的对应的非确定性地加密的数据项(动作610)的指令。
9.如权利要求8所述的机器可读介质,其特征在于:
所述用于解密所述索引结构的至少一部分中关于对应的明文项的引用中的至少一个的指令在所述索引结构的页被加载到所述存储器中时执行。
10.如权利要求8所述的机器可读存储器,其特征在于:
所述用于解密所述索引结构的至少一部分中关于对应的明文项的引用中的至少一个的指令在使用所述索引结构的至少一部分来搜索数据库中对应于所需数据项的非确定性地加密的数据时执行。
11.如权利要求8所述的机器可读介质,其特征在于,关于所述对应的明文项的加密引用包括明文统计数据。
12.如权利要求8所述的机器可读介质,其特征在于,所述索引结构包括B树。
13.如权利要求8所述的机器可读介质,其特征在于,所述索引结构中关于对应的明文项的加密引用是用用于加密存储在所述数据库中的非确定性地加密的数据的相同的密钥来加密的。
14.如权利要求8所述的机器可读介质,其特征在于,还包括:
用于搜索所述索引结构的至少一部分以便访问来自所述数据库的对应于所需数据项范围的一个或多个非确定性地加密的数据项的指令。
15.一种用于提供远程数据库以便执行对数据库系统中的非确定性地加密的数据的搜索的方法,所述方法包括:
经由网络从请求者接收搜索所述数据库系统中的非确定性地加密的数据以查找对应于所需明文数据项的数据库条目的请求(动作402);
基于所述所需明文数据项和密钥,对于所述请求者透明地计算码(动作404);
将所述码用作对索引结构的索引以获得对应于所述所需明文数据项的数据库条目(动作406、408、410、412、414、416);以及
将数据返回给所述请求者,所返回的数据包括从所述数据库系统获得的对应于所述所需明文数据项的数据库条目(动作416)。
16.如权利要求15所述的方法,其特征在于,所述基于所述所需明文数据项和密钥来计算码还包括计算散列消息认证码。
17.如权利要求15所述的方法,其特征在于,所述索引结构包括多个项,所述多个项中的每一个都至少包括二元组的第一项和所述二元组的第二项,所述二元组的第一项包括基于对应的明文数据项和所述密钥的码,所述二元组的第二项包括对应于所述相应的明文数据项的非确定性地加密的密文。
18.如权利要求15所述的方法,其特征在于,所述索引结构包括多个项,所述多个项中的每一个都至少包括二元组的第一项和对所述二元组的第二项的引用,所述二元组的第一项包括基于对应的明文数据项和所述密钥的码,所述对所述二元组的第二项的引用包括指向包括所述二元组的第二项的数据结构的指针,并且所述二元组的第二项包括对应于所述相应的明文数据项的非确定性地加密的密文。
19.如权利要求15所述的方法,其特征在于,所述索引结构包括根据对应的散列值来分配给相应项的多个散列桶,所述对应的散列值通过基于对应的明文数据项和所述密钥来计算散列消息认证码,并且对所计算的散列消息认证码求散列以产生所述对应的散列值来确定。
20.如权利要求15所述的方法,其特征在于,所述索引结构包括B树。
CN2007800328508A 2006-09-06 2007-08-24 加密的数据搜索 Active CN101512525B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/516,267 2006-09-06
US11/516,267 US7689547B2 (en) 2006-09-06 2006-09-06 Encrypted data search
PCT/US2007/076758 WO2008030717A1 (en) 2006-09-06 2007-08-24 Encrypted data search

Publications (2)

Publication Number Publication Date
CN101512525A true CN101512525A (zh) 2009-08-19
CN101512525B CN101512525B (zh) 2012-10-03

Family

ID=39153188

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800328508A Active CN101512525B (zh) 2006-09-06 2007-08-24 加密的数据搜索

Country Status (7)

Country Link
US (1) US7689547B2 (zh)
EP (1) EP2064638B1 (zh)
JP (1) JP4810611B2 (zh)
KR (1) KR101403745B1 (zh)
CN (1) CN101512525B (zh)
TW (1) TWI372345B (zh)
WO (1) WO2008030717A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104704493A (zh) * 2012-08-15 2015-06-10 维萨国际服务协会 可搜索的经加密的数据
CN104995632A (zh) * 2012-12-28 2015-10-21 阿尔卡特朗讯公司 隐私保护数据库系统
CN109983456A (zh) * 2016-09-22 2019-07-05 维萨国际服务协会 存储器内密钥范围搜索技术

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080082837A1 (en) 2006-09-29 2008-04-03 Protegrity Corporation Apparatus and method for continuous data protection in a distributed computing network
US7809142B2 (en) * 2007-06-19 2010-10-05 International Business Machines Corporation Data scrambling and encryption of database tables
US10262136B1 (en) * 2008-08-04 2019-04-16 Zscaler, Inc. Cloud-based malware detection
CN101770462A (zh) * 2008-12-30 2010-07-07 日电(中国)有限公司 用于密文索引和检索的装置和方法
CN101788985B (zh) * 2009-01-23 2013-01-23 日电(中国)有限公司 对加密倒排索引表进行k匿名更新的方法和装置
US9684710B2 (en) * 2009-05-28 2017-06-20 Microsoft Technology Licensing, Llc Extending random number summation as an order-preserving encryption scheme
JP5411034B2 (ja) * 2010-03-19 2014-02-12 株式会社日立ソリューションズ データベース暗号化システム及び方法
US8533489B2 (en) * 2010-09-29 2013-09-10 Microsoft Corporation Searchable symmetric encryption with dynamic updating
JP5348337B2 (ja) * 2010-12-13 2013-11-20 日本電気株式会社 暗号化データベース管理システム、クライアントおよびサーバ、自然結合方法およびプログラム
US9690845B2 (en) 2011-07-29 2017-06-27 Nec Corporation System for generating index resistant against divulging of information, index generation device, and method therefor
US8832427B2 (en) 2012-03-30 2014-09-09 Microsoft Corporation Range-based queries for searchable symmetric encryption
WO2014182419A1 (en) * 2013-05-06 2014-11-13 Thomson Reuters South Asia Private Limited Offline searching of encrypted content
US9553867B2 (en) 2013-08-01 2017-01-24 Bitglass, Inc. Secure application access system
US10122714B2 (en) 2013-08-01 2018-11-06 Bitglass, Inc. Secure user credential access system
US9552492B2 (en) * 2013-08-01 2017-01-24 Bitglass, Inc. Secure application access system
US9646166B2 (en) 2013-08-05 2017-05-09 International Business Machines Corporation Masking query data access pattern in encrypted data
US9852306B2 (en) 2013-08-05 2017-12-26 International Business Machines Corporation Conjunctive search in encrypted data
CN104462990B (zh) * 2013-09-13 2019-02-26 腾讯科技(深圳)有限公司 字符串加解密方法和装置
WO2016018298A1 (en) * 2014-07-30 2016-02-04 Hewlett-Packard Development Company, L.P. Key search token for encrypted data
EP3195106B1 (en) 2014-09-15 2020-10-21 Demandware, Inc. Secure storage and access to sensitive data
US10013440B1 (en) * 2014-10-31 2018-07-03 Amazon Technologies, Inc. Incremental out-of-place updates for index structures
CN104572827B (zh) * 2014-12-08 2017-12-15 北京工业大学 一种基于跨明文与密文的混合搜索系统
JP6441160B2 (ja) 2015-04-27 2018-12-19 株式会社東芝 秘匿化装置、復号装置、秘匿化方法および復号方法
WO2016179525A1 (en) 2015-05-07 2016-11-10 ZeroDB, Inc. Zero-knowledge databases
KR101703828B1 (ko) * 2015-10-15 2017-02-08 한국전자통신연구원 암호화된 데이터에 대한 색인 태그 생성 방법, 색인 태그를 이용한 암호화된 데이터 검색 방법 및 이를 위한 데이터베이스 장치
EP3452947A4 (en) 2016-05-06 2020-04-22 Zerodb, Inc. NUMBER FOR DISTRIBUTED STORAGE AND PROCESSING
US10482279B2 (en) * 2016-11-08 2019-11-19 Microsoft Technology Licensing, Llc Pattern-less private data detection on data sets
US10360390B2 (en) * 2016-12-14 2019-07-23 Sap Se Oblivious order-preserving encryption
PT3388969T (pt) 2017-04-13 2020-01-16 Dswiss Ag Sistema de pesquisa
EP3657475B1 (en) * 2017-09-12 2021-08-25 Mitsubishi Electric Corporation Data processing apparatus, data processing method, and data processing program
CN110858251B (zh) * 2018-08-22 2020-07-21 阿里巴巴集团控股有限公司 数据查询方法和装置
US10783270B2 (en) 2018-08-30 2020-09-22 Netskope, Inc. Methods and systems for securing and retrieving sensitive data using indexable databases
US11003783B1 (en) * 2018-09-21 2021-05-11 Amazon Technologies, Inc. Searchable encrypted data stores
CA3126089C (en) 2019-03-01 2023-06-20 Cyborg Inc. System and method for statistics-based pattern searching of compressed data and encrypted data
EP4154147A1 (en) * 2020-06-29 2023-03-29 Huawei Technologies Co., Ltd. Data storage server and client devices for securely storing data

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4827508A (en) * 1986-10-14 1989-05-02 Personal Library Software, Inc. Database usage metering and protection system and method
CA2000006C (en) * 1989-01-23 1994-07-12 Walter W. Chang Combinatorial signatures for data encoding and searching
US5293576A (en) * 1991-11-21 1994-03-08 Motorola, Inc. Command authentication process
US5475826A (en) * 1993-11-19 1995-12-12 Fischer; Addison M. Method for protecting a volatile file using a single hash
NZ336413A (en) * 1993-12-01 2000-01-28 Rpk Nz Ltd Method of generating random numbers by manipulating electronic pointer with coordinates at points corresponding to time instants being used for selection of points subset and computation of number function
US5495533A (en) * 1994-04-29 1996-02-27 International Business Machines Corporation Personal key archive
WO1996025801A1 (en) * 1995-02-17 1996-08-22 Trustus Pty. Ltd. Method for partitioning a block of data into subblocks and for storing and communicating such subblocks
US5742807A (en) * 1995-05-31 1998-04-21 Xerox Corporation Indexing system using one-way hash for document service
US5701469A (en) * 1995-06-07 1997-12-23 Microsoft Corporation Method and system for generating accurate search results using a content-index
JP3647940B2 (ja) * 1995-09-22 2005-05-18 富士通株式会社 データ管理装置
US5854916A (en) * 1995-09-28 1998-12-29 Symantec Corporation State-based cache for antivirus software
US5864852A (en) * 1996-04-26 1999-01-26 Netscape Communications Corporation Proxy server caching mechanism that provides a file directory structure and a mapping mechanism within the file directory structure
US5692124A (en) * 1996-08-30 1997-11-25 Itt Industries, Inc. Support of limited write downs through trustworthy predictions in multilevel security of computer network communications
JP3022405B2 (ja) * 1997-06-03 2000-03-21 日本電気株式会社 画像メモリ制御装置
US6052686A (en) * 1997-07-11 2000-04-18 At&T Corporation Database processing using schemas
US6012057A (en) * 1997-07-30 2000-01-04 Quarterdeck Corporation High speed data searching for information in a computer system
JP3056704B2 (ja) * 1997-08-25 2000-06-26 三菱電機株式会社 データ管理装置
US6233685B1 (en) * 1997-08-29 2001-05-15 Sean William Smith Establishing and employing the provable untampered state of a device
JPH11143780A (ja) * 1997-11-05 1999-05-28 Hitachi Ltd データベースにおける秘密情報管理方法およびデータベースの秘密情報管理装置
WO1999026207A1 (en) * 1997-11-19 1999-05-27 Rsa Security Inc. Digital coin tracing using trustee tokens
JP3849279B2 (ja) * 1998-01-23 2006-11-22 富士ゼロックス株式会社 インデクス作成方法および検索方法
JP3457184B2 (ja) * 1998-06-25 2003-10-14 シャープ株式会社 検索装置及びその制御プログラムを記憶した媒体
US7152165B1 (en) * 1999-07-16 2006-12-19 Intertrust Technologies Corp. Trusted storage systems and methods
US6601026B2 (en) * 1999-09-17 2003-07-29 Discern Communications, Inc. Information retrieval by natural language querying
US6738766B2 (en) * 2000-02-02 2004-05-18 Doongo Technologies, Inc. Apparatus and methods for providing personalized application search results for wireless devices based on user profiles
US7412462B2 (en) * 2000-02-18 2008-08-12 Burnside Acquisition, Llc Data repository and method for promoting network storage of data
US7043641B1 (en) * 2000-03-08 2006-05-09 Igt Encryption in a secure computerized gaming system
US6968456B1 (en) * 2000-08-08 2005-11-22 Novell, Inc. Method and system for providing a tamper-proof storage of an audit trail in a database
US7362868B2 (en) * 2000-10-20 2008-04-22 Eruces, Inc. Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data
US6928428B1 (en) * 2000-11-27 2005-08-09 Microsoft Corporation Distributed confidential contextual querying
WO2002056181A2 (en) * 2001-01-11 2002-07-18 Force Communications Inc Z File switch and switched file system
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7360075B2 (en) * 2001-02-12 2008-04-15 Aventail Corporation, A Wholly Owned Subsidiary Of Sonicwall, Inc. Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
US7062490B2 (en) * 2001-03-26 2006-06-13 Microsoft Corporation Serverless distributed file system
GB2377514B (en) * 2001-07-05 2005-04-27 Hewlett Packard Co Document encryption
US7266699B2 (en) * 2001-08-30 2007-09-04 Application Security, Inc. Cryptographic infrastructure for encrypting a database
US7269729B2 (en) * 2001-12-28 2007-09-11 International Business Machines Corporation Relational database management encryption system
US20030159054A1 (en) * 2002-02-19 2003-08-21 Minebea Co. Reconfigurable secure input device
US7287033B2 (en) * 2002-03-06 2007-10-23 Ori Software Development, Ltd. Efficient traversals over hierarchical data and indexing semistructured data
JP4077329B2 (ja) * 2003-01-31 2008-04-16 株式会社東芝 トランザクション処理システム、並行制御方法及びプログラム
US20030177115A1 (en) * 2003-02-21 2003-09-18 Stern Yonatan P. System and method for automatic preparation and searching of scanned documents
US20050004924A1 (en) * 2003-04-29 2005-01-06 Adrian Baldwin Control of access to databases
US10339336B2 (en) * 2003-06-11 2019-07-02 Oracle International Corporation Method and apparatus for encrypting database columns
US7743069B2 (en) * 2004-09-03 2010-06-22 Sybase, Inc. Database system providing SQL extensions for automated encryption and decryption of column data
US7571490B2 (en) * 2004-11-01 2009-08-04 Oracle International Corporation Method and apparatus for protecting data from unauthorized modification

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104704493A (zh) * 2012-08-15 2015-06-10 维萨国际服务协会 可搜索的经加密的数据
CN104704493B (zh) * 2012-08-15 2019-06-07 维萨国际服务协会 可搜索的经加密的数据
CN110086830A (zh) * 2012-08-15 2019-08-02 维萨国际服务协会 可搜索的经加密的数据
CN110086830B (zh) * 2012-08-15 2022-03-04 维萨国际服务协会 可搜索的经加密的数据
CN104995632A (zh) * 2012-12-28 2015-10-21 阿尔卡特朗讯公司 隐私保护数据库系统
CN104995632B (zh) * 2012-12-28 2017-11-03 阿尔卡特朗讯公司 隐私保护数据库系统
CN109983456A (zh) * 2016-09-22 2019-07-05 维萨国际服务协会 存储器内密钥范围搜索技术
CN109983456B (zh) * 2016-09-22 2023-08-15 维萨国际服务协会 存储器内密钥范围搜索方法和系统

Also Published As

Publication number Publication date
EP2064638A1 (en) 2009-06-03
WO2008030717A1 (en) 2008-03-13
EP2064638A4 (en) 2016-05-04
CN101512525B (zh) 2012-10-03
KR20090048623A (ko) 2009-05-14
EP2064638B1 (en) 2019-03-27
KR101403745B1 (ko) 2014-06-03
JP4810611B2 (ja) 2011-11-09
JP2010503118A (ja) 2010-01-28
US20080059414A1 (en) 2008-03-06
TWI372345B (en) 2012-09-11
US7689547B2 (en) 2010-03-30
TW200817949A (en) 2008-04-16

Similar Documents

Publication Publication Date Title
CN101512525B (zh) 加密的数据搜索
JP5156751B2 (ja) レンジド・ルックアップ
US9720943B2 (en) Columnar table data protection
US7519835B2 (en) Encrypted table indexes and searching encrypted tables
Liu et al. DivORAM: Towards a practical oblivious RAM with variable block size
EP3093784B1 (en) Client computer for querying a database stored on a server via a network
US7783899B2 (en) System and method for performing a conjunctive keyword search over encrypted data
CN101587479B (zh) 面向数据库管理系统内核的数据加解密系统及其方法
JP5997851B2 (ja) プライバシー保護データベースシステム
US7930560B2 (en) Personal information management system, personal information management program, and personal information protecting method
CN112800088A (zh) 基于双向安全索引的数据库密文检索系统及方法
Pattuk et al. Bigsecret: A secure data management framework for key-value stores
CN108021677A (zh) 云计算分布式检索引擎的控制方法
CN108170753B (zh) 一种共有云中Key-Value数据库加密与安全查询的方法
di Vimercati et al. Three-server swapping for access confidentiality
Kabir et al. A dynamic searchable encryption scheme for secure cloud server operation reserving multi-keyword ranked search
JP2006189925A (ja) 個人情報管理システム、個人情報管理プログラムおよび個人情報保護方法
US20200210595A1 (en) CryptoJSON Indexed Search Systems and Methods
Bu et al. SEF: a secure, efficient, and flexible range query scheme in two-tiered sensor networks
Liu et al. Efficient query processing with mutual privacy protection for location-based services
JP6732887B2 (ja) データベースクエリのための方法及びシステム
Gupta et al. Concealer: Sgx-based secure, volume hiding, and verifiable processing of spatial time-series datasets
CN110378144A (zh) 数据即服务模式下支持范围查询的隐私保护方法和系统
Wang et al. Secure dynamic SSE via access indistinguishable storage
CN115757497A (zh) 一种基于可信键值对内存数据库的数据隐匿查询方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150507

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150507

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.