IP Library › Granted Patent US 11,748,492
Granted Patent B1
US 11,748,492 · App. 17/194,996 · Granted Sep 5, 2023

Secure initialization vector generation

Inventor: Matthew John Campagna (Bainbridge Island, WA)
Assignee: Amazon Technologies, Inc.
G06F21/602H04L9/0618H04L9/0637H04L9/0816H04L9/14H04L9/16H04L9/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 11,748,492
App. No.
17/194,996
Granted
Sep 5, 2023
Kind
B1
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 (28)

1. A non-transitory computer-readable storage medium storing thereon executable instructions that, as a result of being 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 data; and

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

2. The non-transitory computer-readable storage medium of claim 1 , wherein the input further comprises additional authenticated data (AAD).

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

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

5. The non-transitory computer-readable storage medium of claim 1 , wherein the initialization vector is further generated based at least in part on a cryptographic key and the input comprises the cryptographic key.

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

7. A system, comprising:

one or more processors; and

memory that stores computer-executable instructions that are executable by the one or more processors to cause the system to:

obtain an initialization vector based at least in part on data; and

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

8. The system of claim 7 , wherein the cryptographic algorithm utilizes a block cipher.

9. The system of claim 7 , wherein the cryptographic algorithm comprises a symmetric-key cryptographic algorithm.

10. The system of claim 7 , wherein the initialization vector is further based at least in part on a cryptographic key.

11. The system of claim 10 , wherein the input is further based at least in part on the cryptographic key.

12. The system of claim 7 , wherein the data comprises plaintext data.

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

14. A computer-implemented method, comprising:

generating an initialization vector based at least in part on data; and

generating output of a cryptographic algorithm using an input, wherein the input is based at least in part on the initialization vector and the data.

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

16. The computer-implemented method of claim 14 , wherein the initialization vector is generated using a one-way function.

17. The computer-implemented method of claim 14 , wherein the cryptographic algorithm comprises an encryption algorithm.

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

19. The computer-implemented method of claim 14 , wherein the initialization vector is further generated based at least in part on a cryptographic key.

20. The computer-implemented method of claim 19 , wherein the input comprises the cryptographic key.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2021
From: CAMPAGNA, MATTHEW JOHN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 055522/0906 →
Continuity (3)
Continuation 15898505 · Feb 17, 2018
Continuation 15225725 · Aug 1, 2016
Continuation 14225243 · Mar 25, 2014
Cited By (3)
US 12,395,475 US 12,563,021 US 12,613,991