书签 分享 收藏 举报 版权申诉 / 17

生成索引的方法和装置以及检索方法和装置.pdf

  • 上传人:b***
  • 文档编号:997731
  • 上传时间:2018-03-24
  • 格式:PDF
  • 页数:17
  • 大小:1MB
  • 摘要
    申请专利号:

    CN200810172722.X

    申请日:

    2008.11.11

    公开号:

    CN101739400A

    公开日:

    2010.06.16

    当前法律状态:

    终止

    有效性:

    无权

    法律详情:

    未缴年费专利权终止IPC(主分类):G06F 17/30申请日:20081111授权公告日:20140813终止日期:20161111|||授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20081111|||公开

    IPC分类号:

    G06F17/30

    主分类号:

    G06F17/30

    申请人:

    日电(中国)有限公司

    发明人:

    雷浩; 田野; 曾珂; 王利明; 福岛俊一

    地址:

    100007 北京市东城区东四十条甲22号南新仓国际大厦B座12层1222室

    优先权:

    专利代理机构:

    北京东方亿思知识产权代理有限责任公司 11258

    代理人:

    李晓冬;南霆

    PDF完整版下载: PDF下载
    内容摘要

    本发明提供了一种生成索引的方法和装置以及检索方法和装置。索引条目至少包括对应于检索项的检索项标识、根据与检索项相关的一条或多条检索信息而生成的一个或多个索引项、以及关于检索信息的聚合器。通过聚合检索信息,或者聚合包含检索信息的信息的密文,或者聚合从包含检索信息的信息映射而来的数据,来得到聚合器。检索时,索引项和聚合器被提供给检索者,检索者从索引项提取检索信息,并利用聚合器验证所提取的检索信息是否完整。在一个实施例中,聚合器被加在加密倒排索引中。

    权利要求书

    1: 一种生成索引的方法,包括: 生成对应于检索项的检索项标识; 根据与所述检索项相关的一条或多条检索信息,生成一个或多个索引项; 生成所述一条或多条检索信息的聚合器;以及 至少利用所述检索项标识、所述一个或多个索引项以及所述聚合器生成索引条目,从而形成索引。
    2: 根据权利要求1所述的方法,其中,生成聚合器包括利用聚合签名、异或运算、取模运算中的至少一种聚合所述一条或多条检索信息。
    3: 根据权利要求1所述的方法,其中,所述检索项是关键词,所述检索信息是包含所述关键词的文件的加密文件名。
    4: 根据权利要求1所述的方法,其中,生成检索项标识包括生成包含所述检索项的信息的密文,或者生成从包含所述检索项的信息映射得的数据。
    5: 根据权利要求1所述的方法,其中,生成索引项包括生成所述检索信息的信息的密文。
    6: 根据权利要求1所述的方法,其中,生成索引项包括用索引项加密密钥对包含相应检索信息的信息进行加密。
    7: 根据权利要求1所述的方法,其中,生成聚合器包括聚合包含所述检索信息的信息的密文,或者聚合从包含所述检索信息的信息映射而来的数据。
    8: 根据权利要求1所述的方法,还包括当添加或删除检索信息时,更新所述聚合器。
    9: 根据权利要求8所述的方法,其中,所述聚合器被计算为 其中I 1 、I 2 、...I 0 是要被聚合的检索信息, 表示异或运算,并且,所述更新包括: 当添加或删除检索信息I a 时,将所述聚合器更新为
    10: 根据权利要求8所述的方法,其中,所述聚合器被计算为 其中I i 是要被聚合的检索信息,p是大素数,并且,所述更新包括: 当添加检索信息I a 时,将所述聚合器更新为IC updated =(IC*I a )modp;以及 当删除检索信息I b 时,将所述聚合器更新为
    11: 根据权利要求8所述的方法,其中,所述聚合器被计算为 其中I j 是要被聚合的检索信息,p是大素数,并且,所述更新包括: 当添加检索信息I a 时,将所述聚合器更新为IC updated =(IC+I a )modp;以及 当删除检索信息I b 时,将所述聚合器更新为IC updated =(IC-I b )mod。
    12: 根据权利要求8所述的方法,其中,所述聚合器被计算为 并且g 2 和K被公布,或者g 2 k 被公布,其中I j 是要被聚合的检索信息,sk是密钥,p是大素数,H是将串映射到G 1 的哈希函数,K是Z p *中的随机数,Z p *是所有小于p且与p互素的正整数的集合,g 2 是G 2 的生成元,G 1 和G 2 是同为p阶的群,存在关于G 1 和G 2 的双线性映射,并且,所述更新包括: 当添加检索信息I a 时,将所述聚合器更新为IC updated =[IC (sk+K) *H(I a )modp] 1/(sk+K’) ,并公布K’或者g 2 k ’,其中K’是Z p *中与K不同的随机数;以及 当删除检索信息I b 时,将所述聚合器更新为IC updated =[IC (sk+K’) *H(I b ) -1 modp] 1/(sk+K’) ,并公布K’或者g 2 k ’,其中K’是Z p *中与K不同的随机数。
    13: 一种用于生成索引的装置,包括: 检索项标识生成单元,适合于生成对应于检索项的检索项标识; 索引项生成单元,适合于根据与所述检索项相关的一条或多条检索信息,生成一个或多个索引项; 聚合器生成单元,适合于生成所述一条或多条检索信息的聚合器;以及 索引形成单元,适合于至少利用所述检索项标识、所述一个或多个索引项以及所述聚合器生成索引条目,从而形成索引。
    14: 根据权利要求13所述的装置,其中,所述聚合器生成单元被配置为通过利用聚合签名、异或运算、取模运算中的至少一种聚合所述一条或多条检索信息,来生成所述聚合器。
    15: 根据权利要求13所述的装置,其中,所述检索项是关键词,所述检索信息是包含所述关键词的文件的加密文件名。
    16: 根据权利要求13所述的装置,其中,所述检索项标识生成单元被配置为通过生成包含所述检索项的信息的密文,或者生成从包含所述检索项的信息映射得的数据,来生成所述检索项标识。
    17: 根据权利要求13所述的装置,其中,所述索引项生成单元被配置为通过生成所述检索信息的数据的密文,来生成所述索引项。
    18: 根据权利要求13所述的装置,其中,所述索引项生成单元被配置为通过用索引项加密密钥对包含相应检索信息的信息进行加密,来生成所述索引项。
    19: 根据权利要求13所述的装置,其中,所述聚合器生成单元被配置为通过聚合包含所述检索信息的信息的密文,或者聚合从包含所述检索信息的信息映射而来的数据,来生成所述聚合器。
    20: 根据权利要求13所述的装置,还包括更新单元,适合于当添加或删除检索信息时,更新所述聚合器。
    21: 根据权利要求20所述的装置,其中,所述聚合器生成单元被配置为将所述聚合器计算为 其中I 1 、I 2 、...I n 是要被聚合的检索信息, 表示异或运算,并且,所述更新单元被配置为当检索信息I a 被添加或删除时,将所述聚合器更新为
    22: 根据权利要求20所述的装置,其中,所述聚合器生成单元被配置为将所述聚合器计算为 其中I j 是要被聚合的检索信息,p是大素数, 并且,所述更新单元被配置为当检索信息I a 被添加时,将所述聚合器更新为IC updated =(IC*I a )modp;并且当检索信息I b 被删除时,将所述聚合器更新为
    23: 根据权利要求20所述的装置,其中,所述聚合器生成单元被配置为将所述聚合器 计算为 其中I j 是要被聚合的检索信息,p是大素数, 并且,所述更新单元被配置为当检索信息I a 被添加时,将所述聚合器更新为IC updated =(IC+I a )modp;并且当检索信息I b 被删除时,将所述聚合器更新为IC updated =(IC-I b )modp。
    24: 根据权利要求20所述的装置,其中,所述聚合器生成单元被配置为将所述聚合器计算为 并公布g 2 和K,或者公布g 2 k ,其中I j 是要被聚合的检索信息,sk是密钥,p是大素数,H是将串映射到G 1 的哈希函数,K是Z p *中的随机数,Z p *是所有小于p且与p互素的正整数的集合,g 2 是G 2 的生成元,G 1 和G 2 是同为p阶的群,存在关于G 1 和G 2 的双线性映射, 并且,所述更新单元被配置为当检索信息I a 被添加时,将所述聚合器更新为IC updated =[IC (sk+K’) *H(I a )modp] 1/(sk+K’) ,并公布K’或者g 2 k ’;并且检索信息I b 被删除时,将所述聚合器更新为IC updated =[IC (sk+K’) *H(I b ) -1  modp] 1/(sk+K’) ,并公布K’或者g 2 k ’,其中K’是Z p *中与K不同的随机数。
    25: 一种检索方法,包括: 生成检索请求; 接收一个或多个索引项和聚合器; 从所述接收的一个或多个索引项提取一条或多条检索信息;以及 利用所述接收的聚合器验证所述提取的检索信息。
    26: 根据权利要求25所述的方法,其中,验证检索信息包括根据所述提取的检索信息计算聚合器,并用所述接收的聚合器检验所述计算出的聚合器。
    27: 根据权利要求25所述的方法,其中,验证检索信息包括验证聚合签名。
    28: 根据权利要求25所述的方法,其中,提取检索信息包括解密所述一个或多个索引项。
    29: 根据权利要求26所述的方法,其中,计算聚合器包括利用聚合签名、异或运算、取模运算中的至少一种聚合所述检索信息
    30: 根据权利要求26所述的方法,其中,计算聚合器包括聚合包含所述检索信息的信息的密文,或者聚合从包含所述检索信息的信息映射而来的数据。
    31: 一种检索装置,包括: 检索请求单元,适合于生成检索请求; 检索信息提取单元,适合于从接收的一个或多个索引项提取一条或多条检索信息;以及 验证单元,适合于利用接收的聚合器验证所述提取的检索信息。
    32: 根据权利要求31所述的装置,其中,所述验证单元被配置为根据所述提取的检索信息计算聚合器,并用所述接收的聚合器检验所述计算出的聚合器。
    33: 根据权利要求31所述的装置,其中,所述验证单元被配置为验证聚合签名。
    34: 根据权利要求31所述的装置,其中,所述检索信息提取单元被配置为通过解密所述一个或多个索引项,来提取所述检索信息。
    35: 根据权利要求32所述的装置,其中,所述验证单元被配置为通过利用聚合签名、异 或运算、取模运算中的至少一种聚合所述检索信息,来计算聚合器。
    36: 根据权利要求32所述的装置,其中,所述验证单元被配置为通过聚合包含所述检索信息的信息的密文,或者聚合从包含所述检索信息的信息映射而来的数据,来计算所述聚合器。

    说明书


    生成索引的方法和装置以及检索方法和装置

        【技术领域】

        本发明涉及信息处理技术,尤其涉及使得能够验证检索结果完整性的生成索引的方法和装置以及检索方法和装置。

        背景技术

        在很多应用中,需要对大量信息进行检索,以获得满足一定条件的信息。通常,预先对原始信息建立索引。然后,响应于检索请求,在索引中执行查找,以找出匹配的项目,从而得到相关信息。出于各种原因,检索者总是希望能够得到完整的检索结果,即,得到所有满足检索条件的信息。而现有的索引编制和检索技术缺乏对检索完整性的保障。

        随着计算机网络和通信技术的广泛使用,数据拥有者经常将数据文件存储在由第三方维护的(一个或多个)服务器上。这种应用中,对服务器上存储的数据文件的检索服务一般也由第三方提供,即,提供检索服务的第三方响应于检索者的请求,利用索引对服务器上存储的数据文件执行查找,并将结果提供给检索者。由于实质的检索工作主要由第三方执行,因此在这种情况中,更加希望能够验证和保证检索的正确性和完整性。

        另外,出于隐私和安全的考虑,数据文件经常被加密存储。尤其是在上述使用存储服务的情况中,文件经常以密文的形式存储在服务器上,以防止文件内容暴露给未被授权的用户(一些情况中也包括提供存储或检索服务的第三方)。而文件的加密存储使得文件检索变得困难,尤其是难以验证检索结果是否正确和完整。

        【发明内容】

        本发明提供了一种生成索引的方法和装置,以及用于检索的方法的装置。

        根据本发明的一个方面,提供了一种生成索引的方法,包括:生成对应于检索项的检索项标识;根据与所述检索项相关的一条或多条检索信息,生成一个或多个索引项;生成所述一条或多条检索信息的聚合器;以及至少利用所述检索项标识、所述一个或多个索引项以及所述聚合器生成索引条目,从而形成索引。

        根据本发明的另一个方面,提供了一种用于生成索引的装置,包括:检索项标识生成单元,适合于生成对应于检索项的检索项标识;索引项生成单元,适合于根据与所述检索项相关的一条或多条检索信息,生成一个或多个索引项;聚合器生成单元,适合于生成所述一条或多条检索信息的聚合器;以及索引形成单元,适合于至少利用所述检索项标识、所述一个或多个索引项以及所述聚合器生成索引条目,从而形成索引。

        根据本发明的另一个方面,提供了一种检索方法,包括:生成检索请求;接收一个或多个索引项和聚合器;从所述接收的一个或多个索引项提取一条或多条检索信息;利用所述接收的聚合器验证所述提取的检索信息。

        根据本发明的另一个方面,提供了一种检索装置,包括:检索请求单元,适合于生成检索请求;检索信息提取单元,适合于从接收的一个或多个索引项提取一条或多条检索信息;以及验证单元,适合于利用接收的聚合器验证所述提取的检索信息。

        根据本发明的方法,可以利用聚合器验证检索结果的完整性和正确性。本发明可以应用于加密索引,尤其是加密倒排索引。结合设置了隐私级别的加密倒排索引,可以在提供检索结果的可验证性的基础上,提供了良好的隐私控制和保密性。

        【附图说明】

        从下面结合附图对本发明优选实施例的描述中可以更好地理解本发明,附图中类似的参考标号表示类似的部分,其中:

        图1是示出了一个检索系统的示例的框图;

        图2是示意性地示出了根据本发明一个实施例的数据拥有者终端的配置示例的框图;

        图3是示意性地示出了根据该实施例的生成索引的操作的流程图;

        图4是示意性地示出了根据本发明一个实施例的检索者终端的配置示例的框图;以及

        图5是示意性地示出了根据该实施例进行检索的操作的流程图。

        【具体实施方式】

        下面将详细描述本发明的各个方面地特征和示例性实施例。在下面的详细描述中,提出了许多具体细节,以便提供对本发明的全面的理解。但是,对于本领域技术人员来说很明显,本发明可以在不需要这些具体细节中的一些细节的情况下被实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明的更好的理解。本发明决不限于下面所提出的任何具体配置和算法,而是覆盖了元素、部件和算法的任何修改、替换和改进,只要不脱离本发明的精神。在附图和下面的描述中,没有示出公知的结构和技术,以便避免不必要地使本发明模糊。

        图1示意性地示出了可在其中应用本发明的一个检索系统的示例。如图1所示,数据拥有者的装置或终端、由服务提供者管理的服务器、以及一个或多个检索者的装置或终端经由通信网络彼此连接并彼此可通信。数据拥有者将文件和这些文件的索引存储在服务器上。服务器响应于来自检索者终端的检索请求,利用索引对文件进行检索,并将检索结果提供给检索者。

        应当注意,这里所使用的术语“服务器”可以是提供存储服务和检索服务两者的单个装置,或者彼此相邻或远程的一组多个装置,每个负责不同的服务,例如存储、数据检索、用户管理等等,或者分担服务。例如,数据拥有者可以将文件存储在存储服务器上,而将索引存储在可与存储服务器通信的检索服务器上。为了简化说明,在图中和下面的描述中,将这样的设备统称为“服务器”。虽然图中将数据拥有者终端和服务器示出为分别的装置,但是可以理解,在本发明中,也可以由单个设备实现下面所描述的数据拥有者终端和服务器的功能。

        数据拥有者和服务器的装置或终端中的每个可以实现为能够处理信息和进行信息通信的设备,例如个人计算机(PC)、个人数字助理(PDA)、智能电话、或者其他数据处理设备。服务器一般实现为由服务提供者管理的能够存储和维护大量数据,并且使得终端能够有条件地访问数据的设备或一组设备。

        在所示系统中,数据拥有者对其文件编制索引,并将文件和索引存储在服务器上。检索时,检索者向服务器提供包含检索项信息(例如,检索项标识)的请求,服务器根据检索项信息在索引中执行查找,找到匹配的索引条目,将该索引条目中与检索项有关的索引项提供给检索者,以便检索者获取有关信息。特别的,根据本发明的方案,索引条目中还包括用于验证检索结果完整性的聚合器。服务器还将索引条目中的聚合器提供给检索者。检索者根据聚合器来验证检索结果是否正确和完整。

        在一般的应用中,经常使用倒排索引,其中根据关键词来查找含有该关键词的文件。下面以倒排索引应用为例来进行说明。但是应当理解,本发明也可以类似地应用于正排索引。

        图2示意性地示出了根据本发明一个实施例的数据拥有者终端100的配置示例。如图2所示,数据拥有者终端100主要包括检索项标识生成单元101、索引项生成单元102、聚合器生成单元103和索引形成单元104。

        图3示意性地示出了根据该实施例的数据拥有者终端100生成索引的操作。

        首先,在步骤S201,针对数据拥有者文件的检索项被设置,并且检索项标识生成单元101根据检索项生成相应的检索项标识。在倒排索引应用中,检索项是关键词。例如,数据拥有者终端通过提取各个文件中的关键词来作为检索项,或者由数据拥有者通过对终端的输入来手动设置检索项。假设设置了彼此不同的关键词作为检索项,对于每一检索项(关键词)KW,检索项标识生成单元101生成相应的唯一检索项标识KL。

        检索项标识KL例如可以是检索项KW本身,或者映射到检索项KW的数据。在加密索引应用中,检索项标识KL可以是KW的密文,或包含KW信息的数据。例如如下计算KL:

        KL=Hash(MEK‖KW)        式(1)

        其中Hash()表示哈希函数,MEK是特定参数(例如,数据拥有者的主密钥),“‖”表示串或数字按照预定顺序的组合。或者,KL=E(EKey,KW),其中EKey是特定密钥,E(EKey,KW)表示利用EKey对KW加密。

        在步骤S202,与每个检索项有关的检索信息被设置,并且索引项生成单元102生成每条检索信息相应的索引项。每个检索项对应于一条或多条检索信息。检索信息可以是提供了与该检索项匹配的检索结果的任何信息。例如,在倒排索引中,对于检索项(关键词)KW,每个含有关键词KW的文件的文件名或文件位置(或与该文件相关的其他信息)被设置为与该检索项相关的一条检索信息。例如,对于检索项KW,含有关键词KW的n个文件的文件名被设置为与检索项KW有关的n条检索信息I1、I2、...In。

        注意,在加密存储应用中,数据拥有者可能将文件以密文而非明文的形式存储在服务器上。在这种情况中,上述文件名是指加密文件的密文文件名。

        对于每一检索信息,索引项生成单元102生成包含该检索信息或能够从中得出该检索信息的一个索引项。对于检索信息Ij(j=1,2,...,n),索引项生成单元102生成索引项FLj。索引项FLj例如可以是检索信息Ij本身,或者可经过变换得到检索信息Ij的值。在一种加密索引应用中,索引项FLj可以是包含Ij信息的数据的密文。例如如下计算索引项FLj:

        FLj=E(EKey,Ij‖Key)     式(2)

        其中EKey是特定密钥,Key是特定参数(例如,数据拥有者用于相应加密文件的密钥)E(EKey,Ij‖Key)表示利用EKey对Ij和Key的组合加密。

        然后在步骤S203,聚合器生成单元103生成聚合器,每个聚合器聚合了与一个检索项有关的全部检索信息,用于验证检索结果的完整性。可以使用各种方法来生成聚合器,只要在检索者终端处,能够使用该聚合器验证得到的包含各个检索信息的检索结果是否完整。下面分别以异或运算、取模运算、聚合签名为例来说明聚合器的计算。本领域技术人员能够认识到,还可以使用各种其他算法来生成聚合器。

        【示例1-异或运算】

        对于与检索项KW相关的全部检索信息I1、I2、...In,聚合器生成单元103可以利用异或运算如下生成聚合器IC:

        IC=I1⊕I2⊕...⊕In]]>式(3)

        式(3)可以利用以下迭代程序计算:

        set IC=0

        for j=1 to n

        IC=IC⊕Ij]]>

        next j

        【示例2-取模运算】

        利用取模运算,聚合器生成单元103可以如下生成聚合器IC:

        IC=Πj=1nIjmodp]]>式(4)

        或者

        IC=Σj=1nIjmodp]]>式(5)

        其中,p是大素数。

        式(4)可以利用以下迭代程序计算:

        set IC=1

        for j=1 to n

            IC=(IC*Ij)mod p

        next j

        式(5)可以利用以下迭代程序计算:

        set IC=0

        for j=1 to n

            IC=(IC+Ij)mod p

        nextj

        【示例3-聚合签名】

        假设预先设置如下安全参数:p是大素数;G1和G2是同为p阶的群;g1和g2分别是G1和G2的生成元;Zp*是所有小于p且与p互素的正整数的集合;定义双线性映射e为G1×G2→GT,该双线性映射满足以下特性:

        (1)双映射性——对所有的g1、g2和属于Zp*的所有的a,b,e(g1a,g2b)=e(g1,g2)ab成立;

        (2)非退化性——如果e(g1,g2)=1,存在g2属于G2,则有g1=O。

        并且设置将{0,1}*映射到G1的哈希函数H,选择Zp*中的随机数K,并设置密钥sk。其中,g2和随机数K被公布给检索者,或者g2k被公布给检索者。

        聚合器生成单元103可以如下生成聚合器IC:

        IC=Πj=1nH(Ij)1/(sk+K)modp]]>式(6)

        式(5)可以利用以下迭代程序计算:

        set IC=1

        for j=1 to n

            IC=(IC*H(Ij)1/(sk+K))mod p

        next j

        聚合器被生成之后,索引形成单元104针对每个检索项,生成一个索引条目。每个索引条目至少包括与该检索项相对应的检索项标识、与该检索项有关的全部索引项,以及通过聚合与该检索项相关的全部检索信息而得到的聚合器。然后,索引形成单元104形成包括了全部索引条目的索引。需要注意的是,可以选择不同的随机数K来分别聚合不同组的索引项,以生成各个聚合器。

        至此,在数据拥有者终端100处生成了含有聚合器的索引。之后,数据拥有者终端可以将文件以及所生成的索引存储到服务器上,以供使用。

        下面参考图4和图5描述聚合器的使用。

        图4示意性地示出了根据本发明一个实施例的检索者终端300的配置示例。如图4所示,检索者终端300主要包括检索请求单元301、检索信息提取单元302和验证单元303。

        图5示意性地示出了根据该实施例的检索者终端300进行检索的操作。

        首先,在步骤S401,检索请求单元301生成至少包括检索项标识的检索请求并将检索请求发送给服务器。检索者可以从数据拥有者处得到检索项标识,或者从数据拥有者处得到计算检索项标识所必须的数据,利用与建立索引时所用的生成检索项标识的方法相对应的方法计算出检索项标识。

        服务器接收到检索请求之后,在索引中执行查找,找到含有与所接收的检索项标识相匹配的检索项标识的索引条目,将该索引条目中的所有索引项以及聚合器返回给检索者终端。在需要认证的情况中,在执行上述查找之前,服务器还可以对检索者执行身份认证过程。如果服务器没有找到匹配的索引条目或者检索者的身份认证失败,服务器可以返回空结果或者进入错误处理,例如向检索者终端发送通知等。在这种情况下,检索者终端执行相应的错误处理,例如重试或者结束过程。

        如果服务器返回了检索结果,在步骤S402,检索者终端接收得到的一个或多个索引项和相应的聚合器。

        然后在步骤S403,检索者终端的检索信息提取单元302从所接收的每个索引项中提取检索信息。如上所述,索引项可以是检索信息本身,这种情况中,可以直接得到检索信息。在索引项是检索信息的加密形式或者是可经过变换得到检索信息的值的情况下,检索信息提取单元302通过相应的解密或变换过程提取检索信息。解密或变换所需的参数可以从数据拥有者处获得。

        得到每个索引项中所包含的检索信息之后,在步骤S404,检索者终端的验证单元303利用所接收的聚合器来检验检索结果是否完整和正确。

        如果检验成功,则过程进行到步骤S405,获取的检索信息可以被使用,例如用于根据检索信息获取相应文件或者用于进一步的信息处理。由于如何使用检索信息与本发明并不直接相关,因此附图中并未绘出相应的单元或模块,并且在此省略对其的详细描述。但是应当理解,可以根据实际的应用添加任何必要的单元或模块,执行所需的过程。

        如果验证失败,则表明检索结果不完整或者不正确。这可能是由于数据被篡改或者数据通信中出现错误而造成的。在这种情况下,过程进行到步骤S406,执行错误处理。例如,重新发送检索请求,或者要求重传,或者结束过程。

        前述使用聚合器进行验证的方法可以根据数据拥有者终端所采用的生成聚合器的方法来确定。

        例如,验证单元303可以根据提取出的全部检索信息,使用和数据拥有者终端所用的相同的方法计算一个聚合器,将该计算出的聚合器与从服务器接收的聚合器相比较。如果两者一致,则验证成功;否则,验证失败。下面给出几个示例。

        假设检索信息提取单元从所接收的全部索引项中提取出了检索信息I’1、I’2、...I’m。在聚合器是按照上述式(3)生成的情况下,验证单元303计算并将IC’与从服务器接收的聚合器IC相比较。

        类似地,在聚合器是按照上述式(4)生成的情况中,验证单元303计算并将IC’与从服务器接收的聚合器IC相比较。或者,在聚合器是按照上述式(5)生成的情况中。验证单元303计算p,并将IC’与从服务器接收的聚合器IC相比较。

        在聚合器是采用上述式(6)的聚合签名形式生成的情况中,可以通过验证该聚合签名来进行验证。具体地,验证单元303计算p,然后检验是否存在如下关系e(IC′,g2)=e(IC,g2sk*g2K)。如果该关系成立,则验证成功;否则,验证失败。

        当使用其他算法生成聚合器时,验证单元303采用相应的方法来利用聚合器验证获取的检索信息是否完整。

        在一些情况中,索引需要被更新。例如,添加新的文件或者删除已有文件时,检索信息发生变化,索引需要相应地更新,以提供正确的检索。根据文件的增删,索引项被更新,同时相关索引条目中的聚合器也相应地更新。

        例如,如果新的检索信息Ia需要被添加到与检索项KW相对应的索引条目中时,利用上述式(3)计算的聚合器IC可以被更新为

        ICupdated=IC⊕Ia]]>式(7)

        利用上式(4)计算的聚合器IC可以被更新为

        ICupdated=(IC*Ia)mod p    式(8)

        利用上式(5)计算的聚合器IC可以被更新为

        ICupdated=(IC+Ia)mod p    式(9)

        利用上式(6)计算的聚合器IC可以被更新为

        ICupdated=[IC*H(Ia)1/(sk+K)]mod p    式(10)

        对于利用式(6)计算的聚合器IC,也可以采用如下方法进行更新:首先,选择新的公共随机数K’,然后如下计算更新的聚合器ICupdated:

        ICupdated=[IC(sk+K)*H(Ia)mod p]1/(sk+K’)  式(11)

        另一方面,如果已有的检索信息Ib需要被从与检索项KW相对应的索引条目中删除时,利用上述式(3)计算的聚合器IC可以被更新为

        ICupdated=IC⊕Ib]]>式(12)

        利用上式(4)计算的聚合器IC可以被更新为

        ICupdated=(IC*Ib-1)mod p    式(13)

        利用上式(5)计算的聚合器IC可以被更新为

        ICupdated=(IC-Ib)mod p    式(14)

        利用上式(6)计算的聚合器IC可以被更新为

        ICupdated=[IC*H(Ib)-1/(sk+K)]mod p    式(15)

        对于利用式(6)计算的聚合器IC,也可以采用如下方法进行更新:首先,选择新的公共随机数K’,然后如下计算更新的聚合器ICupdated:

        ICupdated=[IC(sk+K)*H(Ib)-1modp]1/(sk+K’)  式(16)

        索引条目的更新可以由数据拥有者终端进行,然后更新后的索引条目被发送到服务器用以代替之前的索引条目。或者,更新可以由服务器进行。相应地,可以在数据拥有者终端或者服务器中配置用于进行索引更新的更新单元(未在图中示出)。

        根据本发明的在索引中使用的聚合器可以应用于各种索引。例如,在加密索引中,可以同样使用聚合器。例如,索引条目中的索引项是通过对包含检索信息的信息进行加密而得到的密文,并且通过对检索信息进行聚合得到聚合器,其中的检索信息可以是加密后的文件的密文文件名。在这样的加密索引中,除了数据拥有者和被授权的检索者之外,其他方,包括服务器,无法通过对索引项进行解密而得知检索信息,也无法通过模拟加密过程而得到可正确解密的索引项,因此避免了索引项和聚合器被篡改。

        下面提供了一种快速密文检索方法,其中使用了改进的倒排加密索引,并利用聚合器来提供对检索结果完整性的验证。

        在该方法中,数据拥有者终端利用相同或不同的密钥对每个文件进行加密,然后将文件的密文存储到服务器上。在本示例中,上述的检索信息Ij是文件FILEj的加密后的文件名CFNj。根据加密后的文件名,服务器可以容易地在所存储的加密文件中找到匹配的文件,将其提供给请求者。

        在编制索引时,对于作为检索项的关键词KW,数据拥有者终端通过对包含关键词KW的信息进行加密或者将包含关键词KW的信息映射到一个值来计算检索项标识,例如检索项标识被计算为KL=Hash(MEK‖KW),其中MEK是数据拥有者的主密钥。

        假设文件FILEj(j=1,2,...n)含有关键词KW,数据拥有者终端如下计算与KW有关的FILEj的索引项FLj:

        FLj=E(EKey,Ij‖Kfilej)  式(17)

        其中,Kfilej是用于文件FILEj的解密密钥,Ij是文件FILEj的加密文件名,EKey是数据拥有者设置的用于生成索引项的加密密钥,E(EKey,Ij‖Kfilej)表示利用EKey对Ij和Kfilej的组合进行加密。

        然后,可以对Ij(j=1,2,...n)进行聚合,生成对于检索项KW的聚合器IC。例如,可以利用上述式(3)~(6)中任何一种方法,或者其他方法来进行计算。

        随后,针对关键词KW,生成至少包括了KL、FLj(j=1,2,...n)和IC的索引条目。由这样的索引条目形成的加密倒排索引被存储到服务器上。

        如果数据拥有者希望使得一个检索者能够对一个关键词进行检索,则数据拥有者以安全的方式向该检索者授予该关键词的检索项标识KL,并授权给该检索者的用于解密索引项的解密密钥DKey。

        在检索时,检索者终端将含有检索项标识KL的检索请求发送给服务器。服务器根据接收的检索项标识KL,在所存储的加密索引中找到匹配的索引条目,然后将匹配的索引条目中所包含的全部索引项FLj以及聚合器IC返回给检索者终端。

        在从服务器接收到各个索引项FLj之后,检索者终端利用由数据拥有者所授予的用于解密索引项的解密密钥DKey,每个索引项FLj进行解密,以获得加密文件名和相应的文件解密密钥,即Ij和Kfilej。

        然后,数据拥有者终端利用所接收的聚合器IC检验获取的Ij是否完整。如果检验成功,检索者终端可以相应地使用这些Ij,例如将Ij发送到服务器以获取具有相应加密文件名的加密文件,然后利用相应的文件解密密钥Kfilej对加密文件进行解密,从而得到文件的明文。如果验证失败,可以进行上述的错误处理。

        在上述的方案中,文件和索引信息都以加密形式存储在服务器上,从而避免了文件信息暴露给服务器。

        在上述示例的一种改进形式中,代替直接使用检索信息Ij来计算聚合器,可以使用包含检索信息Ij的信息的密文或者从包含检索信息Ij的信息映射而来的数据来代替上述计算、验证和更新聚合器IC时所使用的Ij。例如,在计算聚合器时使用Ij’=Ij‖X代替上述Ij,其中X可以是任意预定信息,例如上述示例中的DKey。又例如,在上述利用异或、取模等算法计算聚合器时,可以使用Ij’=Ij‖X来代替式中的Ij,其中X可以是任意预定信息,例如上述示例中的DKey。

        如前文所述,由于索引项是对包含检索信息的信息的密文形式,而聚合器是对检索信息进行聚合而得到了,因此未被授权的第三方无法篡改索引项或聚合器。

        在另一种改进形式中,数据拥有者可以设置不同的隐私级别,并对不同的每个隐私级别设置不同的索引项加密和解密密钥EKey和DKey。在生成索引时,对于可以在某个隐私级别公开的文件,使用该隐私级别的索引项加密密钥来生成对应该文件的索引项。从而,在与一个检索项(关键词)相对应的索引条目中,可以存在多个不同隐私级别的索引项。在这种情况中,为每个隐私级别的索引项都生成一个聚合器。也就是说,在与一个检索项相对应的索引条目中,通过聚集属于同一隐私级别的所有索引项中所包含的检索信息来生成该级别的聚合器。从而,存在针对不同隐私级别的多个聚合器。

        在上述改进形式中,数据拥有者按照隐私级别对检索者授权,即,将适应于检索者隐私级别的索引项解密密钥DKey授予该检索者。在检索时,检索者利用所授予的索引项解密密钥DKey可以对从服务器得到的全部索引项中利用相同隐私级别索引项加密密钥生成的索引项进行解密,得到该隐私级别的与检索项相关的检索信息。可以通过在索引项中设置预定标志来验证解密的正确性。例如,如下生成索引项:

        FLj=E(EKey,FLAG‖Ij‖Kfilej)  式(18)

        其中,FLAG是检索者已知的参数。这样,检索者通过检查解密后的信息中是否存在正确的FLAG,可以确定是否进行了正确的解密。

        并且,通过解密得到了相应隐私级别的检索信息之后,检索者利用接收的相应隐私级别的聚合器来验证该隐私级别的检索信息是否完整。检索者可以利用索引条目中包括的多个聚合器来进行检验,只要其中一个检验成功,就代表验证通过。这是因为计算出的聚合器与不相应的隐私级别的聚合器相等的概率极低。或者,索引条目可以分段排列,即,同一隐私级别的索引项和聚合器放在同一段中,从而使得检索者能够通过判断哪段索引项被成功解密而确定使用哪个聚合器进行检验。或者,可以对聚合器附加其他信息,例如表示隐私级别的参数,以帮助检索者确定应当使用哪个聚合器。或者,在执行检索时,服务器可以执行确认检索者隐私级别的过程,然后根据检索者的隐私级别,向检索者返回相应隐私级别的聚合器。这种情况中,不需要检索者选择聚合器的处理。

        上面已经参考附图描述了根据本发明的一些具体示例。但是,本发明并非要受到上述实施例中描述的任何具体配置和过程的限制。在本发明的精神的范围之内,本领域技术人员能够认识到上述配置、算法、操作和过程的各种替换、改变或修改。例如,上面具体描述了倒排索引的示例,但是本发明也可以应用于正排索引。例如,上述示例中的检索项是文件名或加密后的文件名,检索信息是文件中所包含的关键词或加密后的关键词等。在正排索引中,可以类似地应用聚合器。又例如,上述给出的示例中,索引条目至少包括了检索项标识、索引项以及聚合器。但是,可以认识到,取决于应用的需要,还可以在索引条目中添加任意需要的其他信息或数据。

        在本说明书中使用的所谓的“文件”应当被理解为是广义的概念,其包括但不限于例如文本文件、视频/音频文件、图像/图表以及任何其他数据或信息。

        作为数据拥有者终端、检索者终端和服务器的示例性配置,图中已经示出了一些耦合在一起的单元。这些单元可以利用总线或者任何其他信号线或者通过任何无线连接来耦合,以在其间传输信号。然而,每个设备中所包括的部件并不限于上述这些单元,具体的配置可以被修改或改变。每个设备还可以包括其他单元,例如用于向设备的操作者显示信息的显示单元、用于接收操作者的输入的输入单元、用于控制每个单元的操作的控制单元、任何需要的存储或处理装置等等。由于这些部件是本领域中公知的,因此没有对其进行详细的描述,本领域的技术人员将容易地考虑到将它们添加到上述设备中。另外,虽然所描述的单元在附图中被示出为是分别的单元,但是它们中的任何一个可以与其他单元相结合作为一个部件,或者可以被分割为多个部件。

        此外,数据拥有者终端、检索者终端和服务器在上述示例中被描述为分别的设备,其可以在通信网络中彼此远程地放置。但是,它们可以组合为一个设备来增强功能性。例如,数据拥有者终端和检索者终端可以被组合,以创建新的设备,其在一些情况中是数据拥有者终端而在另一些情况中能够作为检索者终端而执行检索。又例如,服务器和数据拥有者终端或者检索者终端可以被组合,如果在某个应用中它扮演这两个角色。同样,可以创建在不同事务中扮演数据拥有者终端、检索者终端和服务器的设备。

        上述的通信网络可以是任何类型的网络,包括任何种类的电信网络或者计算机网络。当数据拥有者终端、检索者终端和服务器被实现为单个设备的一部分是,上述通信网络还可以包括任何内部数据传输机制,例如,数据总线或集线器。

        本发明的元素可以实现为硬件、软件、固件或者它们的组合,并且可以用在它们的系统、子系统、部件或者子部件中。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

        本发明可以以其他的具体形式实现,而不脱离其精神和本质特征。例如,特定实施例中所描述的算法可以被修改,而系统体系结构并不脱离本发明的基本精神。因此,当前的实施例在所有方面都被看作是示例性的而非限定性的,本发明的范围由所附权利要求而非上述描述定义,并且,落入权利要求的含义和等同物的范围内的全部改变从而都被包括在本发明的范围之中。

    关 键  词:
    生成 索引 方法 装置 以及 检索
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:生成索引的方法和装置以及检索方法和装置.pdf
    链接地址:https://www.zhuanlichaxun.net/p-997731.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1