IP Library › Granted Patent US 10,924,267
Granted Patent B2
US 10,924,267 · App. 16/112,224 · Granted Feb 16, 2021

Validating keys derived from an oblivious pseudorandom function

Inventors: Jason K. Resch (Chicago, IL); Hugo M. Krawczyk (Tarrytown, NY); Mark D. Seaborn (Algonquin, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
H04L9/083H04L9/0869H04L9/3271H04L9/008
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,924,267
App. No.
16/112,224
Granted
Feb 16, 2021
Kind
B2
Abstract

A computing device including a processor, memory, and instructions, interfaces with a key management system (KMS) that provides encryption keys using an Oblivious Pseudorandom Function (OPRF). The device obtains, based on a type of encryption key being requested, a public key of a public-private key pair. The device creates an Oblivious Key Access Request (OKAR), including a blinded value associated with a requested encryption key. The OKAR is transmitted to the KMS, and a response is received. The response includes a blinded OPRF output, which yields an OPRF output as a result of being subjected to an unblinding operation. The OPRF output is validated using the public key, either directly or via a challenge, and in response to a positive validation, the OPRF output is used as a final key, or an intermediary key used to derive the final key.

Claims (67)

1. A computing device comprising:

an interface configured to interface and communicate with a key management system (KMS) via a communication system, the KMS configured to provide encryption keys using an Oblivious Pseudorandom Function (OPRF);

memory that stores operational instructions; and processing circuitry operably coupled to the interface and to the memory, wherein the processing circuitry is configured to execute the operational instructions to:

obtain, based on a type of encryption key being requested, a public key of a public-private key pair;

construct an Oblivious Key Access Request (OKAR) including a blinded value, the blinded value associated with a requested encryption key;

transmit the OKAR to the KMS; receive a response from the KMS, the response including a blinded OPRF output, the blinded OPRF output yielding an OPRF output as a result of being subjected to an unblinding operation; validate the OPRF output using the public key; and

in response to a positive validation of the OPRF output, use the OPRF output as a key.

2. The computing device of claim 1 , wherein the processing circuitry is further configured to execute the operational instructions to:

validate the OPRF output by validating the blinded OPRF output using a public OPRF key associated with a private OPRF key used to generate the blinded OPRF output.

3. The computing device of claim 1 , wherein the processing circuitry is further configured to execute the operational instructions to: validate the OPRF output by:

transmitting a challenge to the KMS, the challenge constructed based on a public key associated with the requested encryption key; receiving a challenge response from the KMS; and

determining whether the challenge response matches the blinded OPRF output.

4. The computing device of claim 3 , wherein the processing circuitry is further configured to execute the operational instructions to: include the challenge in one of an initial OKAR or a separate OKAR.

5. The computing device of claim 3 , wherein the processing circuitry is further configured to execute the operational instructions to: in response to determining that the challenge response matches the blinded OPRF output, use the OPRF output as an intermediate key to derive another key.

6. The computing device of claim 1 , wherein the processing circuitry is further configured to execute the operational instructions to:

in response to a failed validation, perform at least one of the following: discard the OPRF output and any recovered or derived key; generate and transmit another OKAR; or

attempt to identify which component or sub-component in the KMS is causing the failed validation.

7. The computing device of claim 1 , wherein the processing circuitry is further configured to execute the operational instructions to: determine the public key by:

generating both the public key and a corresponding private key;

transmitting the corresponding private key to the KMS; and

storing the public key.

8. A method comprising:

obtain, at a requesting device included in a key management system (KMS) configured to provide encryption keys using an Oblivious Pseudorandom Function (OPRF), a public a public key of a public-private key pair, wherein the public key obtained is determined, at least in part, based on a type of key being requested;

constructing, at the requesting device, an Oblivious Key Access Request (OKAR) including a blinded value, the blinded value associated with a requested key;

transmitting the OKAR from the requesting device to the KMS;

receiving, at the requesting device, a response from the KMS the response including a blinded OPRF output, the blinded OPRF output yielding an OPRF output as a result of being subjected to an unblinding operation;

validating, at the requesting device, the OPRF output using the public key; and

in response to a positive validation of the OPRF output, using the OPRF output as a key.

9. The method of claim 8 , further comprising: validating the OPRF output by validating the blinded OPRF output using a public OPRF key associated with a private OPRF key used to generate the blinded OPRF output.

10. The method of claim 8 , further comprising:

validating the OPRF output by:

transmitting a challenge from the requesting device to the KMS the challenge constructed based on a public key associated with the requested key;

receiving, at the requesting device, a challenge response from the KMS; and

determining, at the requesting device, whether the challenge response matches the blinded OPRF output.

11. The method of claim 10 , further comprising: including the challenge in one of an initial OKAR or a separate OKAR.

12. The method of claim 10 , further comprising: in response to determining that the challenge response matches the blinded OPRF output, using the OPRF output as an intermediate key to derive another key.

13. The method of claim 10 , further comprising:

in response to determining that the challenge response fails to match the blinded OPRF output, performing at least one of: discarding the OPRF output and any recovered or derived key;

generating and transmitting another OKAR; or

attempting to identify which component or sub-component in the KMS is causing the challenge response and the blinded OPRF output to be different.

14. The method of claim 8 , the method further comprising:

determining the public key by: generating both the public key and a corresponding private key;

transmitting the corresponding private key to the KMS; and

storing the public key.

15. A method comprising:

determining, at a requesting device included a key management system (KMS) configured to provide encryption keys using an Oblivious Pseudorandom Function (OPRF), a public key of a public-private key pair based on a type of encryption key being requested;

constructing, at the requesting device, an Oblivious Key Access Request (OKAR) including a blinded value, the blinded value associated with a requested encryption key;

transmitting the OKAR from the requesting device to a server device included in the KMS;

receiving a response from the server device included in the KMS, the response including a blinded OPRF output, the blinded OPRF output yielding an OPRF output as a result of being subjected to an unblinding operation;

validating, at the requesting device, the OPRF output using the public key; and

in response to a positive validation of the OPRF output, using the OPRF output to generate an encryption key.

16. The method of claim 15 , further comprising: validating the OPRF output by validating the blinded OPRF output directly, using a public OPRF key associated with a private OPRF key used to generate the blinded OPRF output.

17. The method of claim 15 , further comprising:

validating the OPRF output indirectly by:

transmitting a challenge from the requesting device to the server device included in the KMS, the challenge constructed based on a public key associated with the requested encryption key;

receiving, at the requesting device, a challenge response from the server device included in the KMS; and

determining, at the requesting device, whether the challenge response matches the blinded OPRF output.

18. The method of claim 17 , further comprising: including the challenge in one of an initial OKAR or a separate OKAR.

19. The method of claim 15 , further comprising:

in response to a failed validation, performing at least one of the following:

discarding the OPRF output and any recovered or derived key; or

generating and transmitting another OKAR to a different server device included in the KMS.

20. The method of claim 15 , the method further comprising:

determining the public key by:

generating both the public key and a corresponding private key;

transmitting the corresponding private key to server device included in the KMS; and

storing the public key.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2018
From: RESCH, JASON K.; KRAWCZYK, HUGO M.; SEABORN, MARK D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 046700/0261 →
Continuity (1)
Related Publication 20200067699A1 · Feb 27, 2020