有选择地共享分布式访问受控文档的统一搜索系统和方法

文档序号:6422756阅读:173来源:国知局
专利名称:有选择地共享分布式访问受控文档的统一搜索系统和方法
技术领域
本发明一般涉及对通过诸如因特网或万维网之类网络定位的访问受控数据储存库(access-controlled data repository)进行搜索。更具体地说,本发明涉及统一搜索多个分布式访问受控数据储存库的数字产权管理工具。
背景技术
虽然近年来,因特网上的专用和半专用信息已快速增长,但是,搜索这种信息的机制未能与之齐步前进。面临查找访问受控文档的问题的用户通常会识别并单独搜索每个相关储存库,当然假定用户知道并记得哪些储存库是相关的。
例如,公司XYZ希望与公司ABC共享他们的一些,而不是全部内部研究文献。公司XYZ希望共享的文献可能涉及这两个公司之间的协作项目。公司XYZ想要能够提供关于该数据的搜索工具,公司ABC只能搜索他们可以使用的文献。但是,公司XYZ并不希望公司ABC能够确定公司XYZ正在与公司Q共享什么。当前,在希望按照访问受控格式共享数据的公司和个人之间,不存在按照这种格式统一搜索数据的方法。
搜索网络上的访问受控内容的工具的缺少起源于在考虑内容提供者的安全性和保密性要求的同时,产生对内容编制索引的搜索引擎的困难相当大。当代的搜索引擎建立倒排索引(inverted index),倒排索引把关键字映射到其在索引文档中的准确位置。
常规的倒排索引实质上整体代表一个索引文档。从而,能够根据索引容易地重建索引文档。要求提供关于访问受控内容的这种索引的任意主机非常可信和安全。在被赋予有关每个可搜索文档的知识的情况下,对搜索引擎关于访问受控内容所要求的信任对于每个参与提供者都快速增长。这种巨大的信任要求,伴随着通过恶意的索引公开而完全违背访问控制的可能性,使这种方法不切实际。
常规的搜索方案包括集中式索引,查询广播,分布式索引,和集中式模糊索引。支持关于分布内容的有效搜索的最常见方案是集中式索引,其中建立集中式倒排索引。该索引把每个检索词映射到包含该检索词的一组文档。搜索者查询该索引,获得匹配文档的列表。这是web搜索引擎和协调器选择的方案。
通过把访问策略连同内容一起传送给索引主机,集中式索引可被扩展,从而支持访问受控搜索。索引主机把这些策略应用于每个搜索者,从而恰当地过滤搜索结果。由于只需要联系索引主机即可完整地执行搜索,因此搜索的效率相当高。但是,集中式索引可允许可以访问索引结构的任何人“可查明地暴露”内容提供者。当对手(即,黑客)能够提供提供者p正在共享文档d的确凿证据时,发生可查明的暴露。在所有内容提供者完全信任索引主机的情况下,访问控制的这种违背是可以容忍的。找到这样的可信主机是非常困难的。此外,如果索引被公开展示,那么黑客对索引主机的损害会导致完全并且破坏性的失密。
查询广播位于搜索效率范围的另一端,查询广播是向所有参与内容提供者发送查询的基于广播的方案。这种方案包括内容提供者的网络,这里提供者本地评估每个查询,并直接把任意匹配文档提供给搜索者。可扩大查询广播搜索协议,以便实现访问控制。在这种协议中,查询可和查询始发者的身份和IP地址一起被广播。通过加密连接,提供者能够安全地把搜索结果回传给经过验证的搜索者,从而避免被截取。
由于提供者p共享的内容单独存在于该提供者的数据库,提供者被保证绝对保密性,自然保持了内容保密性的目的。但是,虽然对查询广播的这种修改具有极好的保密特性,但是它存在可缩放性差和严重的性能恶化的问题。从而,查询广播的协议采用限制搜索范围,损害搜索完整性的试探法(例如,生存期字段)。
查询广播的性能限制已导致研究不需要单个集中式索引提供者,支持有效搜索的分布式索引方法。例如,通过使“超级对等体”(具有高于平均值的带宽和处理能力的机器)托管数个能力较差的机器共享的内容的子索引,对等网络可影响(leverage)“超级对等体”。
另一系统利用分布式散列表,分发搜索索引。在这些系统中,分布式索引被用于识别和搜索者的查询匹配的一组文档(或者托管这些文档的机器)。搜索者随后直接联系这些机器,以便取回匹配的文档。
通过在提供文档之前,简单地使提供者执行他们的访问策略,能够支持分布式索引系统的访问控制。但是,和集中式索引的情况一样,可以访问一部分分布式索引的任意节点能够可查明地暴露该部分所索引的任意提供者。
此外,索引通常由提供者本身不能控制的不可信机器托管。不托管一部分索引的主动对手能够搜索分布式索引,造成破坏保密性。例如,通过发出关于特定关键字的搜索,利用可查明的暴露破坏内容保密性,对手能够确定共享具有该关键字的文档的提供者的准确列表。通过安装短语攻击,也能够破坏内容保密性。这种攻击利用了多数文档具有它们独有的多组特有单词的观察结果。
为了识别共享某一文档的提供者,对手只需要构成由该文档的这种检索词组成的查询即可。随后,所得到的站点的列表被认为共享该文档,但是可能是清白的。当对手关于共享文档d的提供者p的主张可能错误的概率较大时,发生可能清白的情况。通过选择恰当的一组检索词,对手能够实现几乎可查明的暴露。
一些搜索应用程序不保持准确的倒排索引列表,而是保持允许把查询映射成可能包含匹配文档的一组“模糊的”提供者的结构;这种方法被称为集中式模糊索引。搜索者能够探查bloom filter索引(它是一种模糊索引),从而识别包含和查询匹配的文档的所有提供者的列表。但是,该列表不必是准确的,因为由于散列冲突的缘故,bloom filter可能产生虚假的肯定。在已知这种列表的情况下,搜索者联系每个提供者,从而累积结果。通过在搜索者请求匹配文档的时候,使提供者执行他们的访问策略,可扩展这些方案,以便支持访问受控搜索。
由于提供者列表中潜在的虚假肯定,bloom filter索引提供有限的保密特性。从而,该列表中的每个提供者可能没有共享和查询匹配的文档。但是,这种保密性是假的。主动对手能够对bloom filter索引进行基于词典的攻击,从而识别任意索引的提供者的检索词分布。
基于词典的攻击利用了自然语言(例如英语)的句子使用来自易于编辑的有限词汇表(例如Oxford/Webster词典中)的单词的事实。从而,对手能够计算该词汇表中每个单词的散列。关于这种散列的bloom filter项中的提供者可能共享具有对应单词的文档。另外,该方案仍然易于受到短语攻击。
虽然这些常规的搜索方案可被修改,以支持对访问受控内容的搜索,但是,这样的修改不能充分解决保密性和效率方面的问题。由于索引本身传递的准确信息的缘故,依赖于常规的搜索索引的任意搜索机制允许“可查明地暴露”提供者。于是,有效的保持保密性的搜索需要一种即使在使索引公开的情况下,也能够防止破坏“内容保密性”的索引结构。
需要一种允许搜索者特许访问那些访问受控的文档,而不会向未经授权的搜索者暴露文档的内容,文档的提供者,或者甚至文档的存在的系统和相关方法。迄今为止,关于这种系统和方法的需要仍然未被满足。

发明内容
本发明满足这种需要,提出一种提供有效搜索机制的系统,服务,计算机程序产品和相关方法(这里总称为“系统”或“本系统”),所述有效搜索机制注意到了参与内容提供者的在保密性方面的担心。本系统允许公司和个人保持对他们自己数据的控制,同时提供一种搜索机制,所述搜索机制高效,但是不会仔细地向未经授权的搜索者公开哪些数据正被共享。被展示的信息是“模糊的”,从而未经授权的搜索者不能肯定地认为什么信息正被共享。本发明的特定索引结构不允许搜索者或者对手得出什么信息正被所有各个内容提供者共享的结论。
响应对索引的主动对手攻击,索引的文档的提供者被确保至少“或许清白”。本系统在连网提供者中建立与访问控制强制执行搜索协议一起起作用的内容的集中式索引。集中式索引本身提供即使整个索引被公开,仍然成立的有力的可计量的(quantifiable)保密保证。集中式索引提供的保密程度可被调整,以满足提供者的需要。搜索协议引起的开销正比于提供的保密程度。
本系统可用在不同的部门中,所述不同部门中,多个组织正在积极竞争,以及不断合作形成联盟。另一应用领域是通过个人web服务器的文件共享。例如,某人可能希望在工作时收听某张CD或某一歌曲,但是该CD放在另一地方。他可使用本系统搜索可以电子方式从其它个人或公司得到的取得版权的歌曲。他出示所有权的证据,身份验证,随后能够收听该CD或歌曲。CD或歌曲的提供者跟踪提供的证据,从而允许这种交换的审计。本系统提供随后让该人搜索具有该CD或歌曲的任何人,并使他能够访问该CD或歌曲的搜索机制。
本系统保留了私有信息共享的重要魅力。每个提供者完全控制它享有的信息有多少被共享,何时被共享,以及与谁共享。


下面将参考下面的说明,权利要求和附图,更详细地描述本发明的各个特征以及获得这些特征的方式,附图中,恰当地重复使用附图标记表示引用对象之间的对应性,其中图1示意地图解说明了其中可使用本发明的秘密保护索引(privacy-preserving index)系统的例证工作环境;图2是图1的秘密保护索引系统的高级体系结构的方框图;图3是图解说明响应来自搜索者的查询,图1和2的秘密保护索引系统的操作的方法的流程图;
图4是图1的提供者专用搜索接口的高级体系结构的方框图;图5图解说明把内容提供者分为秘密组;图6图解说明内容提供者产生的位矢量;图7是图解说明图1和2的秘密保护索引系统产生秘密保护索引的操作的方法的流程图;和图8图解说明图1和2的秘密保护索引系统关于对等的一组内容提供者产生的位矢量。
具体实施例方式
下面的定义和说明提供与本发明的技术领域有关的背景技术,意图便于理解本发明,而不是对本发明范围的限制绝对秘密对手不能确定提供者p是否正在共享文档d。
对手主动或被动地,故意地或者无意地收集和各个提供者托管的内容相关的越权信息。对手可单独行动或者与其它对手串通行动,从而破坏内容提供者的秘密。
无可置疑对手不能确定提供者p是否比任意其它提供者更可能共享文档d。
Bloom Filterbloom filter是由N位阵列构成的模糊组(set)索引结构。这里使用bloom filter索引一组关键字K。建立bloom filter需要把关键字映射成范围1...N中的值的散列函数H( )。在已知该组关键字K和散列函数H的情况下,本发明产生bloom filter B[1...N],如下所示(1)把所有位B[1...N]设置成0,和(2)对于K中的每个关键字k,把B[H(k)]设置成1。
bloom filter允许本发明非常有效地回答下述例证形式的查询“索引的一组关键字包含关键字k?”。这是通过检查B[H(k)]的值实现的。如果位为0,那么该组明确地不包含关键字k。如果位为1,那么该组可能包含该关键字(必须查阅实际的组本身,以便肯定的核实)。bloom filter是一种非常有用的快速识别并除去不能回答指定查询的提供者的结构。
对等体连网中,与另一方位于相同协议层的功能单元。
对等网络其中网络上的任意计算机可以是客户机和/或服务器的通信网络。任意计算机能够访问网络中的任意其它计算机上的文件。
可能清白(possible innocence)对手关于提供者p共享文档d的主张是错误的概率较大(例如概率介于(0.5,1)之间)。
或许清白(probable innocence)和真的相比,对手关于提供者p共享文档d的主张更可能是假的(例如,概率介于(0,0.5)之间)。
可查明的暴露对手能够提供提供者p共享文档d的确凿证据。
图1图解说明其中可使用根据本发明的,有选择地共享分布式访问受控文档的统一搜索系统和相关方法的例证整体环境。系统100包括秘密保护索引系统10和提供者专用搜索接口15。秘密保护索引系统10包括通常嵌入或者安装在秘密保护索引服务器25中的软件编程代码或者计算机程序产品。提供者专用搜索接口15包括通常嵌入或者安装在提供者服务器30、35中的软件编程代码或计算机程序产品。
另一方面,秘密保护索引系统10和提供者专用搜索接口15可保存在适宜的存储媒体上,例如磁盘,CD,硬盘驱动器或类似装置上。虽然下面将结合WWW说明秘密保护索引系统10和提供者专用搜索接口15,不过它们也可和从WWW和/或其它来源得到的检索词(term)的独立数据库一起使用。
云状通信网络20可由连接诸如秘密保护索引服务器25和提供者服务器30、35之类服务器,提供对WWW或因特网的通信访问的通信线路和交换机组成。搜索者,例如搜索者40通过网络20,关于所需的信息,查询秘密保护索引服务器25。搜索者40可以是个人,公司,应用程序等。计算机45包括允许用户浏览因特网,并且安全地连接秘密保护索引服务器25和提供者服务器30、35的软件。秘密保护索引服务器25,提供者服务器30、35,和计算机45通过诸如电话,电缆或卫星链路之类通信链路50、55、60、65,与网络20连接。
在图1的例证环境中,秘密保护索引系统10保存在dB 70上。内容提供者75、80(这时也称为提供者75、80)把一组文档保存在他们各自的数据库,提供者数据库85,90上。提供者75,80通过提供者专用搜索接口15,控制对他们各自的提供者数据库85、90上的文档的访问。
图2的方框解说明了秘密保护索引系统10的高级体系结构。秘密保护索引系统10由秘密保护索引构造器205,秘密保护索引210,和查询语言解释器215组成。当最初产生秘密保护索引210时,秘密保护索引构造器205把查询检索词映射到提供者75、80的列表。
图3中的流程解说明了秘密保护索引系统10的操作的方法300。在方框305,搜索者40以一个或多个关键字的形式,向秘密保护索引系统10提交查询220。在方框310,秘密保护索引210向搜索者40返回包含可能包含这些关键字的文档的提供者75、80的列表。作为系统100的一个特征,提供者75、80的列表可包含至少50%的虚假肯定,即一半或小于一半的返回的提供者75、80实际具有包含这些关键字的文档。搜索者40随后用以搜索者40的访问特权和验证注解的关键字,搜索这些指定的提供者75、80(方框315)。在方框320,提供者75、80验证搜索者40,并在方框325,以匹配关键字的文档进行响应。提供者只返回既和查询匹配,并且允许用户访问的文档。
图4的方框解说明了提供者专用搜索接口15的高级体系结构。提供者专用搜索接口15包括查询语言解释器405,查询执行引擎410,验证机构415,访问策略语言420,和访问策略执行器(enforcer)425。提供者专用搜索接口15的输入是注释的查询435。注释的查询435包括用搜索40的身份注释的查询220。查询语言解释器405获得注释查询435,并将其转换成供查询执行引擎410之用的机器语言。查询语言解释器405应支持连接(conjunctive)关键字查询。也可支持其它结构(例如,短语搜索,否定检索词等),只要它们进一步约束结果集合即可。验证机构415使用的验证方案应允许搜索者40独立地向每个提供者75、80验证它自己。系统100的一个实施例并不要求明确地向每个提供者75、80登记。相反,搜索者40通过第三方签署的安全证书(例如SSL/TLS),实现客户验证。通过利用访问策略语言420,在已知搜索者40的验证身份的情况下,提供者75、80能够应用并强制执行他们的访问策略。这允许每个提供者75、80单独地选择最适合他们的要求的访问策略语言420。
查询执行引擎410把一组文档识别成和注释查询435匹配。访问策略执行器425根据验证机构415从注释查询435确定的搜索者40的身份和具体访问策略,过滤这些文档。过滤后的一组文档440被返回给搜索者40。
秘密保护索引210是建在所述一组提供者75、80共享的一组文档D上的映射函数。它接受查询220(q 220),并返回可能包含匹配文档的提供者子集M。对于被看作秘密保护的功能来说,对于任意查询q 220的集合M应满足下述条件之一·只有当D中不存在和q 220匹配的文档时,M才是空集合。
·M是包含共享匹配q 220的文档(“真实的肯定”)的所有提供者,和数目相同或者更多的不共享匹配文档(“虚假的肯定”)的提供者的提供者75、80的子集。
·M是所有提供者75、80的集合。
秘密保护索引210应表现得象常规的索引,即,关于相同的查询220,秘密保护索引210应返回相同的结果,除非被索引的内容本身已发生变化。另外,对于其结果是另一查询q 220的子集的任意查询q′来说,关于q′返回的结果集合应是关于q 220返回的结果集合的子集。这些行为要求通过滤除虚假的肯定,防止尝试破坏保密性的攻击。
应当小心地实现秘密保护索引210和秘密保护索引210的定义允许产生的信息相比,自然(naive)实现能够容易地产生更多信息。例如,秘密保护索引210的主机可本地聚集所有共享的内容,并对其进行预处理,以便实现只有真实肯定的秘密保护索引210;在查询220的时候,定义所需的虚假肯定被插入结果中。这种情况下,秘密保护索引210本身的实现形式并不对应于秘密保护索引210的定义。秘密保护索引210的实现形式的公开会导致提供者75、80的可查明暴露。相反,系统100要求秘密保护索引210的实现形式不应产生比对照秘密保护索引210,执行查询220的详尽列表获得的信息更多的信息。
秘密保护索引210关于查询q 220返回的集合M决不排斥关于q220的任意真实肯定。换句话说,关于查询220的结果集合可包括至少具有一个匹配文档的所有提供者75、80。搜索者40联系每个提供者75、80,从而累积结果;只有当搜索者40具有足够的访问特权时,提供者75、80才释放文档。从而,借助秘密保护索引210的搜索导致正确的输出。
一般地说,搜索分布式访问受控内容可被表述成一组内容提供者P1,P2…,Pn,和发出查询q的搜索者s。每个提供者被认为共享依据搜索者s的验证身份和访问策略确定的具有访问控制的一组文档。所需的输出是包含文档d的一组文档,从而d由某一提供者Pi共享,1<i<n,d和查询q匹配,并且如同Pi的访问策略所示,对于s来说,d是可访问的。
和确保关于查询q 220的正确输出一样重要的是防止对手在未获得恰当的访问权限的情况下,获悉哪一个或多个提供者可能正在共享文档的要求。利用提供者75、80和秘密保护索引系统10对上述类型的对手破坏保密性的敏感度,描述了对保护秘密的问题的解决方案。
被动对手是仅仅观察并记录在系统中发送的消息(查询,响应,索引)的偷听者。这样的对手可全局(观察系统中的所有消息的能力)或者局部(观察发送给特定内容提供者/从特定内容提供者发送的消息的能力)地观察系统。主动对手是按照系统协议有意行动,从而收集信息的实体。在我们的模型中,这样的对手可检查索引结构,发出各种查询,或者甚至参与索引构成过程,从而易于破坏保密性。对手还可相互勾结来破坏保密性。
还可根据对手扮演的角色对他们分类。例如,多数用户(从而多数对手)局限于扮演搜索者40的角色,因为内容提供者75、80实际上可能是较小并且更加受控的群体。通过每个角色(搜索者40,提供者75、80或秘密保护索引系统10)可访问的信息和操作可被用于简化不同类型的违背。
系统100集中于关于某一内容提供者p使之可搜索的文档d,获得下述保密目的不应允许对手A推断出p正在共享包含关键字q的某一文档d,除非p已准许A访问d。
利用Reiter和Rubin在他们的Crowds分析中介绍的秘密范围(privacy spectrum),表征对抗不能访问提供者p共享的文档d的对手,获得内容保密的程度·可查明的暴露对手能够提供p正在共享d的确凿证据。
·可能清白对手关于p共享d的主张是错误的概率较大(例如概率介于(0.5,1)之间)。
·或许清白和真的相比,对手关于p共享文档d的主张更可能是假的(例如,概率介于(0,0.5)之间)。
·绝对秘密对手不能确定p是否正在共享d。
·无可置疑对手不能确定p是否比任意其它提供者更可能共享文档d。
在上面的讨论中,d可用任意一组关键字q 220代替。这种情况下,目的是防止对手确定p是否正在共享包含q 220中的关键字的文档。
常规的倒排列表把查询映射成匹配文档的列表,而秘密保护索引210把查询映射成匹配提供者75、80的列表。在已知可能满足某一查询的提供者75、80的列表的情况下,直接查询这样的提供者75、80,并请求匹配的文档是搜索者40的责任。当收到查询并验证搜索者40时,提供者75、80返回根据搜索者40的访问权限过滤的文档的列表。
通过按照这种方式实现搜索,系统100把访问控制点从秘密保护索引210的主机转移到提供者75、80。提供者75、80现在能够自己管理并强制执行访问策略,而无须依赖于任何中央主机。虽然存在与需要单独联系提供者75、80相关的效率损失,关于公开共享内容的实验结果表明即使存在许多(>1500)提供者75、80,这种方法的性能实际上也是相当合理的。
构成秘密保护索引210的程序不仅应解决所得到的结构的正确性,而且应解决构成过程中,保密性破坏的可能性。在存在对手的情况下确保秘密至关重要,因为秘密保护索引210的构成过程涉及把和每个提供者75、80共享的内容相关的信息汇集在一起。
为了构成秘密保护索引210,提供者被分成大小为c的对等体组或“秘密组”,如图5的例子所示。图5中,许多提供者75、80被分成对等体组G1505,G2510,G3515和G4520。并不要求对等体组大小完全相同,不过大小应近似相同。
每个提供者75、80正好在一个对等体组中,并且均包括提供者专用搜索接口15。组G1505由诸如P1525,P2530和P3535之类提供者75、80构成。在一个组中,提供者P1525,P2530和P3535被排列成环形。提供者P1525,P2530和P3535执行随机化算法,以便构成只具有较小的错误概率的秘密保护索引210。通过调整参数,可使错误足够小,从而实际上不相关。该构成过程确保提供者对超出或许清白的违背有较强的适应力。
每个提供者75、80根据包含在它自己数据内的关键字,翻转“内容矢量”中的位。但是,内容矢量沿着其对等体组内的一连串成员被传递。从而,随机化算法作用于在组中的对等体之间传递的内容矢量。但是,对等体翻转的位的实际模式由该对等体自己的数据确定。提供者75、80确定他们希望哪些数据是可搜索的,随后把这些数据放置在他们自己的提供者服务器30、35上,提供者服务器30、35正在运行系统100。提供者75、80并不把他们的数据给予其他人,他们只是使所述数据存在于网络20上以供搜索。
存在两种例外,在这两种例外情况下,提供者P1525,P2530和P3535会因其秘密组内的对手而遭受比或许清白更严重的违背。就共享具有特定检索词的文档来说,刚好在主动对手之前的提供者P1525,P2530和P3535可被保证只是可能清白。具体地说,对手邻居能够以最多0.71的概率确定所述环形上,其在先者是否正在共享某一特定检索词。
对于提供者75、80来说的另一例外是当在所述环形上,其两个邻居串通一起对抗它的时候。例如,提供者P1525,P2530可串通一起对抗P3535。这种情况下,提供者P3535可被可查明地暴露成共享包含特定检索词的文档。通过使提供者P3535根据先前建立的信任关系,选择环形上它们邻居P1525和P2530,能够使这样的违背降至最小。
该算法要求每个提供者P1525,P2530和P3535通过位矢量V(称为其内容矢量)总结其共享内容内的检索词。图6中图解说明了提供者P1525的例证内容矢量V605。例如,内容矢量可以是如下形成的系统规定长度L的bloom filter。每个提供者P1525,P2530和P3535通过把每位设置成0,初始化其V605。随后,对于在其共享内容中出现的每个关键字检索词t,提供者P1525,P2530和P3535使用具有范围1,2,…,L的系统规定散列函数把Vs中的位置H(t)设置成1。在例证的内容矢量V605中,检索词610,“专利”被散列成由位3 615空间中的“1”代表的位3,615。
这样形成的内容矢量V605是在提供者P1525处的共享内容的总结。如果该位为0,那么确保P1525不共享包含检索词610的任何文档。如果该位为1,那么检索词610可能出现于P1525,也可能不出现于P1525,因为多个检索词可能被散列在相同的值,从而设置V605中相同的位。通过增大长度L和/或使用多个散列函数,能够降低发生这种冲突的概率。
图7的流程解说明了构成秘密保护索引210的方法700。通过把提供者75、80的空间分成大小c均大于2的拆散的秘密组,该构成过程开始于方框705。秘密组的大小正比于每个参与者享有的秘密程度。分隔方案可随机地把成员分配给各组。对于每个秘密组,在方框710,把提供者75、80排列成环形p1,p2,…,pc。关于该排序,按照通常的方式使用提供者p的术语继任者和前任者,另外要求p1被定义为pc的继任者(并且pc被定义为p1的前任者)。
通常,把组G的组内容矢量定义为矢量VG,其起因于对来自组G中的每个提供者P的一组所有内容矢量进行逻辑OR运算。所述构成的下一部分是产生组内容矢量的随机化算法。在循环r=i产生组内容矢量V的随机化算法的伪代码被总结如下<pre listing-type="program-listing">  INDEXCONSTRUCTION(r,Vs,VG′)  Pex=1/2r  Pin=1-Pex  for (i=1;i<L;i=i+1)  do   if(Vs[i]=1 and VG′[i]=0)   then SET VG′[i]=1 WITH PROB.Pin   if(Vs[i]=0 and VG′[i]=1)   then SET VG′[i]=0 WITH PROB.PinSEND VG′TO Successor(s)</pre>该构成涉及执行r次循环,其中沿着所述环形,把矢量VG′从一个提供者传递给另一提供者。在方框715,矢量VG′被传递给环形中的第一提供者,在方框720,i被设置成1。当收到该矢量时,每个提供者在方框725执行在产生组内容矢量的随机化算法中略述的位翻转操作。如果在方框730,i≤r(这里r是环绕所述环形可传递所述矢量的循环的总次数),那么在方框735,矢量VG′被传递给该提供者的继任者,在方框740,i被加l在环绕所述环形的r次循环之后,在判定方框730,矢量VG′被发送给指定的索引主机,例如秘密保护索引系统10的主机(方框745)。
在随机化算法中,矢量VG′由p1初始化成长度为L的矢量,同时以1/2的概率把每个位独立地设置成0或1。每个循环与概率Pin和Pex相关,从而Pin+Pex=1。Pex的值最初为1/2。在每个循环之后,Pex被减半,并恰当地设置Pin。
随机地翻转VG′中的位的过程被设计成使得最终结果以较高的概率趋向于组内容矢量。位翻转的随机化被用于防止提供者组中的恶意提供者能够肯定地确定其它提供者的内容矢量中的位的值。
在完成r次位翻转循环之后,来自每个提供者组的矢量VG′被发送给指定的主机,即秘密保护索引系统10的主机。该主机接收来自每个秘密组的这些矢量以及秘密组中所有提供者的列表。随后,它把这些矢量聚集成物化索引MI。MI把位位置i映射到属于其内容矢量具有设置为1的i的秘密组的提供者的列表。更正式地,MI(i)={p|p∈G∧VG′[i]=1,对于某一秘密组G}把MI用作把查询映射到提供者的秘密保护索引210的过程是直截了当的通过获得在q 22中规定的结合项Q,并利用系统规定的查寻(散列)函数H,查寻MI中每项的位位置1,…L,形成Mq。通过获得每个这种位的MI(i)的交集,形成提供者列表。更正式地,Mq=∩t∈QMI(H(t))。从而,MI用作秘密保护索引210的实现。
图8图解说明了方法700对某一组,例如G1505内的每个提供者P1525,P2530和P3535的单个bloom filter分组的最终效果。本质上,方法700对单个内容矢量V1605,V2805,V3810应用“或”函数,产生组矢量VG1815。例如,位820在每个内容矢量V1605,V2805,V3810的b0位置中。为了获得VG1815中的b0位,“0”,“1”和“0”被一起进行“或”运算,如位820中所示,其结果是“1”。对于VG1815中的所有位来说同样如此。虽然在本例中使用“或”函数,不过也可使用产生相同结果的任意其它适当的逻辑函数。
当搜索者40关于诸如“专利”610之类关键字搜索秘密保护索引210时,秘密保护索引210发现它已被散列到b3位830。由于具有带检索词“专利”的文档,秘密保护索引系统10返回组G1 505中的提供者P1525,P2530和P3535的列表。搜索者40随后知道搜索位于提供者P1525,P2530和P3535的储存库。但是,提供者P3535在其内容矢量810中并不具有关键字“专利”610;即,b3位835为0。只有当以恰当的身份授权搜索位于P3535的储存库时,搜索者40才发现这种情况。从而,对手不能确定地认为提供者P1525,P2530和P3535中的哪个包含关键字“专利”610。
要明白已描述的本发明的具体实施例只是对本发明原理的某些应用的举例说明。在不脱离本发明的精神和范围的情况下,可对这里描述的本发明的有选择地共享分布式访问受控文档的统一搜索系统和方法做出各种修改。此外,虽然只是出于举例说明的目的,关于WWW说明了本发明,不过显然本发明也适用于在局域网,广域网,或者将共享访问受控数据的任意类型网络上共享的数据。
权利要求
1.一种有选择地共享多个分布式访问受控文档的方法,包括多个内容提供者协作产生秘密保护索引结构;和秘密保护索引结构把代表要共享的内容的多个关键字映射到多个内容提供者。
2.按照权利要求1所述的方法,其中内容提供者包括接收查询并验证搜索者的提供者专用搜索接口。
3.按照权利要求2所述的方法,还包括搜索者向秘密保护索引系统提交包含一个或多个关键字的查询。
4.按照权利要求3所述的方法,还包括返回呈现要共享的内容中的一个或多个关键字的内容提供者的列表。
5.按照权利要求4所述的方法,其中内容提供者的列表包括至少50%的虚假肯定的内容提供者。
6.按照权利要求4所述的方法,还包括搜索者向内容提供者列表上的指定内容提供者提交以搜索者的身份注释的查询。
7.按照权利要求6所述的方法,还包括指定的内容提供者验证搜索者的身份,以便允许访问要共享的内容。
8.按照权利要求7所述的方法,还包括指定的内容提供者向搜索者返回和一个或多个关键字匹配的一个或多个文档。
9.按照权利要求1所述的方法,还包括把多个内容提供者分成多个秘密组。
10.按照权利要求1所述的方法,其中至少一个秘密组包括至少三个内容。
11.按照权利要求1所述的方法,其中每个内容提供者被分入一个秘密组。
12.按照权利要求10所述的方法,还包括执行随机化索引构成算法,以便产生至少一个秘密组中的内容提供者的位矢量。
13.按照权利要求12所述的方法,还包括按照环形,排列秘密组中的内容提供者。
14.按照权利要求13所述的方法,还包括产生多个内容提供者的位矢量,一个或多个关键字代表要共享的内容。
15.按照权利要求14所述的方法,还包括把位矢量组合成组矢量。
16.按照权利要求15所述的方法,还包括把组矢量保存在秘密保护索引中。
17.按照权利要求13所述的方法,其中产生内容提供者的位矢量包括产生随机化位矢量。
18.按照权利要求17所述的方法,还包括把随机化位矢量传递给秘密组中环形中的第一提供者。
19.按照权利要求12所述的方法,其中内容提供者执行随机化索引构成算法,以产生提供者关键字位矢量。
20.按照权利要求18所述的方法,还包括第一提供者把提供者关键字位矢量传递给秘密组中环形中的下一提供者。
21.按照权利要求19所述的方法,其中环形中的内容提供者顺序对提供者关键字位矢量执行随机化索引构成算法。
22.按照权利要求21所述的方法,还包括环形中的内容提供者传递提供者关键字位矢量,并对关键字位矢量执行随机化构成算法,直到围绕所述环形,提供者关键字位矢量已完成r次循环为止。
23.按照权利要求22所述的方法,还包括对提供者关键字位矢量进行或运算,得到组关键字位矢量。
24.按照权利要求23所述的方法,其中对提供者关键字位矢量进行或运算,得到组关键字位矢量,会在响应查询返回的结果中引入虚假肯定。
25.一种具有多个指令代码的计算机程序产品,所述指令代码用于有选择地共享多个分布式访问受控文档,包括包含协作产生秘密保护索引结构的第一组指令代码的多个内容提供者;和包含把代表要共享的内容的多个关键字映射到多个内容提供者的第二组指令代码的秘密保护索引结构。
26.按照权利要求25所述的计算机程序产品,其中内容提供者包括接收查询并验证搜索者的第三组指令代码。
27.按照权利要求26所述的计算机程序产品,还包括搜索者向秘密保护索引系统提交包含一个或多个关键字的查询。
28.按照权利要求27所述的计算机程序产品,还包括返回呈现要共享的内容中的一个或多个关键字的内容提供者的列表。
29.按照权利要求25所述的计算机程序产品,还包括把多个内容提供者分成多个秘密组的第四组指令代码。
30.按照权利要求29所述的计算机程序产品,还包括执行随机化索引构成算法,以便产生多个秘密组中的内容提供者的位矢量的第五组指令代码。
31.一种有选择地共享多个分布式访问受控文档的系统,包括协作产生秘密保护索引结构的多个内容提供者;和秘密保护索引结构把代表要共享的内容的多个关键字映射到多个内容提供者。
32.按照权利要求31所述的系统,其中内容提供者包括接收查询,并验证搜索者的提供者专用搜索接口。
33.按照权利要求32所述的系统,其中搜索者向秘密保护索引系统提交包含一个或多个关键字的查询。
34.按照权利要求33所述的系统,其中当收到查询时,至少一些内容提供者返回过滤文档的列表。
35.按照权利要求31所述的系统,其中多个内容提供者被分成多个秘密组。
全文摘要
秘密保护索引系统解决关于分布式访问受控内容,提供秘密保护搜索的问题。根据在搜索中使用的倒排索引,能够容易地重构索引文档。连同分布式访问控制执行搜索协议一起,秘密保护索引系统建立集中式秘密保护索引。秘密保护索引利用随机化算法构成秘密保护索引。秘密保护索引对保密性破坏的适应性极强。秘密保护索引系统允许内容提供者保持对定义访问组和确保其遵从性的完全控制,另外允许系统实现者保留可调的旋钮调节器,以便为其特定的域平衡保密性和效率。
文档编号G06F7/00GK1648896SQ200410068688
公开日2005年8月3日 申请日期2004年9月2日 优先权日2003年9月8日
发明者罗伯托·J·拜亚多, 拉克史·阿格拉瓦尔, 巴瓦·玛彦克 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1