隐私增强的个人搜索索引的制作方法

文档序号:13985189
隐私增强的个人搜索索引的制作方法

云存储系统是文件托管服务,其允许用户将文件上传和同步到一个或多个存储设备,以及随后从web浏览器或用户的本地设备访问文件。在云存储系统内执行对文件的搜索涉及若干隐私问题,因为云存储系统服务提供商可访问作为明文的文档、文档索引和元数据。虽然各种技术和方式已经发展到解决这些隐私问题,但是这些解决方案依赖于在明文中向云存储系统提供文档。作为结果,如果云存储系统被破坏,则所有使用该服务来存储数据的用户都有可能面临风险。

本文所公开的各方面是针对这些以及其他一般考虑而做出的。而且,虽然可以讨论相对具体的问题,但是应当明白,这些示例不应该被限制为解决在

背景技术:
或本公开内容中的其他地方标识的具体问题。



技术实现要素:

提供本发明内容是为了以简化的形式介绍下面在具体实施方式部分中被进一步描述的对概念的选择。本发明内容并不旨在标识所要求保护的主题的关键特征或基本特征,也并不旨在被用作确定所要求保护的主题的范围的辅助手段。

本公开内容的示例描述了用于增强个人搜索索引的隐私的系统和方法。在一些方面中,在与第二设备(例如,服务器设备)通信的第一设备(例如,客户端设备)上创建个人明文文档。第二设备可以是分布式网络的部分(例如,利用基于云的服务提供商)。个人明文文档可以被用来在第一设备上生成加密的文档摘要和加密的文档。加密的文档摘要和加密的文档然后可以被传输给第二设备。第二设备可以对文档摘要解密,基于解密的文档摘要来构建个人搜索索引,以及将加密的文档存储在至少一个数据存储库中。第一设备随后可以接收明文搜索查询。该搜索查询可以被用来生成被传输给第二设备的不透明搜索查询摘要。第二设备可以使用该不透明的搜索查询摘要来搜索个人搜索索引,以便提供不透明搜索查询结果。不透明搜索查询结果可以被用来从数据存储库取回加密的文档。不透明搜索查询结果和取回的加密的文档然后可以被传输给客户端设备。客户端设备可以使用不透明搜索查询结果和取回的加密的文档来生成明文搜索结果。

提供本发明内容是为了以简化的形式介绍下面在具体实施方式中被进一步描述的对概念的选择。本发明内容部分并不旨在标识所要求保护的主题的关键特征或基本特征,也并不旨在用于限制所要求保护的主题的范围。示例的其它方面、特征和/或优点将部分地在后续的描述中被阐述,并且将部分地从描述而显而易见,或者可以通过本公开内容的实践而被了解。

附图说明

参照以下附图来描述非限制性和非穷尽性的示例。

图1示出了如本文所述的针对用于云服务的隐私增强的个人搜索索引的示例系统的概览。

图2A和图2B分别是如本文所述的客户端计算设备和服务器的示图。

图3示出了如本文所述的处理文档以用于与用于云服务的隐私增强的个人搜索索引一起使用的示例方法。

图4A示出了如本文所述的创建加密的不透明文档摘要的示例方法。

图4B示出了如本文所述的创建加密的文档和文档片段的示例方法。

图5示出了如本文所述的构建用于分布式网络服务的隐私增强的个人搜索索引的示例方法。

图6示出了如本文所述的处理针对加密的文档的查询以用于与用于分布式网络服务的隐私增强的个人搜索索引一起使用的示例方法。

图7示出了如本文所述的使用用于分布式网络服务的隐私增强的个人搜索索引来取回加密的文档的示例方法。

图8示出了如本文所述的使用用于分布式网络服务的隐私增强的个人搜索索引来生成明文搜索结果的示例方法。

图9是示出了可以用来实践本公开内容的各方面的计算设备的示例的框图。

图10A和图10B是可以用来实践本公开内容的各方面的移动计算设备的简化框图。

图11是其中可以实践本公开内容的各方面的分布式计算系统的简化框图。

具体实施方式

下面参照附图来更全面地描述本公开内容的各个方面,附图构成了本公开内容的部分,并且示出了具体的示例性方面。然而,本公开内容的不同方面可以按照许多不同的形式被实现,并且不应被解释为限于本文所阐述的方面;相反,提供这些方面以使得本公开内容将是彻底和完整的,并将向本领域技术人员充分地传达各方面的范围。各方面可以被实践为方法、系统或设备。因此,各方面可以采取硬件实现方式、完全软件实现方式或者结合软件和硬件方面的实现方式的形式。以下的详细描述因此不应被以限制的意义被理解。

本公开内容提供了用于增强用于诸如诸如云服务之类的分布式网络服务的个人搜索索引的隐私的系统和方法。本文所使用的个人搜索可以是指对仅由创建和/或存储数据的用户或一小组特权用户可访问的非公开数据(例如,文档、音频文件、视频文件等)的搜索。在各方面中,可以在包括可信的客户端环境和部分可信的环境的分布式计算环境中实践这些方法。如本文所使用的可信的客户端环境可以是指第一处理设备(诸如客户端设备)上的安全区域,其提供代码和数据的受保护的加载和执行。如本文所使用的部分信任的环境可以是指第二设备(例如,服务器设备)上的不安全区域,其不允许加载和执行代码和数据,或者在允许加载和执行代码和数据之前施加安全约束。

在一些示例中,可以在客户端设备上创建明文数据(例如,明文文档)。如本文所使用的明文文档可以是指以未加密的格式被传输和/或存储的人类可读数据。客户端设备可以使用明文文档来生成文档摘要,将文档摘要转换为不透明文档摘要,对不透明文档摘要加密,生成文档片段,以及对文档和文档片段加密。如这里所使用的文档摘要可以是指描述文档的元数据和来自文档的术语的汇编。在一些示例中,文档摘要的术语和元数据可以被令牌化(tokenzied)。如本文所使用的不透明文档可以是指如下明文或其他人类可读文档,它们的数据已经使用数据转换技术被转换为人类不可读格式。如这里所使用的文档片段可以包括对文档、元数据和/或来自该文档的一个或多个句子的简要概要。加密的不透明文档摘要以及加密的文档和文档片段然后可以被传输给服务器设备。

在示例中,第二设备(例如,服务器设备)可以对加密的不透明文档摘要解密并且使用解密的不透明文档摘要来构建个人搜索索引。如这里所使用的个人搜索索引可以在索引中收集、解析和存储文档摘要数据以促进快速和准确的信息取回。服务器设备还可以使用存储管理实用工具来将加密的文档和文档片段存储在数据存储库中。如这里所使用的存储管理实用工具可以是指被用来管理存储设备和存储网络解决方案的设备、过程和软件。

在一些方面中,客户端设备可以随后接收明文搜索查询。客户端设备可以使用该明文搜索查询来生成查询摘要并且将该查询摘要转换为不透明查询摘要。如本文所使用的查询摘要可以是指描述搜索查询的元数据和来自搜索查询的术语的汇编。不透明查询摘要然后可以被传输给服务器设备。在接收到不透明查询摘要之后,服务器设备可以使用不透明查询摘要来搜索个人搜索索引,以便生成排名的查询结果。如本文所使用的排名的查询结果可以是指根据诸如相关性、文档年龄、文档大小、用户简档信息等若干标准中的至少一个标准被排序和/或区分优先级的一组不透明结果。排名的查询结果可以被用来从数据存储库中取回加密的文档和/或文档片段。加密的文档和/或文档片段然后可以被传输给客户端设备。客户端设备可以对接收到的加密的文档和/或文档片段解密,并将排名的查询结果与文档和/或文档片段组合。客户端设备可以对组合后的排名的查询结果以及文档和/或文档片段执行基于内容的排名,以生成排名的明文搜索结果。

因此,本公开内容的各方面提供了多种益处,其包括但不限于:增强个人文档安全性,消除向云服务传送明文用户信息、查询和搜索结果;消除针对使用云服务存储的所有数据驻留在单个信任边界中的需要;使用户密钥到云服务的传送最小化;减少云服务所要求的安全措施;优雅地改进到较老的搜索服务的隐私增强的个人索引,以及其他示例。

图1示出了如本文所述的针对用于云服务的隐私增强的个人搜索索引的示例系统的概览。示例性系统100可以是相互依赖的组件的组合,这些组件相互作用以形成用于改进来自隐式反馈的推荐的集成整体。系统的组件可以是硬件组件或者在系统的硬件组件上被实现的软件和/或由系统的硬件组件执行的软件。在示例中,系统100可以包括硬件组件(例如,被用来执行/运行操作系统(OS))和在硬件上运行的软件组件(例如,应用、应用编程接口、模块、虚拟机、运行时间库等)中的任何组件。在一个示例中,示例性系统100可以提供用于软件组件运行的环境,遵守针对操作而被设置的约束,以及利用系统100的资源或设施,其中组件可以是在一个或多个处理设备上运行的软件(例如,应用、程序、模块等)。例如,软件(例如,应用、操作指令、模块等)可以在诸如计算机、移动设备(例如,智能电话/电话、平板计算机)和/或任何其他电子设备之类的处理设备上被运行。作为处理设备操作环境的示例,参考在图9至图11中被描绘的示例性操作环境。在其他示例中,本文公开的系统的组件可以遍布多个设备。例如,可以在客户端设备(例如,处理设备)上录入输入,并且可以从网络中的诸如一个或多个服务器设备之类的其他设备处理或访问信息。

作为一个示例,系统100包括客户端设备102A、客户端设备102B、客户端设备102C、分布式网络104,以及包括诸如服务器设备106A、服务器设备106B和服务器设备106C之类的一个或多个服务器的分布式网络环境。本领域技术人员将会认识到,诸如系统100之类的系统的规模可以变化,并且可以包括比图1中描述的组件更多或更少的组件。在一些示例中,系统100的组件之间的对接可以远程地发生,例如在系统100的组件可以遍布分布式网络的一个或多个设备的情况下。

客户端计算设备102A例如可以是可信环境,其被配置为生成和/或接收一个或多个明文个人文档,并且使用这些明文个人文档来生成加密的不透明文档摘要和加密的个人文档。客户端计算设备102A然后可以经由网络104将加密的不透明文档摘要和加密的个人文档传输给服务器106A、106B和106C中的一个或多个服务器。服务器106A例如可以被配置为接收加密的不透明文档摘要和加密的个人文档,对不透明文档摘要解密,使用解密的不透明文档摘要来生成个人搜索索引,以及将加密的个人文档存储在个人文档数据存储库中。服务器106A可以是不可信环境或部分可信环境,并且可以提供由云服务提供商托管的服务。

客户端计算设备102A可以被进一步配置为接收明文搜索查询请求,生成不透明查询摘要,以及经由网络104将该不透明查询摘要传送给服务器106A、106B和106C中的一个或多个服务器。服务器106A例如可以被进一步配置为接收不透明查询摘要,使用不透明查询摘要来搜索个人搜索索引,生成排名的查询结果以及使用排名的查询结果来取回加密的文档。服务器106A然后可以经由网络104将排名的查询结果和取回的加密的文档传输给客户端计算设备102A。客户端计算设备102A可以被进一步配置为接收排名的查询结果和加密的文档,对加密的文档解密,生成排名的明文搜索结果,以及在客户端计算设备102A的显示区域上显示排名的明文搜索结果。

图2A和图2B分别是如本文所述的客户端计算设备200和服务器计算设备220的示例性示图。客户端计算设备200可以包括文档生成模块202、加密模块204、查询接收模块206、查询处理模块208和结果处理模块210,其各自具有一个或多个附加组件。文档生成模块202可以被配置为生成和/或接收一个或多个个人文档。例如,文档生成模块202可以包括字处理应用或与其对接。字处理应用可以被用来生成基于明文文本的文档。加密模块204可以被配置为接收一个或多个个人文档并对其加密。在一些方面中,加密模块204沿着一个或多个处理路径执行操作。例如,加密模块204可以沿着文档理解流水线路径和文档加密路径来执行操作。

在示例中,文档理解流水线路径可以包括使用接收到的个人文档来生成被包括在个人文档内的术语和描述个人文档的元数据的明文文档摘要。私有转换密钥(PTK)可以被应用于明文文档摘要以生成不透明的文档摘要。如本文所使用的PTK可以是指使用数据转换技术以将一组数据值从源的第一数据格式转换为第二数据格式的密钥或算法。在一些方面中,数据转换技术保留个人文档的结构(例如,等距转换),从而使得在不透明文档摘要内保留近似术语匹配、相对术语频率和某些距离度量。私有索引密钥(PIK)可以被应用于不透明文档摘要以生成加密的不透明文档摘要。如本文所使用的PIK可以是指由指定的有权机构(authority)作为用来保护个人文档的内容的加密密钥而提供的值。可以使用任何已知的非对称密码(例如,公共密钥加密)或对称密码(例如,基于密码的加密)的方法来生成PIK。加密的不透明文档摘要和PIK然后可以被处理以用于导出到服务器设备220,由此结束文档理解流水线路径。

在示例中,文档加密路径可以包括使用明文个人文档来生成文档片段。私有文档密钥(PDK)可以被应用于明文个人文档和/或文档片段,以生成包括加密的个人文档和/或加密的文档片段的加密的个人文档。如本文所使用的PDK可以是指由指定的有权机构作为用来保护个人文档的内容的加密密钥而提供的值。可以使用任何已知的非对称密码(例如,公共密钥加密)或对称密码(例如,基于密码的加密)的方法来生成PDK。在至少一个示例中,PDK将不同于PTK和PIK。加密的个人文档然后可以被处理以用于导出到服务器设备220,由此结束文档加密路径。

查询接收模块206可以被配置为接收或生成针对一个或多个个人文档的明文查询。例如,查询接收模块206可以包括用户界面或与用户界面对接。该用户界面提供用于提交查询的输入区域。查询处理模块208可以被配置为使用明文查询来生成元数据和术语的明文查询摘要。PTK可以被应用于明文查询摘要以生成不透明查询摘要。在一些方面中,被应用于明文查询摘要的PTK可以是被应用于明文文档摘要的相同PTK。不透明查询摘要然后可以被处理以用于导出到服务器设备220。

结果处理模块210可以被配置为接收和处理不透明排名的查询结果和加密的个人文档。例如,结果处理模块210可以将PTK应用于不透明排名的查询结果以产生明文排名的查询结果。在一些方面中,被应用于不透明排名的查询结果的PTK可以是被应用于明文文档摘要和明文查询摘要的相同PTK。结果处理模块210还可以将PDK应用于加密的个人文档以产生明文文档和/或明文文档片段。在一些方面中,被应用于加密的个人文档的PDK可以是被应用于明文个人文档和/或文档片段的相同的PDK。明文排名的查询结果和明文个人文档和/或文档片段然后可以被组合成排名的明文搜索结果。在一个示例中,可以根据诸如内容、相关性、大小或日期之类的一个或多个标准来对排名的明文搜索结果排名。

服务器设备220可以包括摄取模块222、索引搜索模块224和文档取回模块206,它们各自具有一个或多个附加组件。摄取模块222可以被配置为接收和处理来自加密模块204的信息,诸如加密的不透明文档摘要、PIK和加密的个人文档。在一些方面中,摄取模块222沿着一个或多个处理路径来执行操作。例如,摄取模块222可以沿着文档编索引路径和文档存储路径来执行操作。

在示例中,文档编索引路径可以包括将接收到的PIK应用于接收到的加密的不透明文档摘要,以对加密的不透明文档摘要解密。在一些方面中,作为结果的不透明文档摘要可以与先前已经从客户端设备200被接收到的其他不透明文档摘要聚合,以形成不透明文档摘要集合。可以对不透明文档摘要或不透明文档摘要集合执行索引生成操作,以构建个人搜索索引。个人搜索索引可以包括来自句子的不透明字索引、字母数字字符的序列,或不透明文档摘要内的标记。

文档存储路径可以包括摄取模块222与存储管理实用工具交互。例如,摄取模块222可以使用在服务器设备220上运行的存储管理服务来将加密的个人文档存储在数据存储库中。在一些方面中,存储管理服务和数据存储库可以位于服务器设备220上。在其它方面中,存储管理服务和数据存储库中的一种或多种可以位于服务器设备220可访问的分离的服务器上。

索引搜索模块224可以被配置为接收和处理来自查询处理模块208的信息,诸如不透明查询摘要。例如,索引搜索模块224可以使用接收到的不透明查询摘要来搜索包括不透明字索引的个人搜索索引。对个人搜索索引的搜索可以产生被找到的首选搜索结果的排名的查询结果。在一些方面中,排名的查询结果可以包括不透明搜索结果和不透明文档片段的有序列表。在这样的方面中,不透明搜索结果和不透明文档片段然后可以被处理以用于导出到客户端设备220。

在其他方面中,排名的查询结果可以包括不透明搜索结果的有序列表,但是可以不包括不透明文档片段。在这样的方面中,文档取回模块226可以被配置为从数据存储库取回加密的个人文档。例如,不透明搜索结果可以被提供给存储管理实用工具。存储管理实用工具可以在数据存储库中搜索具有与不透明搜索结果中的数据匹配的数据(例如,字符串、字、字符、令牌等)的加密的文档和/或文档片段。从数据存储库取回的加密的文档和/或文档片段然后可以被处理以用于导出到客户端设备220。

图3至图8示出了与如本文所述的用于云服务的隐私增强的个人搜索索引相关联的各种处理流程。在各方面中,方法300-800可以由诸如图1的系统100之类的示例性系统执行。在示例中,方法300-800可以在包括被配置为存储和执行操作、程序或指令的至少一个处理器的设备上被执行。然而,方法300-800不限于这样的示例。在其他示例中,方法300-800可以在用于提供推荐的应用或服务上被执行。在至少一个示例中,可以由分布式网络的一个或多个组件(例如,web服务/分布式网络服务(例如,云服务))来执行方法300-800(例如,计算机实现的操作)以利用索引搜索和生成和加密的文档处理。

图3示出了如本文所述的处理文档以用于与用于云服务的隐私增强的个人搜索索引一起使用的示例方法。示例性方法300开始于操作302,其中可以生成文档。在一些方面中,文档是使用客户端设备上的应用而被创建或接收的明文个人文档。在一个示例中,客户端设备可以表示可信环境,从而使得文档仅可以对文档的作者或一组特权用户可访问。然而,本领域技术人员将认识到,本文描述的操作可适用于可信环境、部分可信环境和不可信环境。客户端设备可以在接收明文个人文档之前或之后生成一个或多个隐私密钥(例如,PTK、PIK和PDK)。客户端设备可以备选地从可信第三方证书有权机构接收一个或多个隐私密钥。

在操作304中,可以创建不透明文档摘要。在示例中,明文个人文档被提供给执行文档理解操作的过程。在一些方面中,该过程遵循诸如文档理解路径之类的路径。如本文所使用的文档理解可以是指用来提取人类可理解的信息并将该信息编成机器可读形式的、对文档的的语义分析。文档理解操作可以包括使用明文个人文档来生成元数据和术语的明文文档摘要,将PTK应用于明文文档摘要以生成不透明文档摘要,以及将PIK应用于不透明文档摘要以生成加密的不透明文档摘要。

在操作306中,可以创建加密的个人文档。在示例中,明文个人文档被提供给执行文档加密操作的过程。文档加密操作可以包括从明文个人文档生成明文文档片段和将PDK应用于明文个人文档和/或明文文档片段以生成加密的个人文档。操作304和306可以被顺序地或并行地执行。

在操作308中,加密的不透明文档摘要、用来对不透明文档摘要加密的PIK以及加密的个人文档被从客户端设备的可信环境传输给服务器设备的部分可信环境。在各方面中,PTK和PDK保持在客户端设备内。另外,没有明文(例如,文档、摘要、查询等)被传输给服务器设备。

图4A示出了如本文所述的创建加密的不透明文档摘要的示例方法400。示例性方法400开始于操作402,其中可以使用明文个人文档来生成明文文档摘要。在一些方面中,生成明文文档摘要包括将明文个人文档解析成多个明文索引术语和相关联的明文元数据。解析操作可以由位于生成或接收明文个人文档的客户端设备上的软件执行,或者由位于另一可信环境内的软件执行。明文索引术语和元数据可以被组合和/或组织成摘要文件。

在操作404中,可以从明文个人文档生成不透明文档摘要。在示例中,PTK可以由客户端设备生成或接收。PTK可操作以对一组数据值执行数据转换操作。数据转换操作可以包括将数据元素或值从源数据格式映射到目的地数据格式,记录可能发生的任何转换,生成执行记录的转换的代码以及执行转换代码。在一个特定示例中,执行转换代码可以包括创建表示来自源数据格式的数据元素的标记。在一些方面中,PTK被应用于的任何文档摘要将共享公共数据转换,从而使得针对文件(例如,文档摘要、查询摘要)保留基本术语频率—逆文档频率(TF-IDF)排名。如本文所使用的TF-IDF可以是指数值统计或加权因子,其旨在反映字在文档或文档集合中的重要性。可以将PTK应用于明文个人文档以生成不透明文档摘要。在各方面中,不可以从客户端设备传输PTK。

在操作406中,可以从不透明文档摘要生成加密的不透明文档摘要。在示例中,可以由诸如客户端设备之类的处理设备来生成或接收PIK。PIK可以可操作以对一个或多个文档执行加密操作。加密操作通常包括将普通信息(例如,明文)转换成人类不可读的文本(例如,密文)。用于对文件和文档加密的方法对于本领域技术人员来说是公知的,并且将不在本公开内容中被详细描述。可以将PIK应用于不透明文档摘要以生成加密的不透明文档摘要。在一些方面中,可以将PIK与加密的不透明文档摘要一起传输给一个或多个不可信或部分可信的服务器设备。对不透明文档摘要加密可以防止基于对不透明术语和元数据的批量访问的统计攻击。

图4B示出了如本文所述的创建加密的文档和文档片段的示例方法420。示例性方法420开始于操作422,其中可以使用明文个人文档来生成明文文档片段。在示例中,文档片段可以是通过分析明文个人文档并提取各种的部分、字符串和/或元数据而被创建的文件。在一个特定方面中,文档片段可以包括文档标题、文档的简要描述、文档作者的名字、文档的前三个句子、文档类型、文档的预览图像等。

在操作424中,可以生成加密的个人文档。在一些示例中,PDK可以由客户端设备生成或接收。PDK可以可操作以对一个或多个文档执行加密操作。加密操作通常包括将普通信息转换成人类不可读的文本(例如,密文)。可以将PDK应用于明文的个人文档和/或文档片段以生成加密的个人文档。在各方面中,不可以从客户端设备传输PDK。在示例中,虽然PDK和PIK可以共享相似性(例如,基于加密的密钥)并且PDK和PTK可以共享相似性(例如,未从客户端设备传输密钥),但是PTK、PIK和PDK是分离的和/或不同的密钥。

图5示出了如本文所述的构建用于分布式网络服务的隐私增强的个人搜索索引的示例方法500。示例性方法500开始于操作502,其中可以由云服务系统的服务器设备的组件接收加密的文档、加密的不透明文档摘要和PIK。服务器设备可以表示不可信环境或部分环境,从而使得文档对服务器设备或服务器设备的用户不可访问。加密的文档可以包括加密的个人文档和加密的文档片段。

在操作504中,可以创建个人搜索索引。在示例中,可以将加密的不透明文档摘要和被用来对加密的不透明文档摘要加密的PIK提供给促进文档编索引的过程。如本文所使用的文档编索引可以是指按照术语或符号对文档分类以便描述和/或总结文档的主题。该过程可以包括使用PIK对加密的不透明文档摘要解密,以及可选地将解密的不透明文档摘要与其他不透明文档摘要聚合以生成不透明文档摘要集合。在一些方面中,可能先前已经从客户端设备接收到其他不透明文档摘要。例如,其他不透明文档摘要可以与客户端设备上的特定用户或用户账户相关联。在其它方面中,可能先前已经从与特定用户、用户账户或组账户相关联的各种客户端设备接收到其他不透明文档摘要。该过程还可以包括对不透明文档摘要集合编索引以创建不透明术语和/或符号。不透明术语和/或符号然后可以被用来构建个人搜索索引。在一些方面中,个人搜索索引可以仅包括与特定客户端设备相关联的信息或与特定用户账户相关联的信息。操作504前进到结束操作508。

在操作506,可以存储接收到的加密的文档。在示例中,服务器设备可以与存储管理实用工具通信。存储管理实用工具可以促进将加密的文档存储在一个或多个数据存储库中。在各方面中,存储管理实用工具可以位于服务器设备上,位于云服务系统的另一组件上,或者位于云服务系统可访问的计算设备上。数据存储库可以与存储管理实用工具位于同一位置,与存储管理实用工具分离地被定位,或者被分布在各种服务器设备之中。在至少一个示例中,数据存储库可以是仅对文档作者、一组特权观看者或者服务器设备的一组特权用户可访问的个人文档存储空间。操作506前进到到结束操作508。

图6示出了如本文所述的处理针对加密的文档的查询以用于与用于分布式网络服务的隐私增强的个人搜索索引一起使用的示例方法600。示例性方法600开始于操作602,其中客户端设备可以接收或生成针对由服务器设备上的云服务存储的文档的搜索查询。在各方面中,可以在明文或纯文本中接收或生成查询。在一个特定方面中,在与被用来将所搜索的文档传输给服务器设备的客户端设备不同的客户端设备上生成查询。

在操作604中,可以使用明文查询来生成明文查询摘要。在各方面中,可以分析和解析明文查询以提取明文查询术语和/或元数据。分析和解析操作可以由位于客户端设备上的软件执行或者由位于另一可信环境内的软件执行。明文查询术语和元数据可以被组合和/或组织成摘要文件,诸如明文查询摘要文件。

在操作606中,可以生成不透明查询摘要。在示例中,PTK可以由客户端设备来生成或接收。PTK可以可操作以对一组数据值执行数据转换操作,如上面关于图4所讨论的。可以将PTK应用于明文查询文档以生成不透明查询摘要。在一些方面中,被应用于明文查询摘要的PTK可以是被应用于一个或多个所搜索的文档的明文文档摘要的相同PTK。

在操作608中,将加密的不透明查询摘要从客户端设备的可信环境传输给服务器设备的部分可信或不可信的环境。在各方面中,被用来对不透明查询摘要加密的PTK可以保持在客户端设备内。在这样的方面中,来自客户端设备的明文信息可以不被传输给或暴露给被查询的服务器设备。

图7示出了如本文所述的用于使用用于分布式网络服务的隐私增强的个人搜索索引来取回加密的文档的示例方法700。示例性方法700开始于操作702,其中可以由分布式网络系统(例如,云服务系统)的服务器设备的组件接收不透明查询摘要。服务器设备可以表示不可信的环境或部分环境,从而使得不透明查询摘要可以不对服务器设备或服务器设备的用户可访问。

在操作704中,可以生成不透明查询结果。在示例中,可以分析不透明查询摘要的内容并将其用作用来搜索个人搜索索引的输入。个人搜索索引可以包括来自先前接收到的不透明文档摘要的不透明数据。在一些方面中,个人搜索索引还可以包括来自一个或多个加密的个人文档的加密的文档片段。对个人搜索索引的搜索可以产生不透明查询结果,其可以根据诸如相关性、文档年龄、文档大小、用户简档信息等标准被排名。在各方面中,不透明查询结果可以包括不透明文档名称和/或标识符。在一个方面中,不透明查询结果可以备选地或者附加地包括加密的文档片段。在可以从查询工作流程移除文档存储的这样的方面中,流程前进到操作708。

在可选操作706中,可以搜索数据存储库以寻找加密的个人文档。在示例中,不透明查询结果可以被提供给存储管理实用工具。存储管理实用工具可以分析不透明查询结果以便在数据存储库中搜索具有与不透明查询结果中的数据匹配的数据(例如,字符串、字、字符、令牌等)的加密的个人文档和/或文档片段。在数据存储库中找到的文档可以被处理用于导出到客户端设备。

在操作708中,可以将不透明查询结果、加密的个人文档和加密的文档片段或它们的某种组合从服务器设备的部分可信或不可信的环境传输给客户端设备的可信环境。

图8示出了如本文所述的使用用于分布式网络服务的隐私增强的个人搜索索引来生成明文搜索结果的示例方法800。示例性方法800开始于操作802,其中可以由客户端设备的组件接收查询结果信息。查询结果信息可以包括不透明查询结果、加密的个人文档和加密的文档片段。

在操作804中,可以转换不透明查询结果。在示例中,可以使用对客户端设备可访问的PTK来将不透明查询结果转换为明文查询结果。该PTK可以是与如在图4A中描述的、被应用于明文文档摘要和明文查询摘要的相同PTK。操作802和804可以被顺序地或并行地执行。

在操作806中,加密的文档可以被解密。在示例中,可以使用对客户端设备可访问的PDK来对加密的个人文档和/或加密的文档片段解密。在一些方面中,被应用来对加密的个人文档解密的PDK可以是与如在图4B中描述的、被应用于明文个人文档和/或文档片段的相同PDK。

在可选操作808中,个人文档被排名。在示例中,排名过程可以与客户端设备相关联。排名过程可以将明文查询结果与明文个人文档和/或明文文档片段一起应用。在一些方面中,可以根据若干标准(例如,文档内容、描述、年龄、大小、稀有度)对明文个人文档排名,从而使得最相关的文档可以位于结果列表上较高的位置,或者可以按照其他方式与不太相关的文件在图形上被不同地描述。

在操作810中,可以生成排名的明文搜索结果。在一些示例中,在操作808中被描述的排名过程可以产生包括排名的查询结果的文件。然后可以将该文件与该文件中被引用的相应文档或文档片段匹配以创建排名的明文搜索结果。在其他示例中,在未执行排名操作808时,可以将明文查询结果应用于明文个人文档和/或明文文档片段,从而使得生成明文搜索结果。不可以按特定顺序对明文搜索结果排名。在各方面中,明文搜索结果可以包括明文文档和/或文档片段(或到其的链接)。

图9至图11和相关联的描述提供了对其中可以实践本发明的示例的各种操作环境的讨论。然而,关于图9至图11而被示出和讨论的设备和系统是用于示例和说明的目的,而不是对可以被用于实践本文描述的本发明的示例的大量计算设备配置的限制。

图9是框图,其示出了计算设备902的物理组件,例如可以用来实践本公开内容的示例的系统的组件。下面描述的计算设备组件可以适用于上面描述的计算设备。在基本配置中,计算设备902可以包括至少一个处理单元904和系统存储器906。取决于计算设备的配置和类型,系统存储器906可以包括但不限于易失性存储器(例如,随机存取存储器)、非易失性存储器(例如,只读存储器)、闪存或这样的存储器的任何组合。系统存储器906可以包括操作系统907和适合于运行诸如应用928、IO管理器924和其他实用程序926之类的软件应用920的一个或多个程序模块908。作为示例,系统存储器906可以存储用于执行的指令。作为示例,系统存储器906的其他示例可以是诸如知识资源或学习的程序池之类的组件。例如,操作系统907可以适合于控制计算设备902的操作。另外,本发明的示例可以结合图形库、其他操作系统或任何其他应用而被实践,并且不限于任何特定的应用或系统。这一基本配置在图9中由虚线922内的那些组件示出。计算设备902可以具有附加的特征或功能。例如,计算设备902也可以包括附加的数据存储设备(可移除的和/或不可移除的),诸如例如磁盘、光盘或磁带。图9中通过可移除存储设备909和不可移除存储设备910来示出这样的附加存储装置。

如上所述,多个程序模块和数据文件可以被存储在系统存储器906中。当在处理单元904上执行时,程序模块908(例如,应用928、输入/输出(I/O)管理器924和其他实用程序926)可以执行包括但不限于例如图4中所示的操作方法400的阶段中的一个或多个阶段的过程。可以根据本发明的示例而被使用的其他程序模块可以包括电子邮件和联系人应用、字处理应用、电子表格应用、数据库应用、幻灯片演示应用、输入识别应用、绘图或计算机辅助应用程序等。

另外,本发明的示例可以在包括分立电子元件的电路、包含逻辑门的封装或集成的电子芯片、利用微处理器的电路中或包含电子元件或微处理器的单个芯片上被实践。例如,本发明的示例可以经由片上系统(SOC)被实践,在SOC中图9中所示的组件中的每个或多个组件可以被集成到单个集成电路上。这样的SOC器件可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用功能,所有这些都被集成(或“烧”)到作为单个集成电路的芯片衬底上。当经由SOC来操作时,可以经由单个集成电路(芯片)上的与计算设备902的其他组件集成的专用逻辑来操作本文描述的功能。本公开内容的示例还可以使用能够执行诸如例如AND(与)、OR(或)和NOT(非)之类的逻辑运算的其他技术被实践,这些技术包括但不限于机械、光学、流体和量子技术。此外,本发明的示例可以在通用计算机内或者在任何其他电路或系统中被实践。

计算设备902也可以具有一个或多个输入设备912,诸如键盘、鼠标、笔、声音输入设备、用于语音输入/识别的设备、触摸输入设备等。诸如显示器、扬声器、打印机等的一个或多个输出设备914也可以被包括。前述设备是示例,并且其他设备可以被使用。计算设备904可以包括允许与其他计算设备918通信的一个或多个通信连接916。合适的通信连接916的示例包括但不限于RF发射器、接收器和/或收发器电路;通用串行总线(USB)、并行和/或串行端口。

本文所使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可以包括按照用于存储诸如计算机可读指令、数据结构或程序模块之类的信息的任何方法或技术被实现的易失性和非易失性的、可移除和不可移除的介质。系统存储器906、可移除存储设备909和不可移除存储设备910都是计算机存储介质示例(即,存储器存储装置)。计算机存储介质可以包括RAM、ROM、电可擦只读存储器(EEPROM)、闪存或其它存储器技术,CD-ROM、数字万用盘(DVD)或其他光学存储装置,磁带盒、磁带、磁盘存储装置或其他磁性存储设备,或者可以被用来存储信息并且可以由计算设备902访问的任何其他制品。任何这样的计算机存储介质可以是计算设备902的一部分。计算机存储介质不包括载波或其他传播或调制的数据信号。

通信介质可以通过计算机可读指令、数据结构、程序模块或诸如载波或其他传输机制之类的调制的数据信号中的其他数据被体现,并且包括任何信息传递介质。术语“调制的数据信号”可以描述具有以对信号中的信息编码的方式被设置或改变的一个或多个特征的信号。通过示例而非限制,通信介质可以包括诸如有线网络或直接接线连接之类的有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质之类的无线介质。

图10A和10B示出了可以被用来实践本发明的示例的移动计算设备1000,例如,移动电话、智能电话、个人数字助理、平板个人计算机、膝上型计算机等。例如,移动计算设备1000可以被实现为系统100,系统100的组件可以被配置为执行如在图4以及其他示例中描述的处理方法。参照图10A,示出了用于实现这些示例的移动计算设备1000的示例。在基本配置中,移动计算设备1000是具有输入元件和输出元件二者的手持式计算机。移动计算设备1000通常包括显示器1005以及允许用户将信息录入到移动计算设备1000中的一个或多个输入按钮1010。移动计算设备1000的显示器1005也可以充当输入设备(例如,触摸屏显示器)。如果被包括,则可选的侧输入元件1015允许进一步的用户输入。侧输入元件1015可以是旋转开关、按钮或任何其他类型的手动输入元件。在备选示例中,移动计算设备1000可以并且更多或更少的输入元件。例如,显示器1005在一些示例中可以不是触摸屏。在又一备选示例中,移动计算设备1000是便携式电话系统,诸如蜂窝电话。移动计算设备1000也可以包括可选的小键盘1035。可选的小键盘1035可以是物理小键盘或在触摸屏显示器上被生成的“软”小键盘。在各种示例中,输出元件包括用于示出图形用户界面(GUI)的显示器1005,视觉指示器1020(例如,发光二极管),和/或音频换能器1025(例如,扬声器)。在一些示例中,移动计算设备1000并入用于向用户提供触觉反馈的振动换能器。在又一示例中,移动计算设备1000并入输入和/或输出端口,诸如音频输入(例如,麦克风插孔)、音频输出(例如,头戴式耳机插孔)和视频输出(例如,HDMI端口),以用于向外部设备发送信号或从外部设备接收信号。

图10B是示出移动计算设备的一个示例的架构的框图。也就是说,移动计算设备1000可以并入系统(即,架构)1002以实现一些示例。在示例中,系统1002被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、输入处理、日历、联系人管理器、消息接发客户端、游戏以及媒体客户端/播放器)的“智能电话”。在一些示例中,系统1002被集成为计算设备,诸如集成的个人数字助理(PDA)和无线电话。

一个或多个应用程序1066可以被加载到存储器1062中,并且在操作系统1064上被运行或者与操作系统1064关联地被运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、字处理程序、电子表格程序、因特网浏览器程序、消息接发程序等。系统1002还包括存储器1062内的非易失性存储区域1068。非易失性存储区域1068可以被用来存储在系统1002断电的情况下不应被丢失的持久信息。应用程序1066可以使用非易失性存储区域1068中的信息和将信息存储在非易失性存储区域1068中,信息诸如是由电子邮件应用使用的电子邮件或其他消息等。同步应用(未示出)也驻留在系统1002上并被编程为与驻留在主计算机上的对应同步应用进行交互,以使被存储在非易失性存储区域1068中的信息与被存储在主机计算机处的对应信息保持同步。如应当认识到的,其他应用可以被加载到存储器1062中并且在移动计算设备1000上被运行,这些应用包括本文描述的应用928、IO管理器924和其他实用程序926。

系统1002具有电源1070,其可以被实现为一个或多个电池。电源1070还可以包括外部电源,诸如对电池进行补充或再充电的AC适配器或供电坞架。

系统1002可以包括外围设备端口1078,其执行促进系统1002与一个或多个外围设备之间的连接的功能。去往和来自外围设备端口1072的传输在操作系统1064的控制下被进行。换句话说,由外围设备端口1078接收到的通信可以经由操作系统1064被传播到应用程序1066,反之亦然。

系统1002还可以包括执行传输和接收射频通信的功能的无线电1072。无线电1072经由通信运营商或服务提供商来促进系统1002与“外部世界”之间的无线连接。去往和来自无线电1072的传输在操作系统1064的控制下被进行。换句话说,由无线电1072接收到的通信可以经由操作系统1064被传播到应用程序1066,反之亦然。

视觉指示器1020可以被用来提供视觉通知,和/或音频接口1074可以被用来经由音频换能器1025产生可听通知。在所例示的示例中,视觉指示器1020是发光二极管(LED)并且音频换能器1025是扬声器。这些设备可以被直接地耦合到电源1070,从而使得当被激活时,它们即使在处理器1060和其他组件可能为了保存电池电力而被关闭的情况下也在由通知机制指定的持续时间内保持开启。LED可以被编程为无限期地保持开启,直到用户采取行动来指示设备的通电状态。音频接口1074被用来向用户提供可听信号和从用户接收可听信号。例如,除了被耦合到音频换能器1025之外,音频接口1074也可以被耦合到麦克风以接收可听输入,诸如以促进电话交谈。根据本发明的示例,麦克风也可以充当音频传感器以促进对通知的控制,如下面将被描述的。系统1002还可以包括视频接口1076,其实现机载相机1030的用来记录静止图像、视频流等的操作。

实现系统1002的移动计算设备1000可以具有附加的特征或功能。例如,移动计算设备1000也可以包括附加的数据存储设备(可移除和/或不可移除的),诸如磁盘、光盘或磁带。这样的附加的存储装置在图10B中由非易失性存储区域1068示出。

由移动计算设备1000生成或捕获并经由系统1002被存储的数据/信息如上所述可以被在本地存储在移动计算设备1000上,或者这些数据可以被存储在可以经由无线电1072或经由移动计算设备1000和与移动计算设备1000相关联的分离的计算设备(例如,诸如因特网之类的分布式计算网络中的服务器计算机)之间的有线连接被访问的任何数量的存储介质上。如应当认识到的,这样的数据/信息可以经由移动计算设备1000经由无线电1072或经由分布式计算网络被访问。类似地,根据众所周知的数据/信息传送和存储手段(包括电子邮件和协作数据/信息共享系统),这样的数据/信息可以容易地在计算设备之间被传送以用于存储和使用。

图11示出了如上所述的用于提供应用的系统的架构的一个示例,该应用可靠地访问存储系统上的目标数据并且处理去往一个或多个客户端设备的通信故障。与应用928、IO管理器924、其他实用程序926和存储装置相关联地被访问、交互或编辑的目标数据可以被存储在不同的通信信道或其他存储类型中。例如,可以使用目录服务1122、web门户1124、邮箱服务1126、即时消息接发存储库1128或社交联网站点1130、应用928、IO管理器924、其它实用程序926来存储各种文档,并且存储系统可以使用这些类型的系统等中的任何系统以用于实现数据利用,如本文所述的。服务器1120可以提供存储系统,以用于由在通用计算设备902和移动设备1000上操作的客户端通过网络1115使用。例如,网络1115可以包括因特网或任何其他类型的局域网或广域网,并且客户端节点可以被实现为在个人计算机、平板计算设备中被体现的计算设备902和/或由移动计算设备1000(例如,智能电话)实现。客户端计算设备902或1000的这些示例中的任何示例可以从存储库1116获得内容。

贯穿本说明书已经提及了“一个示例”或“示例”,这意味着在至少一个示例中包括特定描述的特征、结构或特性。因此,对这样的短语的使用可能是指多于仅一个例子。另外,所描述的特征、结构或特性可以按照任何合适的方式在一个或多个示例中被组合。

然而,相关领域的技术人员可以认识到,可以在没有这些具体细节中的一个或多个细节的情况下,或者利用其他方法、资源、材料等来实践这些示例。在其他情况中,公知的结构、资源、或操作没有被示出或详细描述,仅仅是为了避免模糊示例的各方面。

虽然已经例示和描述了样本示例和应用,但是将会理解,示例不限于上述精确的配置和资源。在不脱离所要求保护的示例的范围的情况下,可以在本文描述的方法和系统的布置、操作和细节中做出对于本领域技术人员来说显而易见的各种修改、改变和变型。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1