CN101859306B - 盲化索引表产生方法和设备、联合关键字搜索方法和设备 - Google Patents
盲化索引表产生方法和设备、联合关键字搜索方法和设备 Download PDFInfo
- Publication number
- CN101859306B CN101859306B CN2009101325705A CN200910132570A CN101859306B CN 101859306 B CN101859306 B CN 101859306B CN 2009101325705 A CN2009101325705 A CN 2009101325705A CN 200910132570 A CN200910132570 A CN 200910132570A CN 101859306 B CN101859306 B CN 101859306B
- Authority
- CN
- China
- Prior art keywords
- territory
- key
- index
- blind
- concordance list
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种盲化索引表产生设备,包括:初始化单元,用于执行初始化过程以获得秘密密钥和公共密钥;关键字预处理单元,用于利用秘密密钥,根据关键字索引项,产生私密关键字;盲化单元,用于对于索引表的每一行:随机地选择种子;利用公共密钥和种子来产生匹配指示符;利用公共密钥、秘密密钥和种子来产生加密密钥;利用加密密钥来加密该行中的文件标识符项,以获得加密的文件标识符;利用秘密密钥和种子来盲化该行中的私密关键字,以获得盲化索引集合;通过排列加密的文件标识符、匹配指示符和盲化索引集合,形成盲化索引表的一行。本发明还提出了相应的盲化索引表产生方法。此外,本发明还提出了一种联合关键字搜索方法和设备。
Description
技术领域
本发明涉及计算机通信网络安全领域,更具体地,涉及一种盲化索引表产生方法和设备、以及一种秘密密钥设置下的联合关键字搜索方法和设备。
背景技术
数据存储外包是当前互联网上的一种趋势,即以全球存档服务而不是使用自身的本地存储器来存储数据。现在,基于互联网的在线存档服务为其终端用户提供大量的存储空间,其终端用户包括个人用户和企业。存在提供各种用户数据的存储的存档服务。例如,AmazonSimple Storage Service(Amazon S3)(参考文献[1])提供一种网络服务接口,可用于存储和检索不限量的分类数据,以GB/月和数据传输量来计费。还存在提供特定数据类型的存储的其它存档服务,尤其是敏感数据类型,例如健康记录。例如,Google Health(参考文献[2])和Microsoft Health Vault(参考文献[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]、[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“Name” | 域2“City” | 域3“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示例盲化正向索引表
匹配指示符 | 域1 | 域2 | 域3 | ... | |
EF1 | T1 | A11,B11 | A12,B12 | A13,B13 | ... |
EF2 | T2 | A21,B21 | A22,B22 | A23,B23 | ... |
EF3 | T3 | A31,B31 | A32,B32 | A33,B33 | ... |
...... | ... | ... | ... |
简而言之,参考文献[9]公开了以下方法。
设置:
加密:
选择{ri}并计算 i=1,2,...,m(由盲化单元101执行);
选择sk来加密F,计算r0=H(F,{Bi},sk), 和 (由加密单元102执行);
计算 (由盲化单元101执行)。
尽管标记不同,但是Ai和Bi都是如表1-1所示的索引项,而S是匹配指示符。注意,还产生了第二随机数发生器K。
产生SC和DC:
选择随机数u和v,并计算
搜索:
对于每一行,测试是否 (由域查找单元202和BFT匹配单元203执行)。
解密搜索结果:
计算 并恢复 (由EF获取单元204和解密单元205执行)。
搜索方(例如查找包含关键字“Alice”和“Beijing”的文献的搜索方)将进行如下动作:
1)联系数据所有方、请求所需的关于关键字集合的搜索权限和解密权限、并在数据所有方愿意的情况下从数据所有方接收这些权限。该步骤涉及权限发布单元201、域查找单元202和附加的通信单元(图1中未示出)。
2)搜索方将搜索权限,即SC1,SC2和SC3,递交给服务器。服务器然后针对每个EFi,测试是否与联合关键字搜索匹配。最后,服务器将所有的匹配EFi返回给搜索方。该步骤涉及BFT匹配单元203、EF获取单元204和附加的通信单元(图1中未示出)。
3)在接收到匹配EFi时,搜索方可以使用解密权限,即DC1,DC2,和DC3,对EFi进行解密并恢复相应的文件标识符Fi。该步骤涉及解密单元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有匹配指示符(Ti)。
◆权限发布单元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“Name” | 域2“City” | 域3“Degree” | ... | |
F1 | “Alice” | “Beijing” | “Bachelor” | ... |
F2 | “Bob” | “Shanghai” | “Master” | ... |
F3 | “Cindy” | “Tokyo” | “Ph.D.” | ... |
...... | ... | ... | ... | ... |
在表1中,每一行可由不同的文件标识符Fi标识。下面除非特别指出,否则使用Fi来表示文件自身及其唯一文件标识符(例如文件名)。表1的每一列由唯一域名标识。
使用CKSS方案,上表1将由盲化单元301转换为下表2:
表2示例盲化正向索引表
匹配指示符 | 域1 | 域2 | 域3 | ... | |
EF1 | T1 | A11 | A12 | A13 | ... |
EF2 | T2 | A21 | A22 | A23 | ... |
EF3 | T3 | A31 | A32 | A33 | ... |
...... | ... | ... | ... | ... |
首先,表2中的域名可以与表1中的域名相同。例如,可以将表2中的域2表示为“City”。
在表2中,每一个表项都被盲化,例如,表1中的“Alice”由所谓的盲化索引A11代替。盲化索引被构造成(在计算上)不会泄漏任何关于“Alice”的信息。盲化索引仅消耗1个群成员。
此外,可以看出,Fi由EFi代替,EFi是关于Fi的密文。利用正确的DC,搜索方可以解密EFi以恢复Fi。
与现有技术相比,尤其是与参考文献[9]相比,存储复杂度方面的益处是明显的。每个盲化索引仅消耗1个群成员。CKSS方案不需要存储附加信息,例如参考文献[9]所需的随机数发生器。
每次尝试的计算复杂度减少为1次配对评估,例如为了测试EF1是否包含联合关键字,将使服务器仅进行1次配对评估。此外,根据CKSS方案的SC和DC的大小也分别减小为1个群成员。
后面将描述计算复杂度分析的细节以及SC和DC的大小。
搜索方(例如搜索包含关键字“Alice”和“Beijing”的文献的搜索方)将进行如下动作:
1)联系数据所有方、请求所需的关于关键字集合的SC和DC、并在数据所有方愿意的情况下从数据所有方接收SC和DC。SC应该包括所需的域信息。在上述示例的设置中,SC中包含域名“Name”和“City”。该步骤涉及权限发布单元401、关键字预处理单元406和域查找单元402。
2)搜索方将SC递交给服务器。服务器然后针对每个EFi,测试是否与联合关键字搜索匹配。最后,服务器将所有的匹配EFi返回给搜索方。该步骤涉及BFT匹配单元403、EF获取单元404。
3)在接收到匹配EFi时,搜索方可以使用DC,对EFi进行解密并恢复相应的文件标识符Fi。在上述示例的设置中,搜索方将接收到EF1作为搜索结果,并且搜索方可以使用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示例正向索引(非限定域)
关键字“Alice” | 关键字“Beijing” | 关键字“Music” | ... | |
F1 | “Alice” | “Beijing” | “NULL” | ... |
F2 | “NULL” | “NULL” | “Music | ... |
F3 | “NULL” | “NULL” | “Music” | ... |
...... | ... | ... | ... | ... |
使用CKSS方案,上表3将被转换为下表4:
表4示例盲化正向索引表(非限定域)
匹配指示符 | 列1 | 列2 | 列3 | ... | |
EF1 | T1 | A11 | A12 | A13 | ... |
EF2 | T2 | A21 | A22 | A23 | ... |
EF3 | T3 | A31 | A32 | A33 | ... |
...... | ... | ... | ... | ... |
除了针对表2所解释的内容之外,表4还需要一个代替。表3中的所有关键字在表4中都由列号产生单元504所产生的列号代替。具体地,该过程规定了使用数据所有方的秘密密钥。作为简单示例,可以计算列1作为“Alice”的带有密钥的散列。
需要重申的是,表2可以并不经过域名的替换。例如,可以将表2中的域2表示为“City”。然而,表4必须通过使用秘密密钥和正确的措施,例如带有密钥的散列、加密等,经过域名的替换,以隐藏关键字。
此外,考虑搜索包含关键字“Alice”和“Beijing”的文献的搜索方。该搜索方将从数据所有方接收所需的SC和DC,还从列号产生单元607接收列号。SC应该包含所需的列信息。在该特定示例中,列信息是列1和列2。在搜索方将SC提交给服务器之后,服务器针对每个EFi测试是否与联合关键字搜索匹配。在接收到EF1作为搜索结果时,搜索方可以使用DC来对EF1进行解密并恢复F1。
现在离实现“非”关键字搜索仅有一步之遥。如果搜索方查找包含关键字“Alice”和“非Beijing”的文献,搜索方接收到的实际上是与分别在列1和列2下的关键字“Alice”和关键字“Beijing:NULL”有关的SC。
[详细原理说明]
使用传统的乘法群标记,代替通常在椭圆曲线设置中使用的加法标记。
■可计算的:存在计算e的有效算法。
现在,详细描述CKSS方案。假设明文索引表构造如下:对于每个明文文件(文献)Fj,其明文文件名是FNj,存在一行匹配关键字{wji},其中每一个都唯一地属于域Ri。这里,“唯一”意味着文件一定不包含属于多于一个域的单个关键字。我们注意到,有可能一个字出现在不只一个域下。例如,“Alice”可以同时是患者的“亲戚”和“联系人”。在这种情况下,常用的方案是将关键字构造成“域:关键字”,例如“亲戚:Alice”和“联系人:Alice”。这样获得了下表5。
表5示例明文正向索引表
密钥产生:
d)选择带有密钥的散列函数其中K是密钥。
BFT产生:
c)使用密钥Kj和适当的加密方案来加密Fj和FNj,获得加密的文件标识符EFj(由加密单元302执行)。
EFj具有彼此不同的特性,因此,在使用密钥Kj对EFj进行解密时,将获得Fj和FNj。例如,首先选择随机加密密钥fk来加密文件fj。此外,可以使用fk来加密FNj并获得密文形式的FNj,即CFNj。在这种情况下,EFj是其中Enckey(*)是以key作为加密密钥的某种对称加密机制。很容易知道,利用密钥Kj,可以对EFj进行解密以获得fk和CFNj。利用CFNj来定位和检索加密文件,文件密钥fk最终可以对加密文件和CFNj进行解密,CFNj揭示了fj和FNj。
最终,对于每个EFj,输出(EFj:Tj,{Wji})(以存储在服务器中)。因此,获得下表6:
表6示例盲化正向索引表
权限发布:
该过程涉及权限发布单元401和关键字预处理单元406。
搜索:
对于BFT的由EFj标识的每一行,以Wjυ表示属于域Rυ的盲化索引。
该过程涉及BFT匹配单元403。
解密:
b)使用Kj来对EFj进行解密并获得CFNj和文件密钥fk。
该过程涉及解密单元405。
[改进]
可选方案1:
上表6以明文揭示了域信息。可选地,域信息可以被盲化,因此对于服务器隐藏域信息。
现在,在上述权限发布过程最后,SC应该包含与盲化的域{ERυ}相关的信息,而不是与域{Rυ}相关的信息。
表7示例可选盲化正向索引表
可选方案2:
除了在可选方案1中公开的相反之外,数据所有方可以逻辑上将关键字当作域,即虚拟域。例如,表5可以被解释为下表8:
表8示例重解译明文正向索引表
不难看出,表8也可以被当作倒排索引表。
NULL表项,例如“w11:NULL”,表示该关键字并不包含在文件中。为了避免文件的确包含诸如“Alice:NULL”的关键字的少数情况,数据所有方可以使用附加的私密密钥来处理NULL表项。例如,在表8中用“w11:Hη(w11)”代替“w11:NULL”。
表9示例重解译盲化正向索引表
该可选方案所关注的在于能够进行“非关键字”搜索。例如,搜索方以联合关键字“Alice且非Beijing”搜索文献。数据所有方可以向搜索方发出搜索权限“Alice且Beijing:NULL”。再次需要注意,“Beijing:NULL”实际上可以以私密密钥η预处理为Beijing:Hη(Beijing)。
最终,很容易设计基于CKSS方案、可选方案1和可选方案2的混合方案。例如,BFT可以构造成一些域信息以明文形式揭示而其它域信息被盲化。再例如,BFT可以构造成半结构化文献,即既具有盲化域也具有虚拟域。
以上描述仅给出了本发明的优选实施例,而并不是要以任何方式限制本发明。因此,在本发明精神和原理内进行的任何修改、替换、改进等应该由本发明范围所涵盖。
参考文献列表
[1]Amazon Simple Storage Service(Amazon S3),
http://aws.amazon.com/s3;
[2]Google Health,https://www.google.com/health;
[3]Microsoft Health Vault,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.6 million 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 Applications:5th InternationalWorkshop,WISA 2004,Jeju Island,Korea,August 23-25,LNCSvol.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.M.Chow,Exclusion-Intersection Encryption and ItsApplication to Searchable Encryption.Report 2005/377,Cryptology ePrint Archive(2005).
Claims (24)
1.一种用于产生盲化索引表的设备,包括:
初始化单元,用于执行初始化过程以获得秘密密钥和公共密钥;
关键字预处理单元,用于利用秘密密钥,根据关键字索引项,产生私密关键字;
盲化单元,用于
对于索引表的每一行:
随机地选择种子;
利用公共密钥和种子来产生匹配指示符;
利用公共密钥、秘密密钥和种子来产生加密密钥;
利用加密密钥来加密该行中的文件标识符项,以获得加密的文件标识符;
利用秘密密钥和种子来盲化该行中的私密关键字,以获得盲化索引集合;
通过排列加密的文件标识符、匹配指示符和盲化索引集合,形成盲化索引表的一行。
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所述的方法,其中
用另一个秘密密钥来加密每个域的域名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101325705A CN101859306B (zh) | 2009-04-07 | 2009-04-07 | 盲化索引表产生方法和设备、联合关键字搜索方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101325705A CN101859306B (zh) | 2009-04-07 | 2009-04-07 | 盲化索引表产生方法和设备、联合关键字搜索方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101859306A CN101859306A (zh) | 2010-10-13 |
CN101859306B true CN101859306B (zh) | 2013-01-23 |
Family
ID=42945222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101325705A Expired - Fee Related CN101859306B (zh) | 2009-04-07 | 2009-04-07 | 盲化索引表产生方法和设备、联合关键字搜索方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101859306B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105915520B (zh) * | 2016-04-18 | 2019-02-12 | 深圳大学 | 基于公钥可搜索加密的文件存储、搜索方法及存储系统 |
CN106227783B (zh) * | 2016-07-18 | 2019-10-25 | 山东爱城市网信息技术有限公司 | 一种政务数据聚合装置、数据提供端、系统和方法 |
CN107491463B (zh) * | 2016-07-21 | 2020-02-18 | 平安科技(深圳)有限公司 | 数据查询的优化方法和系统 |
CN107147702B (zh) * | 2017-04-20 | 2021-03-30 | 北京小米移动软件有限公司 | 文件下载方法及装置 |
CN108449309B (zh) * | 2018-01-19 | 2019-08-20 | 华中科技大学 | 一种混合型可搜索加密方法和系统 |
CN109033873B (zh) * | 2018-07-19 | 2020-11-17 | 四川长虹智慧健康科技有限公司 | 一种防止隐私泄漏的数据脱敏方法 |
CN110636070B (zh) * | 2019-09-26 | 2021-08-13 | 支付宝(杭州)信息技术有限公司 | 数据发送方法、数据查询方法、装置、电子设备和系统 |
CN113761564A (zh) * | 2020-07-30 | 2021-12-07 | 北京京东振世信息技术有限公司 | 一种保护数据的方法和装置 |
Citations (3)
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 | 北京金山软件有限公司 | 一种数据存储/检索方法及系统 |
-
2009
- 2009-04-07 CN CN2009101325705A patent/CN101859306B/zh not_active Expired - Fee Related
Patent Citations (3)
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 |
---|---|
CN101859306A (zh) | 2010-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220368545A1 (en) | Searchable encrypted data sharing method and system based on blockchain and homomorphic encryption | |
CN101859306B (zh) | 盲化索引表产生方法和设备、联合关键字搜索方法和设备 | |
CN103281377B (zh) | 一种面向云的密文数据存储与查询方法 | |
CN107491497B (zh) | 支持任意语言查询的多用户多关键词排序可搜索加密系统 | |
EP2348447B1 (en) | A computer implemented method for generating a set of identifiers from a private key, computer implemented method and computing device | |
CN102187618B (zh) | 生成和验证伪名的方法和装置 | |
CN105049196B (zh) | 云存储中指定位置的多个关键词可搜索的加密方法 | |
CN105933281B (zh) | 一种量子同态对称可搜索加密的方法及系统 | |
CN105610910A (zh) | 面向云存储并基于全同态密码的密文全文检索方法及系统 | |
CN108111587B (zh) | 一种基于时间释放的云存储搜索方法 | |
CN115021903B (zh) | 一种基于区块链的电子病历共享方法及系统 | |
CN101924739A (zh) | 一种软件证书及私钥的加密存储并找回的方法 | |
CN105282167A (zh) | 一种可搜索的无证书公钥加密方法 | |
CN104052740A (zh) | 云存储中可验证的基于词典的可搜索加密方法 | |
CN110392038A (zh) | 一种多用户场景下可验证的多密钥可搜索加密方法 | |
JP6961324B2 (ja) | 検索可能暗号処理システム | |
CN112804050B (zh) | 多源数据查询系统及方法 | |
CN115473703A (zh) | 认证的基于身份的密文等值测试方法、装置、系统及介质 | |
KR101140576B1 (ko) | 암호화 문서에 대한 다자간 검색 시스템 및 그 방법 | |
Ibrahim et al. | Approximate keyword-based search over encrypted cloud data | |
CN101957902B (zh) | 扩展盲化倒排索引表产生方法和设备、联合关键字搜索方法和设备 | |
CN108259172B (zh) | 云存储系统中的密文搜索方法 | |
CN108243000B (zh) | 云存储系统中的密文搜索方法 | |
CN102833239B (zh) | 基于网络身份标识实现客户端账户信息嵌套保护的方法 | |
CN113868450B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130123 Termination date: 20170407 |