IP Library Granted Patent US 12,438,700
Granted Patent B1
US 12,438,700 · App. 17/854,359 · Granted Oct 7, 2025

Threshold encryption and decryption using a key management service in a provider network

Inventors: Matthew J Campagna (Bainbridge Island, WA); Shay Gueron (Haifa, IL)
Assignee: Amazon Technologies, Inc.
H04L9/0825H04L9/0618H04L9/0894H04L9/14H04L9/3073
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 12,438,700
App. No.
17/854,359
Granted
Oct 7, 2025
Kind
B1
Abstract

Techniques for using a key management service to provide K of N threshold encryption and decryption in a provider network. The techniques encompass a K of N threshold encryption process and a K of N threshold decryption process. The encryption process can include encrypting a plaintext datum using a first key to produce a ciphertext datum. A secret sharing algorithm can be used to produce N plaintext shares of the first key. The N plaintext shares can be encrypted using N public keys of N asymmetric key pairs to produce N ciphertext shares. The decryption process can include recovering K plaintext shares from K of the N ciphertext shares. The K ciphertext shares can be recovered by the key management service decrypting the K ciphertext shares using K private keys of the N asymmetric key pairs to recover the K plaintext shares. The first key can be recovered from the K plaintext shares. The plaintext datum can be recovered by decrypting the ciphertext datum using the recovered first key.

Claims (68)

1. A method comprising:

encrypting, by a key management service in a provider network, a plaintext datum using a first symmetric key to produce a ciphertext datum;

using, by an integrated service in the provider network, a secret sharing algorithm to produce a set of N plaintext shares of the first symmetric key;

encrypting, by the key management service, each plaintext share of the set of N plaintext shares using a respective public key of a set of N asymmetric key pairs to produce a respective ciphertext share of a set of N ciphertext shares;

decrypting, by the key management service, each ciphertext share of a first set of K ciphertext shares of the set of N ciphertext shares using a respective private key of the set of N asymmetric key pairs to recover a respective plaintext share of a set of K plaintext shares of the set of N plaintext shares;

encrypting, by the key management service, each plaintext share of the set of K plaintext shares using a second symmetric key to produce a respective ciphertext share of a second set of K ciphertext shares;

decrypting, by the key management service, each ciphertext share of the second set of K ciphertext shares using the second symmetric key to recover a respective plaintext share of the set of K plaintext shares;

recovering, by the integrated service, the first symmetric key from the set of K plaintext shares; and

decrypting, by the key management service, the ciphertext datum using the first symmetric key to recover the plaintext datum.

2. The method of claim 1 , further comprising:

creating, by the key management service, the set of N asymmetric key pairs;

creating, by the key management service, the first symmetric key; and

creating, by the key management service, the second symmetric key.

3. The method of claim 1 , further comprising sending, by the integrated service, a request to the key management service to decrypt a ciphertext share of the second set of K ciphertext shares using the second symmetric key.

4. A method comprising:

encrypting a plaintext datum using a first key to produce a ciphertext datum;

using a secret sharing algorithm to produce each plaintext share of a set of N plaintext shares of the first key;

encrypting each share of the set of N plaintext shares using a respective public key of a set of N asymmetric key pairs to produce each ciphertext share of a set of N ciphertext shares;

decrypting, by a key management service in a provider network, each ciphertext share of a set of K ciphertext shares of the set of N ciphertext shares using a respective private key of the set of N asymmetric key pairs to recover each share of a set of K plaintext shares of the set of N plaintext shares;

encrypting each plaintext share of the set of K plaintext shares using a second key to produce a respective ciphertext share of a second set of K ciphertext shares;

decrypting each ciphertext share of the second set of K ciphertext shares using the second key to recover a respective plaintext share of the set of K plaintext shares;

recovering the first key from the set of K plaintext shares; and

decrypting the ciphertext datum using the first key to recover the plaintext datum.

5. The method of claim 4 , further comprising:

creating, by the key management service, the set of N asymmetric key pairs; and

creating, by the key management service, the first key.

6. The method of claim 4 , further comprising sending, by a trusted process, a request to the key management service to decrypt a ciphertext share of the set of K ciphertext shares using a respective private key of the set of N asymmetric key pairs.

7. The method of claim 4 , further comprising:

verifying that each ciphertext share of the second set of K ciphertext shares has not expired; and

recovering the first key from the set of K plaintext shares based on verifying that the second set of K ciphertext shares have not expired.

8. The method of claim 4 , wherein the plaintext datum comprises file data, document data, database data, or key data.

9. The method of claim 4 , wherein:

the set of N asymmetric key pairs are associated with a set of N entities; and

the method further comprises recovering the first key from the set of K plaintext shares in response to receiving requests associated with K entities of the set of N entities.

10. The method of claim 4 , further comprising:

sending the second set of K ciphertext shares to a set of personal computing devices associated with a set of K entities;

receiving the second set of K ciphertext shares from the set of personal computing devices associated with the set of K entities; and

recovering the first key from the set of K plaintext shares in response to receiving the second set of K ciphertext shares form the set of personal computing devices associated with the set of K entities.

11. The method of claim 4 , further comprising:

receiving a request to put the plaintext datum into an integrated service, the request associated with an entity, the entity associated with a particular asymmetric key pair of the set of N asymmetric key pairs; and

encrypting the plaintext datum using the first key in response to receiving the request.

12. The method of claim 4 , wherein the second key is specific to a set of one or more hosts in a provider network.

13. The method of claim 4 , wherein the secret sharing algorithm is based on Shamir secret sharing.

14. A system comprising:

a first set of one or more computing devices to implement an integrated service in a provider network, the integrated service comprising instructions which when executed cause the integrated service to:

encrypt a plaintext datum using a first key to produce a ciphertext datum,

use a secret sharing algorithm to produce each plaintext share of a set of N plaintext shares of the first key,

encrypt each plaintext share of the set of N plaintext shares using a respective public key of a set of N asymmetric key pairs to produce each ciphertext share of a set of N ciphertext shares,

encrypt each share of a set of K plaintext shares of the set of N plaintext shares using a second key to produce a first set of K ciphertext shares,

decrypt each ciphertext share of the first set of K ciphertext shares using the second key to recover the set of K plaintext shares,

recover the first key from the set of K plaintext shares of the set of N plaintext shares, and

decrypt the ciphertext datum using the first key to recover the plaintext datum; and

a second set of one or more computing devices to implement a key management service in a provider network, the key management service comprising instructions which when executed cause the key management service to:

decrypt each ciphertext share of a second set of K ciphertext shares of the set of N ciphertext shares using a respective private key of the set of N asymmetric key pairs to recover each plaintext share of the set of K plaintext shares.

15. The system of claim 14 , wherein the key management service further comprises instructions which when executed cause the key management service to:

create the set of N asymmetric key pairs; and

create the first key.

16. The system of claim 14 , wherein the integrated service further comprises instructions which when executed cause the integrated service to send a request to the key management service to decrypt a ciphertext share of the second set of K ciphertext shares using a respective private key of the set of N asymmetric key pairs.

17. The system of claim 14 , wherein the integrated service further comprises instructions which when executed cause the integrated service to:

verify that each ciphertext share of the first set of K ciphertext shares has not expired; and

recover the first key from the set of K plaintext shares based on verifying that the first set of K ciphertext shares have not expired.

18. The system of claim 17 , wherein:

the first key is to comprise a first symmetric key; and

the second key is to comprise a second symmetric key.

19. The system of claim 14 , wherein the plaintext datum comprises file data, document data, database data, or key data.

20. The system of claim 14 , wherein:

the set of N asymmetric key pairs are associated with a set of N entities; and

the integrated service further comprises instructions which when executed cause the integrated service to recover the first key from the set of K plaintext shares in response to receiving requests associated with K entities of the set of N entities.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2022
From: CAMPAGNA, MATTHEW J; GUERON, SHAY
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 060369/0250 →
References Cited (23)
US 6396929B1 · Chandersekaran · 2002 [cited by examiner]
US 6823070B1 · Smith · 2004 [cited by examiner]
US 6910129B1 · Deng · 2005 [cited by examiner]
US 8719952B1 · Damm-Goossens · 2014 [cited by examiner]
US 9130744B1 · King · 2015 [cited by examiner]
US 9773243B1 · Spies · 2017 [cited by examiner]
US 9819487B2 · Fujii · 2017 [cited by examiner]
US 10263775B2 · Setty · 2019 [cited by examiner]
US 10326803B1 · Haney · 2019 [cited by examiner]
US 10467422B1 · Roth · 2019 [cited by examiner]
US 20020087860A1 · William Kravitz · 2002 [cited by examiner]
US 20030076960A1 · Chandersekaran · 2003 [cited by examiner]
US 20080292096A1 · Schneider · 2008 [cited by examiner]
US 20090316900A1 · Qiu · 2009 [cited by examiner]
US 20100124328A1 · Schneider · 2010 [cited by examiner]
US 20110069834A1 · Urbanik · 2011 [cited by examiner]
US 20160253515A1 · Damgård · 2016 [cited by examiner]
US 20190325147A1 · Lu · 2019 [cited by examiner]
US 20200162246A1 · Schouppe · 2020 [cited by examiner]
US 20210194928A1 · Halford · 2021 [cited by examiner]
US 20210273784A1 · Gryb · 2021 [cited by examiner]
US 20210288798A1 · Vadhera · 2021 [cited by examiner]
US 20220166605A1 · Suurkivi · 2022 [cited by examiner]