IP Library › Granted Patent US 11,398,901
Granted Patent B2
US 11,398,901 · App. 17/213,311 · Granted Jul 26, 2022

Restricted partial key storage

Inventors: Derrick Gene Wright (Springdale, AR); Oscar Blass (Bentonville, AR)
Assignee: Walmart Apollo, LLC
H04L9/083H04L9/0869H04L9/0897
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,398,901
App. No.
17/213,311
Granted
Jul 26, 2022
Kind
B2
Abstract

Examples provide a system for managing access-restricted partial cryptographic keys for encrypting and decrypting data. In some examples, a slot server generates and stores a first partial key. The first partial key is access-restricted based on access control data. A slot value mapped to the storage location is returned to the client by the slot server. The client generates a second partial key which is stored at the client device with the slot value. To obtain the first partial key, the client sends a request to the slot server, including the slot value. The requesting client is validated using access control data. If the request comes from a validated client, the slot server provides the first partial key to the client. The first partial key and the second partial key are combinable to generate a composite key for encrypting and decrypting data.

Claims (61)

1. A system for managing restricted-access split cryptographic keys, the system comprising:

at least one hardware processor communicatively coupled to a memory;

a key generator component associated with a first slot server, implemented on at least one hardware processor, generates a slot value mapped to a partial key storage location on a data storage device responsive to receiving a slot request from a user device the key generator component creates a first key-slot portion of a composite key associated with access control data for validating the user device, wherein a second slot server generates a second key-slot portion of the composite key, and wherein the user device generates a client-generated portion of the composite key;

a key storage component, implemented on at least one hardware processor, stores the first key-slot portion of the composite key at the partial key storage location mapped to the partial key storage location;

a communications interface component, implemented on at least one hardware processor, returns the slot value to the user device via a network; and

a response component, implemented on at least one hardware processor, distributes the first key-slot portion of the composite key to at least one user device responsive to receiving a partial key distribution request including the slot value from a validated user device, wherein the user device is validated based on the access control data, and wherein the first key-slot portion of the composite key, the second key-slot portion of the composite key, and the client-generated portion of the composite key are combined to form the composite key for encrypting or decrypting data.

2. The system of claim 1 , further comprising:

an access control component, implemented on at least one hardware processor, identifies a set of IP addresses associated with the user device;

the access control component generates the access control data including the set of IP addresses, wherein the access control component restricts distribution of at least one partial key to a network range of IP addresses included in the set of IP addresses; and

a mapping component, implemented on at least one hardware processor, maps the access control data to the slot value, wherein the slot value is a random hash value.

3. The system of claim 1 , and further comprising:

an access control component, implemented on at least one hardware processor, compares at least one IP address or hardware ID associated with at least one user device requesting distribution of a partial key with the access control data to validate the user device; and

the response component distributes the partial key associated with the slot value to the user device on condition the at least one IP address or hardware ID associated with the at least one user device corresponds to the access control data.

4. The system of claim 1 , wherein the user device receives the slot value from the first slot server during initialization of the user device.

5. The system of claim 1 , further comprising:

a first data storage device associated with a slot server configured to store a plurality of partial keys, including the first key-slot portion of the composite key; and

a second data storage device associated with the user device, configured to store encrypted data, the slot value and the client-generated portion of the composite key.

6. The system of claim 1 , further comprising:

a key vault server configured to store a plurality of partial keys associated with a plurality of slot values.

7. The system of claim 1 , further comprising:

a split key manager component implemented on the user device combines a set of key-slot portions of the composite key received from a set of slot servers with a client-generated portion of the composite key generated on the user device to form the composite key, wherein the composite key is utilized by the user device for encrypting or decrypting data.

8. A computer-implemented method for restricting access to split cryptographic keys, the computer-implemented method comprising:

generating, by a key generator component a slot value mapped to a partial key storage location on a data storage device responsive to receiving a slot request from a user device;

creating, by the key generator component associated with a first slot server, a first key-slot portion of a composite key associated with access control data, wherein a second key-slot portion of the composite key is generated by a second slot server, and wherein a client-generated portion of the composite key is generated by the user device;

storing, by a key storage component, the first key-slot portion of the composite key at the partial key storage location mapped to the partial key storage location;

returning, by a communications interface component, the slot value to the user device via a network; and

distributing, by a response component, the first key-slot portion of the composite key to the user device responsive to receiving a partial key distribution request including the slot value from a validated user device, wherein the user device is validated based on the access control data, wherein the first key-slot portion of the composite key, the second key-slot portion of the composite key and the client-generated portion of the composite key are combined to form the composite key for encrypting or decrypting data.

9. The computer-implemented method of claim 8 , further comprising:

storing a plurality of partial keys generated by a slot server at a plurality of partial key storage locations on the data storage device, each partial key in the plurality of partial keys comprising a key-slot portion of a composite key.

10. The computer-implemented method of claim 8 , further comprising:

receiving, by the user device, the slot value from the first slot server during initialization of the user device, wherein the slot value is a random hash value.

11. The computer-implemented method of claim 8 , further comprising:

identifying, by an access control component, a set of IP addresses associated with the user device, wherein distribution of at least one partial key is restricted to a network range of IP addresses included in the set of IP addresses; and

mapping, by a mapping component, the access control data to the slot value, wherein the slot value is a random hash value.

12. The computer-implemented method of claim 8 , further comprising:

comparing at least one IP address or hardware ID associated with the user device with the access control data to validate the user device; and

distributing the first key-slot portion associated with the slot value to the user device having the at least one IP address or hardware ID corresponding to the access control data.

13. The computer-implemented method of claim 8 , further comprising:

creating, by a key creation component, the composite key by combining a set of key-slot portions of the composite key received from a set of slot servers with a client-generated portion of the composite key generated on the user device.

14. The computer-implemented method of claim 8 , further comprising:

storing a second key-slot portion associated with the composite key on a key vault server, wherein the first key-slot portion is stored on a first data storage device associated with the first slot server;

and

storing a third key-slot portion associated with the composite key on a second data storage device associated with the user device, wherein the first key slot portion, the second key-slot portion and the third key-slot portion form the composite key for encrypting and decrypting the data.

15. A device for restricting access to split cryptographic keys comprising at least one memory storing computer-executable instructions that, when executed by a computer cause the computer to perform operations comprising:

generating, by a key generator component of a first slot server, a slot value mapped to a key storage location on a data storage device responsive to receiving a slot request from a user device;

creating, by the key generator component of the first slot server, a first key-slot portion of a composite key associated with access control data, wherein a second key-slot portion of the composite key is generated by a second slot server, and wherein a client-generated portion of the composite key is generated by the user device;

storing, by a key storage component, the first key-slot portion of the composite key at the key storage location mapped to the key storage location;

returning, by a communications interface component, the slot value to the user device via a network; and

distributing, by a response component, the first key-slot portion of the composite key to the user device responsive to receiving a key distribution request including the slot value from the user device, wherein the user device is a validated user device, wherein the user device is validated based on the access control data, wherein the first key-slot portion of the composite key, the second key-slot portion of the composite key, and the client-generated portion of the composite key are combined to form the composite key for encrypting or decrypting data.

16. The device of claim 15 , wherein the computer-executable instructions, when further executed by the computer, causes the computer to perform operations comprising:

storing a plurality of partial keys generated by a slot server at a plurality of partial key storage locations on the data storage device, each partial key in the plurality of partial keys comprising a key-slot portion of a composite key.

17. The device of claim 15 , wherein the computer-executable instructions, when further executed by the computer, causes the computer to perform operations comprising:

receiving, by the user device, the slot value from the first slot server during initialization of the user device, wherein the slot value is a random hash value.

18. The device of claim 15 , wherein the computer-executable instructions, when further executed by the computer, causes the computer to perform operations comprising:

identifying a set of IP addresses associated with the user device based on the access control data; and

restricting distribution of at least one partial key to a network range of IP addresses included in the set of IP addresses.

19. The device of claim 15 , wherein the computer-executable instructions, when further executed by the computer, causes the computer to perform operations comprising:

creating, by a key creation component, the composite key by combining a set of key-slot portions of the composite key received from a set of slot servers with the client-generated portion of the composite key generated on the user device.

20. The device of claim 15 , wherein the computer-executable instructions, when further executed by the computer, causes the computer to perform operations comprising:

storing a second key-slot portion associated with the composite key on a key vault server, wherein the first key-slot portion associated with the composite key is stored on a first data storage device associated with the first slot server; and

storing a third key-slot portion associated with the composite key on a second data storage device associated with the user device, wherein the first key-slot portion, the second key-slot portion and the third key-slot portion form the composite key for encrypting and decrypting the data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2021
From: WRIGHT, DERRICK GENE; BLASS, OSCAR
To: WALMART APOLLO, LLC
Reel/Frame 055877/0112 →
Continuity (2)
Provisional Application 63000117 · Mar 26, 2020
Related Publication 20210306139A1 · Sep 30, 2021