盲化索引表产生方法和设备、联合关键字搜索方法和设备的制作方法

文档序号:6577646阅读:281来源:国知局
专利名称:盲化索引表产生方法和设备、联合关键字搜索方法和设备的制作方法
技术领域
本发明涉及计算机通信网络安全领域,更具体地,涉及一种盲化索引表产生方法 和设备、以及一种秘密密钥设置下的联合关键字搜索方法和设备。
背景技术
数据存储外包是当前互联网上的一种趋势,即以全球存档服务而不是使用自身的 本地存储器来存储数据。现在,基于互联网的在线存档服务为其终端用户提供大量的存储 空间,其终端用户包括个人用户和企业。存在提供各种用户数据的存储的存档服务。例 如,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)和非限定域关键字(DH0中考虑 关键字搜索的加密。就我们所知,现有技术大多数符合SSE、BFT、SKS和DH(。也就是说,现有技术是秘 密密钥设置的、基于盲化正向索引表、利用非限定域关键字、仅能够单个关键字搜索。然而, 存在一些另外情况。参考文献[8]、[9]和[10]提出了公共密钥设置(PEKS)的方案,可以实现对盲化 正向索引表(BFT)的域特定关键字(DSK)的联合关键字检索(CKS)。值得再次注意的是,通过使公共密钥保密,公共密钥设置(PEKS)的任何方案都简 单地在秘密密钥设置(SSE)中也行得通。
参考文献[8]并未公开如何对搜索结果进行解密,因为所公开的方案并未考虑解 密权限。因此,尽管搜索方可以对服务器进行搜索,但是在从服务器接收到联合关键字搜索 结果时,搜索方无法对搜索结果进行解密。参考文献[10]同样并未考虑解密权限。尽管所公开的方案包括解密过程,但是该解密过程的目的是使服务器测试可能的搜索结果,而不是使搜索方对搜索结果进行解密。 实际上,在参考文献[10]的方案中并未构想解密权限。参考文献[9]在联合关键字搜索和解密搜索结果方面是完备的。根据参考文献 [9]的方案,搜索方将不仅需要被发给搜索权限,而且需要被发给解密权限。具体地,图1和图2以两个阶段示出了参考文献[9]的详细过程,即索引阶段(图 1)和搜索阶段(图2)。参考图1和图2,数据所有方、搜索方和服务器的各个单元如下 盲化单元101以公共密钼和(明文)正向索引表作为输入,输出盲化正向索引 表(BFT)和数据的加密密钥。 加密单元102以加密密钥和数据作为输入,输出加密数据(EF)。 权限发布单元201以秘密密钥和关键字作为输入,输出搜索权限(SC)和解密权 限(DC)。 域杳找单元202以关键字和域知识作为输入,输出每个关键字的辅助域信息 (ADI)。
BFT匹配单元203以SC、ADI和BFT作为输入,输出BFT匹配结果,BFT匹配结 果包括BFT的每个匹配行的相应Aij和Bij以及指向与匹配行相对应的匹配EF的指针。
EF获取单元204以BFT匹配结果和EF作为输入,输出具有相应Aij和Bij的匹 配EF。 解密单元205以DC和所产生的具有相应Aij和Bij的EF作为输入,输出解密的 数据F。表1 示例明文正向索引表
域1域2域3
"Name""City"‘‘Degree,,
F1"Alice""Beijing""Bachelor"...
F2"Bob""Shanghai""Master “...
F3"Cindy""Tokyo""Ph. D.“...在表1中,每一行可由不同的文件标识符Fi标识。下面除非特别指出,否则使用 Fi来表示文件自身及其唯一文件标识符(例如文件名)。表1的每一列由唯一域名标识。根据参考文献[9],盲化单元101输出的BFT如下表1-1所示。表1-1示例盲化正向索引表
匹配指示符γ^ rw2 ρ^
EF1 T1A11 j B11A12,B12A13J B13 · · ·
EF2 T2A2I,B21A22,B22A23,B23 · · ·
EF3 T3A31,B31A32,B32A33,B33 · · ·简而言之,参考文献[9]公开了以下方法。设置 PK = {PX,P2,SXiYi= P;'}},i = 1,2,· · ·,m,};+, = P;- ,Ym+2 二 P11-,其中 m 确定了系
统可以容纳的域的数量。加密选择IrJ并计算5,,i = 1,2,· · ·,m(由盲化单元101执行);选择sk 来加密 F,计算 rQ = H (F,{Bj,sk),尺=Ym+;" ,S = H(gr")和= H(hr") Θ sk (由加密单元102执行);计算4 =C^ZfwY1 P;·(由盲化单元101执行)。尽管标记不同,但是Ai和Bi都是如表1-1所示的索引项,而S是匹配指示符。注 意,还产生了第二随机数发生器K。产牛SC 禾口 DC 选择随机数u和V,并计算
L0049」 SC = JcJ '.‘ ''',SC = SC Ι/Λ,"+Ι , = u ;DC| =’DC: =,DC3 = ν(由权限发布单元 201 执行)。捭索
(( ^ e对于每一行,测试是否// -γ^- = S (由域查找单元202和BFT匹配
V V ^ ) J
单元203执行)。解密捭索结果 f \ e HAirKDC\ DCx计算= -yj并恢复(由EF获取单元204和解密单
e\Y\Bi ,DC1 { ‘ )sk = H(hr") R元205执行)。搜索方(例如查找包含关键字“Alice”和“Beijing”的文献的搜索方)将进行如 下动作1)联系数据所有方、请求所需的关于关键字集合的搜索权限和解密权限、并在数 据所有方愿意的情况下从数据所有方接收这些权限。该步骤涉及权限发布单元201、域查找 单元202和附加的通信单元(图1中未示出)。2)搜索方将搜索权限,即SCnSC2* SC3,递交给服务器。服务器然后针对每个EFi, 测试是否与联合关键字搜索匹配。最后,服务器将所有的匹配EFiS回给搜索方。该步骤 涉及BFT匹配单元203、EF获取单元204和附加的通信单元(图1中未示出)。3)在接收到匹配EFi时,搜索方可以使用解密权限,即DC1, DC2,和DC3,对EFi进行 解密并恢复相应的文件标识符F”该步骤涉及解密单元205。然而,上述参考文献[9]的方案具有多个缺点,如下 1)每个搜索项具有至少两个部分,一个用于盲化关键字(下面称为盲化索引),另 一个用于检测关键字(下面称为随机数发生器)。由于可能存在大量的索引项,所以非常希 望在搜索项中省略随机数发生器。2)为了测试加密文献是否包含联合关键字,服务器需要进行2次配对评估。非常 希望将配对评估的次数减少为仅有一次。3)该方案要求每个关键字属于唯一域,例如关键字“Alice”属于域“用户名”。这 种类似数据库的要求当前在正向索引表的设置下是可以达到的。但是,在倒排索引表的设 置下,例如类似Google搜索引擎的设置,多数关键字没有域的联系,换言之,文献是无结构 的,关键字的域是不定的。因此,该方案在文献是无结构的、包含非限定域关键字的情况下 不可行。4)搜索权限和解密权限每个均消耗3个群成员。非常希望每个权限仅消耗1个群 成员。最后但并非最不重要的,现有技术均没有涉及“非关键字”搜索,例如搜索包含关 键字“Alice”但是不包含“网络”的文献。在这种情况下,如果一篇文献包含关键字“网络”, 则即使它包含关键字“Alice”它也不是搜索结果。

发明内容
鉴于现有技术的上述缺点,本发明提出了一种盲化索引表产生方法和设备、以及 一种秘密密钥设置下的联合关键字搜索方法和设备。根据本发明的第一方案,一种用于产生盲化索引表的设备包括初始化单元,用于 执行初始化过程以获得秘密密钥和公共密钥;关键字预处理单元,用于利用秘密密钥,根据 关键字索引项,产生私密关键字;盲化单元,用于对于索引表的每一行随机地选择种子; 利用公共密钥和种子来产生匹配指示符;利用公共密钥、秘密密钥和种子来产生加密密钥; 利用加密密钥来加密该行中的文件标识符项,以获得加密的文件标识符;利用秘密密钥和 种子来盲化该行中的私密关键字,以获得盲化索引集合;通过排列加密的文件标识符、匹配 指示符和盲化索引集合,形成盲化索引表的一行。优选地,所述设备还包括加密单元,用于针对索引表的每一行,用加密密钥来加密与该行对应的文件,以获得加密的文件数据。优选地,每一个关键字索引项属于一个域,并且与一个盲化索引相对应。更优选 地,用另一个秘密密钥来加密每个域的域名。优选地,盲化索引表的每一行至少包括一个匹配指示符和一个盲化索引集合。优选地,索引表是正向索引表,域的名称反映了属于该域的索引项的公共属性。优选地,索引表是转换自正向索引表的倒排索引表,在该倒排索引表中,域的名称 被定义为正向索引表的一个索引项,域的每一项为布尔型。根据本发明的第二方案,一种用于产生盲化索引表的方法包括步骤执行初始化 过程以获得秘密密钥和公共密钥;对于索引表的每一行随机地选择种子;利用公共密钥 和种子来产生匹配指示符;利用公共密钥、秘密密钥和种子来产生加密密钥;利用加密密 钥来加密该行中的文件标识符项,以获得加密的文件标识符;利用秘密密钥从该行中的关 键字索引项中产生私密关键字;利用秘密密钥和种子来盲化该行中的私密关键字,以获得 盲化索引集合;通过排列加密的文件标识符、匹配指示符和盲化索引集合,形成盲化索引表 的一 行。优选地,加密密钥还用于加密与该行对应的文件,以获得加密的文件数据。优选地,每一个关键字索引项属于一个域,并且与一个盲化索引相对应。更优选 地,用另一个秘密密钥来加密每个域的域名。优选地,盲化索引表的每一行至少包括一个匹配指示符和一个盲化索引集合。优选地,索引表是正向索引表,域的名称反映了属于该域的索引项的公共属性。优选地,索引表是转换自正向索引表的倒排索引表,在该倒排索引表中,域的名称 被定义为正向索引表的一个索引项,域的每一项为布尔型。根据本发明的第三方案,一种在盲化索引表中执行联合关键字搜索的设备包括 关键字预处理单元,用于通过使用秘密密钥,针对所查询的关键字集合中的每个关键字产 生私密关键字,所产生的私密关键字形成了与所查询的关键字集合相对应的私密关键字集 合,私密关键字和所查询的关键字的数量都是正整数;权限发布单元,用于利用公共密钥、 秘密密钥和私密关键字集合来产生所查询关键字集合的搜索权限,搜索权限标识了所查询 关键字集合所属的域,以及用于利用搜索权限和秘密密钥来产生解密权限;命中项匹配单 元,如果盲化索引表中一行的匹配指示符与从属于该行中的所标识的域的各个索引项和搜 索权限而联合产生的值相同,则确定该行是命中行;解密单元,用于利用属于命中行中的所 标识的域的各个索引项和解密权限来产生每一命中行的解密密钥,以及用于利用解密密钥 来解密每一命中行的已加密文件标识符和已加密文件数据,以获得搜索结果。优选地,盲化索引表的每一行至少包括一个匹配指示符和一个盲化索引集合。优选地,索引表是正向索引表,域的名称反映了属于该域的索引项的公共属性。优选地,索引表是转换自正向索引表的倒排索引表,在该倒排索引表中,域的名称 被定义为正向索引表的一个索引项,域的每一项为布尔型。优选地,所述的设备还包括域加密单元,用于用另一个秘密密钥来加密每个域的 域名。根据本发明的第四方案,一种在盲化索引表中执行联合关键字搜索的方法包括步 骤通过使用秘密密钥,针对所查询的关键字集合中的每个关键字产生私密关键字,所产生的私密关键字形成了与所查询的关键字集合相对应的私密关键字集合,私密关键字和所查 询的关键字的数量都是正整数;利用公共密钥、秘密密钥和私密关键字集合来产生所查询 关键字集合的搜索权限,搜索权限标识了所查询关键字集合所属的域;利用搜索权限和秘 密密钥来产生解密权限;如果盲化索引表中一行的匹配指示符与从属于该行中的所标识的 域的各个索引项和搜索权限而联合产生的值相同,则确定该行是命中行;利用属于命中行 中的所标识的域的各个索引项和解密权限来产生每一命中行的解密密钥;以及利用解密密 钥来解密每一命中行的已加密文件标识符和已加密文件数据,以获得搜索结果。优选地,盲化索引表的每一行至少包括一个匹配指示符和一个盲化索引集合。优选地,索引表是正向索引表,域的名称反映了属于该域的索引项的公共属性。优选地,索引表是转换自正向索引表的倒排索引表,在该倒排索引表中,域的名称被定义为正向索引表的一个索引项,域的每一项为布尔型。优选地,用另一个秘密密钥来加密每个域的域名。与最接近的现有技术相比,本发明的积极效果包括(I)服务器存储的索引表的大小近似减半;(II)联合关键字搜索的速度提高两倍;(III)能够进行涉及非限定域关键字的联合关键字搜索;(IV)能够进行涉及“非关键字”的联合关键字搜索;(V) SC和DC的大小被最小化。


结合附图,根据下面对本发明的非限制性实施例的详细描述,本发明的上述及其 他目的、特征和优点将变得更加清楚,附图中图1是示出了根据参考文献[9]、在索引阶段工作的各个单元的框图;图2是示出了根据参考文献[9]、在搜索阶段工作的各个单元的框图;图3是示出了根据本发明第一实施例、在索引阶段工作的各个单元的框图;图4是示出了根据本发明第一实施例、在搜索阶段工作的各个单元的框图;图5是示出了根据本发明第二实施例、在索引阶段工作的各个单元的框图;以及图6是示出了根据本发明第二实施例、在搜索阶段工作的各个单元的框图。
具体实施例方式下面,根据附图描述本发明。在以下描述中,一些具体实施例仅用于描述目的,而 不应该理解为对本发明有任何限制,而只是本发明的示例。省略了常规结构或构造,以免导 致对本发明的理解不清楚。[第一实施例]根据本发明的第一实施例,图3和图4以两个阶段示出了在秘密密钥设置(CKSS 方案)下所提出的联合关键字搜索方案的详细过程,即索引阶段(图3)和搜索阶段(图 4)。参考图3,数据所有方、搜索方和服务器的各个单元如下 关键字预处理单元303和406以秘密密钥和(明文)正向索引表中的关键字作 为输入,输出私密关键字。
盲化单元301以秘密密钼、(明文)正向索引表、私密关键字作为输入,输出盲化 正向索引表(BFT)和数据的加密密钥。BFT不再对于表的每一项都有随机数发生器(Bij), 而是对于每个EF有匹配指示符(1\)。 权限发布单元401以秘密密钥和私密关键字作为输入,输出搜索权限(SC)和解 密权限(DC)。
BFT匹配单元403以SC、ADI和BFT作为输入,输出BFT匹配结果,BFT匹配结 果包括BFT的每一匹配行的相应Aij和指向与匹配行相对应的匹配EF的指针。 所有其它单元(302、402、404和405)按照在本发明“背景技术”部分描述的单 元(102、202、204和205) —样工作,因此在此为了简明而省略这些单元的详细说明。场景说明
首先给出在秘密密钥设置(CKSS方案)下所提出的联合关键字搜索方案的概述。不失一般性地,以示例的明文正向索引表开始。示例的明文正向索引表如表1,与 在本发明的“背景技术”部分中所述的表一样。表1示例明文正向索引表 在表1中,每一行可由不同的文件标识符Fi标识。下面除非特别指出,否则使用 Fi来表示文件自身及其唯一文件标识符(例如文件名)。表1的每一列由唯一域名标识。使用CKSS方案,上表1将由盲化单元301转换为下表2 表2示例盲化正向索引表 首先,表2中的域名可以与表1中的域名相同。例如,可以将表2中的域2表示为 “City”。在表2中,每一个表项都被盲化,例如,表1中的“Alice”由所谓的盲化索引A11代 替。盲化索引被构造成(在计算上)不会泄漏任何关于“Alice”的信息。盲化索引仅消耗 1个群成员。此夕卜,可以看出,Fi 代替,EFi是关于Fi的密文。利用正确的DC,搜索方可以 解密EFi以恢复Fi。与现有技术相比,尤其是与参考文献[9]相比,存储复杂度方面的益处是明显的。 每个盲化索引仅消耗1个群成员。CKSS方案不需要存储附加信息,例如参考文献[9]所需 的随机数发生器。每次尝试的计算复杂度减少为1次配对评估,例如为了测试EF1是否包含联合关键字,将使服务器仅进行ι次配对评估。此外,根据CKSS方案的SC和DC的大小也分别减 小为1个群成员。后面将描述计算复杂度分析的细节以及SC和DC的大小。搜索方(例如搜索包含关键字“Alice”和“Beijing”的文献的搜索方)将进行如 下动作1)联系数据所有方、请求所需的关于关键字集合的SC和DC、并在数据所有方愿意 的情况下从数据所有方接收SC和DC。SC应该包括所需的域信息。在上述示例的设置中, SC中包含域名“Name”和“City”。该步骤涉及权限发布单元401、关键字预处理单元406和 域查找单元402。2)搜索方将SC递交给服务器。服务器然后针对每个EFi,测试是否与联合关键字 搜索匹配。最后,服务器将所有的匹配EFiS回给搜索方。该步骤涉及BFT匹配单元403、 EF获取单元404。3)在接收到匹配EFi时,搜索方可以使用DC,对EFi进行解密并恢复相应的文件标 识符F”在上述示例的设置中,搜索方将接收到EFJt为搜索结果,并且搜索方可以使用DC 来对EF1进行解密并恢复F1。该步骤涉及解密单元405。[第二实施例]上述第一实施例仅涉及结构化数据(类似数据库)。第二实施例将处理无结构数 据(类似Google)。此外,第二实施例可以处理“非关键字”查询,例如搜索包含关键字 “Alice”但是不包含“Music”的文献。在第二实施例中,关键字在逻辑上被当作域,列号产生单元用于定位BFT中的与 关键字相对应的列(逻辑域)。根据本发明的第二实施例,图5和图6以两个阶段示出了秘密密钥设置(CKSS方 案)下所提出的联合关键字搜索方案的详细过程,即索引阶段(图5)和搜索阶段(图6)。 参考图5和图6,数据所有方、搜索方和服务器的各个单元如下 除了列号产生单元504和607之外的所有单元与第一实施例中的单元一样工 作,因此为了简明,省略这些单元的详细说明。 列号产生单元504和607以秘密密钥和关键字作为输入,输出BFT中明确针对 该关键字的列号。
场景描述除了在第一实施例中所述的CKSS的基本方案,下面在第二实施例中示出如何实 现联合关键字搜索和“非”关键字搜索。下表3示出了在非限定域情况下的正向索引表的构造。与表1相比,可以将其解 释为“逻辑上将密钥当作域”。熟悉倒排索引表的人也可以将表3解释为由倒排索引表的 旋转得来。无论如何解释表3,都需要注意的是,如果文件不包含一关键字,则用特殊词语 “NULL” 填充相应的表项("Alice =NULL", "Beijing =NULL", "Music :NULL”)。例如,对于 列关键字“Alice”,该词语“NULL”是“Alice”的160比特的带有密钥的散列。因此,实际上 不可能在文献中遇到相同的词语“Alice :NULL”。表3示例正向索引(非限定域) 使用CKSS方案,上表3将被转换为下表4 表4示例盲化正向索引表(非限定域) 除了针对表2所解释的内容之外,表4还需要一个代替。表3中的所有关键字在 表4中都由列号产生单元504所产生的列号代替。具体地,该过程规定了使用数据所有方 的秘密密钥。作为简单示例,可以计算列1作为“Alice”的带有密钥的散列。需要重申的是,表2可以并不经过域名的替换。例如,可以将表2中的域2表示为 “City”。然而,表4必须通过使用秘密密钥和正确的措施,例如带有密钥的散列、加密等,经 过域名的替换,以隐藏关键字。
此外,考虑搜索包含关键字“Alice”和“Beijing”的文献的搜索方。该搜索方将 从数据所有方接收所需的SC和DC,还从列号产生单元607接收列号。SC应该包含所需的 列信息。在该特定示例中,列信息是列1和列2。在搜索方将SC提交给服务器之后,服务器 针对每个EFi测试是否与联合关键字搜索匹配。在接收到EFJt为搜索结果时,搜索方可以 使用DC来对EF1进行解密并恢复F1。现在离实现“非”关键字搜索仅有一步之遥。如果搜索方查找包含关键字“Alice” 和“非Bei jing”的文献,搜索方接收到的实际上是与分别在列1和列2下的关键字“Alice” 和关键字“Beijing :NULL”有关的SC。[详细原理说明]使用传统的乘法群标记,代替通常在椭圆曲线设置中使用的加法标记。假设G1 = <gl>*G2 = <g2>是两个有限循环群,具有附加的群G = ^〉,使得
Kl = |g2| =间=P,其中P是某个大的素数。双线性映射e G1 χ G2 — g是具有如下效果的 函数■双线性的对于所有 e G1 A2 6 G2,对于所有α,δ € Zp ,e(h; ,h;) = e^hj'1' ■■非退化的3尔G G1 Sh2 G G2,使得eQ^,h2)乒I,其中I是g的单位元素;以及■可计算的存在计算e的有效算法。假设存在针对输入安全参数Ik的设置算法Setup( ·),输出双线性映射的上述设 置。该过程被表示为(P,G],G2,g鳴,馬,e) — Setup(Ik)。由于巧、Gjpg都具有相同的素数阶,因此根据双线性特性以及非退化特性,很 容易可以看出6(仏,52)=议。现在,详细描述CKSS方案。假设明文索引表构造如下对于每个明文文件(文献) Fj,其明文文件名是FNj,存在一行匹配关键字IwjJ,其中每一个都唯一地属于域Rp这里, “唯一”意味着文件一定不包含属于多于一个域的单个关键字。我们注意到,有可能一个字 出现在不只一个域下。例如,“Alice”可以同时是患者的“亲戚”和“联系人”。在这种情况 下,常用的方案是将关键字构造成“域关键字”,例如“亲戚:Alice”和“联系人Alice”。 这样获得了下表5。表5示例明文正向索引表 密钼产牛 b)选择ζ3。c)选择安全的单向散列函数Fk : G — K。d)选择带有密钥的散列函数Ek K G Ζ; X {0,1}* — Z;,其中K是密钥。公共密钥是(p,G1,G2^J1,5.2,e)、Hk 和 Ηκ。秘密密钥是(x,y,z)。BFT 产牛a)对于每个FNj,随机地选择种子~ ^ G1。例如,首先选择\ €β ζ,然后计算 h:丨=g^' G G1。b)计算匹配标识符7; = Hk ^Zv52))和加密密钥& = Hk (e(hv:g2))(由盲化单元 301执行)。C)使用密钥&和适当的加密方案来加密h和FNp获得加密的文件标识符Eh (由 加密单元302执行)。EFj具有彼此不同的特性,因此,在使用密钥&对Eh进行解密时,将获得h和FNj。 例如,首先选择随机加密密钥fk来加密文件Fp此外,可以使用fk来加密F 并获得密文 形式的FNj,即CF 。在这种情况下,EFj是朋=EncJfk,CFNJ唭中EnCkey(*)是以key
作为加密密钥的某种对称加密机制。很容易知道,利用密钥Kj,可以对EFj进行解密以获得 fk和CF 。利用CF 来定位和检索加密文件,文件密钥fk最终可以对加密文件和CFNj.进 行解密,CFNj揭示了。和FNj。d)对于Fj的每个Wji,计算盲化索引% = h2+We G1。这里,Hx(Wji)是“私密关 键字”(从关键字预处理单元303到盲化单元301)。最终,对于每个EFj,输出(EFj :Tj; (WjJ)(以存储在服务器中)。因此,获得下表 6 表6示例盲化正向索引表
Γ\
加密文件名 xXR1R2R3...
指示符
EF1T1WjiW12W13...
EF2T2W21W22 W23...
EF3T3W31W32 W33...
权限发布进行以下动作以计算目标关键字fhl的搜索权限,其中 <属于域R 和 a)计算搜索权限 b)计算解密权限 该过程涉及权限发布单元401和关键字预处理单元406。最终,权限是SC和DC。SC中包括关于所属的域{R }的信息。这里,不需要 通过附加的随机数来将SC和DC随机化。如果pj包括关键字 然而&并不属于任何域(如域查找单元402的输出所指示 的)时,立即拒绝授予Sc。或者可选地,对于关键字 ,选择某个域,以便可以计算Sc。这种 可选方案最终导致空的搜索结果集。捭索对于BFT的由EFj标识的每一行,以Wju表示属于域Ru的盲化索引。 a)计算当且仅当丑时,EFj被当作联合关
键字搜索结果。注意,对于所有的υ,当且仅当,= <时 该过程涉及BFT匹配单元403。最终,联合关键字搜索的输出是匹配集· efMw^。该过程涉及EF获取单元
404。解密a)对于每一个搜索结果EFj和11 ,计算解密密钥 b)使用Kj来对EFj进行解密并获得CFNj和文件密钥fk。该过程涉及解密单元 在Hk e Π 沉=iiK(e(/^2))的前提下,可以容易地验证 [改进]可诜方案1 上表6以明文揭示了域信息。可选地,域信息可以被盲化,因此对于服务器隐藏域 fn息ο例如,数据所有方具有附加的私密密钥Ph ζ,,数据所有方可以计算ERi = Hp (Domain),例如Hp (“ City")。下表7示出了具有盲化的域信息的BFT。现在,在上述权限发布过程最后,SC应该包含与盲化的域{ER )相关的信息,而不 是与域{R }相关的信息。表7示例可选盲化正向索引表 可诜方案2 除了在可选方案1中公开的相反之外,数据所有方可以逻辑上将关键字当作域, 即虚拟域。例如,表5可以被解释为下表8:表8示例重解译明文正向索引表 不难看出,表8也可以被当作倒排索引表。NULL表项,例如“wn :NULL”,表示该关键字并不包含在文件中。为了避免文件 的确包含诸如“Alice :NULL”的关键字的少数情况,数据所有方可以使用附加的私密密钥 V^r ζ来处理NULL表项。例如,在表8中用“Wll (W11) ”代替“Wll :NULL”。现在假设数据所有方具有附加的私密密钥W、ζ并且数据所有方可以计算虚拟 域五K = H/keyword),例如凡(Mke1')。使用CKSS机制,重解译的BFT可以构造成如下所 示(表9)表9示例重解译盲化正向索引表 该可选方案所关注的在于能够进行“非关键字”搜索。例如,搜索方以联合关键 字“Alice且非Beijing”搜索文献。数据所有方可以向搜索方发出搜索权限“Alice且 Beijing =NULL再次需要注意,“Beijing :NULL”实际上可以以私密密钥η预处理为 Beijing :Hn (Beijing)。最终,很容易设计基于CKSS方案、可选方案1和可选方案2的混合方案。例如, BFT可以构造成一些域信息以明文形式揭示而其它域信息被盲化。再例如,BFT可以构造成 半结构化文献,即既具有盲化域也具有虚拟域。以上描述仅给出了本发明的优选实施例,而并不是要以任何方式限制本发明。因 此,在本发明精神和原理内进行的任何修改、替换、改进等应该由本发明范围所涵盖。参考文献列表[l]Amazon Simple Storage Service(Amazon S3),http //aws. amazon. com/s3 ;[2]Googgle 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/technoloRy/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 for searches onencrypted data, in Proceedings of IEEE Symposium on Securityand Privacy' 00, pp.44-55,2000 ;[7]D. Boneh, G. D. Crescenzo, R. Ostrovsky, G. Persiano. Public KeyEncryption with Keyword Search. In Proceeding of EuroCrypt^ 04, LNCS 3027, pp.506-522,2004 ;[8]D. J. Park, K. Kim, P. J. Lee, Public Key Encryption withConjunctive Field Keyword Search. In Chae Hoon Lim and MotiYung,editors,Information Security Applicatiohs :5th InternationalWorkshop, WISA 2004, Jeju Island, Korea, August 23-25,LNCSvo 1. 3325,pp. 73—86. Springer-Verlag, 2004 ;[9]D. J. Park, J. Cha, P. J. Lee, Searchable Keyword-BasedEncryption, Report 2005/367, Cryptology ePrint Archive(2005);[10]S. S. Μ. Chow,Exclusion-Intersection Encryption andItsApplication to Searchable Encryption. Report 2005/377, Cryptology ePrint Archive(2005).
权利要求
一种用于产生盲化索引表的设备,包括初始化单元,用于执行初始化过程以获得秘密密钥和公共密钥;关键字预处理单元,用于利用秘密密钥,根据关键字索引项,产生私密关键字;盲化单元,用于对于索引表的每一行随机地选择种子;利用公共密钥和种子来产生匹配指示符;利用公共密钥、秘密密钥和种子来产生加密密钥;利用加密密钥来加密该行中的文件标识符项,以获得加密的文件标识符;利用秘密密钥和种子来盲化该行中的私密关键字,以获得盲化索引集合;通过排列加密的文件标识符、匹配指示符和盲化索引集合,形成盲化索引表的一行。
2.根据权利要求1所述的设备,还包括 加密单元,用于针对索引表的每一行,用加密密钥来加密与该行对应的文件,以获得加密的文件数据。
3.根据权利要求1或2所述的设备,其中每一个关键字索引项属于一个域,并且与一个盲化索引相对应。
4.根据权利要求1或2所述的设备,其中盲化索引表的每一行至少包括一个匹配指示符和一个盲化索引集合。
5.根据权利要求1或2所述的设备,其中索引表是正向索引表,域的名称反映了属于该域的索引项的公共属性。
6.根据权利要求1或2所述的设备,其中索引表是转换自正向索引表的倒排索引表,在该倒排索引表中,域的名称被定义为正 向索引表的一个索引项,域的每一项为布尔型。
7.根据权利要求3所述的设备,其中 用另一个秘密密钥来加密每个域的域名。
8.一种用于产生盲化索引表的方法,包括步骤 执行初始化过程以获得秘密密钥和公共密钥; 对于索引表的每一行随机地选择种子;利用公共密钥和种子来产生匹配指示符;利用公共密钥、秘密密钥和种子来产生加密密钥;利用加密密钥来加密该行中的文件标识符项,以获得加密的文件标识符;利用秘密密钥从该行中的关键字索引项中产生私密关键字;利用秘密密钥和种子来盲化该行中的私密关键字,以获得盲化索引集合;通过排列加密的文件标识符、匹配指示符和盲化索引集合,形成盲化索引表的一行。
9.根据权利要求8所述的方法,其中加密密钥还用于加密与该行对应的文件,以获得加密的文件数据。
10.根据权利要求8或9所述的方法,其中每一个关键字索引项属于一个域,并且与一个盲化索引相对应。
11.根据权利要求8或9所述的方法,其中盲化索引表的每一行至少包括一个匹配指示符和一个盲化索引集合。
12.根据权利要求8或9所述的方法,其中索引表是正向索引表,域的名称反映了属于该域的索引项的公共属性。
13.根据权利要求8或9所述的方法,其中索引表是转换自正向索引表的倒排索引表,在该倒排索引表中,域的名称被定义为正 向索引表的一个索引项,域的每一项为布尔型。
14.根据权利要求10所述的方法,其中用另一个秘密密钥来加密每个域的域名。
15.一种在盲化索引表中执行联合关键字搜索的设备,包括关键字预处理单元,用于通过使用秘密密钥,针对所查询的关键字集合中的每个关键 字产生私密关键字,所产生的私密关键字形成了与所查询的关键字集合相对应的私密关键 字集合,私密关键字和所查询的关键字的数量都是正整数;权限发布单元,用于利用公共密钥、秘密密钥和私密关键字集合来产生所查询关键字 集合的搜索权限,搜索权限标识了所查询关键字集合所属的域,以及用于利用搜索权限和 秘密密钥来产生解密权限;命中项匹配单元,如果盲化索引表中一行的匹配指示符与从属于该行中的所标识的域 的各个索引项和搜索权限而联合产生的值相同,则确定该行是命中行;解密单元,用于利用属于命中行中的所标识的域的各个索引项和解密权限来产生每一 命中行的解密密钥,以及用于利用解密密钥来解密每一命中行的已加密文件标识符和已加 密文件数据,以获得搜索结果。
16.根据权利要求15所述的设备,其中盲化索引表的每一行至少包括一个匹配指示符和一个盲化索引集合。
17.根据权利要求15或16所述的设备,其中索引表是正向索引表,域的名称反映了属于该域的索引项的公共属性。
18.根据权利要求15或16所述的设备,其中索引表是转换自正向索引表的倒排索引表,在该倒排索引表中,域的名称被定义为正 向索引表的一个索引项,域的每一项为布尔型。
19.根据权利要求15或16所述的设备,还包括域加密单元,用于用另一个秘密密钥来加密每个域的域名。
20.一种在盲化索引表中执行联合关键字搜索的方法,包括步骤通过使用秘密密钥,针对所查询的关键字集合中的每个关键字产生私密关键字,所产 生的私密关键字形成了与所查询的关键字集合相对应的私密关键字集合,私密关键字和所 查询的关键字的数量都是正整数;利用公共密钥、秘密密钥和私密关键字集合来产生所查询关键字集合的搜索权限,搜 索权限标识了所查询关键字集合所属的域;利用搜索权限和秘密密钥来产生解密权限;如果盲化索引表中一行的匹配指示符与从属于该行中的所标识的域的各个索引项和 搜索权限而联合产生的值相同,则确定该行是命中行;利用属于命中行中的所标识的域的各个索引项和解密权限来产生每一命中行的解密 密钥;以及利用解密密钥来解密每一命中行的已加密文件标识符和已加密文件数据,以获得搜索结果。
21.根据权利要求20所述的方法,其中盲化索引表的每一行至少包括一个匹配指示符和一个盲化索引集合。
22.根据权利要求20或21所述的方法,其中索引表是正向索引表,域的名称反映了属于该域的索引项的公共属性。
23.根据权利要求20或21所述的方法,其中索引表是转换自正向索引表的倒排索引表,在该倒排索引表中,域的名称被定义为正 向索引表的一个索引项,域的每一项为布尔型。
24.根据权利要求20或21所述的方法,其中 用另一个秘密密钥来加密每个域的域名。
全文摘要
本发明提出了一种盲化索引表产生设备,包括初始化单元,用于执行初始化过程以获得秘密密钥和公共密钥;关键字预处理单元,用于利用秘密密钥,根据关键字索引项,产生私密关键字;盲化单元,用于对于索引表的每一行随机地选择种子;利用公共密钥和种子来产生匹配指示符;利用公共密钥、秘密密钥和种子来产生加密密钥;利用加密密钥来加密该行中的文件标识符项,以获得加密的文件标识符;利用秘密密钥和种子来盲化该行中的私密关键字,以获得盲化索引集合;通过排列加密的文件标识符、匹配指示符和盲化索引集合,形成盲化索引表的一行。本发明还提出了相应的盲化索引表产生方法。此外,本发明还提出了一种联合关键字搜索方法和设备。
文档编号G06F21/00GK101859306SQ200910132570
公开日2010年10月13日 申请日期2009年4月7日 优先权日2009年4月7日
发明者曾珂, 福岛俊一 申请人:日电(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1