Hybrid Key Derivation for Securing Data
By integrating conventional and post-quantum cryptography algorithms, the method generates hybrid encryption keys to secure data-at-rest, addressing vulnerabilities to quantum computing and ensuring secure data transmission.
Patent Information
- Application Number
- JP2023535674
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-12-30
- Filing Date
- 2021-11-18
- Publication Date
- 2025-11-26
- Estimated Expiration
- 2041-11-18
AI Technical Summary
Existing data encryption methods are vulnerable to quantum computing, and there is a need for quantum-resistant algorithms to secure data-at-rest without exposing them to potential flaws in new post-quantum cryptography (PQC) algorithms.
Combining conventional cryptography algorithms like RSA and Elliptic-curve Diffie-Hellman with PQC algorithms like Kyber and Dilithium to generate hybrid encryption keys, using a hybrid key derivation function to secure data-at-rest, and signing with both conventional and PQC signatures.
Provides robust data security against quantum computing threats while leveraging the strengths of both conventional and post-quantum cryptography, ensuring secure data transmission and integrity.
Smart Images

Figure 0007776239000001 
Figure 0007776239000002 
Figure 0007776239000003
Abstract
Description
[Technical Field]
[0001] The present disclosure relates generally to the field of data encryption and decryption, and more particularly to combining the advantages of both conventional and post-quantum cryptography (PQC) algorithms to secure data at rest during encoding. [Background technology]
[0002] In cryptography, encryption can be the process of encoding information. The encoding process can convert the original representation of information, known as plaintext, into another form known as ciphertext. Ideally, only authorized parties can decrypt the ciphertext, converting it back to plaintext and accessing the original information. In public-key encryption schemes, an encryption key can be made public so that anyone can use it to encrypt a message. However, only the receiving party has access to the decryption key, which allows the message to be read. Quantum computing utilizes the properties of quantum mechanics to process large amounts of data simultaneously. Quantum computing has been shown to achieve computational speeds thousands of times faster than current supercomputers. Summary of the Invention
[0003] Aspects of the present disclosure disclose a technique for securing data. A processor publishes a conventional public key in a conventional certificate and a PQC public key in a PQC certificate. The processor encrypts data with a hybrid shared secret generated using a key derivation function by using a conventional shared secret based on the conventional public key and a conventional shared secret based on the PQC public key. The processor decrypts the data with a hybrid shared secret based on the conventional private key and the PQC private key. The processor signs the data using a conventional signature followed by a PQC signature. [Brief explanation of the drawings]
[0004] [Figure 1] FIG. 1 is a functional block diagram illustrating a hybrid key derivation environment, according to an embodiment of the present disclosure. [Figure 2] 2 is a flowchart illustrating operational steps of a hybrid key derivation module in the computing device of FIG. 1 in accordance with an embodiment of the present disclosure. [Figure 3] 2 is a flowchart illustrating operational steps of a distribution module of a hybrid key derivation module in the computing device of FIG. 1 in accordance with an embodiment of the present disclosure. [Figure 4] 2 is a flowchart illustrating operational steps of a cryptographic module of a hybrid key derivation module in the computing device of FIG. 1 in accordance with an embodiment of the present disclosure. [Figure 5] 10 is another flowchart illustrating operational steps of the encryption module of the hybrid key derivation module in the computing device of FIG. 1 in accordance with an embodiment of the present disclosure. [Figure 6] 2 is a flowchart illustrating operational steps of a decryption module of a hybrid key derivation module in the computing device of FIG. 1 in accordance with an embodiment of the present disclosure. [Figure 7] 10 is another flowchart illustrating the operational steps of the decryption module of the hybrid key derivation module in the computing device of FIG. 1 in accordance with an embodiment of the present disclosure. [Figure 8] 2 is a flowchart illustrating operational steps of a signature module of a hybrid key derivation module in the computing device of FIG. 1 in accordance with an embodiment of the present disclosure. [Figure 9] FIG. 2 is a block diagram of components of the computing device of FIG. 1 in accordance with an embodiment of the present disclosure. [Figure 10] 1 illustrates an embodiment of a cloud computing environment, according to an embodiment of the present disclosure. [Figure 11] 1 illustrates an embodiment of an abstraction model layer of a cloud computing environment, according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0005] The present disclosure is directed to a system and method for combining the advantages of conventional and post-quantum cryptography (PQC) algorithms to secure data-at-rest during encoding.
[0006] Embodiments of the present disclosure recognize the need to use quantum-resistant algorithms alongside conventional algorithms within the Seventh of the Public Key Cryptographic Standards (PKCS7) framework to protect data-at-rest, ideally without exposing the data to the risk that relatively new PQC algorithms may have as-yet-undiscovered flaws. Embodiments of the present disclosure disclose combining the advantages of conventional and PQC algorithms to protect data-at-rest in encoding (e.g., PKCS7 encoding). Embodiments of the present disclosure disclose generating encryption keys for PKCS7 using a hybrid key derivation function by combining both conventional (e.g., Rivest-Shamir-Adleman (RSA) and Elliptic-curve Diffie-Hellman (ECDH)) and PQC algorithms. Embodiments of the present disclosure disclose distributing PQC (e.g., Kyber) public keys signed with a PQC (e.g., Dilithium) algorithm in certificates. An embodiment of the present disclosure discloses a PKCS7 signed envelope in which data is signed by a conventional signature algorithm (data + conventional signature) and then signed by a PQC signature algorithm.
[0007] In one embodiment, the sender and receiver can use a PQC key pair to generate a PQC shared secret. The receiver's RSA public key, which may be known to the sender, can be used to encrypt a randomly generated conventional shared secret. These two shared secrets can be input into a hash-based key derivation function to generate a hybrid shared secret that the sender can use as an encryption key to encrypt data. The receiver can apply a similar technique to derive a decryption key. In another embodiment, both the sender and receiver can have a conventional (e.g., ECDH) key pair and a PQC key pair, which can be used to generate a conventional shared secret and a PQC shared secret. These two shared secrets can be input into a hash-based key derivation function to generate a hybrid shared secret that the sender can use as an encryption key to encrypt data. The receiver can apply a similar technique to derive a decryption key.
[0008] Embodiments of the present disclosure disclose distributing PQC (e.g., Kyber) public keys with certificates that can be directly generated and signed using the PQC (e.g., Dilithium) signature algorithm. For PKCS7 signed and enveloped data, embodiments of the present disclosure disclose signing the data using a conventional algorithm, concatenating the conventional signature to the data, and signing the result of the conventional signature and data using the PQC signature algorithm. Embodiments of the present disclosure disclose binding between conventional certificates and PQC certificates.
[0009] The present disclosure will now be described in detail with reference to the figures, in which: Figure 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, hybrid key derivation environment 100 includes computing device 102, data 104, and network 108. In the illustrated embodiment, data 104 is located external to computing device 102 and is accessed through a communications network, such as network 108. Data 104 may be accessed directly from computing device 102. In other embodiments, data 104 may be stored and located on computing device 102.
[0011] In various embodiments of the present disclosure, the 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, the computing device 102 represents a computing system that utilizes computers and components clustered to function as a single pool of seamless resources. In other embodiments, the 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, the computing device 102 may be any computing device or combination of devices that has access to the hybrid key derivation module 110 and the network 108 and is capable of processing program instructions and executing the hybrid key derivation module 110 in accordance with embodiments of the present disclosure. The computing device 102 may include internal and external hardware components, as shown and described in further detail with respect to FIG. 9 .
[0012] Additionally, in the illustrated embodiment, the computing device 102 includes a hybrid key derivation module 110. In the illustrated embodiment, the hybrid key derivation module 110 is located on the computing device 102. However, in other embodiments, the hybrid key derivation module 110 may be located externally and accessed through 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 the two, and may include wired, wireless, fiber optic, or any other connection known in the art. In general, the communications network may be any combination of connections and protocols that support communication between the computing device 102 and the hybrid key derivation module 110 in accordance with preferred embodiments of the present disclosure.
[0013] In one or more embodiments, the hybrid key derivation module 110 is configured to publish a conventional public key in a conventional certificate and a PQC public key in a PQC certificate. The hybrid key derivation module 110 can generate a conventional key pair. The conventional key pair can include a conventional private key and a conventional public key. In one example, the conventional key pair can be an RSA key pair. The RSA key pair can be used to encrypt and decrypt data 104. The RSA public key can be known to everyone. The RSA private key must be kept secret. Messages encrypted using the public key can be decrypted with the private key. In another example, the conventional key pair can be an ECDH key pair. ECDH can be a key agreement protocol that allows two parties, each with an elliptic curve public-private key pair, to establish a shared secret over an insecure channel. This shared secret can be used directly as a key or can be used to derive another key. This key or a derived key can also be used to encrypt subsequent communications using symmetric key cryptography. In one example, the hybrid key derivation module 110 can generate a Diffie-Hellman Ephemeral (DHE) key pair. DHE can be a modification of the Diffie-Hellman key exchange that uses static keys. When a cryptographic key is generated for each execution of the key exchange process, the cryptographic key may be referred to as ephemeral. In some examples, a sender generates only one ephemeral key pair per message, and the ephemeral key can be used multiple times within a single session (e.g., in a broadcast application) where the private key is separately bound to each recipient's public key. The hybrid key derivation module 110 can generate a PQC key pair. The PQC key pair can include a PQC private key and a PQC public key. PQC can refer to a cryptographic algorithm that may be secure against attacks by quantum computers.In one example, PQC can be a secure key encapsulation mechanism (e.g., Kyber) whose security is based on the difficulty of solving a learning-with-errors problem on a modular lattice. Key encapsulation mechanisms can be a class of cryptographic techniques designed to protect symmetric cryptographic keying material for transmission using asymmetric (public key) algorithms. Kyber keys can be used for encryption and decryption. Kyber public keys can be published in certificates signed with Dilithium keys. For example, Dilithium can be a digital signature scheme that is secure under chosen-message attacks based on the difficulty of lattice problems on modular lattices. Hybrid key derivation module 110 can publish a conventional public key in a conventional certificate used for encryption. Hybrid key derivation module 110 can publish a PQC public key in a PQC certificate used for encryption. Hybrid key derivation module 110 can store and secure conventional and PQC private keys.
[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 can generate the hybrid shared secret using 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. In one example, the hybrid key derivation module 110 can randomly generate the conventional shared secret. The hybrid key derivation module 110 can encrypt the conventional shared secret with the conventional public key. In an embodiment, the conventional shared secret can be an RSA shared secret. The conventional public key can be an RSA public key. The hybrid key derivation module 110 can derive the PQC shared secret using the PQC public key. The hybrid key derivation module 110 can derive a new PQC public key based on the peer's PQC public key using a PQC key encapsulation mechanism. In one example, the PQC key encapsulation mechanism can be Kyber, whose security can be based on the difficulty of solving a learning problem with errors on a modular lattice. Kyber can have different parameter sets aimed at 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. The Advanced Encryption Standard (AES) is a specification for encrypting electronic data established by, for example, the National Institute of Standards and Technology. The hybrid key derivation module 110 can generate a hybrid shared secret by using a key derivation function based on the conventional shared secret and the PQC shared secret. In one example, the key derivation function can be a hash-based key derivation function. The hash-based key derivation can be a simple key derivation function based on a hash-based message authentication code. Hash-based key derivation is able to take an input key and extract a fixed-length pseudo-random key from it.Hash-based key derivation can expand an input key into several additional pseudo-random keys. In one example, hash-based key derivation can convert a shared secret exchanged via Diffie-Hellman into keying material suitable for use in encryption, integrity checking, or authentication. The hybrid key derivation module 110 can encrypt the data 104 with the hybrid shared secret. The hybrid key derivation module 110 can store the encrypted traditional shared secret, the new PQC public key, and the encrypted data as an encoding. In one example, the encoding can be a PKCS7 encoding. The hybrid key derivation module 110 can send the PKCS7 encoding to a recipient.
[0015] In another example, the hybrid key derivation module 110 can use a hybrid key function to generate encryption keys for PKCS7 by combining both the conventional ECDH algorithm and the PQC algorithm. The hybrid key derivation module 110 can 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 can include a new conventional private key and a new conventional public key. The hybrid key derivation module 110 can derive a conventional shared secret using the peer's conventional public key and the new conventional private key. The hybrid key derivation module 110 can revoke the new conventional private key. The hybrid key derivation module 110 can derive a PQC shared secret using the PQC public key. The hybrid key derivation module 110 can derive the new PQC public key based on the peer's PQC public key using a PQC key encapsulation mechanism. The hybrid key derivation module 110 can generate a hybrid shared secret based on the conventional shared secret and the PQC shared secret by using a key derivation function. The hybrid key derivation module 110 can encrypt the data 104 with the hybrid shared secret. The hybrid key derivation module 110 can store the new conventional public key, the new PQC public key, and the encrypted data as an encoding. The encoding can be a PKCS7 encoding.
[0016] In one or more embodiments, the hybrid key derivation module 110 is configured to decrypt the data 104 with a hybrid shared secret based on the conventional private key and the PQC private key. In embodiments, the hybrid key derivation module 110 can decrypt the stored data 104 (e.g., PKCS7) using a hybrid (e.g., both conventional RSA and PQC) shared secret generation algorithm. For example, the hybrid key derivation module 110 can read the encrypted conventional shared secret, the new PQC public key, and the encoding of the encrypted data. The hybrid key derivation module 110 can decrypt the conventional shared secret with the conventional private key. In one example, the conventional shared secret can be an RSA shared secret. The conventional private key can also be an RSA private key. The hybrid key derivation module 110 can derive the PQC shared secret using the new PQC public key and the PQC private key. The hybrid key derivation module 110 can generate the hybrid shared secret using a key derivation function based on the conventional shared secret and the PQC shared 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 with the hybrid shared secret. The hybrid key derivation module 110 may secure and recover the data 104. In another embodiment, the hybrid key derivation module 110 may decrypt the stored data 104 (e.g., PKCS7) using a hybrid (e.g., both conventional ECDH and PQC) shared secret generation algorithm. For example, the hybrid key derivation module 110 may read a new conventional public key, a new PQC public key, and an encoding of the encrypted data. The hybrid key derivation module 110 may derive a 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). The hybrid key derivation module 110 may derive a PQC shared secret using the new PQC public key and PQC private key.The hybrid key derivation module 110 can generate a hybrid shared secret using a key derivation function based on the conventional shared secret and the PQC shared secret. The hybrid key derivation module 110 can decrypt the encrypted data 104 with the hybrid shared secret. The hybrid key derivation module 110 can secure and restore the data 104.
[0017] In one or more embodiments, the hybrid key derivation module 110 is configured to sign the data 104 using a conventional signature followed by a PQC signature. The hybrid key derivation module 110 can verify the validity of the conventional public key and the PQC public key certificates. The hybrid key derivation module 110 can verify the conventional signature using the conventional public key on the data. The hybrid key derivation module 110 can verify the PQC signature using the PQC public key on the data concatenated with the conventional signature. The hybrid key derivation module 110 can distribute the PQC (e.g., Kyber) public key using a certificate that can be generated and signed directly using the PQC (e.g., Dilithium) signature algorithm. For PKCS7 signed and enveloped data, the hybrid key derivation module 110 can sign the data using a conventional algorithm, concatenate the conventional signature to the data, and sign the result of the conventional signature and data using the PQC algorithm. The hybrid key derivation module 110 can bind the conventional certificate and the PQC certificate to each other.
[0018] Further, in the illustrated embodiment, hybrid key derivation module 110 includes a distribution module 112, an encryption module 114, a decryption module 116, and a signing module 118. In the illustrated embodiment, distribution module 112, encryption module 114, decryption module 116, and signing module 118 are located on computing device 102. However, in other embodiments, distribution module 112, encryption module 114, decryption module 116, and signing module 118 are located externally and may be accessed through a communications network, such as network 108.
[0019] In one or more embodiments, the distribution module 112 is configured to publish the conventional public key in a conventional certificate and the PQC public key in a PQC certificate. The distribution module 112 can generate a conventional key pair. The conventional key pair can include a conventional private key and a conventional public key. In one example, the conventional key pair can be an RSA key pair. The RSA key pair can be used to encrypt and decrypt data 104. The RSA public key can be known to anyone. The RSA private key must be kept secret. Messages encrypted using the public key can be decrypted with the private key. In another example, the conventional key pair can be an ECDH key pair. ECDH can be a key agreement protocol that allows two parties, each with an elliptic curve public-private key pair, to establish a shared secret over an insecure channel. This shared secret can be used directly as a key or to derive another key. This key or a derived key can be used to encrypt subsequent communications using symmetric key cryptography. In one example, the distribution module 112 can generate a DHE key pair. DHE can be a modification of the Diffie-Hellman key exchange that uses static keys. When a cryptographic key is generated for each execution of the key exchange process, the cryptographic key may be called ephemeral. In some examples, a sender generates only one ephemeral key pair per message, and the ephemeral key can be used multiple times within a single session (e.g., in a broadcast application) where the private key is separately bound to each recipient's public key. The distribution module 112 can generate a PQC key pair. The PQC key pair can include a PQC private key and a PQC public key. PQC can refer to a cryptographic algorithm that can be secure against attacks by quantum computers. In one example, PQC can be a secure key encapsulation mechanism (e.g., Kyber), whose security is based on the difficulty of solving a learning problem with errors on a modular lattice. A key encapsulation mechanism can be a class of cryptographic techniques designed to protect symmetric cryptographic keying material for transmission using asymmetric (public-key) algorithms.Kyber keys can be used for encryption and decryption. Kyber public keys can be published in certificates signed with Dilithium keys. For example, Dilithium can be a digital signature scheme that is secure under chosen-message attacks based on the difficulty of the lattice problem on a modular lattice. The distribution module 112 can publish conventional public keys in conventional certificates for use in encryption. The distribution module 112 can publish PQC public keys in PQC certificates for use in encryption. The distribution module 112 can store and secure conventional private keys and PQC private keys.
[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 can generate the hybrid shared secret using a key derivation function by using a conventional shared secret based on a conventional public key and a PQC shared secret based on a PQC public key. In one example, the encryption module 114 can randomly generate the conventional shared secret. The encryption module 114 can encrypt the conventional shared secret with the conventional public key. In an embodiment, the conventional shared secret can be an RSA shared secret. The conventional public key can be an RSA public key. The encryption module 114 can derive the PQC shared secret using the PQC public key. The encryption module 114 can derive a new PQC public key based on the peer's PQC public key using a PQC key encapsulation mechanism. In one example, the PQC key encapsulation mechanism can be Kyber, and its security can be based on the difficulty of solving a learning problem with errors on a module lattice. Kyber can have different parameter sets aimed at 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, for example, a specification for encryption of electronic data established by the National Institute of Standards and Technology. The encryption module 114 can generate a hybrid shared secret based on a conventional shared secret and a PQC shared secret by using a key derivation function. In one example, the key derivation function can be a hash-based key derivation function. Hash-based key derivation can be a simple key derivation function based on a hash-based message authentication code. Hash-based key derivation can take an input key and derive a fixed-length pseudorandom key from it. Hash-based key derivation can expand the input key into several additional pseudorandom keys.In one example, hash-based key derivation can convert the shared secret exchanged via Diffie-Hellman into keying material suitable for use in encryption, integrity checking, or authentication. The encryption module 114 can encrypt the data 104 with the hybrid shared secret. The encryption module 114 can store the encrypted traditional shared secret, the new PQC public key, and the encrypted data as an encoding. In one example, the encoding can be a PKCS7 encoding. The encryption module 114 can send the PKCS7 encoding to a recipient.
[0021] In another example, the encryption module 114 can use a hybrid key function to generate encryption keys for PKCS7 by combining both conventional ECDH and PQC algorithms. The encryption module 114 can 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 can include a new conventional private key and a new conventional public key. The encryption module 114 can derive a conventional shared secret using the peer's conventional public key and the new conventional private key. The encryption module 114 can revoke the new conventional private key. The encryption module 114 can derive a PQC shared secret using the PQC public key. The encryption module 114 can derive the new PQC public key based on the peer's PQC public key using a PQC key encapsulation mechanism. The encryption module 114 can generate a hybrid shared secret based on the conventional shared secret and the PQC shared secret by using a key derivation function. The encryption module 114 can encrypt the data 104 with the hybrid shared secret. The encryption module 114 may store the new legacy public key, the new PQC public key, and the encrypted data as an encoding, which may be a PKCS7 encoding.
[0022] In one or more embodiments, the decryption module 116 is configured to decrypt the data 104 with a hybrid shared secret based on the conventional private key and the PQC private key. In an embodiment, the decryption module 116 can decrypt the stored data 104 (e.g., PKCS7) using a hybrid (e.g., both conventional and PQC) shared secret generation algorithm. For example, the decryption module 116 can read the encoding of the encrypted conventional shared secret, the new PQC public key, and the encrypted data. The decryption module 116 can decrypt the conventional shared secret with the conventional private key. In one example, the conventional shared secret can be an RSA shared secret. The conventional private key can also be an RSA private key. The decryption module 116 can derive the PQC shared secret using the peer's new PQC public key and PQC private key. The decryption module 116 can generate the hybrid shared secret based on the conventional shared secret and the PQC shared secret using a key derivation function. In one example, the key derivation function can be a hash-based key derivation function. The decryption module 116 can decrypt the encrypted data 104 with the hybrid shared secret. The decryption module 116 can secure and recover the data 104. In another embodiment, the decryption module 116 can decrypt the stored data 104 (e.g., PKCS7) using a hybrid (e.g., both conventional ECDH and PQC) shared secret generation algorithm. For example, the decryption module 116 can read the encoding of the new conventional public key, the new PQC public key, and the encrypted data. The decryption module 116 can derive a conventional shared secret (e.g., a conventional ECDH shared secret) using the peer's new conventional public key (e.g., another ECDH public key) and conventional private key (e.g., an ECDH private key). The decryption module 116 can derive a PQC shared secret using the peer's new PQC public key and PQC private key. The decryption module 116 can generate a hybrid shared secret using a key derivation function based on the conventional shared secret and the PQC shared secret.The decryption module 116 can decrypt the encrypted data 104 with the hybrid shared secret. The decryption module 116 can secure and restore the data 104.
[0023] In one or more embodiments, the signing module 118 is configured to sign the data 104 using a conventional signature followed by a PQC signature. The signing module 118 can verify the validity of the conventional public key and the certificate for the PQC public key. The signing module 118 can verify the conventional signature using the conventional public key on the data. The signing module 118 can verify the PQC signature using the PQC public key on the data concatenated with the conventional signature. The signing module 118 can distribute the PQC (e.g., Kyber) public key using a certificate that can be generated and signed directly using the PQC (e.g., Dilithium) signature algorithm. For PKCS7 signed and enveloped data, the signing module 118 can sign the data using the conventional algorithm, concatenate the conventional signature to the data, and sign the result of the conventional signature and data using the PQC algorithm. The signing module 118 can bind the conventional certificate and the PQC certificate together.
[0024] FIG. 2 is a flowchart 200 illustrating the operational steps of the hybrid key derivation module 110, according to an embodiment of the present disclosure.
[0025] The hybrid key derivation module 110 operates to publish the conventional public key in a conventional certificate and the PQC public key in a PQC certificate. The hybrid key derivation module 110 also operates to encrypt the data 104 with the hybrid shared secret. The hybrid key derivation module 110 can generate a hybrid shared secret using 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. The hybrid key derivation module 110 operates to decrypt the data 104 with a hybrid shared secret based on the conventional private key and the PQC private key. The hybrid key derivation module 110 operates to sign the data 104 using a conventional signature followed by a PQC signature.
[0026] In step 202, the hybrid key derivation module 110 publishes a conventional public key in a conventional certificate and a PQC public key in a PQC certificate. The hybrid key derivation module 110 can generate a conventional key pair. The conventional key pair can include a conventional private key and a conventional public key. In one example, the conventional key pair can be an RSA key pair. The RSA key pair can be used to encrypt and decrypt data 104. The RSA public key can be known to everyone. The RSA private key must be kept secret. Messages encrypted using the public key can be decrypted with the private key. In another example, the conventional key pair can be an ECDH key pair. ECDH can be a key agreement protocol that allows two parties, each with an elliptic curve public-private key pair, to establish a shared secret over an insecure channel. This shared secret can be used directly as a key or to derive another key. This key or the derived key can be used to encrypt subsequent communications using symmetric key cryptography. In one example, the hybrid key derivation module 110 can generate a DHE key pair. DHE can be a modified version of the Diffie-Hellman key exchange that uses static keys. When a cryptographic key is generated for each execution of the key exchange process, the cryptographic key may be called ephemeral. In some examples, a sender generates only one ephemeral key pair per message, and the ephemeral key can be used multiple times within a single session (e.g., in a broadcast application) where the private key is separately combined with each recipient's public key. The hybrid key derivation module 110 can generate a PQC key pair. The PQC key pair can include a PQC private key and a PQC public key. PQC can refer to a cryptographic algorithm that can be secure against attacks by quantum computers. In one example, PQC can be a secure key encapsulation mechanism (e.g., Kyber), whose security is based on the difficulty of solving a learning problem with errors on a modular lattice.Key encapsulation mechanisms may be a class of cryptographic techniques designed to secure symmetric cryptographic keying material for transmission using asymmetric (public key) algorithms. Kyber keys can be used for encryption and decryption. Kyber public keys can be published in certificates signed with Dilithium keys. For example, Dilithium may be a digital signature scheme that is secure under chosen-message attacks, based on the hardness of the lattice problem on a modular lattice. Hybrid key derivation module 110 may publish conventional public keys in conventional certificates for use in encryption. Hybrid key derivation module 110 may publish PQC public keys in PQC certificates for use in encryption. Hybrid key derivation module 110 may store and secure conventional and PQC private keys.
[0027] In step 204, the hybrid key derivation module 110 encrypts the data 104 with the hybrid shared secret. The hybrid key derivation module 110 can generate the hybrid shared secret using a key derivation function with a conventional shared secret based on the conventional public key and a PQC shared secret based on the PQC public key. In one example, the hybrid key derivation module 110 can randomly generate the conventional shared secret. The hybrid key derivation module 110 can encrypt the conventional shared secret with the conventional public key. In an embodiment, the conventional shared secret can be an RSA shared secret. The conventional public key can be an RSA public key. The hybrid key derivation module 110 can derive the PQC shared secret using the 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 PQC public key. In one example, the PQC key encapsulation mechanism can be Kyber, and its security can be based on the difficulty of solving a learning problem with errors on a module lattice. Kyber can have different parameter sets aimed at 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, for example, a specification for encryption of electronic data established by the National Institute of Standards and Technology. The hybrid key derivation module 110 can generate a hybrid shared secret using a key derivation function based on a conventional shared secret and a PQC shared secret. In one example, the key derivation function can be a hash-based key derivation function. Hash-based key derivation can be a simple key derivation function based on a hash-based message authentication code. Hash-based key derivation can take an input key and derive a fixed-length pseudorandom key from the input key. Hash-based key derivation can expand the input key into several additional pseudorandom keys.In one example, hash-based key derivation can convert a shared secret exchanged via Diffie-Hellman into keying material suitable for use in encryption, integrity checking, or authentication. The hybrid key derivation module 110 can encrypt the data 104 with the hybrid shared secret. The hybrid key derivation module 110 can store the encrypted traditional shared secret, the new PQC public key, and the encrypted data as an encoding. In one example, the encoding can be a PKCS7 encoding. The hybrid key derivation module 110 can transmit the PKCS7 encoding to a recipient.
[0028] In another example, the hybrid key derivation module 110 can use a hybrid key function to generate encryption keys for PKCS7 by combining both conventional ECDH and PQC algorithms. The hybrid key derivation module 110 can 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 can include a new conventional private key and a new conventional public key. The hybrid key derivation module 110 can derive a conventional shared secret using the conventional public key and the new conventional private key. The hybrid key derivation module 110 can revoke the new conventional private key. The hybrid key derivation module 110 can derive a PQC shared secret using the PQC public key. The hybrid key derivation module 110 can derive the new PQC public key based on the peer's PQC public key using a PQC key encapsulation mechanism. The hybrid key derivation module 110 can generate a hybrid shared secret based on the conventional shared secret and the PQC shared secret by using a key derivation function. The hybrid key derivation module 110 can encrypt the data 104 with the hybrid shared secret. The hybrid key derivation module 110 can store the new conventional public key, the new PQC public key, and the encrypted data as an encoding. The encoding can be a PKCS7 encoding.
[0029] In step 206, the hybrid key derivation module 110 decrypts the data 104 with a hybrid shared secret based on the conventional private key and the PQC private key. In an embodiment, the hybrid key derivation module 110 can decrypt the stored data 104 (e.g., PKCS7) using a hybrid (e.g., both conventional RSA and PQC) shared secret generation algorithm. For example, the hybrid key derivation module 110 can read the encrypted conventional shared secret, the new PQC public key, and the encoding of the encrypted data. The hybrid key derivation module 110 can decrypt the conventional shared secret with the conventional private key. In one example, the conventional shared secret can be an RSA shared secret. The conventional private key can be an RSA private key. The hybrid key derivation module 110 can derive a PQC shared secret using the new PQC public key and PQC private key. The hybrid key derivation module 110 can generate the hybrid shared secret using a key derivation function based on the conventional shared secret and the PQC shared 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 with the hybrid shared secret. The hybrid key derivation module 110 may secure and recover the data 104. In another embodiment, the hybrid key derivation module 110 may decrypt the stored data 104 (e.g., PKCS7) using a hybrid (e.g., both conventional ECDH and PQC) shared secret generation algorithm. For example, the hybrid key derivation module 110 may read a new conventional public key, a new PQC public key, and an encoding of the encrypted data. The hybrid key derivation module 110 may derive a 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). The hybrid key derivation module 110 may derive a PQC shared secret using the new PQC public key and PQC private key.The hybrid key derivation module 110 can generate a hybrid shared secret using a key derivation function based on the conventional shared secret and the PQC shared secret. The hybrid key derivation module 110 can decrypt the encrypted data 104 with the hybrid shared secret. The hybrid key derivation module 110 can secure and restore the data 104.
[0030] In state 208, the hybrid key derivation module 110 signs the data 104 using a conventional signature followed by a PQC signature. The hybrid key derivation module 110 can verify the validity of the conventional public key and the PQC public key certificates. The hybrid key derivation module 110 can verify a conventional signature by a conventional public key on the data. The hybrid key derivation module 110 can verify a PQC signature using a PQC public key on the data concatenated with the conventional signature. The hybrid key derivation module 110 can distribute the PQC (e.g., Kyber) public key using a certificate that can be generated and signed directly using the PQC (e.g., Dilithium) signature algorithm. For PKCS7 signed and enveloped data, the hybrid key derivation module 110 can sign the data using a conventional algorithm, concatenate the conventional signature to the data, and sign the result of the conventional signature and data using the PQC algorithm. The hybrid key derivation module 110 can bind the conventional certificate and the PQC certificate together.
[0031] FIG. 3 is a flowchart 300 illustrating the operational steps of the distribution module 112 of the hybrid key derivation module 110, according to an embodiment of the present disclosure.
[0032] In step 302, the distribution module 112 generates a conventional key pair. The conventional key pair may include a conventional private key and a conventional public key. In one example, the conventional key pair may be an RSA key pair. In another example, the conventional key pair may be an ECDH key pair. The distribution module 112 may generate a DHE key pair. In step 304, the distribution module 112 generates a PQC key pair. The PQC key pair may include a PQC private key and a PQC public key. In step 306, the distribution module 112 publishes the conventional public key in a conventional certificate for use in encryption. In step 308, the distribution module 112 publishes the PQC public key in a PQC certificate for use in encryption. In step 310, the distribution module 112 secures the conventional private key and the PQC private key. The distribution module 112 may store the conventional private key and the PQC private key.
[0033] FIG. 4 is a flowchart 400 illustrating the operational steps of the encryption module 114 of the hybrid key derivation module 110 according to an embodiment of the present disclosure.
[0034] In step 402, the encryption module 114 randomly generates a conventional shared secret. In step 404, the encryption module 114 encrypts the conventional shared secret with a conventional public key. In an embodiment, the conventional shared secret may be an RSA shared secret. The conventional public key may be an RSA public key. In step 406, the encryption module 114 derives a PQC shared secret using the PQC public key. In step 408, the encryption module 114 derives a new PQC public key based on the PQC public key using a PQC key encapsulation mechanism. In one example, the PQC key encapsulation mechanism may be Kyber, and its security may be based on the difficulty of solving a learning problem with errors on a modular lattice. In step 410, the encryption module 114 generates a hybrid shared secret based on the conventional shared secret and the PQC shared secret by using a key derivation function. In one example, the key derivation function may be a hash-based key derivation function. The hash-based key derivation can be a simple key derivation function based on a hash-based message authentication code. In step 412, the encryption module 114 encrypts the data 104 with the hybrid shared secret. In 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 can be a PKCS7 encoding. The encryption module 114 can send the PKCS7 encoding to the recipient.
[0035] FIG. 5 is another flowchart 500 illustrating the operational steps of the encryption module 114 of the hybrid key derivation module 110, according to an embodiment of the present disclosure.
[0036] In step 502, the encryption module 114 generates 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. In step 504, the encryption module 114 derives a conventional shared secret using the peer's conventional public key and the new conventional private key. In step 506, the encryption module 114 discards the new conventional private key. In step 508, the encryption module 114 derives a PQC shared secret using the PQC public key. In 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 step 512, the encryption module 114 generates a hybrid shared secret based on the conventional shared secret and the PQC shared secret by using a key derivation function. In step 514, the encryption module 114 encrypts the data 104 with the hybrid shared secret. In step 516, the encryption module 114 stores the new legacy 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 the recipient.
[0037] FIG. 6 is a flowchart 600 illustrating the operational steps of the decryption module 116 of the hybrid key derivation module 110, according to an embodiment of the present disclosure.
[0038] In step 602, the decryption module 116 reads the encrypted conventional shared secret, the new PQC public key, and the encoding of the encrypted data. In step 604, the decryption module 116 decrypts the conventional shared secret encrypted with the conventional private key. In one example, the conventional shared secret can be an RSA shared secret. The conventional private key can be an RSA private key. In step 606, the decryption module 116 derives a PQC shared secret using the new PQC public key and the PQC private key. In step 608, the decryption module 116 generates a hybrid shared secret based on the conventional shared secret and the PQC shared secret using a key derivation function. In one example, the key derivation function can be a hash-based key derivation function. In step 610, the decryption module 116 decrypts the encrypted data 104 with the hybrid shared secret. The decryption module 116 can secure and restore the data 104.
[0039] FIG. 7 is another flowchart 700 illustrating the operational steps of the decryption module 116 of the hybrid key derivation module 110, according to an embodiment of the present disclosure.
[0040] In step 702, the decryption module 116 reads the new conventional public key, the new PQC public key, and the encoding of the encrypted data. In step 704, the decryption module 116 derives a conventional shared secret (e.g., a conventional ECDH shared secret) using the new conventional public key (e.g., another ECDH public key) and the conventional private key (e.g., the ECDH private key). In step 706, the decryption module 116 derives a PQC shared secret using the new PQC public key and the PQC private key. In step 708, the decryption module 116 generates a hybrid shared secret based on the conventional shared secret and the PQC shared secret using a key derivation function. In step 710, the decryption module 116 decrypts the encrypted data 104 with the hybrid shared secret. The decryption module 116 can secure and restore the data 104.
[0041] FIG. 8 is a flowchart 800 illustrating the operational steps of the signing module 118 of the hybrid key derivation module 110 according to an embodiment of the present disclosure.
[0042] In step 802, the signing module 118 verifies the validity of the conventional public key and the PQC public key. In step 804, the signing module 118 verifies the conventional signature using the conventional public key for the data 104. In step 806, the signing module 118 verifies the PQC signature using the PQC public key for the data 104 concatenated with the conventional signature. The signing module 118 can distribute the PQC (e.g., Kyber) public key with a certificate that can be generated and signed directly using the PQC (e.g., Dilithium) signature algorithm. For PKCS7 signed and enveloped data, the signing module 118 can sign the data using the conventional algorithm, concatenate the conventional signature to the data, and sign the result of the conventional signature and data using the PQC algorithm. The signing module 118 can bind the conventional certificate and the PQC certificate to each other.
[0043] 9 is a block diagram 900 of components of a computing device 102 in accordance with an embodiment of the present disclosure. It should be understood that FIG. 9 provides only an illustration of one implementation and is not intended to imply any limitations with respect to the environment in which different embodiments may be implemented. Many modifications to the depicted environment may be made.
[0044] Computing device 102 may include a communications fabric 902 that provides communications between cache 916, memory 906, persistent storage 908, communications unit 910, and input / output (I / O) interface 912. Communications fabric 902 may be implemented with any architecture designed to pass data or control information, or both, between processors (e.g., microprocessors, communications and network processors, etc.), system memory, peripherals, and any other hardware components in the system. For example, communications fabric 902 may be implemented using one or more buses or crossbar switches.
[0045] Memory 906 and persistent storage 908 are computer-readable storage media. In this embodiment, memory 906 includes random access memory (RAM). In general, memory 906 may include any suitable volatile or non-volatile computer-readable storage medium. Cache 916 is high-speed memory that improves performance of computer processor 904 by retaining recently accessed and nearby data from 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 an embodiment, persistent storage 908 includes a magnetic hard disk drive. Alternatively, or in addition to a magnetic hard disk drive, persistent storage 908 may include a solid-state hard drive, a semiconductor storage device, a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a flash memory, or any other computer-readable storage medium capable of storing program instructions or digital information.
[0047] The media used by persistent storage 908 may also be removable. For example, a removable hard disk may be used for persistent storage 908. Other examples include optical and magnetic disks, thumb drives, and smart cards that are inserted into a drive for transfer to another computer-readable storage medium that is also part of persistent storage 908.
[0048] The communications unit 910, in these examples, provides for communication with other data processing systems or devices. In these examples, the communications unit 910 includes one or more network interface cards. The communications unit 910 can provide communication using either or both physical and wireless communications links. The hybrid key derivation module 110 can be downloaded to persistent storage 908 through the communications unit 910.
[0049] The I / O interface 912 allows for the input and output of data with other devices that may be connected to the computing device 102. For example, the I / O interface 912 may provide connection to an external device 918, such as a keyboard, keypad, touchscreen, or some other suitable input device, or a combination thereof. The external device 918 may also include portable computer-readable storage media, such as thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to implement embodiments of the present invention, e.g., the hybrid key derivation module 110, may be stored on such portable computer-readable storage media and loaded into the persistent storage 908 via the I / O interface 912. The I / O interface 912 also connects to a display 920.
[0050] 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 applications for which they are implemented in particular embodiments of the invention. However, it should be understood that any particular program nomenclature herein is used merely for convenience, and thus the invention should not be limited to use with any particular application identified and / or implied by such nomenclature.
[0052] The present invention may be embodied as a system, method, or computer program product, or a combination thereof, at any possible level of technical detail. The computer program product may include a computer-readable storage medium or media having computer-readable program instructions for causing a processor to perform aspects of the present invention.
[0053] A computer-readable storage medium may be any tangible device capable of holding and storing instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but 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 above. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge structures in grooves having instructions recorded thereon, and any suitable combination of the above. As used herein, computer-readable storage media is not to be construed as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses through fiber optic cable), or electrical signals sent through wires.
[0054] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or storage device over a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network can include copper cables, optical fibers, wireless networks, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing / processing device.
[0055] The computer-readable program instructions for carrying out the operations of the present invention may be source or object code written in any combination of one or more programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or object-oriented programming languages such as Smalltalk, C++, and conventional procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions may run entirely on the user's computer, partially on the user's computer as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a 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 may be connected to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) can execute computer readable program instructions to individualize the electronic circuitry by utilizing state information in the computer readable program instructions to implement aspects of the present invention.
[0056] Aspects of the present invention will be described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will 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, can be implemented by computer-readable program instructions.
[0057] These computer-readable program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine, whereby the instructions, executed by the processor of the computer or other programmable data processing apparatus, create means for performing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. These computer program instructions, which can direct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, can also be stored in a computer-readable medium, whereby the instructions stored in the computer-readable medium include an article of manufacture containing instructions that implement aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0058] The computer-readable program instructions may be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, whereby the instructions executing on the computer or other programmable apparatus provide a process for performing the functions / operations specified in one or more blocks of the flowchart or block diagram, or both.
[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 may represent a module, segment, or portion of code, including one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions shown in the blocks may occur in a different order than that shown in the figures. For example, two blocks shown in succession may in fact be executed substantially simultaneously, or the blocks may sometimes be executed in the reverse order, depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a dedicated hardware-based system that performs the specified functions or operations, or a combination of dedicated hardware and computer instructions.
[0060] The descriptions of various embodiments of the present disclosure have been presented for illustrative purposes, but they are not intended to be exhaustive or to be 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 described embodiments. The terms used herein have been selected to best explain the principles, practicality, or technical improvements over commercially available technology of the embodiments, or to enable those skilled in the art to understand the embodiments disclosed herein.
[0061] Although this disclosure includes detailed descriptions of cloud computing, it should be understood that implementation of the teachings described herein is not limited to cloud computing environments. Rather, embodiments of the invention may be practiced in conjunction with any other type of computing environment now known or later developed.
[0062] Cloud computing is a service delivery model that enables convenient, 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 administrative effort or interaction with the service provider. This cloud model can include at least five characteristics, at least three service models, and at least four deployment models.
[0063] The features are as follows:
[0064] On-Demand Self-Service: Cloud consumers can automatically and unilaterally provision computing capacity, such as server time and network storage, as needed, without the need for human interaction with the service provider.
[0065] Broad network access: Functionality is available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., cell phones, laptops, and PDAs).
[0066] Resource Pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically allocated and reallocated on demand. Consumers are location-independent in that they generally have no control or knowledge of the exact location of the resources provided, although they may be able to specify a location at a higher level of abstraction (e.g., country, state, or data center).
[0067] Rapid Elasticity: Capabilities can be rapidly and elastically provisioned and quickly scaled out, and rapidly released and quickly scaled in, sometimes automatically. To the consumer, the capabilities available for provisioning often appear unlimited, and can be purchased in any quantity at any time.
[0068] Metered Services: Cloud systems automatically control and optimize resource usage by using metering capabilities at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of the services used.
[0069] The service model is as follows:
[0070] Software as a Service (SaaS): The functionality offered to the consumer is the use of the provider's applications running on a cloud infrastructure. These applications are accessible from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or individual application capabilities, with the expected exception of limited user-specific application configuration settings.
[0071] Platform as a Service (PaaS): The functionality offered to consumers is the deployment onto a cloud infrastructure of applications they create or acquire, written using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but does control the deployed applications and, in some cases, the configuration of the environment that hosts the applications.
[0072] Infrastructure as a Service (IaaS): The capability offered to consumers is to provision processing, storage, network, and other basic computing resources on which the consumer can deploy and run any software, which may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but does have control over the operating systems, storage, deployed applications, and in some cases limited control over the selection of network components (e.g., host firewalls).
[0073] The deployment model is as follows:
[0074] Private Cloud: Cloud infrastructure is operated exclusively for an organization. It can be managed by that organization or a third party and can reside on-premise or off-premise.
[0075] Community Cloud: Cloud infrastructure is shared by several organizations to support a specific community with common concerns (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by those organizations or a third party and can reside on-premises or off-premises.
[0076] Public Cloud: Cloud infrastructure is available to the general public or large industry groups and is owned by organizations that sell cloud services.
[0077] Hybrid Cloud: A cloud infrastructure is a blend of two or more clouds (private, community, or public) that remain unique entities but are tied together by standardized or proprietary technologies (e.g., cloud bursting for load balancing between clouds) that enable data and application portability.
[0078] Cloud computing environments are service-oriented and focus on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that includes a network of interconnected nodes.
[0079] Referring now to FIG. 10 , an exemplary 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 cloud consumers, such as, for example, a personal digital assistant (PDA) or cellular phone 54A, a desktop computer 54B, a laptop computer 54C, or an automobile computer system 54N, or a combination thereof, can communicate. The nodes 10 can communicate with each other. The nodes 10 can be physically or virtually grouped in one or more networks (not shown), such as the private cloud, community cloud, public cloud, or hybrid cloud described above, or a combination thereof. This enables the cloud computing environment 50 to provide infrastructure as a service, platform as a service, or software as a service, or a combination thereof, without requiring the cloud consumer to maintain resources on a local computing device. It will be understood that the types of computing devices 54A-N shown in FIG. 5 are intended to be exemplary only, and that the computing node 10 and cloud computing environment 50 are capable of communicating with any type of computerized device (e.g., using a web browser) over any type of network or network-addressable connection or both.
[0080] Referring now to Figure 11, a set of functional abstraction layers provided by cloud computing environment 50 (Figure 10) is shown. It should be understood in advance that the components, layers, and functions shown in Figure 11 are intended to be merely exemplary, and embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding functions are provided:
[0081] Hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframe 61, RISC (Reduced Instruction Set Computer) architecture-based server 62, server 63, blade server 64, storage device 65, and network and networking components 66. In some embodiments, software components include network application server software 67 and database software 68.
[0082] The virtualization layer 70 provides an abstraction layer through which the following examples of virtual entities can be provided: virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75.
[0083] In one example, the management layer 80 can provide the following functions: Resource provisioning 81 provides dynamic procurement of computing and other resources utilized to execute tasks within the cloud computing environment. Metering and pricing 82 provides cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the consumption of these resources. In one example, these resources may include application software licenses. Security provides identity verification for cloud consumers and tasks, as well as protection for data and other resources. User portal 83 provides access to the cloud computing environment for consumers and system administrators. Service level management 84 provides allocation and management of cloud computing resources to ensure required service levels are met. Service level agreement (SLA) planning and fulfillment 85 provides pre-allocation and procurement of cloud computing resources for anticipated future needs according to SLAs.
[0084] Workload tier 90 provides examples of functionality that can utilize a cloud computing environment. Examples of workloads and functionality that can be provided from this tier include mapping and navigation 91, software development and lifecycle management 92, virtual classroom instruction delivery 93, data analytics processing 94, transaction processing 95, and modules 96, including, for example, hybrid key derivation module 110, as described above with respect to hybrid key derivation environment 100.
[0085] Although specific embodiments of the present invention have been described, it will be understood by those skilled in the art that there are other embodiments that are equivalent to the described embodiments. It is therefore understood that the present invention should not be limited to the specific illustrated embodiments, but rather should be limited only by the scope of the appended claims.
Claims
1. A method implemented by a computer information processing system, comprising: publishing, by one or more processors, a conventional public key in a conventional certificate and a post-quantum cryptography (PQC) public key in a PQC certificate; encrypting, by one or more processors, data with a hybrid shared secret generated using 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; decrypting, by one or more processors, the data with the hybrid shared secret based on a conventional private key and a PQC private key; signing, by one or more processors, the data with a conventional signature followed by a PQC signature; Including, Encrypting the data with the hybrid shared secret comprises: Randomly generating the conventional shared secret; encrypting the conventional shared secret with the conventional public key; deriving the PQC shared secret using the PQC public key; deriving a new PQC public key based on the PQC public key using a PQC key encapsulation mechanism; generating the hybrid shared secret based on the traditional shared secret and the PQC shared secret by using the key derivation function; encrypting the data with the hybrid shared secret; storing the encrypted conventional shared secret, the new PQC public key, and the encrypted data as an encoding; Including, Decrypting the data with the hybrid shared secret comprises: reading the encoding of the encrypted conventional shared secret, the new PQC public key, and the encrypted data; decrypting the conventional shared secret with the conventional private key; deriving a corresponding PQC shared secret using the new PQC public key and the PQC private key; generating the hybrid shared secret based on the traditional shared secret and the PQC shared secret using the key derivation function; decrypting the encrypted data with the hybrid shared secret; Including, method.
2. A method executed by computer information processing, publishing, by one or more processors, a conventional public key in a conventional certificate and a post-quantum cryptography (PQC) public key in a PQC certificate; encrypting, by one or more processors, data with a hybrid shared secret generated using 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; decrypting, by one or more processors, the data with the hybrid shared secret based on a conventional private key and a PQC private key; signing, by one or more processors, the data with a conventional signature followed by a PQC signature; Including, Encrypting the data with the hybrid shared secret comprises: generating a new conventional key pair including a new conventional private key and a new conventional public key; deriving the conventional shared secret using the conventional public key and the new conventional private key; revoking said new legacy private key; deriving the PQC shared secret using the PQC public key; deriving a new PQC public key based on the PQC public key using a PQC encapsulation mechanism; generating the hybrid shared secret based on the traditional shared secret and the PQC shared secret by using the key derivation function; encrypting the data with the hybrid shared secret; storing the new legacy public key, the new PQC public key, and the encrypted data as an encoding; A method comprising:
3. Decrypting the data with the hybrid shared secret comprises: reading the new legacy public key, the new PQC public key, and the encoding of the encrypted data; deriving a corresponding conventional shared secret using the new conventional public key and the conventional private key; deriving a corresponding PQC shared secret using the new PQC public key and the PQC private key; generating the hybrid shared secret based on the traditional shared secret and the PQC shared secret using the key derivation function; decrypting the encrypted data with the hybrid shared secret; The method of claim 2 , comprising:
4. Publishing the conventional public key and the PQC public key comprises: generating a conventional key pair including a conventional private key and said conventional public key; generating a PQC key pair including a PQC private key and said PQC public key; publishing the conventional public key in the conventional certificate; publishing said PQC public key in said PQC certificate; Securing the conventional private key and the PQC private key; 3. The method of claim 1 or claim 2, comprising:
5. Signing the data using the PQC signature followed by the conventional signature comprises: verifying the validity of the conventional public key and the PQC public key; verifying the conventional signature on the data using the conventional public key; verifying the PQC signature using the PQC public key against the data concatenated with the conventional signature; 3. The method of claim 1 or claim 2, comprising:
6. A computer program comprising program instructions for causing a computer to carry out the method of any of claims 1 to 5.
7. A computer readable storage medium having stored thereon the computer program of claim 6.
8. 10. A computer system comprising one or more 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 processors, the program instructions causing at least one of the one or more processors to perform the steps of the method of any of claims 1 to 5.
Citation Information
Patent Citations
Shared secret key generation device, encryption device, decryption device, and program
JP2014017556A
Using Digital Certificates with Multiple Cryptosystems
JP2019509652A
Terminal apparatus and computer program for terminal apparatus
JP2020113851A
Cryptographic device with updatable shared matrix
JP2020537191A
Using a digital certificate with multiple cryptosystems
US9794249B1