IP Library Granted Patent US 10,826,708
Granted Patent B2
US 10,826,708 · App. 15/798,117 · Granted Nov 3, 2020

Authenticating nonces prior to encrypting and decrypting cryptographic keys

Inventor: Matthew John Campagna (Bainbridge Island, WA)
Assignee: Amazon Technologies, Inc.
H04L9/3242H04L9/0822H04L9/0637H04L9/3234H04L9/3271
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,826,708
App. No.
15/798,117
Granted
Nov 3, 2020
Kind
B2
Abstract

Data security is enhanced by receiving a request that identifies an encrypted data key, an authentication tag, and additional authenticated data that includes at least a nonce. In some cases, the authentication tag is cryptographically derivable from the encrypted data key and the additional authenticated data. A system, in some cases, determines whether the nonce is authentic and decrypts the encrypted data key by using at least a cryptographic key and the nonce, thereby resulting in a plaintext data key that is usable in various contexts.

Claims (43)

1. A computer-implemented method, comprising:

at a first computing entity:

obtaining, from a web service application programming interface request from a second computing entity, an encrypted first key, a nonce generated by the second computing entity, and an authentication tag, wherein the authentication tag is derived using a keyed hash function based at least in part on the first key as a secret of the keyed hash function and a message that comprises the encrypted first key and the nonce;

authenticating the nonce based at least in part on the authentication tag; and

contingent upon successfully verifying authenticity of the nonce, decrypting the encrypted first key using a second key and the nonce.

2. The computer-implemented method of claim 1 , wherein the authentication tag is a first authentication tag and authenticating the nonce comprises:

computing a second authentication tag, where the computing of the second authentication tag is based at least in part on the encrypted first key and the nonce;

comparing the first authentication tag and the second authentication tag; and

detecting the first authentication tag and the second authentication tag match.

3. The computer-implemented method of claim 1 , further comprising:

at the first computing entity:

decrypting an encrypted data using the first key and the nonce, thereby generating plaintext data; and

providing the plaintext data to the second computing entity.

4. The computer-implemented method of claim 1 , wherein the message comprises the first key in an encrypted format and the nonce.

5. A system, comprising one or more non-transitory machine-readable mediums storing a set of instructions, which if performed by one or more processors, cause the system to at least:

obtain, through a web service application programming interface request from an entity, an encrypted first key, a nonce generated by the entity, and an authentication tag, wherein the first key is used by a keyed hash function to generate the authentication tag from an input comprising the encrypted first key and the nonce;

determine the nonce is authentic based at least the authentication tag; and

decrypt, as a result of authentication of the nonce, the encrypted first key by at least using a second key and the nonce.

6. The system of claim 5 , wherein the set of instructions to determine that the nonce is authentic further include instructions that, as a result of execution by the one or more processors, cause the system to compare the authentication tag to a second authentication tag computed based at least in part on the encrypted first key and the nonce.

7. The system of claim 5 , wherein the set of instructions include instructions that, as a result of execution by the one or more processors, cause the system to provide the decrypted first key and the nonce for input into a decryption algorithm to decrypt encrypted data in response to determining the nonce is authentic.

8. The system of claim 5 , wherein the set of instructions to decrypt the encrypted first key by at least using the second key and the nonce include instructions that, as a result of execution by the one or more processors, cause the system to initialize an initialization vector using the nonce.

9. The system of claim 5 , wherein the set of instructions include instructions that, as a result of execution by the one or more processors, cause the system to decrypt the encrypted first key using an authenticated encryption mode of a cryptographic algorithm, wherein the authenticated encryption mode is in accordance with a block cipher mode of operation.

10. The system of claim 9 , wherein the block cipher mode of operation is Galois/Counter (GCM) mode.

11. The system of claim 5 , wherein the encrypted first key, the authentication tag, and the nonce are obtained in a request obtained from a requestor over a network.

12. The system of claim 5 , wherein the set of instructions include instructions that, as a result of execution by the one or more processors, cause the system to generate the nonce and the encrypted first key.

13. A non-transitory computer-readable storage medium storing thereon executable instructions that, as a result of execution by one or more processors of a computer system, cause the computer system to at least:

obtain, from a web service application programming interface request from a different computer system, an encrypted first key, a nonce generated by the different computer system, and an authentication tag, wherein the first key is used in a keyed hash function to generate the authentication tag from a message comprising the encrypted first key and the nonce;

determine the nonce is authentic based at least the authentication tag; and

based at least in part on determining the nonce is authentic, decrypt the encrypted first key by at least using a second key and the nonce.

14. The non-transitory computer-readable storage medium of claim 13 , further comprising instructions that, as a result of execution by the one or more processors, cause the computer system to:

compute a second authentication tag, where the computing of the second authentication tag is based at least in part on the encrypted first key and the nonce;

compare the authentication tag and the second authentication tag;

detect the authentication tag and the second authentication tag match; and

make the decrypted first key and the nonce available for use in response to determining the authentication tag and the second authentication tag match.

15. The non-transitory computer-readable storage medium of claim 13 , further comprising instructions that, as a result of execution by the one or more processors, cause the computer system to provide the decrypted first key and the nonce for input into a decryption algorithm to decrypt data.

16. The non-transitory computer-readable storage medium of claim 13 , wherein the authentication tag is derived based at least in part on the encrypted first key, the nonce, and additional authenticated data.

17. The non-transitory computer-readable storage medium of claim 13 , wherein the authentication tag is a hash-based message authentication code.

18. The non-transitory computer-readable storage medium of claim 13 , further comprising instructions that, as a result of execution by the one or more processors, cause the computer system to:

obtain a second request to decrypt the encrypted first key;

verify authenticity of the nonce; and

provide the decrypted first key in response to the second request as a result of the authenticity of the nonce being verified.

19. The non-transitory computer-readable storage medium of claim 13 , wherein the authentication tag is derived further based at least in part on a ciphertext.

20. The non-transitory computer-readable storage medium of claim 13 , further comprising instructions that, as a result of execution by the one or more processors, cause the computer system to cryptographically hash the encrypted first key and the nonce, thereby deriving the authentication tag.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2017
From: CAMPAGNA, MATTHEW JOHN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 043985/0704 →
Continuity (2)
Continuation 14494455 · Sep 23, 2014
Related Publication 20180054309A1 · Feb 22, 2018
Cited By (1)
US 12,411,973