IP Library › Granted Patent US 9,521,126
Granted Patent B2
US 9,521,126 · App. 14/124,742 · Granted Dec 13, 2016

Processing data privately in the cloud

Inventors: Mark D. Yarvis (Portland, OR); Joshua Boelter (Portland, OR); Sharad K. Garg (Portland, OR); Hong Li (El Dorado Hills, CA)
Assignee: Intel Corporation
H04L63/045H04L63/0428H04L63/0435H04L63/0442H04L63/061
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,521,126
App. No.
14/124,742
Granted
Dec 13, 2016
Kind
B2
Abstract

While cloud services can offer processing from personal devices or synthesized data from multiple sources, many users prefer their data to remain private. According to some embodiments, private user data may be processed in the cloud without revealing the user identity to the cloud service provider. Only the user or an authorized agent of the user and the service's hardware platform have access to certain keys. The service application software and operating system only have access to encrypted data.

Claims (50)

1. A method comprising:

establishing a secure channel with a trusted party in a cloud via an untrusted cloud service provider;

receiving a trusted party public key from the trusted party, without disclosing the trusted party public key to the provider, via the secure channel through the provider;

sending encrypted private data via the secure channel through the provider for processing by the trusted party separately from the provider, wherein sending said encrypted private data comprises sending, to the trusted party, a first session key encrypted using the trusted party public key, and a client public key, the private data, and an nonce all encrypted together using the first session key;

receiving encrypted results of said processing from the trusted party via said secure channel through the provider, wherein receiving said encrypted results comprises receiving, from the trusted party, a second session key encrypted using the client public key, and the results of said processing and the nonce both encrypted together using the second session key; and

obtaining decrypted results of said processing, wherein obtaining said decrypted results comprises decrypting the second session key using a client private key, and decrypting the results of said processing and the nonce using the second session key.

2. The method of claim 1 wherein the trusted party is a third party.

3. The method of claim 1 wherein the trusted party is a trusted environment.

4. At least one non-transitory machine readable medium comprising a plurality of instructions that, in response to being executed on a computing device, cause the computing device to carry out a sequence comprising:

establishing a secure channel with a trusted party in a cloud via an untrusted cloud service provider;

receiving a trusted party public key from the trusted party without disclosing the trusted party public key to the provider, via the secure channel through the provider;

sending encrypted private data via the secure channel through the provider for processing by the trusted party separately from the provider, wherein sending said encrypted private data comprises sending to the trusted party, a first session key encrypted using the trusted party public key, and a client public key, the private data, and an nonce all encrypted together using the first session key;

receiving encrypted results of said processing from the trusted party via said secure channel through the provider, wherein receiving said encrypted results comprises receiving, from the trusted party, a second session key encrypted using the client public key, and the results of said processing and the nonce both encrypted together using the second session key; and

obtaining decrypted results of said processing, wherein obtaining said decrypted results comprises decrypting the second session key using a client private key, and decrypting the results of said processing and the nonce using the second session key.

5. The medium of claim 4 wherein the trusted party is a third party.

6. The medium of claim 4 wherein the trusted party is a trusted environment.

7. An apparatus comprising a non-transitory computer readable medium and a processor coupled to said medium, said medium storing instructions which when executed by the processor are configured to:

establish a secure channel with a trusted party in a cloud via an untrusted cloud service provider;

receive a trust party public key from the trusted party, without disclosing the trusted party public key to the provider, via the secure channel through the provider;

send encrypted private data via the secure channel through the provider for processing by the trusted party separately from the provider, wherein sending said encrypted private data comprises sending, to the trusted party, a first session key encrypted using the trusted party public key, and a client public key, the private data, and a nonce all encrypted together using the first session key;

receive encrypted results of said processing from the trusted party via said secure channel through the provider wherein receiving said encrypted results comprises receiving, from the trusted party, a second session key encrypted using the client public key, and the results of said processing and the nonce both encrypted together using the second session key; and

obtain decrypted results of said processing, wherein obtaining said decrypted results comprises decrypting the second session key using a client private key, and decrypting the results of said processing and the nonce using the second session key.

8. The apparatus of claim 7 including an enterprise client device to establish a secure channel through an enterprise server to said trusted party.

9. The apparatus of claim 7 wherein the trusted party is a third party.

10. The apparatus of claim 7 wherein the trusted party is a trusted environment.

11. A method comprising:

establishing a secure channel with a client in a cloud via an untrusted cloud service provider;

sending a trusted party public key to the client, without disclosing the trusted party public key to the provider, via the secure channel;

receiving encrypted private data from the client via the secure channel through the provider, wherein receiving said encrypted private data comprises receiving, from the client, a first session key encrypted using the trusted party public key, and a client public key, the private data, and a nonce all encrypted together using the first session key;

processing the encrypted private data separately from the provider, wherein processing said encrypted private data comprises decrypting the first session key using a trusted party private key, decrypting the client public key, the private data, and the nonce using the first session key, and processing the decrypted private data so as to obtain results of said processing; and

sending encrypted results of said processing to the client via said secure channel through the provider, wherein sending said encrypted results comprises sending, to the client, a second session key encrypted using the client public key, and the results of said processing and the nonce both encrypted together using the second session key.

12. The method of claim 11 wherein the trusted party is a third party.

13. The method of claim 11 wherein the trusted party is a trusted environment.

14. At least one non-transitory machine readable medium comprising a plurality of instructions that, in response to being executed on a computing device, cause the computing device to carry out a method comprising:

establishing a secure channel with a client in a cloud via an untrusted cloud service provider;

sending a trusted party public key to the client, without disclosing the trusted party public key to the provider, via the secure channel;

receiving encrypted private data via the secure channel, through the provider, wherein receiving said encrypted private data comprises receiving, from the client, a first session key encrypted using the trusted party public key, and a client public key, the private data, and a nonce all encrypted together using the first session key;

processing the encrypted private data separately from the provider, wherein processing said encrypted private data comprises decrypting the first session key using a trusted party private key, decrypting the client public key, the private data, and the nonce using the first session key, and processing the decrypted private data so as to obtain results of said processing; and

sending encrypted results of said processing via said secure channel through the provider, wherein sending said encrypted results comprises sending, to the client, a second session key encrypted using the client public key, and the results of said processing and the nonce both encrypted together using the second session key.

15. The medium of claim 14 wherein the trusted party is a third party.

16. The medium of claim 14 wherein the trusted party is a trusted environment.

17. An apparatus comprising a non-transitory computer readable medium and a processor coupled to said medium, said medium storing instructions which when executed by the processor are configured to:

establish a secure channel with a client in a cloud via an untrusted cloud service provider;

send a trusted party public key to the client, without disclosing the trusted party public key to the provider, via the secure channel;

receive encrypted private data from the client via the secure channel through the provider, wherein receiving said encrypted private data comprises receiving, from the client, a first session key encrypted using the trusted party public key, and a client public key, the private data, and a nonce all encrypted together using the first session key;

processes the encrypted private data separately from the provider, wherein processing said encrypted private data comprises decrypting the first session key using a trusted party private key, decrypting the client public key, the private data, and the nonce using the first session key, and processing the decrypted private data so as to obtain results of said processing; and

send encrypted results of said processing to the client via said secure channel through the provider, wherein sending said encrypted results comprises sending, to the client, a second session key encrypted using the client public key, and the results of said processing and the nonce both encrypted together using the second session key.

18. The apparatus of claim 12 including an enterprise server to establish a secure channel through an enterprise client device to said client.

19. The apparatus of claim 12 wherein the trusted party is a third party.

20. The apparatus of claim 12 wherein the trusted party is a trusted environment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2014
From: YARVIS, MARK D.; BOELTER, JOSHUA; GARG, SHARAD K.; LI, HONG
To: INTEL CORPORATION
Reel/Frame 032404/0056 →
Continuity (1)
Related Publication 20150058629A1 · Feb 26, 2015