IP Library › Granted Patent US 10,027,640
Granted Patent B2
US 10,027,640 · App. 14/862,059 · Granted Jul 17, 2018

Secure data re-encryption

Inventors: Roberto Avanzi (Munich, DE); Rosario Cammarota (San Diego, CA); Ron Keidar (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04L63/061H04L9/0877H04L63/0428H04L63/062H04L63/0853H04W12/02H04L2209/60H04L2209/80H04W4/70
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 10,027,640
App. No.
14/862,059
Filed
Sep 22, 2015
Granted
Jul 17, 2018
Kind
B2
Art Unit
2492
USPC
713/171
Abstract

A method includes: decrypting, in a device, a first subset of encrypted data using a cryptographic device key associated with the device to produce first plain text, where a set of encrypted data comprises the first subset of encrypted data and a second subset of encrypted data, and where the first subset of encrypted data and the second subset of encrypted data each contain less encrypted data than the set of encrypted data and are different from each other; decrypting, in the device, the second subset of encrypted data using the cryptographic device key to produce second plain text; encrypting, in the device, the first plain text using a first ephemeral key to produce first re-encrypted data; and encrypting, in the device, the second plain text using a second ephemeral key to produce second re-encrypted data, the second ephemeral key being different from the first ephemeral key.

Claims (110)

1. A method comprising:

decrypting, using a hardware decryption engine of a cryptographic processor in a device, a first subset of encrypted data using a cryptographic device key associated with the device to produce first plain text, wherein a set of encrypted data comprises the first subset of encrypted data and a second subset of encrypted data, and wherein the first subset of encrypted data and the second subset of encrypted data each contain less encrypted data than the set of encrypted data and are different from each other, the cryptographic device key and the first plain text being stored, without requiring user input, in memory of the cryptographic processor inaccessible from outside of the cryptographic processor;

decrypting, using the decryption engine, the second subset of encrypted data using the cryptographic device key associated with the device to produce second plain text, the second plain text being stored, without requiring user input, in the memory of the cryptographic processor inaccessible from outside of the cryptographic processor, wherein decrypting the first and second subsets of the encrypted data is responsive to receiving the encrypted data from a data source;

encrypting, using a hardware encryption engine of a cryptographic processor in the device, the first plain text using a first ephemeral key to produce first re-encrypted data, the first ephemeral key being stored, without requiring user input, in the memory of the cryptographic processor inaccessible from outside of the cryptographic processor;

encrypting, using the encryption engine, the second plain text using a second ephemeral key to produce second re-encrypted data, the second ephemeral key being different from the first ephemeral key, the second ephemeral key being stored, without requiring user input, in the memory of the cryptographic processor inaccessible from outside of the cryptographic processor;

randomizing, using the encryption engine, the first re-encrypted data by applying a first nonce to the first re-encrypted data to produce first randomized data;

storing, without requiring user input, the first randomized data in a memory of the device outside of the cryptographic processor;

reversing, using the decryption engine, the randomization of and decrypting the first randomized data to produce third plaintext data responsive to a request to access the first randomized data, the third plain text being stored, without requiring user input, in the memory of the cryptographic processor inaccessible from outside the cryptographic processor;

generating second randomized data by re-encrypting the third plaintext data by encrypting the third plaintext content using a different cryptographic key than was used for the first randomized data and randomizing the encrypted third plaintext content using a second nonce different than the first nonce, the key used to encrypt the third plaintext being stored, without requiring user input, in the memory of the cryptographic processor inaccessible from outside the cryptographic processor; and

storing, without requiring user input, the second randomized data in the memory of the device outside of the cryptographic processor after processing the request to access the first randomized data.

2. The method of claim 1 , wherein the first ephemeral key is unique to the first subset of encrypted data.

3. The method of claim 1 , wherein the first subset of encrypted data comprises a plurality of blocks of encrypted data, wherein decrypting the first subset of encrypted data comprises decrypting each of the plurality of blocks of encrypted data separately, wherein the first plain text comprises a plurality of plain text blocks corresponding to the plurality of blocks of encrypted data, and wherein encrypting the first plain text comprises encrypting each of the plurality of plain text blocks using the first ephemeral key.

4. The method of claim 1 , further comprising:

determining, in the device, the first ephemeral key to use for encryption of the first plain text; and

determining, in the device, the second ephemeral key to use for encryption of the second plain text.

5. The method of claim 4 , wherein determining the first ephemeral key comprises generating the first ephemeral key in hardware of the device.

6. The method of claim 1 , further comprising:

associating, in the device, the first re-encrypted data with the first ephemeral key; and

associating, in the device, the second re-encrypted data with the second ephemeral key.

7. The method of claim 6 , wherein associating the first re-encrypted data with the first ephemeral key further comprises storing a first pointer to a location of the first ephemeral key with the first re-encrypted data, and wherein associating the second re-encrypted data with the second ephemeral key comprises storing a second pointer to a location of the second ephemeral key with the second re-encrypted data.

8. The method of claim 6 , wherein associating the first re-encrypted data with the first ephemeral key comprises storing data corresponding to the first re-encrypted data in association with the first ephemeral key, and wherein associating the second re-encrypted data with the second ephemeral key comprises storing data corresponding to the second re-encrypted data in association with the second ephemeral key.

9. The method of claim 1 , wherein reversing the randomization of and decrypting the first randomized data further comprises:

reversing the randomizing to produce reproduced first re-encrypted data using the first nonce and the first randomized data, wherein the reproduced first re-encrypted data match the first re-encrypted data;

decrypting the reproduced first re-encrypted data using the first ephemeral key to produce third plain text; and wherein generating second randomized data by re-encrypting the first randomized data using different cryptographic keys than those used for the first randomized data and re-randomizing the first randomized data using a second nonce different than the first nonce further comprises:

encrypting the third plain text using the cryptographic device key to produce a reproduced first subset of encrypted data;

decrypting the reproduced first subset of encrypted data using the cryptographic device key to produce fourth plain text;

encrypting the fourth plain text using the first ephemeral key to produce third re-encrypted data; and

applying a second nonce, that is different from the first nonce, to the third re-encrypted data to produce second randomized data that are different from the first randomized data.

10. The method of claim 9 , wherein applying the first nonce to the first re-encrypted data comprises exclusive OR-ing the first nonce and the first re-encrypted data.

11. A device comprising:

a memory; and

a hardware cryptographic processor communicatively coupled to the memory and comprising:

a decryption engine configured to:

decrypt a first subset of encrypted data using a cryptographic device key associated with the device to produce first plain text, the cryptographic device key and the first plain text being stored, without requiring user input, in memory of the cryptographic processor inaccessible from outside of the hardware cryptographic processor; and

decrypt a second subset of encrypted data using the cryptographic device key associated with the device to produce second plain text, the second plain text being stored, without requiring user input, in the memory of the cryptographic processor inaccessible from outside of the cryptographic processor, wherein decrypting the first and second subsets of the encrypted data is responsive to receiving the encrypted data from a data source;

wherein a set of encrypted data comprises the first subset of encrypted data and the second subset of encrypted data, and wherein the first subset of encrypted data and the second subset of encrypted data each contain less encrypted data than the set of encrypted data and are different from each other; and

an encryption engine communicatively coupled to the decryption engine and configured to:

encrypt the first plain text using a first ephemeral key to produce first re-encrypted data, the first ephemeral key being stored, without requiring user input, in the memory of the cryptographic processor inaccessible from outside of the hardware cryptographic processor;

encrypt the second plain text using a second ephemeral key to produce second re-encrypted data, the second ephemeral key being different from the first ephemeral key, the second ephemeral key being stored, without requiring user input, in the memory of the cryptographic processor inaccessible from outside of the hardware cryptographic processor;

randomize the first re-encrypted data by applying a first nonce to the first re-encrypted data to produce first randomized data; and

store, without requiring user input, the first randomized data in a memory of the device outside of the cryptographic processor,

wherein the decryption engine is further configured to reverse the randomization on the first randomized data and to decrypt the first randomized data to produce third plaintext content responsive to a request to access the first randomized data, the third plain text being stored, without requiring user input, in the memory of the cryptographic processor inaccessible from outside the cryptographic processor, and

wherein the encryption engine is configured to generate second randomized data by encrypting the third plaintext content using a different cryptographic key than was used for the first randomized data and randomizing the encrypted third plaintext content using a second nonce different than the first nonce, the key used to encrypt the third plaintext being stored, without requiring user input, in the memory of the cryptographic processor inaccessible from outside the cryptographic processor; and

wherein the encryption engine is configured to store, without requiring user input, the second randomized data in the memory of the device outside of the cryptographic processor after processing the request to access the first randomized data.

12. The device of claim 11 , wherein the first ephemeral key is unique to the first subset of encrypted data.

13. The device of claim 11 , wherein the first subset of encrypted data comprises a plurality of blocks of encrypted data, wherein the decryption engine is configured to decrypt the first subset of encrypted data by decrypting each of the plurality of blocks of encrypted data separately, wherein the first plain text comprises a plurality of plain text blocks corresponding to the plurality of blocks of encrypted data, and wherein the encryption engine is configured to encrypt the first plain text by encrypting each of the plurality of plain text blocks using the first ephemeral key.

14. The device of claim 11 , wherein the decryption engine is configured to decrypt the second subset of encrypted data while the encryption engine encrypts the first plain text.

15. The device of claim 11 , wherein the decryption engine and the encryption engine are a first crypto-engine pair, the hardware cryptographic processor further comprising a second crypto-engine pair configured to operate concurrently with the first crypto-engine pair.

16. The device of claim 11 , wherein the hardware cryptographic processor further comprises an input queue communicatively coupled to the decryption engine and an output queue communicatively coupled to the encryption engine, wherein the decryption engine is configured to read the first subset of encrypted data and the second subset of encrypted data from the input queue, wherein the encryption engine is configured to write the first re-encrypted data and the second re-encrypted data to the output queue, wherein the input queue is configured to be read from only by the decryption engine, and wherein the output queue is configured to be written to only by the encryption engine.

17. The device of claim 11 , wherein the hardware cryptographic processor further comprises an ephemeral key engine configured to:

produce the first ephemeral key and the second ephemeral key; and

provide the first ephemeral key and the second ephemeral key to the encryption engine;

wherein the hardware cryptographic processor is configured to inhibit access to the first ephemeral key and the second ephemeral key from outside of the hardware cryptographic processor.

18. The device of claim 17 , wherein the ephemeral key engine comprises a random-number generator.

19. The device of claim 11 , wherein:

the decryption engine being configured to reverse the randomization on the first randomized data and to decrypt the first randomized data to produce third plaintext content is further configured to:

reverse the randomization to produce reproduced first re-encrypted data using the first nonce and the first randomized data, wherein the reproduced first re-encrypted data match the first re-encrypted data; and

decrypt the reproduced first re-encrypted data using the first ephemeral key to produce third plain text;

wherein the encryption engine is configured to generate second randomized data by encrypting the third plaintext content using different cryptographic keys than were used for the first randomized data, and wherein the encryption engine is further configured to encrypt the third plain text using the cryptographic device key to produce a reproduced first subset of encrypted data;

the decryption engine is further configured to decrypt the reproduced first subset of encrypted data using the cryptographic device key to produce fourth plain text; and

the encryption engine is further configured to:

encrypt the fourth plain text using the first ephemeral key to produce third re-encrypted data; and

apply a second nonce, that is different from the first nonce, to the third re-encrypted data to produce second randomized data that are different from the first randomized data.

20. The device of claim 19 , wherein the hardware cryptographic processor further comprises a nonce engine configured to:

produce the first nonce and the second nonce; and

provide the first nonce and the second nonce to the encryption engine;

wherein the hardware cryptographic processor is configured to inhibit access to the first ephemeral key and the second ephemeral key from outside of the hardware cryptographic processor.

21. The device of claim 11 , wherein:

the decryption engine is further configured to decrypt source-encrypted data using a source cryptographic key to produce source plain text; and

the encryption engine is further configured to encrypt the source plain text using the cryptographic device key to produce the first subset of encrypted data.

22. A device comprising:

hardware encryption means; and

hardware decryption means for:

decrypting a first subset of encrypted data using a cryptographic device key associated with the device to produce first plain text, the cryptographic device key and the first plain text being stored, without requiring user input, in memory inaccessible from outside of the hardware decryption means and a hardware encryption means; and

decrypting a second subset of encrypted data using the cryptographic device key associated with the device to produce second plain text, the second plain text being stored, without requiring user input, in the memory inaccessible from outside of the hardware decryption means and the hardware encryption means, wherein decrypting the first and second subsets of the encrypted data is responsive to receiving the encrypted data from a data source;

wherein a set of encrypted data comprises the first subset of encrypted data and the second subset of encrypted data, and wherein the first subset of encrypted data and the second subset of encrypted data each contain less encrypted data than the set of encrypted data and are different from each other; and

the hardware encryption means is communicatively coupled to the hardware decryption means, and the hardware encryption means comprises means for:

encrypting the first plain text using a first ephemeral key to produce first re-encrypted data, the first ephemeral key being stored, without requiring user input, in the memory inaccessible from outside of the hardware decryption means and the hardware encryption means;

encrypting the second plain text using a second ephemeral key to produce second re-encrypted data, the second ephemeral key being different from the first ephemeral key, the second ephemeral key being stored, without requiring user input, in the memory inaccessible from outside of the hardware decryption means and the hardware encryption means;

randomizing the first re-encrypted data by applying a first nonce to the first re-encrypted data to produce first randomized data; and

storing, without requiring user input, the first randomized data in a memory outside of the hardware decryption means and the hardware encryption means,

wherein the hardware decryption means is further for reversing the randomization on the first randomized data and for decrypting the first randomized data to produce third plaintext content responsive to a request to access the first randomized data, the third plain text being stored, without requiring user input, in the memory inaccessible from outside of the hardware decryption means and the hardware encryption means, and

wherein the hardware encryption means is further for generating second randomized data by encrypting the third plaintext content using a different ephemeral key than was used for the first randomized data and for randomizing the encrypted third plaintext content using a second nonce different than the first nonce, the key used to encrypt the third plaintext being stored, without requiring user input, in the memory inaccessible from outside of the hardware decryption means and the hardware encryption means; and

wherein the hardware encryption means is configured to store, without requiring user input, the second randomized data in the memory outside of the hardware decryption means and the hardware encryption means.

23. The device of claim 22 , wherein the first ephemeral key is unique to the first subset of encrypted data.

24. The device of claim 22 , wherein the first subset of encrypted data comprises a plurality of blocks of encrypted data, wherein the decryption means are configured to decrypt the first subset of encrypted data by decrypting each of the plurality of blocks of encrypted data separately, wherein the first plain text comprises a plurality of plain text blocks corresponding to the plurality of blocks of encrypted data, and wherein the encryption means are configured to encrypt the first plain text by encrypting each of the plurality of plain text blocks using the first ephemeral key.

25. The device of claim 22 , wherein the decryption means are configured to decrypt the second subset of encrypted data while the encryption means encrypt the first plain text.

26. The device of claim 22 , further comprising an input queue communicatively coupled to the decryption means and an output queue communicatively coupled to the encryption means, wherein the decryption means are further for reading the first subset of encrypted data and the second subset of encrypted data from the input queue, wherein the encryption means are further for writing the first re-encrypted data and the second re-encrypted data to the output queue, wherein the input queue is configured to be read from only by the decryption means, and wherein the output queue is configured to be written to only by the encryption means.

27. The device of claim 22 , further comprising ephemeral key means for:

producing the first ephemeral key and the second ephemeral key;

providing the first ephemeral key and the second ephemeral key to the encryption means;

associating data associated with the first re-encrypted data with data corresponding to the first ephemeral key; and

associating data associated with the second re-encrypted data with data corresponding to the second ephemeral key.

28. The device of claim 22 , wherein:

the decryption means are further for:

reversing the randomization to produce reproduced first re-encrypted data using the first nonce and the first randomized data, wherein the reproduced first re-encrypted data match the first re-encrypted data; and

decrypting the reproduced first re-encrypted data using the first ephemeral key to produce the third plain text;

the encryption means are further for encrypting the third plain text using the cryptographic device key to produce a reproduced first subset of encrypted data;

the decryption means are further for decrypting the reproduced first subset of encrypted data using the cryptographic device key to produce fourth plain text; and

the encryption means are further for:

encrypting the fourth plain text using the first ephemeral key to produce third re-encrypted data; and

applying a second nonce, that is different from the first nonce, to the third re-encrypted data to produce second randomized data that are different from the first randomized data.

29. The device of claim 28 , further comprising nonce means for:

producing the first nonce and the second nonce; and

providing the first nonce and the second nonce to the encryption means;

associating the first nonce with data corresponding to the first re-encrypted data; and

associating the second nonce with data corresponding to the second re-encrypted data.

30. The device of claim 22 , wherein:

the decryption engine is further configured to decrypt source-encrypted data using a source cryptographic key to produce source plain text; and

the encryption engine is further configured to encrypt the source plain text using the cryptographic device key to produce the first subset of encrypted data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 23, 2015
From: AVANZI, ROBERTO; CAMMAROTA, ROSARIO; KEIDAR, RON
To: QUALCOMM INCORPORATED
Reel/Frame 037154/0970 →
Continuity (1)
Related Publication 20170085540A1 · Mar 23, 2017
Cited By (1)
US 12,477,028