IP Library › Granted Patent US 8,917,872
Granted Patent B2
US 8,917,872 · App. 13/177,228 · Granted Dec 23, 2014

Encryption key storage with key fragment stores

Inventors: Jun Li (Mountain View, CA); Ram Swaminathan (Cupertino, CA); Sharad Singhal (Belmont, CA)
Assignee: Hewlett-Packard Development Company, L.P.
H04L9/085H04L9/0888
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 8,917,872
App. No.
13/177,228
Granted
Dec 23, 2014
Kind
B2
Abstract

Systems, methods, and machine-readable and executable instructions are provided for encryption key storage. Encryption key storage may include associating each of a plurality of identifiers with a different one of a plurality of key fragment stores, determining a plurality of indexes, where each of the plurality of indexes is based upon a handle provided by a customer, an authorization token provided by the customer, and a different one of the plurality of identifiers, partitioning an encryption key provided by the customer into a number of encryption key fragments, and distributing the plurality of indexes and the number of encryption key fragments to the plurality of key fragment stores. The handle can be a uniform resource identifier, for instance.

Claims (40)

1. A computer-implemented method for encryption key storage comprising:

associating, using a microprocessor, each of a plurality of unconcealed identifiers with a different one of a plurality of key fragment stores;

determining, using the microprocessor, a plurality of indexes, wherein each of the plurality of indexes is based upon a handle provided by a customer, an authorization token provided by the customer, and a different one of the plurality of unconcealed identifiers, wherein each of the plurality of indexes is determined by applying a first hashing algorithm to a combination of the handle provided by the customer and the authorization token provided by the customer to generate a first uniquely coded value and applying a second hashing algorithm to a combination of the first uniquely coded value and one of the plurality of unconcealed identifiers;

partitioning, using the microprocessor, an encryption key provided by the customer into a number of encryption key fragments; and

distributing, using the microprocessor, the plurality of indexes and the number of encryption key fragments to the plurality of key fragment stores, wherein each of the plurality of key fragment stores maintains a different index for corresponding encryption key fragments.

2. The method of claim 1 wherein the number of encryption key fragments is a first number, n, and the encryption key is unobtainable without a second number, k, of the number of encryption key fragments such that n is greater than k.

3. The method of claim 1 wherein the encryption key is partitioned with Shamir's secret sharing algorithm.

4. The method of claim 1 wherein distributing the plurality of indexes and the number of encryption key fragments includes distributing one or more of the plurality of indexes and one or more of the encryption key fragments to a particular key fragment store of the plurality of key fragment stores.

5. The method of claim 1 further comprising receiving the handle provided by a customer and the authorization token provided by the customer to retrieve a quantity of the number of encryption key fragments.

6. The method of claim 5 further comprising reconstructing the encryption key from the quantity of the number of encryption key fragments.

7. The method of claim 6 further comprising providing the reconstructed encryption key to the customer.

8. A machine-readable non-transitory medium storing a set of instructions for encryption key storage executable by a machine to cause the machine to:

receive an encryption key provided by a customer;

determine a plurality of unconcealed identifiers, where each of the plurality of unconcealed identifiers is individually associated with a different one of a plurality of key fragment stores;

apply a first hashing algorithm to a combination of a handle provided by a customer and an authorization token provided by the customer to generate a first uniquely coded value;

apply a second hashing algorithm to a combination of the first uniquely coded value and individually each of the plurality of unconcealed identifiers to provide a plurality of indexes;

partition the encryption key into a number of encryption key fragments with Shamir's secret sharing algorithm; and

distribute one of the plurality of indexes and one of the number of encryption key fragments to a respective key fragment store of the plurality of key fragment stores such that each of the plurality of indexes and each of the number of encryption key fragments are distributed, wherein each of the plurality of key fragment stores maintains a different index for corresponding encryption key fragments;

store the distributed number of encryption key fragments in a number of the plurality of key fragment stores;

receive the handle and the authorization token from the customer to retrieve encryption key fragments;

reconstruct the encryption key from the retrieved encryption key fragments; and

provide the reconstructed encryption key to the customer.

9. The machine-readable non-transitory medium of claim 8 including instructions executable by the machine to cause the machine to:

ensure that of a first number n of encryption key fragments at least a second number k of encryption key fragments are stored in a number k of the plurality of key fragment stores before closing a secured channel between the customer and a provider of the encryption key storage, wherein n is greater than k.

10. The machine-readable non-transitory medium of claim 8 including instructions executable by the machine to cause the machine to:

employ a replication protocol to reconstruct a lost encryption key fragment within one of the plurality of key fragment stores.

11. The machine-readable non-transitory medium of claim 8 including instructions executable by the machine to cause the machine to:

distribute one of the plurality of indexes and one of the number of encryption key fragments to a replacement key fragment store due to unavailability of the respective key fragment store of the plurality of key fragment stores; and

mark the one of the plurality of indexes and one of the number of encryption key fragments with a transfer marker to indicate it as a guest fragment and record its location in the replacement key fragment store.

12. The machine-readable non-transitory medium of claim 1 including instructions executable by the machine to cause the machine to:

scan the plurality of key fragment stores to identify the guest fragment; and

transfer the guest fragment from the replacement key fragment store to an original destination.

13. A computing system for encryption key storage, comprising:

a computing device including:

a memory;

a processor coupled to the memory, to:

associate each of a plurality of unconcealed identifiers with a different one of a plurality of key fragment stores;

determine a plurality of indexes, wherein each of the plurality of indexes is based upon a handle provided by a customer, an authorization token provided by the customer, and a different one of the plurality of unconcealed identifiers, wherein the authorization token is unknown to an encryption key storage provider, wherein each of the plurality of indexes is determined by applying a first hashing algorithm to a combination of the handle provided by the customer and the authorization token provided by the customer to generate a first uniquely coded value and applying a second hashing algorithm to a combination of the first uniquely coded value and one of the plurality of unconcealed identifiers;

partition an encryption key provided by the customer into a number of encryption key fragments; and

distribute the plurality of indexes and the number of encryption key fragments to the plurality of key fragment stores, wherein each of the plurality of key fragment stores maintains a different index for corresponding encryption key fragments.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2011
From: LI, JUN; SWAMINATHAN, RAM; SINGHAL, SHARAD
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 026550/0231 →
Continuity (1)
Related Publication 20130010966A1 · Jan 10, 2013