HK1246440B - Privacy enhanced personal search index - Google Patents
Privacy enhanced personal search indexInfo
- Publication number
- HK1246440B HK1246440B HK18105879.5A HK18105879A HK1246440B HK 1246440 B HK1246440 B HK 1246440B HK 18105879 A HK18105879 A HK 18105879A HK 1246440 B HK1246440 B HK 1246440B
- Authority
- HK
- Hong Kong
- Prior art keywords
- opaque
- document
- encrypted
- query
- digest
- Prior art date
Links
Description
背景技术Background Art
云存储系统是文件托管服务,其允许用户将文件上传和同步到一个或多个存储设备,以及随后从web浏览器或用户的本地设备访问文件。在云存储系统内执行对文件的搜索涉及若干隐私问题,因为云存储系统服务提供商可访问作为明文的文档、文档索引和元数据。虽然各种技术和方式已经发展到解决这些隐私问题,但是这些解决方案依赖于在明文中向云存储系统提供文档。作为结果,如果云存储系统被破坏,则所有使用该服务来存储数据的用户都有可能面临风险。Cloud storage systems are file hosting services that allow users to upload and synchronize files to one or more storage devices, and subsequently access the files from a web browser or the user's local device. Performing searches for files within a cloud storage system raises several privacy concerns, as the cloud storage system service provider has access to documents, document indexes, and metadata in plain text. While various technologies and approaches have been developed to address these privacy concerns, these solutions rely on providing documents to the cloud storage system in plain text. As a result, if a cloud storage system is compromised, all users who use the service to store data are potentially at risk.
本文所公开的各方面是针对这些以及其他一般考虑而做出的。而且,虽然可以讨论相对具体的问题,但是应当明白,这些示例不应该被限制为解决在背景技术或本公开内容中的其他地方标识的具体问题。The various aspects disclosed herein are made with respect to these and other general considerations.Also, although relatively specific problems may be discussed, it should be understood that these examples should not be limited to solving specific problems identified elsewhere in the background or this disclosure.
发明内容Summary of the Invention
提供本发明内容是为了以简化的形式介绍下面在具体实施方式部分中被进一步描述的对概念的选择。本发明内容并不旨在标识所要求保护的主题的关键特征或基本特征,也并不旨在被用作确定所要求保护的主题的范围的辅助手段。This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
本公开内容的示例描述了用于增强个人搜索索引的隐私的系统和方法。在一些方面中,在与第二设备(例如,服务器设备)通信的第一设备(例如,客户端设备)上创建个人明文文档。第二设备可以是分布式网络的部分(例如,利用基于云的服务提供商)。个人明文文档可以被用来在第一设备上生成加密的文档摘要和加密的文档。加密的文档摘要和加密的文档然后可以被传输给第二设备。第二设备可以对文档摘要解密,基于解密的文档摘要来构建个人搜索索引,以及将加密的文档存储在至少一个数据存储库中。第一设备随后可以接收明文搜索查询。该搜索查询可以被用来生成被传输给第二设备的不透明搜索查询摘要。第二设备可以使用该不透明的搜索查询摘要来搜索个人搜索索引,以便提供不透明搜索查询结果。不透明搜索查询结果可以被用来从数据存储库取回加密的文档。不透明搜索查询结果和取回的加密的文档然后可以被传输给客户端设备。客户端设备可以使用不透明搜索查询结果和取回的加密的文档来生成明文搜索结果。Examples of the present disclosure describe systems and methods for enhancing the privacy of a personal search index. In some aspects, a personal plaintext document is created on a first device (e.g., a client device) that communicates with a second device (e.g., a server device). The second device can be part of a distributed network (e.g., utilizing a cloud-based service provider). The personal plaintext document can be used to generate an encrypted document digest and an encrypted document on the first device. The encrypted document digest and the encrypted document can then be transmitted to the second device. The second device can decrypt the document digest, build a personal search index based on the decrypted document digest, and store the encrypted document in at least one data repository. The first device can then receive a plaintext search query. The search query can be used to generate an opaque search query digest that is transmitted to the second device. The second device can use the opaque search query digest to search the personal search index to provide opaque search query results. The opaque search query results can be used to retrieve the encrypted document from the data repository. The opaque search query results and the retrieved encrypted document can then be transmitted to the client device. The client device can use the opaque search query results and the retrieved encrypted document to generate plaintext search results.
提供本发明内容是为了以简化的形式介绍下面在具体实施方式中被进一步描述的对概念的选择。本发明内容部分并不旨在标识所要求保护的主题的关键特征或基本特征,也并不旨在用于限制所要求保护的主题的范围。示例的其它方面、特征和/或优点将部分地在后续的描述中被阐述,并且将部分地从描述而显而易见,或者可以通过本公开内容的实践而被了解。This summary is provided to introduce in simplified form a selection of concepts that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter. Other aspects, features, and/or advantages of the examples will be set forth in part in the subsequent description and will be apparent in part from the description or may be learned through practice of the present disclosure.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
参照以下附图来描述非限制性和非穷尽性的示例。Non-limiting and non-exhaustive examples are described with reference to the following figures.
图1示出了如本文所述的针对用于云服务的隐私增强的个人搜索索引的示例系统的概览。FIG1 shows an overview of an example system for a privacy-enhanced personal search index for cloud services as described herein.
图2A和图2B分别是如本文所述的客户端计算设备和服务器的示图。2A and 2B are diagrams of a client computing device and a server, respectively, as described herein.
图3示出了如本文所述的处理文档以用于与用于云服务的隐私增强的个人搜索索引一起使用的示例方法。3 illustrates an example method of processing documents for use with a privacy-enhanced personal search index for cloud services as described herein.
图4A示出了如本文所述的创建加密的不透明文档摘要的示例方法。FIG. 4A illustrates an example method for creating an encrypted opaque document digest as described herein.
图4B示出了如本文所述的创建加密的文档和文档片段的示例方法。FIG. 4B illustrates an example method for creating encrypted documents and document fragments as described herein.
图5示出了如本文所述的构建用于分布式网络服务的隐私增强的个人搜索索引的示例方法。FIG5 illustrates an example method for constructing a privacy-enhanced personal search index for distributed network services as described herein.
图6示出了如本文所述的处理针对加密的文档的查询以用于与用于分布式网络服务的隐私增强的个人搜索索引一起使用的示例方法。6 illustrates an example method of processing queries for encrypted documents for use with a privacy-enhanced personal search index for a distributed web service as described herein.
图7示出了如本文所述的使用用于分布式网络服务的隐私增强的个人搜索索引来取回加密的文档的示例方法。7 illustrates an example method for retrieving encrypted documents using a privacy-enhanced personal search index for a distributed web service as described herein.
图8示出了如本文所述的使用用于分布式网络服务的隐私增强的个人搜索索引来生成明文搜索结果的示例方法。8 illustrates an example method for generating plaintext search results using a privacy-enhanced personal search index for a distributed network service as described herein.
图9是示出了可以用来实践本公开内容的各方面的计算设备的示例的框图。9 is a block diagram illustrating an example of a computing device that can be used to practice aspects of the present disclosure.
图10A和图10B是可以用来实践本公开内容的各方面的移动计算设备的简化框图。10A and 10B are simplified block diagrams of mobile computing devices that may be used to practice aspects of the present disclosure.
图11是其中可以实践本公开内容的各方面的分布式计算系统的简化框图。11 is a simplified block diagram of a distributed computing system in which aspects of the present disclosure may be practiced.
具体实施方式DETAILED DESCRIPTION
下面参照附图来更全面地描述本公开内容的各个方面,附图构成了本公开内容的部分,并且示出了具体的示例性方面。然而,本公开内容的不同方面可以按照许多不同的形式被实现,并且不应被解释为限于本文所阐述的方面;相反,提供这些方面以使得本公开内容将是彻底和完整的,并将向本领域技术人员充分地传达各方面的范围。各方面可以被实践为方法、系统或设备。因此,各方面可以采取硬件实现方式、完全软件实现方式或者结合软件和硬件方面的实现方式的形式。以下的详细描述因此不应被以限制的意义被理解。Various aspects of the present disclosure are described more fully below with reference to the accompanying drawings, which form part of the present disclosure and illustrate specific exemplary aspects. However, different aspects of the present disclosure can be implemented in many different forms and should not be construed as limited to the aspects set forth herein; on the contrary, these aspects are provided so that the present disclosure will be thorough and complete and will fully convey the scope of the various aspects to those skilled in the art. Various aspects can be practiced as methods, systems, or devices. Therefore, various aspects can take the form of hardware implementations, complete software implementations, or implementations combining software and hardware aspects. The following detailed description should therefore not be understood in a limiting sense.
本公开内容提供了用于增强用于诸如诸如云服务之类的分布式网络服务的个人搜索索引的隐私的系统和方法。本文所使用的个人搜索可以是指对仅由创建和/或存储数据的用户或一小组特权用户可访问的非公开数据(例如,文档、音频文件、视频文件等)的搜索。在各方面中,可以在包括可信的客户端环境和部分可信的环境的分布式计算环境中实践这些方法。如本文所使用的可信的客户端环境可以是指第一处理设备(诸如客户端设备)上的安全区域,其提供代码和数据的受保护的加载和执行。如本文所使用的部分信任的环境可以是指第二设备(例如,服务器设备)上的不安全区域,其不允许加载和执行代码和数据,或者在允许加载和执行代码和数据之前施加安全约束。The present disclosure provides systems and methods for enhancing the privacy of personal search indexes for distributed network services such as cloud services. As used herein, personal search can refer to a search for non-public data (e.g., documents, audio files, video files, etc.) that is accessible only to the user who created and/or stored the data or a small group of privileged users. In various aspects, these methods can be practiced in a distributed computing environment including a trusted client environment and a partially trusted environment. As used herein, a trusted client environment can refer to a secure area on a first processing device (such as a client device) that provides protected loading and execution of code and data. As used herein, a partially trusted environment can refer to an unsecure area on a second device (e.g., a server device) that does not allow loading and execution of code and data, or imposes security constraints before allowing loading and execution of code and data.
在一些示例中,可以在客户端设备上创建明文数据(例如,明文文档)。如本文所使用的明文文档可以是指以未加密的格式被传输和/或存储的人类可读数据。客户端设备可以使用明文文档来生成文档摘要,将文档摘要转换为不透明文档摘要,对不透明文档摘要加密,生成文档片段,以及对文档和文档片段加密。如这里所使用的文档摘要可以是指描述文档的元数据和来自文档的术语的汇编。在一些示例中,文档摘要的术语和元数据可以被令牌化(tokenzied)。如本文所使用的不透明文档可以是指如下明文或其他人类可读文档,它们的数据已经使用数据转换技术被转换为人类不可读格式。如这里所使用的文档片段可以包括对文档、元数据和/或来自该文档的一个或多个句子的简要概要。加密的不透明文档摘要以及加密的文档和文档片段然后可以被传输给服务器设备。In some examples, plaintext data (e.g., a plaintext document) can be created on a client device. As used herein, a plaintext document can refer to human-readable data that is transmitted and/or stored in an unencrypted format. The client device can use the plaintext document to generate a document summary, convert the document summary into an opaque document summary, encrypt the opaque document summary, generate document fragments, and encrypt the document and document fragments. As used herein, a document summary can refer to a compilation of metadata describing the document and terms from the document. In some examples, the terms and metadata of the document summary can be tokenized. As used herein, an opaque document can refer to a plaintext or other human-readable document whose data has been converted into a human-unreadable format using data conversion technology. As used herein, a document fragment can include a brief summary of the document, metadata, and/or one or more sentences from the document. The encrypted opaque document summary and the encrypted document and document fragments can then be transmitted to the server device.
在示例中,第二设备(例如,服务器设备)可以对加密的不透明文档摘要解密并且使用解密的不透明文档摘要来构建个人搜索索引。如这里所使用的个人搜索索引可以在索引中收集、解析和存储文档摘要数据以促进快速和准确的信息取回。服务器设备还可以使用存储管理实用工具来将加密的文档和文档片段存储在数据存储库中。如这里所使用的存储管理实用工具可以是指被用来管理存储设备和存储网络解决方案的设备、过程和软件。In an example, a second device (e.g., a server device) can decrypt the encrypted opaque document digest and use the decrypted opaque document digest to build a personal search index. As used herein, a personal search index can collect, parse, and store document summary data in an index to facilitate fast and accurate information retrieval. The server device can also use a storage management utility to store encrypted documents and document fragments in a data repository. As used herein, a storage management utility can refer to devices, processes, and software used to manage storage devices and storage network solutions.
在一些方面中,客户端设备可以随后接收明文搜索查询。客户端设备可以使用该明文搜索查询来生成查询摘要并且将该查询摘要转换为不透明查询摘要。如本文所使用的查询摘要可以是指描述搜索查询的元数据和来自搜索查询的术语的汇编。不透明查询摘要然后可以被传输给服务器设备。在接收到不透明查询摘要之后,服务器设备可以使用不透明查询摘要来搜索个人搜索索引,以便生成排名的查询结果。如本文所使用的排名的查询结果可以是指根据诸如相关性、文档年龄、文档大小、用户简档信息等若干标准中的至少一个标准被排序和/或区分优先级的一组不透明结果。排名的查询结果可以被用来从数据存储库中取回加密的文档和/或文档片段。加密的文档和/或文档片段然后可以被传输给客户端设备。客户端设备可以对接收到的加密的文档和/或文档片段解密,并将排名的查询结果与文档和/或文档片段组合。客户端设备可以对组合后的排名的查询结果以及文档和/或文档片段执行基于内容的排名,以生成排名的明文搜索结果。In some aspects, the client device may subsequently receive a plaintext search query. The client device may use the plaintext search query to generate a query digest and convert the query digest into an opaque query digest. As used herein, a query digest may refer to metadata describing the search query and a compilation of terms from the search query. The opaque query digest may then be transmitted to a server device. After receiving the opaque query digest, the server device may use the opaque query digest to search a personal search index to generate ranked query results. As used herein, ranked query results may refer to a set of opaque results that are sorted and/or prioritized based on at least one of several criteria, such as relevance, document age, document size, user profile information, etc. The ranked query results may be used to retrieve encrypted documents and/or document fragments from a data repository. The encrypted documents and/or document fragments may then be transmitted to the client device. The client device may decrypt the received encrypted documents and/or document fragments and combine the ranked query results with the documents and/or document fragments. The client device may perform content-based ranking on the combined ranked query results and documents and/or document fragments to generate ranked plaintext search results.
因此,本公开内容的各方面提供了多种益处,其包括但不限于:增强个人文档安全性,消除向云服务传送明文用户信息、查询和搜索结果;消除针对使用云服务存储的所有数据驻留在单个信任边界中的需要;使用户密钥到云服务的传送最小化;减少云服务所要求的安全措施;优雅地改进到较老的搜索服务的隐私增强的个人索引,以及其他示例。Thus, aspects of the present disclosure provide a variety of benefits, including but not limited to: enhanced personal document security, eliminating the transmission of plaintext user information, queries, and search results to cloud services; eliminating the need for all data stored using cloud services to reside in a single trust boundary; minimizing the transmission of user keys to cloud services; reducing the security measures required by cloud services; gracefully improving privacy-enhanced personal indexes to older search services, and other examples.
图1示出了如本文所述的针对用于云服务的隐私增强的个人搜索索引的示例系统的概览。示例性系统100可以是相互依赖的组件的组合,这些组件相互作用以形成用于改进来自隐式反馈的推荐的集成整体。系统的组件可以是硬件组件或者在系统的硬件组件上被实现的软件和/或由系统的硬件组件执行的软件。在示例中,系统100可以包括硬件组件(例如,被用来执行/运行操作系统(OS))和在硬件上运行的软件组件(例如,应用、应用编程接口、模块、虚拟机、运行时间库等)中的任何组件。在一个示例中,示例性系统100可以提供用于软件组件运行的环境,遵守针对操作而被设置的约束,以及利用系统100的资源或设施,其中组件可以是在一个或多个处理设备上运行的软件(例如,应用、程序、模块等)。例如,软件(例如,应用、操作指令、模块等)可以在诸如计算机、移动设备(例如,智能电话/电话、平板计算机)和/或任何其他电子设备之类的处理设备上被运行。作为处理设备操作环境的示例,参考在图9至图11中被描绘的示例性操作环境。在其他示例中,本文公开的系统的组件可以遍布多个设备。例如,可以在客户端设备(例如,处理设备)上录入输入,并且可以从网络中的诸如一个或多个服务器设备之类的其他设备处理或访问信息。FIG1 shows an overview of an example system for a privacy-enhanced personal search index for cloud services as described herein. The example system 100 can be a combination of interdependent components that interact to form an integrated whole for improving recommendations from implicit feedback. The components of the system can be hardware components or software implemented on and/or executed by the hardware components of the system. In an example, the system 100 can include any of hardware components (e.g., used to execute/run an operating system (OS)) and software components running on the hardware (e.g., applications, application programming interfaces, modules, virtual machines, runtime libraries, etc.). In one example, the example system 100 can provide an environment for the software components to run, complying with constraints set for the operation, and utilizing the resources or facilities of the system 100, wherein the components can be software (e.g., applications, programs, modules, etc.) running on one or more processing devices. For example, the software (e.g., applications, operating instructions, modules, etc.) can be run on a processing device such as a computer, a mobile device (e.g., a smartphone/phone, a tablet computer), and/or any other electronic device. As an example of a processing device operating environment, reference is made to the example operating environments depicted in FIG9 to FIG11. In other examples, the components of the system disclosed herein can be spread across multiple devices. For example, input can be entered on a client device (e.g., a processing device), and information can be processed or accessed from other devices such as one or more server devices in the network.
作为一个示例,系统100包括客户端设备102A、客户端设备102B、客户端设备102C、分布式网络104,以及包括诸如服务器设备106A、服务器设备106B和服务器设备106C之类的一个或多个服务器的分布式网络环境。本领域技术人员将会认识到,诸如系统100之类的系统的规模可以变化,并且可以包括比图1中描述的组件更多或更少的组件。在一些示例中,系统100的组件之间的对接可以远程地发生,例如在系统100的组件可以遍布分布式网络的一个或多个设备的情况下。As an example, system 100 includes client device 102A, client device 102B, client device 102C, distributed network 104, and a distributed network environment including one or more servers, such as server device 106A, server device 106B, and server device 106C. Those skilled in the art will recognize that the scale of systems such as system 100 can vary and can include more or fewer components than those depicted in FIG1 . In some examples, interfacing between components of system 100 can occur remotely, such as where components of system 100 can be spread across one or more devices of a distributed network.
客户端计算设备102A例如可以是可信环境,其被配置为生成和/或接收一个或多个明文个人文档,并且使用这些明文个人文档来生成加密的不透明文档摘要和加密的个人文档。客户端计算设备102A然后可以经由网络104将加密的不透明文档摘要和加密的个人文档传输给服务器106A、106B和106C中的一个或多个服务器。服务器106A例如可以被配置为接收加密的不透明文档摘要和加密的个人文档,对不透明文档摘要解密,使用解密的不透明文档摘要来生成个人搜索索引,以及将加密的个人文档存储在个人文档数据存储库中。服务器106A可以是不可信环境或部分可信环境,并且可以提供由云服务提供商托管的服务。Client computing device 102A, for example, can be a trusted environment configured to generate and/or receive one or more plaintext personal documents and use these plaintext personal documents to generate an encrypted opaque document digest and an encrypted personal document. Client computing device 102A can then transmit the encrypted opaque document digest and the encrypted personal document to one or more servers 106A, 106B, and 106C via network 104. Server 106A can, for example, be configured to receive the encrypted opaque document digest and the encrypted personal document, decrypt the opaque document digest, use the decrypted opaque document digest to generate a personal search index, and store the encrypted personal document in a personal document data repository. Server 106A can be an untrusted environment or a partially trusted environment and can provide a service hosted by a cloud service provider.
客户端计算设备102A可以被进一步配置为接收明文搜索查询请求,生成不透明查询摘要,以及经由网络104将该不透明查询摘要传送给服务器106A、106B和106C中的一个或多个服务器。服务器106A例如可以被进一步配置为接收不透明查询摘要,使用不透明查询摘要来搜索个人搜索索引,生成排名的查询结果以及使用排名的查询结果来取回加密的文档。服务器106A然后可以经由网络104将排名的查询结果和取回的加密的文档传输给客户端计算设备102A。客户端计算设备102A可以被进一步配置为接收排名的查询结果和加密的文档,对加密的文档解密,生成排名的明文搜索结果,以及在客户端计算设备102A的显示区域上显示排名的明文搜索结果。The client computing device 102A may be further configured to receive a plaintext search query request, generate an opaque query digest, and transmit the opaque query digest to one or more of the servers 106A, 106B, and 106C via the network 104. The server 106A may be further configured, for example, to receive the opaque query digest, search a personal search index using the opaque query digest, generate ranked query results, and retrieve an encrypted document using the ranked query results. The server 106A may then transmit the ranked query results and the retrieved encrypted document to the client computing device 102A via the network 104. The client computing device 102A may be further configured to receive the ranked query results and the encrypted document, decrypt the encrypted document, generate ranked plaintext search results, and display the ranked plaintext search results on a display area of the client computing device 102A.
图2A和图2B分别是如本文所述的客户端计算设备200和服务器计算设备220的示例性示图。客户端计算设备200可以包括文档生成模块202、加密模块204、查询接收模块206、查询处理模块208和结果处理模块210,其各自具有一个或多个附加组件。文档生成模块202可以被配置为生成和/或接收一个或多个个人文档。例如,文档生成模块202可以包括字处理应用或与其对接。字处理应用可以被用来生成基于明文文本的文档。加密模块204可以被配置为接收一个或多个个人文档并对其加密。在一些方面中,加密模块204沿着一个或多个处理路径执行操作。例如,加密模块204可以沿着文档理解流水线路径和文档加密路径来执行操作。Figures 2A and 2B are exemplary diagrams of a client computing device 200 and a server computing device 220, respectively, as described herein. Client computing device 200 may include a document generation module 202, an encryption module 204, a query receiving module 206, a query processing module 208, and a result processing module 210, each of which may have one or more additional components. Document generation module 202 may be configured to generate and/or receive one or more personal documents. For example, document generation module 202 may include or interface with a word processing application. The word processing application may be used to generate documents based on plain text. Encryption module 204 may be configured to receive and encrypt one or more personal documents. In some aspects, encryption module 204 performs operations along one or more processing paths. For example, encryption module 204 may perform operations along a document understanding pipeline path and a document encryption path.
在示例中,文档理解流水线路径可以包括使用接收到的个人文档来生成被包括在个人文档内的术语和描述个人文档的元数据的明文文档摘要。私有转换密钥(PTK)可以被应用于明文文档摘要以生成不透明的文档摘要。如本文所使用的PTK可以是指使用数据转换技术以将一组数据值从源的第一数据格式转换为第二数据格式的密钥或算法。在一些方面中,数据转换技术保留个人文档的结构(例如,等距转换),从而使得在不透明文档摘要内保留近似术语匹配、相对术语频率和某些距离度量。私有索引密钥(PIK)可以被应用于不透明文档摘要以生成加密的不透明文档摘要。如本文所使用的PIK可以是指由指定的有权机构(authority)作为用来保护个人文档的内容的加密密钥而提供的值。可以使用任何已知的非对称密码(例如,公共密钥加密)或对称密码(例如,基于密码的加密)的方法来生成PIK。加密的不透明文档摘要和PIK然后可以被处理以用于导出到服务器设备220,由此结束文档理解流水线路径。In an example, the document understanding pipeline path may include using a received personal document to generate a plaintext document summary of terms included in the personal document and metadata describing the personal document. A private transformation key (PTK) may be applied to the plaintext document summary to generate an opaque document summary. As used herein, a PTK may refer to a key or algorithm that uses a data conversion technique to convert a set of data values from a first data format of a source to a second data format. In some aspects, the data conversion technique preserves the structure of the personal document (e.g., isometric conversion), thereby preserving approximate term matches, relative term frequencies, and certain distance metrics within the opaque document summary. A private index key (PIK) may be applied to the opaque document summary to generate an encrypted opaque document summary. As used herein, a PIK may refer to a value provided by a designated authority as an encryption key used to protect the content of the personal document. The PIK may be generated using any known asymmetric cryptography (e.g., public key cryptography) or symmetric cryptography (e.g., password-based encryption) method. The encrypted opaque document summary and the PIK may then be processed for export to the server device 220, thereby concluding the document understanding pipeline path.
在示例中,文档加密路径可以包括使用明文个人文档来生成文档片段。私有文档密钥(PDK)可以被应用于明文个人文档和/或文档片段,以生成包括加密的个人文档和/或加密的文档片段的加密的个人文档。如本文所使用的PDK可以是指由指定的有权机构作为用来保护个人文档的内容的加密密钥而提供的值。可以使用任何已知的非对称密码(例如,公共密钥加密)或对称密码(例如,基于密码的加密)的方法来生成PDK。在至少一个示例中,PDK将不同于PTK和PIK。加密的个人文档然后可以被处理以用于导出到服务器设备220,由此结束文档加密路径。In an example, the document encryption path may include using plaintext personal documents to generate document fragments. A private document key (PDK) may be applied to plaintext personal documents and/or document fragments to generate an encrypted personal document including an encrypted personal document and/or encrypted document fragments. As used herein, a PDK may refer to a value provided by a designated authority as an encryption key for protecting the content of a personal document. The PDK may be generated using any known asymmetric cryptographic (e.g., public key encryption) or symmetric cryptographic (e.g., password-based encryption) method. In at least one example, the PDK will be different from the PTK and PIK. The encrypted personal document may then be processed for export to server device 220, thereby concluding the document encryption path.
查询接收模块206可以被配置为接收或生成针对一个或多个个人文档的明文查询。例如,查询接收模块206可以包括用户界面或与用户界面对接。该用户界面提供用于提交查询的输入区域。查询处理模块208可以被配置为使用明文查询来生成元数据和术语的明文查询摘要。PTK可以被应用于明文查询摘要以生成不透明查询摘要。在一些方面中,被应用于明文查询摘要的PTK可以是被应用于明文文档摘要的相同PTK。不透明查询摘要然后可以被处理以用于导出到服务器设备220。The query receiving module 206 can be configured to receive or generate a plaintext query for one or more personal documents. For example, the query receiving module 206 can include or interface with a user interface. The user interface provides an input area for submitting a query. The query processing module 208 can be configured to use the plaintext query to generate a plaintext query digest of metadata and terms. A PTK can be applied to the plaintext query digest to generate an opaque query digest. In some aspects, the PTK applied to the plaintext query digest can be the same PTK applied to the plaintext document digest. The opaque query digest can then be processed for export to the server device 220.
结果处理模块210可以被配置为接收和处理不透明排名的查询结果和加密的个人文档。例如,结果处理模块210可以将PTK应用于不透明排名的查询结果以产生明文排名的查询结果。在一些方面中,被应用于不透明排名的查询结果的PTK可以是被应用于明文文档摘要和明文查询摘要的相同PTK。结果处理模块210还可以将PDK应用于加密的个人文档以产生明文文档和/或明文文档片段。在一些方面中,被应用于加密的个人文档的PDK可以是被应用于明文个人文档和/或文档片段的相同的PDK。明文排名的查询结果和明文个人文档和/或文档片段然后可以被组合成排名的明文搜索结果。在一个示例中,可以根据诸如内容、相关性、大小或日期之类的一个或多个标准来对排名的明文搜索结果排名。The result processing module 210 can be configured to receive and process the opaque ranked query results and the encrypted personal documents. For example, the result processing module 210 can apply a PTK to the opaque ranked query results to generate plaintext ranked query results. In some aspects, the PTK applied to the opaque ranked query results can be the same PTK applied to the plaintext document summary and the plaintext query summary. The result processing module 210 can also apply a PDK to the encrypted personal documents to generate plaintext documents and/or plaintext document fragments. In some aspects, the PDK applied to the encrypted personal documents can be the same PDK applied to the plaintext personal documents and/or document fragments. The plaintext ranked query results and the plaintext personal documents and/or document fragments can then be combined into ranked plaintext search results. In one example, the ranked plaintext search results can be ranked according to one or more criteria such as content, relevance, size, or date.
服务器设备220可以包括摄取模块222、索引搜索模块224和文档取回模块206,它们各自具有一个或多个附加组件。摄取模块222可以被配置为接收和处理来自加密模块204的信息,诸如加密的不透明文档摘要、PIK和加密的个人文档。在一些方面中,摄取模块222沿着一个或多个处理路径来执行操作。例如,摄取模块222可以沿着文档编索引路径和文档存储路径来执行操作。Server device 220 may include an ingestion module 222, an index search module 224, and a document retrieval module 206, each having one or more additional components. Ingestion module 222 may be configured to receive and process information from encryption module 204, such as encrypted opaque document digests, PIKs, and encrypted personal documents. In some aspects, ingestion module 222 may perform operations along one or more processing paths. For example, ingestion module 222 may perform operations along a document indexing path and a document storage path.
在示例中,文档编索引路径可以包括将接收到的PIK应用于接收到的加密的不透明文档摘要,以对加密的不透明文档摘要解密。在一些方面中,作为结果的不透明文档摘要可以与先前已经从客户端设备200被接收到的其他不透明文档摘要聚合,以形成不透明文档摘要集合。可以对不透明文档摘要或不透明文档摘要集合执行索引生成操作,以构建个人搜索索引。个人搜索索引可以包括来自句子的不透明字索引、字母数字字符的序列,或不透明文档摘要内的标记。In an example, the document indexing path may include applying the received PIK to the received encrypted opaque document digest to decrypt the encrypted opaque document digest. In some aspects, the resulting opaque document digest may be aggregated with other opaque document digests previously received from the client device 200 to form a collection of opaque document digests. An index generation operation may be performed on the opaque document digest or the collection of opaque document digests to construct a personal search index. The personal search index may include an opaque word index from a sentence, a sequence of alphanumeric characters, or tokens within the opaque document digest.
文档存储路径可以包括摄取模块222与存储管理实用工具交互。例如,摄取模块222可以使用在服务器设备220上运行的存储管理服务来将加密的个人文档存储在数据存储库中。在一些方面中,存储管理服务和数据存储库可以位于服务器设备220上。在其它方面中,存储管理服务和数据存储库中的一种或多种可以位于服务器设备220可访问的分离的服务器上。The document storage path may include ingestion module 222 interacting with a storage management utility. For example, ingestion module 222 may use a storage management service running on server device 220 to store encrypted personal documents in a data repository. In some aspects, the storage management service and the data repository may be located on server device 220. In other aspects, one or more of the storage management service and the data repository may be located on a separate server accessible to server device 220.
索引搜索模块224可以被配置为接收和处理来自查询处理模块208的信息,诸如不透明查询摘要。例如,索引搜索模块224可以使用接收到的不透明查询摘要来搜索包括不透明字索引的个人搜索索引。对个人搜索索引的搜索可以产生被找到的首选搜索结果的排名的查询结果。在一些方面中,排名的查询结果可以包括不透明搜索结果和不透明文档片段的有序列表。在这样的方面中,不透明搜索结果和不透明文档片段然后可以被处理以用于导出到客户端设备220。The index search module 224 can be configured to receive and process information from the query processing module 208, such as the opaque query digest. For example, the index search module 224 can use the received opaque query digest to search a personal search index that includes an opaque word index. The search of the personal search index can produce a ranked query result of the top search results found. In some aspects, the ranked query result can include an ordered list of opaque search results and opaque document snippets. In such aspects, the opaque search results and opaque document snippets can then be processed for export to the client device 220.
在其他方面中,排名的查询结果可以包括不透明搜索结果的有序列表,但是可以不包括不透明文档片段。在这样的方面中,文档取回模块226可以被配置为从数据存储库取回加密的个人文档。例如,不透明搜索结果可以被提供给存储管理实用工具。存储管理实用工具可以在数据存储库中搜索具有与不透明搜索结果中的数据匹配的数据(例如,字符串、字、字符、令牌等)的加密的文档和/或文档片段。从数据存储库取回的加密的文档和/或文档片段然后可以被处理以用于导出到客户端设备220。In other aspects, the ranked query results may include an ordered list of opaque search results, but may not include opaque document fragments. In such aspects, the document retrieval module 226 may be configured to retrieve encrypted personal documents from the data repository. For example, the opaque search results may be provided to a storage management utility. The storage management utility may search the data repository for encrypted documents and/or document fragments having data (e.g., strings, words, characters, tokens, etc.) that matches the data in the opaque search results. The encrypted documents and/or document fragments retrieved from the data repository may then be processed for export to the client device 220.
图3至图8示出了与如本文所述的用于云服务的隐私增强的个人搜索索引相关联的各种处理流程。在各方面中,方法300-800可以由诸如图1的系统100之类的示例性系统执行。在示例中,方法300-800可以在包括被配置为存储和执行操作、程序或指令的至少一个处理器的设备上被执行。然而,方法300-800不限于这样的示例。在其他示例中,方法300-800可以在用于提供推荐的应用或服务上被执行。在至少一个示例中,可以由分布式网络的一个或多个组件(例如,web服务/分布式网络服务(例如,云服务))来执行方法300-800(例如,计算机实现的操作)以利用索引搜索和生成和加密的文档处理。Figures 3 to 8 illustrate various processing flows associated with privacy-enhanced personal search indexes for cloud services as described herein. In various aspects, methods 300-800 can be performed by an exemplary system such as system 100 of Figure 1. In an example, methods 300-800 can be performed on a device comprising at least one processor configured to store and execute operations, programs, or instructions. However, methods 300-800 are not limited to such examples. In other examples, methods 300-800 can be performed on an application or service for providing recommendations. In at least one example, methods 300-800 (e.g., computer-implemented operations) can be performed by one or more components of a distributed network (e.g., web services/distributed network services (e.g., cloud services)) to utilize indexed search and generated and encrypted document processing.
图3示出了如本文所述的处理文档以用于与用于云服务的隐私增强的个人搜索索引一起使用的示例方法。示例性方法300开始于操作302,其中可以生成文档。在一些方面中,文档是使用客户端设备上的应用而被创建或接收的明文个人文档。在一个示例中,客户端设备可以表示可信环境,从而使得文档仅可以对文档的作者或一组特权用户可访问。然而,本领域技术人员将认识到,本文描述的操作可适用于可信环境、部分可信环境和不可信环境。客户端设备可以在接收明文个人文档之前或之后生成一个或多个隐私密钥(例如,PTK、PIK和PDK)。客户端设备可以备选地从可信第三方证书有权机构接收一个或多个隐私密钥。Figure 3 shows an example method for processing documents as described herein for use with a privacy-enhanced personal search index for cloud services. Exemplary method 300 begins at operation 302, where a document can be generated. In some aspects, the document is a plaintext personal document created or received using an application on a client device. In one example, the client device can represent a trusted environment so that the document is accessible only to the author of the document or a group of privileged users. However, those skilled in the art will recognize that the operations described herein are applicable to trusted environments, partially trusted environments, and untrusted environments. The client device can generate one or more privacy keys (e.g., PTK, PIK, and PDK) before or after receiving the plaintext personal document. The client device can alternatively receive one or more privacy keys from a trusted third-party certificate authority.
在操作304中,可以创建不透明文档摘要。在示例中,明文个人文档被提供给执行文档理解操作的过程。在一些方面中,该过程遵循诸如文档理解路径之类的路径。如本文所使用的文档理解可以是指用来提取人类可理解的信息并将该信息编成机器可读形式的、对文档的的语义分析。文档理解操作可以包括使用明文个人文档来生成元数据和术语的明文文档摘要,将PTK应用于明文文档摘要以生成不透明文档摘要,以及将PIK应用于不透明文档摘要以生成加密的不透明文档摘要。In operation 304, an opaque document summary can be created. In an example, a plaintext personal document is provided to a process that performs a document understanding operation. In some aspects, the process follows a path such as a document understanding path. As used herein, document understanding may refer to a semantic analysis of a document to extract human-understandable information and format that information into a machine-readable form. The document understanding operation may include using the plaintext personal document to generate a plaintext document summary of metadata and terminology, applying a PTK to the plaintext document summary to generate an opaque document summary, and applying a PIK to the opaque document summary to generate an encrypted opaque document summary.
在操作306中,可以创建加密的个人文档。在示例中,明文个人文档被提供给执行文档加密操作的过程。文档加密操作可以包括从明文个人文档生成明文文档片段和将PDK应用于明文个人文档和/或明文文档片段以生成加密的个人文档。操作304和306可以被顺序地或并行地执行。In operation 306, an encrypted personal document may be created. In this example, a plaintext personal document is provided to a process that performs a document encryption operation. The document encryption operation may include generating plaintext document fragments from the plaintext personal document and applying the PDK to the plaintext personal document and/or the plaintext document fragments to generate an encrypted personal document. Operations 304 and 306 may be performed sequentially or in parallel.
在操作308中,加密的不透明文档摘要、用来对不透明文档摘要加密的PIK以及加密的个人文档被从客户端设备的可信环境传输给服务器设备的部分可信环境。在各方面中,PTK和PDK保持在客户端设备内。另外,没有明文(例如,文档、摘要、查询等)被传输给服务器设备。In operation 308, the encrypted opaque document digest, the PIK used to encrypt the opaque document digest, and the encrypted personal document are transferred from the trusted environment of the client device to the partially trusted environment of the server device. In various aspects, the PTK and PDK remain within the client device. In addition, no plaintext (e.g., document, digest, query, etc.) is transferred to the server device.
图4A示出了如本文所述的创建加密的不透明文档摘要的示例方法400。示例性方法400开始于操作402,其中可以使用明文个人文档来生成明文文档摘要。在一些方面中,生成明文文档摘要包括将明文个人文档解析成多个明文索引术语和相关联的明文元数据。解析操作可以由位于生成或接收明文个人文档的客户端设备上的软件执行,或者由位于另一可信环境内的软件执行。明文索引术语和元数据可以被组合和/或组织成摘要文件。FIG4A illustrates an example method 400 for creating an encrypted opaque document digest as described herein. Example method 400 begins at operation 402, where a plaintext document digest may be generated using a plaintext personal document. In some aspects, generating the plaintext document digest includes parsing the plaintext personal document into a plurality of plaintext index terms and associated plaintext metadata. The parsing operation may be performed by software located on a client device that generates or receives the plaintext personal document, or by software located within another trusted environment. The plaintext index terms and metadata may be combined and/or organized into a digest file.
在操作404中,可以从明文个人文档生成不透明文档摘要。在示例中,PTK可以由客户端设备生成或接收。PTK可操作以对一组数据值执行数据转换操作。数据转换操作可以包括将数据元素或值从源数据格式映射到目的地数据格式,记录可能发生的任何转换,生成执行记录的转换的代码以及执行转换代码。在一个特定示例中,执行转换代码可以包括创建表示来自源数据格式的数据元素的标记。在一些方面中,PTK被应用于的任何文档摘要将共享公共数据转换,从而使得针对文件(例如,文档摘要、查询摘要)保留基本术语频率—逆文档频率(TF-IDF)排名。如本文所使用的TF-IDF可以是指数值统计或加权因子,其旨在反映字在文档或文档集合中的重要性。可以将PTK应用于明文个人文档以生成不透明文档摘要。在各方面中,不可以从客户端设备传输PTK。In operation 404, an opaque document summary can be generated from a plaintext personal document. In an example, a PTK can be generated or received by a client device. The PTK is operable to perform a data conversion operation on a set of data values. The data conversion operation can include mapping a data element or value from a source data format to a destination data format, recording any conversions that may have occurred, generating code to perform the recorded conversions, and executing the conversion code. In a specific example, executing the conversion code can include creating tags representing data elements from the source data format. In some aspects, any document summary to which the PTK is applied will share a common data conversion, such that a basic term frequency-inverse document frequency (TF-IDF) ranking is retained for the file (e.g., document summary, query summary). TF-IDF, as used herein, can be an index value statistic or weighting factor that is intended to reflect the importance of a word in a document or collection of documents. The PTK can be applied to a plaintext personal document to generate an opaque document summary. In various aspects, the PTK cannot be transmitted from the client device.
在操作406中,可以从不透明文档摘要生成加密的不透明文档摘要。在示例中,可以由诸如客户端设备之类的处理设备来生成或接收PIK。PIK可以可操作以对一个或多个文档执行加密操作。加密操作通常包括将普通信息(例如,明文)转换成人类不可读的文本(例如,密文)。用于对文件和文档加密的方法对于本领域技术人员来说是公知的,并且将不在本公开内容中被详细描述。可以将PIK应用于不透明文档摘要以生成加密的不透明文档摘要。在一些方面中,可以将PIK与加密的不透明文档摘要一起传输给一个或多个不可信或部分可信的服务器设备。对不透明文档摘要加密可以防止基于对不透明术语和元数据的批量访问的统计攻击。In operation 406, an encrypted opaque document digest can be generated from the opaque document digest. In an example, the PIK can be generated or received by a processing device such as a client device. The PIK can be operable to perform an encryption operation on one or more documents. An encryption operation generally involves converting ordinary information (e.g., plaintext) into human-unreadable text (e.g., ciphertext). Methods for encrypting files and documents are well known to those skilled in the art and will not be described in detail in this disclosure. The PIK can be applied to the opaque document digest to generate an encrypted opaque document digest. In some aspects, the PIK can be transmitted along with the encrypted opaque document digest to one or more untrusted or partially trusted server devices. Encrypting the opaque document digest can prevent statistical attacks based on bulk access to opaque terms and metadata.
图4B示出了如本文所述的创建加密的文档和文档片段的示例方法420。示例性方法420开始于操作422,其中可以使用明文个人文档来生成明文文档片段。在示例中,文档片段可以是通过分析明文个人文档并提取各种的部分、字符串和/或元数据而被创建的文件。在一个特定方面中,文档片段可以包括文档标题、文档的简要描述、文档作者的名字、文档的前三个句子、文档类型、文档的预览图像等。FIG4B illustrates an example method 420 for creating encrypted documents and document fragments as described herein. Example method 420 begins at operation 422, where a plaintext personal document may be used to generate a plaintext document fragment. In an example, a document fragment may be a file created by analyzing a plaintext personal document and extracting various parts, strings, and/or metadata. In one particular aspect, a document fragment may include a document title, a brief description of the document, the name of the document author, the first three sentences of the document, the document type, a preview image of the document, and the like.
在操作424中,可以生成加密的个人文档。在一些示例中,PDK可以由客户端设备生成或接收。PDK可以可操作以对一个或多个文档执行加密操作。加密操作通常包括将普通信息转换成人类不可读的文本(例如,密文)。可以将PDK应用于明文的个人文档和/或文档片段以生成加密的个人文档。在各方面中,不可以从客户端设备传输PDK。在示例中,虽然PDK和PIK可以共享相似性(例如,基于加密的密钥)并且PDK和PTK可以共享相似性(例如,未从客户端设备传输密钥),但是PTK、PIK和PDK是分离的和/或不同的密钥。In operation 424, an encrypted personal document can be generated. In some examples, a PDK can be generated or received by a client device. The PDK can be operable to perform cryptographic operations on one or more documents. Cryptographic operations typically involve converting ordinary information into human-unreadable text (e.g., ciphertext). The PDK can be applied to plaintext personal documents and/or document fragments to generate an encrypted personal document. In various aspects, the PDK cannot be transmitted from the client device. In examples, although the PDK and PIK can share similarities (e.g., cryptographic keys) and the PDK and PTK can share similarities (e.g., keys are not transmitted from the client device), the PTK, PIK, and PDK are separate and/or different keys.
图5示出了如本文所述的构建用于分布式网络服务的隐私增强的个人搜索索引的示例方法500。示例性方法500开始于操作502,其中可以由云服务系统的服务器设备的组件接收加密的文档、加密的不透明文档摘要和PIK。服务器设备可以表示不可信环境或部分环境,从而使得文档对服务器设备或服务器设备的用户不可访问。加密的文档可以包括加密的个人文档和加密的文档片段。FIG5 illustrates an example method 500 for constructing a privacy-enhanced personal search index for a distributed network service as described herein. Example method 500 begins at operation 502, where an encrypted document, an encrypted opaque document digest, and a PIK may be received by a component of a server device of a cloud service system. The server device may represent an untrusted environment or a portion of an environment, thereby rendering the document inaccessible to the server device or a user of the server device. The encrypted document may include encrypted personal documents and encrypted document fragments.
在操作504中,可以创建个人搜索索引。在示例中,可以将加密的不透明文档摘要和被用来对加密的不透明文档摘要加密的PIK提供给促进文档编索引的过程。如本文所使用的文档编索引可以是指按照术语或符号对文档分类以便描述和/或总结文档的主题。该过程可以包括使用PIK对加密的不透明文档摘要解密,以及可选地将解密的不透明文档摘要与其他不透明文档摘要聚合以生成不透明文档摘要集合。在一些方面中,可能先前已经从客户端设备接收到其他不透明文档摘要。例如,其他不透明文档摘要可以与客户端设备上的特定用户或用户账户相关联。在其它方面中,可能先前已经从与特定用户、用户账户或组账户相关联的各种客户端设备接收到其他不透明文档摘要。该过程还可以包括对不透明文档摘要集合编索引以创建不透明术语和/或符号。不透明术语和/或符号然后可以被用来构建个人搜索索引。在一些方面中,个人搜索索引可以仅包括与特定客户端设备相关联的信息或与特定用户账户相关联的信息。操作504前进到结束操作508。In operation 504, a personal search index may be created. In an example, an encrypted opaque document digest and the PIK used to encrypt the encrypted opaque document digest may be provided to a process that facilitates document indexing. As used herein, document indexing may refer to categorizing documents by terms or symbols to describe and/or summarize the subject matter of the documents. The process may include decrypting the encrypted opaque document digest using the PIK and optionally aggregating the decrypted opaque document digest with other opaque document digests to generate a collection of opaque document digests. In some aspects, other opaque document digests may have been previously received from a client device. For example, the other opaque document digests may be associated with a particular user or user account on the client device. In other aspects, other opaque document digests may have been previously received from various client devices associated with a particular user, user account, or group account. The process may also include indexing the collection of opaque document digests to create opaque terms and/or symbols. The opaque terms and/or symbols may then be used to construct the personal search index. In some aspects, the personal search index may only include information associated with a particular client device or information associated with a particular user account. Operation 504 proceeds to end operation 508 .
在操作506,可以存储接收到的加密的文档。在示例中,服务器设备可以与存储管理实用工具通信。存储管理实用工具可以促进将加密的文档存储在一个或多个数据存储库中。在各方面中,存储管理实用工具可以位于服务器设备上,位于云服务系统的另一组件上,或者位于云服务系统可访问的计算设备上。数据存储库可以与存储管理实用工具位于同一位置,与存储管理实用工具分离地被定位,或者被分布在各种服务器设备之中。在至少一个示例中,数据存储库可以是仅对文档作者、一组特权观看者或者服务器设备的一组特权用户可访问的个人文档存储空间。操作506前进到到结束操作508。At operation 506, the received encrypted document may be stored. In an example, the server device may communicate with a storage management utility. The storage management utility may facilitate storing the encrypted document in one or more data repositories. In various aspects, the storage management utility may be located on the server device, on another component of the cloud service system, or on a computing device accessible to the cloud service system. The data repositories may be co-located with the storage management utility, located separately from the storage management utility, or distributed among various server devices. In at least one example, the data repositories may be personal document storage spaces accessible only to the document author, a set of privileged viewers, or a set of privileged users of the server device. Operation 506 proceeds to end operation 508.
图6示出了如本文所述的处理针对加密的文档的查询以用于与用于分布式网络服务的隐私增强的个人搜索索引一起使用的示例方法600。示例性方法600开始于操作602,其中客户端设备可以接收或生成针对由服务器设备上的云服务存储的文档的搜索查询。在各方面中,可以在明文或纯文本中接收或生成查询。在一个特定方面中,在与被用来将所搜索的文档传输给服务器设备的客户端设备不同的客户端设备上生成查询。FIG6 illustrates an example method 600 for processing queries for encrypted documents for use with a privacy-enhanced personal search index for a distributed network service as described herein. Example method 600 begins at operation 602, where a client device may receive or generate a search query for documents stored by a cloud service on a server device. In various aspects, the query may be received or generated in plain text or in plain text. In a specific aspect, the query is generated on a client device that is different from the client device used to transmit the searched document to the server device.
在操作604中,可以使用明文查询来生成明文查询摘要。在各方面中,可以分析和解析明文查询以提取明文查询术语和/或元数据。分析和解析操作可以由位于客户端设备上的软件执行或者由位于另一可信环境内的软件执行。明文查询术语和元数据可以被组合和/或组织成摘要文件,诸如明文查询摘要文件。In operation 604, a plaintext query summary can be generated using the plaintext query. In various aspects, the plaintext query can be analyzed and parsed to extract plaintext query terms and/or metadata. The analysis and parsing operations can be performed by software located on the client device or by software located within another trusted environment. The plaintext query terms and metadata can be combined and/or organized into a summary file, such as a plaintext query summary file.
在操作606中,可以生成不透明查询摘要。在示例中,PTK可以由客户端设备来生成或接收。PTK可以可操作以对一组数据值执行数据转换操作,如上面关于图4所讨论的。可以将PTK应用于明文查询文档以生成不透明查询摘要。在一些方面中,被应用于明文查询摘要的PTK可以是被应用于一个或多个所搜索的文档的明文文档摘要的相同PTK。In operation 606, an opaque query digest may be generated. In an example, a PTK may be generated or received by a client device. The PTK may be operable to perform a data transformation operation on a set of data values, as discussed above with respect to FIG. 4 . The PTK may be applied to a plaintext query document to generate the opaque query digest. In some aspects, the PTK applied to the plaintext query digest may be the same PTK applied to the plaintext document digest of one or more searched documents.
在操作608中,将加密的不透明查询摘要从客户端设备的可信环境传输给服务器设备的部分可信或不可信的环境。在各方面中,被用来对不透明查询摘要加密的PTK可以保持在客户端设备内。在这样的方面中,来自客户端设备的明文信息可以不被传输给或暴露给被查询的服务器设备。In operation 608, the encrypted opaque query digest is transmitted from the trusted environment of the client device to the partially trusted or untrusted environment of the server device. In various aspects, the PTK used to encrypt the opaque query digest can be maintained within the client device. In such aspects, plaintext information from the client device may not be transmitted to or exposed to the queried server device.
图7示出了如本文所述的用于使用用于分布式网络服务的隐私增强的个人搜索索引来取回加密的文档的示例方法700。示例性方法700开始于操作702,其中可以由分布式网络系统(例如,云服务系统)的服务器设备的组件接收不透明查询摘要。服务器设备可以表示不可信的环境或部分环境,从而使得不透明查询摘要可以不对服务器设备或服务器设备的用户可访问。FIG7 illustrates an example method 700 for retrieving encrypted documents using a privacy-enhanced personal search index for a distributed network service as described herein. Example method 700 begins at operation 702, where an opaque query digest may be received by a component of a server device of a distributed network system (e.g., a cloud service system). The server device may represent an untrusted environment or portion of an environment, such that the opaque query digest may not be accessible to the server device or a user of the server device.
在操作704中,可以生成不透明查询结果。在示例中,可以分析不透明查询摘要的内容并将其用作用来搜索个人搜索索引的输入。个人搜索索引可以包括来自先前接收到的不透明文档摘要的不透明数据。在一些方面中,个人搜索索引还可以包括来自一个或多个加密的个人文档的加密的文档片段。对个人搜索索引的搜索可以产生不透明查询结果,其可以根据诸如相关性、文档年龄、文档大小、用户简档信息等标准被排名。在各方面中,不透明查询结果可以包括不透明文档名称和/或标识符。在一个方面中,不透明查询结果可以备选地或者附加地包括加密的文档片段。在可以从查询工作流程移除文档存储的这样的方面中,流程前进到操作708。In operation 704, opaque query results can be generated. In an example, the content of the opaque query summary can be analyzed and used as input to search a personal search index. The personal search index can include opaque data from previously received opaque document summaries. In some aspects, the personal search index can also include encrypted document fragments from one or more encrypted personal documents. Searching the personal search index can produce opaque query results, which can be ranked according to criteria such as relevance, document age, document size, user profile information, etc. In various aspects, the opaque query results can include opaque document names and/or identifiers. In one aspect, the opaque query results can alternatively or additionally include encrypted document fragments. In such aspects where document storage can be removed from the query workflow, the process proceeds to operation 708.
在可选操作706中,可以搜索数据存储库以寻找加密的个人文档。在示例中,不透明查询结果可以被提供给存储管理实用工具。存储管理实用工具可以分析不透明查询结果以便在数据存储库中搜索具有与不透明查询结果中的数据匹配的数据(例如,字符串、字、字符、令牌等)的加密的个人文档和/或文档片段。在数据存储库中找到的文档可以被处理用于导出到客户端设备。In optional operation 706, the data repository can be searched for encrypted personal documents. In an example, the opaque query results can be provided to a storage management utility. The storage management utility can analyze the opaque query results to search the data repository for encrypted personal documents and/or document fragments having data (e.g., strings, words, characters, tokens, etc.) that matches the data in the opaque query results. Documents found in the data repository can be processed for export to a client device.
在操作708中,可以将不透明查询结果、加密的个人文档和加密的文档片段或它们的某种组合从服务器设备的部分可信或不可信的环境传输给客户端设备的可信环境。In operation 708 , the opaque query results, the encrypted personal document, and the encrypted document fragments, or some combination thereof, may be transmitted from the partially trusted or untrusted environment of the server device to the trusted environment of the client device.
图8示出了如本文所述的使用用于分布式网络服务的隐私增强的个人搜索索引来生成明文搜索结果的示例方法800。示例性方法800开始于操作802,其中可以由客户端设备的组件接收查询结果信息。查询结果信息可以包括不透明查询结果、加密的个人文档和加密的文档片段。FIG8 illustrates an example method 800 for generating plaintext search results using a privacy-enhanced personal search index for a distributed network service as described herein. Example method 800 begins at operation 802, where query result information can be received by a component of a client device. The query result information can include opaque query results, encrypted personal documents, and encrypted document fragments.
在操作804中,可以转换不透明查询结果。在示例中,可以使用对客户端设备可访问的PTK来将不透明查询结果转换为明文查询结果。该PTK可以是与如在图4A中描述的、被应用于明文文档摘要和明文查询摘要的相同PTK。操作802和804可以被顺序地或并行地执行。In operation 804, the opaque query result can be converted. In an example, the opaque query result can be converted into a plaintext query result using a PTK accessible to the client device. The PTK can be the same PTK that is applied to the plaintext document digest and the plaintext query digest as described in FIG. 4A . Operations 802 and 804 can be performed sequentially or in parallel.
在操作806中,加密的文档可以被解密。在示例中,可以使用对客户端设备可访问的PDK来对加密的个人文档和/或加密的文档片段解密。在一些方面中,被应用来对加密的个人文档解密的PDK可以是与如在图4B中描述的、被应用于明文个人文档和/或文档片段的相同PDK。In operation 806, the encrypted document can be decrypted. In an example, the encrypted personal document and/or the encrypted document fragment can be decrypted using a PDK accessible to the client device. In some aspects, the PDK applied to decrypt the encrypted personal document can be the same PDK applied to the plaintext personal document and/or the document fragment, as described in FIG4B .
在可选操作808中,个人文档被排名。在示例中,排名过程可以与客户端设备相关联。排名过程可以将明文查询结果与明文个人文档和/或明文文档片段一起应用。在一些方面中,可以根据若干标准(例如,文档内容、描述、年龄、大小、稀有度)对明文个人文档排名,从而使得最相关的文档可以位于结果列表上较高的位置,或者可以按照其他方式与不太相关的文件在图形上被不同地描述。In optional operation 808, the personal documents are ranked. In an example, the ranking process can be associated with the client device. The ranking process can apply the plaintext query results together with the plaintext personal documents and/or plaintext document fragments. In some aspects, the plaintext personal documents can be ranked according to several criteria (e.g., document content, description, age, size, rarity), such that the most relevant documents can be positioned higher on the results list or can be graphically depicted differently from less relevant documents in other ways.
在操作810中,可以生成排名的明文搜索结果。在一些示例中,在操作808中被描述的排名过程可以产生包括排名的查询结果的文件。然后可以将该文件与该文件中被引用的相应文档或文档片段匹配以创建排名的明文搜索结果。在其他示例中,在未执行排名操作808时,可以将明文查询结果应用于明文个人文档和/或明文文档片段,从而使得生成明文搜索结果。不可以按特定顺序对明文搜索结果排名。在各方面中,明文搜索结果可以包括明文文档和/或文档片段(或到其的链接)。In operation 810, ranked plaintext search results may be generated. In some examples, the ranking process described in operation 808 may produce a file including ranked query results. The file may then be matched with corresponding documents or document fragments referenced therein to create ranked plaintext search results. In other examples, when ranking operation 808 is not performed, the plaintext query results may be applied to plaintext personal documents and/or plaintext document fragments, thereby generating plaintext search results. The plaintext search results may not be ranked in a particular order. In various aspects, the plaintext search results may include plaintext documents and/or document fragments (or links thereto).
图9至图11和相关联的描述提供了对其中可以实践本发明的示例的各种操作环境的讨论。然而,关于图9至图11而被示出和讨论的设备和系统是用于示例和说明的目的,而不是对可以被用于实践本文描述的本发明的示例的大量计算设备配置的限制。Figures 9 to 11 and the associated descriptions provide a discussion of various operating environments in which examples of the present invention may be practiced. However, the devices and systems shown and discussed with respect to Figures 9 to 11 are for purposes of example and illustration, and are not intended to limit the wide variety of computing device configurations that may be used to practice the examples of the present invention described herein.
图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来示出这样的附加存储装置。FIG9 is a block diagram illustrating the physical components of a computing device 902, such as components of a system that can be used to practice examples of the present disclosure. The computing device components described below can be applied to the computing device described above. In a basic configuration, computing device 902 can include at least one processing unit 904 and system memory 906. Depending on the configuration and type of computing device, system memory 906 can include, but is not limited to, volatile memory (e.g., random access memory), non-volatile memory (e.g., read-only memory), flash memory, or any combination of such memories. System memory 906 can include an operating system 907 and one or more program modules 908 suitable for running software applications 920 such as applications 928, an IO manager 924, and other utilities 926. As an example, system memory 906 can store instructions for execution. As another example, system memory 906 can include components such as knowledge resources or a learning program pool. For example, operating system 907 can be suitable for controlling the operation of computing device 902. In addition, examples of the present invention can be practiced in conjunction with a graphics library, other operating systems, or any other application and are not limited to any particular application or system. This basic configuration is illustrated in FIG9 by those components within dashed line 922. Computing device 902 may have additional features or functionality. For example, computing device 902 may also include additional data storage devices (removable and/or non-removable), such as, for example, magnetic disks, optical disks, or tapes. Such additional storage is illustrated in FIG9 by removable storage device 909 and non-removable storage device 910.
如上所述,多个程序模块和数据文件可以被存储在系统存储器906中。当在处理单元904上执行时,程序模块908(例如,应用928、输入/输出(I/O)管理器924和其他实用程序926)可以执行包括但不限于例如图4中所示的操作方法400的阶段中的一个或多个阶段的过程。可以根据本发明的示例而被使用的其他程序模块可以包括电子邮件和联系人应用、字处理应用、电子表格应用、数据库应用、幻灯片演示应用、输入识别应用、绘图或计算机辅助应用程序等。As described above, a number of program modules and data files may be stored in the system memory 906. When executed on the processing unit 904, the program modules 908 (e.g., applications 928, input/output (I/O) manager 924, and other utilities 926) may perform processes including, but not limited to, one or more of the stages of the operating method 400, such as shown in FIG4. Other program modules that may be used in accordance with examples of the present invention may include email and contact applications, word processing applications, spreadsheet applications, database applications, slide presentation applications, input recognition applications, drawing or computer-assisted applications, and the like.
另外,本发明的示例可以在包括分立电子元件的电路、包含逻辑门的封装或集成的电子芯片、利用微处理器的电路中或包含电子元件或微处理器的单个芯片上被实践。例如,本发明的示例可以经由片上系统(SOC)被实践,在SOC中图9中所示的组件中的每个或多个组件可以被集成到单个集成电路上。这样的SOC器件可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用功能,所有这些都被集成(或“烧”)到作为单个集成电路的芯片衬底上。当经由SOC来操作时,可以经由单个集成电路(芯片)上的与计算设备902的其他组件集成的专用逻辑来操作本文描述的功能。本公开内容的示例还可以使用能够执行诸如例如AND(与)、OR(或)和NOT(非)之类的逻辑运算的其他技术被实践,这些技术包括但不限于机械、光学、流体和量子技术。此外,本发明的示例可以在通用计算机内或者在任何其他电路或系统中被实践。In addition, the example of the present invention can be put into practice in a circuit including a discrete electronic component, a package or integrated electronic chip including a logic gate, a circuit utilizing a microprocessor, or a single chip including an electronic component or a microprocessor. For example, the example of the present invention can be put into practice via a system on chip (SOC), in which each or multiple components of the components shown in Figure 9 can be integrated into a single integrated circuit. Such an SOC device can include one or more processing units, a graphics unit, a communication unit, a system virtualization unit, and various application functions, all of which are integrated (or "burned") into a chip substrate as a single integrated circuit. When operated via an SOC, the functions described herein can be operated via a dedicated logic integrated with other components of a computing device 902 on a single integrated circuit (chip). The example of the present disclosure can also be put into practice using other technologies capable of performing logical operations such as, for example, AND, OR, and NOT, including but not limited to mechanical, optical, fluid, and quantum technologies. In addition, the example of the present invention can be put into practice in a general-purpose computer or in any other circuit or system.
计算设备902也可以具有一个或多个输入设备912,诸如键盘、鼠标、笔、声音输入设备、用于语音输入/识别的设备、触摸输入设备等。诸如显示器、扬声器、打印机等的一个或多个输出设备914也可以被包括。前述设备是示例,并且其他设备可以被使用。计算设备904可以包括允许与其他计算设备918通信的一个或多个通信连接916。合适的通信连接916的示例包括但不限于RF发射器、接收器和/或收发器电路;通用串行总线(USB)、并行和/或串行端口。The computing device 902 may also have one or more input devices 912, such as a keyboard, a mouse, a pen, a voice input device, a device for voice input/recognition, a touch input device, and the like. One or more output devices 914, such as a display, a speaker, a printer, and the like, may also be included. The aforementioned devices are examples, and other devices may be used. The computing device 904 may include one or more communication connections 916 that allow communication with other computing devices 918. Examples of suitable communication connections 916 include, but are not limited to, RF transmitters, receivers, and/or transceiver circuits; Universal Serial Bus (USB), parallel, and/or serial ports.
本文所使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可以包括按照用于存储诸如计算机可读指令、数据结构或程序模块之类的信息的任何方法或技术被实现的易失性和非易失性的、可移除和不可移除的介质。系统存储器906、可移除存储设备909和不可移除存储设备910都是计算机存储介质示例(即,存储器存储装置)。计算机存储介质可以包括RAM、ROM、电可擦只读存储器(EEPROM)、闪存或其它存储器技术,CD-ROM、数字万用盘(DVD)或其他光学存储装置,磁带盒、磁带、磁盘存储装置或其他磁性存储设备,或者可以被用来存储信息并且可以由计算设备902访问的任何其他制品。任何这样的计算机存储介质可以是计算设备902的一部分。计算机存储介质不包括载波或其他传播或调制的数据信号。As used herein, the term computer-readable media may include computer storage media. Computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in accordance with any method or technology for storing information such as computer-readable instructions, data structures, or program modules. System memory 906, removable storage device 909, and non-removable storage device 910 are all examples of computer storage media (i.e., memory storage devices). Computer storage media may include RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical storage devices, magnetic cassettes, magnetic tape, magnetic disk storage devices or other magnetic storage devices, or any other article that can be used to store information and can be accessed by computing device 902. Any such computer storage media may be part of computing device 902. Computer storage media does not include carrier waves or other propagated or modulated data signals.
通信介质可以通过计算机可读指令、数据结构、程序模块或诸如载波或其他传输机制之类的调制的数据信号中的其他数据被体现,并且包括任何信息传递介质。术语“调制的数据信号”可以描述具有以对信号中的信息编码的方式被设置或改变的一个或多个特征的信号。通过示例而非限制,通信介质可以包括诸如有线网络或直接接线连接之类的有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质之类的无线介质。Communication media may be embodied by computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and includes any information delivery media. The term "modulated data signal" may describe a signal that has one or more characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media.
图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端口),以用于向外部设备发送信号或从外部设备接收信号。Figures 10A and 10B show a mobile computing device 1000 that can be used to practice examples of the present invention, such as a mobile phone, smartphone, personal digital assistant, tablet personal computer, laptop computer, etc. For example, the mobile computing device 1000 can be implemented as a system 100, and the components of the system 100 can be configured to perform the processing methods described in Figure 4 and other examples. Referring to Figure 10A, an example of a mobile computing device 1000 for implementing these examples is shown. In a basic configuration, the mobile computing device 1000 is a handheld computer having both input elements and output elements. The mobile computing device 1000 typically includes a display 1005 and one or more input buttons 1010 that allow a user to enter information into the mobile computing device 1000. The display 1005 of the mobile computing device 1000 can also serve as an input device (e.g., a touch screen display). If included, an optional side input element 1015 allows further user input. The side input element 1015 can be a rotary switch, a button, or any other type of manual input element. In alternative examples, the mobile computing device 1000 can have more or fewer input elements. For example, the display 1005 may not be a touch screen in some examples. In another alternative example, the mobile computing device 1000 is a portable telephone system, such as a cellular phone. The mobile computing device 1000 may also include an optional keypad 1035. The optional keypad 1035 may be a physical keypad or a "soft" keypad generated on the touch screen display. In various examples, the output element includes a display 1005 for showing a graphical user interface (GUI), a visual indicator 1020 (e.g., a light emitting diode), and/or an audio transducer 1025 (e.g., a speaker). In some examples, the mobile computing device 1000 incorporates a vibration transducer for providing tactile feedback to the user. In another example, the mobile computing device 1000 incorporates input and/or output ports, such as an audio input (e.g., a microphone jack), an audio output (e.g., a headphone jack), and a video output (e.g., an HDMI port), for sending signals to or receiving signals from external devices.
图10B是示出移动计算设备的一个示例的架构的框图。也就是说,移动计算设备1000可以并入系统(即,架构)1002以实现一些示例。在示例中,系统1002被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、输入处理、日历、联系人管理器、消息接发客户端、游戏以及媒体客户端/播放器)的“智能电话”。在一些示例中,系统1002被集成为计算设备,诸如集成的个人数字助理(PDA)和无线电话。Figure 10B is a block diagram illustrating the architecture of one example of a mobile computing device. That is, mobile computing device 1000 can be incorporated into system (i.e., architecture) 1002 to implement some examples. In an example, system 1002 is implemented as a "smart phone" capable of running one or more applications (e.g., a browser, email, input processing, a calendar, a contact manager, a messaging client, a game, and a media client/player). In some examples, system 1002 is integrated into a computing device, such as an integrated personal digital assistant (PDA) and a wireless phone.
一个或多个应用程序1066可以被加载到存储器1062中,并且在操作系统1064上被运行或者与操作系统1064关联地被运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、字处理程序、电子表格程序、因特网浏览器程序、消息接发程序等。系统1002还包括存储器1062内的非易失性存储区域1068。非易失性存储区域1068可以被用来存储在系统1002断电的情况下不应被丢失的持久信息。应用程序1066可以使用非易失性存储区域1068中的信息和将信息存储在非易失性存储区域1068中,信息诸如是由电子邮件应用使用的电子邮件或其他消息等。同步应用(未示出)也驻留在系统1002上并被编程为与驻留在主计算机上的对应同步应用进行交互,以使被存储在非易失性存储区域1068中的信息与被存储在主机计算机处的对应信息保持同步。如应当认识到的,其他应用可以被加载到存储器1062中并且在移动计算设备1000上被运行,这些应用包括本文描述的应用928、IO管理器924和其他实用程序926。One or more application programs 1066 can be loaded into memory 1062 and run on or in association with operating system 1064. Examples of application programs include phone dialers, email programs, personal information management (PIM) programs, word processing programs, spreadsheet programs, Internet browser programs, messaging programs, and the like. System 1002 also includes a non-volatile storage area 1068 within memory 1062. Non-volatile storage area 1068 can be used to store persistent information that should not be lost if system 1002 loses power. Application programs 1066 can use and store information in non-volatile storage area 1068, such as emails or other messages used by the email application. A synchronization application (not shown) also resides on system 1002 and is programmed to interact with a corresponding synchronization application residing on the host computer to synchronize information stored in non-volatile storage area 1068 with corresponding information stored on the host computer. As should be appreciated, other applications may be loaded into memory 1062 and executed on mobile computing device 1000 , including the applications 928 described herein, IO manager 924 , and other utilities 926 .
系统1002具有电源1070,其可以被实现为一个或多个电池。电源1070还可以包括外部电源,诸如对电池进行补充或再充电的AC适配器或供电坞架。The system 1002 has a power supply 1070, which can be implemented as one or more batteries. The power supply 1070 can also include an external power source, such as an AC adapter or a power docking station to replenish or recharge the batteries.
系统1002可以包括外围设备端口1078,其执行促进系统1002与一个或多个外围设备之间的连接的功能。去往和来自外围设备端口1072的传输在操作系统1064的控制下被进行。换句话说,由外围设备端口1078接收到的通信可以经由操作系统1064被传播到应用程序1066,反之亦然。The system 1002 may include a peripheral device port 1078 that performs the function of facilitating a connection between the system 1002 and one or more peripheral devices. Transmissions to and from the peripheral device port 1072 are performed under the control of the operating system 1064. In other words, communications received by the peripheral device port 1078 can be propagated to the application 1066 via the operating system 1064, and vice versa.
系统1002还可以包括执行传输和接收射频通信的功能的无线电1072。无线电1072经由通信运营商或服务提供商来促进系统1002与“外部世界”之间的无线连接。去往和来自无线电1072的传输在操作系统1064的控制下被进行。换句话说,由无线电1072接收到的通信可以经由操作系统1064被传播到应用程序1066,反之亦然。The system 1002 may also include a radio 1072 that performs the functions of transmitting and receiving radio frequency communications. The radio 1072 facilitates wireless connectivity between the system 1002 and the "outside world" via a communications carrier or service provider. Transmissions to and from the radio 1072 are performed under the control of the operating system 1064. In other words, communications received by the radio 1072 can be propagated to the applications 1066 via the operating system 1064, and vice versa.
视觉指示器1020可以被用来提供视觉通知,和/或音频接口1074可以被用来经由音频换能器1025产生可听通知。在所例示的示例中,视觉指示器1020是发光二极管(LED)并且音频换能器1025是扬声器。这些设备可以被直接地耦合到电源1070,从而使得当被激活时,它们即使在处理器1060和其他组件可能为了保存电池电力而被关闭的情况下也在由通知机制指定的持续时间内保持开启。LED可以被编程为无限期地保持开启,直到用户采取行动来指示设备的通电状态。音频接口1074被用来向用户提供可听信号和从用户接收可听信号。例如,除了被耦合到音频换能器1025之外,音频接口1074也可以被耦合到麦克风以接收可听输入,诸如以促进电话交谈。根据本发明的示例,麦克风也可以充当音频传感器以促进对通知的控制,如下面将被描述的。系统1002还可以包括视频接口1076,其实现机载相机1030的用来记录静止图像、视频流等的操作。The visual indicator 1020 can be used to provide a visual notification, and/or the audio interface 1074 can be used to generate an audible notification via the audio transducer 1025. In the illustrated example, the visual indicator 1020 is a light emitting diode (LED) and the audio transducer 1025 is a speaker. These devices can be directly coupled to the power supply 1070 so that when activated, they remain on for the duration specified by the notification mechanism even when the processor 1060 and other components may be turned off to save battery power. The LED can be programmed to remain on indefinitely until the user takes action to indicate the power-on state of the device. The audio interface 1074 is used to provide an audible signal to the user and receive an audible signal from the user. For example, in addition to being coupled to the audio transducer 1025, the audio interface 1074 can also be coupled to a microphone to receive audible input, such as to facilitate a telephone conversation. According to an example of the present invention, the microphone can also serve as an audio sensor to facilitate control of the notification, as will be described below. The system 1002 may also include a video interface 1076 that enables operation of the onboard camera 1030 to record still images, video streams, and the like.
实现系统1002的移动计算设备1000可以具有附加的特征或功能。例如,移动计算设备1000也可以包括附加的数据存储设备(可移除和/或不可移除的),诸如磁盘、光盘或磁带。这样的附加的存储装置在图10B中由非易失性存储区域1068示出。The mobile computing device 1000 implementing the system 1002 may have additional features or functionality. For example, the mobile computing device 1000 may also include additional data storage devices (removable and/or non-removable), such as magnetic disks, optical disks, or tapes. Such additional storage is illustrated in FIG10B by the non-volatile storage area 1068.
由移动计算设备1000生成或捕获并经由系统1002被存储的数据/信息如上所述可以被在本地存储在移动计算设备1000上,或者这些数据可以被存储在可以经由无线电1072或经由移动计算设备1000和与移动计算设备1000相关联的分离的计算设备(例如,诸如因特网之类的分布式计算网络中的服务器计算机)之间的有线连接被访问的任何数量的存储介质上。如应当认识到的,这样的数据/信息可以经由移动计算设备1000经由无线电1072或经由分布式计算网络被访问。类似地,根据众所周知的数据/信息传送和存储手段(包括电子邮件和协作数据/信息共享系统),这样的数据/信息可以容易地在计算设备之间被传送以用于存储和使用。The data/information generated or captured by the mobile computing device 1000 and stored via the system 1002 may be stored locally on the mobile computing device 1000 as described above, or such data may be stored on any number of storage media that can be accessed via the radio 1072 or via a wired connection between the mobile computing device 1000 and a separate computing device associated with the mobile computing device 1000 (e.g., a server computer in a distributed computing network such as the Internet). As will be appreciated, such data/information may be accessed via the mobile computing device 1000 via the radio 1072 or via a distributed computing network. Similarly, such data/information may be readily transferred between computing devices for storage and use according to well-known data/information transmission and storage means, including email and collaborative data/information sharing systems.
图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获得内容。Figure 11 shows an example of the architecture of a system for providing an application as described above, which reliably accesses the target data on the storage system and handles communication failures to one or more client devices. The target data accessed, interacted with, or edited in association with application 928, IO manager 924, other utilities 926, and storage devices can be stored in different communication channels or other storage types. For example, directory services 1122, web portals 1124, mailbox services 1126, instant messaging storage repositories 1128, or social networking sites 1130, applications 928, IO manager 924, other utilities 926 can be used to store various documents, and the storage system can use any of these types of systems, etc., for realizing data utilization, as described herein. Server 1120 can provide a storage system for use by the client operating on general computing device 902 and mobile device 1000 through network 1115. For example, the network 1115 may include the Internet or any other type of local or wide area network, and the client node may be implemented as a computing device 902 embodied in a personal computer, a tablet computing device, and/or implemented by a mobile computing device 1000 (e.g., a smartphone). Any of these examples of the client computing device 902 or 1000 may obtain content from the repository 1116.
贯穿本说明书已经提及了“一个示例”或“示例”,这意味着在至少一个示例中包括特定描述的特征、结构或特性。因此,对这样的短语的使用可能是指多于仅一个例子。另外,所描述的特征、结构或特性可以按照任何合适的方式在一个或多个示例中被组合。References throughout this specification to "one example" or "an example" mean that a particular described feature, structure, or characteristic is included in at least one example. Thus, use of such phrases may refer to more than just one example. Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more examples.
然而,相关领域的技术人员可以认识到,可以在没有这些具体细节中的一个或多个细节的情况下,或者利用其他方法、资源、材料等来实践这些示例。在其他情况中,公知的结构、资源、或操作没有被示出或详细描述,仅仅是为了避免模糊示例的各方面。However, one skilled in the relevant art will recognize that the examples may be practiced without one or more of these specific details, or with other methods, resources, materials, etc. In other instances, well-known structures, resources, or operations are not shown or described in detail solely to avoid obscuring aspects of the examples.
虽然已经例示和描述了样本示例和应用,但是将会理解,示例不限于上述精确的配置和资源。在不脱离所要求保护的示例的范围的情况下,可以在本文描述的方法和系统的布置、操作和细节中做出对于本领域技术人员来说显而易见的各种修改、改变和变型。Although sample examples and applications have been illustrated and described, it will be understood that the examples are not limited to the precise configuration and resources described above. Various modifications, changes, and variations apparent to those skilled in the art may be made in the arrangement, operation, and details of the methods and systems described herein without departing from the scope of the claimed examples.
Claims (19)
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/753,225 | 2015-06-29 | ||
| US14/753,225 US10083315B2 (en) | 2015-06-29 | 2015-06-29 | Privacy enhanced personal search index |
| PCT/US2016/039188 WO2017003842A1 (en) | 2015-06-29 | 2016-06-24 | Privacy enhanced personal search index |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1246440A1 HK1246440A1 (en) | 2018-09-07 |
| HK1246440B true HK1246440B (en) | 2022-07-29 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10013574B2 (en) | Method and apparatus for secure storage and retrieval of encrypted files in public cloud-computing platforms | |
| US10833870B2 (en) | Cryptographic operations in an isolated collection | |
| US10223548B2 (en) | Scrubber to remove personally identifiable information | |
| US9197613B2 (en) | Document processing method and system | |
| CN107820614B (en) | Privacy-enhanced personal search index | |
| EP3566415B1 (en) | Successive cryptographic techniques | |
| US11418592B2 (en) | Uploading user and system data from a source location to a destination location | |
| US8769302B2 (en) | Encrypting data and characterization data that describes valid contents of a column | |
| US20180198610A1 (en) | Partially encrypted conversations via keys on member change | |
| US11588635B2 (en) | Strong resource identity in a cloud hosted system | |
| HK1246440B (en) | Privacy enhanced personal search index | |
| NZ737298B2 (en) | Privacy enhanced personal search index | |
| Pervez et al. | Privacy-aware relevant data access with semantically enriched search queries for untrusted cloud storage services | |
| Swathika et al. | Ai-infused cloud storage management: Structured, secure, interactive and efficient retrieval system | |
| BR112017024360B1 (en) | SYSTEM FOR CREATING A PRIVACY ENHANCED PERSONAL SEARCH INDEX |