CN101957902B - 扩展盲化倒排索引表产生方法和设备、联合关键字搜索方法和设备 - Google Patents

扩展盲化倒排索引表产生方法和设备、联合关键字搜索方法和设备 Download PDF

Info

Publication number
CN101957902B
CN101957902B CN200910164561.4A CN200910164561A CN101957902B CN 101957902 B CN101957902 B CN 101957902B CN 200910164561 A CN200910164561 A CN 200910164561A CN 101957902 B CN101957902 B CN 101957902B
Authority
CN
China
Prior art keywords
key
data item
blind
identifier
encrypted
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.)
Expired - Fee Related
Application number
CN200910164561.4A
Other languages
English (en)
Other versions
CN101957902A (zh
Inventor
曾珂
福岛俊一
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.)
NEC China Co Ltd
Renesas Electronics China Co Ltd
Original Assignee
NEC China Co Ltd
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 NEC China Co Ltd filed Critical NEC China Co Ltd
Priority to CN200910164561.4A priority Critical patent/CN101957902B/zh
Publication of CN101957902A publication Critical patent/CN101957902A/zh
Application granted granted Critical
Publication of CN101957902B publication Critical patent/CN101957902B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提出了一种产生扩展盲化倒排索引表的设备,包括:键控行标识符产生器,用于针对倒排索引表的每一行,根据行标识符和第一密钥,产生第一和第二键控行标识符KRID1和KRID2;键控数据项标识符产生器,用于针对该行中的每一个数据项标识符,根据数据项标识符和第二密钥,产生键控数据项标识符KFN;盲化文件信息项产生器,用于针对该行中的每一个数据项标识符,根据第三密钥、第一和第二键控行标识符KRID1和KRID2、键控数据项标识符KFN以及生成子,产生盲化文件信息项;以及排列器,用于通过排列行标识符和盲化文件信息项,形成扩展盲化倒排索引表的一行。本发明还提出一种产生扩展盲化倒排索引表的方法。可选地,本发明还提出一种发布扩展盲化倒排索引表的联合关键字搜索权限的方法和设备以及在扩展盲化倒排索引表中执行联合搜索的方法和设备。

Description

扩展盲化倒排索引表产生方法和设备、联合关键字搜索方法和设备
技术领域
本发明涉及计算机通信网络安全领域,更具体地,涉及一种包括扩展盲化倒排索引表(EBIT)的联合关键字搜索方法和设备。
背景技术
数据存储外包是当前互联网上的一种趋势,即以全球存档服务来存储数据,而不是使用自身的本地存储器来存储数据。现在,基于互联网的在线存档服务为其终端用户提供大量的存储空间,其终端用户包括个人用户和企业。存在提供各种用户数据的存储的存档服务。例如,Amazon Simple Storage Service(Amazon S3)(参考文献[1])提供了一种网络服务接口,可用于存储和检索不限量的分类数据,以GB/月和数据传输量来计费。网络上还存在提供特定数据类型的存储的其它存档服务,尤其是敏感数据类型,例如健康记录。例如,Google Health(参考文献[2])和Microsoft HealthVault(参考文献[3])二者均提供个人健康信息综合服务,有助于其用户将分离的健康记录合并为一份综合的档案。
尽管这些存档服务带来了便捷和易用的优点,但是它们也引起了对安全性的深度担忧。尽管所有这些服务提供商都提出了适当的书面安全和隐私策略,并且采取一些信息安全和系统安全措施来执行这些策略,但是,用户仅仅依赖于存档服务提供商来确保其数据安全和隐私是危险的。无疑服务提供商可能会无法适当地执行它们的书面安全和隐私策略。
以存储客户的信用卡数据的企业为例。在2008年6月,BBC新闻报道了服装厂Cotton Traders的多达3.8万名客户的信用卡细目被盗(参考文献[4])。这种情况并不少见,而且也不是最严重的事件。Securityfocus.com(参考文献[5])报道了在2005年7月至2007年1月间,未知攻击者入侵TJX公司的计算机交易处理系统,盗取了至少4560万张信用卡的数据。
信用卡信息被认为至少与分类数据或健康记录同样敏感。因而,可以推断出,存储信用卡信息的公司具有适当的书面安全和隐私策略并且应该运用了表面上有力的安全措施来执行其策略。这些安全措施至少应该与用于保护分类数据或健康记录的安全措施一样有力。由于信用卡信息被披露的多次报道,同时注意到大量用户数据的高价值,因此,没有理由坚持认为存档服务提供商所存储的数据不会被盗和被暴露。
无论如何,存在一种应对数据安全入侵的简单对策,即在输出敏感数据之前对其加密。结果,即使存档服务受到危害,所暴露的也只是大量密文,攻击者无法从中获利。然而,这种简单对策的代价是可用性。具体地说,难以搜索输出到外部的数据。例如,如果健康记录的所有方对健康记录进行了加密,则允许授权用户搜索健康有关信息的Microsoft Live Search Health(Microsoft HealthVault的搜索组件)无法工作。(当然,我们假定数据的所有方对其隐私充分关注,因此不会与Microsoft共享他们的解密密钥。)
我们所关注的系统有三方,即数据所有方、服务器和搜索方。数据所有方对其数据文件进行索引、对其数据文件进行加密并将索引和文件输出到服务器。服务器存储加密的文件及其索引(索引表),并提供对加密文件的搜索。搜索服务器的搜索方通常不是数据所有方自己,但是,当然,搜索方也可以是数据所有方自己。为了能够搜索加密数据,搜索方需要获得从数据所有方发出的搜索权限(SC),并且搜索方需要将SC提交给服务器。服务器可以通过将SC运用于索引来搜索加密数据。除了SC之外,搜索方还需要获得数据所有方发出的解密权限(DC)。在从服务器接收到搜索结果时,搜索方将使用DC来对搜索结果进行解密,从而将数据文件恢复为明文。
一些基本的安全要求包括:
1)服务器不知道搜索方查找什么,例如,如果搜索方正在搜索包含关键字“网络”的文献,服务器应该不知道。
2)搜索方无法根据经验伪造搜索权限,例如,如果搜索方曾经被发给了搜索包含关键字“网络”的文献的SC,他应该不能够制造针对关键字“网”或“络”的SC。这同样适用于服务器,即使搜索方与服务器串通一气。
3)解密权限与SC唯一关联,例如,如果SC允许搜索包含关键字“网络”的文献,DC则仅能够对该特定SC的搜索结果进行解密。这同样适用于服务器,即使搜索方与服务器串通,即,服务器也许对其所存储的所有加密文件尝试使用DC,但是除了SC的搜索结果之外,对于其他加密文件不会发生效力。
除了上述安全要求之外,还有效率要求,例如SC的大小、索引的大小以及搜索所花费的时间等。
自从Song等人(参考文献[6])首次提出了关于如何有效地对加密数据进行关键字搜索的问题以来,加密数据的搜索引起了广泛的关注。
加密数据的搜索是不同领域的技术的融合,因而具有不同的分类标准。
1)从加密技术角度看,在秘密密钥设置中和公共密钥设置中考虑关键字搜索的加密,在秘密密钥设置中这被称为可搜索对称加密(SSE)(参考文献[6]),在公共密钥设置中这被称为公共密钥加密搜索(PEKS)(参考文献[7])。然而,值得注意的是,通过使公共密钥保密,任何PEKS方案都简单地在SSE设置中也行得通。
2)从索引技术角度看,在正向索引设置中和倒排索引设置中考虑关键字索引的加密,在正向索引设置中这被称为盲化正向索引表(BFT),在倒排索引设置中这被称为盲化倒排索引表(BIT)。
3)从搜索权限角度看,在单个关键字搜索(SKS)和联合关键作搜索(CKS)中考虑关键字搜索的加密。
4)从搜索关键字角度看,在域特定关键字(DSK)和非限定域关键字(DFK)中考虑关键字搜索的加密。
就我们所知,现有技术大多数符合SSE、BFT、SKS和DFK。也就是说,现有技术是秘密密钥设置的、基于盲化正向索引表、利用非限定域关键字、仅能够单个关键字搜索。然而,存在一些另外情况。
参考文献[8]公开了秘密密钥设置(SSE)的方案,可以以非限定域关键字(DFK)实现盲化倒排索引表(BIT)的单关键字搜索(SKS)。
注意,明文倒排索引表在处理联合关键字搜索方面非常有效。使用明文倒排索引表,仅仅需要针对每个关键字获取一组匹配文件,然后找到所有文件组的交集。例如,如果文件F1和F2符合关键字KW1而文件F1和F3符合关键字KW2,则显然,“KW1和KW2”下的联合关键字搜索的结果得到文件F1。
具体地,图1和图2以两个阶段示出了参考文献[8]的详细过程,即索引阶段(图1)和搜索阶段(图2)。参考图1和图2,数据所有方、搜索方和服务器的各个单元如下:
密钥产生单元1001产生随机文件加密密钥。
盲化单元101以主秘密密钥、文件加密密钥、加密文件的文件名(EFN)和(明文)倒排索引表作为输入,输出盲化倒排索引表(BIT)。
加密单元102以文件加密密钥和数据作为输入,输出加密数据(EF)。
权限发布单元201以秘密密钥和关键字作为输入,输出搜索权限(SC)和解密权限(DC)。
单关键字匹配单元203以SC和BIT作为输入,输出包括BIT中匹配行的相应已加密索引efij的BIT匹配结果。
BIT解密单元202以DC和BIT匹配结果作为输入,输出匹配EFN及其相应解密密钥。
EF获取单元204以匹配EFN作为输入,并从服务器中检索出EF。
EF加密单元205以得到的EF和文件解密密钥作为输入,输出已解密数据F。
表1示例明文倒排索引表
Figure G2009101645614D00051
在表1中,每一行可由不同的关键字KWi标识。跟随KWi的是包含KWi的所有文件FNu。很容易看出,明文倒排索引表的联合关键字搜索是容易的。例如,“KW2和KW3”的联合关键字搜索的唯一结果是FN2
根据参考文献[8],盲化单元101输出的BFT如下表2所示。
表2示例盲化倒排索引表
Figure G2009101645614D00052
表1中的每个KWi由EKi代替,EKi是使用数据所有方的主秘密密钥作为密钥的KWi的加密散列或键控散列(keyed hash)。
此外,表1中的每个FNu由efij(已加密索引)代替。为了计算efij,数据所有方首先针对表的每一行,使用主秘密密钥和KWi来产生不同的解密密钥eki。efij实际上是使用eki的相应ENu的(对称)加密。显然,BIT的直接联合关键字搜索是困难的。即使从明文倒排索引表看出FN2是关键字“KW2和KW3”的搜索的结果,由于ef22和ef32是经过不可分辨性的基本安全要求(也被称为“语义安全semanticsecurity”)的(对称)加密的输出,所以也不可能(通过计算)知道ef22和ef32是否是相同文件的加密。
简而言之,参考文献[8]公开了以下方法。
密钥产生:
选择对称加密算法Enckey(msg),以key和明文消息msg作为输入,输出密文。在msg是密文的情况下输出明文;
选择安全单向键控散列函数Hkey(msg),以密钥key和明文消息msg作为输入,输出摘要;
选择主秘密密钥msk。
BIT产生:
以明文倒排索引表作为输入。不失一般性地,假设表1的明文倒排索引表是输入。
选择文件加密密钥fku,并按照 EF u = En c fk u ( F u ) 加密FNu的内容,即Fu。此外,按照 CFN u = Enc fk u ( FN u ) 加密FNu以获得加密文件名。
计算EKi=Encmsk(KWi)和 ef ij = Enc H msk ( KW i ) ( fk u , CFN u ) .
如表2所示,以EKi和efij填充BIT。
注意,处于安全考虑,对称加密必须以起始向量作为附加输入。例如,计算EKi=Encmsk(KWi)的起始向量可以计算为IVi=Hmsk(KWi|″IV″),其中“|”表示级联。此外,存在以上简述的其它可选方案。例如,可以按照EKi=Hmsk(KWi|″0″)计算EKi,可以按照 ef ij = Enc H msk ( KW i | ′ ′ 1 ′ ′ ) ( fk u , CFN u ) 计算efij。关于更详细的说明,请查阅参考文献[8]。
产生SC和DC:
在搜索方想要搜索关键字KWi时,按照SC=Encmsk(KWi)计算搜索权限(SC),并按照DC=Hmsk(KWi)计算解密权限(DC)。
搜索:
在接收到SC时,服务器定位BIT中以SC作为起始的行,并将行中efij的返回给搜索方。
解密搜索结果:
搜索方使用DC来解密 ef ij = Enc H msk ( KW i ) ( fk u , CFN u ) , 并获得fku和CFNu
搜索方向服务器请求CFNu的内容,即EFu
最后,搜索方使用fku来解密CFNu和EFu,获得FNu及其内容Fu
搜索方(例如正在查找包含关键字“KW1”的文件的人)将进行以下动作:
1)向数据搜索方请求域“KW1”相对应的搜索权限和解密权限;
2)以搜索权限查询服务器,从服务器获得匹配结果;
3)对匹配结果进行解密,获得加密的文件名和文件加密密钥;
4)将加密的文件名提交给服务器,并获得加密的文件内容;
5)利用文件加密密钥来解密加密文件名和加密文件内容,最终产生明文的文件名和文件内容。
然而,明文倒排索引表的联合关键字搜索的简单性并不直接适用于盲化倒排索引表。为了保密,BIT的每一项都被加密以使得它们不可(通过计算)彼此区分开。加密的该特性被称为语义安全或不可分辨性。例如,如果使用对称加密机制来对BIT的表项进行加密,则必须使用不同的加密密钥或不同的初始向量来加密每一表项。因此,即使在明文倒排索引表中,一个文件在被转换为加密倒排索引表之后,在两行中出现(即与两个关键字匹配),因此难以通过计算分辨出。因此,即使简单地模拟明文倒排索引表的联合关键字搜索方法,也不可能进行基于BIT的联合关键字搜索。
因此,参考文献[8]不能够处理联合关键字搜索。
发明内容
鉴于现有技术的上述缺点,本发明提出了一种扩展盲化倒排索引表产生方法和设备、以及一种秘密密钥设置下的联合关键字搜索方法和设备。
根据本发明的第一方案,提出一种产生扩展盲化倒排索引表的设备,包括:键控行标识符产生器,用于针对倒排索引表的每一行,根据行标识符和第一密钥,产生第一和第二键控行标识符KRID1和KRID2;键控数据项标识符产生器,用于针对该行中的每一个数据项标识符,根据数据项标识符和第二密钥,产生键控数据项标识符KFN;盲化文件信息项产生器,用于针对该行中的每一个数据项标识符,根据第三密钥、第一和第二键控行标识符KRID1和KRID2、键控数据项标识符KFN以及生成子,产生盲化文件信息项;以及排列器,用于通过排列行标识符和盲化文件信息项,形成扩展盲化倒排索引表的一行。
优选地,所述设备还可包括:文件加密器,用于针对每一个数据项标识符,选择文件加密密钥,并利用所选的文件加密密钥来对与每一个数据项标识符相对应的文件进行加密,以获得已加密文件数据。
优选地,所述设备还可包括加密索引产生器,用于针对该行中的每一个数据项标识符,选择变换密钥,并通过用变换密钥来对数据项标识符进行加密,来产生已加密索引;已加密变换密钥产生器,用于针对该行中的每一个数据项标识符,选择一种子,根据行标识符、第一密钥、第五密钥和该种子来产生中间密钥,并通过用该中间密钥来对变换密钥进行加密,来产生已加密变换密钥;以及盲化索引产生器,用于针对该行中的每一个数据项标识符,根据该种子、第三密钥、行标识符和第一密钥来产生盲化索引,其中扩展盲化倒排索引表中的对应项至少包括根据所述数据项标识符所产生的已加密索引、已加密变换密钥、盲化文件信息项和盲化索引。
更优选地,加密索引产生器还可对已加密索引中的文件加密密钥进行加密。
更优选地,所述设备还可包括加密密钥产生器,用于根据行标识符和第四密钥来产生加密密钥,其中加密索引产生器产生已加密索引还包括:用加密密钥对变换密钥进行加密。
优选地,将每一行的关键字用作该行的行标识符。或者可选地,根据每一行的关键字和第四密钥来产生每一行的盲化关键字,并将盲化关键字用作该行的行标识符。
优选地,数据项标识符具有加密的形式,被称为已加密数据项标识符,是根据文件加密密钥由明文形式产生的。
根据本发明的第二方案,提出一种产生扩展盲化倒排索引表的方法,包括步骤:针对倒排索引表的每一行,根据行标识符和第一密钥,产生第一和第二键控行标识符KRID1和KRID2;针对该行中的每一个数据项标识符,根据数据项标识符和第二密钥,产生键控数据项标识符KFN;根据第三密钥、第一和第二键控行标识符KRID1和KRID2、键控数据项标识符KFN以及生成子,产生盲化文件信息项;以及通过排列行标识符和盲化文件信息项,形成扩展盲化倒排索引表的一行。
优选地,所述方法还可包括步骤:针对每一个数据项标识符,选择文件加密密钥,其中利用所选的文件加密密钥来对与每一个数据项标识符相对应的文件进行加密,以获得已加密文件数据。
优选地,所述方法还可包括步骤:针对该行中的每一个数据项标识符,选择变换密钥;通过用变换密钥来对数据项标识符进行加密,来产生已加密索引;选择一种子;根据行标识符、第一密钥、第五密钥和该种子来产生中间密钥;通过用该中间密钥来对变换密钥进行加密,来产生已加密变换密钥;以及根据该种子、第三密钥、行标识符和第一密钥来产生盲化索引,其中扩展盲化倒排索引表中的对应项至少包括根据所述数据项标识符所产生的已加密索引、已加密变换密钥、盲化文件信息项和盲化索引。
更优选地,文件加密密钥还被加密在已加密索引中。
更优选地,所述方法还可包括步骤:根据行标识符和第四密钥来产生加密密钥,并且其中产生已加密索引还包括步骤:用加密密钥对变换密钥进行加密。
优选地,将每一行的关键字用作该行的行标识符。或者可选地,根据每一行的关键字和第四密钥来产生每一行的盲化关键字,并将盲化关键字用作该行的行标识符。
优选地,数据项标识符具有加密的形式,被称为已加密数据项标识符,是根据文件加密密钥由明文形式产生的。
根据本发明的第三方案,提出一种发布扩展盲化倒排索引表的联合关键字搜索权限的设备,包括:键控行标识符产生器,用于针对一组t个查询关键字,根据各个查询关键字和第一密钥,产生与各个查询关键字一一对应的第一和第二键控行标识符KRID1和KRID2;以及联合关键字搜索权限产生器,用于针对该组t个查询关键字,选择一种子,并根据第三密钥、所有产生的第一和第二键控行标识符KRID1和KRID2、种子和生成子,来产生联合关键字搜索权限。
优选地,所述设备还可包括:盲化关键字产生器,用于在最开始,根据第四密钥和各个查询关键字,产生与各个查询关键字一一对应的t个盲化关键字,其中在键控行标识符产生器和联合关键字搜索权限产生器中,以所述t个盲化关键字替换所述t个查询关键字。
优选地,扩展盲化倒排索引表中的项至少包括根据同一个数据项标识符而产生的已加密索引、已加密变换密钥、盲化文件信息项和盲化索引。
优选地,所述设备还可包括:解密权限产生器,用于从该组t个查询关键字中选择一个查询关键字,根据第三密钥、所有产生的第一键控行标识符KRID1、所选的一个查询关键字、第一密钥以及第五密钥,来产生解密权限。
优选地,所述设备还可包括查询表达式解析器,用于在最开始,将关键字的复杂查询表达式解析为由逻辑OR运算符连接的一系列关键字AND子查询表达式,其中对于每个关键字AND子查询表达式,发布一个联合关键字搜索权限。
根据本发明的第四方案,提出一种发布扩展盲化倒排索引表的联合关键字搜索权限的方法,包括步骤:针对一组t个查询关键字,根据各个查询关键字和第一密钥,产生与各个查询关键字一一对应的第一和第二键控行标识符KRID1和KRID2;选择一种子;以及根据第三密钥、所有产生的第一和第二键控行标识符KRID1和KRID2、种子和生成子,来产生联合关键字搜索权限。
优选地,在最开始,根据第四密钥和各个查询关键字,产生与各个查询关键字一一对应的t个盲化关键字,然后在各个步骤中,以所述t个盲化关键字被用于替换所述t个查询关键字。
优选地,扩展盲化倒排索引表中的项至少包括根据同一个数据项标识符而产生的已加密索引、已加密变换密钥、盲化文件信息项和盲化索引。
优选地,所述方法还可包括:从该组t个查询关键字中选择一个查询关键字;根据第三密钥、所有产生的第一键控行标识符KRID1、所选的一个查询关键字、第一密钥以及第五密钥,来产生解密权限。
优选地,所述方法还可包括:在最开始,将关键字的复杂查询表达式解析为由逻辑OR运算符连接的一系列关键字AND子查询表达式,以及对于每个关键字AND子查询表达式,分别执行后续各个步骤。
根据本发明的第五方案,提出一种在扩展盲化倒排索引表中执行联合搜索的设备,包括:接收器,用于接收一组t个查询标识符和与之对应的联合搜索权限;行定位器,用于通过使用所述t个查询标识符作为行标识符,定位扩展盲化倒排索引表中分别与t个查询标识符相对应的t行;匹配结果命中器,用于针对来自所定位t行的每一行的t个盲化文件信息项的每个组合,如果从t个盲化文件信息项的第一子项和联合搜索权限的第一子搜索权限所获得的第一标准值与第二标准值相等,其中第二标准值是按照与第一标准值相同的方式、从t个盲化文件信息项的第二子项和联合搜索权限的第二子搜索权限所获得的,则确定匹配结果命中,并基于组合的t个盲化文件信息项的任何一个来记录该匹配结果。
优选地,该组t个查询标识符是明文形式的一组t个查询关键字。或者可选地,该组t个查询标识符是与各个查询关键字一一对应的、根据第四密钥和各个查询关键字所产生的一组t个盲化关键字。
优选地,扩展盲化倒排索引表中的项至少包括根据同一个数据项标识符而产生的已加密索引、已加密变换密钥、盲化文件信息项和盲化索引,每一个记录的匹配结果包括来自组合的t个盲化文件信息项中的任何一个所属的项的已加密索引和已加密变换密钥、和来自组合的t个盲化文件信息项分别所属的各个项的t个盲化索引。
更优选地,接收器还可接收解密权限,所述设备还包括:匹配结果解密器,用于针对每一个记录的匹配结果,根据解密权限和t个盲化索引,产生中间密钥,利用中间密钥对已加密变换密钥进行解密以获得变换密钥,并用变换密钥对已加密索引进行解密以获得文件加密密钥和数据项标识符。
更优选地,数据项标识符具有加密形式,被称为已加密数据项标识符,所述设备还包括已加密数据项标识符解密器,用于利用文件加密密钥来对已加密数据项标识符进行解密以获得明文形式的数据项标识符。
优选地,所述设备还包括:已加密文件数据解密器,用于针对每一个记录的匹配结果,利用文件加密密钥来对与匹配结果的数据项标识符相对应的已加密文件数据进行解密。
优选地,所述设备还可包括:查询表达式解析器,用于在最开始,将查询标识符的复杂查询表达式解析为由逻辑OR运算符连接的一系列查询标识符AND子查询表达式,其中对于每个查询标识符AND子查询表达式,执行一次扩展盲化倒排索引表中的联合搜索;并且所述设备还可包括:合并器,用于在匹配结果命中器记录了每个AND子查询表达式的匹配结果之后,合并器合并所述一系列AND子查询表达式的所有记录的匹配结果。
更优选地,在所述合并中,合并器可消除记录的匹配结果中的冗余。
根据本发明的第六方案,提出一种在扩展盲化倒排索引表中执行联合搜索的方法,包括步骤:接收一组t个查询标识符和与之对应的联合搜索权限;通过使用所述t个查询标识符作为行标识符,定位扩展盲化倒排索引表中分别与t个查询标识符相对应的t行;针对来自所定位t行的每一行的t个盲化文件信息项的每个组合,如果从t个盲化文件信息项的第一子项和联合搜索权限的第一子搜索权限所获得的第一标准值与第二标准值相等,其中第二标准值是按照与第一标准值相同的方式、从t个盲化文件信息项的第二子项和联合搜索权限的第二子搜索权限所获得的,则确定匹配结果命中;以及基于组合的t个盲化文件信息项的任何一个来记录该匹配结果。
优选地,该组t个查询标识符是明文形式的一组t个查询关键字。或者可选地,该组t个查询标识符是与各个查询关键字一对应的、根据第四密钥和各个查询关键字所产生的一组t个盲化关键字。
优选地,扩展盲化倒排索引表中的项至少包括根据同一个数据项标识符而产生的已加密索引、已加密变换密钥、盲化文件信息项和盲化索引,每一个记录的匹配结果包括来自组合的t个盲化文件信息项中的任何一个所属的项的已加密索引和已加密变换密钥、和来自组合的t个盲化文件信息项分别所属的各个项的t个盲化索引。
更优选地,所述方法还可包括:接收解密权限;针对每一个记录的匹配结果,根据解密权限和t个盲化索引,产生中间密钥;利用中间密钥对已加密变换密钥进行解密以获得变换密钥;以及用变换密钥对已加密索引进行解密以获得文件加密密钥和数据项标识符。
更优选地,数据项标识符具有加密形式,被称为已加密数据项标识符,所述方法还包括步骤:利用文件加密密钥来对已加密数据项标识符进行解密,以获得明文形式的数据项标识符。
优选地,所述方法还包括:针对每一个记录的匹配结果,利用文件加密密钥来对与匹配结果的数据项标识符相对应的已加密文件数据进行解密。
优选地,所述方法还可包括:在最开始,将查询标识符的复杂查询表达式解析为由逻辑OR运算符连接的一系列查询标识符AND子查询表达式;对于每个查询标识符AND子查询表达式,分别执行后续各个步骤;以及在记录了每个AND子查询表达式的匹配结果之后,合并所述一系列AND子查询表达式的所有记录的匹配结果。
更优选地,在所述合并步骤中,消除所记录的匹配结果中的冗余。
与最接近的现有技术相比,本发明的积极效果包括:
(I)能够对盲化倒排索引表进行联合关键字搜索;以及
(II)能够以合理的计算和存储开销来进行联合关键字搜索。
附图说明
结合附图,根据下面对本发明的非限制性实施例的详细描述,本发明的上述及其他目的、特征和优点将变得更加清楚,附图中:
图1是示出了根据参考文献[8]、在索引阶段工作的各个单元的方框图;
图2是示出了根据参考文献[8]、在搜索阶段工作的各个单元的方框图;
图3是示出了根据本发明第一实施例、在索引阶段工作的各个单元的方框图;
图4是示出了根据本发明第一实施例、在搜索阶段工作的各个单元的方框图;以及
图5是示出了根据本发明第二实施例、在搜索阶段工作的各个单元的方框图。
具体实施方式
下面,根据附图描述本发明。在以下描述中,一些具体实施例仅用于描述目的,而不应该理解为对本发明有任何限制,而只是本发明的示例。省略了常规结构或构造,以免导致对本发明的理解不清楚。
[第一实施例]
根据本发明的第一实施例,图3和图4以两个阶段示出了所提出的联合关键字搜索方案的详细过程,即索引阶段(图3)和搜索阶段(图4)。在所提出的联合关键字搜索方案中,涉及扩展盲化倒排索引表(EBIT)。参考图3和图4,数据所有方、搜索方和服务器的各个单元如下:
密钥产生单元3001产生随机文件加密密钥和变换密钥。
扩展盲化单元301以主秘密密钥、文件加密密钥、加密文件的文件名(EFN)、变换密钥和(明文)倒排索引表作为输入,输出扩展盲化倒排索引表(EBIT)。除了已加密索引之外,EBIT中的每一个表项还包含盲化文件信息和盲化变换索引。
扩展权限发布单元401以主秘密密钥和关键字作为输入,输出扩展搜索权限(SC),扩展搜索权限(SC)允许对每个关键字进行单关键字搜索和联合关键字搜索。此外,还输出扩展解密权限(DC),扩展解密权限(DC)仅能够对联合搜索结果进行解密。
联合关键字匹配单元407以单关键字匹配单元403的输出以及扩展SC作为输入,输出第二级EBIT匹配结果,第二级EBIT匹配结果仅包含联合关键字搜索结果的已加密索引和盲化变换密钥。
变换密钥恢复单元406以盲化变换密钥和扩展DC作为输入,输出变换密钥。
EBIT解密单元402以变换密钥和已加密索引作为输入,输出匹配的EFN及其对应解密密钥。
◆所有其它单元(302、402、404和405)与在本说明书“背景技术”部分所描述的单元(102、202、204和205)执行相同的操作,因此为了简明起见,在此省略了对这些单元的详细说明。
场景描述
首先给出所提出的包括扩展盲化倒排索引表(EBIT)的联合关键字搜索方案的概述。
不失一般性地,以示例的明文倒排索引表开始。示例的明文倒排索引表如表1,与在本说明书“背景技术”部分中所给出的表1相同。
表1示例明文倒排索引表
Figure G2009101645614D00151
在表1中,每一行可由不同的关键字KWi标识。跟随KWi的是包含KWi的所有文件FNu。很容易看出,明文倒排索引表的联合关键字搜索是容易的。例如,“KW2和KW3”的联合关键字搜索的唯一结果是FN2
下面描述使用新颖EBIT方案的针对BIT的联合关键字搜索,其中上表1被扩展盲化单元301转换为下表3。
表3示例的扩展盲化倒排索引表
表3中的EKi与表2中的EKi完全相同。
表3中的efij与表2中的efij稍有不同。为了计算efij,针对表的每一行,数据所有方首先使用主秘密密钥和KWi来产生不同的加密密钥eki。然后,数据所有方针对每一个FNu而选择变换密钥tkij。最后,efij具有两个部分,即efij.A和efij.B。efij.A是使用eki的tkij的(对称)加密,efij.B是使用tkij的对应fku和CFNu的(对称)加密。
与表2相比,表3中的Wij(盲化文件信息)、EFij(已加密变换密钥)和Vij(盲化索引)是新引入的。稍后,将对这三个数据项进行详细说明。接下来,概述搜索方和服务器如何基于所产生的EBIT来实现联合关键字搜索。
搜索方(例如,正在查找包含关键字“KW2和KW3”的文件的人)从数据所有方接收到所需的SC和DC。在该特定示例中,除了其它数据之外,SC还包含EK2和EK3。因此,服务器在从搜索方接收到SC时可以快速地定位以EK2和EK3作为起始的两行。接下来,使用SC中的其它数据,服务器可比较盲化文件信息W2u和W3v是否是相同文件信息的加密。在该特定示例中,服务器最后获得只有W22和W31是相同文件信息的加密的搜索结果,这表示:(EF22,V22)和(EF31,V31)是关键字EK2和EK3的联合搜索的结果。
由于(EF22,V22)和(EF31,V31)的解密是相同的文件,所以仅将已加密变换密钥中的一个返回给搜索方。在该特定示例中,不失一般性地,假设搜索方最后从服务器接收到(EF22,V22,V31)作为搜索结果。搜索结果还包括ef22.B
注意,作为搜索结果,V22和V31都需要。这是为了满足DC仅能够对该特定SC的搜索结果进行解密的安全要求。DC对于SC的搜索结果之外的搜索结果均不起作用。
在接收到(EF22,V22,V31)时,搜索方首先使用DC、V22和V31恢复中间密钥ink22。然后,搜索方可以使用ink22对EF22进行解密,得到变换密钥tk22。由于ef22.B是使用tk22的fk2和CFN2的加密,所以搜索方最终获得明文的内容FN2
[第二实施例]
上述第一实施例仅考虑AND查询,并未考虑组合了AND和OR的复杂查询表达式,例如“(KW1OR KW2)AND(KW3OR KW4)”。第二实施例可以处理这种复杂查询表达式。
根据本发明的第二实施例,图5示出了所提出的联合关键字搜索方案在搜索阶段(图5)的详细过程。在所提出的联合关键字搜索方案中,涉及扩展盲化倒排索引表(EBIT),并且索引阶段与本发明的第一实施例(图3)类似。参考图3和图5,数据所有方、搜索方和服务器的各个单元如下:
◆除了查询解析单元608和后处理单元609之外的所有单元与第一实施例中的单元执行相同的操作,因此为了简明起见,在此省略了对这些单元的详细说明。
查询解析单元608以(可能复杂的)联合关键字查询作为输入,将其解析为一系列AND子查询表达式。
后处理单元609以匹配的EFN作为输入,消除其中冗余的EFN。
场景描述
在第二实施例中,搜索方和/或数据所有方还附加地配备有查询表达式解析单元608(具体地,在图5中,搜索方配备有查询表达式解析单元),并且搜索方还附加地配备有后处理单元609。
在第二实施例中,查询表达式解析单元608将复杂查询表达式解析为一系列AND子查询表达式。例如,“(KW1OR KW2)AND(KW3ORKW4)”可被解析为“(KW1AND KW3)OR(KW1AND KW4)OR(KW2AND KW3)OR(KW2AND KW4)”。很容易可以看出,可以通过逐一进行AND子查询表达式,实现复杂查询表达式。由于AND子查询表达式的搜索结果具有冗余文件,所以后处理单元609合并AND子查询表达式的搜索结果,并消除冗余。
[详细原理说明]
使用传统的乘法群标记,代替通常在椭圆曲线设置中使用的加法标记。
假设G1=<g1>和G2=<g2>是两个有限循环群,具有附加的群使得
Figure G2009101645614D00182
其中p是某个大的素数。双线性映射
Figure G2009101645614D00183
是具有如下效果的函数:
■双线性的:对于所有
Figure G2009101645614D00184
Figure G2009101645614D00185
对于所有
Figure G2009101645614D00186
e(h1 a,h2 b)=e(h1,h2)ab
■非退化的:
Figure G2009101645614D00187
Figure G2009101645614D00188
使得e(h1,h2)≠I,其中I是
Figure G2009101645614D00189
的单位元素;以及
■可计算的:存在计算e的有效算法。
假设存在针对输入安全参数lk的设置算法Setup(·),输出双线性映射的上述设置。该过程被表示为
由于
Figure G2009101645614D001811
Figure G2009101645614D001812
都具有相同的素数阶p,因此根据双线性特性以及非退化特性,很容易可以看出
Figure G2009101645614D001813
现在,详细描述涉及EBIT的联合关键字搜索方案。假设明文倒排索引表如下:对于以关键字KWi起始的每一行,存在一组匹配明文文件Fu,其明文文件名由FNu表示。表1示出了这种明文倒排索引表。
密钥产生:
a)
Figure G2009101645614D00191
b)选择
Figure G2009101645614D00192
c)选择安全的单向散列函数
Figure G2009101645614D00193
d)选择键控散列函数
Figure G2009101645614D00194
其中K是密钥。
公共密钥是
Figure G2009101645614D00195
Figure G2009101645614D00196
和HK。秘密密钥是(x,y,z)。
EBIT产生:
针对每一行,基于明文倒排索引表(如表1所示),计算KWi的加密或键控散列:EKi=Encmsk(KWi),加密密钥eki=Hmsk(KWi)。
对于每个FNu,选择文件加密密钥并将其用于对FNu及其内容Fu进行加密,产生密文文件名CFNu和密文的Fu
假设FNu出现在KWi以作为起始的第i行的第j列,则选择变换密钥
Figure G2009101645614D00198
并计算已加密索引:
ef ij = { ef ij , A = Enc ek i ( tk ij ) , ef ij , B = Enc tk ij ( fk u , CFN u ) } , 将其填入表项。
通过以下过程来计算表3所示的附加数据项:
a)对于每一个文件FNu,随机地选择种子
Figure G2009101645614D001910
例如,首先选择
Figure G2009101645614D001911
然后计算
Figure G2009101645614D001912
b)对于每个 ef ij = { ef ij , A = Enc ek i ( tk ij ) , ef ij , B = Enc tk ij ( fk u , CFN u ) } , 计算中间密钥
Figure G2009101645614D001914
和+已加密变换密钥 EF ij = Enc K ui ( tk ij ) .
C)对于每个 ef ij = { ef ij , A = Enc ek i ( tk ij ) , ef ij , B = Enc tk ij ( fk u , CFN u ) } , 计算盲化文件信息项 W ij = W ij , A = g 1 ( z + H x ( KW i , 1 ) ) &CenterDot; H &rho; ( CFN u ) W ij , B = g 1 ( z + H x ( KW i , 2 ) ) &CenterDot; H &rho; ( CFN u ) , 和盲化索引 V ij = h u z + H x ( KW i , 1 ) .
权限发布:
执行以下过程来计算目标关键字{KW′v}的搜索权限,其中{KW′v}属于域Rv并且1≤|{KW′v}|=t。
a)按照{EKv=Hmsk(KW′v}计算单关键字搜索(SKS)权限。
b)如下计算根联合关键字搜索权限
SC &prime; = { SC A &prime; = g 2 1 / ( tz + &Sigma; v H x ( K W v &prime; , 1 ) ) , SC B &prime; = g 2 1 / ( tz + &Sigma; v H x ( K W v &prime; , 2 ) ) } .
c)计算根解密权限: DC &prime; = SC A &prime; y .
d)选择一个目标关键字KW′μ∈{KW′v}并计算其对应解密权限:
DC = DC &prime; H x ( K W &mu; &prime; , 0 ) .
e)选择种子
Figure G2009101645614D00204
计算联合关键字搜索权限:
SC = { { EK v } , EK &mu; , SC A = SC A &prime; &gamma; , SC B = SC B &prime; &gamma; } .
最后,权限是SC和DC。
搜索:
a)首先使用SKS搜索权限{EKv}来定位EBIT中的t行和对应的
W v j v = W v j v . A = g 1 ( z + H x ( K W v &prime; , 1 ) ) &CenterDot; H &rho; ( CFN u ) W vj v . B = g 1 ( z + H x ( K W v &prime; , 2 ) ) &CenterDot; H &rho; ( CFN u ) , .
b)对于t行中t个的每一种组合,分别计算
Figure G2009101645614D00208
c)如果
Figure G2009101645614D00209
则找到了联合关键字搜索的匹配。匹配项被记录为
Figure G2009101645614D002010
最后,联合关键字搜索输出是匹配
Figure G2009101645614D002011
这里,
Figure G2009101645614D00211
Figure G2009101645614D00212
是由EKμ标识的行中的表项。换言之,除了
Figure G2009101645614D00213
仅将属于由EKμ标识的行的匹配项返回给搜索方。对于匹配项,必须在等式
Figure G2009101645614D00214
中涉及
Figure G2009101645614D00215
注意,当且仅当用相同的Hρ(CFNu)产生了所有的
Figure G2009101645614D00216
时,
Figure G2009101645614D00217
解密:
a)对于每一个搜索结果
Figure G2009101645614D00218
计算中间密钥
Figure G2009101645614D00219
b)使用对应密钥K来解密每个
Figure G2009101645614D002110
以获得变换密钥
Figure G2009101645614D002111
c)使用变换密钥
Figure G2009101645614D002112
来解密
Figure G2009101645614D002113
以获得文件加密密钥fku和密文文件名CFNu
d)最后,检索由CFNu标识的加密文件,并使用fku来对CFNu和加密文件进行解密,得到明文文件名FNu和明文文件内容。
在前提条件下,很容易验证
Figure G2009101645614D002115
应该注意,本领域技术人员所公知的,可以以多种显而易见的方式对上述方案进行改进。例如,不必使用相同的文件加密密钥fku来加密FNu及其内容Fu。此外,取决于所希望的加密等级,完全可以不必加密FNu
对于其它示例,可以按照 V ij = h u z + H x ( K W i , 2 ) V ij = h u z + H x ( K W i , 3 ) 计算盲化索引 V ij = h u z + H x ( K W i , 1 ) , 并相应地,按照 DC &prime; = ( g 2 1 / ( tz + &Sigma; v H x ( K W v &prime; , 2 ) ) ) y DC &prime; = ( g 2 1 / ( tz + &Sigma; v H x ( K W v &prime; , 3 ) ) ) y 计算DC′。此外,可以使用不同的z1、z2和z3来计算Wij和Vij,使得 W ij = W ij , A = g 1 ( z 1 + H x ( K W i , 1 ) ) &CenterDot; H &rho; ( CFN u ) W ij , B = g 1 ( z 2 + H x ( K W i , 2 ) ) &CenterDot; H &rho; ( CFN u ) , V ij = h u z 3 + H x ( K W i , 1 ) . 结果,DC′和SC′被计算为 DC &prime; = ( g 2 1 / ( tz 3 + &Sigma; v H x ( K W v &prime; , 1 ) ) ) y SC &prime; = { SC A &prime; = g 2 1 / ( tz 1 + &Sigma; v H x ( K W v &prime; , 1 ) ) , SC B &prime; = g 2 1 / ( tz 2 + &Sigma; v H x ( K W v &prime; , 2 ) ) } . 此外,很容易想到如下变体:根据 V ij = h u z 3 + H x 2 ( K W i , 1 ) , 使用不同的密钥x2来计算x2。另一方面,取决于所希望的安全等级,可以减少密钥数目。例如,可以将相同的密钥用于(msk,x,y,z,ρ),即msk=x=y=z=ρ。
作为另一示例,存在实现Hx(KWi,1)以及Hx(KWi,2)的多种方法。一般地,可以将两个不同的比特串用作键控散列函数的输入,以分别代替“1”和“2”。
最后但并非最不重要的,可以从efij中省略 ef ij , A = Enc ek i ( tk ij ) . 由于本发明的方案允许1≤|{KW′v}|=t,所以|{KW′v}|=1的特殊情况可以很好地给搜索方提供解密权限,而不需要efij.A。然而,在efij中包括efij.A可以加速单关键字搜索情况下的关键字搜索速度。实际上,这只是参考文献[8]的教导。
[改进]
可选方案1:
尽管上述基本方案仅涉及诸如KW1∧KW2之类的AND查询,但是很容易使用该基本方案作为构建模块来处理组合有AND和OR查询的复杂查询表达式。例如,可以通过执行AND子查询表达式(ASQ)(KW1∧KW2)和(KW3∧KW4),并合并两个AND子查询表达式的搜索结果,来进行复杂查询表达式(KW1∧KW2)∨(KW3∧KW4)。再如,可以首先将复杂查询表达式(KW1∨KW2)∧(KW3∨KW4)解析为如下一系列AND子查询表达式:
(KW1∧KW3)∨(KW1∧KW4)∨(KW2∧KW3)∨(KW2∧KW4)。
然后,分别执行ASQ,并合并不同ASQ的搜索结果,得到复杂查询表达式(KW1∨KW2)∧(KW3∨KW4)的搜索结果。
以上关于如何处理合并有AND和OR查询的复杂查询表达式的说明表明还需要额外的附加单元,具体地,还需要查询表达式解析单元和后处理单元。
搜索方和/或数据所有方可能需要查询表达式解析单元,将输入查询表达式(可能是复杂查询表达式)解析为一系列ASQ。如上所述,ASQ由逻辑OR运算符连接。
此外,搜索方可能需要后处理器单元。后处理单元检查所有ASQ的输出,通过消除冗余来合并这些输出。冗余是由于一个密文文件名可能是多个ASQ的搜索结果而引起的。在后处理单元消除了冗余之后,在最终的(复杂查询表达式的)联合搜索结果中,不存在出现两次的密文文件名。
以上描述仅给出了本发明的优选实施例,而并不是要以任何方式限制本发明。因此,在本发明精神和原理内进行的任何修改、替换、改进等应该由本发明范围所涵盖。
参考文献列表
[1]Amazon Simple Storage Service(Amazon S3),http://aws.amazon.com/s3
[2]Google Health,https://www.google.com/health
[3]Microsoft HealthVault,http://www.healthvault.com
[4]Card details stolen in web hack,BBC news,http://news.bbc.co.uk/2/hi/technology/7446871.stm
[5]TJX theft tops 45.6million card numbers,reported bySecurityFocus.com,http://www.securityfocus.com/news/11455
[6]D.Song,D.Wagner,A.Perrig,Practical techniques forsearches on encrypted data,in Proceedings of IEEESymposium on Security and Privacy’00,pp.44-55,2000;
[7]D.Boneh,G.D.Crescenzo,R.Ostrovsky,G.Persiano.Public Key Encryption with Keyword Search.InProceeding of EuroCrypt’04,LNCS 3027,pp.506-522,2004;
[8]中国发明专利申请,申请号:CN 200810145083.8,发明名称:“用于快速密文检索的方法、装置和系统”。

Claims (44)

1.一种产生扩展盲化倒排索引表的设备,包括:
键控行标识符产生器,用于针对倒排索引表的每一行,根据行标识符和第一密钥,产生第一和第二键控行标识符KRID1和KRID2
键控数据项标识符产生器,用于针对该行中的每一个数据项标识符,根据数据项标识符和第二密钥,产生键控数据项标识符KFN;
盲化文件信息项产生器,用于针对该行中的每一个数据项标识符,根据第三密钥、第一和第二键控行标识符KRID1和KRID2、键控数据项标识符KFN以及生成子,产生盲化文件信息项;以及
排列器,用于通过排列行标识符和盲化文件信息项,形成扩展盲化倒排索引表的一行。
2.根据权利要求1所述的设备,还包括:
文件加密器,用于针对每一个数据项标识符,选择文件加密密钥,并利用所选的文件加密密钥来对与每一个数据项标识符相对应的文件进行加密,以获得已加密文件数据。
3.根据权利要求1所述的设备,还包括:
加密索引产生器,用于针对该行中的每一个数据项标识符,选择变换密钥,并通过用变换密钥来对数据项标识符进行加密,来产生已加密索引;
加密变换密钥产生器,用于针对该行中的每一个数据项标识符,选择一种子,根据行标识符、第一密钥、第五密钥和该种子来产生中间密钥,并通过用该中间密钥来对变换密钥进行加密,来产生已加密变换密钥;以及
盲化索引产生器,用于针对该行中的每一个数据项标识符,根据该种子、第三密钥、行标识符和第一密钥来产生盲化索引,
其中扩展盲化倒排索引表中的对应项至少包括根据所述数据项标识符所产生的已加密索引、已加密变换密钥、盲化文件信息项和盲化索引。
4.根据权利要求3所述的设备,其中
加密索引产生器还对已加密索引中的文件加密密钥进行加密。
5.根据权利要求3所述的设备,还包括:
加密密钥产生器,用于根据行标识符和第四密钥来产生加密密钥,并且
其中加密索引产生器产生已加密索引还包括:用加密密钥对变换密钥进行加密。
6.根据权利要求1~5之一所述的设备,其中
将每一行的关键字用作该行的行标识符。
7.根据权利要求1~5之一所述的设备,其中
根据每一行的关键字和第四密钥来产生每一行的盲化关键字,并将盲化关键字用作该行的行标识符。
8.根据权利要求1~5之一所述的设备,其中
数据项标识符具有加密的形式,被称为已加密数据项标识符,是根据文件加密密钥由明文形式产生的。
9.一种产生扩展盲化倒排索引表的方法,包括步骤:
针对倒排索引表的每一行,根据行标识符和第一密钥,产生第一和第二键控行标识符KRID1和KRID2
针对该行中的每一个数据项标识符,
根据数据项标识符和第二密钥,产生键控数据项标识符KFN;
根据第三密钥、第一和第二键控行标识符KRID1和KRID2、键控数据项标识符KFN以及生成子,产生盲化文件信息项;以及通过排列行标识符和盲化文件信息项,形成扩展盲化倒排索引表的一行。
10.根据权利要求9所述的方法,还包括步骤:
针对每一个数据项标识符,选择文件加密密钥,
其中利用所选的文件加密密钥来对与每一个数据项标识符相对应的文件进行加密,以获得已加密文件数据。
11.根据权利要求9所述的方法,还包括步骤:
针对该行中的每一个数据项标识符,
选择变换密钥;
通过用变换密钥来对数据项标识符进行加密,来产生已加密索引;
选择一种子;
根据行标识符、第一密钥、第五密钥和该种子来产生中间密钥;
通过用该中间密钥来对变换密钥进行加密,来产生已加密变换密钥;以及
根据该种子、第三密钥、行标识符和第一密钥来产生盲化索引,
其中扩展盲化倒排索引表中的对应项至少包括根据所述数据项标识符所产生的已加密索引、已加密变换密钥、盲化文件信息项和盲化索引。
12.根据权利要求11所述的方法,其中
文件加密密钥还被加密在已加密索引中。
13.根据权利要求11所述的方法,还包括步骤:
根据行标识符和第四密钥来产生加密密钥,并且
其中产生已加密索引还包括:用加密密钥对变换密钥进行加密。
14.根据权利要求9~13之一所述的方法,其中
将每一行的关键字用作该行的行标识符。
15.根据权利要求9~13之一所述的方法,其中
根据每一行的关键字和第四密钥来产生每一行的盲化关键字,并将盲化关键字用作该行的行标识符。
16.根据权利要求9~13之一所述的方法,其中
数据项标识符具有加密的形式,被称为已加密数据项标识符,是根据文件加密密钥由明文形式产生的。
17.一种发布扩展盲化倒排索引表的联合关键字搜索权限的设备,包括:
键控行标识符产生器,用于针对一组t个查询关键字,其中t是大于等于1的整数,根据各个查询关键字和第一密钥,产生与各个查询关键字一一对应的第一和第二键控行标识符KRID1和KRID2;以及
联合关键字搜索权限产生器,用于针对该组t个查询关键字,选择一种子,并根据第三密钥、所有产生的第一和第二键控行标识符KRID1和KRID2、种子和生成子,来产生联合关键字搜索权限。
18.根据权利要求17所述的设备,还包括:
盲化关键字产生器,用于在最开始,根据第四密钥和各个查询关键字,产生与各个查询关键字一一对应的t个盲化关键字,
其中在键控行标识符产生器和联合关键字搜索权限产生器中,以所述t个盲化关键字替换所述t个查询关键字。
19.根据权利要求17所述的设备,其中
扩展盲化倒排索引表中的项至少包括根据同一个数据项标识符而产生的已加密索引、已加密变换密钥、盲化文件信息项和盲化索引。
20.根据权利要求17所述的设备,还包括:
解密权限产生器,用于从该组t个查询关键字中选择一个查询关键字,根据第三密钥、所有产生的第一键控行标识符KRID1、所选的一个查询关键字、第一密钥以及第五密钥,来产生解密权限。
21.根据权利要求17~20之一所述的设备,还包括:
查询表达式解析器,用于在最开始,将关键字的复杂查询表达式解析为由逻辑OR运算符连接的一系列关键字AND子查询表达式,
其中对于每个关键字AND子查询表达式,发布一个联合关键字搜索权限。
22.一种发布扩展盲化倒排索引表的联合关键字搜索权限的方法,包括步骤:
针对一组t个查询关键字,其中t是大于等于1的整数,
根据各个查询关键字和第一密钥,产生与各个查询关键字一一对应的第一和第二键控行标识符KRID1和KRID2
选择一种子;以及
根据第三密钥、所有产生的第一和第二键控行标识符KRID1和KRID2、种子和生成子,来产生联合关键字搜索权限。
23.根据权利要求22所述的方法,其中
在最开始,根据第四密钥和各个查询关键字,产生与各个查询关键字一一对应的t个盲化关键字,然后在各个步骤中,以所述t个盲化关键字替换所述t个查询关键字。
24.根据权利要求22所述的方法,其中
扩展盲化倒排索引表中的项至少包括根据同一个数据项标识符而产生的已加密索引、已加密变换密钥、盲化文件信息项和盲化索引。
25.根据权利要求22所述的方法,还包括:
从该组t个查询关键字中选择一个查询关键字;以及
根据第三密钥、所有产生的第一键控行标识符KRID1、所选的一个查询关键字、第一密钥以及第五密钥,来产生解密权限。
26.根据权利要求22~25之一所述的方法,还包括:
在最开始,将关键字的复杂查询表达式解析为由逻辑OR运算符连接的一系列关键字AND子查询表达式,以及
对于每个关键字AND子查询表达式,
分别执行后续各个步骤。
27.一种在扩展盲化倒排索引表中执行联合搜索的设备,包括:
接收器,用于接收一组t个查询标识符和与之对应的联合搜索权限,其中t是大于等于1的整数;
行定位器,用于通过使用所述t个查询标识符作为行标识符,定位扩展盲化倒排索引表中分别与t个查询标识符相对应的t行;
匹配结果命中器,用于针对来自所定位t行的每一行的t个盲化文件信息项的每个组合,
如果从t个盲化文件信息项的第一子项和联合搜索权限的第一子搜索权限所获得的第一标准值与第二标准值相等,其中第二标准值是按照与第一标准值相同的方式、从t个盲化文件信息项的第二子项和联合搜索权限的第二子搜索权限所获得的,则确定匹配结果命中,以及
基于组合的t个盲化文件信息项的任何一个来记录该匹配结果。
28.根据权利要求27所述的设备,其中
该组t个查询标识符是明文形式的一组t个查询关键字。
29.根据权利要求27所述的设备,其中
该组t个查询标识符是与各个查询关键字一一对应的、根据第四密钥和各个查询关键字所产生的一组t个盲化关键字。
30.根据权利要求27所述的设备,其中
扩展盲化倒排索引表中的项至少包括根据同一个数据项标识符而产生的已加密索引、已加密变换密钥、盲化文件信息项和盲化索引,以及
每一个记录的匹配结果包括来自组合的t个盲化文件信息项中的任何一个所属的项的已加密索引和已加密变换密钥、和来自所述组合的t个盲化文件信息项分别所属的各个项的t个盲化索引。
31.根据权利要求30所述的设备,其中
接收器还接收解密权限,以及
所述设备还包括:
匹配结果解密器,用于针对每一个记录的匹配结果,根据解密权限和t个盲化索引,产生中间密钥,利用中间密钥对已加密变换密钥进行解密以获得变换密钥,并用变换密钥对已加密索引进行解密以获得文件加密密钥和数据项标识符。
32.根据权利要求31所述的设备,其中
数据项标识符具有加密形式,被称为已加密数据项标识符,所述设备还包括已加密数据项标识符解密器,用于利用文件加密密钥来对已加密数据项标识符进行解密以获得明文形式的数据项标识符。
33.根据权利要求31所述的设备,还包括:
已加密文件数据解密器,用于针对每一个记录的匹配结果,利用文件加密密钥来对与匹配结果的数据项标识符相对应的已加密文件数据进行解密。
34.根据权利要求27~33之一所述的设备,其中
所述设备还包括:查询表达式解析器,用于在最开始,将查询标识符的复杂查询表达式解析为由逻辑OR运算符连接的一系列查询标识符AND子查询表达式,
其中对于每个查询标识符AND子查询表达式,执行一次扩展盲化倒排索引表中的联合搜索;以及
所述设备还包括:合并器,用于在匹配结果命中器记录了每个AND子查询表达式的匹配结果之后,合并所述一系列AND子查询表达式的所有记录的匹配结果。
35.根据权利要求34所述的设备,其中
在所述合并中,合并器消除所记录的匹配结果中的冗余。
36.一种在扩展盲化倒排索引表中执行联合搜索的方法,包括步骤:
接收一组t个查询标识符和与之对应的联合搜索权限,其中t是大于等于1的整数;
通过使用所述t个查询标识符作为行标识符,定位扩展盲化倒排索引表中分别与t个查询标识符相对应的t行;
针对来自所定位t行的每一行的t个盲化文件信息项的每个组合,
如果从t个盲化文件信息项的第一子项和联合搜索权限的第一子搜索权限所获得的第一标准值与第二标准值相等,其中第二标准值是按照与第一标准值相同的方式、从t个盲化文件信息项的第二子项和联合搜索权限的第二子搜索权限所获得的,则确定匹配结果命中;以及
基于组合的t个盲化文件信息项的任何一个来记录该匹配结果。
37.根据权利要求36所述的方法,其中
该组t个查询标识符是明文形式的一组t个查询关键字。
38.根据权利要求36所述的方法,其中
该组t个查询标识符是与各个查询关键字一一对应的、根据第四密钥和各个查询关键字所产生的一组t个盲化关键字。
39.根据权利要求36所述的方法,其中
扩展盲化倒排索引表中的项至少包括根据同一个数据项标识符而产生的已加密索引、已加密变换密钥、盲化文件信息项和盲化索引,以及
每一个记录的匹配结果包括来自组合的t个盲化文件信息项中的任何一个所属的项的已加密索引和已加密变换密钥、和来自所述组合的t个盲化文件信息项分别所属的各个项的t个盲化索引。
40.根据权利要求39所述的方法,还包括:
接收解密权限;
针对每一个记录的匹配结果,
根据解密权限和t个盲化索引,产生中间密钥;
利用中间密钥对已加密变换密钥进行解密以获得变换密钥;
以及
用变换密钥对已加密索引进行解密以获得文件加密密钥和数据项标识符。
41.根据权利要求40所述的方法,其中
数据项标识符具有加密形式,被称为已加密数据项标识符,
所述方法还包括步骤:
利用文件加密密钥来对已加密数据项标识符进行解密,以获得明文形式的数据项标识符。
42.根据权利要求40所述的方法,还包括:
针对每一个记录的匹配结果,利用文件加密密钥来对与匹配结果的数据项标识符相对应的已加密文件数据进行解密。
43.根据权利要求36~42之一所述的方法,还包括:
在最开始,将查询标识符的复杂查询表达式解析为由逻辑OR运算符连接的一系列查询标识符AND子查询表达式;
对于每个查询标识符AND子查询表达式,
分别执行后续各个步骤;以及
在记录了每个AND子查询表达式的匹配结果之后,合并所述一系列AND子查询表达式的所有记录的匹配结果。
44.根据权利要求43所述的方法,其中
在所述合并步骤中,消除所记录的匹配结果中的冗余。
CN200910164561.4A 2009-07-20 2009-07-20 扩展盲化倒排索引表产生方法和设备、联合关键字搜索方法和设备 Expired - Fee Related CN101957902B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910164561.4A CN101957902B (zh) 2009-07-20 2009-07-20 扩展盲化倒排索引表产生方法和设备、联合关键字搜索方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910164561.4A CN101957902B (zh) 2009-07-20 2009-07-20 扩展盲化倒排索引表产生方法和设备、联合关键字搜索方法和设备

Publications (2)

Publication Number Publication Date
CN101957902A CN101957902A (zh) 2011-01-26
CN101957902B true CN101957902B (zh) 2014-03-26

Family

ID=43485227

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910164561.4A Expired - Fee Related CN101957902B (zh) 2009-07-20 2009-07-20 扩展盲化倒排索引表产生方法和设备、联合关键字搜索方法和设备

Country Status (1)

Country Link
CN (1) CN101957902B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108446323A (zh) * 2018-02-11 2018-08-24 山东省农业信息中心 一种基于全文搜索引擎的数据检索方法及装置
CN110618999A (zh) * 2019-08-01 2019-12-27 平安科技(深圳)有限公司 数据的查询方法及装置、计算机存储介质、电子设备
CN111460480B (zh) * 2020-03-31 2022-03-18 中国电子科技集团公司第三十研究所 一种密文搜索系统中安全的密文文件分享方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5677952A (en) * 1993-12-06 1997-10-14 International Business Machines Corporation Method to protect information on a computer storage device
US6052466A (en) * 1997-08-28 2000-04-18 Telefonaktiebolaget L M Ericsson (Publ) Encryption of data packets using a sequence of private keys generated from a public key exchange
CN1858747A (zh) * 2006-04-30 2006-11-08 北京金山软件有限公司 一种数据存储/检索方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5677952A (en) * 1993-12-06 1997-10-14 International Business Machines Corporation Method to protect information on a computer storage device
US6052466A (en) * 1997-08-28 2000-04-18 Telefonaktiebolaget L M Ericsson (Publ) Encryption of data packets using a sequence of private keys generated from a public key exchange
CN1858747A (zh) * 2006-04-30 2006-11-08 北京金山软件有限公司 一种数据存储/检索方法及系统

Also Published As

Publication number Publication date
CN101957902A (zh) 2011-01-26

Similar Documents

Publication Publication Date Title
JP6180177B2 (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
CN108140334B (zh) 隐匿检索系统、管理装置、隐匿检索方法和记录介质
CN105468986B (zh) 一种保密信息检索方法及系统
CN103281377B (zh) 一种面向云的密文数据存储与查询方法
CN101859306B (zh) 盲化索引表产生方法和设备、联合关键字搜索方法和设备
CN104363215A (zh) 一种基于属性的加密方法和系统
CN105893871A (zh) 一种基于数据分割的数据安全保护方法及装置
Samanthula et al. Privacy-preserving complex query evaluation over semantically secure encrypted data
Gafsi et al. High securing cryptography system for digital image transmission
CN102594551A (zh) Rfid标签隐私数据可靠统计方法
CN112804050A (zh) 多源数据查询系统及方法
KR101217491B1 (ko) 공개키 기반의 키워드 검색 방법
Nikhila et al. Intensifying multimedia information security using comprehensive cipher
CN101957902B (zh) 扩展盲化倒排索引表产生方法和设备、联合关键字搜索方法和设备
Kannan et al. A comparative analysis of DES, AES and RSA crypt algorithms for network security in cloud computing
Sultana et al. Keyless lightweight encipher using homomorphic and binomial coefficients for smart computing applications
Bhowmik et al. A symmetric key based secret data sharing scheme
CN108259172B (zh) 云存储系统中的密文搜索方法
CN108243000B (zh) 云存储系统中的密文搜索方法
Gohel et al. A new data integrity checking protocol with public verifiability in cloud storage
CN102023985B (zh) 盲化混合倒排索引表产生方法和设备、联合关键字搜索方法和设备
Acharya et al. Privacy protection of biometric traits using modified hill cipher with involutory key and robust cryptosystem
Altarawneh A strong combination of cryptographic techniques to secure cloud-hosted data
KR100919824B1 (ko) 데이터 암호화 장치와 이를 이용한 암호화 방법
Agrawal et al. A new and more authentic cryptographic based approach for securing short message

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140326

Termination date: 20170720