CN110945506B - 支持混合索引的可搜索加密 - Google Patents
支持混合索引的可搜索加密 Download PDFInfo
- Publication number
- CN110945506B CN110945506B CN201880049898.8A CN201880049898A CN110945506B CN 110945506 B CN110945506 B CN 110945506B CN 201880049898 A CN201880049898 A CN 201880049898A CN 110945506 B CN110945506 B CN 110945506B
- Authority
- CN
- China
- Prior art keywords
- database
- data
- keyword
- document
- tag
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 79
- 230000015654 memory Effects 0.000 claims description 28
- 238000012545 processing Methods 0.000 description 13
- 241000227653 Lycopersicon Species 0.000 description 8
- 235000007688 Lycopersicon esculentum Nutrition 0.000 description 8
- 238000007792 addition Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 4
- 241000234282 Allium Species 0.000 description 3
- 235000002732 Allium cepa var. cepa Nutrition 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种具有第一数据库和第二数据库的秘密加密方案索引方法。该方法包括:接收包含关键字的文档;确定文档中的关键字类型;如果关键字是搜索令牌,在与文档中的关键字匹配的第一数据库中进行关键字搜索,并检索与文档中的关键字匹配的第一数据库中的关键字配对的数据;将与文档中的关键字匹配的第一数据库中的关键字相关的新增表项指示符数据记录为A;通过文档中的关键字在第二数据库的标签中搜索与大于A的标签相关的新增表项指示符,并检索与文档中的关键字匹配的第二数据库中的标签相关的加密数据;返回包含从第一数据库和第二数据库检索到的数据和加密数据的搜索结果;以及更新第一数据库和第二数据库。
Description
技术领域
本发明涉及一种在服务器中搜索文档的方法和系统。本发明尤其涉及一种在具有独立索引的数据库的服务器中搜索文档的方法和系统。
背景技术
本文考虑了对匹配特定关键字的一组文档进行搜索的问题。在没有任何预处理的情况下,一个文档可以看作与所述文档匹配的关键字列表。所有文档收集后可形成一个称为前向索引的字典,将文档映射到各自的关键字列表。若要在这些文档中搜索关键字,需要查看每一个关键字列表以确定搜索的关键字是否在列表中。因此,搜索复杂度与文档数量成存在线性关系。一种加快搜索过程的方法是通过离线预处理阶段,创建另一个称为反向索引的字典。这种索引将每个关键字映射到包含关键字的文档列表中。要搜索关键字,只需查看特定关键字的反向索引并输出映射后的列表。在这种情况下,搜索复杂度是次线性的,即只和匹配文档的数量存在线性关系,这是最优的。
本文考虑了带有加密文档的设置中的相同关键字的搜索问题。对称密钥(指公钥)加密方案支持秘密(指公开)加密密钥持有者将人或机器可读的文档转换为看似随机密文,这样的密文只有解密密钥持有者才能理解。普通加密方案创建的密文对被加密的文档基本无用。特别是无法搜索与关键字匹配的密文。可搜索加密(searchable encryption,简称为SE)方案是加密方案的扩展,支持在不解密所有密文的情况下搜索密文。具体地,在SE中,文档是针对关键字进行加密的。这些文档通常由云服务器存储在其数据库中。解密密钥持有者(读取器)与服务器之间达成搜索协议以实现关键字搜索。结束时客户端获取与搜索关键字匹配的文档,而服务器则获知与文档和关键字有关的最小信息。
动态SE方案是在建立数据库时不需要对所有文档进行加密的SE方案。相反,可以动态更新数据库,例如添加和删除文档等。加密密钥持有者(写入器)与服务器之间达成更新协议以实现数据库更新。结束时服务器获取更新后的数据库,该数据库可包含新增加密文档或已删除一些已有文档。服务器可能不知道在数据库中新增或删除了什么。
以前的SE方案可以大致分为基于前向索引的方案和基于反向索引的方案。早期的对称密钥SE(symmetric-key SE,简称为SKSE)和大多数公钥SE(public-key SE,简称为PKSE)是基于前向索引的。这些方案通过搜索前向索引来实现搜索,这样的线性搜索复杂,但通过简单地添加前向索引来支持简单的文档新增方式。基于反向索引的SKSE方案在设计上实现了次线性搜索复杂度。但是基于反向索引的SKSE方案往往需要复杂的更新程序,这些程序通常效率较低、难以实现。本背景综述主要关注更高效和更安全的SE方案,而不关注SE方案如何在实践中得到最有效的应用。
因此,本领域技术人员正在努力将文件存储在一个数据库中,以支持更高效和性价比更高的文档搜索方法。
发明内容
为了解决上述和其他问题,本发明实施例提供了一种先进的系统和方法。本发明实施例提供的系统和方法的第一个优点是性价比更高。这是因为存储在明文数据库中的数据有较大的局部性。一旦动态SE方案的成本较高的搜索协议显示匹配关键字-文档对,则将所述对移到明文数据库中,以便后续对所述对的访问更高效和成本更低。本发明实施例提供的系统和方法的第二个优点是系统和方法与任何动态SE方案兼容。因此,所述系统和方法可直接在使用了动态SE方案的现有系统中实现。
上述优点是由具有第一数据库和第二数据库的秘密加密方案的系统和方法实施例提供的。所述第一数据库包括关键字数据对列表,所述第二数据库包括加密数据标签对,其中,通过关键字计算的所述标签与所述加密数据相关。
本发明的第一方面描述了一种具有第一数据库和第二数据库的秘密加密方案索引方法。所述第一数据库包括关键字数据对列表,所述第二数据库包括加密数据标签对,其中,通过关键字计算的所述标签与所述加密数据相关。所述方法包括:接收包含关键字的文档;确定所述文档中的关键字类型;如果所述关键字是搜索令牌,在与所述文档中的关键字匹配的所述第一数据库中进行关键字搜索,并检索与所述文档中的关键字匹配的第一数据库中的关键字配对的数据;将与所述文档中的关键字匹配的第一数据库中的关键字相关的新增表项指示符数据记录为A;通过所述文档中的关键字在所述第二数据库的标签中搜索与大于A的所述标签相关的新增表项指示符,并检索与所述文档中的关键字匹配的第二数据库中的标签相关的加密数据;返回包含从所述第一数据库和第二数据库检索到的数据和加密数据的搜索结果;以及更新所述第一数据库和第二数据库。
根据第一方面的一个实施例,所述更新所述第一数据库和所述第二数据库的步骤包括:将在所述第二数据库中检索到所述数据后显示的新增关键字-数据对添加到所述第一数据库;将在所述第二数据库中检索到所述数据后显示的所述数据-标签对中的标签删除;以及将与所述新增关键字数据对相关的新增表项指示符设置为当前值。
根据第一方面的一个实施例,所述新增表项指示符是计数器,所述当前值与在所述第二数据库检索到所述数据后显示的所述数据标签对相关的值相同。
根据第一方面的另一实施例,所述新增表项指示符为时间戳,所述当前值为当前时间。
根据第一方面的一个实施例,所述索引方法还包括:如果所述关键字为加密数据,将新增数据-标签对添加到所述第二数据库中,并将与所述新增数据标签对相关的新增表项指示符设置为当前值。根据本实施例的一个实施例,所述新增表项指示符为计数器,所述当前值为计数器的增量。根据本实施例的另一实施例,所述新增表项指示符为时间戳,所述当前值为当前时间。
本发明的第二方面描述了一种具有第一数据库和第二数据库的秘密加密方案的索引系统。所述第一数据库包括关键字数据对列表,所述第二数据库包括加密数据标签对,其中,通过关键字计算的所述标签与所述加密数据相关。所述系统包括:处理器、非瞬时性存储器和所述处理器可执行的、存储在存储器上的指令,用于:接收包含关键字的文档;确定所述文档中的关键字类型;如果所述关键字是搜索令牌,在与所述文档中的关键字匹配的所述第一数据库中进行关键字搜索,并检索与所述文档中的关键字匹配的第一数据库中的关键字配对的数据;将与所述文档中的关键字匹配的第一数据库中的关键字相关的新增表项指示符数据记录为A;通过所述文档中的关键字在所述第二数据库的标签中搜索与大于A的所述标签相关的新增表项指示符,并检索与所述文档中的关键字匹配的第二数据库中的标签相关的加密数据;返回包含从所述第一数据库和第二数据库检索到的数据和加密数据的搜索结果;以及更新第一个数据库和第二个数据库。
根据第二方面的一个实施例,所述更新所述第一和第二数据库的指令包括用于以下操作的指令:将在所述第二数据库中检索到所述数据后显示的新增关键字-数据对添加到所述第一数据库;将在所述第二数据库中检索到所述数据后显示的所述数据-标签对中的标签删除;以及将与所述新增关键字数据对相关的新增表项指示符设置为当前值。
根据第二方面的一个实施例,所述新增表项指示符是计数器,所述当前值与在所述第二数据库检索到所述数据后显示的所述数据标签对相关的值相同。根据第二方面的另一实施例,所述新增表项指示符为时间戳,所述当前值为当前时间。
根据第二方面的一个实施例,所述索引系统还包括用于以下操作的指令:如果所述关键字为加密数据,将新增数据-标签对添加到所述第二数据库中,并将与所述新增数据标签对相关的新增表项指示符设置为当前值。根据本实施例的一个实施例,所述新增表项指示符为计数器,所述当前值为计数器的增量。根据本实施例的另一实施例,所述新增表项指示符为时间戳,所述当前值为当前时间。
本发明的第三方面描述了一种具有第一数据库和第二数据库的秘密加密方案索引方法。所述第一数据库包括关键字数据对列表,所述第二数据库包括加密数据标签对,其中,通过关键字计算的所述标签与所述加密数据相关。所述方法包括:接收包含通过关键字计算的搜索令牌的文档;在与所述文档中的关键字匹配的所述第一数据库中进行关键字搜索,并检索与所述文档中的关键字匹配的第一数据库中的关键字配对的数据;如果在所述第一数据库中未检索到数据,通过所述文档中的关键字在所述第二数据库的标签中搜索,检索与所述文档中的关键字匹配的第二数据库中的标签相关的加密数据,并更新所述第一数据库和所述第二数据库;以及返回包含在所述第一数据库和所述第二数据库检索到所述数据或加密数据的搜索结果。
根据第三方面的一个实施例,所述更新所述第一和第二数据库的步骤包括:将在所述第二数据库中检索到所述数据后显示的新增关键字-数据对添加到所述第一数据库;以及将在所述第二数据库中检索到所述数据后显示的所述数据-标签对中的标签删除。
本发明的第四方面描述了一种具有第一数据库和第二数据库的秘密加密方案的索引系统。所述第一数据库包括关键字数据对列表,所述第二数据库包括加密数据标签对,其中,通过关键字计算的所述标签与所述加密数据相关。所述系统包括:处理器、非瞬时性存储器和所述处理器可执行的、存储在存储器上的指令,用于:接收包含通过关键字计算的搜索令牌的文档;在与所述文档中的关键字匹配的所述第一数据库中进行关键字搜索,并检索与所述文档中的关键字匹配的第一数据库中的关键字配对的数据;如果在所述第一数据库中未检索到数据,通过所述文档中的关键字在所述第二数据库的标签中搜索,检索与所述文档中的关键字匹配的第二数据库中的标签相关的加密数据,并更新所述第一数据库和所述第二数据库;以及返回包含在所述第一数据库和所述第二数据库检索到所述数据或加密数据的搜索结果。
根据第四方面的一个实施例,所述更新所述第一和第二数据库的指令包括用于以下操作的指令:在所述第一数据库中添加在所述第二数据库检索到的数据后显示的新增关键字数据对;以及将在所述第二数据库中检索到所述数据后显示的所述数据-标签对中的标签删除。
附图说明
在以下详细描述中描述并在以下图式中示出根据本发明的以上优点和特征:
图1示出了本发明应用了基于新索引方法的SE技术的系统概述;
图2示出了用于执行提供本发明方法和/或系统流程的指令、服务器中的处理系统;
图3是本发明实施例提供的接收文档时搜索和更新第一数据库和第二数据库的过程的流程图;
图4是本发明实施例提供的接收文档时搜索和更新第一数据库和第二数据库的另一过程的流程图;
图5示出了第一数据库为空的数据库示例;
图6示出了除图5所示的示例之外,服务器执行搜索后的数据库示例;
图7示出了除图6所示的示例之外,添加新文档之后的数据库示例;
图8示出了除图7所示的示例之外,服务器执行搜索后的数据库示例。
具体实施方式
本发明涉及一种在服务器中搜索文档的方法和系统。本发明尤其涉及一种在具有独立索引的数据库的服务器中搜索文档的方法和系统。
在当前的SE方案中,搜索中显示文档的密文保存在密文数据库中。因此,在后续搜索同一个关键字时,服务器重复之前搜索中的大部分计算,假设匹配关键字的文档没有很大修改。在安全性方面这种重复计算是不必要的,因为在之前搜索中已经在服务器显示的文档不再受SE方案的保护。以SE加密形式存储这些文档浪费了资源。
此外,搜索密文数据库时,即使是基于反向索引的SE方案也比搜索明文反向索引的成本高。这是SE方案内存访问固有的低局部性导致的。与关键字匹配的SE加密文档的物理数据通常分散存储在内存中,以保证安全性。相比之下,明文反向索引中的每一个文档列表的物理数据存储在内存附近的区域中。
本发明提出了一种基于现有SE方案的混合索引方法。在不改变底层的SE方案情况下实现了高效搜索和高效数据添加/删除的平衡。
本发明实施例提供的系统和方法基于一种应用了当前SE技术新索引方法的优雅流程。新索引方法能够在不改变底层SE方案的情况下实现高效搜索和高效数据添加和/或删除的平衡。
图1示出了基于新索引方法应用SE技术的系统100的概述。系统100包括具有第一数据库120和第二数据库130的服务器110。第一数据库120由一个反向索引的数据结构组成,支持进行次线性关键字搜索。此数据结构存储在之前搜索中以明文形式显示的关键字-文档对。本质上,第一数据库的数据结构包括关键字列表和数据列表,数据与相关的关键字配对。简而言之,第一数据库包括关键字-数据对。第二数据库130为动态SE方案的数据库。具体地,第二数据库的数据结构包括加密数据列表和通过关键字计算的标签列表,其中,每个加密数据与通过加密数据相关的关键字计算的标签进行配对。简而言之,第二数据库包括数据-标签对。所有数据、对集合(数据、关键字/标签)都将存储在第一个数据库或第二个数据库中。第一和第二数据库的数据结构示例如图5至图8所示。
如图1所示,系统100从接收文档150开始,其中每个文档与一组关键字相关。在接收到文档150时,服务器110在第一数据库120中搜索特定关键字,以便检索之前显示的匹配文档。然后,服务器110通过与用户达成的搜索协议在第二数据库130中搜索所述关键字。这显示了在所述关键字之前搜索之后添加的匹配文档。服务器110将通过第一和第二数据库搜索显示的搜索结果合并,并将搜索结果140返回给用户。然后,服务器通过更新协议从底层动态SE方案中删除第二数据库搜索显示的关键字-文档对,并将关键字-文档对添加到第一数据库中。
根据本发明实施例可用于编写程序的编程语言包括Scala、Java和Haskell语言。但是本领域技术人员应理解,在不偏离本发明的前提下可以使用其他编程语言。本发明实施例的流程可以在Windows、Linux和Mac等各种平台上执行。但是本领域技术人员应理解,在不偏离本发明的前提下,本发明实施例的流程也可以在其他平台上执行。
媒介中作为指令存储的流程提供了本发明方法和/或系统,系统中的处理系统或运行在所述处理系统上的虚拟机可执行这些指令。这些指令可以存储为固件、硬件或软件。图2示出了用于执行提供本发明方法和/或系统流程的指令、服务器110中的处理系统200。本领域技术人员应理解,每个处理系统的具体配置可能不同,每个设备中处理系统的具体配置可能不同。因此,图2所示的处理系统200仅仅是一个示例。
处理系统200包括中央处理单元(Central Processing Unit,简称为CPU)205。CPU205可以是处理器、微处理器或处理器和微处理器的任何组合,这些处理器和微处理器通过执行指令来执行本发明的流程。CPU 205连接到内存总线210和输入输出(Input/Output,简称为I/O)总线215。内存总线210将CPU 205连接至内存220和225,用于在内存和CPU 205之间传输数据和指令。I/O总线215将CPU 205连接到外围设备,用于在CPU 205和外围设备之间传输数据。本领域技术人员应理解,I/O总线215和内存总线210可以合并为一个总线或细分为多个其他总线,具体配置由本领域技术人员来确定。
非易失性存储器220,例如只读存储器(Read Only Memory,简称为ROM),与内存总线210连接。非易失性存储器220存储运行处理系统200各个子系统所需的、在启动时用于启动系统的指令和数据。本领域技术人员应理解,可以使用任何类型的内存来执行所述功能。
易失性存储器225,例如随机存取存储器(Random Access Memory,简称为RAM),也连接到内存总线210。易失性存储器225存储CPU 205所需的指令和数据,用于执行提供本发明系统流程等流程的软件指令。本领域技术人员应理解,任何类型的内存可以用作易失性存储器,具体配置由本领域技术人员来确定。
I/O设备230、键盘235、显示器240、内存245、网络设备250和任何数量的其他外围设备连接到I/O总线215,与CPU 205交换用于CPU 205执行的应用程序的数据。I/O设备230是任何发送和/或接收来自CPU 205的数据的设备。键盘235是一种特定类型的I/O,接收用户输入,并将输入传输到CPU 205。显示器240接收来自CPU 205的显示数据,并在屏幕上显示图像供用户查看。内存245是一种发送和接收来自CPU 205的数据、将数据存储到媒介的设备。网络设备250将CPU 205连接至网络,用于向其他系统传输数据和传输来自其他系统的数据。
下面介绍本发明实施例应用了基于新索引方法的SE技术的系统和方法。
图3示出了本发明实施例的处理系统200中的处理器执行的流程300的流程图。流程300是在接收文档时搜索和更新第一数据库和第二数据库的过程。流程300从步骤305开始,接收包含通过关键字计算的搜索令牌T的文档。搜索令牌可以通过一个陷门方法来执行,如图5所示。
在步骤310中,流程300在第一数据库中搜索特定关键字,来检索之前显示的匹配文档。由于是反向索引数据结构,这一阶段可以在次线性时间内完成。检索到匹配文档并保存在搜索结果中。
在步骤312中,流程300确定匹配文档是否可用。如果匹配文档不可用,流程300进入步骤315。如果匹配文档可用,进入步骤320,返回搜索结果。
在步骤315中,流程300进行与用户达成的搜索协议,在所述第二数据库中搜索关键字。示例性的,在搜索协议中,所述第二个数据库存储有“加密数据/文档ID”和“通过关键字计算的标签”,如图5至图8所示。当用户搜索关键字时,用户输入“通过关键字计算的搜索令牌”。然后,服务器将“搜索令牌”与所有“标签”逐个进行比较。如果比较结果是“true”(可以是一个简单的相同匹配,或者一些复杂的计算),则返回数据/文档ID。这个阶段的服务器计算成本取决于底层动态SE方案的搜索复杂度。检索到匹配文档,并将其添加到搜索结果中。
在步骤320中,流程300向用户返回搜索结果。
在步骤325中,流程300更新第一数据库和第二数据库。具体地,流程300将在步骤315中显示的关键字-文档对添加到第一数据库中,并从第二数据库中删除步骤315中显示的关键字-文档对。步骤325可以和步骤320同时执行。或者,步骤325可以在步骤315之后、在步骤320之前执行。
流程300在步骤320之后结束。
新增表项不时地被添加到数据库中。因为没有显示关键字,这些新增表项被添加到第二数据库中。在本质上,一个新增表项包括一个“加密数据/文件ID”(如图5至图8所示为Enc)和“通过关键字计算的标签”(如图5至图8所示为FK)。图4示出了本发明实施例处理系统200中的处理器执行的流程300a的流程图。流程300a是在接收包含一个或多个关键字的文档时搜索和更新第一和第二数据库的过程。关键字可以用作搜索令牌或加密数据。流程300a是对流程300的修改,将新增表项添加到所述第二数据库中。流程300和300a的类似步骤使用相同的参考数字。流程300a从步骤405开始,接收文档。如果文档中包含加密数据,流程300a进入步骤430。如果文档中包含搜索令牌,流程300a进入步骤310。
在步骤430中,处理器400将包含“加密数据”的新增表项(如图5至图8所示Enc)和“通过关键字计算的标签(如图5至图8所示FK)”添加到所述第二数据库。在新增表项上标记一个新增表项指示符。所述新增表项指示符可以是计数器或时间戳。如果新增表项指示符是计数器,新增表项指示符是计数器+1(即计数器的增量)。如果新增表项指示符是时间戳,使用当前时间。本领域技术人员应理解,如果新增表项指示符是计数器,在流程300a开始时计数器被初始化为零。
在步骤310中,流程300a在所述第一数据库中搜索特定关键字,来检索之前显示的匹配文档。由于反向索引数据结构,这一阶段可以在次线性时间内完成。检索到匹配文档并保存在搜索结果中。还需要说明的是新增表项指示符。如果新增表项指示符可用,则新增表项指示符记录为A。
在步骤315中,只考虑新增表项指示符大于A的表项。特别地,流程300a只在大于A的计数器或时间戳的相同关键字中搜索。如果所有表项都等于或小于A,流程300a进行与用户达成的搜索协议,在所述第二数据库中搜索关键字。如上所述,示例性的,在搜索协议中,所述第二个数据库存储了“加密数据/文档ID”和“通过关键字计算的标签”,如图5至图8所示。当用户搜索关键字时,用户输入“通过关键字计算的搜索令牌”。然后,服务器将“搜索令牌”与所有“标签”逐个进行比较。如果比较返回“true”(可以是一个简单的相同匹配,或者一些复杂的计算),则返回数据/文档ID。检索到匹配文档,并将其添加到搜索结果中。这个阶段的服务器计算成本取决于底层动态SE方案的搜索复杂度。进一步地,由于只搜索大于A的表项,流程300a不需要执行流程300的步骤312。
在步骤320中,流程300a将搜索结果返回给用户。
在步骤325中,流程300a更新所述第一数据库和所述第二数据库。特别地,流程300a将在步骤315中显示的关键字-数据对添加到所述第一数据库中,并从所述第二数据库中删除步骤315中显示的数据-标签对中的一个或多个标签。此外,所述第一数据库中的更新行包含的新增表项指示符,如计数器或时间戳,设置为当前值。如果新增表项指示符是计数器,新增表项指示符与在所述第二数据库中步骤315中显示的数据-标签对的计数器值(即当前计数器值)相同。如果新增表项指示符是时间戳,使用当前时间。步骤325可以和步骤320同时执行。或者,步骤325可以在步骤315之后、在步骤320之前执行。
流程300a在步骤430、320或325之后结束。
图5至图8示出了在所述第一和第二数据库接收文档时更新所述第一和第二数据库的例子,其中文档可以是搜索请求,也可以是向所述第二数据库添加文档的请求。
图5示出了在初始阶段适用的所述第一数据库为空的例子。特别地,初始化数据库510包含第一数据库591和第二数据库592,所述第一数据库591为空,所述第二数据库592包含3个具有各自加密关键字的文档。进一步地,计数器初始化为零。在这个例子中,如果接收到的文档包含一个搜索令牌T,所述搜索令牌T包含关键字“西红柿(tomato)”(如T=陷门K(西红柿)),流程300按以下顺序执行:305→310→312→315→320→325,流程300a按以下顺序执行:405→310→315→320→320→325。在流程300和流程300a之后的结果数据库520使得所述第一数据库591包含一个新增关键字“西红柿”,有对应的文档ID,所述第二数据库592中的关键字“西红柿”被删除。
图6示出了在图5所示的例子之后的后续搜索。特别地,在请求搜索关键字“西红柿”之后用户请求搜索关键字“洋葱”。在这种场景下,流程300按以下顺序执行:305→310→312→315→320→325,流程300a按以下顺序执行:405→310→315→320→325。在流程300和流程300a之后的结果数据库530使得所述第一数据库591包含一个新增关键字“洋葱”,有对应的文档ID,所述第二数据库592中的关键字“洋葱”被删除。
图7示出了在图6所示的例子之后添加一个新文档。在这种场景下,流程300a按以下顺序执行:405→310→315→320→325。在流程300a之后的结果数据库540使得所述第二数据库592包含一个新增表项,即食谱ID4,有对应的关键字和计数器和/或时间戳。
图8示出了在图7所示的例子之后搜索关键字“西红柿”。在这种场景下,流程300a按以下顺序执行:405→310→315→320→325。在流程400之后的结果数据库550使得所述第一数据库591更新关键字“西红柿”来包含新增文档ID,所述第二数据库中的关键字“西红柿”被删除。所述第一数据库591中的更新行的计数器或时间戳设置为当前值。在本实例中计数器设置为1,与所述第二数据库592中的食谱ID4的计数器值相同。
虽然以上描述的所述第一数据库是明文的,但是本领域技术人员应理解,所述第一数据库可以由服务器通过其密钥进一步加密。这样做是为静态数据提供数据保护。
主要应用场景是数据库存储在云服务器中。数据所有者希望将一些数据存储在云数据库中,供某些数据用户检索。但是用户不希望云服务器了解这些内容以及用于搜索数据的关键字。
有益效果
存储在明文数据库中的数据有较大的局部性。一旦动态SE方案的成本较高的搜索协议显示匹配关键字-文档对,则将所述对移到明文数据库中,以便后续对所述对的访问更高效。这种新方法的优点是能与任何动态SE方案兼容。此外,这种新方法没有引入新增应用程序接口。也就是说,使用动态SE方案的现有系统可以直接采用新方法。
以上描述了在接收文档时对两个数据库进行搜索和更新的方法和系统实施例,两个数据库的其中一个数据库基于现有的SE方案。可以预见的是,本领域技术人员可以并将设计以下权利要求书规定的本发明的替代方法和系统。
Claims (14)
1.一种具有第一数据库和第二数据库的秘密加密方案索引方法,其特征在于,所述第一数据库包括关键字-数据对列表,所述第二数据库包括加密数据-标签对,其中,通过关键字计算的所述标签与所述加密数据相关,所述方法包括:
接收包含关键字的文档;
确定所述文档中的关键字类型;
如果所述关键字是搜索令牌,
在与所述文档中的关键字匹配的所述第一数据库中进行关键字搜索,并检索与所述文档中的关键字匹配的第一数据库中的关键字配对的数据;
将与所述文档中的关键字匹配的第一数据库中的关键字相关的新增表项指示符数据记录为A;
通过所述文档中的关键字在所述第二数据库的标签中搜索与大于A的所述标签相关的新增表项指示符,并检索与所述文档中的关键字匹配的第二数据库中的标签相关的加密数据;
返回包含从所述第一数据库和第二数据库检索到的数据和加密数据的搜索结果;以及
更新所述第一数据库和第二数据库;
所述更新所述第一和第二数据库的步骤包括:
将在所述第二数据库中检索到所述数据后显示的新增关键字-数据对添加到所述第一数据库;
将在所述第二数据库中检索到所述数据后显示的所述数据-标签对中的标签删除;以及
将与所述新增关键字数据对相关的新增表项指示符设置为当前值。
2.根据权利要求1所述的索引方法,其特征在于,所述新增表项指示符是计数器,所述当前值与在所述第二数据库检索中到所述数据之后显示的所述数据-标签对相关的值相同。
3.根据权利要求1所述的索引方法,其特征在于,所述新增表项指示符为时间戳,所述当前值为当前时间。
4.根据权利要求1所述的索引方法,其特征在于,还包括:
如果所述关键字为加密数据,将新增数据-标签对添加到所述第二数据库中,并将与所述新增数据-标签对相关的新增表项指示符设置为当前值。
5.根据权利要求4所述的索引方法,其特征在于,所述新增表项指示符为计数器,所述当前值为计数器的增量。
6.根据权利要求4所述的索引方法,其特征在于,所述新增表项指示符为时间戳,所述当前值为当前时间。
7.一种具有第一数据库和第二数据库的秘密加密方案的索引系统,其特征在于,所述第一数据库包括关键字数据对列表,所述第二数据库包括加密数据标签对,其中,通过关键字计算的所述标签与所述加密数据相关,所述系统包括:
处理器、非瞬时性存储器和所述处理器可执行的、存储在存储器上的指令,用于:
接收包含关键字的文档;
确定所述文档中的关键字类型;
如果所述关键字是搜索令牌,
在与所述文档中的关键字匹配的所述第一数据库中的关键字中搜索,并检索与所述文档中的关键字匹配的第一数据库中的关键字配对的数据;
将与所述文档中的关键字匹配的第一数据库中的关键字相关的新增表项指示符数据记录为A;
通过所述文档中的关键字在所述第二数据库的标签中搜索与大于A的所述标签相关的新增表项指示符,并检索与所述文档中的关键字匹配的第二数据库中的标签相关的加密数据;
返回包含从所述第一数据库和第二数据库检索到的数据和加密数据的搜索结果;以及
更新第一个数据库和第二个数据库;
所述更新所述第一和第二数据库的指令包括用于以下操作的指令:
将在所述第二数据库中检索到所述数据后显示的新增关键字-数据对添加到所述第一数据库;
将在所述第二数据库中检索到所述数据后显示的所述数据-标签对中的标签删除;以及
将与所述新增关键字数据对相关的新增表项指示符设置为当前值。
8.根据权利要求7所述的索引系统,其特征在于,所述新增表项指示符是计数器,所述当前值与在所述第二数据库检索到所述数据后显示的所述数据标签对相关的值相同。
9.根据权利要求7所述的索引系统,其特征在于,所述新增表项指示符为时间戳,所述当前值为当前时间。
10.根据权利要求7所述的索引系统,其特征在于,还包括用于以下操作的指令:
如果所述关键字为加密数据,将新增数据-标签对添加到所述第二数据库中,并将与所述新增数据标签对相关的新增表项指示符设置为当前值。
11.根据权利要求10所述的索引系统,其特征在于,所述新增表项指示符为计数器,所述当前值为计数器的增量。
12.根据权利要求10所述的索引系统,其特征在于,所述新增表项指示符为时间戳,所述当前值为当前时间。
13.一种具有第一数据库和第二数据库的秘密加密方案索引方法,其特征在于,所述第一数据库包括关键字数据对列表,所述第二数据库包括加密数据标签对,其中,通过关键字计算的所述标签与所述加密数据相关,所述方法包括:
接收包含通过关键字计算的搜索令牌的文档;
在与所述文档中的关键字匹配的所述第一数据库中进行关键字搜索,并检索与所述文档中的关键字匹配的第一数据库中的关键字配对的数据;
如果在所述第一数据库中未检索到数据,通过所述文档中的关键字在所述第二数据库的标签中搜索,检索与所述文档中的关键字匹配的第二数据库中的标签相关的加密数据,并更新所述第一数据库和所述第二数据库;以及
返回包含所述数据或在所述第一数据库和所述第二数据库检索到的加密数据的搜索结果;
所述更新所述第一和第二数据库的步骤包括:
将在所述第二数据库中检索到所述数据后显示的新增关键字-数据对添加到所述第一数据库;以及
将在所述第二数据库中检索到所述数据后显示的所述数据-标签对中的标签删除。
14.一种具有第一数据库和第二数据库的秘密加密方案的索引系统,其特征在于,所述第一数据库包括关键字数据对列表,所述第二数据库包括加密数据标签对,其中,通过关键字计算的所述标签与所述加密数据相关,所述系统包括:
处理器、非瞬时性存储器和所述处理器可执行的、存储在存储器上的指令,用于:
接收包含通过关键字计算的搜索令牌的文档;在与所述文档中的关键字匹配的所述第一数据库中进行关键字搜索,并检索与所述文档中的关键字匹配的第一数据库中的关键字配对的数据;
如果在所述第一数据库中未检索到数据,通过所述文档中的关键字在所述第二数据库的标签中搜索,检索与所述文档中的关键字匹配的第二数据库中的标签相关的加密数据,并更新所述第一数据库和所述第二数据库;以及
返回包含在所述第一数据库和所述第二数据库检索到所述数据或加密数据的搜索结果;
所述更新所述第一和第二数据库的指令包括用于以下操作的指令:
在所述第一数据库中添加在所述第二数据库检索到的数据后显示的新增关键字数据对;以及
将在所述第二数据库中检索到所述数据后显示的所述数据-标签对中的标签删除。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SG10201706106QA SG10201706106QA (en) | 2017-07-26 | 2017-07-26 | Searchable Encryption with Hybrid Index |
SG10201706106Q | 2017-07-26 | ||
PCT/SG2018/050371 WO2019022669A1 (en) | 2017-07-26 | 2018-07-26 | HYBRID INDEX CONSULTABLE ENCRYPTION |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110945506A CN110945506A (zh) | 2020-03-31 |
CN110945506B true CN110945506B (zh) | 2023-11-17 |
Family
ID=63452702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880049898.8A Active CN110945506B (zh) | 2017-07-26 | 2018-07-26 | 支持混合索引的可搜索加密 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN110945506B (zh) |
SG (1) | SG10201706106QA (zh) |
WO (1) | WO2019022669A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7434117B2 (ja) * | 2020-09-10 | 2024-02-20 | 株式会社東芝 | 対話装置、方法、及びプログラム |
CN114826575A (zh) * | 2022-04-19 | 2022-07-29 | 西安电子科技大学 | 云中基于内积谓词的单关键词可搜索加密方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593196A (zh) * | 2008-05-30 | 2009-12-02 | 日电(中国)有限公司 | 用于快速密文检索的方法、装置和系统 |
CN103620616A (zh) * | 2013-03-28 | 2014-03-05 | 华为技术有限公司 | 一种访问控制权限管理方法和装置 |
CN104021157A (zh) * | 2014-05-22 | 2014-09-03 | 西安理工大学 | 云存储中基于双线性对的关键词可搜索加密方法 |
KR101489876B1 (ko) * | 2013-08-30 | 2015-02-06 | 고려대학교 산학협력단 | 암호화 문서 검색 시스템 및 방법 |
CN104615692A (zh) * | 2015-01-23 | 2015-05-13 | 重庆邮电大学 | 一种支持动态更新及多关键字安全排序的可搜索加密方法 |
CN104765848A (zh) * | 2015-04-17 | 2015-07-08 | 中国人民解放军空军航空大学 | 混合云存储中支持结果高效排序的对称可搜索加密方法 |
CN104992124A (zh) * | 2015-08-03 | 2015-10-21 | 电子科技大学 | 一种用于云存储环境的文档安全存取方法 |
CN105681280A (zh) * | 2015-12-29 | 2016-06-15 | 西安电子科技大学 | 一种云环境中基于中文的可搜索加密方法 |
CN106610995A (zh) * | 2015-10-23 | 2017-05-03 | 华为技术有限公司 | 一种创建密文索引的方法、装置及系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005119960A2 (en) * | 2004-06-01 | 2005-12-15 | Ben-Gurion University Of The Negev Research And Development Authority | Structure preserving database encryption method and system |
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 |
US8930691B2 (en) * | 2011-08-16 | 2015-01-06 | Microsoft Corporation | Dynamic symmetric searchable encryption |
US8799677B2 (en) * | 2011-12-09 | 2014-08-05 | Nec Corporation | Encrypted search database device, encrypted search data adding/deleting method and adding/deleting program |
US9646166B2 (en) * | 2013-08-05 | 2017-05-09 | International Business Machines Corporation | Masking query data access pattern in encrypted data |
US9740879B2 (en) * | 2014-10-29 | 2017-08-22 | Sap Se | Searchable encryption with secure and efficient updates |
US10282448B2 (en) * | 2014-11-18 | 2019-05-07 | Huawei International Pte. Ltd. | System and method for searching a symmetrically encrypted database for conjunctive keywords |
US9894042B2 (en) * | 2015-07-24 | 2018-02-13 | Skyhigh Networks, Inc. | Searchable encryption enabling encrypted search based on document type |
-
2017
- 2017-07-26 SG SG10201706106QA patent/SG10201706106QA/en unknown
-
2018
- 2018-07-26 CN CN201880049898.8A patent/CN110945506B/zh active Active
- 2018-07-26 WO PCT/SG2018/050371 patent/WO2019022669A1/en active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593196A (zh) * | 2008-05-30 | 2009-12-02 | 日电(中国)有限公司 | 用于快速密文检索的方法、装置和系统 |
CN103620616A (zh) * | 2013-03-28 | 2014-03-05 | 华为技术有限公司 | 一种访问控制权限管理方法和装置 |
KR101489876B1 (ko) * | 2013-08-30 | 2015-02-06 | 고려대학교 산학협력단 | 암호화 문서 검색 시스템 및 방법 |
CN104021157A (zh) * | 2014-05-22 | 2014-09-03 | 西安理工大学 | 云存储中基于双线性对的关键词可搜索加密方法 |
CN104615692A (zh) * | 2015-01-23 | 2015-05-13 | 重庆邮电大学 | 一种支持动态更新及多关键字安全排序的可搜索加密方法 |
CN104765848A (zh) * | 2015-04-17 | 2015-07-08 | 中国人民解放军空军航空大学 | 混合云存储中支持结果高效排序的对称可搜索加密方法 |
CN104992124A (zh) * | 2015-08-03 | 2015-10-21 | 电子科技大学 | 一种用于云存储环境的文档安全存取方法 |
CN106610995A (zh) * | 2015-10-23 | 2017-05-03 | 华为技术有限公司 | 一种创建密文索引的方法、装置及系统 |
CN105681280A (zh) * | 2015-12-29 | 2016-06-15 | 西安电子科技大学 | 一种云环境中基于中文的可搜索加密方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110945506A (zh) | 2020-03-31 |
WO2019022669A1 (en) | 2019-01-31 |
SG10201706106QA (en) | 2019-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8219544B2 (en) | Method and a computer program product for indexing files and searching files | |
US7519835B2 (en) | Encrypted table indexes and searching encrypted tables | |
EP3674928A1 (en) | Full-text fuzzy retrieval method for similar chinese characters in ciphertext domain | |
EP3168771B1 (en) | Poly-logarythmic range queries on encrypted data | |
US10585915B2 (en) | Database sharding | |
EP3631651B1 (en) | Method for efficient primary key based queries using atomic rdma reads on cache friendly in-memory hash index | |
CN105488050B (zh) | 一种数据库多索引方法、装置及系统 | |
US9740879B2 (en) | Searchable encryption with secure and efficient updates | |
CN107704202B (zh) | 一种数据快速读写的方法和装置 | |
US9135454B2 (en) | Systems and methods for enabling searchable encryption | |
US20170041298A1 (en) | System for accessing data | |
US20140344944A1 (en) | Dynamic database update in multi-server private information retrieval scheme | |
CN107844488B (zh) | 数据查询方法和装置 | |
CN103607420A (zh) | 面向云存储的安全电子医疗系统 | |
CN110945506B (zh) | 支持混合索引的可搜索加密 | |
CN107992569B (zh) | 数据访问方法、装置、电子设备及计算机可读存储介质 | |
CN110020272B (zh) | 缓存方法、装置以及计算机存储介质 | |
EP4047500B1 (en) | Privacy preserving data collection and analysis | |
WO2020095662A1 (ja) | 匿名化システムおよび匿名化方法 | |
Avni et al. | SSSDB: database with private information search | |
Mittal et al. | Privacy preserving synonym based fuzzy multi-keyword ranked search over encrypted cloud data | |
US11669624B2 (en) | Response-hiding searchable encryption | |
US11250151B2 (en) | Encrypted search over encrypted data with reduced volume leakage | |
US11461551B1 (en) | Secure word search | |
US20230252166A1 (en) | Searching encrypted data |
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 |