Data encryption and isolation
AssigneeGoogle Inc.
InventorsTomas Gunnarson, Sigurdur Asgeirsson
Life of this patent
Estimating the term…
Abstract
A method of storing data for a computer application in a shared data store is disclosed. The method includes receiving a data submission from the computer application, receiving an encryption key from the computer application, encrypting the submitted data using the encryption key, and storing the data in encrypted form in a data store that is accessible to the computer application and other independent applications, and indexing the stored data in a shared index.
Claims21
A computer-implemented method comprising:
- receiving, by a search application running on a computing system and from a requesting application running on the same computing system that runs the search application,
- an encryption key that is specific to the requesting application, and
- an unencrypted query for content associated with the requesting application that is stored in a common data store local to the computing system that runs the search application and the requesting application,
- wherein the common data store is configured to store content for multiple applications configured to run on the same computing system that runs the search application and the requesting application, with the multiple applications including the requesting application, and
- wherein the search application includes an extension that is configured to enable communication on the computing system among the search application, the requesting application, an information index also local to the computing system that runs the search application and the requesting application, and the common data store;
- encrypting, by the search application, at least a portion of the received unencrypted query using the encryption key that is specific to the requesting application;
- sending, by the search application to the information index, the encrypted query;
- receiving, by the search application from the information index, one or more index entries that match the encrypted query;
- retrieving, by the search application from the common data store, the content associated with the requesting application that matches at least one of the one or more index entries;
- detecting, by the search application, that at least a portion of the retrieved content associated with the requesting application is encrypted;
- applying, by the search application, the encryption key to decrypt the portion of the retrieved content associated with the requesting application that is encrypted;
- and
- providing, by the search application, the decrypted content associated with the requesting application to the requesting application.
One or more non-transitory machine-readable media configured to store instructions that are executable by one or more processors to perform operations comprising:
- Receiving, by a search application running on a computing system and from a requesting application running on the same computing system that runs the search application,
- an encryption key that is specific to the requesting application, and
- an unencrypted query for content associated with the requesting application that is stored in a common data store local to the computing system that runs the search application and the requesting application,
- wherein the common data store is configured to store content for multiple applications configured to run on the same computing system that runs the search application and the requesting application, with the multiple applications including the requesting application, and
- wherein the search application includes an extension that is configured to enable communication on the computing system among the search application, the requesting application, an information index also local to the computing system that runs the search application and requesting application, and the common data store;
- encrypting, by the search application, at least a portion of the received unencrypted query using the encryption key that is specific to the requesting application;
- sending, by the search application to the information index, the encrypted query;
- receiving by the search application from the information index, one or more index entries that match the encrypted query;
- retrieving, by the search application from the common data store, the content associated with the requesting application that matches at least one of the one or more index entries;
- detecting, by the search application, that at least a portion of the retrieved content associated with the requesting application is encrypted;
- applying, by the search application, the encryption key to decrypt the portion of the retrieved content associated with the requesting application that is encrypted;
- and
- providing, by the search application, the decrypted content associated with the requesting application to the requesting application.
A system comprising:
- one or more processors;
- and
- one or more machine-readable media configured to store instructions that are executable by the one or more processors to perform operations comprising:
- receiving, by a search application running on a computing system and from a requesting application running on the same computing system that runs the search application,
- an encryption key that is specific to the requesting application, and
- an unencrypted query for content associated with the requesting application that is stored in a common data store local to the computing system that runs the search application and the requesting application,
- wherein the common data store is configured to store content for multiple applications configured to run on the same computing system that runs the search application and the requesting application, with the multiple applications including the requesting application, and
- wherein the search application includes an extension that is configured to enable communication on the computing system among the search application, the requesting application, an information index also local to the computing system that runs the search application and the requesting application, and the common data store;
- encrypting, by the search application, at least a portion of the received unencrypted query using the encryption key that is specific to the requesting application;
- sending, by the search application to the information index, the encrypted query;
- receiving, by the search application from the information index, one or more index entries that match the encrypted query;
- retrieving, by the search application from the common data store, the content associated with the requesting application that matches at least one of the one or more index entries;
- detecting, by the search application, that at least a portion of the retrieved content associated with the requesting application is encrypted;
- applying, by the search application, the encryption key to decrypt the portion of the retrieved content associated with the requesting application that is encrypted;
- and
- providing, by the search application, the decrypted content associated with the requesting application to the requesting application.
Dependencies are inferred from the claim text.