IP Library › Granted Patent US 11,743,039
Granted Patent B2
US 11,743,039 · App. 17/234,829 · Granted Aug 29, 2023

System and method for data encryption using key derivation

Inventors: Guy Pe'Er (Talmey Yechiel, IL); Nir Steinherz (Modiin-Maccabim-Reut, IL)
Assignee: Coinbase IL RD Ltd.
H04L9/0877H04L9/06H04L9/083H04L9/0894H04L2209/24H04L2209/46
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,743,039
App. No.
17/234,829
Granted
Aug 29, 2023
Kind
B2
Abstract

A computerized system and method for symmetric encryption and decryption using two machines, the method including obtaining a message and an initialization vector on a first machine, sending the initialization vector to a second machine, where said second machine stores an encryption key for a Key Derivation Function (KDF), generating a derived key on the second machine by applying the KDF receiving as input both the encryption key and the initialization vector, sending the derived key from the second machine to the first machine, and encrypting the message using the derived key on the first machine.

Claims (37)

1. A system for encrypting and decrypting data without having to send messages and while preserving a structure of a standard ciphertext, comprising a computerized device, comprising:

a processing system of the computerized device comprising one or more processors; and

a memory system comprising one or more computer-readable media, wherein the one or more computer-readable media contain instructions that, when executed by the processing system, cause the processing system to perform operations comprising:

obtaining a message and an initialization vector on a first machine, wherein the initialization vector is a fixed-size input that is random or pseudorandom;

sending the initialization vector to a second machine via the Internet, wherein the second machine stores an encryption key for a Key Derivation Function (KDF), wherein the second machine generates a derived key by applying the KDF, wherein the KDF receives as input both the encryption key and the initialization vector;

receiving the derived key at the first machine via the Internet; and

encrypting the message using the derived key and the initialization vector on the first machine.

2. The system of claim 1 , wherein the first machine and the second machine are installed on a single electronic device.

3. The system of claim 1 , wherein the second machine is a hardware security module.

4. The system of claim 1 , wherein the second machine is a cloud key management system.

5. The system of claim 1 , wherein the second machine generates the derived key by performing a multi-party computation (MPC) process with another one or more machines.

6. A method comprising:

obtaining, by a first machine, a message and an initialization vector, wherein the initialization vector is a fixed-size input that is random or pseudorandom;

sending, by the first machine, via the Internet, the initialization vector to a second machine, wherein the second machine generates a derived key on the second machine using a Key Derivation Function (KDF) via a multi-party computation (MPC) process with one or more other machines, wherein the KDF receives as input both an encryption key and the initialization vector;

receiving, by the first machine, via the Internet, the derived key from the second machine; and

encrypting, by the first machine, the message using the derived key and the initialization vector.

7. The method of claim 6 , wherein the first machine and the second machine are installed on a single electronic device.

8. The method of claim 6 , wherein the first machine lacks access to the encryption key for the KDF.

9. The method of claim 6 , wherein the second machine is a hardware security module.

10. The method of claim 6 , wherein the second machine is a cloud key management system.

11. The method of claim 6 , further comprising:

obtaining, by the first machine, at least one encrypted message and at least one initialization vector, wherein the at least one initialization vector was (i) sent by the first machine to at least one other machine and (ii) used by the at least one other machine to generate at least one derived key in response to the first machine sending the at least one initialization vector;

receiving, by the first machine, the at least one derived key from the at least one other machine; and

decrypting, by the first machine, the at least one encrypted message using the at least one derived key and the at least one initialization vector.

12. A non-transitory, computer readable medium comprising instructions that, when executed by one or more processors, cause operations comprising:

obtaining a message and an initialization vector on a first machine, wherein the initialization vector is a fixed-size input that is random or pseudorandom;

sending the initialization vector to a second machine via the Internet, wherein the second machine stores an encryption key for a Key Derivation Function (KDF), wherein the second machine generates a derived key on the second machine by applying the KDF, wherein the KDF receives as input both the encryption key and the initialization vector;

receiving the derived key at the first machine via the Internet; and

encrypting the message using the derived key and the initialization vector on the first machine.

13. The non-transitory, computer readable medium of claim 12 , wherein the first machine and the second machine are installed on a single electronic device.

14. The non-transitory, computer readable medium of claim 12 , wherein the first machine lacks access to the encryption key for the KDF.

15. The non-transitory, computer readable medium of claim 12 , wherein the second machine is a hardware security module.

16. The non-transitory, computer readable medium of claim 12 , wherein the second machine is a cloud key management system, and wherein the second machine generates the derived key by performing a multi-party computation (MPC) process with another one or more machines.

17. The non-transitory, computer readable medium of claim 12 , the operations further comprising:

obtaining at least one encrypted message and at least one initialization vector on the first machine, wherein the at least one initialization vector was (i) sent by the first machine to at least one other machine and (ii) used by the at least one other machine to generate at least one derived key in response to the first machine sending the at least one initialization vector;

receiving the at least one derived key at the first machine; and

decrypting the at least one encrypted message using the at least one derived key and the at least one initialization vector on the first machine.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2022
From: PE'ER, GUY; STEINHERZ, NIR
To: COINBASE IL RD LTD.
Reel/Frame 059589/0144 →
Continuity (1)
Related Publication 20220337409A1 · Oct 20, 2022
Cited By (3)
US 12,712,723 US 12,719,670 US 12,726,475