IP Library Granted Patent US 10,326,591
Granted Patent B2
US 10,326,591 · App. 15/402,030 · Granted Jun 18, 2019

Efficient quantum key management

Inventors: Peng Yuan (Beijing, CN); Zhiqiang Wang (Hangzhou, CN); Shuanlin Liu (Beijing, CN)
Assignee: Alibaba Group Holding Limited
H04L9/0858H04L9/0819H04L9/0861H04L9/12H04L9/14
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,326,591
App. No.
15/402,030
Granted
Jun 18, 2019
Kind
B2
Abstract

One embodiment of the present application provides a system for key management. During operation, the system determines a key block from a key sequence obtained based on Quantum Key Distribution (QKD) and a time sequence identifier for the key block. The system synchronizes the key block with a corresponding key block of a partner key management system based on a hash of the key block and the time sequence identifier. If the synchronization is successful, the system stores the key block and the time sequence identifier in a key pool. If the system receives a request for a key from an application, the system acquires the key block from the key pool and validates the key block with the partner key management system based on a hash of the key block and the time sequence identifier. If the validation is successful, the system provides the key block to the application.

Claims (69)

1. A computer-implemented method for efficient key management, comprising:

determining a key block from a key sequence generated based on Quantum Key Distribution (QKD) and a time sequence identifier for the key block, wherein the time sequence identifier indicates a temporal sequence of the key block;

synchronizing the key block with a corresponding key block of a partner key management system based on a hash of the key block and the time sequence identifier;

in response to a successful synchronization, storing the key block and the time sequence identifier in a local key pool;

in response to receiving a request for a key from an application, acquiring the key block from the key pool and validating the key block with the partner key management system based on a hash of the key block and the time sequence identifier; and

in response to a successful validation, providing the key block to the application.

2. The method of claim 1 , wherein determining the key block from the key sequence comprises:

determining whether a length of the key sequence has reached a threshold; and

in response to the length of the key sequence reaching the threshold, obtaining a key block of threshold length from a beginning of the key sequence.

3. The method of claim 1 , wherein determining the time sequence identifier comprises obtaining a base value and incrementing the base value.

4. The method of claim 1 , wherein synchronizing the key block with the partner key management system comprises:

computing a hash of the key block;

sending the key block and the time sequence identifier to the partner key management system; and

in response to detecting a time sequence identifier mismatch, setting a larger of local and received time sequence identifiers to be a new base value and the time sequence identifier of the key block.

5. The method of claim 4 , further comprising discarding the key block in response to determining a hash mismatch of the key block.

6. The method of claim 1 , wherein the key pool is a data structure, and wherein a respective element of the data structure includes a key block and an associated time sequence identifier.

7. The method of claim 6 , further comprising:

maintaining a read pointer, which indicates a location of the key pool from which a next key block is retrieved; and

maintaining a write pointer, which indicates a location of the key pool where a new key block is added.

8. The method of claim 1 , wherein validating the key block with a partner key management system comprises:

computing a hash of the key block;

obtaining a key block and the time sequence identifier from the partner key management system; and

in response to detecting a time sequence identifier mismatch, identifying a second key block that provides a time sequence identifier match.

9. The method of claim 7 , wherein identifying a second key block includes:

determining that the time sequence identifier of the key block is less than the obtained time sequence identifier; and

obtaining, from the key pool, a key block that has a time sequence identifier matching the obtained time sequence identifier and discarding any key block that has a time sequence identifier less than the obtained time sequence identifier from the key pool.

10. A non-transitory machine-readable storage medium storing instructions that when executed by one or more processors cause to perform:

determining a key block from a key sequence generated based on Quantum Key Distribution (QKD) and a time sequence identifier for the key block, wherein the time sequence identifier indicates a temporal sequence of the key block;

synchronizing the key block with a corresponding key block of a partner key management system based on a hash of the key block and the time sequence identifier;

in response to a successful synchronization, storing the key block and the time sequence identifier in a local key pool;

in response to receiving a request for a key from an application, acquiring the key block from the key pool and validating the key block with the partner key management system based on a hash of the key block and the time sequence identifier; and

in response to a successful validation, providing the key block to the application.

11. The non-transitory machine-readable storage medium of claim 10 , wherein determining the key block from the key sequence comprises:

determining whether a length of the key sequence has reached a threshold; and

in response to the length of the key sequence reaching the threshold, obtaining a key block of threshold length from a beginning of the key sequence.

12. The non-transitory machine-readable storage medium of claim 10 , wherein determining the time sequence identifier comprises obtaining a base value and incrementing the base value.

13. The non-transitory machine-readable storage medium of claim 10 , wherein synchronizing the key block with the partner key management system comprises:

computing a hash of the key block;

sending the key block and the time sequence identifier to the partner key management system; and

in response to detecting a time sequence identifier mismatch, setting a larger of local and received time sequence identifiers to be a new base value and the time sequence identifier of the key block.

14. The non-transitory machine-readable storage medium of claim 13 , wherein the instructions that when executed by the one or more processors cause further to perform discarding the key block in response to determining a hash mismatch of the key block.

15. The non-transitory machine-readable storage medium of claim 10 , wherein the key pool is a data structure, wherein a respective element of the data structure includes a key block and an associated time sequence identifier.

16. The non-transitory machine-readable storage medium of claim 10 , wherein the instructions that when executed by the one or more processors cause further to perform:

maintaining a read pointer, which indicates a location of the key pool from which a next key block is retrieved; and

maintaining a write pointer, which indicates a location of the key pool where a new key block is added.

17. The non-transitory machine-readable storage medium of claim 10 , wherein validating the key block with a partner key management system comprises:

computing a hash of the key block;

obtaining a key block and the time sequence identifier from the partner key management system; and

in response to detecting a time sequence identifier mismatch, identifying a second key block that provides a time sequence identifier match.

18. The non-transitory machine-readable storage medium of claim 17 , wherein identifying a second key block includes:

determining that the time sequence identifier of the key block is less than the obtained time sequence identifier; and

obtaining, from the key pool, a key block that has a time sequence identifier matching the obtained time sequence identifier and discarding any key block that has a time sequence identifier less than the obtained time sequence identifier from the key pool.

19. A system for facilitating efficient key management, the computing system comprising:

a processor; and

a memory coupled to the processor and storing instructions, which when executed by the processor cause the processor to perform:

determining a key block from a key sequence generated based on Quantum Key Distribution (QKD) and a time sequence identifier for the key block, wherein the time sequence identifier indicates a temporal sequence of the key block;

synchronizing the key block with a corresponding key block of a partner key management system based on a hash of the key block and the time sequence identifier;

in response to a successful synchronization, storing the key block and the time sequence identifier in a local key pool;

in response to receiving a request for a key from an application, acquiring the key block from the key pool and validating the key block with the partner key management system based on a hash of the key block and the time sequence identifier; and

in response to a successful validation, providing the key block to the application.

20. The computing system of claim 19 , wherein the key pool is a data structure, wherein a respective element of the data structure includes a key block and an associated time sequence identifier.

21. A method for efficient key management, comprising:

receiving a request for a key from an application running on a computing device;

acquiring a key block and a time sequence identifier for the key block from a key pool, wherein the key pool comprises key blocks of a key sequence obtained based on Quantum Key Distribution (QKD), wherein the time sequence identifier indicates a temporal sequence of the key block, and wherein the key block is synchronized with a corresponding key block of a partner key management system based on a hash of the key block and the time sequence identifier;

validating the key block with the partner key management system based on a hash of the key block and the time sequence identifier; and

in response to a successful validation, providing the key block to the application.

22. The method of claim 21 , wherein acquiring the key block from the key sequence includes:

determining whether a length of the key sequence has reached a threshold; and

in response to the length of the key sequence reaching the threshold, obtaining the key block of threshold length from a beginning of the key sequence.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075478/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2017
From: YUAN, PENG; WANG, ZHIQIANG; LIU, SHUANLIN
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 041126/0389 →
Priority Claims (1)
CN 2016 1 0086096 · Feb 15, 2016 · national
Continuity (1)
Related Publication 20170237559A1 · Aug 17, 2017
Cited By (1)
US 12,495,042