HYBRID KEY DRAIN FOR DATA BACKUP
The hybrid key derivation function combines RSA, ECDH, and PQC algorithms to secure data at rest, addressing vulnerabilities to quantum computing by using PKCS7 encoding and dual signatures, ensuring robust encryption and decryption.
Patent Information
- Application Number
- DE112021006229
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-12-30
- Filing Date
- 2021-11-18
- Publication Date
- 2025-01-02
- Estimated Expiration
- 2041-11-18
AI Technical Summary
Existing encryption methods are vulnerable to quantum computing attacks, and there is a need for a hybrid approach that combines traditional and post-quantum cryptography (PQC) algorithms to secure data at rest without exposing vulnerabilities.
A hybrid key derivation function is used to generate encryption keys by combining RSA and ECDH with PQC algorithms, distributing PQC public keys in certificates signed with Dilithium, and securing data with PKCS7 encoding using both traditional and PQC signatures.
This hybrid approach enhances data security by leveraging the strengths of both traditional and PQC algorithms, providing robust encryption and decryption capabilities against quantum computing threats.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
BACKGROUND
[0001] The present disclosure relates generally to the field of data encryption and decryption, and more particularly to combining the strengths of both conventional and post-quantum cryptography (PQC) algorithms for securing data at rest in an encode.
[0002] In cryptography, encryption is the process of encoding information. The encoding process can convert the original representation of information, known as plaintext, into an alternative form known as ciphertext. Ideally, only authorized parties can decrypt ciphertext back to plaintext and access the original information. In public key encryption schemes, an encryption key can be published for anyone to use and encrypt messages. However, only the receiving party has access to the decryption key, which allows messages to be read. Quantum computing can exploit properties of quantum mechanics to process large amounts of data simultaneously.Quantum processing has been found to achieve data processing speeds thousands of times faster than today's supercomputers.
[0003] US 9794249 B1 describes the use of a digital certificate with multiple cryptographic systems, where the certificate contains public keys and digital signatures for different cryptosystems. US 11366897 B1 describes systems, computer program products, and methods for quantum computing detection in which QC detection data is generated, encrypted, and monitored using asymmetric keys and the private key is destroyed. SUMMARY OF THE INVENTION
[0004] Aspects of an embodiment of the present disclosure disclose an approach for securing data. A processor publishes a conventional public key in a conventional certificate and a PQC public key in a PQC certificate. A processor encrypts data with a hybrid shared secret, the hybrid shared secret generated with a key derivation function by using a conventional shared secret based on the conventional public key and a PQC shared secret based on the PQC public key. A processor decrypts the data with the hybrid shared secret based on a conventional private key and a PQC private key. A processor signs the data with a conventional signature followed by a PQC signature. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a functional block diagram illustrating a hybrid key derivation environment according to an embodiment of the present disclosure. Fig. 2 is a flowchart showing the working steps of a hybrid key derivation module in a data processing unit of Fig. 1 according to an embodiment of the present disclosure. Fig. 3 is a flowchart showing operations of a distribution module of the hybrid key derivation module in the data processing unit of Fig. 1 according to an embodiment of the present disclosure. Fig. 4 is a flowchart showing operations of an encryption module of the hybrid key derivation module in the data processing unit of Fig. 1 according to an embodiment of the present disclosure. Fig. 5 is another flowchart showing operations of the encryption module of the hybrid key derivation module in the data processing unit of Fig. 1 according to an embodiment of the present disclosure. Fig. 6 is a flowchart showing operations of a decryption module of the hybrid key derivation module in the data processing unit of Fig. 1 according to an embodiment of the present disclosure. Fig. Fig. 7 is another flowchart showing operations of the decryption module of the hybrid key derivation module in the data processing unit of Fig. 1 according to an embodiment of the present disclosure. Fig. 8 is a flowchart showing working steps of a signature module of the hybrid key derivation module in the data processing unit of Fig. 1 according to an embodiment of the present disclosure. Fig. 9 is a block diagram of components of the data processing unit of Fig. 1 according to an embodiment of the present disclosure. Fig. 10 illustrates one embodiment of a cloud computing environment according to the present disclosure. Fig. 11 illustrates an embodiment of abstraction model layers of a cloud computing environment according to the present disclosure. DETAILED DESCRIPTION
[0005] The present disclosure relates to systems and methods for combining the strengths of both conventional and PQC (post-quantum cryptography) algorithms for securing data at rest in an encode.
[0006] Embodiments of the present disclosure recognize a need for using quantum-resistant algorithms in conjunction with conventional algorithms in a PKCS7 (Seventh of the Public Key Cryptographic Standards) structure to protect data at rest, and ideally without exposing the data to potential yet undiscovered deficiencies in the relatively new PQC algorithms. Embodiments of the present disclosure disclose combining the strengths of conventional and PQC algorithms to secure data at rest in an encoding (e.g., PKCS7 encoding). Embodiments of the present disclosure disclose using a hybrid key derivation function to generate encryption keys for PKCS7 by combining both conventional (e.g., RSA (Rivest-Shamir-Adleman) and ECDH (Elliptic-curve Diffie-Hellman)) and PQC algorithms.Embodiments of the present disclosure disclose distributing a signed PQC public key (e.g., Kyber) by using a PQC algorithm (e.g., Dilithium) in a certificate. Embodiments of the present disclosure disclose a signed PKCS7 envelope, where data is signed by a conventional signing algorithm followed by (data + conventional signature), which is in turn signed by a PQC signature algorithm.
[0007] In one embodiment, a sender and a receiver may use PQC key pairs to generate a shared PQC secret. The receiver's public RSA key may be known to the sender and may be used to encrypt a randomly generated conventional shared secret. These two shared secrets may be input into a hash-based key derivation function to generate a hybrid shared secret, which may be used as an encryption key for encrypting data by the sender. The receiver may apply similar derivation techniques to the decryption key. In another embodiment, both a sender and a receiver may have conventional (e.g., ECDH) and PQC key pairs and use them to generate a conventional shared secret and a shared PQC secret.These two shared secrets can be input into a hash-based key derivation function to generate a hybrid shared secret, which can be used as an encryption key for the sender to encrypt data. The receiver can apply similar derivation techniques to the decryption key.
[0008] Embodiments of the present disclosure disclose distributing a PQC (e.g., Kyber) public key using a certificate that can be directly generated and signed using a PQC (e.g., dilithium) signature algorithm. For the signed and wrapped data of PKCS7, embodiments of the present disclosure disclose signing data using a conventional algorithm, concatenating the conventional signature with the data, and signing the result of the conventional signature and the data using a PQC signature algorithm. Embodiments of the present disclosure disclose binding the conventional and PQC certificates to each other.
[0009] The present disclosure will be described in detail below with reference to the figures. Fig. 1 is a functional block diagram illustrating a hybrid key derivation environment, generally designated 100, according to an embodiment of the present disclosure.
[0010] In the illustrated embodiment, the hybrid key derivation environment 100 includes a computing device 102, data 104, and a network 108. In the illustrated embodiment, the data 104 is located external to the computing device 102 and is accessed via a data transmission network such as the network 108. The data 104 may be accessed directly from the computing device 102. In other embodiments, the data 104 may be located and stored on the computing device 102.
[0011] In various embodiments of the present disclosure, computing device 102 may be a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a mobile phone, a smartphone, a smart watch, a wearable computing device, a personal digital assistant (PDA), or a server. In another embodiment, computing device 102 represents a computing system that utilizes grouped computers and components to act as a single pool of seamless resources. In other embodiments, computing device 102 may represent a server computing system that utilizes multiple computers as a server system, such as in a cloud computing environment.In general, computing device 102 may be any computing device or combination of devices with access to hybrid key derivation module 110 and network 108, and is capable of processing program instructions and executing hybrid key derivation module 110, according to one embodiment of the present disclosure. Computing device 102 may include internal and external hardware components, as described with reference to FIG. Fig. 9 is presented and described in more detail.
[0012] Furthermore, in the illustrated embodiment, the computing unit 102 includes the hybrid key derivation module 110. In the illustrated embodiment, the hybrid key derivation module 110 is located on the computing unit 102. However, in other embodiments, the hybrid key derivation module 110 may be located externally and accessed via a communications network such as the network 108. The communications network may be, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of both, and may include a wired, wireless, fiber optic, or any other connection known in the art.In general, the data transmission network may be any combination of connections and protocols that support data transmissions between the computing device 102 and the hybrid key derivation module 110 according to a desired embodiment of the disclosure.
[0013] In one or more embodiments, the hybrid key derivation module 110 is configured to publish a traditional public key in a traditional certificate and a PQC public key in a PQC certificate. The hybrid key derivation module 110 may generate a traditional key pair. The traditional key pair may include a traditional private key and the traditional public key. In one example, the traditional key pair may be an RSA key pair. The RSA key pair may be used to encrypt and decrypt the data 104. An RSA public key may be known to everyone. An RSA private key must be kept private. Messages encrypted using the public key may be decrypted using the private key.In another example, the conventional key pair may be an ECDH key pair. ECDH may be a key agreement protocol that allows two parties, each with a public-private key pair using elliptic curves, to create a shared secret over an insecure channel. This shared secret can be used directly as a key or to derive another key. The key or the derived key can then be used to encrypt subsequent data transmissions using a symmetric key cipher. In one example, the hybrid key derivation module 110 may generate a Diffie-Hellman Ephemeral (DHE) key pair. DHE may be a modification of the Diffie-Hellman key exchange that uses static keys.A cryptographic key may be said to be ephemeral if the cryptographic key is generated for each execution of a key exchange process. In some examples, ephemeral keys may be used more than once in a single session (e.g., in broadcasting applications), where the sender generates only one ephemeral key pair per message, and the private key is combined separately with the public key of each recipient. The hybrid key derivation module 110 may generate a PQC key pair. The PQC key pair may include a PQC private key and the PQC public key. PQC may refer to cryptographic algorithms that may be secure against attack by a quantum computer. In one example, PQC may be a secure encapsulation mechanism of a key (e.g.,Kyber), whose security relies on the strength of solving the learning-with-errors problem over modulo lattices. A key encapsulation mechanism may be a class of encryption techniques designed to secure symmetric cryptographic key material for transmission by using asymmetric (public key) algorithms. A Kyber key may be used for encryption and decryption. A Kyber public key may be used in a certificate signed with a Dilithium key. For example, Dilithium may be a digital signature scheme secure under select message attacks based on the strength of lattice problems over modulo lattices. The hybrid key derivation module 110 may publish the conventional public key in a conventional certificate for use in encryption.The hybrid key derivation module 110 can publish the PQC public key in a PQC certificate for use in encryption. The hybrid key derivation module 110 can store and secure the traditional private key and the PQC private key.
[0014] In one or more embodiments, the hybrid key derivation module 110 is configured to encrypt the data 104 with a hybrid shared secret. The hybrid key derivation module 110 may generate the hybrid shared secret with a key derivation function by using a traditional shared secret based on the traditional public key and a PQC shared secret based on the PQC public key. In one example, the hybrid key derivation module 110 may randomly generate the traditional shared secret. The hybrid key derivation module 110 may encrypt the traditional shared secret with the traditional public key. In one embodiment, the traditional shared secret may be an RSA shared secret. The traditional public key may be an RSA public key.The hybrid key derivation module 110 can derive a shared PQC secret using a PQC public key. The hybrid key derivation module 110 can derive a new PQC public key using a PQC key encapsulation mechanism based on the peer's public PQC key. In one example, the PQC key encapsulation mechanism can be Kyber, whose security relies on the strength of solving the learning-with-errors problem over module lattices. Kyber can have different parameter sets that target different security levels. For example, Kyber-512 aims for security approximately equivalent to AES-128, Kyber-768 aims for security approximately equivalent to AES-192, and Kyber-1024 aims for security approximately equivalent to AES-256. AES (Advanced Encryption Standard) is a specification for encrypting electronic data, developed by the USNational Institute of Standards and Technology. The hybrid key derivation module 110 may generate a hybrid shared secret by using a key derivation function based on the traditional shared secret and the PQC shared secret. In one example, the key derivation function may be a hash-based key derivation function. The hash-based key derivation may be a simple key derivation function based on a hash-based message authentication code. The hash-based key derivation may take an input key and extract a fixed-length pseudorandom key from the input key. The hash-based key derivation may extend the input key to multiple additional pseudorandom keys.In one example, hash-based key derivation may convert shared secrets exchanged via Diffie-Hellman into key material suitable for use in encryption, integrity checking, or authentication. The hybrid key derivation module 110 may encrypt the data 104 with the hybrid shared secret. The hybrid key derivation module 110 may store the encrypted traditional shared secret, the new PQC public key, and the encrypted data as an encoding. In one example, the encoding may be a PKCS7 encoding. The hybrid key derivation module 110 may send the PKCS7 encoding to a recipient.
[0015] In another example, the hybrid key derivation module 110 may use a hybrid key function to generate encryption keys for PKCS7 by combining conventional ECDH and PQC algorithms. The hybrid key derivation module 110 may generate a new conventional key pair. In one example, the new conventional key pair is an ephemeral DHE key pair. The new conventional key pair may include a new conventional private key and a new conventional public key. The hybrid key derivation module 110 may derive the conventional shared secret using the peer's conventional public key and the new conventional private key. The hybrid key derivation module 110 may discard the new conventional private key. The hybrid key derivation module 110 may derive a PQC shared secret using the PQC public key.The hybrid key derivation module 110 may derive a new PQC public key using a PQC key encapsulation mechanism based on the peer's PQC public key. The hybrid key derivation module 110 may generate the hybrid shared secret by using the key derivation function based on the traditional shared secret and the PQC shared secret. The hybrid key derivation module 110 may encrypt the data 104 with the hybrid shared secret. The hybrid key derivation module 110 may store the newly encrypted traditional key, the new PQC public key, and the encrypted data as an encoding. The encoding may be a PKCS7 encoding.
[0016] In one or more embodiments, the hybrid key derivation module 110 is configured to decrypt the data 104 with the hybrid shared secret based on a traditional private key and a PQC private key. In one embodiment, the hybrid key derivation module 110 may use hybrid (e.g., both traditional RSA and PQC) shared secret generation algorithms to decrypt the data 104 at rest (e.g., PKCS7). For example, the hybrid key derivation module 110 may read an encoding of the encrypted traditional shared secret, the new PQC public key, and the encrypted data. The hybrid key derivation module 110 may decrypt the traditional shared secret with the traditional private key. In one example, the traditional shared secret may be an RSA shared secret.The traditional private key may be an RSA private key. The hybrid key derivation module 110 may derive a shared PQC secret using a new PQC public key and a PQC private key. The hybrid key derivation module 110 may generate the hybrid shared secret using a key derivation function based on the traditional shared secret and the shared PQC secret. In one example, the key derivation function may be a hash-based key derivation function. The hybrid key derivation module 110 may decrypt the encrypted data 104 using the hybrid shared secret. The hybrid key derivation module 110 may back up and restore the data 104. In another embodiment, the hybrid key derivation module 110 may use hybrid (e.g.,The hybrid key derivation module 110 may use both conventional ECDH and PQC algorithms to generate a shared secret for decrypting the data 104 at rest (e.g., PKCS7). For example, the hybrid key derivation module 110 may read the encoding of the new conventional public key, the new PQC public key, and the encrypted data. The hybrid key derivation module 110 may derive the conventional shared secret (e.g., a conventional ECDH shared secret) using a new conventional public key (e.g., another ECDH public key) and a conventional private key (e.g., an ECDH private key). The hybrid key derivation module 110 may derive the PQC shared secret using a new PQC public key and a PQC private key.The hybrid key derivation module 110 can generate the hybrid shared secret using the key derivation function based on the traditional shared secret and the PQC shared secret. The hybrid key derivation module 110 can decrypt the encrypted data 104 using the hybrid shared secret. The hybrid key derivation module 110 can back up and restore the data 104.
[0017] In one or more embodiments, the hybrid key derivation module 110 is configured to sign the data 104 with a traditional signature followed by a PQC signature. The hybrid key derivation module 110 may perform certificate validation of a traditional public key and a PQC public key. The hybrid key derivation module 110 may verify the traditional signature with the traditional public key over the data. The hybrid key derivation module 110 may verify the PQC signature with the PQC public key over the data concatenated with the traditional signature. The hybrid key derivation module 110 may distribute a PQC (e.g., Kyber) public key using a certificate that can be directly generated and signed using a PQC (e.g., dilithium) signature algorithm.For the signed and wrapped data of PKCS7, a hybrid key derivation module 110 can sign the data using a conventional algorithm, concatenate the conventional signature with the data, and sign the result of the conventional signature and the data using a PQC algorithm. The hybrid key derivation module 110 can establish a binding between the conventional and PQC certificates.
[0018] Furthermore, in the illustrated embodiment, the hybrid key derivation module 110 includes a distribution module 112, an encryption module 114, a decryption module 116, and a signature module 118. In the illustrated embodiment, the distribution module 112, the encryption module 114, the decryption module 116, and the signature module 118 are located on the computing device 102. In other embodiments, the distribution module 112, the encryption module 114, the decryption module 116, and the signature module 118 may be located externally and accessed via a data transmission network, such as the network 108.
[0019] In one or more embodiments, the distribution module 112 is configured to publish a traditional public key in a traditional certificate and a PQC public key in a PQC certificate. The distribution module 112 may generate a traditional key pair. The traditional key pair may include a traditional private key and the traditional public key. In one example, the traditional key pair may be an RSA key pair. The RSA key pair may be used to encrypt and decrypt the data 104. An RSA public key may be known to everyone. An RSA private key must be kept private. Messages encrypted using the public key may be decrypted using the private key. In another example, the traditional key pair may be an ECDH key pair.ECDH may be a key agreement protocol that allows two parties, each having a public-private key pair using elliptic curves, to create a shared secret over an insecure channel. This shared secret can be used directly as a key or to derive another key. The key or the derived key can then be used to encrypt subsequent data transmissions using a symmetric key cipher. In one example, the distribution module 112 may generate a DHE key pair. DHE may be a modification of the Diffie-Hellman key exchange that uses static keys. A cryptographic key may be said to be ephemeral if the cryptographic key is generated for each execution of a key exchange process. In some examples, ephemeral keys may be used more than once in a single session (e.g.,in broadcast applications), where the sender generates only one ephemeral key pair per message, and the private key is combined separately with the public key of each recipient. The distribution module 112 may generate a PQC key pair. The PQC key pair may include a PQC private key and the PQC public key. PQC may refer to cryptographic algorithms that may be secure against attack by a quantum computer. In one example, PQC may be a secure key encapsulation mechanism (e.g., Kyber), whose security relies on the strength of solving the learning-with-errors problem over modulo lattices. A key encapsulation mechanism may be a class of encryption techniques designed to secure symmetric cryptographic key material for transmission by using asymmetric (public key) algorithms.A Kyber key can be used for encryption and decryption. A Kyber public key can be used in a certificate signed with a Dilithium key. For example, Dilithium can be a digital signature scheme secure under selected message attacks based on the strength of lattice problems over module lattices. Distribution module 112 can publish the traditional public key in a traditional certificate for use for encryption. Distribution module 112 can publish the PQC public key in a PQC certificate for use for encryption. Distribution module 112 can store and secure the traditional private key and the PQC private key.
[0020] In one or more embodiments, the encryption module 114 is configured to encrypt the data 104 with a hybrid shared secret. The encryption module 114 may generate the hybrid shared secret with a key derivation function by using a traditional shared secret based on the traditional public key and a PQC shared secret based on the PQC public key. In one example, the encryption module 114 may randomly generate the traditional shared secret. The encryption module 114 may encrypt the traditional shared secret with the traditional public key. In one embodiment, the traditional shared secret may be an RSA shared secret. The traditional public key may be an RSA public key.The encryption module 114 may derive a shared PQC secret using a PQC public key. The encryption module 114 may derive a new PQC public key using a PQC key encapsulation mechanism based on the peer's public PQC key. In one example, the PQC key encapsulation mechanism may be Kyber, whose security relies on the strength of solving the learning-with-errors problem over module lattices. Kyber may have different parameter sets that target different security levels. For example, Kyber-512 aims for security approximately equivalent to AES-128, Kyber-768 aims for security approximately equivalent to AES-192, and Kyber-1024 aims for security approximately equivalent to AES-256. AES may be a specification for the encryption of electronic data, for example, developed by the USNational Institute of Standards and Technology. The encryption module 114 may generate a hybrid shared secret by using a key derivation function based on the traditional shared secret and the PQC shared secret. In one example, the key derivation function may be a hash-based key derivation function. The hash-based key derivation may be a simple key derivation function based on a hash-based message authentication code. The hash-based key derivation may take an input key and extract a fixed-length pseudorandom key from the input key. The hash-based key derivation may extend the input key to multiple additional pseudorandom keys.In one example, hash-based key derivation may convert shared secrets exchanged via Diffie-Hellman into key material suitable for use in encryption, integrity verification, or authentication. The encryption module 114 may encrypt the data 104 with the hybrid shared secret. The encryption module 114 may store the encrypted traditional shared secret, the new PQC public key, and the encrypted data as an encoding. In one example, the encoding may be a PKCS7 encoding. The encryption module 114 may send the PKCS7 encoding to a recipient.
[0021] In another example, the encryption module 114 may use a hybrid key function to generate encryption keys for PKCS7 by combining conventional ECDH and PQC algorithms. The encryption module 114 may generate a new conventional key pair. In one example, the new conventional key pair is an ephemeral DHE key pair. The new conventional key pair may include a new conventional private key and a new conventional public key. The encryption module 114 may derive the conventional shared secret using the peer's conventional public key and the new conventional private key. The encryption module 114 may discard the new conventional private key. The encryption module 114 may derive the PQC shared secret using the PQC public key.The encryption module 114 may derive a new PQC public key using a PQC key encapsulation mechanism based on the peer's PQC public key. The encryption module 114 may generate the hybrid shared secret by using the key derivation function based on the traditional shared secret and the PQC shared secret. The encryption module 114 may encrypt the data 104 with the hybrid shared secret. The encryption module 114 may store the new traditional public key, the new PQC public key, and the encrypted data as an encoding. The encoding may be a PKCS7 encoding.
[0022] In one or more embodiments, the decryption module 116 is configured to decrypt the data 104 with the hybrid shared secret based on a traditional private key and a PQC private key. In one embodiment, the decryption module 116 may use hybrid (e.g., both traditional RSA and PQC) algorithms to generate a shared secret for decrypting the data 104 at rest (e.g., PKCS7). For example, the decryption module 116 may read an encoding of the encrypted traditional shared secret, the new PQC public key, and the encrypted data. The decryption module 116 may decrypt the traditional shared secret with the traditional private key. In one example, the traditional shared secret may be an RSA shared secret. The traditional private key may be an RSA private key.The decryption module 116 may derive a shared PQC secret using the new peer public PQC key and a private PQC key. The decryption module 116 may generate the hybrid shared secret using a key derivation function based on the traditional shared secret and the shared PQC secret. In one example, the key derivation function may be a hash-based key derivation function. The decryption module 116 may decrypt the encrypted data 104 using the hybrid shared secret. The decryption module 116 may back up and restore the data 104. In another embodiment, the decryption module 116 may use hybrid (e.g., both traditional ECDH and PQC) algorithms to generate a shared secret for decrypting the data 104 at rest (e.g., PKCS7).For example, the decryption module 116 may read the encoding of the new traditional public key, the new PQC public key, and the encrypted data. The decryption module 116 may derive the traditional shared secret (e.g., a traditional ECDH shared secret) using the new traditional public key of the peer (e.g., another ECDH public key) and a traditional private key (e.g., an ECDH private key). The decryption module 116 may derive the PQC shared secret using the new PQC public key of the peer and a PQC private key. The decryption module 116 may generate the hybrid shared secret using the key derivation function based on the traditional shared secret and the PQC shared secret.The decryption module 116 can decrypt the encrypted data 104 using the hybrid shared secret. The decryption module 116 can back up and restore the data 104.
[0023] In one or more embodiments, the signature module 118 is configured to sign the data 104 with a traditional signature followed by a PQC signature. The signature module 118 may perform certificate validation of a traditional public key and a PQC public key. The signature module 118 may verify the traditional signature with the traditional public key over the data. The signature module 118 may verify the PQC signature with the PQC public key over the data concatenated with the traditional signature. The signature module 118 may distribute a PQC (e.g., Kyber) public key using a certificate that can be directly generated and signed using a PQC (e.g., Dilithium) signature algorithm.For PKCS7 signed and wrapped data, the signature module 118 can sign the data using a conventional algorithm, concatenate the conventional signature with the data, and sign the result of the conventional signature and the data using a PQC algorithm. The signature module 118 can establish a binding between the conventional and PQC certificates.
[0024] Fig. 2 is a flowchart 200 illustrating operations of a hybrid key derivation module 110 according to an embodiment of the present disclosure.
[0025] The hybrid key derivation module 110 operates to publish a traditional public key in a traditional certificate and a PQC public key in a PQC certificate. The hybrid key derivation module 110 also operates to encrypt the data 104 with a hybrid shared secret. The hybrid key derivation module 110 can generate the hybrid shared secret with a key derivation function by using a traditional shared secret based on the traditional public key and a PQC shared secret based on the PQC public key. The hybrid key derivation module 110 operates to decrypt the data 104 with the hybrid shared secret based on a traditional private key and a PQC private key.The hybrid key derivation module 110 operates to sign the data 104 with a conventional signature followed by a PQC signature.
[0026] In a step 202, the hybrid key derivation module 110 publishes a traditional public key in a traditional certificate and a PQC public key in a PQC certificate. The hybrid key derivation module 110 may generate a traditional key pair. The traditional key pair may include a traditional private key and the traditional public key. In one example, the traditional key pair may be an RSA key pair. The RSA key pair may be used to encrypt and decrypt the data 104. An RSA public key may be known to everyone. An RSA private key must be kept private. Messages encrypted using the public key may be decrypted using the private key. In another example, the traditional key pair may be an ECDH key pair.ECDH may be a key agreement protocol that allows two parties, each with a public-private elliptic curve key pair, to create a shared secret over an insecure channel. This shared secret can be used directly as a key or to derive another key. The key or the derived key can then be used to encrypt subsequent data transmissions using a symmetric key cipher. In one example, the hybrid key derivation module 110 may generate a DHE key pair. DHE may be a modification of the Diffie-Hellman key exchange that uses static keys. A cryptographic key may be said to be ephemeral if the cryptographic key is generated for each execution of a key exchange process.In some examples, ephemeral keys may be used more than once in a single session (e.g., in broadcasting applications), where the sender generates only one ephemeral key pair per message, and the private key is combined separately with each recipient's public key. The hybrid key derivation module 110 may generate a PQC key pair. The PQC key pair may include a PQC private key and the PQC public key. PQC may refer to cryptographic algorithms that may be secure against attack by a quantum computer. In one example, PQC may be a secure key encapsulation mechanism (e.g., Kyber) whose security relies on the strength of solving the learning-with-errors problem over modular lattices.A key encapsulation mechanism may be a class of encryption techniques designed to secure symmetric cryptographic key material for transmission using asymmetric (public key) algorithms. A Kyber key may be used for encryption and decryption. A Kyber public key may be used in a certificate signed with a Dilithium key. For example, Dilithium may be a digital signature scheme secure under select message attacks based on the strength of lattice problems over modular lattices. The hybrid key derivation module 110 may publish the conventional public key in a conventional certificate for use for encryption. The hybrid key derivation module 110 may publish the PQC public key in a PQC certificate for use for encryption.The hybrid key derivation module 110 can store and secure the conventional private key and the PQC private key.
[0027] In a step 204, the hybrid key derivation module 110 encrypts the data 104 with a hybrid shared secret. The hybrid key derivation module 110 may generate the hybrid shared secret with a key derivation function by using a traditional shared secret based on the traditional public key and a PQC shared secret based on the PQC public key. In one example, the hybrid key derivation module 110 may randomly generate the traditional shared secret. The hybrid key derivation module 110 may encrypt the traditional shared secret with the traditional public key. In one embodiment, the traditional shared secret may be an RSA shared secret. The traditional public key may be an RSA public key.The hybrid key derivation module 110 may derive a shared PQC secret using a PQC public key. The hybrid key derivation module 110 may derive a new PQC public key using a PQC key encapsulation mechanism based on the PQC public key. In one example, the PQC key encapsulation mechanism may be Kyber, whose security relies on the strength of solving the learning-with-errors problem over module lattices. Kyber may have different parameter sets that target different security levels. For example, Kyber-512 aims for security approximately equivalent to AES-128, Kyber-768 aims for security approximately equivalent to AES-192, and Kyber-1024 aims for security approximately equivalent to AES-256. AES may be a specification for the encryption of electronic data, for example, developed by the USNational Institute of Standards and Technology. The hybrid key derivation module 110 may generate a hybrid shared secret by using a key derivation function based on the traditional shared secret and the PQC shared secret. In one example, the key derivation function may be a hash-based key derivation function. The hash-based key derivation may be a simple key derivation function based on a hash-based message authentication code. The hash-based key derivation may take an input key and extract a fixed-length pseudorandom key from the input key. The hash-based key derivation may extend the input key to multiple additional pseudorandom keys.In one example, hash-based key derivation may convert shared secrets exchanged via Diffie-Hellman into key material suitable for use in encryption, integrity checking, or authentication. The hybrid key derivation module 110 may encrypt the data 104 with the hybrid shared secret. The hybrid key derivation module 110 may store the encrypted traditional shared secret, the new PQC public key, and the encrypted data as an encoding. In one example, the encoding may be a PKCS7 encoding. The hybrid key derivation module 110 may send the PKCS7 encoding to a recipient.
[0028] In another example, the hybrid key derivation module 110 may use a hybrid key function to generate encryption keys for PKCS7 by combining conventional ECDH and PQC algorithms. The hybrid key derivation module 110 may generate a new conventional key pair. In one example, the new conventional key pair is an ephemeral DHE key pair. The new conventional key pair may include a new conventional private key and a new conventional public key. The hybrid key derivation module 110 may derive the conventional shared secret using the conventional public key and the new conventional private key. The hybrid key derivation module 110 may discard the new conventional private key. The hybrid key derivation module 110 may derive a PQC shared secret using the PQC public key.The hybrid key derivation module 110 may derive a new PQC public key using a PQC key encapsulation mechanism based on the peer's PQC public key. The hybrid key derivation module 110 may generate the hybrid shared secret by using the key derivation function based on the traditional shared secret and the PQC shared secret. The hybrid key derivation module 110 may encrypt the data 104 with the hybrid shared secret. The hybrid key derivation module 110 may store the new traditional public key, the new PQC public key, and the encrypted data as an encoding. The encoding may be a PKCS7 encoding.
[0029] In a step 206, the hybrid key derivation module 110 decrypts the data 104 with the hybrid shared secret based on a traditional private key and a PQC private key. In one embodiment, the hybrid key derivation module 110 may use hybrid (e.g., both traditional RSA and PQC) algorithms to generate a shared secret for decrypting the data 104 at rest (e.g., PKCS7). For example, the hybrid key derivation module 110 may read an encoding of the encrypted traditional shared secret, the new PQC public key, and the encrypted data. The hybrid key derivation module 110 may decrypt the traditional shared secret with the traditional private key. In one example, the traditional shared secret may be an RSA shared secret. The traditional private key may be an RSA private key.The hybrid key derivation module 110 may derive a shared PQC secret using a new PQC public key and a PQC private key. The hybrid key derivation module 110 may generate the hybrid shared secret using a key derivation function based on the traditional shared secret and the shared PQC secret. In one example, the key derivation function may be a hash-based key derivation function. The hybrid key derivation module 110 may decrypt the encrypted data 104 using the hybrid shared secret. The hybrid key derivation module 110 may back up and restore the data 104. In another embodiment, the hybrid key derivation module 110 may use hybrid (e.g., both traditional ECDH and PQC) algorithms to generate a shared secret for decrypting the data 104 at rest (e.g., PKCS7).For example, the hybrid key derivation module 110 may read the encoding of the new traditional public key, the new PQC public key, and the encrypted data. The hybrid key derivation module 110 may derive the traditional shared secret (e.g., a traditional ECDH shared secret) using a new traditional public key (e.g., another ECDH public key) and a traditional private key (e.g., an ECDH private key). The hybrid key derivation module 110 may derive the PQC shared secret using a new PQC public key and a PQC private key. The hybrid key derivation module 110 may generate the hybrid shared secret using the key derivation function based on the traditional shared secret and the PQC shared secret.The hybrid key derivation module 110 can decrypt the encrypted data 104 using the hybrid shared secret. The hybrid key derivation module 110 can back up and restore the data 104.
[0030] In a step 208, the hybrid key derivation module 110 signs the data 104 with a traditional signature followed by a PQC signature. The hybrid key derivation module 110 may perform certificate validation of a traditional public key and a PQC public key. The hybrid key derivation module 110 may verify the traditional signature with the traditional public key over the data. The hybrid key derivation module 110 may verify the PQC signature with the PQC public key over the data concatenated with the traditional signature. The hybrid key derivation module 110 may distribute a PQC (e.g., Kyber) public key using a certificate that can be directly generated and signed using a PQC (e.g., Dilithium) signature algorithm.For the signed and wrapped data of PKCS7, a hybrid key derivation module 110 can sign the data using a conventional algorithm, concatenate the conventional signature with the data, and sign the result of the conventional signature and the data using a PQC algorithm. The hybrid key derivation module 110 can establish a binding between the conventional and PQC certificates.
[0031] Fig. 3 is a flowchart 300 illustrating operations of the distribution module 112 of the hybrid key derivation module 110 according to an embodiment of the present disclosure.
[0032] In a step 302, the distribution module 112 generates a traditional key pair. The traditional key pair may include a traditional private key and a traditional public key. In one example, the traditional key pair may be an RSA key pair. In another example, the traditional key pair may be an ECDH key pair. The distribution module 112 may generate a DHE key pair. In a step 304, the distribution module 112 may generate a PQC key pair. The PQC key pair may include a PQC private key and a PQC public key. In a step 306, the distribution module 112 publishes the traditional public key in a traditional certificate for use for encryption. In a step 308, the distribution module 112 publishes the PQC public key in a PQC certificate for use for encryption.In a step 310, the distribution module 112 protects the traditional private key and the private PQC key. The distribution module 112 may store the traditional private key and the private PQC key.
[0033] Fig. 4 is a flowchart 400 illustrating operations of the encryption module 114 of the hybrid key derivation module 110 according to an embodiment of the present disclosure.
[0034] In a step 402, the encryption module 114 randomly generates a conventional shared secret. In a step 404, the encryption module 114 encrypts the conventional shared secret with a conventional public key. In one embodiment, the conventional shared secret may be an RSA shared secret. The conventional public key may be an RSA public key. In a step 406, the encryption module 114 derives a PQC shared secret using a PQC public key. In a step 408, the encryption module 114 derives a new PQC public key using a PQC key encapsulation mechanism based on the PQC public key. In one example, the PQC key encapsulation mechanism may be Kyber, whose security relies on the strength of solving the learning-with-errors problem over moduli lattices.In a step 410, the encryption module 114 generates a hybrid shared secret by using a key derivation function based on the traditional shared secret and the PQC shared secret. In one example, the key derivation function may be a hash-based key derivation function. The hash-based key derivation may be a simple key derivation function based on a hash-based message authentication code. In a step 412, the encryption module 114 encrypts the data 104 with the hybrid shared secret. In a step 414, the encryption module 114 stores the encrypted traditional shared secret, the new PQC public key, and the encrypted data as an encoding. In one example, the encoding may be a PKCS7 encoding. The encryption module 114 may send the PKCS7 encoding to a recipient.
[0035] Fig. 5 is another flowchart 500 illustrating operations of the encryption module 114 of the hybrid key derivation module 110 according to an embodiment of the present disclosure.
[0036] In a step 502, the encryption module 114 generates a new traditional key pair. In one example, the new traditional key pair is an ephemeral DHE key pair. The new traditional key pair may include a new traditional private key and a new traditional public key. In a step 504, the encryption module 114 derives a traditional shared secret using the peer's traditional public key and the new traditional private key. In a step 506, the distribution module 114 discards the new traditional private key. In a step 508, the encryption module 114 derives a shared PQC secret using a PQC public key. In a step 510, the encryption module 114 derives a new PQC public key using a PQC key encapsulation mechanism based on the PQC public key.In a step 512, the encryption module 114 generates a hybrid shared secret by using a key derivation function based on the traditional shared secret and the PQC shared secret. In a step 514, the encryption module 114 encrypts the data 104 with the hybrid shared secret. In a step 516, the encryption module 114 stores the new traditional public key, the new PQC public key, and the encrypted data as an encoding. The encoding may be a PKCS7 encoding. The encryption module 114 may send the PKCS7 encoding to a recipient.
[0037] Fig. 6 is a flowchart 600 illustrating operations of the decryption module 116 of the hybrid key derivation module 110 according to an embodiment of the present disclosure.
[0038] In a step 602, the decryption module 116 reads an encoding of an encrypted traditional shared secret, a new PQC public key, and encrypted data. In a step 604, the decryption module 116 decrypts the encrypted traditional shared secret using a traditional private key. In one example, the traditional shared secret may be an RSA shared secret. The traditional private key may be an RSA private key. In a step 606, the decryption module 116 derives a PQC shared secret using the new PQC public key and a PQC private key. In a step 608, the decryption module 116 generates a hybrid shared secret using a key derivation function based on the traditional shared secret and the PQC shared secret.In one example, the key derivation function may be a hash-based key derivation function. In step 610, the decryption module 116 decrypts the encrypted data 104 using the hybrid shared secret. The decryption module 116 may back up and restore the data 104.
[0039] Fig. 7 is another flowchart 700 illustrating operations of the decryption module 116 of the hybrid key derivation module 110 according to an embodiment of the present disclosure.
[0040] In a step 702, the decryption module 116 reads an encoding of a new conventional public key, a new PQC public key, and encrypted data. In a step 704, the decryption module 116 derives the conventional shared secret (e.g., a conventional ECDH shared secret) using the new conventional public key (e.g., another ECDH public key) and a conventional private key (e.g., an ECDH private key). In a step 706, the decryption module 116 derives a PQC shared secret using the new PQC public key and a PQC private key. In a step 708, the decryption module 116 generates a hybrid shared secret using a key derivation function based on the conventional shared secret and the PQC shared secret.In a step 710, the decryption module 116 decrypts the encrypted data 104 using the hybrid shared secret. The decryption module 116 can back up and restore the data 104.
[0041] Fig. 8 is a flowchart 800 illustrating operations of the signature module 118 of the hybrid key derivation module 110 according to an embodiment of the present disclosure.
[0042] In a step 802, the signature module 118 certifies a validation of a conventional public key and a PQC public key. In a step 804, the signature module 118 verifies a conventional signature with the conventional public key over the data 104. In a step 806, the signature module 118 verifies a PQC signature with the PQC public key over the data 104 concatenated with the conventional signature. The signature module 118 may distribute a PQC (e.g., Kyber) public key using a certificate that can be directly generated and signed using a PQC (e.g., Dilithium) signature algorithm.For PKCS7 signed and wrapped data, the signature module 118 can sign the data using a traditional algorithm, concatenate the traditional signature with the data, and sign the result of the traditional signature and the data using a PQC signature algorithm. The signature module 118 can establish a binding between the traditional and PQC certificates.
[0043] Fig. 9 illustrates a block diagram 900 of components of the data processing unit 102 according to an embodiment of the present disclosure. It should be understood that Fig. 9 provides only an illustration of one implementation and does not imply limitations on the environments in which various embodiments may be implemented. Many modifications may be made to the illustrated environment.
[0044] Computing unit 102 may include a data transfer structure 902 that provides data transfers between a cache 916, memory 906, persistent storage 908, a data transfer unit 910, and one or more input / output (I / O) interfaces 912. Data transfer structure 902 may be implemented using any architecture designed for passing data and / or controlling information between processors (such as microprocessors, data and network processors, etc.), system memories, peripheral devices, and any other hardware components in a system. For example, data transfer structure 902 may be implemented using one or more buses or a crossbar switch.
[0045] The memory 906 and persistent storage 908 are computer-readable storage media. In this embodiment, the memory 906 comprises random access memory (RAM). In general, the memory 906 may include any suitable volatile or non-volatile computer-readable storage medium. The cache 916 is a fast memory that improves the performance of one or more processors 904 by retaining recently accessed data and data near the accessed data from the memory 906.
[0046] The hybrid key derivation module 110 may be stored in persistent storage 908 and memory 906 for execution by one or more of the respective computer processors 904 via cache 916. In one embodiment, persistent storage 908 comprises a magnetic hard disk. Alternatively, or in addition to a magnetic hard disk, persistent storage 908 may comprise solid-state hard disk storage, a semiconductor memory device, read-only memory (ROM), erasable programmable read-only memory (EPROM), flash memory, or any other computer-readable storage medium capable of storing program instructions or digital information.
[0047] The media used by the persistent storage 908 may also be removable. For example, a removable hard drive may be used for the persistent storage 908. Other examples include optical and magnetic disks, USB flash drives, and smart cards that are inserted into a drive for data transfer to another computer-readable storage medium that is also part of the persistent storage 908.
[0048] In these examples, the communication unit 910 provides data communications with other data processing systems or devices. In these examples, the communication unit 910 includes one or more network interface cards. The communication unit 910 may provide data communications using physical and / or wireless communication links. The hybrid key derivation module 110 may be downloaded to the persistent storage 908 via the communication unit 910.
[0049] One or more I / O interfaces 912 enable the input and output of data with other devices that may be connected to the data processing device 102. For example, the I / O interface 912 may provide a connection to external devices 918, such as a keyboard, a keypad, a touch screen, and / or other suitable input device. The external devices 918 may also include portable, computer-readable storage media, such as USB flash drives, portable optical or magnetic disks, and memory cards. The software and data used to practice embodiments of the present invention, e.g., the hybrid key derivation module 110, may be stored on such portable computer-readable storage media and may be loaded onto the persistent memory 908 via the I / O interface(s) 912. The I / O interface(s) 912 is orare also connected to a display 920.
[0050] The display 920 provides a mechanism for displaying data to a user and may be, for example, a computer monitor.
[0051] The programs described herein are identified based on the application for which they are implemented in a particular embodiment of the invention. It should be understood, however, that any particular program nomenclature is used herein for convenience only, and thus the invention is not intended to be limited solely to use in a particular identified application and / or implied by such nomenclature.
[0052] The present invention may be a system, a method, and / or a computer program product at any possible level of technical detail integration. The computer program product may include a computer-readable storage medium (or media) with computer-readable program instructions for causing a processor to carry out aspects of the present invention.
[0053] The computer-readable storage medium may be any physical device capable of retaining and storing instructions for use by a device to execute instructions. The computer-readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer-readable storage medium includes the following: a portable computer diskette, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM).Flash memory), a static random access memory (SRAM), a portable CD-ROM, a DVD, a memory stick, a floppy disk, a mechanically encoded device such as punched cards or raised structures in a groove on which instructions are stored, and any suitable combination of the foregoing. A computer-readable storage medium, as used herein, should not be construed as containing transient signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., pulses of light carried through a fiber optic cable), or electrical signals carried through a wire.
[0054] Computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to respective computing / processing units or to an external computer or storage unit via a network such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may include copper transmission cables, fiber optic transmission lines, wireless transmission, routers, firewalls, switching units, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing unit receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing / processing unit.
[0055] Computer-readable program instructions for performing operations of the present invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, integrated circuit configuration data, or either source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Python, C++, or the like, and procedural programming languages such as the C programming language or similar programming languages.The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, over the Internet using an Internet service provider).In some embodiments, electronic circuits, including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), may execute the computer-readable program instructions by utilizing state information of the computer-readable program instructions to personalize the electronic circuits to perform aspects of the present invention.
[0056] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, may be implemented using computer-readable program instructions.
[0057] These computer readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, such that the instructions executing via the processor of the computer or other programmable data processing apparatus create means for implementing the functions / steps specified in the flowchart and / or block diagram block(s). These computer readable program instructions may also be stored on a computer readable storage medium capable of directing a computer, programmable data processing apparatus, and / or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored thereon comprises an article of manufacture including instructions implementing aspects of the function(s) specified in the flowchart and / or block diagram block(s).implement the function / step specified in the blocks of the flow chart and / or block diagrams.
[0058] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operations to be performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process such that the instructions executing on the computer, other programmable apparatus, or other device implement the functions / steps specified in the block(s) of flowchart and / or block diagrams.
[0059] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions comprising one or more executable instructions for implementing the particular logical function(s). In some alternative implementations, the functions specified in the block may occur in a different order than shown in the figures.For example, two blocks shown in sequence may actually be accomplished as one step, executing simultaneously, substantially simultaneously, in a partially or completely temporally overlapping manner, or the blocks may sometimes be executed in the reverse order, depending on the functionality involved. It is further to be noted that each block of the block diagrams and / or flowchart illustrations, as well as combinations of blocks in the block diagrams and / or flowchart illustrations, may be implemented by special purpose hardware-based systems that perform the specified functions or acts, or that execute combinations of special purpose hardware and computer instructions.
[0060] The descriptions of the various embodiments of the present invention have been prepared for illustrative purposes, but are by no means intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the invention. The terminology used herein has been chosen to best explain the principles of the embodiment, practical application, or technical improvement over current technologies, or to enable others skilled in the art to understand the disclosed embodiments.
[0061] Although this disclosure includes a detailed description of cloud computing, it should be understood that implementation of the teachings herein is not limited to a cloud computing environment. Rather, embodiments of the present invention may be implemented in conjunction with any type of computing environment now known or later developed.
[0062] Cloud computing is a service delivery model for enabling seamless, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with a service provider. This cloud model can include at least five characteristics, at least three service models, and at least four usage models.
[0063] The properties are as follows: On-demand self-service: A cloud user can unilaterally and automatically provision data processing functions such as server time and network storage as needed, without requiring human interaction with the service provider.
[0064] Broad Network Access: Functions are available over a network and accessed through standard mechanisms that support use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).
[0065] Resource Pooling: The provider's computing resources are pooled to serve multiple users using a multi-tenant model, with various physical and virtual resources dynamically allocated and reassigned as needed. There is a perceived location independence, as the user generally has no control or knowledge over the exact location of the provided resources, but may be able to specify a location at a higher level of abstraction (e.g., country, state, or data center).
[0066] Rapid Elasticity: Features can be deployed quickly and elastically for rapid horizontal scaling out, in some cases automatically, and released quickly for rapid scale-in. To the user, the features available for deployment often appear unlimited, and they can be purchased in any quantity at any time.
[0067] Measured Service: Cloud systems automatically control and optimize resource usage by leveraging a metering function at a certain level of abstraction appropriate for the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource consumption can be monitored, controlled, and reported, creating transparency for both the provider and the user of the service.
[0068] The service models are as follows: Software as a Service (SaaS): The functionality provided to the user is to use the provider's applications running on a cloud infrastructure. The applications are accessible from various client devices via a thin client interface such as a web browser (e.g., a web-based email). The user does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application functions, with the possible exception of limited user-specific application configuration settings.
[0069] Platform as a Service (PaaS): The functionality provided to the user is to deploy applications created or obtained by the user, using programming languages and tools supported by the provider, into the cloud infrastructure. The user does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but has control over the deployed applications and possibly over configurations of the application hosting environment.
[0070] Infrastructure as a Service (IaaS): The functionality provided to the user consists of providing processing, storage, networking, and other basic computing resources, allowing the user to deploy and run any software, including operating systems and applications. The user does not manage or control the underlying cloud infrastructure, but has control over operating systems, storage, deployed applications, and potentially limited control over selected network components (e.g., host firewalls).
[0071] The usage models are as follows: Private Cloud: The cloud infrastructure is operated exclusively for an organization. It can be managed by the organization or a third party and can be located on or off-premises.
[0072] Community Cloud: The cloud infrastructure is shared by multiple organizations and supports a specific community with common problems (e.g., considering objectives, security requirements, policies, and compliance). It can be managed by the organizations or a third party and can be located on-premises or off-premises.
[0073] Public Cloud: The cloud infrastructure is made available to the general public or a large industry group and is owned by an organization that sells cloud services.
[0074] Hybrid Cloud: The cloud infrastructure is a composition of two or more clouds (private, community, or public) that remain separate entities but are interconnected by a standardized or proprietary technology that enables data and application portability (e.g., cloud targeting for load balancing between clouds).
[0075] A cloud computing environment is service-oriented, with an emphasis on statelessness, low coupling, modularity, and semantic interoperability. At the core of cloud computing is an infrastructure containing a network of interconnected nodes.
[0076] With reference to Fig. 10, an illustrative cloud computing environment 50 is shown. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 with which local computing devices used by users of the cloud, such as personal digital assistant (PDA) or mobile phone 54A, desktop computer 54B, laptop computer 54C, and / or vehicle computer system 54N, can exchange data. The nodes 10 can exchange data with each other. They can be physically or virtually grouped in one or more networks (not shown), such as private, community, public, or hybrid clouds, as described hereinabove, or a combination thereof. Thus, the cloud computing environment 50 has the ability to offer infrastructure, platforms, and / or software as services for which a cloud user does not need to maintain any resources on a local computing device. It should be understood that the Fig. 10 are intended to be illustrative only, and that the cloud computing nodes 10 and the cloud computing environment 50 can communicate with any type of computerized device over any type of network and / or a network-addressable connection (e.g., using a web browser).
[0077] With reference to Fig. 11 shows a group of functional abstraction layers used by the cloud computing environment 50 ( Fig. 10). It should be clear from the outset that the Fig. The components, layers, and functions shown in Figure 11 are for illustrative purposes only, and embodiments of the invention are not limited thereto. As shown, the following layers and corresponding functions are provided:
[0078] A hardware and software layer 60 includes hardware and software components. Examples of hardware components include: mainframes 61; servers based on a RISC (Reduced Instruction Set Computer) architecture 62; servers 63; blade servers 64; storage devices 65; and networks and networked components 66. In some embodiments, software components include network application server software 67 and database software 68.
[0079] A virtualization layer 70 provides an abstraction layer from which the following example virtual entities may be deployed: virtual servers 71; virtual storage 72; virtual networks 73, including virtual private networks; virtual applications and operating systems 74; and virtual clients 75.
[0080] In one example, a management layer 80 may provide the functions described below. Resource provisioning 81 provides for dynamic procurement of computing resources and other resources used to perform tasks within the cloud computing environment. Metering and pricing 82 enable cost tracking and billing or invoicing for the use of resources within the cloud computing environment. In one example, these resources may include licenses for application software. A security function provides identity verification for cloud users and tasks, as well as protection for data and other resources. A user portal 83 provides access to the cloud computing environment for users and system administrators.Service Level Management (84) ensures the allocation and management of cloud computing resources so that required service levels are met. Service Level Agreement (SLA) planning and contract fulfillment (85) provides advance agreement for and procurement of cloud computing resources for which future demand is expected according to an SLA.
[0081] A workload layer 90 provides examples of functionality for which the cloud computing environment can be utilized. Examples of workloads and functions that can be provided from this layer include: mapping and navigation 91; software lifecycle management 92; virtual training delivery 93; data analytics processing 94; transaction processing 95; and module 96, which includes, for example, the hybrid key derivation module 110 described above with respect to the hybrid key derivation environment 100.
[0082] Although specific embodiments of the present invention have been described, it should be apparent to those skilled in the art that other embodiments exist that are equivalent to the described embodiments. Accordingly, it should be understood that the invention is not to be limited by the specific illustrated embodiments, but only by the scope of the appended claims.
Claims
[1] A method implemented by a computer, comprising: Publishing (202), by one or more processors, a conventional key in a conventional certificate and a public post-quantum cryptography, PQC, key in a PQC certificate; Encrypting (204), by one or more processors, data with a hybrid shared secret, wherein the hybrid shared secret was generated with a key derivation function by using a conventional shared secret based on the conventional public key and a shared PQC secret based on the public PQC key, comprising: Encrypting (404), by one or more processors, the conventional shared secret with a randomly generated (402) conventional public key; Deriving (406) a new PQC public key with a PQC key encapsulation mechanism based on the PQC public key; Generating (410) the hybrid shared secret by using the key derivation function based on the conventional shared secret and the PQC shared secret; and Encrypting (412) the data with the hybrid shared secret; Decrypting (206), by one or more processors, the data with the hybrid shared secret based on a conventional private key and a PQC private key; and Signing (208), by one or more processors, the data with a conventional signature followed by a PQC signature. [2] The computer-implemented method of claim 1, wherein publishing the conventional public key and the PQC public key comprises: generating (302) a conventional key pair, the conventional key pair comprising a conventional private key and the conventional public key; Generating (304) a PQC key pair, the PQC key pair comprising a private PQC key and the public PQC key; publishing (306) the conventional public key in the conventional certificate; Publishing (308) the PQC public key in the PQC certificate; and Securing (310) the traditional private key and the PQC private key. [3] The computer-implemented method of claim 1, wherein encrypting the data with the hybrid shared secret comprises: Deriving (408) the shared PQC secret using the public PQC key; and Storing (414) the encrypted conventional shared secret, the new PQC public key and the encrypted data as an encoding. [4] The computer-implemented method of claim 3, wherein decrypting the data with the hybrid shared secret comprises: Reading the encoding of the encrypted traditional shared secret, the new PQC public key and the encrypted data; Decrypting the traditional shared secret with the traditional private key; Deriving the shared PQC secret using the new PQC public key and the PQC private key; Generating the hybrid shared secret using the key derivation function based on the traditional shared secret and the PQC shared secret; and Decrypting the encrypted data using the hybrid shared secret. [5] The computer-implemented method of claim 1, wherein encrypting the hybrid shared secret comprises: Generating a new traditional key pair, the new traditional key pair comprising a new traditional private key and a new traditional public key; Deriving the traditional shared secret using the traditional public key and the new traditional private key; Discard the new traditional private key; Deriving the shared PQC secret using the PQC public key; Deriving a new PQC public key using a PQC key encapsulation mechanism based on the PQC public key; Generating the hybrid shared secret by using the key derivation function based on the traditional shared secret and the PQC shared secret; Encrypting the data with the hybrid shared secret; and Store the new conventional public key, the new PQC public key, and the encrypted data as an encoding. [6] The computer-implemented method of claim 5, wherein decrypting the data with the hybrid shared secret comprises: Reading the encoding of the new conventional public key, the new PQC public key and the encrypted data; Deriving the traditional shared secret using the new traditional public key and the traditional private key; Deriving the shared PQC secret using the new PQC public key and the PQC private key; Generating the hybrid shared secret using the key derivation function based on the traditional shared secret and the PQC shared secret; and Decrypting the encrypted data using the hybrid shared secret. [7] A computer-implemented method according to claim 1, wherein signing the data with the conventional signature followed by the PQC signature comprises: Certifying the validity of the traditional public key and the PQC public key; Verifying the traditional signature with the traditional public key over the data; and Verify the PQC signature with the PQC public key using the data concatenated with the traditional signature. [8] Computer program product comprising: one or more computer-readable storage media and program instructions stored together on the one or more computer-readable storage media, the program instructions comprising: Program instructions for publishing a conventional public key in a conventional certificate and a post-quantum cryptography, PQC, public key in a PQC certificate; Program instructions for encrypting data with a hybrid shared secret, wherein the hybrid shared secret was generated with a key derivation function by using a conventional shared secret based on the conventional public key and a shared PQC secret based on the PQC public key, comprising: Program instructions for encrypting, by one or more processors, the conventional shared secret with a randomly generated conventional public key; Program instructions for deriving a new PQC public key using a PQC key encapsulation mechanism based on the PQC public key; Program instructions for generating the hybrid shared secret by using the key derivation function based on the traditional shared secret and the PQC shared secret; Program instructions to encrypt the data with the hybrid shared secret; Program instructions for decrypting the data using the hybrid shared secret based on a conventional private key and a PQC private key; and Program instructions to sign the data with a conventional signature followed by a PQC signature. [9] The computer program product of claim 8, wherein program instructions for publishing the conventional public key and the PQC public key comprise: Program instructions for generating a conventional key pair, the conventional key pair comprising a conventional private key and the conventional public key; Program instructions for generating a PQC key pair, the PQC key pair comprising a private PQC key and the public PQC key; Program instructions for publishing the traditional public key in the traditional certificate; Program instructions for publishing the PQC public key in the PQC certificate; and Program instructions for securing the traditional private key and the PQC private key. [10] The computer program product of claim 8, wherein program instructions for encrypting the data with the hybrid shared secret comprise: Program instructions for deriving the shared PQC secret using the PQC public key; Program instructions for storing the encrypted traditional shared secret, the new PQC public key, and the encrypted data as an encoding. [11] The computer program product of claim 10, wherein program instructions for decrypting the data with the hybrid shared secret comprise: Program instructions for reading the encoding of the encrypted traditional shared secret, the new PQC public key and the encrypted data; Program instructions for decrypting the traditional shared secret with the traditional private key; Program instructions to derive the shared PQC secret using the new PQC public key and the PQC private key; Program instructions for generating the hybrid shared secret using the key derivation function based on the traditional shared secret and the PQC shared secret; and Program instructions to decrypt the encrypted data using the hybrid shared secret. [12] The computer program product of claim 8, wherein program instructions for encrypting the data with the hybrid shared secret comprise: Program instructions for generating a new traditional key pair, the new traditional key pair comprising a new traditional private key and a new traditional public key; Program instructions for deriving the traditional shared secret using the traditional public key and the new traditional private key; Program instructions to discard the new conventional private key; Program instructions for deriving the shared PQC secret using the PQC public key; Program instructions for deriving a new PQC public key using a PQC key encapsulation mechanism based on the PQC public key; Program instructions for generating the hybrid shared secret by using the key derivation function based on the traditional shared secret and the PQC shared secret; Program instructions for encrypting the data with the hybrid shared secret; and Program instructions to store the new conventional public key, the new PQC public key, and the encrypted data as an encoding. [13] The computer program product of claim 12, wherein program instructions for decrypting the data with the hybrid shared secret comprise: Program instructions for reading the encoding of the new conventional public key, the new PQC public key and the encrypted data; Program instructions for deriving the traditional shared secret using the new traditional public key and the traditional private key; Program instructions to derive the shared PQC secret using the new PQC public key and the PQC private key; Program instructions for generating the hybrid shared secret using the key derivation function based on the traditional shared secret and the PQC shared secret; and Program instructions to decrypt the encrypted data using the hybrid shared secret. [14] A computer program product according to claim 8, wherein program instructions for signing the data with the conventional signature followed by the PQC signature comprise: Program instructions for certifying validity of the conventional public key and the PQC public key; Program instructions for verifying the conventional signature with the conventional public key over the data; and Program instructions to verify the PQC signature with the PQC public key using the data concatenated with the traditional signature. [15] Computer system comprising: one or more computer processors, one or more computer-readable storage media, and program instructions stored on the one or more computer-readable storage media for execution by at least one of the one or more computer processors, the program instructions comprising: Program instructions for publishing a conventional public key in a conventional certificate and a post-quantum cryptography, PQC, public key in a PQC certificate; Program instructions for encrypting data with a hybrid shared secret, wherein the hybrid shared secret was generated with a key derivation function by using a conventional shared secret based on the conventional public key and a shared PQC secret based on the PQC public key, comprising: Program instructions for encrypting, by one or more processors, the conventional shared secret with a randomly generated conventional public key; Program instructions for deriving a new PQC public key using a PQC key encapsulation mechanism based on the PQC public key; Program instructions for generating the hybrid shared secret by using the key derivation function based on the traditional shared secret and the PQC shared secret; Program instructions to encrypt the data with the hybrid shared secret; Program instructions for decrypting the data using the hybrid shared secret based on a conventional private key and a PQC private key; and Program instructions to sign the data with a conventional signature followed by a PQC signature. [16] The computer system of claim 15, wherein program instructions for publishing the conventional public key and the PQC public key comprise: Program instructions for generating a conventional key pair, the conventional key pair comprising a conventional private key and the conventional public key; Program instructions for generating a PQC key pair, the PQC key pair comprising a private PQC key and the public PQC key; Program instructions for publishing the traditional public key in the traditional certificate; Program instructions for publishing the PQC public key in the PQC certificate; and Program instructions for securing the traditional private key and the PQC private key. [17] The computer system of claim 15, wherein program instructions for encrypting the data with the hybrid shared secret comprise: Program instructions for deriving the shared PQC secret using the PQC public key; Program instructions for storing the encrypted traditional shared secret, the new PQC public key, and the encrypted data as an encoding. [18] The computer system of claim 17, wherein program instructions for decrypting the data with the hybrid shared secret comprise: Program instructions for reading the encoding of the encrypted traditional shared secret, the new PQC public key and the encrypted data; Program instructions for decrypting the traditional shared secret with the traditional private key; Program instructions to derive the shared PQC secret using the new PQC public key and the PQC private key; Program instructions for generating the hybrid shared secret using the key derivation function based on the traditional shared secret and the PQC shared secret; and Program instructions to decrypt the encrypted data using the hybrid shared secret. [19] The computer system of claim 15, wherein program instructions for encrypting the data with the hybrid shared secret comprise: Program instructions for generating a new traditional key pair, the new traditional key pair comprising a new traditional private key and a new traditional public key; Program instructions for deriving the traditional shared secret using the traditional public key and the new traditional private key; Program instructions to discard the new conventional private key; Program instructions for deriving the shared PQC secret using the PQC public key; Program instructions for deriving a new PQC public key using a PQC key encapsulation mechanism based on the PQC public key; Program instructions for generating the hybrid shared secret by using the key derivation function based on the traditional shared secret and the PQC shared secret; Program instructions for encrypting the data with the hybrid shared secret; and Program instructions to store the new conventional public key, the new PQC public key, and the encrypted data as an encoding. [20] The computer system of claim 19, wherein program instructions for decrypting the data with the hybrid shared secret comprise: Program instructions for reading the encoding of the new conventional key, the new PQC public key and the encrypted data; Program instructions for deriving the traditional shared secret using the new traditional public key and the traditional private key; Program instructions to derive the shared PQC secret using the new PQC public key and the PQC private key; Program instructions for generating the hybrid shared secret using the key derivation function based on the traditional shared secret and the PQC shared secret; and Program instructions to decrypt the encrypted data using the hybrid shared secret.
Citation Information
Patent Citations
Systems and methods for layered quantum computing detection
US11366897B1
Using a digital certificate with multiple cryptosystems
US9794249B1
