| Internet-Draft | Quantum-Resistant KEMs in Group OSCORE | November 2026 |
| Tiloca | Expires 6 May 2027 | [Page] |
Group communication for the Constrained Application Protocol (CoAP) can be protected end-to-end by using the security protocol Group Object Security for Constrained RESTful Environments (Group OSCORE). The pairwise mode of Group OSCORE provides authenticated encryption of CoAP messages, by means of symmetric keys that two group members establish only among themselves to achieve pairwise secure communication. This document defines the use of quantum-resistant Key Encapsulation Mechanisms (KEMs) as Pairwise Key Agreement Algorithm of Group OSCORE, enabling post-quantum secure derivation of the symmetric keys used in the pairwise mode. The Group Manager facilitates the exchange of KEM public keys and encapsulated KEM shared secrets among group members.¶
This note is to be removed before publishing as an RFC.¶
Discussion of this document takes place on the Constrained RESTful Environments Working Group mailing list (core@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/core/.¶
Source for this draft and an issue tracker can be found at https://gitlab.com/crimson84/draft-tiloca-core-group-oscore-kem.¶
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 6 May 2027.¶
Copyright (c) 2026 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 Constrained Application Protocol (CoAP) [RFC7252] also supports group communication [I-D.ietf-core-groupcomm-bis], e.g., over IP multicast. Building on Object Security for Constrained RESTful Environments (OSCORE) [RFC8613], the security protocol Group Object Security for Constrained RESTful Environments (Group OSCORE) [I-D.ietf-core-oscore-groupcomm] provides end-to-end security of CoAP messages when using group communication for CoAP.¶
An OSCORE group is associated with a Group Manager, i.e., an entity responsible for managing identifiers and keying material in the group and for handling the join process to add group members, among other tasks (see Section 12 of [I-D.ietf-core-oscore-groupcomm]).¶
Group OSCORE provides two ways to protect a CoAP message:¶
The group mode, which achieves group-level data confidentiality and provides source authentication by means of a digital signature. The message sender computes the signature with its own private key and embeds it in the protected CoAP message.¶
The pairwise mode, which achieves pairwise data confidentiality and provides source authentication by means of integrity tags. The message sender performs authenticated encryption of the CoAP message by using a symmetric pairwise key that is exclusively shared with another group member as the intended message recipient.¶
Symmetric pairwise keys are derived from a pairwise shared secret, which in turn is computed from asymmetric keys of the message sender and recipient, ensuring authenticated key agreement.¶
In the event that a Cryptographically Relevant Quantum Computer (CRQC) is constructed, it is relatively simple to adapt the group mode of Group OSCORE to be quantum-resistant. That is, it is sufficient to rely on a quantum-resistant signature algorithm (e.g., ML-DSA [FIPS204][RFC9964]) as the Signature Algorithm used in the group (see Section 2.1.8 of [I-D.ietf-core-oscore-groupcomm]).¶
However, equivalent drop-in replacements are not available for the Pairwise Key Agreement Algorithm (see Section 2.1.10 of [I-D.ietf-core-oscore-groupcomm]), which is used to compute the shared secret from which pairwise keys are derived (see Section 2.5.1 of [I-D.ietf-core-oscore-groupcomm]). In particular, the currently available Pairwise Key Agreement Algorithms are based on a direct Elliptic Curve Diffie-Hellman Static-Static key agreement [NIST-800-56A].¶
At the time of writing, there is no standardized Diffie-Hellman/Non-Interactive Key Exchange (DH/NIKE) that can be used for post-quantum secure establishment of the shared secret, which makes the pairwise mode of Group OSCORE vulnerable to quantum attacks. Moreover, a future quantum-resistant DH/NIKE might not be (immediately) usable as a drop-in replacement for Group OSCORE (see Appendix A).¶
This document defines the use of quantum-resistant Key Encapsulation Mechanisms (KEMs), such as ML-KEM [FIPS203], as Pairwise Key Agreement Algorithm of Group OSCORE. Consequently, it enables the post-quantum secure establishment of the shared secret and thus the post-quantum secure derivation of the symmetric keys used in the pairwise mode of Group OSCORE.¶
The Group Manager facilitates the exchange of KEM public keys and encapsulated KEM shared secrets among group members that perform the KEM-based Pairwise Key Agreement Algorithm.¶
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.¶
Readers are expected to be familiar with the terms and concepts related to CoAP [RFC7252], OSCORE [RFC8613], Group OSCORE [I-D.ietf-core-oscore-groupcomm], and CBOR Object Signing and Encryption (COSE) [RFC9052].¶
In an OSCORE group that uses the pairwise mode and a quantum-resistant KEM as Pairwise Key Agreement Algorithm, the KEM is identified by the Pairwise Key Agreement Algorithm parameter, within the Common Context of the Group OSCORE Security Context (see Section 2.1.10 of [I-D.ietf-core-oscore-groupcomm]).¶
Like for other algorithms used in Group OSCORE, the KEM used as Pairwise Key Agreement Algorithm MUST be one of those defined for COSE and registered at [COSE.Algorithms]. For example, the COSE algorithms ML-KEM-512, ML-KEM-768, and ML-KEM-1024 are being registered by [I-D.ietf-cose-pqc-kem], consistent with the three corresponding parameter sets of the standard ML-KEM [FIPS203].¶
For endpoints that support the pairwise mode and use a quantum-resistant KEM as Pairwise Key Agreement Algorithm, the algorithm ML-KEM-512 defined in [I-D.ietf-cose-pqc-kem] is mandatory to implement.¶
Conventions for using quantum-resistant KEMs within COSE are described in [I-D.ietf-cose-pqc-kem]. When using a quantum-resistant KEM as Pairwise Key Agreement Algorithm in Group OSCORE, the shared secret is computed as the result of the KEM encapsulation function with a KEM public key as input, or as the result of the KEM decapsulation function with a KEM private key and an encapsulated KEM shared secret as input. That is, the computed shared secret corresponds to the initial shared secret SS' in [I-D.ietf-cose-pqc-kem].¶
This section defines how pairwise keys are derived when the Pairwise Key Agreement Algorithm used is a quantum-resistant KEM.¶
Analogous to the construction used by OSCORE in Section 3.2.1 of [RFC8613], the derivation of pairwise keys is aligned with the one defined in Section 2.5.1 of [I-D.ietf-core-oscore-groupcomm], with the difference that two shared secrets are established through the Pairwise Key Agreement Algorithm, and they are separately used to derive a Pairwise Sender Key and the corresponding Pairwise Recipient Key.¶
For a given endpoint, the derivation of the pairwise keys to use between itself and each other endpoint X in the group is as below:¶
Pairwise Sender Key = HKDF(Sender Key, IKM-Sender, info, L)
Pairwise Recipient Key = HKDF(Recipient Key, IKM-Recipient, info, L)
with
IKM-Sender = Sender Auth Cred | Recipient Auth Cred |
Sender Shared Secret
IKM-Recipient = Recipient Auth Cred | Sender Auth Cred |
Recipient Shared Secret
¶
where:¶
The same as defined in Section 2.5.1 of [I-D.ietf-core-oscore-groupcomm] applies for:¶
IKM-Sender is the Input Keying Material (IKM) used in the HKDF for the derivation of the Pairwise Sender Key. IKM-Sender is the byte string concatenation of Sender Auth Cred, Recipient Auth Cred, and the Sender Shared Secret. The authentication credentials Sender Auth Cred and Recipient Auth Cred are binary encoded as defined in Section 2.4 of [I-D.ietf-core-oscore-groupcomm].¶
IKM-Recipient is the IKM used in the HKDF for the derivation of the Pairwise Recipient Key. IKM-Recipient is the byte string concatenation of Recipient Auth Cred, Sender Auth Cred, and the Recipient Shared Secret. The authentication credentials Recipient Auth Cred and Sender Auth Cred are binary encoded as defined in Section 2.4 of [I-D.ietf-core-oscore-groupcomm].¶
The Sender Shared Secret is computed by the endpoint using the endpoint X's KEM public key, and it is associated with the encapsulated KEM shared secret computed by the endpoint and intended to endpoint X. The Sender Shared Secret of the endpoint is equal to the Recipient Shared Secret of endpoint X.¶
The Recipient Shared Secret is computed by the endpoint using the endpoint's own KEM private key and the encapsulated KEM shared secret from endpoint X. The Recipient Shared Secret of the endpoint is equal to the Sender Shared Secret of endpoint X.¶
For what concerns the derivation of Pairwise Keys, a KEM public key associated with the endpoint is used by any and exactly one other endpoint X in the group to compute exactly one Sender Shared Secret. The endpoint computes the same value as its Recipient Shared Secret using its own KEM private key and the encapsulated KEM shared secret from endpoint X.¶
That is, in order to compute its Sender Shared Secret and derive its Pairwise Sender Key, the endpoint has to obtain the endpoint X's KEM public key. Conversely, in order to compute its Recipient Shared Secret and derive its Pairwise Recipient Key, the endpoint has to obtain the encapsulated KEM shared secret from endpoint X.¶
However, KEM public keys and encapsulated KEM shared secrets are not provided within messages that group members directly send to each other. Instead, group members exchange KEM public keys and encapsulated KEM shared secrets via the Group Manager responsible for the group, as defined in Section 5.¶
An endpoint that is a member of an OSCORE group can obtain a new Sender ID from the Group Manager (see Section 2.6.3.1 of [I-D.ietf-core-oscore-groupcomm]). For instance, this can happen when the endpoint requests a new Sender ID from the Group Manager, or when the endpoint requests to re-join the group.¶
In an OSCORE group that uses the pairwise mode and a quantum-resistant KEM as Pairwise Key Agreement Algorithm, an endpoint performs the following actions after it obtains a new Sender ID:¶
The endpoint MUST delete the Pairwise Sender Keys that it stores in its Sender Context, within the Group OSCORE Security Context that it uses in the group (see Section 2 of [I-D.ietf-core-oscore-groupcomm]).¶
The endpoint MUST delete the Recipient Pairwise Keys that it stores in its Recipient Contexts, within the Group OSCORE Security Context that it uses in the group (see Section 2 of [I-D.ietf-core-oscore-groupcomm]).¶
This section defines the operations that the Group Manager performs to facilitate the exchange of KEM public keys and encapsulated KEM shared secrets among group members, when the Pairwise Key Agreement Algorithm used in the group is a quantum-resistant KEM.¶
The following is not relevant for a node that joins the group exclusively as a silent server (see Section 1.1 of [I-D.ietf-core-oscore-groupcomm]), or that does not support or does not intend to use the pairwise mode in the group.¶
There are different ways to perform such supportive operations, depending on the specific realization of Group Manager. For example, when considering the realization of Group Manager specified in [I-D.ietf-ace-key-groupcomm-oscore] and based on the Authentication and Authorization for Constrained Environments (ACE) framework [RFC9200], it is possible to accordingly extend its interface as defined in [I-D.tiloca-ace-oscore-gm-kem].¶
Given an OSCORE group, the following applies.¶
A group member P has to be able to upload its own KEM public keys at the Group Manager. In particular, P can upload a KEM public key at the Group Manager already when joining the group, and then upload other KEM public keys later on as a group member.¶
After generating a KEM public/private key pair, P uploads the KEM public key at the Group Manager. Then, P stores the KEM public key, the corresponding KEM private key, and a SHA-256 hash [SHA-256] of the KEM public key as corresponding identifier.¶
When the Group Manager receives a KEM public key from P, the Group Manager stores the KEM public key as associated with the Sender ID of P in the group. The Group Manager is able to identify P and thereby determine its Sender ID in the group, e.g., by means of the secure communication association shared with P.¶
The Group Manager MUST keep the association between the KEM Public Key and Sender ID of P up-to-date over time, in the event that P changes its Sender ID in the group.¶
The Group Manager is expected to be able to store multiple KEM public keys from the same group member P at any given time, up to a local upper bound. When the group member P is removed from the group, the Group Manager deletes from its local storage any KEM public key of P.¶
A KEM public key of P is intended to be retrieved from the Group Manager and used by any and exactly one other group member.¶
Another group member Q has to be able to retrieve a KEM public key of P from the Group Manager.¶
Q retrieves a KEM public key of P when it wants to send to P a message protected with the pairwise mode and does not have the Pairwise Sender Key required to process the message.¶
In order to retrieve a KEM public key of P from the Group Manager, Q specifies the Sender ID of P to the Group Manager.¶
After the Group Manager provides Q with the KEM public key of P, the Group Manager deletes the KEM public key of P from its local storage.¶
P has to be able to gain knowledge about the number of own KEM public keys that are currently stored at the Group Manager. For example, this can rely on P accessing a dedicated resource hosted by the Group Manager. If such resource is observable [RFC7641], P can use CoAP Observe to subscribe for updates about the resource representation, thereby receiving notifications from the Group Manager.¶
The security considerations from [I-D.ietf-core-oscore-groupcomm] and [I-D.ietf-cose-pqc-kem] hold for this document too. The security considerations for the specific KEM used as Pairwise Key Agreement Algorithm in the Group OSCORE Security Context also apply. Security considerations for ML-KEM are compiled in [I-D.sfluhrer-cfrg-ml-kem-security-considerations].¶
Using a quantum-resistant KEM typically requires a good source of randomness, e.g., in order to generate KEM public/private keys and to compute shared secrets and encapsulated KEM shared secrets. In turn, for endpoints that use the pairwise mode of Group OSCORE with a quantum-resistant KEM as the Pairwise Key Agreement Algorithm, this requires those endpoints to use a cryptographically secure random number generator.¶
In the case that the Pairwise Key Agreement Algorithm used is not quantum-resistant, an adversary equipped with a CRQC is able to derive a shared secret computed by two group members.¶
Consequently, if the adversary leaks the shared secret to a third group member or if the adversary is in control or such third group member, then the same exploitation discussed in Section 14.2 of [I-D.ietf-core-oscore-groupcomm] is possible.¶
That is, the third group member can derive the pairwise keys of the two group members and use those to impersonate either of the two group members to the other, or to decrypt previously stored messages exchanged between those two members and protected with their pairwise keys. Fundamentally, this would break the following security properties that are expected from the pairwise mode (see Section 14.2 of [I-D.ietf-core-oscore-groupcomm]):¶
Symmetric source authentication, as it becomes possible to impersonate either group member when sending a message protected with the pairwise mode.¶
Symmetric pairwise confidentiality, as a message protected with the pairwise mode becomes possible to decrypt also for other group members than the two intended ones.¶
This document has no actions for IANA.¶
The construct defined in this document makes it seamlessly possible to use as Pairwise Key Agreement Algorithm of Group OSCORE also a KEM that builds on a quantum-resistant DH/NIKE, when one is available.¶
For example, assuming that a quantum-resistant equivalent of Elliptic Curve Diffie-Hellman exists, the following would apply:¶
The encapsulated KEM shared secret is the ephemeral Diffie-Hellman public key of the endpoint that computes the shared secret first.¶
The KEM public/private key is the ephemeral Diffie-Hellman public/private key of the endpoint that computes the shared secret last.¶
The ability to build such a KEM to use as Pairwise Key Agreement Algorithm is expected to be useful in the future: Even when a standardized, quantum-resistant DH/NIKE exists and is defined for COSE as registered at [COSE.Algorithms], it might not be (immediately) possible to directly use such DH/NIKE in Group OSCORE.¶
In the particular case where an OSCORE group uses only the pairwise mode, such a DH/NIKE can be directly used as Pairwise Key Agreement Algorithm. Consequently, pairwise keys are derived like originally defined in Section 2.5.1 of [I-D.ietf-core-oscore-groupcomm].¶
Instead, in the case where an OSCORE group uses both the group mode and the pairwise mode, authentication credentials of group members correspond to public/private key pairs to use for signature operations, as per the Signature Algorithm used in the group. Therefore, consistent with the security properties of Group OSCORE, the direct use of such a DH/NIKE requires that all the following conditions are fulfilled:¶
The public/private key pairs associated with group members' authentication credentials can be used for both signature operations and static-static key agreement operations, as per the Signature Algorithm and Pairwise Key Agreement Algorithm used in the group.¶
The use of the same public/private key pair for both signature operations and key agreement operations is proven to be secure for Group OSCORE.¶
Until such conditions are fulfilled, the Pairwise Key Agreement Algorithm used can be a KEM that builds on the quantum-resistant DH/NIKE, with pairwise keys derived as defined in this document.¶
The author sincerely thanks Christian Amsüss and Göran Selander for their feedback and comments.¶
The work on this document has been partly supported by the Sweden's Innovation Agency VINNOVA and the Celtic-Next project CYPRESS.¶