Patent Publication Number: US-11658814-B2

Title: System and method for encryption and decryption based on quantum key distribution

Description:
RELATED APPLICATION 
     This application is a continuation of U.S. application Ser. No. 15/481,338, entitled “SYSTEM AND METHOD FOR ENCRYPTION AND DECRYPTION BASED ON QUANTUM KEY DISTRIBUTION,” by inventors Peng Yuan and Zhiqiang Wang, filed 6 Apr. 2017 (hereinafter “the &#39;338 application”), the disclosure of which is incorporated by reference herein. Under 35 U.S.C. 119, the &#39;338 application claims the benefit and right of priority of Chinese Patent Application No. 2016/10298847.1, filed 6 May 2016. 
    
    
     BACKGROUND 
     Field 
     This disclosure is generally related to the field of data encryption. More specifically, this disclosure is related to a method and system for encryption and decryption based on quantum key distribution. 
     Related Art 
     The proliferation of the Internet and e-commerce continues to create a vast amount and types of digital content. Sensitive data, such as company data and customer data, may be vulnerable to security leaks. One solution to protect such sensitive data is based on data storage encryption technology, which generally involves applying a specific technology to encrypt data before writing the data onto a storage device, and to subsequently decrypt the data when reading the stored data. 
     Features of a typical data storage encryption system may include, e.g., host software encryption, an encrypted storage security switch, an embedded special encryption device, and an encryption mechanism based on the storage device itself. A typical logical architecture for such features may include an encryption/decryption unit and a key management center. The encryption/decryption unit can encrypt data to be stored using a key (which is typically fixed or infrequently updated), and can also decrypt stored data with the fixed key. The key management center can store the fixed key, and can also perform other key management-related functions, such as selecting new keys and deleting unused or previously used keys. 
     Replacing or updating a fixed (“original”) key may occur only under specific circumstances, e.g., when establishing a secure transmission channel based on an asymmetric encryption algorithm via the key management center and transmitting the new key to the encryption/decryption unit, or by a specific administrative user who physically visits the actual site to manually update the key, e.g., by copying a new key to the system. In addition, when replacing or updating a key, the system must retain access to both the original key and the original encrypted data in order to retain the ability to decrypt the original encrypted data. 
     However, this typical data storage encryption system may result in several problems. First, because of the fixed key, the stored encrypted data may be vulnerable to a brute force attack. If the fixed key is discovered, all of the stored data encrypted based on that fixed key may face the risk of exposure. Second, the key distribution process (e.g., selecting or replacing a key) may pose a security risk. For example, adopting an asymmetric encryption algorithm for a key distribution process requires transmissions between two entities. These transmissions may be susceptible to eavesdropping and algorithm hacking. Furthermore, a manual update may face the risk of malicious disclosure. Third, in order for the system to retain access to the original key and the original encrypted data upon updating a key, the system may require administrative users (e.g., management and maintenance personnel) to perform additional and potentially computationally complex work to handle the original key and the original encrypted data. These problems may decrease the efficiency and security of the data storage encryption system. 
     SUMMARY 
     One embodiment of the present invention provides a system for facilitating storage encryption and decryption. During operation, the system receives a first request to encrypt data, wherein the first request indicates the data to be encrypted. The system encrypts the data based on a key, and determines a key label for the key. The system transmits the encrypted data and the key label to a remote device, thereby facilitating secure encryption and decryption of data on the remote device. 
     In some embodiments, the system updates the key based on a dynamic key refreshment protocol by performing several operations. The system obtains a first new key from a first key pool. The system transmits a first synchronization request to a key-managing device, which causes the key-managing device to obtain from a second key pool of the key-managing device a second new key which is the same as the first new key. The system obtains a first new key label for the first new key, wherein the first new key label is the same as a second new key label obtained for the second new key, wherein the first new key is the key used to encrypt the data, and wherein the first new key label is the determined key label. 
     In some embodiments, the dynamic key refreshment protocol is based on one or more of: determining that a predetermined time interval has passed; and receiving the first request. 
     In some embodiments, the first new key and the second new key are obtained based on a same method, and the first new key label and the second new key label are obtained based on a same algorithm. 
     In some embodiments, the system computes a first hash value of the first new key. The system includes the first hash value in the first synchronization request, which allows the key-managing device to verify the second new key by confirming that a second hash value of the second new key is the same as the first hash value. 
     In some embodiments, a quantum engine of the computer system generates one or more key sequences based on a quantum communication with a quantum engine of a key-managing device. The computer system stores the generated key sequences in a first key pool of the computer system. The key-managing device stores the generated key sequences in a second key pool of the key-managing device. The computer system generates a first key label for a respective key sequence in the first key pool. The key-managing device generates a second key label for a respective key sequence in the second key pool, wherein the first key label and the second key label are generated based on a same algorithm. 
     In some embodiments, the system receives a second request to decrypt the encrypted data, wherein the second request indicates the encrypted data and the key label. The system transmits a third request for the updated key, wherein the third request includes the key label. The system receives the updated key, and decrypts the encrypted data based on the received updated key. 
     In some embodiments, the third request is transmitted to a key-managing device, and the updated key is received from the key-managing device. Prior to transmitting the third request to the key-managing device, the system obtains obtaining a third key from the first key pool, and transmits a second synchronization request to the key-managing device, which causes the key-managing device to obtain from a second key pool of the key-managing device a fourth key which is the same as the third key. The system encrypts, based on the third key, the key label included in the third request, wherein the received updated key is encrypted based on the fourth key. The system decrypts, based on the third key, the encrypted received updated key. 
     Another embodiment of the present invention provides a system for facilitating storage encryption and decryption. During operation, the system receives, based on a dynamic key refreshment protocol, a first synchronization request which indicates a first key obtained from a first key pool. The system obtains a second key from a second key pool, wherein the second key is the same as the first key. The system obtains a second key label for the second key, wherein the second key label is the same as a first key label obtained for the first key. The system stores the second key and the second key label, thereby facilitating secure encryption and decryption of data on a remote device. 
     In some embodiments, the first synchronization request includes a first hash value of the first key. The system computes a second hash value of the second key. The system verifies the second key by confirming that the second hash value is the same as the first hash value. 
     In some embodiments, the second key and the second key label are stored in a database associated with the computing system. The system receives a request for the second key, wherein the request includes the second key label. The system retrieves the second key from the database based on the second key label included in the request for the second key. The system returns the retrieved second key. 
     In some embodiments, the request is received from a security device, and the retrieved second key is returned to the security device. Prior to receiving the request from the security device: the system receives, from the security device, a second synchronization request associated with a third key from the first key pool, wherein the second key label included in the request for the second key is encrypted based on the third key; the system obtains, from the second key pool, a fourth key which is the same as the third key; and the system decrypts the encrypted second key label based on the fourth key. Prior to returning the retrieved second key, the system encrypts the retrieved second key based on the fourth key. 
    
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         FIG.  1    illustrates an exemplary environment that facilitates storage encryption and decryption, in accordance with an embodiment of the present application. 
         FIG.  2    illustrates an exemplary environment that facilitates storage encryption and decryption, including exemplary communications, in accordance with an embodiment of the present application. 
         FIG.  3 A  presents a flowchart illustrating a method by a security device for encrypting data to be stored on a storage device, in accordance with an embodiment of the present application. 
         FIG.  3 B  presents a flowchart illustrating a method by a security device for updating a key, in accordance with an embodiment of the present application. 
         FIG.  3 C  presents a flowchart illustrating a method by a security device for decrypting data stored on a storage device, in accordance with an embodiment of the present application. 
         FIG.  4    presents a flowchart illustrating a method for generating keys based on a quantum key distribution protocol, in accordance with an embodiment of the present application. 
         FIG.  5 A  presents a flowchart illustrating a method by a key-managing device for facilitating storage encryption and decryption, in accordance with an embodiment of the present application. 
         FIG.  5 B  presents a flowchart illustrating a method by a key-managing device for retrieving a key based on a corresponding key label, in accordance with an embodiment of the present application. 
         FIG.  6    illustrates an exemplary computer system that facilitates storage encryption and decryption, in accordance with an embodiment of the present application. 
         FIG.  7    illustrates an exemplary apparatus that facilitates storage encryption and decryption, in accordance with an embodiment of the present application. 
     
    
    
     In the figures, like reference numerals refer to the same figure elements. 
     DETAILED DESCRIPTION 
     The following description is presented to enable any person skilled in the art to make and use the embodiments, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present disclosure. Thus, the present invention is not limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein. 
     Overview 
     Embodiments of the present invention solve the problem of security-related deficiencies in a data storage encryption system by applying a quantum key distribution protocol to generate keys, and by storing a corresponding key label for a generated key. In a typical data storage encryption system, an encryption/decryption unit (a “security device”) and a key management center (a “key-managing device”) may share a fixed (“original”) key with which to encrypt data to be stored and to decrypt the stored data (“original data”). Replacing or updating such a fixed key may require the system to retain access to both the original key and the original encrypted data. This may result in several deficiencies. First, because of the fixed key, the stored encrypted data may be vulnerable to a brute force attack. If the fixed key is discovered, all of the stored data encrypted based on that fixed key may face the risk of exposure. Second, the key distribution process (e.g., selecting or updating a key) may pose a security risk. For example, adopting an asymmetric encryption algorithm for a key distribution process requires transmissions between two entities. These transmissions may be susceptible to eavesdropping and algorithm hacking. Furthermore, a manual update may face the risk of malicious disclosure. Third, in order for the system to retain access to the original key and the original encrypted data upon updating a key, the system may require administrative users (e.g., management and maintenance personnel) to perform additional and potentially computationally complex work to handle the original key and the original encrypted data. These problems may decrease the efficiency and security of the data storage encryption system 
     Embodiments of the present invention address these issues by applying a quantum key distribution technology to generate and distribute keys, selecting a new key periodically or continuously (i.e., updating the key), and storing a corresponding key label for an updated key. Specifically, upon receiving a request to encrypt data to be stored on a storage device, the system updates a key based on a dynamic key refreshment protocol, such as periodically (based on a certain time interval) or continuously (based on a “one storage per key” method). The system determines a key label for the selected key, encrypts the data using the selected key, and returns both the encrypted data and the corresponding key label for storage in the storage device. 
     A key-managing device and a security device can generate the same pools of keys (i.e., the same key sequences in each respective key pool) by communicating via a quantum channel or a quantum key distribution protocol. Such a protocol is based on the principle of quantum mechanics, which guarantees the security of the key distribution process, as described herein. Communication via such a protocol further allows the key-managing device and the security device to coordinate and synchronize the selection of the same key and the corresponding key label. Furthermore, by updating the key based on a dynamic key refreshment protocol (i.e., periodically or continuously) instead of using a fixed key, the system may flexibly encrypt data using different keys, which increases the security of the data storage. In addition, the key-managing device and the security device can determine a same corresponding key label for an updated key, which label can be subsequently used to retrieve the updated key and correctly decrypt the stored data. By using a corresponding key label to access each updated key, different keys may be used to encrypt the data to be stored. This allows an increased diversity in the granularity of the key usage, which can both increase the security of the data storage and simplify the process of replacing or updating the key. 
     Thus, the present system provides improvements to data storage encryption technology, where the improvements are fundamentally technological. Embodiments of the present invention provide a technological solution (e.g., applying a quantum key distribution technology, updating a key based on a dynamic key refreshment protocol, and storing a corresponding key label for the updated key for subsequent decrypting of the data) to the technological problem of secure data storage encryption (as in the above-described risks in a typical data storage encryption system). 
     The terms “quantum key distribution technology,” “quantum key distribution protocol,” and “quantum key distribution operation” refer to operations performed by a quantum engine or a quantum device of a first entity (e.g., a key-managing device) and a second entity (e.g., a security device). The first and second entities each generate the same random key sequence after performing standard processing operations, such as original key negotiation, key screening, error correction, and privacy amplification. Upon generating the same random key sequence, the first and second entities may each store the key sequences in a respective key pool. Exemplary quantum key distribution protocols include the BB84, B91, and B92 protocols, as well as other protocols which have been proposed to improve the code rate, such as continuous variable QKD, DSP-QKP, and SARG. Assume two entities which communicate during a quantum key distribution protocol. The first entity (“Alice”) can randomly generate a set of binary data strings, and can select a basic vector based on the data strings to prepare a corresponding encoded quantum state to be sent to the second entity (“Bob”) via a quantum channel. Subsequently, Bob can disclose his own basic vector via a classical channel (i.e., an electrical or wired channel which is not a quantum channel), which allows both Alice and Bob to select a key using the same basic vector. As a result, both Alice and Bob can obtain the unconditional secure key sequence by estimating the error rate, error correction, and the privacy amplification, and by performing other processing operations. 
     The term “key sequence” refers to a sequence consisting of a number of key bits. The term “key pool” refers to a memory area which stores key sequences generated upon performing a quantum key distribution operation. 
     The term “key label” refers to an identifier or identifying information used to distinguish between different keys. The key label may be in the form of, e.g., numerical values or character strings. 
     The term “synchronization request” refers to a request sent by a security device to a key-managing device, which request triggers the key-managing device to obtain a key from its key pool which is the same as a key from the key pool of the security device. 
     Exemplary System 
       FIG.  1    illustrates an exemplary environment  100  that facilitates storage encryption and decryption, in accordance with an embodiment of the present application. Environment  100  can include a computing device  110  which is associated with a user  112 . Computing device  110  can include, for example, a tablet, a mobile phone, an electronic reader, a laptop computer, a desktop computer, or any other computing device. Environment  100  can also include a server  120 , a server  130 , and a storage device  140 , which may communicate with each other (and computing device  110 ) via a network  102 . Server  120  may be, e.g., a security device  120  with an encryption/decryption system  121 , which includes: a data decryption module  122  which decrypts data based on a key label; a data encryption module  126  which encrypts data and returns the encrypted data and a corresponding key label; a key pool  127  which may be associated with data encryption module  126 ; and a quantum engine  128  which generates key sequences based on a quantum key distribution protocol or operation. Server  130  may be, e.g., a key-managing device  130  with a key management system  131 , which includes: a key provision module  132  which processes requests for keys by querying a key database  134 ; key database  134  which stores keys and their corresponding key labels; a key storage module  136  which processes requests for synchronized and updated keys from a key pool generated during a quantum key distribution protocol or operation; and a quantum engine  138  which generates key sequences based on a quantum key distribution protocol or operation. 
     Data decryption module  122  can communicate with key provision module  132  via a communication  104 , and data encryption module  126  can communicate with key storage module  136  via a communication  106 . Quantum engine  128  can communicate with quantum engine  138  via a communication  108 , which can be via a quantum channel as part of a quantum key distribution protocol or operation. 
     During operation, user  112  may send, via computing device  110 , a request  152  to encrypt data which is to be stored on storage device  140 . Security device  120  can receive request  152 , update a key based on a dynamic key refreshment protocol (e.g., periodically at a certain time interval or continuously for each new request), obtain a key label for the updated key, encrypt the data using the updated key, and send a packet  154  to storage device  140 , where packet  154  can indicate the encrypted data and the corresponding key label. These operations are described in detail below in relation to  FIG.  2   . 
     Subsequently, an application or function which can interface with storage device  140  may send a request (not shown) to decrypt the encrypted data stored on storage device  140 . This may trigger storage device  140  to send a packet  156  to security device  120 , where packet  156  can indicate the encrypted data and the corresponding key label (similar to packet  154 ). Security device  120  can receive a request to decrypt data based on received packet  156 , obtain a key based on the key label included in packet  156 , decrypt the data using the obtained key, and send a packet  158  back to the interfacing application or function, e.g., computing device  110  associated with user  112 , wherein packet  158  can indicate the decrypted data. These operations are described in detail below in relation to  FIG.  2   . 
       FIG.  2    illustrates an exemplary environment  200  that facilitates storage encryption and decryption, including exemplary communications, in accordance with an embodiment of the present application. Environment  200  can include security device  120 , key-managing device  130 , and storage device  140 , as in environment  100  of  FIG.  1   . While environment  200  depicts various modules as residing inside each of security device  120  and key-managing device  130 , in some embodiments, one or more of these modules may reside within a single system or entity. During operation, quantum engine  128  and quantum engine  138  can perform a quantum key distribution protocol  240 , which generates the same key sequences and stores the generated key sequences in, respectively, key pool  127  and key pool  137 . Subsequently, data encryption module  126  can receive a request  201  to encrypt data  202  which is to be stored on storage device  140 . Request  201  can indicate data of a packet  202 . Prior to indicating data  202  in request  201 , the system can perform fractionation, compression, and other data processing on data  202 . A functional unit may trigger data encryption module  126  to encrypt data  202  via an application programming interface (API) or by transmitting a message (such as request  201 ). 
     Data encryption module  126  can update a key based on a dynamic key refreshment protocol. For example, when the dynamic key refreshment protocol is based on the passage of a certain time period or interval, or based on simply receiving a new request (e.g., request  201 ), data encryption module may proceed with updating the key by obtaining a new key via a synchronization request, as described below. When the dynamic key refreshment protocol determines that the key is not to be updated (e.g., a certain time interval has not yet passed), the system may use a key which has been most recently used for an encryption operation. In some embodiments, request  201  may include an instruction to update the key, and data encryption module  126  or any other module may process such an included instructions. 
     Data encryption module  126  can obtain a key from key pool  127  (function  204 ), and send a synchronization request  206  to key storage module  136 . Synchronization request  206  can indicate that key storage module  136  is to obtain a key from key pool  137  which is the same as the key obtained by data encryption module  126 . That is, upon receiving synchronization request  206 , key storage module  136  can obtain a key from key pool  137  (function  208 ), where the obtained key is the same as the key obtained by data encryption module  126  from key pool  127  (as in function  204 ). Functions  204  and  208  may be based on applying the same predetermined method to obtain the same key from the respective key pool. For example, the key may be obtained by a method which is based on information such as a key selection position and a key length, which may be indicated or carried in synchronization request  206 . Any method may be used to obtain the key, as long as the same key is obtained in function  208  as in function  204 . 
     Key storage module  136  can generate a key label (function  210 ) for the obtained key, and send both the obtained key and the generated key label to key database  134  (function  212 ). Data encryption module  126  can also obtain or generate the key label for the obtained key (function  214 ). Functions  210  and  214  may be based on applying the same predetermined algorithm to generate the key label, or based on a communication between security device  120  and key-managing device  130  regarding the same predetermined algorithm. For example, in applying the same algorithm, a counter may be used to generate the key label for the key. The initial value of the counter may be set to a value of zero, and the counter value may be increased by one for each key replacement. After a key replacement and corresponding increase to the counter value, the counter value may be indicated in the key label. Both security device  120  and key-managing device  130  may use this same algorithm to ensure the generation of the same key label. As another example, the security device may generate the key label, and subsequently send the generated key label to the key-managing device so that the key-managing device has the same generated key label for the key. Alternatively, the key-managing device may generate the key label, and subsequently send the generated key label to the security device so that the security device has the same generated key label for the key. 
     Data encryption module  126  may encrypt the data (function  216 ) based on the obtained key, and send both the encrypted data and the corresponding key label (packet  218 ) to storage device  140 . The system can use a symmetric encryption algorithm, e.g., RC2, RC4, Data Encryption Standard (DES), 3DES, or Advanced Encryption Standard (AES). 
     Subsequently, data decryption module  122  can receive a request  221  to decrypt data of a packet  222 , which indicates the encrypted data and the corresponding key label, as previously stored on storage device  140 . Request  221  may be received from, e.g., a functional unit with an access interface to storage device  140 , as described above in relation to request  201 . Data decryption module  122  can send a request  224  to key provision module  132 . Request  224  can include the key label, and can further indicate a request for the key corresponding to the included key label. Key provision module  132  can receive request  224  and retrieve the requested key from key database  134  based on the corresponding key label (function  226 ). Recall that the key and the corresponding key label are previously both stored in key database  134 . Key provision module  132  can send the retrieved key  228  to data decryption module  122 , which can decrypt the data based on the retrieved key (function  230 ) and transmit the decrypted data (packet  232 ) back to, e.g., a requesting application. 
     Thus, environment  200  depicts a system which facilitates secure encryption and decryption of data on a remote device (e.g., a storage device) by updating a key based on a dynamic key refreshment protocol, storing a key label for the updated key, and applying a quantum key distribution protocol to ensure the synchronization and security of key distribution. The system allows a new key to be selected (e.g., updating a key) on a periodic basis (e.g., based on a predetermined time interval) or on a continuous basis (e.g., based on receiving a request to encrypt data, that is, a “one key one storage” method). 
     Method for Facilitating Data Storage Encryption by a Security Device 
       FIG.  3 A  presents a flowchart  300  illustrating a method by a security device for encrypting data to be stored on a storage device, in accordance with an embodiment of the present application. During operation, the system receives, by a security device, a first request to encrypt data which is to be stored on a remote device, wherein the first request indicates the data (operation  302 ). The system updates the key based on a dynamic key refreshment protocol (operation  304 ). The system determines a key label for the updated key (operation  306 ). The system encrypts the data based on the updated key (operation  308 ). The system transmits the encrypted data and the key label to the remote device, thereby facilitating secure encryption and decryption of data on the remote device (operation  310 ). 
       FIG.  3 B  presents a flowchart  320  illustrating a method by a security device for updating a key, in accordance with an embodiment of the present application. During operation, the system determines whether to update the key based on a dynamic key refreshment protocol (decision  322 ). If the system determines not to update the key (decision  322 ), the system selects a key most recently used for an encryption operation (operation  324 ), and the operation returns. If the system determines to update the key based on a dynamic key refreshment protocol (decision  322 ), the system obtains a first new key from a first key pool (operation  332 ). The first key pool may be associated with the security device. The system transmits a first synchronization request to a key-managing device, which causes the key-managing device to obtain from a second key pool of the key-managing device a second new key which is the same as the first new key, wherein the first new key and the second new key are obtained based on a same method (operation  334 ). The system obtains a first new key label for the first new key, wherein the first new key label is the same as a second new key label obtained for the second new key, wherein the first new key label and the second new key label are obtained based on a same algorithm (operation  336 ). Upon updating the key, the system may also delete both the key most recently used for an encryption operation, and the corresponding key label. This reduces the amount of storage space required, and also decreases the risk of key exposure by allowing the key-managing device to maintain centralized management. 
     In some embodiments, the system may compute a hash of the first new key, and include the computed hash value in the first synchronization request, which allows the key-managing device to verify the second new key by confirming that a second hash value of the second new key is the same as the first hash value. If the first and second hash values do not match, the security device and the key-managing device may re-select the key via another exchange or negotiation. 
       FIG.  3 C  presents a flowchart  340  illustrating a method by a security device for decrypting data stored on a storage device, in accordance with an embodiment of the present application. During operation, the system receives a second request to decrypt encrypted data, wherein the second request indicates the encrypted data and the key label (operation  342 ). The system transmits a third request for the updated key, wherein the third request includes the key label (operation  344 ). The system receives the updated key (operation  346 ), and decrypts the encrypted data based on the received updated key (operation  348 ). 
     To protect the security of the key label included in the third request, the system can encrypt the key label using another key (“third key”) and based on a symmetric encryption algorithm (as described above) and included the encrypted key label in the third request. Specifically, the system can obtain this third key from the first key pool (of the system or security device), and transmit a second synchronization request to the key-managing device, which causes the key-managing device to obtain from the second key pool (of the key-managing device) a fourth key which is the same as the third key. The system can then encrypt, based on the third key, the key label included in the third request (as part of operation  344 ). The key-managing device can decrypt the encrypted key label based on the fourth key, and also encrypt the received updated key based on the fourth key (as part of operation  346 ). Finally, the system can decrypt the encrypted received updated key based on the third key. 
     Generating Keys Based on a Quantum Key Distribution Protocol 
       FIG.  4    presents a flowchart  400  illustrating a method for generating keys based on a quantum key distribution protocol, in accordance with an embodiment of the present application. During operation, a quantum engine of a computer system (e.g., a security device) generates one or more key sequences based on a quantum communication with a quantum engine of a key-managing device (operation  402 ). The two quantum engines may communicate as part of a quantum key distribution protocol, via a quantum channel. The advantages of such a protocol are described above. The computer system stores the generated key sequences in a first key pool of the computer system (operation  404 ). The key-managing device stores the generated key sequences in a second key pool of the key-managing device (operation  406 ). The computer system generates a first key label for a respective key sequence in the first key pool based a predetermined algorithm (operation  408 ). The key-managing device generates a second key label for a respective key sequence in the second key pool based on the (same) predetermined algorithm (operation  410 ). 
     Method for Facilitating Data Storage Encryption by a Key-Managing Device 
       FIG.  5 A  presents a flowchart  500  illustrating a method by a key-managing device for facilitating storage encryption and decryption, in accordance with an embodiment of the present application. During operation, the system receives, based on a dynamic key refreshment protocol, a first synchronization request which indicates a first key obtained from a first key pool (operation  502 ). The system obtains a second key from a second key pool, wherein the second key is the same as the first key, wherein the first key and the second key are obtained based on a same method (operation  504 ). The system obtains a second key label for the second key, wherein the second key label is the same as a first key label obtained for the first key, wherein the first key label and the second key label are obtained based on a same algorithm (operation  506 ). The system stores the second key and the second key label, thereby facilitating secure encryption and decryption of data on a remote device (operation  508 ). 
       FIG.  5 B  presents a flowchart  520  illustrating a method by a key-managing device for retrieving a key based on a corresponding key label, in accordance with an embodiment of the present application. During operation, the system receives a request for the second key, wherein the request includes the second key label (operation  522 ). The system retrieves the second key from a database associated with the system based on the second key label included in the request for the second key (operation  524 ). The system returns the retrieved second key (operation  526 ). 
     Exemplary Computer System and Device 
       FIG.  6    illustrates an exemplary computer system  600  that facilitates storage encryption and decryption, in accordance with an embodiment of the present application. Computer system  600  includes a processor  602 , a memory  604 , a quantum engine  606 , and a storage device  608 . Memory  604  can include a volatile memory (e.g., RAM) that serves as a managed memory, and can be used to store one or more memory pools. Furthermore, computer system  600  can be coupled to a display device  610 , a keyboard  612 , and a pointing device  614 . Quantum engine  606  can generate quantum keys and communicate via a quantum or photonic communication with another system by distributing and maintaining a same pool of keys. Storage device  608  can store an operating system  616 , a content-processing system  618 , and data  632 . 
     Content-processing system  618  can include instructions, which when executed by computer system  600 , can cause computer system  600  to perform methods and/or processes described in this disclosure. Specifically, content-processing system  618  can include: a communication module  620  for transmitting and receiving keys or requests which indicate data, keys, or key labels, including via a quantum or photonic communication; a key-selecting module  622  for updating a key based on a dynamic key refreshment protocol and for selected a most recently used key for an encryption operation; a key label-managing module  624  for generating key labels and for determining a key label for a key; an encrypting/decrypting module  626  for encrypting or decrypting data based on a key; a key-generating module  628  for generating key sequences or keys to be stored in a key pool; and a verification module  630  for verifying a key whose hash value is included in a request. 
     Data  632  can include any data that is required as input or that is generated as output by the methods and/or processes described in this disclosure. Specifically, data  632  can store at least: data to be encrypted and stored; a request to encrypt data to be stored on a storage device; a key; an updated key; a dynamic key refreshment protocol; a key label for a key; a key pool; a key sequence; a synchronization request; a predetermined time interval; an indicator of receiving a request; a method used to obtain a key from a key pool; an algorithm used to obtain or determine a key label for a key; a hash value; a hash value of a key; a request to decrypt encrypted data; a request for a key, where the request include a key label for the requested key; a database; encrypted data; decrypted data; and an encrypted or decrypted key or key label. 
       FIG.  7    illustrates an exemplary apparatus  700  that facilitates storage encryption and decryption, in accordance with an embodiment of the present application. Apparatus  700  can comprise a plurality of units or apparatuses which may communicate with one another via a wired, wireless, quantum light, or electrical communication channel. Device  700  may be realized using one or more integrated circuits, and may include fewer or more units or apparatuses than those shown in  FIG.  7   . Further, device  700  may be integrated in a computer system, or realized as a separate device which is capable of communicating with other computer systems and/or devices. Specifically, device  700  can comprise units  702 - 712  which perform functions or operations similar to modules  620 - 630  of computer system  600  of  FIG.  6   , including: a communication unit  702 ; a key-selecting unit  704 ; a key label-managing unit  706 ; an encrypting/decrypting unit  708 ; a key-generating unit  710 ; and a verification unit  712 . 
     The data structures and code described in this detailed description are typically stored on a computer-readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. The computer-readable storage medium includes, but is not limited to, volatile memory, non-volatile memory, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs), DVDs (digital versatile discs or digital video discs), or other media capable of storing computer-readable media now known or later developed. 
     The methods and processes described in the detailed description section can be embodied as code and/or data, which can be stored in a computer-readable storage medium as described above. When a computer system reads and executes the code and/or data stored on the computer-readable storage medium, the computer system performs the methods and processes embodied as data structures and code and stored within the computer-readable storage medium. 
     Furthermore, the methods and processes described above can be included in hardware modules. For example, the hardware modules can include, but are not limited to, application-specific integrated circuit (ASIC) chips, field-programmable gate arrays (FPGAs), and other programmable-logic devices now known or later developed. When the hardware modules are activated, the hardware modules perform the methods and processes included within the hardware modules. 
     The foregoing descriptions of embodiments of the present invention have been presented for purposes of illustration and description only. They are not intended to be exhaustive or to limit the present invention to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present invention. The scope of the present invention is defined by the appended claims.