Authenticating nonces prior to encrypting and decrypting cryptographic keys

US9806887B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9806887-B1
Application numberUS-201414494455-A
CountryUS
Kind codeB1
Filing dateSep 23, 2014
Priority dateSep 23, 2014
Publication dateOct 31, 2017
Grant dateOct 31, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Data security is enhanced by computing an authentication tag based at least in part on encrypted data and additional authenticated data that includes at least a nonce. The computed authentication tag is compared against a provided authentication tag. The encrypted data is decrypted and made available for use.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method, comprising: receiving a web service request through a request application programming interface wherein the web service request identifies an encrypted data key, additional authenticated data, and a first authentication tag, where the first authentication tag is cryptographically derived from the encrypted data key and the additional authenticated data, and where the additional authenticated data includes at least a nonce; obtaining a data key by decrypting the encrypted data key using a master key and the nonce; authenticating the nonce by at least: computing a second authentication tag, where the computing of the second authentication tag is based at least in part on the encrypted data key and the nonce; comparing the first authentication tag and the second authentication tag; detecting the first authentication tag and second authentication tag match; and making the obtained data key and the authenticated nonce available for use. 2. The computer-implemented method of claim 1 , wherein the authentication tag is a message authentication code. 3. The computer-implemented method of claim 1 , wherein the message is received from a requestor and making the obtained data key available for use comprises providing the obtained data key to the requestor. 4. A system, comprising: at least one computing device including a processor and a memory that implements one or more services, wherein the one or more services: receive a web service request through a request application programming interface, where the web service request identifies an encrypted data key, an authentication tag, and additional authenticated data that includes at least a nonce, where the authentication tag is cryptographically derived from the encrypted data key and the additional authenticated data; decrypt the encrypted data key by at least using a cryptographic key and the nonce, thereby obtaining a plaintext data key; determine that the nonce is authentic by comparing the authentication tag to a second authentication tag computed based at least in part on the encrypted data key and the nonce; and provide the plaintext data key and the nonce for input into a decryption algorithm to decrypt data. 5. The system of claim 4 , wherein the one or more services are further configured to receive the nonce separately from the additional authenticated data. 6. The system of claim 4 , wherein one or more services are further configured to input the plaintext data key and the nonce into the decryption algorithm. 7. The system of claim 4 , wherein the one or more services are configured to decrypt the encrypted data 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. 8. The system of claim 7 , wherein the block cipher mode of operation is Counter with CBC-MAC (CCM) mode. 9. The system of claim 4 , wherein the one or more services are configured to decrypt the encrypted data key by at least using the nonce to initialize an initialization vector. 10. The system of claim 4 , wherein the encrypted data key, the authentication tag, and the additional authenticated data are received in a request received from a requestor over a network and the one or more services are further configured to receive the nonce from the requestor. 11. The system of claim 4 , wherein the one or more services are further configured to generate the nonce and the encrypted data key. 12. The system of claim 4 , wherein determine, based at least in part on the additional authenticated data, that the encrypted data key is authentic. 13. A non-transitory computer-readable storage medium having stored thereon executable instructions that, if executed by one or more processors of a computer system, cause the computer system to at least: obtain a plaintext data key, an encrypted data key, additional authenticated data that includes at least a nonce, and the nonce, wherein both the additional authenticated data and the encrypted data key are based at least in part on the nonce and the encrypted data key is generated using the plaintext data key and the nonce; input data, the plaintext data key, and the nonce into a web service request through a request application programming interface to generate: a ciphertext; and an authentication tag that is cryptographically derived from the encrypted data key and the additional authenticated data; and cause the generated the ciphertext, the nonce, the authentication tag, and the encrypted data key to be stored in association with one another. 14. The non-transitory computer-readable storage medium of claim 13 , wherein the instructions that cause the computer system to obtain the plaintext data key, the encrypted data key, and the additional authenticated data, when executed by the one or more processors, cause the computer system to generate the nonce. 15. The non-transitory computer-readable storage medium of claim 13 , wherein the instructions that cause the computer system to obtain the plaintext data key, the encrypted data key, and the additional authenticated data, when executed by the one or more processors, cause the computer system to receive the nonce from another computer system. 16. The non-transitory computer-readable storage medium of claim 13 , wherein the instructions that cause the computer system to obtain the plaintext, when executed by the one or more processors, cause the computer system to generate the plaintext data key. 17. The non-transitory computer-readable storage medium of claim 13 , further comprising instructions that, when executed by the one or more processors, cause the computer system to: receive a request to decrypt the encrypted data key; verifying, based at least in part on the additional authenticated data and the authentication tag, authenticity of the nonce; and provide the plaintext data key in response to the request as a result of the authenticity of the nonce being verified. 18. The non-transitory computer-readable storage medium of claim 13 , wherein the additional authenticated data comprises the ciphertext. 19. The non-transitory computer-readable storage medium of claim 13 , wherein: the instructions that cause the computer system to obtain the plaintext data key, when executed by the one or more processors, cause the computer system to generate the plaintext data key; and the instructions that cause the computer system to provide the generated encrypted data key, when executed by the one or more processors, cause the computer system to provide the generated encrypted data key without providing the generated plaintext data key. 20. The computer-implemented method of claim 1 , wherein the encrypted data key and the additional authenticated data are cryptographically hashed using at least the master key to cryptographically derive the first authentication tag. 21. The system of claim 7 , wherein the block cipher mode of operation is Galois/Counter Mode.

Assignees

Inventors

Classifications

  • Generation of secret information including derivation or calculation of cryptographic keys or passwords · CPC title

  • H04L9/321Primary

    involving a third party or a trusted authority · CPC title

  • using challenge-response · CPC title

  • H04L9/3242Primary

    involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC · CPC title

  • involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token (network architectures or network communication protocols for supporting authentication of entities using an additional device in a packet data network H04L63/0853) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9806887B1 cover?
Data security is enhanced by computing an authentication tag based at least in part on encrypted data and additional authenticated data that includes at least a nonce. The computed authentication tag is compared against a provided authentication tag. The encrypted data is decrypted and made available for use.
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification H04L9/321. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Oct 31 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).