Internet-Draft | PQ/T Hybrid KEM: HPKE with JOSE/COSE | December 2024 |
Reddy & Tschofenig | Expires 13 June 2025 | [Page] |
This document outlines the construction of a PQ/T Hybrid Key Encapsulation Mechanism (KEM) in Hybrid Public-Key Encryption (HPKE) for integration with JOSE and COSE. It specifies the utilization of both traditional and Post-Quantum Cryptography (PQC) algorithms, referred to as PQ/T Hybrid KEM, within the context of JOSE and COSE.¶
This note is to be removed before publishing as an RFC.¶
Status information for this document may be found at https://datatracker.ietf.org/doc/draft-reddy-cose-jose-pqc-hybrid/.¶
Discussion of this document takes place on the cose Working Group mailing list (mailto:cose@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/cose/. Subscribe at https://www.ietf.org/mailman/listinfo/cose/.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 13 June 2025.¶
Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
The migration to Post-Quantum Cryptography (PQC) is unique in the history of modern digital cryptography in that neither the traditional algorithms nor the post-quantum algorithms are fully trusted to protect data for the required data lifetimes. The traditional algorithms, such as RSA and elliptic curve, will fall to quantum cryptalanysis, while the post-quantum algorithms face uncertainty about the underlying mathematics, compliance issues, unknown vulnerabilities, hardware and software implementations that have not had sufficient maturing time to rule out classical cryptanalytic attacks and implementation bugs.¶
During the transition from traditional to post-quantum algorithms, there is a desire or a requirement for protocols that use both algorithm types. Hybrid key exchange refers to using multiple key exchange algorithms simultaneously and combining the result with the goal of providing security even if all but one of the component algorithms is broken. It is motivated by transition to post-quantum cryptography.¶
HPKE offers a variant of public-key encryption of arbitrary-sized plaintexts for a recipient public key. The specifications for the use of HPKE with JOSE and COSE are described in [I-D.ietf-jose-hpke-encrypt] and [I-D.ietf-cose-hpke], respectively. HPKE can be extended to support PQ/T Hybrid KEM as defined in [I-D.connolly-cfrg-xwing-kem]. This specification defines PQ/T Hybrid KEM in HPKE for use with JOSE and COSE.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
This document makes use of the terms defined in [I-D.ietf-pquip-pqt-hybrid-terminology]. For the purposes of this document, it is helpful to be able to divide cryptographic algorithms into two classes:¶
"Traditional Algorithm": An asymmetric cryptographic algorithm based on integer factorisation, finite field discrete logarithms, elliptic curve discrete logarithms, or related mathematical problems. In the context of JOSE, examples of traditional key exchange algorithms include Elliptic Curve Diffie-Hellman Ephemeral Static [RFC6090] [RFC8037]. In the context of COSE, examples of traditional key exchange algorithms include Ephemeral-Static (ES) DH and Static-Static (SS) DH [RFC9052].¶
"Post-Quantum Algorithm": An asymmetric cryptographic algorithm that is believed to be secure against attacks using quantum computers as well as classical computers. Examples of PQC key exchange algorithms include ML-KEM.¶
"Post-Quantum Traditional (PQ/T) Hybrid Scheme": A multi-algorithm scheme where at least one component algorithm is a post-quantum algorithm and at least one is a traditional algorithm.¶
"PQ/T Hybrid Key Encapsulation Mechanism": A multi-algorithm KEM made up of two or more component KEM algorithms where at least one is a post-quantum algorithm and at least one is a traditional algorithm.¶
ML-KEM is a one-pass (store-and-forward) cryptographic mechanism for an originator to securely send keying material to a recipient using the recipient's ML-KEM public key. Three parameters sets for ML-KEMs are specified by [FIPS203]. In order of increasing security strength (and decreasing performance), these parameter sets are ML-KEM-512, ML-KEM-768, and ML-KEM-1024. X-Wing [I-D.connolly-cfrg-xwing-kem] uses a multi-algorithm scheme, where one component algorithm is a post-quantum algorithm and another one is a traditional algorithm. X-Wing uses the final version of ML-KEM-768 and X25519. The Combiner function defined in Section 5.3 of [I-D.connolly-cfrg-xwing-kem] combines the output of a post-quantum KEM and a traditional KEM to generate a single shared secret.¶
This specification registers a number of PQ/T Hybrid KEMs for use with HPKE. A ciphersuite is thereby a combination of several algorithm configurations:¶
KEM algorithm (PQ KEM + Traditional Algorithm, for example, MLKEM768 + X25519 defined as "X-Wing" in [I-D.connolly-cfrg-xwing-kem])¶
KDF algorithm¶
AEAD algorithm¶
The "KEM", "KDF", and "AEAD" values are conceptually taken from the HPKE IANA registry [HPKE-IANA]. Hence, JOSE and COSE cannot use an algorithm combination that is not already available with HPKE.¶
For readability the algorithm ciphersuites labels are built according to the following scheme:¶
HPKE-<KEM>-<KDF>-<AEAD>¶
The HPKE PQ/T hybrid ciphersuites for JOSE and COSE are defined in Section 7. Note that the PQ/T Hybrid KEM in HPKE is not an authenticated KEM. The HPKE Base mode can only be supported with the PQ/T Hybrid KEM.¶
This section describes the required parameters for an "AKP" key type, as defined in [I-D.ietf-cose-dilithium], and its use with the X-Wing algorithms, as defined in {#XWING}. An example JWK is also provided for illustration.¶
A JSON Web Key (JWK) or COSE_Key with a key type ("kty") for use with the "X-Wing" algorithm includes the following parameters:¶
kty (Key Type)
The key type parameter MUST be present and set to "AKP".¶
alg (Algorithm)
The algorithm parameter MUST be present and MUST represent the X-Wing algorithm, as defined in {#XWING}. X-Wing algorithms are those registered in the "JSON Web Signature and Encryption Algorithms" and "COSE Algorithms" registries, derived from the KEM identifier in the HPKE IANA registry.¶
pub (Public Key)
The public key parameter MUST be present and MUST contain the X-Wing encapsulation key (pk) as defined in Section 5.2 of [I-D.connolly-cfrg-xwing-kem]. When represented as a JWK, this value MUST be base64url-encoded.¶
priv (Private Key)
When representing an X-Wing private key, the private key parameter MUST be present and MUST contain the X-Wing decapsulation key (sk) as defined in Section 5.2 of [I-D.connolly-cfrg-xwing-kem]. When represented as a JWK, this value MUST be base64url-encoded.¶
The security considerations in [I-D.connolly-cfrg-xwing-kem] and [I-D.ietf-jose-hpke-encrypt] are to be taken into account.¶
The shared secrets computed in the hybrid key exchange should be computed in a way that achieves the "hybrid" property: the resulting secret is secure as long as at least one of the component key exchange algorithms is unbroken. PQC KEMs used in the manner described in this document MUST explicitly be designed to be secure in the event that the public key is reused, such as achieving IND-CCA2 security. ML-KEM has such security properties.¶
In HPKE JWE Key Encryption, when encrypting the Content Encryption Key (CEK) for multiple recipients, it is crucial to consider the security requirements of the message to safeguard against "Harvest Now, Decrypt Later" attack. For messages requiring post-quantum security, all recipients MUST use algorithms supporting post-quantum cryptographic methods, such as PQC KEMs or Hybrid PQ/T KEMs. Using traditional algorithms (e.g., ECDH-ES) for any recipient in these scenarios compromises the overall security of the message.¶
This document requests IANA to add new values to the "JSON Web Signature and Encryption Algorithms" registry.¶
Algorithm Name: HPKE-XWING-SHA256-AES256GCM¶
Algorithm Description: Cipher suite for JOSE-HPKE in Base Mode that uses the XWING Hybrid KEM, the HKDF-SHA256 KDF, and the AES-256-GCM AEAD.¶
Algorithm Usage Location(s): "alg"¶
JOSE Implementation Requirements: Optional¶
Change Controller: IANA¶
Specification Document(s): [[TBD: This RFC]]¶
Algorithm Analysis Documents(s): TODO¶
Algorithm Name: HPKE-XWING-SHA256-ChaCha20Poly1305¶
Algorithm Description: Cipher suite for JOSE-HPKE in Base Mode that uses the XWING Hybrid
KEM, the HKDF-SHA256 KDF, and the ChaCha20Poly1305 AEAD.¶
Algorithm Usage Location(s): "alg"¶
JOSE Implementation Requirements: Optional¶
Change Controller: IANA¶
Specification Document(s): [[TBD: This RFC]]¶
Algorithm Analysis Documents(s): TODO¶
This document requests IANA to add new values to the 'COSE Algorithms' registry.¶
Name: HPKE-Base-XWING-SHA256-AES256GCM¶
Value: TBD1¶
Description: Cipher suite for COSE-HPKE in Base Mode that uses the XWING Hybrid KEM, the
HKDF-SHA256 KDF, and the AES-256-GCM AEAD.¶
Capabilities: [kty]¶
Change Controller: IANA¶
Reference: [[TBD: This RFC]]¶
Name: HPKE-Base-XWING-SHA256-ChaCha20Poly1305¶
Value: TBD2¶
Description: Cipher suite for COSE-HPKE in Base Mode that uses the XWING Hybrid
KEM, the HKDF-SHA256 KDF, and the ChaCha20Poly1305 AEAD.¶
Capabilities: [kty]¶
Change Controller: IANA¶
Reference: [[TBD: This RFC]]¶
Thanks to Ilari Liusvaara and Orie Steele for the discussion and comments.¶