著录项信息
专利名称 | 用于快速密文检索的方法、装置和系统 |
申请号 | CN200810145083.8 | 申请日期 | 2008-08-01 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2009-12-02 | 公开/公告号 | CN101593196 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G06F17/30;H04L9/00查看分类表>
|
申请人 | 日电(中国)有限公司 | 申请人地址 | 北京市东城区东四十条甲22号南新仓国际大厦B座12层12***
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 日电(中国)有限公司 | 当前权利人 | 日电(中国)有限公司 |
发明人 | 雷浩;田野;曾珂;王利明;福岛俊一 |
代理机构 | 北京东方亿思知识产权代理有限责任公司 | 代理人 | 李晓冬 |
摘要
本发明提供了一种用于快速密文检索的方法、装置和系统。数据拥有者对文件加密并将密文存储到服务器上。数据拥有者根据文件的关键词生成加密索引,并将加密索引存储到服务器上。索引由关键词条目集合组成,每个关键词条目集合由一个关键词条目集合定位器标识,并至少包含与相应的关键词相关联的文件的一个或多个文件定位器。每个文件定位器包含用于获取加密文件的信息的密文,并且只有利用正确的文件定位器解密密钥,该密文才能被解密。数据拥有者向检索者授予关键词条目集合定位器以及文件定位器解密密钥,以使得检索者能够对加密索引进行检索并获取与某个关键词有关的文件。
1.一种用于密文检索的方法,包括:
设置一个或多个文件定位器生成密钥;
通过将至少包含关键词的串映射到唯一值,来生成一个或多个关键词条目集合定位器;
通过用至少一个文件定位器生成密钥对多个文件中的每个文件的文件获取信息进行加密,来生成一个或多个文件定位器;以及
通过一个或多个关键词条目集合形成加密索引,其中每个关键词条目集合由一个关键词条目集合定位器标识,并至少包含一个或多个与相应关键词相关联的文件的文件定位器。
2.根据权利要求1所述的方法,还包括:
为每个文件设置文件加密密钥;以及
用相应的文件加密密钥对每个文件加密。
3.根据权利要求1所述的方法,其中,所述文件获取信息至少包含文件的加密资源标识符和文件解密密钥。
4.根据权利要求3所述的方法,其中,所述文件获取信息还包括用于可确认解密的标志。
5.根据权利要求1所述的方法,其中,关键词条目集合中的每个文件定位器伴随有一个索引定位器,并且所述方法还包括:
通过将至少包含文件的加密资源标识符的串映射到唯一值,来为每个文件生成索引定位指示器;以及
通过将至少包含文件的文件定位器、相应的关键词条目集合定位器和索引定位指示器的串映射到唯一值,来为每个文件生成索引定位器。
6.根据权利要求5所述的方法,其中,所述索引定位指示器被生成为至少包含加密资源标识符和秘密密钥的串的哈希值。
7.根据权利要求1所述的方法,其中,所述关键词条目集合定位器被生成为至少包含相应关键词和主加密密钥的串的哈希值。
8.根据权利要求1所述的方法,其中,所述关键词条目集合定位器是通过用文件定位器生成密钥对相应的关键词进行加密而生成的。
9.根据权利要求1所述的方法,其中,所述一个或多个文件定位器生成密钥是根据一个或多个隐私级别而设置的。
10.根据权利要求9所述的方法,其中,每个文件定位器生成密钥是至少包含主加密密钥和指示隐私级别的值的串的哈希值。
11.根据权利要求9所述的方法,其中,每个隐私级别的文件定位器生成密钥是前一较高隐私级别的文件定位器生成密钥的哈希值。
12.根据权利要求9所述的方法,其中,每个隐私级别的文件定位器生成密钥是前一较低隐私级别的文件定位器生成密钥的d0次幂,其中d0是私钥。
13.根据权利要求1所述的方法,其中,每个文件定位器生成密钥是至少包含关键词和主加密密钥的串的哈希值。
14.一种用于密文检索的装置,包括:
加密/解密设置单元,被配置为设置一个或多个文件定位器生成密钥;
关键词条目集合定位器生成单元,被配置为通过将至少包含关键词的串映射到唯一值,来生成一个或多个关键词条目集合定位器;
文件定位器生成单元,被配置为通过用至少一个文件定位器生成密钥对多个文件中的每个文件的文件获取信息进行加密,来生成一个或多个文件定位器;以及索引形成单元,被配置为通过一个或多个关键词条目集合形成加密索引,其中每个关键词条目集合由一个关键词条目集合定位器标识,并至少包含一个或多个与相应关键词相关联的文件的文件定位器。
15.根据权利要求14所述的装置,其中,所述加密/解密设置单元还被配置为多个文件中的每个文件设置文件加密密钥,并且所述装置还包括文件加密单元,所述文件加密单元被配置为用相应的文件加密密钥对每个文件加密。
16.根据权利要求14所述的装置,其中,所述文件获取信息至少包含文件的加密资源标识符和文件解密密钥。
17.根据权利要求16所述的装置,其中,所述文件获取信息还包括用于可确认解密的标志。
18.根据权利要求14所述的装置,还包括:
索引定位指示器生成单元,被配置为通过将至少包含文件的加密资源标识符的串映射到唯一值,来为每个文件生成索引定位指示器;以及
索引定位器生成单元,被配置为通过将至少包含文件的文件定位器、相应的关键词条目集合定位器和索引定位指示器的串映射到唯一值,来为每个文件生成索引定位器,其中,所述索引形成单元形成加密索引使得关键词条目集合中的每个文件定位器伴随有一个相关的索引定位器。
19.根据权利要求18所述的装置,其中,所述索引定位指示器生成单元被配置为生成至少包含加密资源标识符和秘密密钥的串的哈希值作为所述索引定位器。
20.根据权利要求14所述的装置,其中,所述关键词条目集合定位器生成单元被配置为生成至少包含相应关键词和主加密密钥的串的哈希值作为所述关键词条目集合定位器。
21.根据权利要求14所述的装置,其中,所述关键词条目集合定位器单元被配置为通过用文件定位器生成密钥对相应的关键词进行加密来生成所述关键词条目集合定位器。
22.根据权利要求14所述的装置,其中,所述加密/解密设置单元被配置为根据一个或多个隐私级别来设置所述一个或多个文件定位器生成密钥。
23.根据权利要求22所述的装置,其中,所述加密/解密设置单元被配置为设置至少包含主加密密钥和指示隐私级别的值的串的哈希值作为所述文件定位器生成密钥。
24.根据权利要求22所述的装置,其中,所述加密/解密设置单元被配置为将每个隐私级别的文件定位器生成密钥设置为前一较低隐私级别的文件定位器生成密钥的哈希值。
25.根据权利要求22所述的装置,其中,所述加密/解密设置单元被配置为将每个隐私级别的文件定位器生成密钥设置为前一较低隐私级别的文件定位器生成密钥的d0次幂,其中d0是私钥。
26.根据权利要求14所述的装置,其中,所述加密/解密设置单元被配置为设置至少包含关键词和主加密密钥的串的哈希值作为所述文件定位器生成密钥。
27.一种在加密文件检索中使用的方法,包括:
存储包括一个或多个关键词条目集合的加密索引,每个关键词条目集合由一个关键词条目集合定位器标识,并至少包含一个或多个文件定位器,每个文件定位器伴随有一个索引定位器;
接收索引定位指示器;以及
如果伴随一个文件定位器的索引定位器等于通过映射至少含有所述文件定位器、标识关键词条目集合的关键词条目集合定位器以及所述被接收的索引定位指示器的串而计算出的值,则从所述关键词条目集合中删除所述文件定位器。
28.根据权利要求27所述的方法,还包括:
接收一个或多个关键词条目集合定位器;以及
搜索由所述被接收的一个或多个关键词条目集合定位器标识的一个或多个关键词条目集合,
其中,所述删除是在所述一个或多个关键词条目集合中执行的。
29.根据权利要求27所述的方法,还包括:
接收关键词条目集合定位器;
搜索由所述被接收的关键词条目集合定位器标识的关键词条目集合;
输出所述关键词条目集合中所包含的文件定位器;
接收一组加密资源标识符;以及
输出由与所述接收的加密资源标识符相匹配的加密资源标识符标识的加密文件。
30.根据权利要求29所述的方法,还包括在接收所述一组加密资源标识符之后,从所述一组加密资源标识符中过滤掉要从检索中排除的加密文件的加密资源标识符。
31.一种在加密文件检索中使用的装置,包括:
存储单元,被配置为存储包括一个或多个关键词条目集合的加密索引,每个关键词条目集合由一个关键词条目集合定位器标识,并至少包含一个或多个文件定位器,每个文件定位器伴随有一个索引定位器;以及
索引更新单元,被配置为如果伴随一个文件定位器的索引定位器等于通过映射至少含有所述文件定位器、标识关键词条目集合的关键词条目集合定位器以及一个被接收的索引定位指示器的串而计算出的值,则从所述关键词条目集合中删除所述文件定位器。
32.根据权利要求31所述的装置,还包括:
索引检索单元,被配置为在所述加密索引中搜索由关键词条目集合定位器标识的关键词条目集合。
33.根据权利要求31所述的装置,还包括:
文件搜索单元,被配置为搜索由加密资源标识符标识的加密文件。
34.根据权利要求33所述的装置,还包括:
过滤单元,被配置为从被接收的一组加密资源标识符中过滤掉要从检索中排除的加密文件的加密资源标识符。
35.一种用于加密文件检索的方法,包括:
接收关键词条目集合定位器和文件定位器解密密钥;
利用所述关键词条目集合定位器获取一个或多个文件定位器;
用所述文件定位器解密密钥对每个文件定位器解密,以获得一个或多个加密资源标识符和相应的文件解密密钥;
获取由所述一个或多个加密资源标识符标识的一个或多个加密文件;以及用相应的文件解密密钥对每个加密文件解密。
36.根据权利要求35所述的方法,还包括:
接收标志;以及
通过将所述被接收的标志与从每个文件定位器的解密获得的标志相比较,来确认每个文件定位器的解密。
37.根据权利要求35所述的方法,还包括:
通过计算所述文件定位器解密密钥的哈希值,得到用于较低隐私级别的文件定位器解密密钥。
38.根据权利要求35所述的方法,还包括:
通过计算所述文件定位器解密密钥的e0次幂,得到用于较低隐私级别的文件定位器解密密钥,其中e0是公钥。
39.一种用于加密文件检索的装置,包括:
检索请求单元,被配置为生成至少包含关键词条目集合定位器的检索请求;
文件定位器解密单元,被配置为用文件定位器解密密钥对一个或多个文件定位器解密,以获得一个或多个加密资源标识符和相应的文件解密密钥;
文件获取单元,被配置为获取由所述一个或多个加密资源标识符标识的一个或多个加密文件;以及
用相应的文件解密密钥对每个加密文件解密。
40.根据权利要求39所述的装置,其中,所述文件定位器解密单元还被配置为通过将接收的标志与从每个文件定位器的解密获得的标志相比较,来确认每个文件定位器的解密。
41.根据权利要求39所述的装置,其中,所述文件定位器解密单元还被配置为通过计算所述文件定位器解密密钥的哈希值,得到用于较低隐私级别的文件定位器解密密钥。
42.根据权利要求39所述的装置,其中,所述文件定位器解密单元还被配置为通过计算所述文件定位器解密密钥的e0次幂,得到用于较低隐私级别的文件定位器解密密钥,其中e0是公钥。
用于快速密文检索的方法、装置和系统
技术领域
[0001] 本发明涉及信息获取技术,尤其涉及用于快速密文检索的方法、装置和系统。
背景技术
[0002] 随着网络和通信技术的广泛使用,数据存储和管理服务变得普遍起来。在一些情
况中,出于各种原因,用户将一些,甚至大量的数据存储在由第三方存储供应商维护的(一
个或多个)远程服务器上,这些原因例如是用户终端的存储容量有限、在用户终端处不能
提供稳定或长时间连续的数据访问、数据维护的成本(考虑到存储管理的成本一般是最初
获取数据的成本的5~10倍),等等。
[0003] 但是,大多数第三方存储供应商并不提供对数据保密性和完整性的强有力的保
障。如果敏感数据被存储在由不完全可信的第三方维护的存储服务器上,则需要一个安全
系统来提供对数据保密性和访问模式隐私性的保障。
[0004] 图1示出了一种情形,其中数据拥有者Alice将她的文件外发到不完全可信的第
三方,即存储服务提供者,并且她还想要一些文件被分享给特定的检索者,例如她的朋友、
同事和/或亲戚。换言之,她希望让检索者直接向存储服务检索她的文件,而不是向Alice
自己发送查询。另一方面,Alice希望限定并实行对被分享的文件的访问权限。在图1所
示的示例中,Alice希望文件Novel.pdf、Pets.jpg和Financial.doc可以被她的亲戚检索
和访问,但是其他文件不被她的亲戚看到。类似地,Alice希望一些文件可以分别被她的朋
友和同事检索和访问,但是其他文件不行。为了实现这样的目的,需要数据安全和访问控制
措施。
[0005] 由于存储服务提供者是不完全可信的,因此Alice的文件需要全部加密,并且存
储服务提供者不能将文件解密密钥散播给检索者。此外,Alice不能依赖于存储服务提供
者来实行对她的文件的访问控制。
[0006] 鉴于上述情形,存在以下问题:如何使得检索者能够检索文件并进一步访问文件;
如何将文件解密密钥传播给检索者;如何针对不同的检索者区分不同的文件访问权限;如
果文件被更新或去除,如何维护服务;如何在计算和通信开销方面使得方案具有高的效率。
[0007] 在远程数据中容易并高效地进行检索的能力是一个非常重要的特点。迄今为止,
存在一些高效的基于内容的关键词检索索引方案。但是,在安全远程存储中支持具有隐私
性的基于内容的检索是困难的,并且经常要么明显损失安全性,要么明显损失性能。例如,
如果数据以加密的形式存储在远程服务器上,则为了执行基于内容的检索,可能难以负担
在服务器处进行解密,或者将大批加密的数据传送到客户端。前者因为可能不完全可信的
服务器需要知道解密密钥而损失了安全性,而后者因为大量数据传输而损失了性能。
[0008] 在中国专利申请公开CN1588365A中,发明人李新提出了一种称为“密文全文检
索”技术。在该密文全局检索技术中,在索引阶段,数据拥有者首先创建针对所有文件的索
引;然后使用一个密钥对索引中的检索词进行加密,得到密文索引,使用同一密钥对文件进
行加密,得到加密的文件,并用一个公钥PK对该密钥加密;最后,数据拥有者将密文索引、
加密的文件以及密钥的密文存储在存储服务器上。在检索阶段,数据拥有者在进行检索之
前,首先从存储服务器下载密钥的密文,利用与公钥相对应的私钥对密钥的密文进行解密;
其次,数据拥有者利用密钥对查询检索词加密,并将密文检索词发送给存储服务器;再次,
存储服务器在密文索引中查找相同的密文检索词;最后,数据拥有者根据匹配结果获取加
密的文件,并用密钥对这些加密的文件解密。如果数据拥有者希望授权一个检索者对该密
文索引和加密的文件进行检索,他用该检索者的公钥对密钥进行加密,并将密钥的密文发
送给该检索者。
[0009] 利用这样的方案,数据拥有者仅使用单个密钥来加密所有的文件。在大多数情况
中的文件加密使用的是流式密文。但是,已经知道用单个密钥加密多于一个文件是一种不
安全的方法。另外,数据拥有者使用同一密钥来解密所有文件和所有关键词。这样,如果检
索者曾经对数据拥有者的文件执行过任何关键词的检索,则检索者可以获取数据拥有者的
全部文件。因此,上述的密文全文检索技术在图1所示的应用中不能很好地保证安全性。
[0010] D.Boneh,G.D.Crescenzo,R.Ostrovsky,G.Persiano,“Public KeyEncryption
with Keyword Search”,EuroCrypt 2004;and R.Curtmola,J.Garay,S.Kamara,
“Searchable Symmetric Encryption:Improved Definitions andEfficient
Constructions”,CCS 2006中提出了另一种更加复杂的方案。利用这种方案,在索引阶
段,数据拥有者首先选择文件中的一些特殊字段(例如电子邮件中的关键词“紧急”)来创
r
建索引。具体地说,对于每个文件,数据拥有者对特定关键词加密。例如,<A=g,B=
r
H2(e(H1(KW),h)>是“加密后的关键词”,其中,KW是关键词,e:G1×G1->G2,g是G1的生成
* x
子,H1和H2是两个不同的哈希函数,r是Zp 中的随机数,h等于g,x是秘密密钥并且也在
*
Zp 中。这样,安全索引由一系列元组构成,其中第i个元组是(An,Bn)>,其中ciphertexti是利用文件加密密钥Kfilei加密的Filei的密文。在检索阶段,
x
数据拥有者首先通过计算并向检索者发送针对关键词KW的陷门(trapdoor)TKW=H1(KW),
来授权该检索者查询该关键词。然后,检索者向存储服务器提交TKW。对每个文件的每个加
密后的关键词,存储服务器计算B′=H2(e(TKW,A))来检查文件是否包含KW。如果B=B’,
则加密的文件是匹配的输出,反之亦然。如果检索者希望对加密的文件解密,则需要与数据
拥有者的另一轮交互来获取相应的解密密钥。
[0011] 利用上述方案,存储服务器花费在检索上的计算的复杂度为O(m×n),其中m是文
件的数目,n是每个文件中的不同的关键词的平均数目。例如,对于1000个文件和10个关
键词,在配备有8个CPU的存储服务器上,一次检索需要30秒。该方案的另一个缺点在于:
在存储服务器返回了匹配的结果(即含有关键词的加密的文件)之后,为了获得这些加密
的文件的解密密钥,检索者必须联系数据拥有者。
发明内容
[0012] 鉴于现有技术中的问题作出了的本发明,提供了一种用于快速密文检索的方法、
装置和系统。
[0013] 利用根据本发明的新颖的快速密文检索方案,在先进的基于内容的检索应用中,
向利用不完全可信的存储服务器的外发存储提供了以下一个或多个或者其他的重要的安
全特性:
[0014] 保密性——无论是在客户端-服务器交互中还是在服务器方,即使是恶意的服务
器,存储在服务器上的数据也是不可破解的。
[0015] 检索隐私性——在整个检索过程中,检索中所关心的关键词以及检索者的隐私级
别不会暴露给服务器。
[0016] 多级别获取——每个特定的检索者只能获得可在其隐私级别上公开的文件。
[0017] 可确认解密——检索者能够确认在检索者方执行的对索引中的加密了的条目的
解密的正确性。
[0018] 虚拟删除——服务器可以从要提供给检索者的检索结果中屏蔽掉被删除的文件。
文件删除后对索引的更新可以以后以较低频次并按照对服务较小影响的方式来执行。
[0019] 在加密索引中定位条目——利用附加参数,服务器被提供了在索引中定位与特定
文件相关的文件定位信息的能力。
[0020] 加密索引的更新——加密索引可以被快速更新,以添加或删除与被添加或删除的
文件有关的条目。
[0021] 细粒度授权——可以不仅根据隐私级别,而且还根据关键词来控制检索的授权。
[0022] 链式授权——处于任何隐私级别的检索者可以检索在其所处隐私级别所支配的
文件,并且较高隐私级别将支配较低隐私级别。
[0023] 根据本发明的一个方面,提供了一种用于密文检索的方法,包括:设置一个或多个
文件定位器生成密钥;通过将至少包含关键词的串映射到唯一值,来生成一个或多个关键
词条目集合定位器;通过用至少一个文件定位器生成密钥对多个文件中的每个文件的文件
获取信息进行加密,来生成一个或多个文件定位器;以及通过一个或多个关键词条目集合
形成加密索引,其中每个关键词条目集合由一个关键词条目集合定位器标识,并至少包含
一个或多个与相应关键词相关联的文件的文件定位器。
[0024] 根据本发明的另一个方面,提供了一种用于密文检索的装置,包括:加密/解密设
置单元,被配置为设置一个或多个文件定位器生成密钥;关键词条目集合定位器生成单元,
被配置为通过将至少包含关键词的串映射到唯一值,来生成一个或多个关键词条目集合定
位器;文件定位器生成单元,被配置为通过用至少一个文件定位器生成密钥对多个文件中
的每个文件的文件获取信息进行加密,来生成一个或多个文件定位器;以及索引形成单元,
被配置为通过一个或多个关键词条目集合形成加密索引,其中每个关键词条目集合由一个
关键词条目集合定位器标识,并至少包含一个或多个与相应关键词相关联的文件的文件定
位器。
[0025] 根据本发明的另一个方面,提供了一种在加密文件检索中使用的方法,包括:存储
包括一个或多个关键词条目集合的加密索引,每个关键词条目集合由一个关键词条目集合
定位器标识,并至少包含一个或多个文件定位器,每个文件定位器伴随有一个索引定位器;
接收索引定位指示器;以及如果伴随一个文件定位器的索引定位器等于通过映射至少含有
所述文件定位器、标识关键词条目集合的关键词条目集合定位器以及所述被接收的索引定
位指示器的串而计算出的值,则从所述关键词条目集合中删除所述文件定位器。
[0026] 根据本发明的另一个方面,提供了一种在加密文件检索中使用的装置,包括:存储
单元,被配置为存储包括一个或多个关键词条目集合的加密索引,每个关键词条目集合由
一个关键词条目集合定位器标识,并至少包含一个或多个文件定位器,每个文件定位器伴
随有一个索引定位器;以及索引更新单元,被配置为如果伴随一个文件定位器的索引定位
器等于通过映射至少含有所述文件定位器、标识关键词条目集合的关键词条目集合定位器
以及一个被接收的索引定位指示器的串而计算出的值,则从所述关键词条目集合中删除所
述文件定位器。
[0027] 根据本发明的另一个方面,提供了一种用于加密文件检索的方法,包括:接收关键
词条目集合定位器和文件定位器解密密钥;利用所述关键词条目集合定位器获取一个或多
个文件定位器;用所述文件定位器解密密钥对每个文件定位器解密,以获得一个或多个加
密资源标识符和相应的文件解密密钥;获取由所述一个或多个加密资源标识符标识的一个
或多个加密文件;以及用相应的文件解密密钥对每个加密文件解密。
[0028] 根据本发明的另一个方面,提供了一种用于加密文件检索的装置,包括:检索请求
单元,被配置为生成至少包含关键词条目集合定位器的检索请求;文件定位器解密单元,被
配置为用文件定位器解密密钥对一个或多个文件定位器解密,以获得一个或多个加密资源
标识符和相应的文件解密密钥;文件获取单元,被配置为获取由所述一个或多个加密资源
标识符标识的一个或多个加密文件;以及用相应的文件解密密钥对每个加密文件解密。
[0029] 本发明使得数据拥有者能够对加密导频索引应用基于属性的和多级别的获取。所
有数据以及相关联的元数据在被发送给服务器之前,在数据拥有者处使用加密技术被加
密。在服务器上,数据在其存在期间保持被加密的状态。为了使得能够对加密数据进行基
于内容的检索,所有被存储的文件在数据拥有者处在索引阶段以安全的方式编制索引。这
样得到索引结构在服务器处的保密存储,以用于以后的安全客户访问。通过在检索结果中
进行过滤,保证了虚拟删除。通过根据隐私级别或者关键词,限制和部署与检索者适应的解
密密钥,实现了多级别获取。
[0030] 本发明采用了高效的检索算法,使得检索能够对大量文件和关键词进行。利用本
发明,检索时间是O(log(N))to O(1),其中N是全部文件的所有不同的关键词的数目。因
此,与需要O(m×n)的现有技术相比,本发明提供了高效和可行的方案。
附图说明
[0031] 从下面结合附图对本发明优选实施例的描述中可以更好地理解本发明,附图中类
似的参考标号表示类似的部分,其中:
[0032] 图1是示出了使用存储服务的一个示例的示图;
[0033] 图2是示意性地示出了在其中应用了本发明的系统的配置示例的示图;
[0034] 图3是示意性地示出了根据本发明一个实施例的数据拥有者终端的配置示例的
框图;
[0035] 图4是示意性地示出了根据本发明一个实施例的数据拥有者终端的操作的流程
图;
[0036] 图5是示意性地示出了根据本发明一个实施例的生成加密倒排索引的过程示例
的流程图;
[0037] 图6是示意性地示出了根据本发明一个实施例的索引阶段的数据流的示例的示
图;
[0038] 图7是示意性地示出了根据本发明一个实施例的服务器的配置示例的框图;
[0039] 图8是示意性地示出了根据本发明一个实施例的检索者终端的配置示例的示图;
[0040] 图9是示意性地示出了根据本发明一个实施例的检索过程的流程图;
[0041] 图10是示意性地示出了根据本发明一个实施例的检索阶段的数据流的示图;
[0042] 图11是示意性地示出了根据本发明一个实施例的检索阶段中的过滤处理的数据
流示例的示图;
[0043] 图12是示意性地示出了根据本发明一个实施例的数据拥有者终端的配置示例的
框图;
[0044] 图13是示意性地示出了根据本发明一个实施例的检索阶段的数据流示例的示
图;
[0045] 图14是示意性地示出了根据本发明一个实施例的服务器的配置示例的框图;
[0046] 图15是示意性地示出了根据本发明一个实施例的用于当加密的文件要被删除时
更新加密索引的服务器的处理的流程图;
[0047] 图16是示意性地示出了根据本发明一个实施例的更新加密索引的数据流示例的
示图;并且
[0048] 图17是示意性地示出了根据本发明一个实施例的更新加密索引的数据流的另一
个示例的示图。
具体实施方式
[0049] 下面将参考附图描述本发明的。在下面的详细描述中,提出了许多具体细节,以便
提供对本发明的全面的理解。但是,对于本领域技术人员来说很明显,本发明可以在不需要
这些具体细节中的一些细节的情况下被实施。在附图和下面的描述中,没有示出公知的结
构和技术,以便避免不必要地使本发明模糊。
[0050] 图2是示意性地示出了在其中应用了本发明的一个系统的示图。该系统中涉及了
三方:至少一个数据拥有者、至少一个服务提供者、以及一个或多个检索者。如图2所示,数
据拥有者的装置或终端、由服务提供者管理的服务器、以及一个或多个检索者的装置或终
端经由通信网络彼此连接并彼此可通信。数据拥有者和服务器的装置或终端中的每个可以
实现为能够处理信息和进行信息通信的设备,例如个人计算机(PC)、个人数字助理(PDA)、
智能电话、或者其他数据处理设备。服务器一般实现为由服务提供者管理的能够存储和维
护许多数据,并且使得终端能够有条件地访问数据的的设备或一组设备。
[0051] 在本发明的系统中,数据拥有者将其文件和相关联的元数据加密,并将密文存储
在服务器上。在服务器上,文件始终保持被加密的状态。为了使得能够对加密的文件进行
基于内容的检索,数据拥有者根据文件的每个关键词来生成加密的索引,并将加密的索引
存储到服务器上。该索引是倒排索引,并且在服务器上存储时保持被加密。为了授权检索
者对加密索引进行检索并获取包含一个或多个特定关键词的文件,数据拥有者向检索者授
予包括特定解密密钥的必要数据。然后,利用数据拥有者授予的数据,检索者可以通过检索
请求对存储在服务器上的加密的文件进行检索,并且作为结果,从服务器获取有关的加密
的文件,并通过利用被授予的解密密钥进行解密,来获得文件的明文。
[0052] 根据本发明,利用由一个或多个关键词条目集合(Keyword Item Set,KIS)组成的
加密倒排索引,加密的文件被索引。无论是在客户端-服务器交互中还是在服务器方,即使
是恶意的服务器,存储在服务器上的数据也是不可破解的。每个特定的检索者只能获取和
解密与该检索者被授予的特定隐私级别的文件定位器解密密钥相对应的加密文件。加密的
文件在被删除之后可以从检索中排除,而加密倒排索引的更新可以以后有条件地执行。
[0053] 下面将详细描述本发明的各个方面的特征和示例性实施例。应当注意,下面对实
施例的描述仅仅是为了通过示出本发明的示例来提供对本发明的更好的理解。本发明决不
限于下面所提出的任何具体配置和算法,而是覆盖了元素、部件和算法的任何修改、替换和
改进,只要不脱离本发明的精神。
[0054] 【加密和检索】
[0055] 图3是示意性地示出了根据本发明一个实施例的数据拥有者的配置的框图。如图
3所示,数据拥有者终端100主要包括关键词单元101、加密/解密设置单元102、文件加密
单元103、KIS定位器生成单元104、文件定位器生成单元105和索引形成单元106。
[0056] 将参考图4和图5来描述根据本实施例的数据拥有者终端100的操作。图4是示
意性地示出了数据拥有者终端的操作的流程图,图5是示出了生成加密倒排索引的过程的
示例的流程图。
[0057] 如图4所示,在步骤S201,关键词单元101设置每个文件和该文件中所包含或与该
文件相关的一个或多个关键词之间的关联。这可以通过从文件中提取关键词或者通过用户
的输入来进行。另外,文件和关键词的关联可以由数据拥有者预先设置,并作为表存储在数
据拥有者终端中的存储装置中,或者可以从远程位置接收得到。在这样的情形中,关键词单
元101对于数据拥有者终端的配置来说不是必要的。
[0058] 在步骤S202,加密/解密设置单元102为每个文件设置文件加密和解密密钥。文
件加密密钥用于对相应的文件加密,文件解密密钥用于对相应的加密文件解密。文件加密
/解密密钥可以根据任何加密方法而任意设置。在本发明中,用于一个文件的文件加密密
钥和文件解密密钥可以利用非对称加密方案而不同地设定。但是,利用对称加密方案,单个
密钥也可以在本发明中用作一个文件的文件加密密钥和文件解密密钥两者。在这样的情况
中,在下面的说明中用于同一文件的文件加密密钥和文件解密密钥是相同的。
[0059] 在步骤S203,加密/解密设置单元102还设置并分配在检索中使用的下面将详细
描述的文件定位器生成和解密密钥。
[0060] 文件定位器生成密钥用于对文件的文件获取信息进行加密,以生成加密索引中的
后面将描述的文件定位器,文件定位器解密密钥用于对加密索引中的文件定位器解密。在
本实施例中,可以根据不同的隐私级别,设置多对文件定位器生成和解密密钥。
[0061] 例如,在图1所示的情形中,需要三个隐私级别:用于亲戚的级别1、用于朋友的级
别2和用于同事的级别3。如下面将要描述的,处在各个隐私级别的检索者被使得能够对可
在其隐私级别公开的文件进行检索和解密,但是将被保持看不到不能在其隐私级别公开的
文件。在上述示例中,三对文件定位器生成和解密密钥被设置,每对用于三个隐私级别中的
一个:EKey1/DKey1用于级别1,EKey2/DKey2用于级别2、EKey3/DKey3用于级别3。这里和下
面所使用的EKey表示文件定位器生成密钥,DKey表示文件定位器解密密钥。
[0062] 同样,文件定位器生成密钥和相应的文件定位器解密密钥可以根据任何加密方法
而任意设置。利用非对称加密方案,它们可以不同地设置,利用对称加密方案,它们可以设
定为相同。利用对称加密方案,同一对的文件定位器生成密钥和文件定位器解密密钥是相
同的。
[0063] 例如,对于隐私级别m的文件定位器生成和解密密钥可以如下生成:
[0064] EKeym=DKeym=Hash(MEK‖m) (式1)
[0065] 其中,Hash(MEK‖m)是利用密钥MEK的哈希函数,“‖”表示串或数字按照预定顺
序的组合,MEK是数据拥有者的主加密密钥,其可以由加密/解密设置单元102选择,或者
从任何其他的授权机构授予。很明显,任何其他类似算法的值也可以用作文件定位器生成
和解密密钥。
[0066] 数据拥有者终端可以保存计算文件定位器生成和解密密钥所需的算法和相关参
数,例如在加密/解密设置单元102中,以便用于以后计算文件定位器生成和解密密钥。例
如,数据拥有者终端存储主加密密钥MEK,并在加密索引被建立之后的以后的阶段中,当对
在特定隐私级别的检索者授权时,通过式1来计算文件定位器生成和解密密钥。或者,数据
拥有者终端可以在本地存储映射表,例如在加密/解密设置单元102中。在以后的阶段中,
如果需要特定隐私级别的文件定位器生成和解密密钥,数据拥有者终端简单地查找该映射
表,来找到相应的密钥。
[0067] 现在返回图4。在对每个文件的文件加密和解密密钥被设置之后,在步骤S204,文
件加密单元103利用相应的文件加密密钥对每个文件进行加密。
[0068] 在步骤S205,索引形成单元106基于文件的关键词,形成由一个或多个关键词条
目集合(KIS)组成的加密倒排索引。根据本实施例的每个KIS对应于一个关键词。根据本
实施例的生成索引的具体方法将参考图5来描述。
[0069] 图5示出了根据本实施例的生成加密倒排索引的过程的一个示例。在步骤S301,
针对关键词KWi,KIS定位器生成单元104生成唯一的KIS定位器KLi,作为关键词KWi的KIS
的唯一标识符。KIS定位器KLi可以任意生成,只要其唯一地对应于关键词KWi,并且在没有
数据拥有者的帮助下,任何其他人都无法从KLi计算出关键词KWi。一般,KIS定位器生成单
元104通过任何可用的算法,将每个关键词映射到一个唯一值,从而生成每个关键词的KIS
定位器。例如,KIS定位器KLi可以如下生成:
[0070] KLi=Hash(MEK‖KWi) (式2)
[0071] 应当注意到,这里所使用的哈希函数仅仅是本领域技术人员所知的许多映射算法
中的一个实例,本发明并不限于这样的算法。
[0072] 在步骤S302,文件定位器生成单元105根据每个文件可以向其公开的一个或多个
隐私基本,为每个文件生成一个或多个文件定位器。具体地说,如果文件FILEj可以在隐私
级别m公开,则文件定位器生成单元105通过利用被分配给隐私级别m的文件定位器生成
密钥EKeym对FILEj的文件获取信息进行加密,来生成FILEj的文件定位器FLj,m。如果文件
可在多个隐私级别公开,则文件定位器生成单元105为该文件生成多个文件定位器,其中
每个文件定位器对应于多个隐私级别中的一个隐私级别,且利用相应的一个文件定位器生
成密钥生成。
[0073] 例如,在图1所示的情形中,Alice希望文件Novel.pdf、Pets.jpg和Financial.
doc可在隐私级别1公开,文件Novel.pdf和Pets.jpg可在隐私级别2公开,并且文件
Research.ppt和Pets.jpg可在隐私级别3公开。该示例中每个文件可在向其公开的隐私
级别列出在表1中。
[0074] 表1
[0075]
级别1 级别2 级别3
Research.ppt 否 否 是
Novel.pdf 是 是 否
Pets.jpg 是 是
是
Financial.doc 是 否 否
[0076] 以可在隐私级别1和隐私级别2公开的文件Novel.pdf为例,文件定位器生成单
元105将用隐私级别1的文件定位器生成密钥EKey1对Novel.pdf的文件获取信息进行加
密,以生成文件定位器FLNovel.pdf,1,并用隐私级别2的文件定位器生成密钥EKey2对Novel.
pdf的文件获取信息进行加密,以生成文件定位器FLNovel.pdf,2。
[0077] 文件获取信息包括从服务器取得加密文件所需的信息以及用于对加密文件解密
的信息。例如,FILEj的文件获取信息是,CFNj‖Kfilej,其中CFNj是用于标识FILEj的加密后
文件的加密资源标识符,Kfilej是由加密/解密设置单元102设置的FILEj的文件解密密钥。
加密资源标识符CFNj可以是FILEj的加密文件名,或者FILEj的密文的URL。
[0078] 根据本实施例,针对FILEj的在隐私级别m的文件定位器FLj,m如下生成:
[0079] FLj,m=E(EKeym,CFNj‖Kfilej) (式3)
[0080] 其中,E(X,Y)是表示用X对Y加密的加密函数。
[0081] 返回图5,在KIS定位器生成单元104为每个关键词KWi生成KIS定位器KLi并为
全部文件生成了文件定位器之后,在步骤S303,针对每个关键词KWi,索引形成单元106用
与相对应的KIS定位器KLi和与该关键词有关的文件的所有文件定位器,形成KIS。
[0082] 以图1和表1中所示的情形为例,并且假设文件Research.ppt和Novel.pdf与关
键词KWa相关联,则根据本实施例,针对关键词KWi的KIS被生成为元组=E(EKey3,CFNResearch.ppt‖KResearch.ppt),FLNovel.pdf,1=E(EKey1,CFNNovel.pdf‖KNovel.pdf),FLNovel.pdf,
2=E(EKey2,CFNNovel.pdf‖KNovel.pdf)>。
[0083] 对于每个关键词,索引形成单元106形成一个KIS,并且在步骤S304,索引形成单
元106用全部KIS形成加密索引。
[0084] 应当注意,KIS定位器可以被放置在KIS外部,并仅仅被组织和处理为KIS的标识
符。在这种情况中,每个KIS定位器和相应的KIS之间的映射关系被建立,代替将KIS定位
器作为KIS的一部分。加密索引可以按照唯一的KIS定位器,被组织成标准(例如,基于树
的)数据结构,并且KIS定位器指定加密索引中的确切位置,从而服务器可以按照对数时间
找到KIS,如同位于未加密数据一样。
[0085] 返回图4,在步骤S206,数据拥有者终端100将加密文件和加密索引存储到服务器
上。数据拥有者终端与服务器以及检索者之间的通信可以通过未示出的通信单元来完成。
应当注意,这里所使用的术语“服务器”可以是提供存储服务和检索服务两者的单个装置,
或者彼此相邻或远程的一组多个装置,每个负责不同的服务,例如存储、数据检索、用户管
理等等,或者分担服务。例如,数据拥有者终端100可以将加密文件存储在存储服务器上,
而将加密索引存储在可以存储服务器通信的检索服务器上。为了简化说明,所有这样的提
供服务装置被总得称为“服务器”。
[0086] 为了帮助理解根据本实施例的索引阶段的处理,图6示出了上述示例的示意性数
据流。
[0087] 上面描述了根据本发明一个实施例的索引阶段中数据拥有者终端的处理。下面将
参考图7~9描述服务器和检索者终端的配置以及在检索阶段中的处理。
[0088] 图7示意性地示出了根据本发明一个实施例的服务器的示例配置,图8示意性地
示出了根据本发明一个实施例的检索者终端的配置。
[0089] 如图7所示,服务器400主要包括用于存储来自数据拥有者的加密文件和加密
索引的存储单元401、用于响应于检索者的请求而在加密索引中执行检索的索引检索单元
402、以及用于搜索由特定加密资源标识符标识的加密文件的文件搜索单元403。
[0090] 如图8所示,检索者终端500主要包括用于生成检索请求的检索请求单元501、用
于对文件定位器解密的文件定位器解密单元502、用于生成文件获取请求的文件获取单元
503、以及用于对所获取的加密文件进行解密的文件解密单元504。
[0091] 参考图9将描述根据本发明一个实施例的检索过程的示例。
[0092] 首先,在步骤S601,如果数据拥有者希望使得一个检索者能够对一个关键词进行
检索,则数据拥有者以安全的方式向该检索者授予该关键词的KIS定位器以及授权给该检
索者的适当隐私级别的文件定位器解密密钥。服务器可以通过各种方式来向每个检索者通
知相应的KIS定位器和文件定位器解密密钥,例如通过经由数据拥有者终端和检索者终端
之间的通信网络发送的电子消息来通知。授权过程可以响应于检索者的请求而执行。例
如,检索者可以例如利用检索能力请求单元(未示出),向数据拥有者发送包含他/她想要
检索的一个或多个关键词的请求。在确认了检索者的身份之后,数据拥有者可以决定适合
于该检索者的隐私级别,并向该检索者授予所请求的(一个或多个)关键词的(一个或多
个)KIS定位器,以及所决定的隐私级别的文件定位器解密密钥。KIS定位器和文件定位器
解密密钥可以从数据拥有者终端处所存储的表中获取,或者可以由数据拥有者根据所存储
的安全参数在线地计算出来。授权的过程例如可以由数据拥有者终端中的授权单元(未示
出)来执行。在一些情形中,可以要求检索者通过安全认证来从数据拥有者获得授权。
[0093] 在检索阶段,检索者终端通过检索请求单元501生成含有KIS定位器的检索请求,
并将该检索请求发送给服务器,如步骤S602所示。
[0094] 服务器从检索者终端接收到含有KIS定位器的检索请求之后,通过索引检索单元
402在存储在存储单元401中的加密索引中执行检索,以找到KIS定位器与请求中所接收的
KIS定位器相同的KIS,如步骤S603所示。然后,服务器将匹配的KIS中所包含的文件定位
器发送给检索者终端,如步骤S604所示。如上所述,这些文件定位器中的每个文件定位器
是通过用文件定位器生成密钥,对与KIS相对应的关键词有关的文件的文件获取信息进行
加密而生成的。
[0095] 在从服务器接收到文件定位器之后,检索者终端利用由数据拥有者所授予的文件
定位器解密密钥,通过文件定位器解密单元502对每个文件定位器进行解密,以获得含有
文件的加密资源标识符和相应的文件解密密钥的文件获取信息,如步骤S605所示。如上所
述,每个文件定位器是由数据拥有者利用某个隐私级别的文件定位器生成密钥对文件获取
信息进行解密而生成的。用特定隐私级别的文件定位器解密密钥,检索者无法解密利用其
他隐私级别的其他文件定位器生成密钥解密的文件定位器。这保证了检索者可以获得在被
数据拥有者授权的隐私级别上可公开的文件的加密资源标识符和相应的文件解密密钥,但
是无法获得在该隐私级别上不可公开的文件的正确的加密资源标识符和文件解密密钥。
[0096] 然后,检索者终端通过文件获取单元503生成包含在步骤S605中获得的加密资源
标识符的文件获取请求,然后在步骤S606,检索者终端将该文件获取请求发送给服务器。
[0097] 在从检索者接收到含有加密资源标识符的文件获取请求之后,在步骤S607,服务
器的文件搜索单元403在所存储的加密文件中查找与所接收的加密资源标识符相匹配的
任何加密文件。在定位到匹配的加密文件之后,服务器将这些匹配的加密文件发送给检索
者终端。
[0098] 在接收到加密文件之后,在步骤S608,检索者终端通过文件解密单元504,用相应
的文件解密密钥对加密文件进行解密。从而,作为检索结果,检索者可以获得文件。
[0099] 值得注意的是,在步骤S605,检索者将不会得到在数据拥有者设置给该检索者的
隐私级别上不可公开的文件的正确的加密资源标识符和文件解密密钥。如果检索者错误地
解密任何其他隐私级别的(一个或多个)文件定位器,并将获得的错误的(一个或多个)
加密资源标识符发送给服务器,服务器将不会定位到正确的(一个或多个)加密文件,从而
只可在其他隐私级别公开的加密文件不会被提供给检索者。即使检索者偶然地从服务器获
得了这样的加密文件,检索者也无法对这些文件正确地解密。这保证了检索者只能检索和
看到含有特定关键词的、且在由数据拥有者设定的特定隐私级别上可公开的文件。还值得
注意的是,在整个过程中,所有文件都没有公开给服务器。
[0100] 虽然未在流程图中示出,但是值得注意的是,如果在步骤S605中检索者获得的一
个或多个加密资源标识符是如上所述的URL,则检索者可以直接通过这些URL来获得加密
文件,而不是将这些URL发送给服务器。或者,检索者仍将这些URL发送给服务器,并且服
务器的文件搜索单元403将从由这些URL标识的网络位置获取加密文件。
[0101] 在上述示例中,在一次检索中,检索者向服务器发送一个KIS定位器。可以想到,
在检索者被数据拥有者授予了多个KIS定位器的情况下,检索者可以在检索请求中向服务
器发送多个KIS定位器,以执行对多个关键词的检索。
[0102] 【可确认解密】
[0103] 在上述实施例中,其他隐私级别的文件定位器会被检索者错误地解密,并且无效
的信息可能被传送和处理。而在本发明的一个替代实施例中,在检索者向服务器发送文件
获取请求之前,每个文件定位器的解密的正确性在检索者处被检查,以便避免无效的加密
资源标识符的传送和在服务器侧用无效的加密资源标识符来定位加密文件的处理。该可确
认解密可以通过确认当文件定位器被生成时与文件获取信息一同加密的已知值来实现,该
已知值例如是附加在文件获取信息上的一个标志。下面将描述这种实现方式的一个示例。
[0104] 在该实施例中,文件FILEj的文件获取信息被扩展为FLAG‖CFNj‖Kfilej,其中FLAG
是由数据拥有者选择的任意值或者其他字符。
[0105] 索引阶段的处理基本上与上述实施例中的相同,除了代替式2,数据拥有者终端在
步骤S304如下生成FILEj的文件定位器:
[0106] FLj,m=E(EKeym,FLAG‖CFNj‖Kfilej) (式4)
[0107] 在检索阶段,在步骤S601,除了KIS定位器和文件定位器解密密钥之外,数据拥有
者终端还向检索者终端发送FLAG。
[0108] 检索者终端从服务器获得文件定位器的过程与上述实施例中的相同。在对接收的
文件定位器解密时,检索者终端的文件定位器解密单元502检查解密后的文件定位器中所
包含的标志是否与从数据拥有者接收的标志相同。如果匹配,则表示文件定位器的解密正
确,并且得到了正确的文件获取信息,如果不匹配,则表示由于错误的文件定位器解密密钥
或者其他原因,文件定位器的解密失败。这样,通过使用标志,实现了可确认解密。为了帮
助理解根据本实施例的检索过程,图10示出了该情况中的示意性数据流。
[0109] 通过上述的确认,检索者终端可以选择并发送正确的加密资源标识符到服务器,
以获取相应的加密文件,并使用正确的文件解密密钥来对所接收的文件解密。
[0110] 在本实施例中利用对标志进行检查,防止了无效的加密资源标识符被传送给服务
器,服务器可以更有效地定位加密文件。
[0111] 该标志可以最初由数据拥有者终端的加密/解密设置单元102来选取,然后通知
给检索者。或者,数据拥有者和检索者两者已知的数可以被预先设定作为该标志。在另外
的实施例中,对于不同的隐私级别或者对于不同的文件,可以使用不同的标志。如本领域技
术人间能够认识到的,其他种类的参数和算法也可以应用于本发明中用于可确认解密。
[0112] 【虚拟删除】
[0113] 如已经知道的,在一个或多个文件删除之后更新索引是相对复杂的,并通常花费
大量计算资源和时间,而删除操作本身是相对快速和容易执行的。鉴于此,在加密文件被删
除之后立即更新加密索引是低效的。希望以较低的频次来执行索引的更新。例如,每天、每
周或每月等执行一次更新,或者在预定数目的加密文件被删除之后执行一次更新。还希望
索引的更新可以被调度,使得减少不服务的持续时间和影响。例如,在较少检索者会访问检
索服务的时段,例如午夜的某个时间,来执行索引的更新。
[0114] 但是,为了保证在一个或多个加密文件被删除之后的检索的正确性,需要在加密
索引被更新之前,从检索结果中滤掉被删除的加密文件。这种操作被称为虚拟删除。
[0115] 通过在向检索者提供加密文件时,按照某个条件过滤掉一些文件,服务器在本发
明中被赋予了虚拟删除的能力。例如,数据拥有者向服务器发送要被删除的加密文件的加
密资源标识符的列表,例如{CFN2,CFN4},并且服务器删除相应的加密文件。此后,当服务
器从检索者接收到加密资源标识符的列表,例如{CFN1,CFN2,CFN3,CFN4,CFN5}时,服务器的
文件搜索单元过滤掉被删除的文件,即将列表过滤成{CFN1,CFN2,CFN3,CFN4,CFN5}-{CFN2,
CFN4}={CFN1,CFN3,CFN5}。于是,服务器只定位并向检索者返回与过滤结果{CFN1,CFN3,
CFN5}相对应的加密文件。图11示出了该示例的示意性数据流。
[0116] 在虚拟删除中,要被删除的加密文件可以用特殊的符号被标注,而不是实际地被
删除。在从数据拥有者接收到确认命令或者其他规定的条件被满足时,服务器可以执行加
密文件的实际删除。
[0117] 除了虚拟删除之外,过滤可以应用于其他情形,并且过滤的条件可以根据任何具
体的应用来设计。
[0118] 【加密索引中的定位和更新】
[0119] 通过扩展加密索引中的每个KIS,在本发明中提供了定位与特定文件有关的(一
个或多个)文件定位器的能力。例如,在一个加密文件被从服务器删除之后,与该加密文件
有关的文件定位器应当从加密索引中去除。利用根据本发明在每个KIS中添加的附加参
数,服务器在数据拥有者的帮助下,能够定位与指定文件有关的文件定位器,而文件的内容
和其中包含的关键词不会暴露给服务器。下面将参考图12~17描述本发明的这种实施例。
[0120] 图12示出了根据本发明一个实施例的数据拥有者终端700的示例性配置。如图
12所示,数据拥有者终端700包括图3所示的全部单元,并且还包括用于生成索引定位指示
器的索引定位指示器生成单元701,以及用于生成与文件定位器相关联的索引定位器的索
引定位器生成单元702。该实施例中的关键词单元101、加密/解密设置单元102、文件加
密单元103、KIS定位器生成单元104和文件定位器生成单元105的功能和操作与上述的相
同。下面的描述仅集中与本实施例与上述实施例的区别。
[0121] 在本实施例中,通过向每个文件定位器附加由数据拥有者终端从文件定位器、相
应的KIS定位器和索引定位指示器映射得到的索引定位器,加密索引中的每个KIS被括展。
[0122] 具体地说,在索引阶段,数据拥有者终端700的索引定位指示器生成单元701通过
将文件的加密资源标识符映射到一个唯一值,来生成每个文件的索引定位指示器。例如,对
于文件FILEj,索引定位指示器生成单元701如下生成索引定位指示器xj:
[0123] xj=Hash(CFNj‖sk) (式5)
[0124] 其中CFNj是FILEj的加密资源标识符,sk是数据拥有者持有的秘密密钥,例如数
据拥有者持有的私钥。如前面提到的,代替哈希函数,可以使用任何单向映射方法。
[0125] 除了KIS定位器和文件定位器之外,根据本实施例的数据拥有者终端700还通过
索引定位器生成单元702,为KIS中所包含的每个文件定位器生成一个索引定位器。每个
索引定位器是通过将相应的文件定位器、KIS定位器和由索引定位指示器生成单元701生
成的索引定位指示器的组合映射到一个值来生成的。例如,对于具有KIS定位器KLi的KIS
中与FILEj有关的文件定位器FLj,m,索引定位器生成单元702如下生成索引定位器ILi,j,m:
[0126] ILi,j,m=Hash(KLi‖FLj,m‖xj) (式6)
[0127] 其中xj是由索引定位指示器生成单元701生成的FILEj的索引定位指示器。
[0128] 然后,数据拥有者终端700的索引形成单元106用一个或多个KIS形成加密索
引,其中每个KIS包含一个KIS定位器、一个或多个如上述实施例中所生成的文件定位
器、以及一个或多个索引定位器,每个索引定位器伴随一个相应的文件定位器。以图1和
表1中所示的情形为例,并假设文件Research.ppt和Novel.pdf与关键词KWa相关联,
则根据本实施例,针对关键词KWj的KIS被生成为元组3 = Hash(KLa‖FLResearch.ppt,3‖xResearch.ppt),FLNovel.pdf,1,ILa,Novel.pdf,3 = Hash(KLa‖FLNovel.pdf,
3‖xNovel.pdf),FLNovel.pdf,2,ILa,Novel.pdf,3=Hash(KLa‖FLNovel.pdf,3‖xNovel.pdf)>。这样生成的加密索引被发送到被存储在服务器上。
[0129] 根据本实施例的索引阶段的数据流示意性地示出在图13中。
[0130] 下面描述当加密文件被删除后,加密索引的更新过程。
[0131] 图14示出了根据本实施例的服务器的示例性配置。如图14所示,服务器800包
括图7中所示的全部单元,并且还包括用于更新所存储的加密索引的索引更新单元801。本
实施例中,存储单元401、索引检索单元402和文件搜索单元403的功能和操作与上述的相
同。下面的描述集中与本实施例与上述实施例的不同。
[0132] 图15是示出了当一个加密文件被删除后服务器更新加密索引的过程的流程图。
[0133] 当一个文件FILEa要从加密索引中去除时,例如当在服务器上加密文件FILEa被从
存储服务中删除从而索引需要被更新时,数据拥有者终端700向服务器800发送含有由索
引定位指示器生成单元701计算得到的FILEa的索引定位指示器xa的消息。在步骤S901,
服务器800从数据拥有者终端800接收索引定位指示器xa。
[0134] 然后,对于被存储的加密密钥中的每个KIS中的每个文件定位器,服务器800的
索引更新单元801通过使用收到的索引定位指示器xa,利用与数据拥有者终端在生成加密
索引时所使用的相同的映射方法,计算索引定位器。例如,对于具有KIS定位器KLi的KIS
中的文件定位器FLj,m,索引更新单元801通过使用上述相同的哈希函数,计算IL′i,j,m=
Hash(KLi‖FLj,m‖xa)。然后,索引更新单元801检查计算出的IL′i,j,m是否与KIS中所包
含的伴随文件定位器FLj,m的索引定位器ILi,j,m相等。如果两个值匹配,则表示相应的文件
应当被删除。这样,在步骤S902,索引更新单元801找出要被删除的所有文件定位器。
[0135] 然后,在步骤S903,服务器800的索引更新单元801从存储单元401中所存储的
加密索引中删除找到的所有匹配的文件定位器以及所伴随的索引定位器,从而更新加密索
引。
[0136] 上述加密索引更新的数据流被示意性地示出在图16中。
[0137] 在上述示例中,服务器检查加密索引中全部KIS中的文件定位器。或者,数据拥有
者可以将与被删除的文件有关的全部KIS的KIS定位器发送给服务器,以帮助服务器将搜
索范围减小到具有匹配的KIS定位器的那些KIS。
[0138] 与该文件有关的KIS的KIS定位器可以最初在索引阶段存储在数据拥有者终端
中,或者数据拥有者终端可以预先保存每个文件的关键词信息,并在更新阶段中计算KIS
定位器。还可以想到,在加密文件被删除之前,数据拥有者从服务器获取由加密资源标识符
标识的加密文件,对该加密文件解密,从解密后的文件中提取关键词,计算并向服务器发送
要与该要删除的文件有关的KIS定位器。在这种情况中,数据拥有者也扮演检索者,并且可
以包括图8所示的相关单元。
[0139] 在从数据拥有者终端得到KIS定位器和索引定位指示器后,服务器可用仅仅检查
由所接收的KIS定位器标识的KIS中的文件定位器。从而,计算量被大大降低。
[0140] 该示例的更新加密索引的数据流示意性地示出在图17中。
[0141] 上述是从索引中去除文件的示例。根据本发明,在后来添加一个或多个文件的情
况下,也可以容易地更新加密索引。例如,如果在加密索引已经被建立之后的某个时间,数
据拥有者向存储服务添加另外的加密文件,则数据拥有者终端可以简单地按照上述相同的
方式计算与新添加的文件相关联的KIS定位器和文件定位器(伴随有或没有伴随有索引定
位器),并将其发送到服务器。在服务器处,索引检索单元402定位与所接收的KIS定位器
相对应的KIS,并且索引更新单元801通过简单地将所接收的文件定位器(伴随有或没有伴
随有索引定位器)添加到相应的KIS中来更新加密索引。这样,被添加的文件的信息被并
入到加密索引中。
[0142] 【细粒度授权】
[0143] 在上述示例性实施例中描述了每对文件定位器生成和解密密钥是结合隐私级别
而生成的,而与任何具体关键词无关。存在这样的考虑:如果被授予了一个文件定位器解密
密钥的检索者获得了任何从未被数据拥有者授予给他/她的KIS定位器,则该检索者将仍
旧可以通过该KIS定位器执行检索,并对相应的KIS中的文件定位器进行解密。
[0144] 为了加强授权控制,根据本发明一个实施例,每对文件定位器生成和解密密钥可
以结合隐私级别和具体关键词两者来生成。例如,与关键词KWi和隐私级别m相关的文件
定位器生成和解密密钥可以如下生成:
[0145] EKeyi,m=DKeyi,m=Hash(MEK‖KWi‖m) (式7)
[0146] 或者通过至少将相应的关键词和一个密钥的组合映射到一个唯一值的其他算法
来生成。利用这种扩展的文件定位器生成和解密密钥,提供了不仅基于隐私级别而且还基
于关键词的细粒度授权控制。
[0147] 根据这样的实施例,每个文件的文件定位器在索引阶段通过用一个或多个扩展的
文件定位器生成密钥对文件获取信息加密来生成,其中每个扩展的文件定位器生成密钥与
和该文件相关联的一个关键词以及该文件对其可公开的一个隐私级别有关。
[0148] 假设文件FILEj的文件获取信息采取CFNj‖Kfilej的形式,下面与上述式3相比较
地给出用于计算文件定位器的具体算法。即,对于与文件FILEj相关联的关键词KWi和文件
FILEj对其可公开的隐私级别m,FILEj的文件定位器FLi,j,m如下生成:
[0149] FLi,j,m=E(EKeyi,m,CFNj‖Kfilej) (式8)
[0150] 根据这种实施例,每个关键词的KIS包括利用与该关键词有关的扩展文件定位器
生成密钥生成的文件定位器。也就是说,在一个文件的全部文件定位器中,只有利用与特定
关键词有关的扩展文件定位器生成密钥生成的那些文件定位器被放入该关键词的KIS中,
而利用与任何其他关键词有关的扩展文件定位器生成密钥生成的文件定位器不被放入。这
保证了任何人不能直接解密一个关键词的KIS中的文件定位器,如果他/她不具有与该关
键词相关的正确的扩展文件定位器解密密钥。其他过程与上述实施例中的相同。
[0151] 在检索阶段,如果数据拥有者希望使得一个检索者能够对一个关键词进行检索,
则数据拥有者以安全的方式向该检索者授予该关键词的KIS定位器以及相应的合适的隐
私级别的扩展文件定位器解密密钥。检索者对扩展文件定位器解密密钥的使用与上述实施
例中对文件定位器解密密钥的使用相同。
[0152] 根据本实施例,每个扩展文件定位器解密密钥在各个检索者处保持保密,并且不
会暴露给服务器。因此,即使一个或多个KIS定位器被暴露给其他人,他/她也无法用任何
与其他关键词相关的文件定位器解密密钥来解密相应KIS中的任何文件定位器。
[0153] 本发明的其他特征,例如可确认解密、虚拟删除、定位和更新等,也可以类似地应
用于该实施例。处理基本上相同,除了文件定位器生成和解密密钥被扩展文件定位器生成
和解密密钥替代。
[0154] 应当注意,本发明也可以应用于不需要区分隐私级别的情况中。在这种情况中,文
件定位器生成和解密密钥可以结合不同的关键词来生成。例如,文件定位器生成和解密密
钥如下生成:
[0155] EKeyi=DKeyi=Hash(MEK‖KWi) (式9)
[0156] 索引、检索和更新过程与前面描述的类似。由于可以通过假设仅有一个隐私级别
而想到具体的过程,这里不再重复其描述。
[0157] 【链式授权】
[0158] 在上述示例性实施例中,针对不同隐私级别的文件定位器生成和解密密钥是利用
不同的参数独立生成的,彼此之间不具有计算上的关系。
[0159] 实际中,不同隐私级别之间可能存在支配关系,即较高隐私级别支配任何较低隐
私级别。也就是说,任何隐私级别的检索者能够检索比其隐私级别低的任何隐私级别所能
支配的文件,以及在其隐私级别能够支配的而其他较低隐私级别不能支配的文件。例如,数
据拥有者Bob将对其文件进行访问的检索者按照不同的关系划分为不同的级别。例如:家
庭成员具有最高隐私级别(级别1),亲密朋友具有中等隐私级别(级别2),一般朋友具有
最低隐私级别(级别3)。同时,对文件的检索权利遵循低隐私级别所支配的文件也都能被
任何高隐私级别支配的原则。即,一般朋友能够检索的文件都可以被亲密朋友和家庭成员
检索,而亲密朋友能够检索的文件都能够被家庭成员检索。
[0160] 在本发明中,针对这样的情况,可以通过采用链式授权,使得授权和管理变得更加
简便高效。下面简要描述根据本发明的利用链式授权的一个实施例。
[0161] 假设存在n个隐私级别,其中最高隐私级别为级别1,并且隐私级别m支配任何其
他较低隐私级别(隐私级别m+1,...,n),其中m是小于n的自然数。
[0162] 根据本实施例,在索引阶段设置文件定位器生成和解密密钥时,数据拥有者首先
利用哈希函数设置用于最高隐私级别的文件定位器生成和解密密钥。例如,最高隐私级别
的文件定位器生成密钥EKey1和文件定位器解密密钥DKey1如下生成:
[0163] EKey1=DKey1=H1(z) (式10)
[0164] 其中,H1(z)代表对z的一次哈希运算(Hash(z)),z可以是任意位串,例如MEK、
MEK和任意数的组合、MEK‖KWi等等。优选地,z是数据拥有者容易记忆或取回的串。
[0165] 然后,其他隐私级别的文件定位器生成和解密密钥基于EKey1和DKey1,按照哈希
链的方式来生成。具体地说,隐私级别m的文件定位器生成密钥EKeym和文件定位器解密
密钥DKeym如下生成:
[0166] EKeym=DKeym=Hm(z) (式11)
m
[0167] 其中,H(z)代表对z的m次哈希运算
[0168] 也就是说,可根据以下递推公式计算隐私级别m的文件定位器生成密钥EKeym和
文件定位器解密密钥DKeym:
[0169] EKeym=DKeym=Hash(EKeym-1)=Hash(DKeym-1) (式12)
[0170] 上述计算例如由数据拥有者终端的加密/解密设置单元完成。
[0171] 在授权时,数据拥有者将不同隐私级别的文件定位器解密密钥授予相应级别的检
索者。其他过程与上述实施例中相似。
[0172] 可见,被授予了DKeym的处于隐私级别m的检索者能够容易地根据已知或者由数
据拥有者公布的哈希算法,计算出其他任何更低隐私级别的文件定位器解密密钥(例如,
由检索者终端的文件定位器解密单元完成),从而能够对任何更低隐私级别的文件定位器
进行解密。而由于哈希函数的单向性,处于隐私级别m的检索者不能计算出更高隐私级别
的文件定位器解密密钥,因此,保证了单向的链式授权。
[0173] 利用上述实施例的链式授权方式,处于任何隐私级别的检索者能够通过计算得到
任何更低隐私级别的文件定位器解密密钥,从而获得了更低隐私级别的检索能力,实现了
简便的链式授权。
[0174] 可在本发明中使用的链式授权的方式并不限于上述哈希链算法,而是可以采
用任何实现单向授权的技术。例如,可以使用Mahesh Kallahalla,etc.,“Plustus:
Scalable secure file sharing on untrusted storage”,in theProceedings of the
2nd Conference on File and Storage Technologies(FAST’03).pp.29-42(31 Mar-2Apr
2003,San Francisco,CA),published byUSENIX,Berkeley,CA中提出的前向密钥旋转
(Forward Key Rotation,FKR)技术。下面简要说明利用该技术的本发明的另一个实施例。
[0175] 假设e0是数据拥有者的公钥,d0是数据拥有者的私钥。数据拥有者公布其公钥e0,
并将d0保持为秘密。
[0176] 在索引阶段设置文件定位器生成和解密密钥时,数据拥有者任意选择整数
并如下设置用于最低隐私级别n的文件定位器生成密钥EKeyn和文件定位器解密
密钥DKeyn:
[0177] (式13)
[0178] 其他隐私级别m(m是小于n的自然数)的文件定位器生成和解密密钥按照如下递
推公式计算:
[0179] (式14)
[0180] 上述计算例如由数据拥有者终端的加密/解密设置单元完成。
[0181] 在授权时,数据拥有者将不同隐私级别的文件定位器解密密钥授予相应级别的检
索者。被授予了DKeym的处于隐私级别m的检索者能够容易地根据数据拥有者所公布的公
钥e0,利用如下递推公式计算出其他任何更低隐私级别的文件定位器解密密钥:
[0182] (式15)
[0183] 上述计算例如由检索者终端的文件定位器解密单元完成。
[0184] 另一方面,处于隐私级别m的检索者无法计算出更高隐私级别的文件定位器解密
密钥。从而,也实现了单向的链式授权。
[0185] 【其他替代】
[0186] 上面已经参考附图描述了根据本发明的一些特定实施例。但是,本发明并非要受
到上述实施例中描述的任何具体配置和过程的限制。在本发明的精神的范围之内,本领域
技术人员能够认识到上述配置、算法、操作和过程的各种替换、改变或修改。
[0187] 例如,在上述示例性实施例中描述了每个关键词在加密倒排索引中具有一个KIS,
并且每个KIS的KIS定位器被生成为唯一地对应一个关键词。但是,索引还可以被生成为
使得每个KIS不仅对应于一个关键词,而且对应于一个隐私级别(即,一个文件定位器生成
或解密密钥)。即,相同隐私级别且与相同关键词相关联的文件被索引在一个KIS中,而不
同隐私级别的文件被索引在不同的KIS中,无论这些文件是否与相同的关键词相关联。换
句话说,每个KIS对应于仅仅一个文件定位器生成(或解密)密钥以及一个关键词。在这
种情况中,与一个关键词KWi和属于隐私级别m的一个文件定位器生成密钥EKeym(或文件
定位器解密密钥DKeym)相对应的一个KIS的KIS定位器KLj,m可以如下生成
[0188] KLi,m=E(EKeym,KWi) (式16)
[0189] 或者
[0190] KLi,m=E(DKeym,KWi) (式17)
[0191] 本发明决不限于图中所示的具体配置和过程。体现本发明的上述各种方面的示例
可以根据具体的应用而结合。例如,加密索引可以同时包括用于确认解密正确性的标志以
及用于定位文件定位器的索引定位器,并且数据拥有者终端、服务器和检索者终端包括这
两个方面的相应部件。
[0192] 另外,上述过程的顺序可以合理地改变。例如,图4中的步骤S201和S202的顺序
可以颠倒,或者这些步骤可以并行地执行。
[0193] 在本说明书中使用的所谓的“文件”应当被理解为是广义的概念,其包括但不限于
例如文本文件、视频/音频文件、图像/图表以及任何其他数据或信息。
[0194] 作为数据拥有者终端、检索者终端和服务器的示例性配置,图中已经示出了一些
耦合在一起的单元。这些单元可以利用总线或者任何其他信号线或者通过任何无线连接来
耦合,以在其间传输信号。然而,每个设备中所包括的部件并不限于上述这些单元,具体的
配置可以被修改或改变。每个设备还可以包括其他单元,例如用于向设备的操作者显示信
息的显示单元、用于接收操作者的输入的输入单元、用于控制每个单元的操作的控制单元、
任何需要的存储装置等等。由于这些部件是本领域中公知的,因此没有对其进行详细的描
述,本领域的技术人员将容易地考虑到将它们添加到上述设备中。另外,虽然所描述的单元
在附图中被示出为是分别的单元,但是它们中的任何一个可以与其他单元相结合作为一个
部件,或者可以被分割为多个部件。例如,图3中所示的KIS定位器生成单元、文件定位器
生成单元和索引形成单元可以组合在一起作为一个索引生成单元。或者,上述加密/解密
设置单元可以被分割为用于选择用于加密/解密的密钥的单元和用于选择其他安全参数
的单元。
[0195] 此外,数据拥有者终端、检索者终端和服务器在上述示例中被描述为分别的设备,
其可以在通信网络中彼此远程地放置。但是,它们可以组合为一个设备来增强功能性。例
如,数据拥有者终端和检索者终端可以被组合,以创建新的设备,其在一些情况中是数据拥
有者终端而在另一些情况中能够作为检索者终端而执行检索。又例如,服务器和数据拥有
者终端或者检索者终端可以被组合,如果在某个应用中它扮演这两个角色。同样,可以创建
在不同事务中扮演数据拥有者终端、检索者终端和服务器的设备。
[0196] 上述的通信网络可以是任何类型的往来,包括任何种类的电信网络或者计算机网
络。当数据拥有者终端、检索者终端和服务器被实现为单个设备的一部分是,上述通信网络
还可以包括任何内部数据传输机制,例如,数据总线或集线器。
[0197] 本发明的元素可以实现为硬件、软件、固件或者它们的组合,并且可以用在它们的
系统、子系统、部件或者子部件中。当以软件方式实现时,本发明的元素是被用于执行所需
任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携
带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输
信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦
除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由
诸如因特网、内联网等的计算机网络被下载。
[0198] 本发明可以以其他的具体形式实现,而不脱离其精神和本质特征。例如,特定实施
例中所描述的算法可以被修改,而系统体系结构并不脱离本发明的基本精神。因此,当前的
实施例在所有方面都被看作是示例性的而非限定性的,本发明的范围由所附权利要求而非
上述描述定义,并且,落入权利要求的含义和等同物的范围内的全部改变从而都被包括在
本发明的范围之中。
法律信息
- 2017-09-22
未缴年费专利权终止
IPC(主分类): G06F 17/30
专利号: ZL 200810145083.8
申请日: 2008.08.01
授权公告日: 2013.09.25
- 2013-09-25
- 2011-06-22
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 200810145083.8
申请日: 2008.08.01
- 2009-12-02
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2005-03-02
|
2004-08-02
| | |
2
| |
2006-06-14
|
2005-12-08
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |