IP Library Granted Patent US 10,972,270
Granted Patent B2
US 10,972,270 · App. 15/898,505 · Granted Apr 6, 2021

Secure initialization vector generation

Inventor: Matthew John Campagna (Bainbridge Island, WA)
Assignee: Amazon Technologies, Inc.
H04L9/16G06F21/602H04L9/0618H04L9/0637H04L9/0816H04L9/14H04L9/3239H04L9/3242H04L63/06H04L9/0643H04L9/30H04L63/0428H04L63/123
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,972,270
App. No.
15/898,505
Granted
Apr 6, 2021
Kind
B2
Abstract

A plaintext and cryptographic key are used to generate an initialization vector to be used in a cryptographic algorithm, such as an encryption algorithm. In some examples, the plaintext and cryptographic key are input into an effectively one-way function, such as a cryptographic hash function, the output of which is usable as an initialization vector. Cryptographic keys may be rotated probabilistically based at least in part on probabilities of output collisions of the effectively one-way function to ensure a low probability of two different plaintexts resulting in calculation of the same initialization vector for use with the same cryptographic key.

Claims (31)

1. A computer-implemented method, comprising:

generating, by a computer system, an initialization vector based at least in part on a cryptographic hash of both data and a cryptographic key; and

generating, by the computer system, output of a cryptographic algorithm using a set of inputs, wherein the set of inputs is based at least in part on the initialization vector and the data.

2. The computer-implemented method of claim 1 , wherein the set of inputs include the data and the initialization vector.

3. The computer-implemented method of claim 2 , wherein the set of inputs comprises the cryptographic key.

4. The computer-implemented method of claim 1 , wherein the cryptographic algorithm comprises a block cipher.

5. The computer-implemented method of claim 1 , wherein the cryptographic algorithm is an encryption algorithm.

6. The computer-implemented method of claim 1 , wherein the set of inputs further comprises additional authenticated data (AAD).

7. The computer-implemented method of claim 1 , wherein the data is plaintext to be encrypted by the cryptographic algorithm.

8. A system, comprising:

memory to store instructions executable by one or more processors to cause the system to:

obtain an initialization vector based at least in part on a cryptographic hash of a combination of data and a cryptographic key; and

input into a cryptographic algorithm a set of inputs to obtain output of the cryptographic algorithm, wherein the set of inputs is based at least in part on the initialization vector and the data.

9. The system of claim 8 , wherein the instructions that cause the system to obtain the initialization vector are executable to cause the system to generate the initialization vector.

10. The system of claim 8 , wherein the data is plaintext data.

11. The system of claim 8 , wherein the cryptographic operation is an encryption operation.

12. The system of claim 11 , wherein the set of inputs is further based at least in part on the cryptographic key.

13. The system of claim 8 , wherein the cryptographic algorithm is a symmetric-key cryptographic algorithm.

14. The system of claim 9 , wherein the cryptographic algorithm utilizes a block cipher.

15. A non-transitory computer-readable storage medium storing instructions that, if executed by one or more processors of a computer system, cause the computer system to:

generate an initialization vector based at least in part on output of a one-way function of data and a cryptographic key; and

obtain output of a cryptographic algorithm based at least in part on a set of inputs, wherein the set of inputs is based at least in part on the initialization vector and the data.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the initialization vector is generated based at least in part on a cryptographic hash function applied to inputs comprising the data.

17. The non-transitory computer-readable storage medium of claim 15 , wherein the set of inputs comprises the cryptographic key, the initialization vector, and the data.

18. The non-transitory computer-readable storage medium of claim 15 , wherein the data is plaintext.

19. The non-transitory computer-readable storage medium of claim 15 , wherein the cryptographic algorithm outputs ciphertext and the initialization vector.

20. The non-transitory computer-readable storage medium of claim 15 , wherein the set of inputs further comprises additional authenticated data (AAD).

21. The computer-implemented method of claim 1 , wherein the initialization vector is generated based at least in part on a one-way cryptographic hash of plaintext and the cryptographic key.

22. The computer-implemented method of claim 21 , further comprising encrypting the plaintext using both the initialization vector and the cryptographic key.

23. The computer-implemented method of claim 1 , wherein the initialization vector is generated based at least in part on a one-way cryptographic hash of an incomplete portion of plaintext and an incomplete portion of the cryptographic key, and

further comprising encrypting a complete portion of the plaintext using the initialization vector and the complete cryptographic key.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2018
From: CAMPAGNA, MATTHEW JOHN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 044962/0361 →
Continuity (3)
Continuation 15225725 · Aug 1, 2016
Continuation 14225243 · Mar 25, 2014
Related Publication 20180176014A1 · Jun 21, 2018