Internet-Draft PQC in OpenPGP November 2024
Kousidis, et al. Expires 9 May 2025 [Page]
Workgroup:
Network Working Group
Internet-Draft:
draft-ietf-openpgp-pqc-06
Published:
Intended Status:
Informational
Expires:
Authors:
S. Kousidis
BSI
J. Roth
MTG AG
F. Strenzke
MTG AG
A. Wussler
Proton AG

Post-Quantum Cryptography in OpenPGP

Abstract

This document defines a post-quantum public-key algorithm extension for the OpenPGP protocol. Given the generally assumed threat of a cryptographically relevant quantum computer, this extension provides a basis for long-term secure OpenPGP signatures and ciphertexts. Specifically, it defines composite public-key encryption based on ML-KEM (formerly CRYSTALS-Kyber), composite public-key signatures based on ML-DSA (formerly CRYSTALS-Dilithium), both in combination with elliptic curve cryptography, and SLH-DSA (formerly SPHINCS+) as a standalone public key signature scheme.

About This Document

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-ietf-openpgp-pqc/.

Discussion of this document takes place on the WG Working Group mailing list (mailto:openpgp@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/openpgp/. Subscribe at https://www.ietf.org/mailman/listinfo/openpgp/.

Source for this draft and an issue tracker can be found at https://github.com/openpgp-pqc/draft-openpgp-pqc.

Status of This Memo

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 9 May 2025.

Table of Contents

1. Introduction

The OpenPGP protocol supports various traditional public-key algorithms based on the factoring or discrete logarithm problem. As the security of algorithms based on these mathematical problems is endangered by the advent of quantum computers, there is a need to extend OpenPGP by algorithms that remain secure in the presence of quantum computers.

Such cryptographic algorithms are referred to as post-quantum cryptography. The algorithms defined in this extension were chosen for standardization by the National Institute of Standards and Technology (NIST) in mid 2022 [NISTIR-8413] as the result of the NIST Post-Quantum Cryptography Standardization process initiated in 2016 [NIST-PQC]. Namely, these are ML-KEM [FIPS-203] as a Key Encapsulation Mechanism (KEM), a KEM being a modern building block for public-key encryption, and ML-DSA [FIPS-204] as well as SLH-DSA [FIPS-205] as signature schemes.

For the two ML-* schemes, this document follows the conservative strategy to deploy post-quantum in combination with traditional schemes such that the security is retained even if all schemes but one in the combination are broken. In contrast, the stateless hash-based signature scheme SLH-DSA is considered to be sufficiently well understood with respect to its security assumptions in order to be used standalone. To this end, this document specifies the following new set: SLH-DSA standalone and the two ML-* as composite with ECC-based KEM and digital signature schemes. Here, the term "composite" indicates that any data structure or algorithm pertaining to the combination of the two components appears as single data structure or algorithm from the protocol perspective.

The document specifies the conventions for interoperability between compliant OpenPGP implementations that make use of this extension and the newly defined algorithms or algorithm combinations.

1.1. Conventions used in this Document

1.1.1. Terminology for Multi-Algorithm Schemes

The terminology in this document is oriented towards the definitions in [I-D.ietf-pquip-pqt-hybrid-terminology]. Specifically, the terms "multi-algorithm", "composite" and "non-composite" are used in correspondence with the definitions therein. The abbreviation "PQ" is used for post-quantum schemes. To denote the combination of post-quantum and traditional schemes, the abbreviation "PQ/T" is used. The short form "PQ(/T)" stands for PQ or PQ/T.

1.2. Post-Quantum Cryptography

This section describes the individual post-quantum cryptographic schemes. All schemes listed here are believed to provide security in the presence of a cryptographically relevant quantum computer. However, the mathematical problems on which the two ML-* schemes and SLH-DSA are based, are fundamentally different, and accordingly the level of trust commonly placed in them as well as their performance characteristics vary.

[Note to the reader: This specification refers to the NIST PQC draft standards FIPS 203, FIPS 204, and FIPS 205 as if they were a final specification. This is a temporary solution until the final versions of these documents are available. The goal is to provide a sufficiently precise specification of the algorithms already at the draft stage of this specification, so that it is possible for implementers to create interoperable implementations. Furthermore, we want to point out that, depending on possible future changes to the draft standards by NIST, this specification may be updated as soon as corresponding information becomes available.]

1.2.1. ML-KEM

ML-KEM [FIPS-203] is based on the hardness of solving the Learning with Errors problem in module lattices (MLWE). The scheme is believed to provide security against cryptanalytic attacks by classical as well as quantum computers. This specification defines ML-KEM only in composite combination with ECDH encryption schemes in order to provide a pre-quantum security fallback.

1.2.2. ML-DSA

ML-DSA [FIPS-204] is a signature scheme that, like ML-KEM, is based on the hardness of solving the Learning With Errors problem and a variant of the Short Integer Solution problem in module lattices (MLWE and SelfTargetMSIS). Accordingly, this specification only defines ML-DSA in composite combination with EdDSA signature schemes.

1.2.3. SLH-DSA

SLH-DSA [FIPS-205] is a stateless hash-based signature scheme. Its security relies on the hardness of finding preimages for cryptographic hash functions. This feature is generally considered to be a high security guarantee. Therefore, this specification defines SLH-DSA as a standalone signature scheme.

In deployments the performance characteristics of SLH-DSA should be taken into account. We refer to Section 10.1 for a discussion of the performance characteristics of this scheme.

1.3. Elliptic Curve Cryptography

The ECDH encryption is defined here as a KEM via X25519 and X448 which are defined in [RFC7748]. EdDSA as defined in [RFC8032] is used as the elliptic curve-based digital signature scheme.

1.4. Standalone and Multi-Algorithm Schemes

This section provides a categorization of the new algorithms and their combinations.

1.4.1. Standalone and Composite Multi-Algorithm Schemes

This specification introduces new cryptographic schemes, which can be categorized as follows:

  • PQ/T multi-algorithm public-key encryption, namely a composite combination of ML-KEM with an ECDH KEM,

  • PQ/T multi-algorithm digital signature, namely composite combinations of ML-DSA with EdDSA signature schemes,

  • PQ digital signature, namely SLH-DSA as a standalone cryptographic algorithm.

For each of the composite schemes, this specification mandates that the consuming party has to successfully perform the cryptographic algorithms for each of the component schemes used in a cryptographic message, in order for the message to be deciphered and considered as valid. This means that all component signatures must be verified successfully in order to achieve a successful verification of the composite signature. In the case of the composite public-key decryption, each of the component KEM decapsulation operations must succeed.

1.4.2. Non-Composite Algorithm Combinations

As the OpenPGP protocol [RFC9580] allows for multiple signatures to be applied to a single message, it is also possible to realize non-composite combinations of signatures. Furthermore, multiple OpenPGP signatures may be combined on the application layer. These latter two cases realize non-composite combinations of signatures. Section 3.3 specifies how implementations should handle the verification of such combinations of signatures.

Furthermore, the OpenPGP protocol also allows parallel encryption to different keys by using multiple PKESK packets, thus realizing non-composite multi-algorithm public-key encryption.

2. Supported Public Key Algorithms

This section specifies the composite ML-KEM + ECDH and ML-DSA + EdDSA schemes as well as the standalone SLH-DSA signature scheme. All of these schemes are fully specified via their algorithm ID, i.e., they are not parametrized.

2.1. Algorithm Specifications

For encryption, the following composite KEM schemes are specified:

Table 1: KEM algorithm specifications
ID Algorithm Requirement Definition
TBD (105 for testing) ML-KEM-768+X25519 MUST Section 4.2
TBD (106 for testing) ML-KEM-1024+X448 SHOULD Section 4.2

For signatures, the following (composite) signature schemes are specified:

Table 2: Signature algorithm specifications
ID Algorithm Requirement Definition
TBD (107 for testing) ML-DSA-65+Ed25519 MUST Section 5.2
TBD (108 for testing) ML-DSA-87+Ed448 SHOULD Section 5.2
TBD SLH-DSA-SHAKE-128s MAY Section 6.1
TBD SLH-DSA-SHAKE-128f MAY Section 6.1
TBD SLH-DSA-SHAKE-256s MAY Section 6.1

2.1.1. Experimental Codepoints for Interop Testing

[ Note: this section to be removed before publication ]

Algorithms indicated as MAY are not assigned a codepoint in the current state of the draft in order to leave enough private/experimental code points available for other drafts.

The use of private/experimental codepoints during development are intended to be used in non-released software only, for experimentation and interop testing purposes only. An OpenPGP implementation MUST NOT produce a formal release using these experimental codepoints. This draft will not be sent to IANA without every listed algorithm having a non-experimental codepoint.

3. Algorithm Combinations

3.1. Composite KEMs

The ML-KEM + ECDH public-key encryption involves both the ML-KEM and an ECDH KEM in an a priori non-separable manner. This is achieved via KEM combination, i.e. both key encapsulations/decapsulations are performed in parallel, and the resulting key shares are fed into a key combiner to produce a single shared secret for message encryption.

As explained in Section 1.4.2, the OpenPGP protocol inherently supports parallel encryption to different keys. Note that the confidentiality of a message is not post-quantum secure when encrypting to different keys if at least one key does not support PQ/T encryption schemes. In Section 8.1 it is explained how to deal with multiple key scenarios.

3.2. Composite Signatures

The ML-DSA + EdDSA signature consists of independent ML-DSA and EdDSA signatures, and an implementation MUST successfully validate both signatures to state that the ML-DSA + EdDSA signature is valid.

3.3. Multiple Signatures

The OpenPGP message format allows multiple signatures of a message, i.e. the attachment of multiple signature packets.

An implementation MAY sign a message with a traditional key and a PQ(/T) key from the same sender. This ensures backwards compatibility due to [RFC9580, Section 5.2.5], since a legacy implementation without PQ(/T) support can fall back on the traditional signature.

Newer implementations with PQ(/T) support MAY ignore the traditional signature(s) during validation.

Implementations SHOULD consider the message correctly signed if at least one of the non-ignored signatures validates successfully.

[Note to the reader: The last requirement, that one valid signature is sufficient to identify a message as correctly signed, is an interpretation of [RFC9580, Section 5.2.5].]

3.4. ECC requirements

Even though the zero point, also called the point at infinity, may occur as a result of arithmetic operations on points of an elliptic curve, it MUST NOT appear in any ECC data structure defined in this document.

Furthermore, when performing the explicitly listed operations in Section 4.1.1.1 or Section 4.1.1.2 it is REQUIRED to follow the specification and security advisory mandated from the respective elliptic curve specification.

4. Composite KEM schemes

4.1. Building Blocks

4.1.1. ECDH KEMs

In this section we define the encryption, decryption, and data formats for the ECDH component of the composite algorithms.

Table 3 describes the ECDH-KEM parameters and artifact lengths. The artifacts in Table 3 follow the encodings described in [RFC7748].

Table 3: Montgomery curves parameters and artifact lengths
  X25519 X448
Algorithm ID reference TBD (105 for testing) TBD (106 for testing)
Field size 32 octets 56 octets
ECDH-KEM x25519Kem (Section 4.1.1.1) x448Kem (Section 4.1.1.2)
ECDH public key 32 octets [RFC7748] 56 octets [RFC7748]
ECDH secret key 32 octets [RFC7748] 56 octets [RFC7748]
ECDH ephemeral 32 octets [RFC7748] 56 octets [RFC7748]
ECDH share 32 octets [RFC7748] 56 octets [RFC7748]
Key share 32 octets 64 octets
Hash SHA3-256 SHA3-512

The various procedures to perform the operations of an ECDH KEM are defined in the following subsections. Specifically, each of these subsections defines the instances of the following operations:

(ecdhCipherText, ecdhKeyShare) <- ECDH-KEM.Encaps(ecdhPublicKey)

and

(ecdhKeyShare) <- ECDH-KEM.Decaps(ecdhSecretKey, ecdhCipherText, ecdhPublicKey)

To instantiate ECDH-KEM, one must select a parameter set from Table 3.

4.1.1.1. X25519-KEM

The encapsulation and decapsulation operations of x25519kem are described using the function X25519() and encodings defined in [RFC7748]. The ecdhSecretKey is denoted as r, the ecdhPublicKey as R, they are subject to the equation R = X25519(r, U(P)). Here, U(P) denotes the u-coordinate of the base point of Curve25519.

The operation x25519Kem.Encaps() is defined as follows:

  1. Generate an ephemeral key pair {v, V} via V = X25519(v,U(P)) where v is a randomly generated octet string with a length of 32 octets

  2. Compute the shared coordinate X = X25519(v, R) where R is the recipient's public key ecdhPublicKey

  3. Set the output ecdhCipherText to V

  4. Set the output ecdhKeyShare to SHA3-256(X || ecdhCipherText || ecdhPublicKey)

The operation x25519Kem.Decaps() is defined as follows:

  1. Compute the shared coordinate X = X25519(r, V), where r is the ecdhSecretKey and V is the ecdhCipherText

  2. Set the output ecdhKeyShare to SHA3-256(X || ecdhCipherText || ecdhPublicKey)

4.1.1.2. X448-KEM

The encapsulation and decapsulation operations of x448kem are described using the function X448() and encodings defined in [RFC7748]. The ecdhSecretKey is denoted as r, the ecdhPublicKey as R, they are subject to the equation R = X25519(r, U(P)). Here, U(P) denotes the u-coordinate of the base point of Curve448.

The operation x448.Encaps() is defined as follows:

  1. Generate an ephemeral key pair {v, V} via V = X448(v,U(P)) where v is a randomly generated octet string with a length of 56 octets

  2. Compute the shared coordinate X = X448(v, R) where R is the recipient's public key ecdhPublicKey

  3. Set the output ecdhCipherText to V

  4. Set the output ecdhKeyShare to SHA3-512(X || ecdhCipherText || ecdhPublicKey)

The operation x448Kem.Decaps() is defined as follows:

  1. Compute the shared coordinate X = X448(r, V), where r is the ecdhSecretKey and V is the ecdhCipherText

  2. Set the output ecdhKeyShare to SHA3-512(X || ecdhCipherText || ecdhPublicKey)

4.1.2. ML-KEM

ML-KEM features the following operations:

(mlkemCipherText, mlkemKeyShare) <- ML-KEM.Encaps(mlkemPublicKey)

and

(mlkemKeyShare) <- ML-KEM.Decaps(mlkemCipherText, mlkemSecretKey)

The above are the operations ML-KEM.Encaps and ML-KEM.Decaps defined in [FIPS-203]. Note that mlkemPublicKey is the encapsulation and mlkemSecretKey is the decapsulation key.

ML-KEM has the parametrization with the corresponding artifact lengths in octets as given in Table 4. All artifacts are encoded as defined in [FIPS-203].

Table 4: ML-KEM parameters artifact lengths in octets
Algorithm ID reference ML-KEM Public key Secret key Ciphertext Key share
TBD (105 for testing) ML-KEM-768 1184 64 1088 32
TBD (106 for testing) ML-KEM-1024 1568 64 1568 32

To instantiate ML-KEM, one must select a parameter set from the column "ML-KEM" of Table 4.

The procedure to perform ML-KEM.Encaps() is as follows:

  1. Invoke (mlkemCipherText, mlkemKeyShare) <- ML-KEM.Encaps(mlkemPublicKey), where mlkemPublicKey is the recipient's public key

  2. Set mlkemCipherText as the ML-KEM ciphertext

  3. Set mlkemKeyShare as the ML-KEM symmetric key share

The procedure to perform ML-KEM.Decaps() is as follows:

  1. Invoke mlkemKeyShare <- ML-KEM.Decaps(mlkemCipherText, mlkemSecretKey)

  2. Set mlkemKeyShare as the ML-KEM symmetric key share

4.2. Composite Encryption Schemes with ML-KEM

Table 1 specifies the following ML-KEM + ECDH composite public-key encryption schemes:

Table 5: ML-KEM + ECDH composite schemes
Algorithm ID reference ML-KEM ECDH-KEM
TBD (105 for testing) ML-KEM-768 x25519Kem
TBD (106 for testing) ML-KEM-1024 x448Kem

The ML-KEM + ECDH composite public-key encryption schemes are built according to the following principal design:

  • The ML-KEM encapsulation algorithm is invoked to create an ML-KEM ciphertext together with an ML-KEM symmetric key share.

  • The encapsulation algorithm of an ECDH KEM, namely X25519-KEM or X448-KEM, is invoked to create an ECDH ciphertext together with an ECDH symmetric key share.

  • A Key-Encryption-Key (KEK) is computed as the output of a key combiner that receives as input both of the above created symmetric key shares and the protocol binding information.

  • The session key for content encryption is then wrapped as described in [RFC3394] using AES-256 as algorithm and the KEK as key.

  • The PKESK packet's algorithm-specific parts are made up of the ML-KEM ciphertext, the ECDH ciphertext, and the wrapped session key.

4.2.1. Key combiner

For the composite KEM schemes defined in Table 1 the following procedure MUST be used to compute the KEK that wraps a session key. The construction is a key derivation function compliant to [SP800-108], Section 4.4, based on KMAC256. It is given by the following algorithm, which computes the key encryption key KEK that is used to wrap, i.e., encrypt, the session key.

//   multiKeyCombine(mlkemKeyShare, mlkemCipherText, mlkemPublicKey, ecdhKeyShare,
//                   ecdhCipherText, ecdhPublicKey, algId)
//
//   Input:
//   mlkemKeyShare   - the ML-KEM key share encoded as an octet string
//   mlkemCipherText - the ML-KEM ciphertext encoded as an octet string
//   mlkemPublicKey  - The ML-KEM public key of the recipient as an octet string
//   ecdhKeyShare    - the ECDH key share encoded as an octet string
//   ecdhCipherText  - the ECDH ciphertext encoded as an octet string
//   ecdhPublicKey   - The ECDH public key of the recipient as an octet string
//   algId           - the OpenPGP algorithm ID of the public-key encryption algorithm
//   domSep          – the UTF-8 encoding of the string "OpenPGPCompositeKDFv1"
//
//  domSep given in hexadecimal encoding := 4F 70 65 6E 50 47 50 43 6F 6D 70
//                                          6F 73 69 74 65 4B 44 46 76 31

KEK = KMAC256(mlkemKeyShare || ecdhKeyShare, mlkemCipherText || ecdhCipherText
              || mlkemPublicKey || ecdhPublicKey || algId, 256, domSep)
return KEK

Here, the parameters to KMAC256 appear in the order as specified in [SP800-185], Section 4, i.e., the key K, main input data X, requested output length in bits L, and optional customization string S.

Note that the values ecdhKeyShare defined in Section 4.1.1 and mlkemKeyShare defined in Section 4.1.2 already use the relative ciphertext in the derivation. The ciphertext and public keys are by design included again in the key combiner to provide a robust security proof.

4.2.2. Key generation procedure

The implementation MUST generate the ML-KEM and the ECDH component keys independently. ML-KEM key generation follows the specification [FIPS-203] and the artifacts are encoded as fixed-length octet strings as defined in Section 4.1.2. For ECDH this is done following the relative specification in [RFC7748], and encoding the outputs as fixed-length octet strings in the format specified in Table 3.

4.2.3. Encryption procedure

The procedure to perform public-key encryption with an ML-KEM + ECDH composite scheme is as follows:

  1. Take the recipient's authenticated public-key packet pkComposite and sessionKey as input

  2. Parse the algorithm ID from pkComposite and set it as algId

  3. Extract the ecdhPublicKey and mlkemPublicKey component from the algorithm specific data encoded in pkComposite with the format specified in Section 4.3.2.

  4. Instantiate the ECDH-KEM and the ML-KEM depending on the algorithm ID according to Table 5

  5. Compute (ecdhCipherText, ecdhKeyShare) := ECDH-KEM.Encaps(ecdhPublicKey)

  6. Compute (mlkemCipherText, mlkemKeyShare) := ML-KEM.Encaps(mlkemPublicKey)

  7. Compute KEK := multiKeyCombine(mlkemKeyShare, mlkemCipherText, mlkemPublicKey, ecdhKeyShare, ecdhCipherText, ecdhPublicKey, algId, 256) as defined in Section 4.2.1

  8. Compute C := AESKeyWrap(KEK, sessionKey) with AES-256 as per [RFC3394] that includes a 64 bit integrity check

  9. Output the algorithm specific part of the PKESK as ecdhCipherText || mlkemCipherText || len(C, symAlgId) (|| symAlgId) || C, where both symAlgId and len(C, symAlgId) are single octet fields, symAlgId denotes the symmetric algorithm ID used and is present only for a v3 PKESK, and len(C, symAlgId) denotes the combined octet length of the fields specified as the arguments.

4.2.4. Decryption procedure

The procedure to perform public-key decryption with an ML-KEM + ECDH composite scheme is as follows:

  1. Take the matching PKESK and own secret key packet as input

  2. From the PKESK extract the algorithm ID as algId and the wrapped session key as encryptedKey

  3. Check that the own and the extracted algorithm ID match

  4. Parse the ecdhSecretKey and mlkemSecretKey from the algorithm specific data of the own secret key encoded in the format specified in Section 4.3.2

  5. Instantiate the ECDH-KEM and the ML-KEM depending on the algorithm ID according to Table 5

  6. Parse ecdhCipherText, mlkemCipherText, and C from encryptedKey encoded as ecdhCipherText || mlkemCipherText || len(C,symAlgId) (|| symAlgId) || C as specified in Section 4.3.1, where symAlgId is present only in the case of a v3 PKESK.

  7. Compute (ecdhKeyShare) := ECDH-KEM.Decaps(ecdhCipherText, ecdhSecretKey, ecdhPublicKey)

  8. Compute (mlkemKeyShare) := ML-KEM.Decaps(mlkemCipherText, mlkemSecretKey)

  9. Compute KEK := multiKeyCombine(mlkemKeyShare, mlkemCipherText, mlkemPublicKey, ecdhKeyShare, ecdhCipherText, ecdhPublicKey, algId) as defined in Section 4.2.1

  10. Compute sessionKey := AESKeyUnwrap(KEK, C) with AES-256 as per [RFC3394], aborting if the 64 bit integrity check fails

  11. Output sessionKey

4.3. Packet specifications

4.3.1. Public-Key Encrypted Session Key Packets (Tag 1)

The algorithm-specific fields consists of the output of the encryption procedure described in Section 4.2.3:

  • A fixed-length octet string representing an ECDH ephemeral public key in the format associated with the curve as specified in Section 4.1.1.

  • A fixed-length octet string of the ML-KEM ciphertext, whose length depends on the algorithm ID as specified in Table 4.

  • A one-octet size of the following fields.

  • Only in the case of a v3 PKESK packet: a one-octet symmetric algorithm identifier.

  • The wrapped session key represented as an octet string.

Note that like in the case of the algorithms X25519 and X448 specified in [RFC9580], for the ML-KEM composite schemes, in the case of a v3 PKESK packet, the symmetric algorithm identifier is not encrypted. Instead, it is placed in plaintext after the mlkemCipherText and before the length octet preceding the wrapped session key. In the case of v3 PKESK packets for ML-KEM composite schemes, the symmetric algorithm used MUST be AES-128, AES-192 or AES-256 (algorithm ID 7, 8 or 9).

In the case of a v3 PKESK, a receiving implementation MUST check if the length of the unwrapped symmetric key matches the symmetric algorithm identifier, and abort if this is not the case.

Implementations MUST NOT use the obsolete Symmetrically Encrypted Data packet (tag 9) to encrypt data protected with the algorithms described in this document.

4.3.2. Key Material Packets

The composite ML-KEM + ECDH schemes MUST be used only with v6 keys, as defined in [RFC9580].

The algorithm-specific public key is this series of values:

  • A fixed-length octet string representing an EC point public key, in the point format associated with the curve specified in Section 4.1.1.

  • A fixed-length octet string containing the ML-KEM public key, whose length depends on the algorithm ID as specified in Table 4.

The algorithm-specific secret key is these two values:

  • A fixed-length octet string of the encoded secret scalar, whose encoding and length depend on the algorithm ID as specified in Section 4.1.1.

  • A fixed-length octet string containing the ML-KEM secret key in seed format, whose length is 64 octets (compare Table 4). The seed format is defined in accordance with [FIPS-203], Section 3.3. Namely, the secret key is given by the concatenation of the values of d and z, generated in steps 1 and 2 of ML-KEM.KeyGen [FIPS-203], each of a length of 32 octets. Upon parsing the private key format, or before using the secret key, for the expansion of the key, the function ML-KEM.KeyGen_internal [FIPS-203] has to be invoked with the parsed values of d and z as input.

5. Composite Signature Schemes

5.1. Building blocks

5.1.1. EdDSA-Based signatures

Throughout this specification EdDSA refers to the PureEdDSA variant defined in [RFC8032].

To sign and verify with EdDSA the following operations are defined:

(eddsaSignature) <- EdDSA.Sign(eddsaSecretKey, dataDigest)

and

(verified) <- EdDSA.Verify(eddsaPublicKey, eddsaSignature, dataDigest)

The public and secret key, as well as the signature MUST be encoded according to [RFC8032] as fixed-length octet strings. The following table describes the EdDSA parameters and artifact lengths:

Table 6: EdDSA parameters and artifact lengths in octets
Algorithm ID reference Curve Field size Public key Secret key Signature
TBD (107 for testing) Ed25519 32 32 32 64
TBD (108 for testing) Ed448 57 57 57 114

5.1.2. ML-DSA signatures

Throughout this specification ML-DSA refers to the pure version ML-DSA, i.e., in contrast to the pre-hash variant, defined in [FIPS-204].

For ML-DSA signature generation the default hedged version of ML-DSA.Sign given in [FIPS-204] is used. That is, to sign with ML-DSA the following operation is defined:

(mldsaSignature) <- ML-DSA.Sign(mldsaSecretKey, dataDigest)

For ML-DSA signature verification the algorithm ML-DSA.Verify given in [FIPS-204] is used. That is, to verify with ML-DSA the following operation is defined:

(verified) <- ML-DSA.Verify(mldsaPublicKey, dataDigest, mldsaSignature)

ML-DSA has the parametrization with the corresponding artifact lengths in octets as given in Table 7. All artifacts are encoded as defined in [FIPS-204].

Table 7: ML-DSA parameters and artifact lengths in octets
Algorithm ID reference ML-DSA Public key Secret key Signature value
TBD (107 for testing) ML-DSA-65 1952 32 3309
TBD (108 for testing) ML-DSA-87 2592 32 4627

5.2. Composite Signature Schemes with ML-DSA

5.2.1. Signature data digest

Signature data (i.e. the data to be signed) is digested prior to signing operations, see [RFC9580, Section 5.2.4]. Composite ML-DSA + EdDSA signatures MUST use the associated hash algorithm as specified in Table 8 for the signature data digest. Signatures using other hash algorithms MUST be considered invalid.

An implementation supporting a specific ML-DSA + EdDSA algorithm MUST also support the matching hash algorithm.

Table 8: Binding between ML-DSA + EdDSA and signature data digest
Algorithm ID reference Hash function Hash function ID reference
TBD (107 for testing) SHA3-256 12
TBD (108 for testing) SHA3-512 14

5.2.2. Key generation procedure

The implementation MUST generate the ML-DSA and the EdDSA component keys independently. ML-DSA key generation follows the specification [FIPS-204] and the artifacts are encoded as fixed-length octet strings as defined in Section 5.1.2. For EdDSA this is done following the relative specification in [RFC7748], and encoding the artifacts as specified in Section 5.1.1 as fixed-length octet strings.

5.2.3. Signature Generation

To sign a message M with ML-DSA + EdDSA the following sequence of operations has to be performed:

  1. Generate dataDigest according to [RFC9580, Section 5.2.4]

  2. Create the EdDSA signature over dataDigest with EdDSA.Sign() from Section 5.1.1

  3. Create the ML-DSA signature over dataDigest with ML-DSA.Sign() from Section 5.1.2

  4. Encode the EdDSA and ML-DSA signatures according to the packet structure given in Section 5.3.1.

5.2.4. Signature Verification

To verify an ML-DSA + EdDSA signature the following sequence of operations has to be performed:

  1. Verify the EdDSA signature with EdDSA.Verify() from Section 5.1.1

  2. Verify the ML-DSA signature with ML-DSA.Verify() from Section 5.1.2

As specified in Section 3.2 an implementation MUST validate both signatures, i.e. EdDSA and ML-DSA, successfully to state that a composite ML-DSA + EdDSA signature is valid.

5.3. Packet Specifications

5.3.1. Signature Packet (Tag 2)

The composite ML-DSA + EdDSA schemes MUST be used only with v6 signatures, as defined in [RFC9580].

The algorithm-specific v6 signature parameters for ML-DSA + EdDSA signatures consist of:

  • A fixed-length octet string representing the EdDSA signature, whose length depends on the algorithm ID as specified in Table 6.

  • A fixed-length octet string of the ML-DSA signature value, whose length depends on the algorithm ID as specified in Table 7.

5.3.2. Key Material Packets

The composite ML-DSA + EdDSA schemes MUST be used only with v6 keys, as defined in [RFC9580].

The algorithm-specific public key for ML-DSA + EdDSA keys is this series of values:

  • A fixed-length octet string representing the EdDSA public key, whose length depends on the algorithm ID as specified in Table 6.

  • A fixed-length octet string containing the ML-DSA public key, whose length depends on the algorithm ID as specified in Table 7.

The algorithm-specific secret key for ML-DSA + EdDSA keys is this series of values:

  • A fixed-length octet string representing the EdDSA secret key, whose length depends on the algorithm ID as specified in Table 6.

  • A fixed-length octet string containing the ML-DSA secret key in seed format, whose length is 32 octets (compare Table 7). The seed format is defined in accordance with [FIPS-204], Section 3.6.3. Namely, the secret key is given by the value xi generated in step 1 of ML-DSA.KeyGen [FIPS-204]. Upon parsing the private key format, or before using the secret key, for the expansion of the key, the function ML-DSA.KeyGen_internal [FIPS-204] has to be invoked with the parsed value of xi as input.

6. SLH-DSA

Throughout this specification SLH-DSA refers to the pure SLH-DSA version defined in [FIPS-205].

6.1. The SLH-DSA Algorithms

The following table lists the group of algorithm code points for the SLH-DSA signature scheme and the corresponding artifact lengths. This group of algorithms is henceforth referred to as "SLH-DSA code points".

Table 9: SLH-DSA algorithm code points and the corresponding artifact lengths in octets.
Algorithm ID reference SLH-DSA public key SLH-DSA secret key SLH-DSA signature
TBD (SLH-DSA-SHAKE-128s) 32 64 7856
TBD (SLH-DSA-SHAKE-128f) 32 64 17088
TBD (SLH-DSA-SHAKE-256s) 64 128 29792

6.1.1. Signature Data Digest

Signature data (i.e. the data to be signed) is digested prior to signing operations, see [RFC9580, Section 5.2.4]. SLH-DSA signatures MUST use the associated hash algorithm as specified in Table 10 for the signature data digest. Signatures using other hash algorithms MUST be considered invalid.

An implementation supporting a specific SLH-DSA algorithm code point MUST also support the matching hash algorithm.

Table 10: Binding between SLH-DSA algorithm code points and signature data hash algorithms
Algorithm ID reference Hash function Hash function ID reference
TBD (SLH-DSA-SHAKE-128s) SHA3-256 12
TBD (SLH-DSA-SHAKE-128f) SHA3-256 12
TBD (SLH-DSA-SHAKE-256s) SHA3-512 14

6.1.2. Key generation

SLH-DSA key generation is performed via the algorithm SLH-DSA.KeyGen as specified in [FIPS-205], and the artifacts are encoded as fixed-length octet strings as defined in Section 6.1.

6.1.3. Signature Generation

SLH-DSA signature generation is performed via the algorithm SLH-DSA.Sign as specified in [FIPS-205]. The variable opt_rand is set to PK.seed. See also Section 9.4.

6.1.4. Signature Verification

SLH-DSA signature verification is performed via the algorithm SLH-DSA.Verify as specified in [FIPS-205].

6.2. Packet specifications

6.2.1. Signature Packet (Tag 2)

The SLH-DSA algorithms MUST be used only with v6 signatures, as defined in [RFC9580, Section 5.2.3].

The algorithm-specific part of a signature packet for an SLH-DSA algorithm code point consists of:

  • A fixed-length octet string of the SLH-DSA signature value, whose length depends on the algorithm ID in the format specified in Table 9.

6.2.2. Key Material Packets

The SLH-DSA algorithms code points MUST be used only with v6 keys, as defined in [RFC9580].

The algorithm-specific part of the public key consists of:

  • A fixed-length octet string containing the SLH-DSA public key, whose length depends on the algorithm ID as specified in Table 9.

The algorithm-specific part of the secret key consists of:

  • A fixed-length octet string containing the SLH-DSA secret key, whose length depends on the algorithm ID as specified in Table 9.

7. Notes on Algorithms

7.1. Symmetric Algorithms for SEIPD Packets

Implementations MUST implement AES-256. An implementation SHOULD use AES-256 in the case of a v1 SEIPD packet, or AES-256 with any available AEAD mode in the case of a v2 SEIPD packet, if all recipient certificates indicate support for it (explicitly or implicitly).

A certificate that contains a PQ(/T) key SHOULD include AES-256 in the "Preferred Symmetric Ciphers for v1 SEIPD" subpacket and SHOULD include the pair AES-256 with OCB in the "Preferred AEAD Ciphersuites" subpacket.

If AES-256 is not explicitly in the list of the "Preferred Symmetric Ciphers for v1 SEIPD" subpacket, and if the certificate contains a PQ/T key, it is implicitly at the end of the list. This is justified since AES-256 is mandatory to implement. If AES-128 is also implicitly added to the list, it is added after AES-256.

If the pair AES-256 with OCB is not explicitly in the list of the "Preferred AEAD Ciphersuites" subpacket, and if the certificate contains a PQ/T key, it is implicitly at the end of the list. This is justified since AES-256 and OCB are mandatory to implement. If the pair AES-128 with OCB is also implicitly added to the list, it is added after the pair AES-256 with OCB.

7.2. Hash Algorithms for Key Binding Signatures

Subkey binding signatures over algorithms described in this document and primary key binding signatures made by algorithms described in this document MUST NOT be made with MD5, SHA-1, or RIPEMD-160. A receiving implementation MUST treat such a signature as invalid.

8. Migration Considerations

The post-quantum KEM algorithms defined in Table 1 and the signature algorithms defined in Table 2 are a set of new public key algorithms that extend the algorithm selection of [RFC9580]. During the transition period, the post-quantum algorithms will not be supported by all clients. Therefore various migration considerations must be taken into account, in particular backwards compatibility to existing implementations that have not yet been updated to support the post-quantum algorithms.

8.1. Key preference

Implementations SHOULD prefer PQ(/T) keys when multiple options are available. When encrypting to a certificate that has both a valid PQ/T and a valid traditional encryption subkey, an implementation SHOULD use the PQ/T subkey only. Furthermore, if an application has any means to determine that encrypting to a PQ/T certificate and a traditional certificate is redundant, it should omit encrypting to the traditional certificate.

As specified in Section 3.1, the confidentiality of a message is not post-quantum secure when using multiple PKESKs if at least one does not use PQ/T encryption schemes. An implementation SHOULD NOT abort the encryption process when encrypting a message to both PQ/T and traditional keys to allow for a smooth transition to post-quantum cryptography.

An implementation MAY sign with both a PQ(/T) and an ECC key using multiple signatures over the same data as described in Section 3.3. Signing only with PQ(/T) key material is not backwards compatible.

8.2. Key generation strategies

It is RECOMMENDED to generate fresh secrets when generating PQ(/T) keys. Note that reusing key material from existing ECC keys in PQ(/T) keys does not provide backwards compatibility.

An OpenPGP certificate is composed of a certification-capable primary key and one or more subkeys for signature, encryption, and authentication. Two migration strategies are recommended:

  1. Generate two independent certificates, one for PQ(/T)-capable implementations, and one for legacy implementations. Implementations not understanding PQ(/T) certificates can use the legacy certificate, while PQ(/T)-capable implementations will prefer the newer certificate. This allows having a traditional certificate for compatibility and a v6 PQ(/T) certificate, at a greater complexity in key distribution.

  2. Attach PQ(/T) encryption or signature subkeys to an existing traditional v6 OpenPGP certificate. Implementations understanding PQ(/T) will be able to parse and use the subkeys, while PQ(/T)-incapable implementations can gracefully ignore them. This simplifies key distribution, as only one certificate needs to be communicated and verified, but leaves the primary key vulnerable to quantum computer attacks.

9. Security Considerations

9.1. Security Aspects of Composite Signatures

When multiple signatures are applied to a message, the question of the protocol's resistance against signature stripping attacks naturally arises. In a signature stripping attack, an adversary removes one or more of the signatures such that only a subset of the signatures remain in the message at the point when it is verified. This amounts to a downgrade attack that potentially reduces the value of the signature. It should be noted that the composite signature schemes specified in this draft are not subject to a signature stripping vulnerability. This is due to the fact that in any OpenPGP signature, the hashed meta data includes the signature algorithm ID, as specified in [RFC9580, Section 5.2.4]. As a consequence, a component signature taken out of the context of a specific composite algorithm is not a valid signature for any message.

Furthermore, it is also not possible to craft a new signature for a message that was signed twice with a composite algorithm by interchanging (i.e., remixing) the component signatures, which would classify as a weak existential forgery. This is due to the fact that each v6 signatures also includes a random salt at the start of the hashed meta data, as also specified in the aforementioned reference.

9.2. Hashing in ECDH-KEM

Our construction of the ECDH-KEMs, in particular the inclusion of ecdhCipherText in the final hashing step in encapsulation and decapsulation that produces the ecdhKeyShare, is standard and known as hashed ElGamal key encapsulation, a hashed variant of ElGamal encryption. It ensures IND-CCA2 security in the random oracle model under some Diffie-Hellman intractability assumptions [CS03]. The additional inclusion of ecdhPublicKey follows the security advice in [RFC7748, Section 6.1].

9.3. Key combiner

For the key combination in Section 4.2.1 this specification limits itself to the use of KMAC256 in a construction following [SP800-108]. The sponge construction used by KMAC256 was proven to be indifferentiable from a random oracle [BDPA08]. This means, that in contrast to SHA2, which uses a Merkle-Damgard construction, no HMAC-based construction is required for key combination. It is therefore sufficient to simply process the concatenation of any number of key shares with a domain separation when using a sponge-based construction like KMAC256.

More precisely, for a given capacity c the indifferentiability proof shows that assuming there are no weaknesses found in the Keccak permutation, an attacker has to make an expected number of 2^(c/2) calls to the permutation to tell KMAC256 from a random oracle. For a random oracle, a difference in only a single bit gives an unrelated, uniformly random output. Hence, to be able to distinguish a key K, derived from shared keys K1 and K2 (with ciphertexts C1 and C2 and public keys P1 and P2) as

K = KMAC256(K1 || K2, C1 || C2 || P1 || P2 || algId, 256, domSep)

from a random bit string, an adversary has to know (or correctly guess) both key shares K1 and K2, entirely.

The proposed construction in Section 4.2.1 preserves IND-CCA2 of any of its ingredient KEMs, i.e. the newly formed combined KEM is IND-CCA2 secure as long as at least one of the ingredient KEMs is. Indeed, the above stated indifferentiability from a random oracle qualifies Keccak as a split-key pseudorandom function as defined in [GHP18]. That is, Keccak behaves like a random function if at least one input shared secret is picked uniformly at random. Our construction can thus be seen as an instantiation of the IND-CCA2 preserving Example 3 in Figure 1 of [GHP18], up to some reordering of input shared secrets and ciphertexts. In the random oracle setting, the reordering does not influence the arguments in [GHP18].

9.3.1. Domain separation and binding

The domSeparation information defined in Section 4.2.1 provides the domain separation for the key combiner construction. This ensures that the input keying material is used to generate a KEK for a specific purpose or context.

The algorithm ID, passed as the algID paramter to multiKeyCombine, binds the derived KEK to the chosen algorithm. The input of the public keys into multiKeyCombine binds the KEK to the communication parties. The algorithm ID identifies unequivocally the algorithm, the parameters for its instantiation, and the length of all artifacts, including the derived key.

This is in line with the Recommendation for ECC in Section 5.5 of [SP800-56A]. Other fields included in the recommendation are not relevant for the OpenPGP protocol, since the sender is not required to have a key of their own, there are no pre-shared secrets, and all the other parameters are unequivocally defined by the algorithm ID.

9.4. SLH-DSA Message Randomizer

The specification of SLH-DSA [FIPS-205] prescribes an optional non-deterministic message randomizer. This is not used in this specification, as OpenPGP v6 signatures already provide a salted signature data digest of the appropriate size.

9.5. Binding hashes in signatures with signature algorithms

In order not to extend the attack surface, we bind the hash algorithm used for signature data digestion to the hash algorithm used internally by the signature algorithm.

ML-DSA internally uses a SHAKE256 digest, therefore we require SHA3 in the ML-DSA + EdDSA signature packet, see Section 5.2.1. Note that we bind a NIST security category 2 hash function to a signature algorithm that falls into NIST security category 3. This does not constitute a security bottleneck: because of the unpredictable random salt that is prepended to the digested data in v6 signatures, the hardness assumption is not collision resistance but second-preimage resistance.

In the case of SLH-DSA the internal hash algorithm varies based on the algorithm ID, see Section 6.1.1.

9.6. Symmetric Algorithms for SEIPD Packets

This specification mandates support for AES-256 for two reasons. First, AES-KeyWrap with AES-256 is already part of the composite KEM construction. Second, some of the PQ(/T) algorithms target the security level of AES-256.

For the same reasons, this specification further recommends the use of AES-256 if it is supported by all recipient certificates, regardless of what the implementation would otherwise choose based on the recipients' preferences. This recommendation should be understood as a clear and simple rule for the selection of AES-256 for encryption. Implementations may also make more nuanced decisions.

9.7. Key generation

When generating keys, this specification requires component keys to be generated independently, and recommends not to reuse existing keys for any of the components. Note that reusing a key across different protocols may lead to signature confusion vulnerabilities, that formally classify as signature forgeries. Generally, reusing a key for different purposes may lead to subtle vulnerabilities.

10. Additional considerations

10.1. Performance Considerations for SLH-DSA

This specification introduces both ML-DSA + EdDSA as well as SLH-DSA as PQ(/T) signature schemes.

Generally, it can be said that ML-DSA + EdDSA provides a performance in terms of execution time requirements that is close to that of traditional ECC signature schemes. Regarding the size of signatures and public keys, though, ML-DSA has far greater requirements than traditional schemes like EC-based or even RSA signature schemes.

Implementers may want to offer SLH-DSA for applications where the weaker security assumptions of a hash-based signature scheme are required – namely only the 2nd preimage resistance of a hash function – and thus a potentially higher degree of trust in the long-term security of signatures is achieved. However, SLH-DSA has performance characteristics in terms of execution time of the signature generation as well as space requirements for the signature that are even greater than those of ML-DSA + EdDSA signature schemes.

Pertaining to the execution time, the particularly costly operation in SLH-DSA is the signature generation. Depending on the parameter set, it can range from approximately the one hundred fold to more than the two thousand fold of that of ML-DSA-87. These number are based on the performance measurements published in the NIST submissions for SLH-DSA and ML-DSA. In order to achieve fast signature generation times, the algorithm SLH-DSA-SHAKE-128f ("f" standing for "fast") should be chosen. This comes at the expense of a larger signature size. This choice can be relevant in applications where mass signing occurs or a small latency is required.

In order to minimize the space requirements of an SLH-DSA signature, an algorithm ID with the name ending in "s" for "small" should be chosen. This comes at the expense of a longer signature generation time. In particular, SLH-DSA-SHAKE-128s achieves the smallest possible signature size, which is about the double size of an ML-DSA-87 signature. Where a higher security level than 128 bit is needed, SLH-DSA-SHAKE-256s can be used.

Unlike the signature generation time, the signature verification time of SLH-DSA is not that much larger than that of other PQC schemes. Based on the performance measurements published in the NIST submissions for SLH-DSA and ML-DSA, the verification time of the SLH-DSA is, for the parameters covered by this specification, larger than that of ML-DSA-87 by a factor ranging from four (for -128s) over nine (for -256s) to twelve (for -128f).

11. IANA Considerations

IANA is requested to add the algorithm IDs defined in Table 11 to the existing registry OpenPGP Public Key Algorithms. The field specifications enclosed in brackets for the ML-KEM + ECDH composite algorithms denote fields that are only conditionally contained in the data structure.

Table 11: IANA updates for registry 'OpenPGP Public Key Algorithms'
ID Algorithm Public Key Format Secret Key Format Signature Format PKESK Format Reference
TBD ML-KEM-768+X25519 32 octets X25519 public key (Table 3), 1184 octets ML-KEM-768 public key (Table 4) 32 octets X25519 secret key (Table 3), 2400 octets ML-KEM-768 secret-key (Table 4) N/A 32 octets X25519 ciphertext, 1088 octets ML-KEM-768 ciphertext [, 1 octet algorithm ID in case of v3 PKESK], 1 octet length field of value n, n octets wrapped session key (Section 4.3.1) Section 4.2
TBD ML-KEM-1024+X448 56 octets X448 public key (Table 3), 1568 octets ML-KEM-1024 public key (Table 4) 56 octets X448 secret key (Table 3), 3168 octets ML-KEM-1024 secret-key (Table 4) N/A 56 octets X448 ciphertext, 1568 octets ML-KEM-1024 ciphertext [, 1 octet algorithm ID in case of v3 PKESK], 1 octet length field of value n, n octets wrapped session key (Section 4.3.1) Section 4.2
TBD ML-DSA-65+Ed25519 32 octets Ed25519 public key (Table 6), 1952 octets ML-DSA-65 public key (Table 7) 32 octets Ed25519 secret key (Table 6), 4032 octets ML-DSA-65 secret (Table 7) 64 octets Ed25519 signature (Table 6), 3293 octets ML-DSA-65 signature (Table 7) N/A Section 5.2
TBD ML-DSA-87+Ed448 57 octets Ed448 public key (Table 6), 2592 octets ML-DSA-87 public key (Table 7) 57 octets Ed448 secret key (Table 6), 4896 octets ML-DSA-87 secret (Table 7) 114 octets Ed448 signature (Table 6), 4595 octets ML-DSA-87 signature (Table 7) N/A Section 5.2
TBD SLH-DSA-SHAKE-128s 32 octets public key (Table 9) 64 octets secret key (Table 9) 7856 octets signature (Table 9) N/A Section 6.1
TBD SLH-DSA-SHAKE-128f 32 octets public key (Table 9) 64 octets secret key (Table 9) 17088 octets signature (Table 9) N/A Section 6.1
TBD SLH-DSA-SHAKE-256s 64 octets public key (Table 9) 128 octets secret key (Table 9) 29792 octets signature (Table 9) N/A Section 6.1

12. Changelog

12.1. draft-wussler-openpgp-pqc-01

  • Shifted the algorithm IDs by 4 to align with the crypto-refresh.

  • Renamed v5 packets into v6 to align with the crypto-refresh.

  • Defined IND-CCA2 security for KDF and key combination.

  • Added explicit key generation procedures.

  • Changed the key combination KMAC salt.

  • Mandated Parameter ID check in SPHINCS+ signature verification.

  • Fixed key share size for Kyber-768.

  • Added "Preliminaries" section.

  • Fixed IANA considerations.

12.2. draft-wussler-openpgp-pqc-02

  • Added the ephemeral and public key in the ECC key derivation function.

  • Removed public key hash from key combiner.

  • Allowed v3 PKESKs and v4 keys with PQ algorithms, limiting them to AES symmetric ciphers. for encryption with SEIPDv1, in line with the crypto-refresh.

12.3. draft-wussler-openpgp-pqc-03

  • Replaced round 3 submission with NIST PQC Draft Standards FIPS 203, 204, 205.

  • Added consideration about security level for hashes.

12.4. draft-wussler-openpgp-pqc-04

  • Added Johannes Roth as author

12.6. draft-ietf-openpgp-pqc-01

  • Mandated AES-256 as mandatory to implement.

  • Added AES-256 / AES-128 with OCB implicitly to v1/v2 SEIPD preferences of "PQ(/T) certificates".

  • Added a recommendation to use AES-256 when possible.

  • Swapped the optional v3 PKESK algorithm identifier with length octet in order to align with X25519 and X448.

  • Fixed ML-DSA private key size.

  • Added test vectors.

  • Correction and completion of IANA instructions.

12.7. draft-ietf-openpgp-pqc-02

  • Removed git rebase artifact.

12.8. draft-ietf-openpgp-pqc-03

  • Updated SLH-DSA by removing parametrization and restricting to three SLH-DSA-SHAKE algorithm code points.

  • Removed NIST and Brainpool curve hybrids, dropped ECDSA from the current specification.

  • Updated KDF as proposed at IETF 119.

  • Removed whitespaces from composite algorithm names.

  • Explicitly disallowed SED (tag 9) and weak hashes when using PQ algorithms.

12.9. draft-ietf-openpgp-pqc-04

  • Fixed ML-DSA signature size.

  • Fixed parameters order in PKESK description.

  • Fixed missing inputs into KEM combination description.

  • Improved parallel encryption guidance.

  • Improved SED deprecation decscription.

  • Added ML-DSA test vectors.

12.10. draft-ietf-openpgp-pqc-05

  • Reworked KEM combiner for the purpose of NIST-compliance.

  • Mandated v6 keys for ML-KEM + ECDH algorithms.

  • Defined private key seed format for ML-KEM and ML-DSA.

  • Added key generation security considerations.

  • Replaced initial public drafts with FIPS 203, 204, 205.

12.11. draft-ietf-openpgp-pqc-06

  • Fixed and improved test vectors.

13. Contributors

Stephan Ehlen (BSI)
Carl-Daniel Hailfinger (BSI)
Andreas Huelsing (TU Eindhoven)

14. References

14.1. Normative References

[RFC3394]
Schaad, J. and R. Housley, "Advanced Encryption Standard (AES) Key Wrap Algorithm", RFC 3394, DOI 10.17487/RFC3394, , <https://www.rfc-editor.org/rfc/rfc3394>.
[RFC7748]
Langley, A., Hamburg, M., and S. Turner, "Elliptic Curves for Security", RFC 7748, DOI 10.17487/RFC7748, , <https://www.rfc-editor.org/rfc/rfc7748>.
[RFC8032]
Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital Signature Algorithm (EdDSA)", RFC 8032, DOI 10.17487/RFC8032, , <https://www.rfc-editor.org/rfc/rfc8032>.
[RFC9580]
Wouters, P., Ed., Huigens, D., Winter, J., and Y. Niibe, "OpenPGP", RFC 9580, DOI 10.17487/RFC9580, , <https://www.rfc-editor.org/rfc/rfc9580>.

14.2. Informative References

[BDPA08]
Bertoni, G., Daemen, J., Peters, M., and G. Assche, "On the Indifferentiability of the Sponge Construction", , <https://doi.org/10.1007/978-3-540-78967-3_11>.
[CS03]
Cramer, R. and V. Shoup, "Design and Analysis of Practical Public-Key Encryption Schemes Secure against Adaptive Chosen Ciphertext Attack", , <https://doi.org/10.1137/S0097539702403773>.
[FIPS-203]
National Institute of Standards and Technology, "Module-Lattice-Based Key-Encapsulation Mechanism Standard", , <https://doi.org/10.6028/NIST.FIPS.203>.
[FIPS-204]
National Institute of Standards and Technology, "Module-Lattice-Based Digital Signature Standard", , <https://doi.org/10.6028/NIST.FIPS.204>.
[FIPS-205]
National Institute of Standards and Technology, "Stateless Hash-Based Digital Signature Standard", , <https://doi.org/10.6028/NIST.FIPS.205>.
[GHP18]
Giacon, F., Heuer, F., and B. Poettering, "KEM Combiners", , <https://doi.org/10.1007/978-3-319-76578-5_7>.
[I-D.ietf-pquip-pqt-hybrid-terminology]
D, F., P, M., and B. Hale, "Terminology for Post-Quantum Traditional Hybrid Schemes", Work in Progress, Internet-Draft, draft-ietf-pquip-pqt-hybrid-terminology-04, , <https://datatracker.ietf.org/doc/html/draft-ietf-pquip-pqt-hybrid-terminology-04>.
[NIST-PQC]
Chen, L., Moody, D., and Y. Liu, "Post-Quantum Cryptography Standardization", , <https://csrc.nist.gov/projects/post-quantum-cryptography/post-quantum-cryptography-standardization>.
[NISTIR-8413]
Alagic, G., Apon, D., Cooper, D., Dang, Q., Dang, T., Kelsey, J., Lichtinger, J., Miller, C., Moody, D., Peralta, R., Perlner, R., Robinson, A., Smith-Tone, D., and Y. Liu, "Status Report on the Third Round of the NIST Post-Quantum Cryptography Standardization Process", NIST IR 8413 , , <https://doi.org/10.6028/NIST.IR.8413-upd1>.
[SP800-108]
Chen, L., "Recommendation for Key-Derivation Using Pseudorandom Functions", NIST Special Publication 800-108 Rev. 1 , , <https://doi.org/10.6028/NIST.SP.800-108r1-upd1>.
[SP800-185]
Kelsey, J., Chang, S., and R. Perlner, "SHA-3 Derived Functions: cSHAKE, KMAC, TupleHash, and ParallelHash", NIST Special Publication 800-185 , , <https://doi.org/10.6028/NIST.SP.800-185>.
[SP800-56A]
Barker, E., Chen, L., Roginsky, A., Vassilev, A., and R. Davis, "Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete Logarithm Cryptography", NIST Special Publication 800-56A Rev. 3 , , <https://doi.org/10.6028/NIST.SP.800-56Ar3>.

Appendix A. Test Vectors

To help implementing this specification a set of non-normative examples follow here.

A.1. Sample Ed25519 with ML-KEM-768+X25519 Data

A.1.1. Transferable Secret Key

Here is a Transferable Secret Key consisting of:

  • A v6 Ed25519 Private-Key packet

  • A v6 direct key self-signature

  • A User ID packet

  • A v6 positive certification self-signature

  • A v6 ML-KEM-768+X25519 Private-Subkey packet

  • A v6 subkey binding signature

The primary key has the fingerprint 4a6722225bcd7cb077936b6e1bf7e7b3d8e8f5f49d61257bf79d572faaa792ce.

The subkey has the fingerprint 9521f34e730a005fc5f912b088da710ff2f340c82ce3a5526833bfd7a0050006.

-----BEGIN PGP PRIVATE KEY BLOCK-----

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
nsXEzDINi5gbRcp0g8r/VikcaTR4Cg==
-----END PGP PRIVATE KEY BLOCK-----

A.1.2. Transferable Public Key

Here is the corresponding Transferable Public Key for Appendix A.1.1 consisting of:

  • A v6 Ed25519 Public-Key packet

  • A v6 direct key self-signature

  • A User ID packet

  • A v6 positive certification self-signature

  • A v6 ML-KEM-768+X25519 Public-Subkey packet

  • A v6 subkey binding signature

-----BEGIN PGP PUBLIC KEY BLOCK-----

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
-----END PGP PUBLIC KEY BLOCK-----

A.1.3. Encrypted and Signed Message

Here is a signed message "Testing\n" encrypted to the certificate Appendix A.1.2 and signed by the secret key Appendix A.1.1:

  • A v6 PKESK

  • A v2 SEIPD

The hex-encoded mlkemKeyShare input to multiKeyCombine is eb7fcf5ddbc127bc80d83dcb1bb43a1c6b9a1fa67b31752564d9f5fa18d80c64.

The hex-encoded ecdhKeyShare input to multiKeyCombine is e5564bc3d80ed72c63e5eb940b47314ec68227aafba571f011399a2b7733545f.

The hex-encoded output of multiKeyCombine is 4fa8f45b53b408b284bbcd13019a15f049c920306cfe8354fa3c5931894d6b92.

The hex-encoded session key is 873b2a8218a75cf3d570729ba48b88acbeb2d7ce9f993f4228ff37faf785fee5.

-----BEGIN PGP MESSAGE-----

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
-----END PGP MESSAGE-----

A.2. Sample ML-DSA-65+Ed25519 with ML-KEM-768+X25519 Data

A.2.1. Transferable Secret Key

Here is a Transferable Secret Key consisting of:

  • A v6 ML-DSA-65+Ed25519 Private-Key packet

  • A v6 direct key self-signature

  • A User ID packet

  • A v6 positive certification self-signature

  • A v6 ML-KEM-768+X25519 Private-Subkey packet

  • A v6 subkey binding signature

The primary key has the fingerprint bf262b24177002ac8ae5dc6da47c056d22ab9906d47d07952b75c358021901ca.

The subkey has the fingerprint 48b94bce2f9771788f5feb74122d599989c400cc0f49108bc98e0ea7945e4838.

-----BEGIN PGP PRIVATE KEY BLOCK-----

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
-----END PGP PRIVATE KEY BLOCK-----

A.2.2. Transferable Public Key

Here is the corresponding Transferable Public Key for Appendix A.2.1 consisting of:

  • A v6 ML-DSA-65+Ed25519 Public-Key packet

  • A v6 direct key self-signature

  • A User ID packet

  • A v6 positive certification self-signature

  • A v6 ML-KEM-768+X25519 Public-Subkey packet

  • A v6 subkey binding signature

-----BEGIN PGP PUBLIC KEY BLOCK-----

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
AAAAAAAAAAAABQwRGCAn
-----END PGP PUBLIC KEY BLOCK-----

A.2.3. Encrypted and Signed Message

Here is a signed message "Testing\n" encrypted to the certificate Appendix A.2.2 and signed by the secret key Appendix A.2.1:

  • A v6 PKESK

  • A v2 SEIPD

The hex-encoded mlkemKeyShare input to multiKeyCombine is b755f49eb910e4e9e5c87eda9d5676a88918f063012f0bf0cc61a70f83232f0c.

The hex-encoded ecdhKeyShare input to multiKeyCombine is 219a49490e65f96c87b7ade46bd65db9fcb96308e217acc5b421accf39217901.

The hex-encoded output of multiKeyCombine is e00d037481ade01f4b061d2c81aec8e60072d24fc2bb5806b3358926bb03c7d8.

The hex-encoded session key is 0e210c4027fa4f0be5a4d856cb6a6785b2e8cb48f5a12577f1621c8f8e4452a2.

-----BEGIN PGP MESSAGE-----

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
-----END PGP MESSAGE-----

A.3. Sample ML-DSA-87+Ed448 with ML-KEM-1024+X448 Data

A.3.1. Transferable Secret Key

Here is a Transferable Secret Key consisting of:

  • A v6 ML-DSA-87+Ed448 Private-Key packet

  • A v6 direct key self-signature

  • A User ID packet

  • A v6 positive certification self-signature

  • A v6 ML-KEM-1024+X448 Private-Subkey packet

  • A v6 subkey binding signature

The primary key has the fingerprint 275c8bea833c5deab538269381b120ebc002b8bca9c19df88740c942343f1462.

The subkey has the fingerprint 9e5f6087500c4a72b96ad343745360c99a0126dd43545e7e882ca4cdfe107fef.

-----BEGIN PGP PRIVATE KEY BLOCK-----

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
WVtldYiOnLnO2f8AAAAAAAAAAAcQExwlLDND
-----END PGP PRIVATE KEY BLOCK-----

A.3.2. Transferable Public Key

Here is the corresponding Transferable Public Key for Appendix A.3.1 consisting of:

  • A v6 ML-DSA-87+Ed448 Public-Key packet

  • A v6 direct key self-signature

  • A User ID packet

  • A v6 positive certification self-signature

  • A v6 ML-KEM-1024+X448 Public-Subkey packet

  • A v6 subkey binding signature

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsmjBlHQxoBsAAAKWXJziNfCL9rRC7fv+Fg0M2LG8xuh4oBFpV3sHG/x7ZcmmDd3
DVtUXWvddUy9xqnOwrxZCsw+GawhgExDcznB5ct3rsSOwF/izPSifyK+6EQqGyNu
cP/pR6QsTG0jwzIGgC9xJsmDaoX/sxpqnrgASVnWsFGUIKRoWfHRIQtE1t0FQ8G3
uHqHPNf3C3K77vk9vGS7SsFWOptmwLXKmHQE5PC5lztm/IVJiQsQI9V4VBwtS9Wd
GWI6kMnKtknZKv76SOoKn6nj7g/4d32SrDFk9K+aSJgKzMIDsY0Clph/p6UNsAOt
1USBej7Uloj+ul+S3q3Jmlwqpolt9nv3wtGdKyRTyc2pIoziFZlqmW+CYMoejPp1
uG+wcFkxDRPxnB0jWCkqAoiGtVB8ZueMoNxBCx+KifhBjp67T0ymp8Y61d6h6tnz
b8UgMn/3h9GgyJo8POvQBZCHodl9gVA0BaKCDdBIQlOfUtX4B+M6yZ8bN8ceHFds
R+lrcVN7BImw2aOzOmECKpadLh7/34NB0WUpH9fHgjdOcVbmPjRWsaDkBRJ+8N6C
NJw686tbfSluP35DhVFHsizR79Fv0tEhY2x8qo5f+XH3NesWwidOctBDxXbjkqe0
ibajQCHXJ1cG1OuC6kpHbEwJ18qPk+syPChy3OGTvps/Evovz34dSZ6bySQOnHl2
dhOGonfWNILCHoeW0UYMfGHJbjGbWqTtN16XcM611Zqx6W/+MQ0NUQ+GuhQkCRiX
JN7gbTL5zd4Z/lS7lBIFbA604dMz9flIbf7i5OSfDqBqY8kg29TTuFQvdjGBVNqv
W9HtYwiO17BAZ5Pvsbmf6gnOx7ASntmfyRw8PjujPss6VOjbr/lTS7vshysAyECx
2IcpNw1SWppdkb5uc8NRfoPdj3uipMbCtNypEILImiBkZT99fv9EWJFxffJEgJqx
KkFZ/dHqo6xQTTVq5PblFLooq5WWQ8sjCRrF6YWF7++DSLAw0W8FkCdNRn4RyKIA
5plm4Phx34ZVBtyaI4o185EQ7gdwlfFqLZ1frcKKRaNuNm7uQdxmAiv5RuaV3y5e
Y5azhhgKMwDSJhVPbwo3s/dzgYgfO7ZIi37BCv+442CP882SisvcB1TyJCNSOLoM
6ehJkLdudMHPPyYTWZx5pRnT7JiV5M4uWwJwoHwb9k+RiCLdSMbxSIZPvo5Sd8nQ
4kHtb6gV+ZATsKrR353IAssJMzBsYlIiv212CrHUHti/lkiPeXku47yZ9qhl6mN/
YcbuWqS/tXghLmMCe+ELepzJRW4b0w6E4fecpWe3cbHP7y7I908oNUE9wdaYLSFu
+xRAccg7VD/Fudb0FolIx0HHDp8NwvFEVLVsMKj4bP0IJ2Kvz3kbzqCrvdRkLVpO
6v27xav0zdD5GrrCkmp8hVmEM2acaUDsdG71uTwEoPe7idP+XhNhewlBVvJz+BQn
g1pAlDBvJnOXM0LNvWEEENGLxDF2blGbCZkmEBShr60oplkmm4KROaNlMfuFnCvU
aGUTHu7Haa/P7l6MK82fEWqQe73+1McEHuEzgAztezkejGFAEqOtlYxLZmIbbyJX
g8akVDC2TT5jTB1EI7nYsJRdtJ+2lIIjsrzCVnsyGWUiRrA7kbzX6JC91gqSKsAR
Q+iXLiBrRrgXAp89mmyWVqQzs7R5rUelkzF+vPF75Vo3SYwj/rhTRWlXp/ybn7fO
Wxz82yZV4h1/mEzxZae9FKYtI4MSBVgU86WzFHVnyAoUaO7MhpODqfMN24cMzVC/
bPitehManzIS6rargL5rR768nQvFXhPleyUFMQyoVUVHmrT1ZTzFygkZJYocXqxm
NtxJZfmbSUk7wpRR3w190+nVKcjc7CDBVm9YR/Wukj6ps6ldwuQMgkkHTygNzaLH
J7+yG0EraTp5NgEI5wsw2GXx11e9gDvvsmBWfqsK4T7t+AOKrlvwh6qu38Bp/7q/
fgKmNqhQDOxLBGjJuvrGHNpiKWoxXm9+sY3283H0WdQdk48aV+BH16HkgHWNGBgq
7k7v3GjFTQ9TNp0T216djkpZUbA5W1rmrInux7WyabPso+RcXTIwxGbqd6/g41Cs
71Cte2YTKeTXRun94sRRAWh/QNShJuQEULj5EAFyZX1szkvJ2HH2uYkwz8UbQTd2
JFbk0H1VEFEDs5rfTKdIEcDpAZYPyPL1k/I5L3rCZqz/obFeHkkTM66gOcRdzksV
4QRGixRaCSUcVCLJ6kirW9bQrQf4T0jjT1SroRjagLGdcE1fiq1gunl1h8p9wqjF
XG/p/QUUSzKe+gD8CelD5riCOEpnGaHEqdgFFUu04EOMgjnYD738Ev35KwQLS3b2
6ccTpJWKyq9N/jkKKP38nm3l2h5fhPOivqXujoB8x7PZWEGfr1qXOov9Sqq29bYB
C0Qu+kOf/QUybMNWWA29p1PMVevO5AbOeExUX1THqimXPXqStObXVcM5H7kCaRCz
KSezmQQEGI+oTn6gomcaHuZMUB+po4KA3TQEbKVPl4VnSSsxDfyMlcbz7Q1B/0W/
eC2fQ7+5NJ7VeRQEVdOhCRgMpB74D98opwPa9+9m0Wmdwp4XVBgB/Ihs41kGLO+O
80MWpgygG9MJaOrmjN+SQSl7wKb3LQb8/A9m9lrX5qyCTCoEQrSY9muWUNH5JpPx
bCLXFtUrvsT29pp+n1f8fLAJ3GMqLeTFn9jKjky9L9ClXX/DSDFbt8AFaCRajjYd
olccL0aP1HKu34nEwmyOfT6dMGUH5glEr/InQP0wDsnM3/x8PpHfa1PcNLl212yb
J2Hs6HQuOtTL3utOPlQl2eynpEqVLHvTSYx61kJNK93ztPINQ1eDSN31R5ehXmTM
XSFMRV7LkATOvLEItlozBzhBjF4b6yFUEF4YeIh3OVEAS1aoiG7gECefz4f2OIL+
+TtNFZRC5ozyqZODiMu5+XRkmrCHwouXUCh7ibhYX1jhE7FqNGM9eUp26deTJqCk
9TPTmLr8NHmJTaMhEHfkvDVEgTFbwc1jHsaCGX8zs4gDtBCIZTuRXWVH17wOwOLa
t0RewE/5YakW37IGRn8DWqBUptg+N/oLtyRCIVHUfif03QZTZ30DDqBrcJIDlsVW
Ywbh/W1zRu194fkqIIA+ibelK1MYigQmScWRjXt6zL9LUxInbZQNa1XYkz2pglo7
CRv1sJlCD4ICRzeL59jU49PLX91wXlOQZmQDp2CKtsz6Q0I6ZVGsAv0yfBorC9w+
UUfs57cNGHteyIgp7WmK/Gaz/8GmP2c6zy6dwVYOtC8tKurGk8feEpx5OhwIutWC
Uvd5xt3GH/J4daNcpbXSq9vF3x9Wq3BJFWgpOZygkopZLqp/T5EkSbF/pnYJ6j1s
gDIvclDDTnCCclKmplEPjMvFlDoQonXkzEWmwIvw9U04BeG+kUvaZ3pBH5eKl0Gg
uTt+shS8JocrxcRWj6aKwWkB6x7P2weSSMNyvCLGA2mVexGBbmNVppF2KFXLHCVa
NWfAbzymXpPCuG87HlrBDODTeFPF7cLSNAYfbA4AAABABYJR0MaAAwsJBwMVCggC
FgACmwMCHgkioQYnXIvqgzxd6rU4JpOBsSDrwAK4vKnBnfiHQMlCND8UYgUnCQIH
AgAAAAAmHiC81OmU6iNPXTdCDvfPS4OC8ismC9e3OHHPJzqLPj/E5Gknqtk9F06K
S77pjdlBOgViC6Pj0DkDakR4xApqhh8RoGgOepJi07wuc+zTzrJZJge/4mxUiQ/b
AIU3ZLEaA8pJnbvGyesLTy5KwiJGeFXFS46FdT4T41v7qnzej+ORbzqnhXP3sO2l
ZUK5DhmKjvgGAKT2jYQSijLYq8HAh0EEIiYbzYCR0tGjT/Kx3uoHut1Hmczo1vw8
PzGyYYCcSSeQpQo3P97oM8epWye9/QmH01Vn9gcVrlZ4HAJR++Qe4ogb6enR4Hie
ZTvkZRNDOO3+7KIc+L5QrE6SUhiKtkEe0Ii2H7lmff9EEPgOiWuwA/B9QFcAetAi
rOkLv9zb4vN3pctStqZFnQilK/lxLpZZMyoU9qZA4uYeXi/5P9lWDiaXLWSL1h0n
aevd0keQZgF8r0T8pBTwjQC7CgEUpSopI75BRw0gkJWu5eP6MSkAH5yPIXmIop1z
1tYPbPbYLIeIkuONhyElIHF59am4H6/q4qWVnpJWbgNkikeslPHdpEIfvFqRhSvG
GTNSxb4zKOoXtkjsEVBl/VPfmgnQaACyLbnU6hSZptl9AvUNf8MPuM3msrtBVLDU
AxC5jsCMYQQojHqXBL5ziXWaiA7VvDnl1A7lRDvHLqmv07zvTdBGlychlu9uMFOX
8JQSJrq39K8vGUi1wUP79csTyjyKyDLY2AIhTtZRatgxBvkmWNXL5I3btTUXEa6U
G4yklDRr8Y/onnd6QrUr67GgiVVjuJcOIBOA6i/JDustYX6x9DPRpmT2128tKOr9
zONDzKBs7DpnNEAF0ewj2CRLlOsvKAVW8mMAAXWZ/by02cTLna7zWSuzgsLbKRfe
veEOPjz1O8eEU84gZf853BYCrFsJeFFe6710l9d01U+sGJDcfG0eJjnNgL+xmhj/
UTs04VuCkkR2dGAfukkpiaLGz06M6gsn4Cy3LdAd8yzQ5i0edDIWpoknhlqhkeAm
DA4x+QCNMwSn6ynpK5Spq1+MA4SC4YLBQ4a5qb4SLC9YafiNKdLzu2HXPClBDRBz
mDA9tNQhAQ7IB+frmyRUwp4G+9xi16TGXUMrM4kaxanXtSjhEupoJEe/KsfSAMeA
pAWpxQDQXQRMLWYIwWB8Rq9rrHsKbYvC4oHjO1rdGxAK3wcRFObcIGWISp8zX0IA
PGGPAPO4A8vG/nJHoE2e+UW204gQdVcSQkton//0z1FxAYlrhr9d4dIETLGSfg1q
a4XdfT8jSKx+WjeqPvDpe1AEiwRX+y1Lh46/P13r3G7vwOzrUaPLHqeFp+m4mabz
yEFkEcyn2UC4YH6oD6DH8ea17faRE99Yz3gHrfjzPPPwlayvxN/0icpIQn/Gj0r7
YL0NxADSy/9WYmauTvKUPx86AotDBcK816CjlmyLPMq0wDcsFdX6fYgKviXQjNV8
BbNICU/rbz7616eYLZxLaNAnydDUjlKbmIj1zKy4rUHKneV2NbAQ3XoZarp93iP0
HUCKUmhAW3kYt6PtkGhNoWi7fqGHoIxpMngQ02n34pWaVB8pK+HV+ysBkVjw2xlL
NCPkJ0sorRmxzNC+McRip1L7qpMyAT+71jtKXLvZgSXHSWMD9bOJRTlk++t24Tff
YfamwGKZF/h6VcUK1I12UHxor3vcyfHOaM1BAn9AsInzlRCC2/vXbBIW5SsDRvic
OJqk1udhBrCsejSPair2zkb3gsOzWTvbIQKgaGDGwHkLkVet5KX1etFwPqHGZOI7
GEXIVlhbZcrkOb50NNAB5xS0X4Oz9YbxPP08ZiFGsllUUZYEBGegrB/MRVKq0wC5
Htj23GQTle7ULUgPyryGDXCtD83Y0fOPYM9J3o1F+22FAoNtOY591mPd2qF1ObFx
w7p7TO9BaQdwVuf2uf2r6ojFXwkIfb581iB5xKZRDxf5O7h9qgUcFdK3cmZwIgdW
5fsAFSCjqbnO4Fgo8TgjF7q4aDfr8OLU0yjQjuO+WAUee8D5MhI6AqvBrqR1XhUW
jp3lUjP3q/+R9F/LP40Klbsp3s0wSMsVq8+sD77YVAyCl+HEp0Da7vyX42TjM/XK
/nwtOwaatBHOJ162WPMBWk1r4/WjBPOkGaizWJI2CIceaTFcY5ZX3d4KBzI7wehO
ClIpmJvzs3otHF6tcNYa8geGVkojjMNirfDRSAebsginOdAWN00iBeyYJsNENr/9
yz/SQqcr5MuUl/MP3cn12qyFh2lQDem601IJJnGcwktZHHpMWEnKHUlkucJpG66p
SqBSwiwABSkYYZzBDkRfN63gezlrOtUUpkbcJ+HAueOGOTz4Llcz5IJ2BzHOt22z
Mbdr7cEwII8nebc59DbjgajlpAi9VSsX9mBfoUjH8JeTrTn4HxB23WlK4mRk2cmI
NW6szsYOReQvWvsRn84yXE30+FcycK9FOqroDz8BTJhPpXLhNDksQtG+yvi6oTN8
hHMT+lZYgK9JPrNsJcZiv35QluEsjr5PTEk9QR0UENJXoil/w9pZC0YQsVdbxNko
cFeN0cFQVKo6ZGzFTRY42cQfY834D7hisuooryqDFh9lf3PrJ4TAkHriysZ3bSw2
ACRBBcnAYJjS2kmITPpuzG6BhPSgPyGzb6nfC/LGX2Cj1qBX0XVqekfBfWQD4pBv
MZSZZxbR/A05CQUzGn7hwipdQXdjMnqL2G71hV85pyoxfqt0HfHzPrZ1a5JjG4lh
rnbcBhVzl5As7hndlx2T43JrGDDfEjwLWt6B7se4Unk0C1OA/XhOkJnSRNxkttS+
B1GlDzJynOe5es7W4GIaqMUfkXqqNFKEYBRqv3U+h6PGYIM9DAJFTipPKKHzNsCf
CIwJwb8G2J2VsYsGrDqYMCzhbj24IHorWgbe28jWeFaoTdri0/5LvfxKpY5xSkPD
FeqFG3hWqdIJWZjAKnc2jbRn1M7Irxl3Amt9TIgBNuf9fnKFvFzWAd7aDYeAga0o
ikkNilEuUk2lJ1NTnV3EDyrwT+XbBrs3HCALK27AO1rNu6JBW4Vz6tE2DCFKaW9y
dzPL0IKPI1vh09ZmrfRBFz4D6oXf8Gq4MeQ5+gt4ttR7wc/6EjorbnDsFrKLK7HY
kpfYf96l7HYKAYlqAXaGlUm19rtVJvt+R/7AGTzSOVgS4Keo28wmVHCILhi2hkBx
qMpr2AYmB81CvYzYAi1a0FS7K4+A5rbtJj9gjdLzTR75Bst2Fv8b77TipiFsqW/m
0MTntnRYTS70BVWrTtNUzxjwrQe4SPdGKRNLlgiIwVBb6hFHfUA6Q441/z4sqy7n
m9sejqNDlme0AGttm7KQ9LFsnq4s1UVhapsPDtkzeFYLuakg5SxpAi4RYXea/8tP
BqHN1t+8clszcWLKacAxkwmirUJ3AajqX71pPRYbMSNG4h8TfJ/vwCv3uy2aZ3GT
/00/MHUhmM8ZyDn2B729Bk5COdbLRuGlodX01Axap8MmVs7LE34R2TMT1JEjkid1
92zhxc7QJ3G8IQwS23oTpKjbgDfBIn6Bdm01HeJiY80941DwMWJwwwol/TyKO0E+
Ds5K8J+WKXtACu/KkJHWK8G11N9uiOA3T4sDeM5ldLCVJI8Z6AHznkbt+tHV2xeW
k4NKBElsOgbcAD1TJ04CQqRQDdSZB0mGZkIcOk63IMo9f4JTI4um4mYS2TjE1lnj
Q8t5+LTlRk31kMgBs8um51d2NvBYwUaLAty44+RLFzoXr3+ooPnFLqfTxFt8z8t+
Ib2n7hfSlqUa887oduDrIHZWCHOQE3S+2Mdbvxt4UQvnMbPvEuQrZCZEh3cBlZO8
5rep92mzgXAonHDRn9sAvyenPcvJ4Gm7VRr664IJgP45n7WdNtoAmgLTYDMQcJUS
/WRC/uP+xhj9hWNwCGMbQcl/3cVVlI3G9dV+7yp/yNfJ8d+0iESZ9ci7832PmChY
i2V6kQj4sBsAQywXYb1/efaqSrAOc5shYXHQB4epEUB5ELpzeIr1jX6gEWEXvak1
ssq5lGbagLMaKbbMd2EVoc+Dhpzk2wbA/N6dJm+E9cXQD0/BjKJiNGE8Pwjpre+Q
rSNpofgdXCDpJyADmStcCTCMENzhnSC6WjZAmoJy1hsM78dBVOtOybPdMWRaUpgJ
r0gIgp4r/z4KnkoNaFwaA3LDfdUTmehQ0fu26MH8hK/LYHYoTuIgBPHZehTEUS/5
eUBsNwgPS7c30WqMd0Vpe7dGA9AF+Dx6btCsgPe56qbz2jSJRxVN96dqHIgfGsls
smZu+NU9o+QV7hVCSqFGL/Im+duCvO3AgFaojnPROUAtnbB6y7dczfbundR1UPD3
ugGTHP/p8FRUTQYi7qARM81spZdmSbecUJRbK+kKDBGqwv93Gl9n9doLL6FhsRwa
Q0aZvUJ0DdClEJB0sv5cffbavrTjGNHjWZOgL+xhpRQQDNDZMr9jEEhyNULLWeIU
a9ANwDsWL7dCH/cByjstI+fXPd/TNNa9H1ONLj4K9y2qAFFMzmLbpn/fJhVPUIHW
Lc/B06hrvqNMSa/xGWyBbXRChmRoQ70dmlL3IjdXffgj/l8biytRHd0sZXY4jJnY
rpK2s/1Ui3EK0rcMvSzG4OC11OdaVsLm9M5ZjJ8BlYgu73AVbgbLKNfrSGTeXaO1
MjwsrWYjqdLZnzAMBBoAoi9Fo/DXVCaCZsHQs28dGpmWpyJu+dK6j4q74SYOoUAn
T0Ni5wpUvY9FFc8UzLDX+KrxILXau3C0nqRm6LVp5pDElMkWr0yc6w9YX3+FXUmp
vTjoK8E/WkXpJLfLBRXA+XyhMPQ3torlVxo69IlK2oP1vEF0V0iQxWM02W7lY3+J
mF2I9sH0JLrjfAJRR9a5LaAA6eQQTjTHgTKLg1PvT63IhbWHymHHznzgXwRB1h0T
4dfM8+JtGTXJDQRnBd9m65zUvvh0sQmb3eoCTAIvrc2jtDCOLqVHcM194Y05JpGV
NzZxG/+17jbEhODnpIGlNImXICRb133ra0icGO9609urkxxhAabS91AJMQ5tL7Ey
KeAljeF17XQolxEQP+rmBx4iPiilfUrk5LxxlquMcGQcdnDJs2JmA0nLwH26N1/y
N8NA6iVDrWHwart9/oZcgtAXBu8S9e8QvjXv1WfsHUUJY1YgU4zr36CpDzRPTHMZ
msg7TaCD993wmEzjQw95daoqo7AzNzmdqg39gdUJyOpwVuaxE0b1JBGmedvW9X6b
rqqV9Xnmk8z6nadOUFcXKPMW5knpIt6gGIVYRXLO1DCiagc8QwSO0VF/nHDqZxwN
h23/i42HjSo9cEzmpZmowB70SK+o5arrabUskc+HE1O2GjsvfaeLpKxSWLEa1Wo5
RXcpyiGBYaM3PfDJAcZxj8gKoYf3JxFBn6vm8eK4AvF7WF63bOcJc0P0ESjkguMp
i/15dwivbr8b5l47FjvmhfFIB9tTU23BSLvNEKTApg5BEHlVthKBLn7Of1E3bUSP
wKPhBduy1fp2ubh0o9a8cnmzikT9T6ClF1QyNA65108LdWX0mdPvIbmPN94pIBJF
Rhv2d9sy1ieGn/4XMuf7JXEIQEd087ybPGp96U8hPm6Siya5AOfhiZSHV4MlaooS
nMjaumIXPcqbdGu1TorDuHSrNzjaqmR7+M9zqYKQwUABieB0SJiM5fFeEmdKnpaE
sot9XU8S/TyBbO+3yY2eumU66HUW/gAkWQd7HR48Hlyu8v2PHooGOdQZ0qQFe5Ff
X+D78JMrRe2s9V5lxomFjlK3UDaeaXl0pp1gGzO2n8qjkx3GtQ9nmVz4L0XrnuIq
rPtLvqcnE3iWb2f+5HtibwqQy/TUMOvoFu/A/K8x6/mcDihAijieGHRECclRU4jV
73jyrb/hl0T19WQ/m7K8naWxMvqkzsGUardojq20VSdFINr60u/BTr3AMoN0TbGO
Tdlzm/OBovxDrAK1/h0c0wPQegQLZZ9zEZQsfulu+xa6n2ZgHyQRLH0SRbFKn+9f
74h44nVzLpAakWDVk7n+5g/fb+FV1u25on2L6U3nw10ZagjSB1GtFJG8ceO0G/wi
tPL3KpKIsAxSPlORkkEClbMgv64w6LJGsihuKxsPp4ZDJfo+yXGNTA3JJHciW7E4
REKK4yy6+hpWMw0UnL0MK1Rk1YzGTPdYuPZISqxllTdjiAn/ULJ+7cFkCWsTbD9x
ZGl7TbDg92ufUH5UYNNvLyzNKM3mvVOdz/ASe02NZXK7RueA7JlabhPbVKy4z+T8
TFNuf53E3+v1FnuN6Qg3hdfaYm68zNDfICFYXI+stguuAxRRqqvrAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAABg8TGB4lJy3NLlBRQyB1c2VyIChUZXN0IEtl
eSkgPHBxYy10ZXN0LWtleUBleGFtcGxlLmNvbT7C0iAGE2wOAAAALAWCUdDGgAIZ
ASKhBidci+qDPF3qtTgmk4GxIOvAAri8qcGd+IdAyUI0PxRiAAAAAI4SIE8VqaId
aLiTi6TCRPoFg0LwGv3VPiOt9rXnFa6T8+SwwEPI/JIXPllmzE7H+OgcruzddERC
iRD/zdrg1JR+CVuqLFtTJ04r7S3fmQkrCyEmnJ+MPk/9160AO55+9zgfnfZbOWfp
wRMyz27F78g4CDEVEu8/batXtPT9qIYbjBcGVPpBucnFIx/siuQnFPkOSAYA5UN2
b9bgQdxIDCC7x0DAupjONBFJW4Cly+lXWW2xHZVfMF8xzh/sZ36E/k79SmBnoBxg
Rn+9nKeeDEL3OiRZjyPd3u3sTUcYG+vnBjuWX+q3fhLhDkFG+NLeFc8FSaDpLDw3
cxSBdYuEqXRF7oWUDYfDDWaPwxWtZca4MObbDQTezCZ+NBc8jxxfY+nPeNyEWkgc
hpMMqLtHGZOkc0md9fcTDJtbCcAuzg5lis/aZYpK6dHgSEixL1aifGtmLnw98t7z
63hOVtSgNvfFxa0GsQhIpMnYO+hMO7EEDFlxLmr5IouRO9tBAjPH3234ZhbA8peR
La8aLPtxb8nuwqyOFgQlL7ypXaogtcw6Qx7OMlT7A5Y0eC5LpeNzlMsr0HfDRr8U
1l7b8gCY6nFfLh3H3ishf9nG7vyFYglQLlubaCjF+H0mtfWVgps1/IZx1iEnvw56
UO29ZEb9JI1Ml4D2f+ytw81l2iIMhgy7lvsqzqXeF6bvVFtKFr+hKUys0hMGFpQh
udoa8KVLNUuuLun2aZ3NEldRA+IyxmuNm/8AZ7v/UCp7GUuNMURMh1+GBwMEmgc6
E1pG7ONLDB0VYrLoC6GSKlMmHpYrW3EwkJ5cON4aYpxfZMFVExMWUylzI4eOgiy0
+tYSQV8CDkh02u0I1P2OxST3SSmAI8kmLxc/GN0XMvHPDSmLrc7AhHvuMzl83Ea8
4matfshAZQOmHBIk3Pqv6Gj4PX9XK+SQ6CeY4iIb3FY9FNmPkojF4g5oE5nTsAaF
vPFNsTpDyqpEWlO83c308xSF4EsYU+/W904xmbScw2lEhKDqxn3o+0VLQhYm4CGX
NbXeH7kyqRlh1RjCAoV3cnjCoxBPsAG4AMXAOfBa7iigc8MiO6Em8G30hKbEOqve
HPcNaRkuAx5noTTNUYcdpUvtMQ18o0B6xQLYc1vRZF+bG7dSzi/3KqmeerecXZbO
Nq+ucxNsLvfPn9goQznmpe9DwKg7Z3McatLFTET6ln23KuBYGlNYzJzN4K//1y0w
fxp0x/nhqQmXD/ISNGC8FtL6IFdfW/pdK3yot/dCa8F2uayL8Myarx8ovq2xcHNt
JpeU1Dt00sDSAn3qzGhqVTSb9fYqCCGPtltCYiBQMcZWX1/PDGb829qfiolPBHdz
1IIpiFFXJMqwaUPZv1RJMD5Bt7dVbB5OC/NcnuhHpxDL4NwNdH/mxk75oSJhYZxu
/LoRu5+bQlugMf9ovrUctKpbnF15D/JF2QlZpzH+0qMSZHjLyKz2TJtbjH8kLv79
GVw+O6cpUEJE4fGtdZY+B690IiLQDoH9Ba0riToqCf5Xa06qBGe5NY9lL50h7tFn
D+tAxcHfUBMJMJ5W4hIdvaHOPTKm2HdPWXi3uKzdK1EAvYR90QD3ZxR9B8zygaP+
UI81SyRYR6WoXFU2p2J2c0ronUgL0gTVURbkfDQfYXr1LS3xzQI7yn7ETq8wQ9h/
YhRLV7gOHB19ldpzs1kx0qbEGCtjj/fV9FmFu8al95yk89n47uF8JbSRgQ/ySmei
I1L5lwKZnmDQZyWmZ5yLSoI8Fii1JXD+GqKtCbksQ8q/fzhSZM2xUyDYgTE2EYvX
3XjqVrgwvPoyJjgTUpJ40baAijikqF8L0EI4z9E+6FU0+w+cYP/h4k4cPmHLtOqz
OUdDLqDjNpAedFLvUuS4Yx5rA53OeKsUh1noZ8C9uTHWwtSUNUI3AWbZKVps4DEL
MyVgP3cDHrXvjCcm6KbnFg0gwZgmG8I+CJOhUKXZASIdS3tyrkxoITiPZNlJGxQh
tTi8g7vKaLCn8VwAiUzMxIpFuVuLEYC+be8TUQmHDtr0KdYba6OXDaiy8C8UxCSF
Pc2b369ZUeZXW8DyLnuyAmAWI5UyLYuN8wyTJW5VKj0H/KAIrTvS7x2ZuvWebqr9
cPQ2+7+BCG5LxV/bFkhrR6hGU4w+mBQaAMQ5+QgAAn3dsPm5IM2obLJAdrO97rLi
Yg4l3+SOluDEyWGkXMrf8Ox/yWCde/oTXR2kO4Q+ZGpCPjpS82USo+epreYVvgQy
qckyLR1F9b6PAXXTLmIhsMJCTvrmyKyynV8fFCOGe3kUwGV4xTmcU2iT14LM4HRu
q0mN3d7KLktIjR9j2sBs7uc2LIvx0+AWI5uljkZiH1HZLP46FDUae4aZOcLKEuHN
d58pe4sbxUiZITO6jkphluXZNA6FXwEf3wPw8ZpGeQNzdrODSTStVSoeakxeOkq+
PImVR9wf1nt3c6U2CJUEuFd7+SsZJrBWHP412FfWwr5s5bEUR1YaHRYdEsccgS1m
IMyrRTB+ZZp1frYhHGvv8VsqlNGpI9HBF5wSEx3r4pJ4Rj58dnQGwS/NlRS6eilA
dWSdDia3xxSFKzvxh0gdbSgRepBG8NM03pxLWsS1hnTfkdDH6VA2dNzu4ys5F/KN
SvoKGuX7duUZ8XRDbFTP9elO5MZnm9UM2ow5v3XyB2LkCrhSPvTkIXEDkJ+Aslyt
5NqCFir7J1sLvIlmCyKc3fzHrPF+zYTE0B4WiQgpFvU4r1X4KsnaeBia7av4dPIQ
n5ETX+Y5V1qR4Chhtf+fHAQt5nqyPmbomr9VwIE0h5tgrQEN7t/KZEE+SdR81s9g
INkSpl9xlWBnHu7uDxoMAx8zwBT361fAf63xvMAEc81zbLYbmodxS5DqcVT8eQHB
OK2Znk5oTWG+DI7AfhiyJTnadQY1yvu2ymBnIjLnBFytYJ0GcnQ6nSK2tyJClnan
YyozbGDGt60n/r22JtFkcqkFBNTJ3++lHEviVfGI5JVgilUzFfK2u8p5aHWGIwYD
WQwwFBTkldsfU/qHzrSJRNXocjMq5Ed+8zo78KDPPANpZ9Re3iG01egWS/uJTGRC
vVWLX4TQ+6y93aIywZZZ/41txvjHcazjmwRX90/ZxWzXRuCb6R8AESrNbR81OY3K
fQuqCh1WGeq3+RFHTlkEMDNc11u7+nEb8Zyma73xKembG995QWOK8519IJF/P9R1
7+HN9mM4fgTjUmTAAZTpW1qHVhBl28OfztUWn8xTDXz+1w/OQRMaT4RnZEmEwpSU
pN1+zwBSO0qRQpeE4hOMX6DRdX9QcapbV9UM5YnSdoFYOvrUM8W4mEQm85PBWAGr
qB8/EbqUleLi23VQOAPGdS95Q95Y3ibGhzZPV/Ph/f9PeOHeEMpPuBqOjb5Krp3Y
dTjA9QJcFhK12klM+hAqUoxbziko+umwq3fRV+RtXBY1d4G4LROaSDtHxcA4zuBT
blB0FQOF2wYGNcHajqu4BzsHHSZsp7BsFzUEst0hJyrEqkr/syHMEackF00hp79w
r3v/sFVUR4Lhl0hK1V5iI2tJ8GypEn/uaLlU+PSNwQrSAKPlGN9EVrJJsObm94wp
v0jdwAjyhXeAkS5Vl94AAl1iiNhjAR/EJdi2KPKBgcuBjZgqPLh5js9XxDkojIvM
DyCUgHuKmBBHkc9gU0fe1eCvrBm8HiZjpqemrDfPhviqeF1UMzgyKH3uG13c9mKi
cilvVpCw+0qrdvuQQRDu0kjmywIaG4TFhJd4RvZ8oIvicWYjPa4gn90N6lM4ktSt
m8X3JcfeSCvX0/YwVIHD7FbKM9z87t2uDDOqNAq7IbnAq5VqLkfqZnE67Mw4ThJW
e6/OdMJCqng8//Pe+byQFMb7NLIzcclR+GFfqo3t4gT4fJoXT8Vx5f7SPYc8fcL7
mgJKRmrBKU9Krk8iEwrnbXX1gcbdssF6m7XPd//zbQeBEe/eYR1SOjU+Na7pXwXo
Vov59wcN3EIsuOB4wx8FDaXCD6BThDFvrq8tQD/++Vs+M/0ncS+sSnHAJtCN0hUQ
p9YJPzOc20NDkb9RoLA38xO5/C1dLN78klB/C7PHHgQjG44d2PLTKaYnuM5i6Ydt
rNvwFbY9da8Y4QLD9q35QSOUgzaoYeVmPxlGxce/K7e8lWiDDutVICfRPdZotwZi
cf27/JH1T5/6bz7A9aK2fg3ShShbcRGbQFcpwzPpPguwJmm/H5b2PRrgq9dBuRTt
h01cK4eGTYsQm1rDtLRiiuvTOxuGWphe2Q69WVwDM4+FzuyFqZHgm7giNTYM27jv
IAMG59OxoGlxKuVqb6M/nycRs+FrP0+Flwqh0rJHkoeDju/MsknevPmdBRE6c7H8
R9Lvwi3EILUgISv/HeBxkODuQ5L1j3VGFS6KeLhBOI6YcO5DtLNqwV8DzW1/+IPs
/4a6QtQDazCbBQq9ztMamInuoB+qpLIE/lZUStfTKlkfMuHa4ikLRPKN50b0ME6A
7zAAlpi4F64lwFenJr8WK6UMRvlbY00v3WQd+tK9WCQpaWMB5X8JNCa+k1F/rLiL
ai3+ePVVOlGfZc8Rx/UCeQc8sR39uDHBK4bnxQv7ZoWLqZQ3lV5LUtXWSLaUMPi5
XdUJc2QrNwCuhBSswCLR+UegGkUolgx+y4HPAfJXfzTlQ4qoEZHfDYI4XAyPtYGz
eg4jTxAZcPTveAiMEhBvfrWz2A+BR5XrmpKafy6YQpqC0cWTz6qTcQCO0lZUN6Kb
TJSBG+Xdv2oQMligLyhDwkFnz9KjSsfOiykQwWVv43WN3zA2CMHZ84pGJF1Pw7Sz
IESiRnKZ8RYnY++j3JMx5lVJDjt0+gG28Gk9uFE8ZjbZsrRW/7K03OhA8oNYj03Q
xV14zqT8fZXga66b9pbY/phL1dwJxErVmtEcwF9cUNXvrSjjDhXpltdEuE7V1kiO
QtPgxxzE5t2UQ9tYP93qwzed7CRxPLmLfIHEcjgKLujfuxzABHwyU7OnisJZTk82
GVmllLdmUhMbfPFZRULAGjAQhJWFstsA6HO4ynZB6kxMoT4ykyTQXu9GUkvvuuxR
i+3JsysvjMfF9qztaGGGqm/CBahOKRu213C/if67Z0VTIzghBuDp20pDnEihMruV
oJQT1+iQEAuSvi0dH995QnkMN+//dlrG7eNGvIdREQWOjj7cuK+hFILrOQZipiJg
QsrTZwYpnipdYPyer9XoZQB3ZBq7cOXvGva3LBsI0Jm+ySh957TYNPYKnEp5zpqM
Wb3lj8JUvk46mMtZtM9WDc3H+DzDovdAc7nfL0tia3rlY59wjBRLuAUamxsyMzdR
M1JeuEnC9N7df4MOYq/W01T2ZBaKtCJn5ZCtJsZ93p+Cr3AKW6Je/bXGKlsf/4iP
M7nlCB1ci2SphEXIUFhhZiWuuqbsWXqOhiciqcks5EyWq+HZWdBjze4b1nK+pyh4
A7BGjt3JaFPfd5/4nnbmodFyP/tZ6x2oCMaNPtVg6JhCiJoFdpgKEDrzVFO4yExO
SFk2er9FrFNsL2PhMOTucqnTXR3+01nogV4veNWknuVkM4SfOHyfGfhjnPmhcTdx
C1p4JYPV2PxMS9wXJOG2zioudAqEXFoa8hde94nF9vGULRgtc0BK5D8HMqyGxMjA
nRmSExCnlsXP35wbR5WAD+Fnbszpk0KZVt2jERcdoBGCdH5QAu2RwMfwfactANvR
Dsg2PBFkxQnmo3C/Bfi1pE9o4u/IOGK+pGHzkyud2K689o5YIXOon1dT5DatRI4q
eAhn0yfjoymb1fyg9maQoGBVFPdaewEKcMfkENc96Bf+3fIxY12nz0HS2pNNFOWS
BPfe5F3QTHN/GWIS17Tvx3VclrAGHOZSWebX+yR1LZGZkbQv3EgD2jIKGSyW1Hmk
MjoVXfPDudZt2hq8V2HPysTLECNMPqcby1Gn5d+BXGWsAzFOyHGZIWu1ENEqrTZK
st4R4jKceU2vBazerlpxjXr69V2Y+nvzjCC8anjMAjqIQeC9ErrPxCRQ5e2/CK8j
ngnCQafq48ZFIFQS2s6jm+/b/kP0imANEyUny6eLRBd4qrKLzxBDyodhgnPq8hzS
mjcdRTKEEdf6QFPaSJZ5uwJhOTVvbjLSMwW6lXSCybIad3obvTs7MUdYpstA0shs
adtEC/q9QUSbh8aEjpC+RqeczPxARfANIeRLZDqYWayXAl+eaxUsb766PA+8U2gx
gE+GSCmVihX2/T7tYVTT1AFSOEBkXmZ7+WGW5XgSHiK6zNsSJCo1iKu4ufX3AwxD
f9/t+k+i0xocN2B8pcLhAyFDdqu/5gRCVGGNohdoa+cAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAGEBcaIikvM87FogZR0MaAagAABlhbIpP+jexBnYqkCViqh2yinur2
4lsvfRvgzhh10Y6isU0n9H4e1R2h7FNUcmeKw+fWWGNDu75qw6SWvzkgkBlIjix2
Be42o5zhNffislVal1Hzb0giQbB1HvXgccesbunRvB7Kf2xHJfMMvsJzBgLFVvdz
FjrKZQapvGxsCSfBy60hcQI2IbDXs9yhCbsXgG1mV1oGwXIDTnW0SgMhLFMqGJym
rPOHBRprX1MYsTsnGIxIyTATOZRaNx8aaPgzkujoKB5Vcqd6wZsqz0/zNNg1xppm
jTSrs2/nsLN6Nd58WsqpPsPzik/oo4DAMKlqLG1DHReCPCDLJqHpQkFlKGfcO7Yk
iyRjMT+kevyLUMWbZtdmFI5lK7SSI78yS3aMmgYBWTgYvI2mfqTGuaHEfWOZJp+o
r+a3Sqc6nXqAs1dlm5dradqRLhbHtASxfsKKSqcVhd/0l4YWpbCsaA9hvugRp/0x
OIzijGj5m4U2y2oUcr+aTcvEKulMuncWAIRiYUdspmAbFVppL7ZwIUequzqSVvkQ
HxTSePJ2Uwu7xBLoNz4FXAHViPW8Yry0TdxhrtzMGhqhRj2bKKmVwdNUagwQH6eq
ZYM0ci2YTE9yW7DMNeZILqNXAWfrtMYwitBiCur3NSU6tjpBP1sykgrXnRkgVMDL
r+8cdV8TFBhyqb7ruk4HKxmwDbanby8CvFSDDmy3j++Uys+XhncDEbXIbJ6TEI04
iTfZiLEbsw6YtnwFefepgEZFqKl0B7gWmY91li0qtF3KF35BVCp3fTiUbh62YFx4
LKJLnseRBPOMFrgYMP8HvhNqjgOGsNqzppUjpqmbpcAxal1pSbTgGat6BDpUzkxI
ny2KSL6EbvQ0cZ8WueTcqPqTzlrHLLrBrs56uk2cufzJi9KhVt9LPgHaYIrZE1xS
ny1Qas0AfXaMIHxHZMJyZWp5uEfUvskcgRcBSSJcFAOZB3QoRyVxwWwjdgfbLF7j
hU+6wBmnJqbkGKQTJWoUXVyLQBXoSX8qo6DpNl0TxB2ECUtVIHCEKRkCbBMRwg3g
U5x8h5v8i1rnynIiUBlMx4YgfPMxLOAcAsITgIQUhTGoAOHsaAD7HcsTz5M5ExNB
zpaLZVfllgkUCpZaSQQQTT1Ft1xzaywsrPA7vO/lJHf0yj1zA1IxDxfKEvIax5+E
xSZMV/G3DWD5xsgrQLxacIdTyoWLc/33tMHUb5bGvruQLX5DzlE3w2Umnym5mNvI
Nv/CTgravt6jB3yik5+ZCtXUzHNsLlD7OIgLh4gQTDmkQ41WhQRBVvhGW3cINN0G
wDPMsuBQjDlFL1BVH3O7uBIxMr2MVSKAlXjaBYXncLy3rKsjNVrEqPmmSatcKf0o
pZJ5Mh/Uk2ezCirLy1mFb2mSTlU6gLWpuiG0GYbrOuFniaynOXTIjw4oNMKYoLUZ
WF+HnKCicbFQb79mzvW7q13mKSyFc6HgLMloG2AJW5cyUaAYgivSVuz0XcZFPhzA
AF95lhfigUJIF7KcJ6vZb4FpAsSZhGNoUTQKwAOwba2joPX5ad44MmckP7uKxTch
C4W7eEgDChz3fP8jxm3RWKViYbzpzJU4fLirbqRRgZTWLepAs8YXGcscQ4TKE+EI
qNBTwNUSZdABh9hcubNaMfO5SfX2wl3VfURiRM+MjJ2lN5GLU+8sIdL8a/uBSLlp
yj6xd3ZKhW/Ee9rWoiu0IIJiZWeCE5mVsv9gORZWA1v4DetIki10TxV4u1IBnE3y
cv2ZBkMVeMK2Uh1oTIHxD78rdwAHq8r0Yd2oWm9iAZ7MI8GSrOa0lczaUtfkIipx
PsdlqQ4rZMuGXmYwuDGLHlBXyUAbN84xO8t7k1byfadlqNEwmUPwWI+XNNZYG0uM
SGXoioHmDlVqg5P5IeZVM+dqZ82jzDzaK1mGsqlixxbSTnE7WKZCUz25QMQiYJFr
C6FcXRRyKbuchAFqIG4YTbFHfriHNq7GzXX3SlT7yAkEII43yiR6LUL5eMuhTnZm
RwN3ugppVtsXrHIrPjnUzY+GERTkZZjXkIxhlQgCmOJjgX1sfA2GrNyGjnmXDSey
qakROWQyQLD0NePEzm6mqEdaKw1Yi6MEArdBCdpmoFV8z3t7VQfLZEf0aCaLIzRc
lr0CPtFEM0/QgDeZWALjHOxOLv4dwtIgBhhsDgAAACwFglHQxoACmwwioQYnXIvq
gzxd6rU4JpOBsSDrwAK4vKnBnfiHQMlCND8UYgAAAABhtSCBLeFmUpjLyhifcBPZ
XlhDZJkQ9Bfh3wS4/OgNxJ6syadG+iSemdi2MfC3TKNgzbDY4HREuGMlzpnz8hry
NZv0Hn9ymWTDnQou3EDsBUSRhOn/0vcW9HmHAPKJ7VwEbCh44b2+HQdwg0/pnP7G
hs1JeNIt5u0mL9EKcCzaCmOfl9YIgynqHB7FKLUYYkbGdUguAKW0iSqlMHQINQsx
mNNZ4kxpGbRG3dGJcC6AxIIDbXNDiAttcBh1P8RxN8pIljyNXZt94VFpukQExKGM
H/7nkHviXDuFhzgZgpPxiiAppMVy2WxAgSMQJ6i6EFrwTwy3UfPeFmWeaZ9wcUNK
UeXua7vZJfMmSrdDVno1fOkR3+INuBLRL7JgKIHQ+OtsapQe6NQLZZo3AxoZIlsg
F4g/JSAOxNCNjV2Lvc35BRA192Yz+2Vy/fQzzrOXNZH0uwgwrC+l6NBDY2cB9j9N
qtv+FW+w8NM3Qxsednv1o7KyV+/mPYx+j3hEyqOlqlolJBW/8i10qKvambQv3670
pgZ4YGr5xPsZP0mQDtbFckaUoh3WVcJd0+ezaVb8lxvMVcRGlip7yi9ij9tfqDQJ
mh8V6DcobtIg2MVShMiP+6JDw6aY1zK7SDLh7UazHeC1ANgBac6QX2z08CZVlZo4
Qv4dhPzYFOV+HVf1ZdZq5ySK7hZZU7N/C2THSsCYcQz+Urbw5J3kyGzOsqvZ7SGp
WqgJAa7hegGUP2UD9tbcGEOfVLUON4lZEjZCU6St9Dnnt3rGQbrQVBluvifIHtzT
VhHVmab2De6ItYrd9XdtL350nE7DNmHif/IlJoZ85adYIYsSsupc0b4iyevbGyIm
sDubCfvFvkK38RQPPAn42EqOnABHePO7f2zg4gzXg+rZQ5REIZu0vGDUmvyAh8GN
SjavcO9OZVA9nQAIYjlrXXF9sJneWNszvog6RdrDVSvNHS3guVplxeJ83CeaIB8Z
OxjdSjLlAV1nyjv78K6AtF6YfiiXnpLrLPlrth/hi2eq7XqIYRvzO69pjorvIddh
SlLXDTjyqjZ9Ss5qvl0C922xbFvlmUMuY5n/SjX5I+B6QTTF/LFAE7tp1nvdaZv6
VCFUXkJZA6zMBAbosPcoDvvansgSf0Q26FefcOuP3EcmCvRPLipzgg22UYEmrNqG
y2XoCYuaaqzshF+LMEth2jUkVt+6PMPAwyCeAGS+nH4inC9esO62FwbE9zr58pvJ
o5OHaiLWYAGOxOB2XfgoEhR2y/G+TAgTBELY5LKUxcR9F3mIqol6Op6djLwkFT7F
INXv4812TNnkvbQo4rvcpEmdEdu1t4PuZWqMc+hCSVy0Amrcygy3hds2VC3pDMcj
uy84F0+LWSUmmiOEc2drALr4I7DVqrKTbBw/rWDvf0EOKfQglsv1cA6x223AHnoP
Ip9O+y+o1DPcT9MUn1fq2fCcBPJbuYvJN84VAImK+9bloa06Rd3bkfUyxPHoLC/n
K4bOBFGGOZV9W+qrDdXoEqmDazuJhGKnps2m65w4ZoqrMpkd5EzICvC8e1wk9GpA
NeUQHCDe7c80Mx5wvRcNgBaqqepAhTBjE1Jkrxor9XpG6Bir4BeEadlfIl3JiDNC
pmLdPwFVUWB/R41f3HN9guAMwMIcdSilKJGwjykVKMKtGe0KT2nBWScda0iBqBfk
dr0QclngJ9wVWhwPLgTjo+oL8wVYXs2qwwKTHLGNqfAubBjo0zBRQPes0h+Nfufj
wD2Ci8rKUm/YgVG7E3kR2/wakuQ0cSD9GghHGDtzNvU5rk5ishz7y51HiSzD907o
CoHGxUifTZniaFsRxW39zcr3UaC4L+ea8ZS8xVZVmfmWJFQCN3gEtUXwWgpM+xgt
bUGXGNMqU12p2lTY9L7Mp6accEKCUNrlnUoeWBYAjc++jnGLKcCEInCuf7cjVqX+
XOUx1rZZLEOWBO9nD/E1XRON3XNb0bxrikmykdRCS1DtPFsJ9Bi7K6edcfhBA5Q7
dHvQVUi59Dq0uOObiJoVgdpJ6NEaeK9viuJpN5H6veQFeT91wq599Hf2Wa8uaL7Q
LsYjrohCSzSCLR0toNdmOQu47Ywt2ui/sqzqZWBAr18f7uZ59YrawniZqVLcgPkx
ZdwRKufmMmToMq5QtuFGKX0Wra4dWfeh/CR+GFDlI11ii2bugGVwH9RxbVryJkLQ
+mS6UYczeT1RMqxnWHEyXe0FhEWtghDW4gZrS6YxtDO1vVKieMPLCD38no2h93ce
1kywdXGYE2TnerhDxWn6O7/39x8Vn06HfYxp3h2jKXNpFjELCmUNkWqqUyK8eNsM
ytgJ24mwvrMgobgCieET/fdRnyjA3/1JEmhzsOJh6cwwvAmXr4H3axNRQyli8yqt
o5SGJq8qhNnZHulnjyVSe7XPeXKbSIKRO7jcYnq0CVR0OJK93wLp6mB5XJDBH4id
hrc/ZGatWY3hawPZoIiqS0/hGn8ArF9NRiC1mRqDZGfNCsxGUUiiA0FSJGy+S0oS
9U2uYOjgLZwm7BaDkBECVVIoH8evYHvKjrGCKvzB8MxQPzWAZrHTlb8EZ0OEDg1D
1Xrkoi/h1rnMbLJ56a/Zekmow7t5t86wGZwfKJeIjeqhArwH5qUV2YJzAztKt1qk
5d1NAseGnMX4/0uaglN57TJu1UI4gTeSk+s4CTqForPB9QiJftGxy0dOWV0s4W5u
706fmwKQrhS/k3+3Ju5mjtpuT20vsVTgF6hUU+Ztg4rNWpBBdQEx+g59SIDa8O7t
fpiJVCybG/RhQeQCChR2pyr0t6cC4XlDML1zNPv6ndtc0W6ddFtFUVzMgWHJxjc7
eRxlfekhebcEw3a1/agGFFMHn8xJ+Y1RsaREKGemJXgAA/r+sYzuC6sOx6JOEepl
MKzT6OqIJ+Wuxg3grCqu842k8jhfUtTttjIDzT3Ggy2kSOTu/RcbizsmhpirUrzT
1aqegAUQeSD7Rb8T1GWnaQKn03ekUyWutLtNL7SZnxzC/RWPx4ll5YCKVwdJoOVC
NofbwD5nELn6fevXUL4sgRnXgGCwgK7YhrHcTW1KmoSNzaWI4AoPivJVrJNzV/DV
PE/V2ueL2pGa8W+TaMu12Q3NIDG9gNB6O6mSP76Jom7EmwuuFsfCWHvw+6jd8UdR
O2zAjvzBWWG8y3Z3a9YOL+AThoBEgdDaQVB0+U9u+KweSSzbe+1rDo/SnxbyWlBT
hDz+PxP+1Sc0eDv8crHZXlD62be7inhkJmvuHI34GqDoPe0pGiWUIFOKxmeeuWpw
YzqQ8pRuGUC4TXBXf7XRdTc5tVsrtqcKFC3Vhus5ZRWs/FfwNiOShBAHLmK7WUfv
Owqb4/EeFFZOJz+cshvkywfD+YTHy3ZVTji2vTVcZLC+JlDXhDMsO7eL8128dL3g
vX0NBw/GA9jmn/3EDMYyOEICAMg9tCKXQk1wouyh7eFm7iXsrVQnB7Dxt/VPOdQU
Pvt5jR2OKLLctXS3Yawe8gmcI4FnzCymfTEzW78/Wir5SYQLGuDm1A2iCxTUk7IC
DQKG8ZX74QsPTJPXd8nrzlbfPFYU6iQZKl4EUpIu8Qv2MH4wKOzbwhMK4T4QcsYH
4EkdrbcaUxK07fLxOfTqeOq4rMvNjB9WRuF4tIaiwvQgbooQ2Awqer4APgbi7UPP
dJ15rjh1hWKOkICzwZB4T2YymWBsX4d2/iuCdhdE1U27NHVd0SoI1lelRxbUdXpN
GVEuUoc2WgXT2YZBJ16Dpn6+jR0zNMt6qHtAz8dg7YmoLvPb8Pqrb7pHKccA9PAk
U0CMFNOMmYUmtegDMIh1J8ZC698ydOQq1IgR5uQ2JA3RrkKXdR3eQRYepofZZLaR
sOZQyn+OmwIxPDRGux6s2IN12VOW7cLAa4Jtwu97NZHrhDRf66GCDCnLAy045Ugn
xJHfhki5+uH4+DThhMR2Q3cZOasj8pOiOB+rssQO+laDLyhcNCIvb7E1bNmdLR/d
hOiEHFbyqp+TQvLiH36YPnXzt9a+mQZJoXn0Gak7LNWZirUYAcNEVjA5OFQSnomP
EuoWU+eSdWUuj/5xNKVTi+0lSr1YepFnX0fL9+4tRg5OBaw2fqnUuHXdXKt8u7kI
+ZeDkphyI/eKISreU6nnV0OqXjq/8ROacRrMZVjY5XvAAhL22UPgFQHktd/CWqd4
3BtZRfrwYBZ0yfFLVVqrb3MIYW4O1A1TWjKjUEGavAreeQK+APgbjLEoAvuGubNM
Y/GtGwjoqVFvBlUHBNeRsTZ05miVKZQ40lH3ehncxU1sfUnIYgpZE6E9Ovz3MdT+
qFPM2yQQGIxB6q/zlWw13L7W9SmckhQmkhpigNi+nJiYmdr5J0BN4fs0Lp6tQn4q
N3aZUT6U6AE/OE9RYy/CnGpq4wftqwFrc+7nS32bwd9QxabZX4zGoEWvRe65gRBf
CSPRXPxvBRikYud0vP9w5NQIqVOOgUDgR+m47za3Cff54Nsar/1M9yB8H+uoo+5A
gT1WkQSRIyOMf1o58KtL5uyB4udJ1zBmBQ1J0u2+TrJldG9MwemEy9KgeFgojsEm
O2UTSEnr+6WPGLT/YbrzI5gRYmPL175+9mTIPZFNJAquhHKmatXlTd54/EhUYv+r
GseqGF6cd5sAw5Zq8SIrCqrk18fYYkDuk2nfq7aYwJaNMS8/gsZBFroyxWR7Io06
o70f1UgNG/v+cuGSQpLUmJu2QpNkC/GByUal39bYb1jDnhHUkKDFM4Ivlwv0jNYz
ZUK6V8B6cR+oDey8j46z+lULDzU6C/E0z9zv5GF9HAa3y+JvQhMTglUbvc4KsIJJ
RMMqIyrl7PMbUsJkmezSgT1O/ZYEtDIqhtaeysdFahvdDNaj/tYtmZ6QoUoWgVuE
78TG3g5pGaTCwFjOATSuJ0MRxBnOajza3jz21Qwsoo4FgMAUsOaQmsHPFoyIhw5R
U6QUG8MYuGv49wVBSzPfyJT02QcVdvVuLzfGZibZ2/tqwmNzC60N7GwrT2lcDg5c
FRb6xdJlqRicRyTDWFkXHTC5092jD02bjSc3cLSQyQz4VV5cCZjllaCv5gU3T3G0
iAanOZaWd4ALamWSwTB/LzKSJPGe8se3FAWuwt50d0wcedweVURTeRZNMLRBb8/e
5A65UGByEDb04BBMiAa7CkSZTobuLoIiXhUBW79fsaeVE67g/JHUnHyfaEZ3OVXb
B3hnIjeUzv4s1LSbDD+6dTMxxMq46H/+iZ7JnK+EIf+V6jN72y9uZmIwoaptqep2
mDVjCShkjJ/1/SmRaZ063ZbIyfZeRcWuDfVV3WAk1SP77fJaRQFpiLWc0hX5in3u
zREAf63TKroiZHFJm/CRbQPvCnClyEydvkEuoSHEoHHvg6AWAFI4qtfw+xqltXPi
VdpOkNt0eSUpH7jVjcfLPHLBdPWdS83UEIbB6w0Pc+Xfby6oQRclkPr/BFNVe7i9
+/jdOrNrwg7FuVnvUexFdZlGwJhc1C2V7iW5ghya21LRb00T5LdrHYl/gYSQQs/k
c4mdJckpZ+hlpyxTsWDIP94vec2Yy/kXJzGeRUs9iy5CAM3t7wL9sKhvioPk6LpT
Mp5v9C3np3jt7rhxS9jZVy8D+9Kwpbr+NxCWKHoHmE7r1itAJ7jQGVv84YKi30gE
0xjNAT8jj05sisW9RDeGBgQV5KrcZ1HpR5HqR7Gy6P9mCCbAuaSGjoJBUZa2VEVX
WYlzvPhKzCycFCKEK5fG4yj9z7w0JEigoXqXSdwSg+lhTng2q47PNp61OGPXMZwJ
b9uwgjkqZO/VwtMUgZyh6hEixNkdhihygK/FVBl2NyHrQAfIqad7SBb1PI5/iBrS
gNDQ/jKe6Ak4/0lPQbUvWxHjmUv7qk2rHpwtdhDkctJZ9/YrLe6QD54QVsaRsUxr
d4YQV0m1gUKppkeIS+JDp13kMs4Mq7Q163I2NcD2M8qkjowtVUwD8lu2JDpuNKhG
cgA4lvChfoWWdQ6fisAwUbahxFDehl7KRBa77rjohdOgf5AHWtlcuxhCXpqdxpzj
LpD58mlo840dt6jJGqTpPGJc/BiszMKbBbqoZ6zYOc55PTeWkeF3v7XP+JPvZdzg
ADJrZ4aLOW6JVz9I3q8iHH3UqCkAl2OvAvy47XrvScy6Qx2gQYBOUlar1ExpnBij
MwACE/KfKPyA7wHRfqsslvBZuWnsFY+ekcP+tS62qD495ucwkwVI5PHeF5QtXXUq
ugcLQxDCV4ITuENz1Q1QEZrIm5dqQVBsja27+BEwUVartr2/9TQ2eAcPEhUjJjZA
ciJNV3N0ip3Q+hghMaGtwtEROnW6w8rvCg0WGlhZW2V1iI6cuc7Z/wAAAAAAAAAA
BxATHCUsM0M=
-----END PGP PUBLIC KEY BLOCK-----

A.3.3. Encrypted and Signed Message

Here is a signed message "Testing\n" encrypted to the certificate Appendix A.3.2 and signed by the secret key Appendix A.3.1:

  • A v6 PKESK

  • A v2 SEIPD

The hex-encoded mlkemKeyShare input to multiKeyCombine is 98d3b185ced0cb4fbdb26e1d1a19a79c98afb1586d72947b5877162b89f6af3f.

The hex-encoded ecdhKeyShare input to multiKeyCombine is a09c74f0d55eefbecdbc8a7cdf5a645d6bd1f6630f75ddd9958c25a6bc9d5bd8b9d2f393e98468ff9c267033f14034137ddf07a6fcf49824f3b9d1b97907d77a.

The hex-encoded output of multiKeyCombine is 3bee730ccdc5ab30c1eef9c77c9d1ccd1b2489e3a23ac2b341f7283c5d27b673.

The hex-encoded session key is 3d14b7f9140091c17ff30c3215284a9dbb7e699633f5d3edf02dba4dcdbd5c6e.

-----BEGIN PGP MESSAGE-----

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
blJ0gqdnPik2He+PKxP6lKHLdfYz3Mws
-----END PGP MESSAGE-----

Acknowledgments

Thanks to Daniel Huigens and Evangelos Karatsiolis for the early review and feedback on this document.

Authors' Addresses

Stavros Kousidis
BSI
Germany
Johannes Roth
MTG AG
Germany
Falko Strenzke
MTG AG
Germany
Aron Wussler
Proton AG
Switzerland