RFC 9180 - Hybrid Public Key Encryption
Published: February 2022
Category: Informational
Authors: R. Barnes (Cisco), K. Bhargavan, B. Lipp (Inria), C. Wood (Cloudflare)
Abstract
This document describes a scheme for hybrid public key encryption (HPKE). This scheme provides a variant of public key encryption of arbitrary-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. We provide instantiations of the scheme using widely used and efficient primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key agreement, HMAC-based key derivation function (HKDF), and SHA2.
This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.
Status of This Memo
This document is not an Internet Standards Track specification; it is published for informational purposes.
This document is a product of the Internet Research Task Force (IRTF). The IRTF publishes the results of Internet-related research and development activities. These results might not be suitable for deployment. This RFC represents the consensus of the Crypto Forum Research Group of the Internet Research Task Force (IRTF). Documents approved for publication by the IRSG are not candidates for any level of Internet Standard; see Section 2 of RFC 7841.
Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc9180.
Copyright Notice
Copyright (c) 2022 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.
Contents
- 1. Introduction
- 2. Requirements Notation
- 3. Notation
- 4. Cryptographic Dependencies
- 5. Hybrid Public Key Encryption
- 6. Single-Shot APIs
- 7. Algorithm Identifiers
- 8. API Considerations
- 9. Security Considerations
- 10. Message Encoding
- 11. IANA Considerations
- 12. References
- Appendix A. Test Vectors
- A.1 DHKEM(X25519, HKDF-SHA256), HKDF-SHA256, AES-128-GCM
- A.2 DHKEM(X25519, HKDF-SHA256), HKDF-SHA256, ChaCha20Poly1305
- A.3 DHKEM(P-256, HKDF-SHA256), HKDF-SHA256, AES-128-GCM
- A.4 DHKEM(P-256, HKDF-SHA256), HKDF-SHA512, AES-128-GCM
- A.5 DHKEM(P-256, HKDF-SHA256), HKDF-SHA256, ChaCha20Poly1305
- A.6 DHKEM(P-521, HKDF-SHA512), HKDF-SHA512, AES-256-GCM
- A.7 DHKEM(X25519, HKDF-SHA256), HKDF-SHA256, Export-Only AEAD
- Acknowledgements
- Authors' Addresses