Computational cryptography › Public-key encryption and key exchange › Classical number theory › Elliptic-curve discrete log
PUBLIC-KEY ENCRYPTIONPrimitiveROM

ECIES / HPKE

In plain words

Encrypt to someone's public key: do a one-off key exchange with them, then use fast ordinary encryption.

The idea: Public-key encryption without a special encryption algorithm: the sender makes a throwaway key pair, does a Diffie-Hellman exchange with the recipient's public key on the spot, and uses the shared secret as the key for fast symmetric encryption. The throwaway public key travels with the message, so the recipient can do the same exchange from their side and get the same key.

Why it matters: Used by modern privacy features such as Encrypted Client Hello.

The details

Public-key encryption assembled from Diffie-Hellman plus a key derivation function and symmetric authenticated encryption: make a fresh key pair, do Diffie-Hellman with the recipient's public key, derive a key, encrypt.

HPKE (RFC 9180)[1] standardizes this and is used in Encrypted Client Hello[2], MLS group messaging[3] and Oblivious HTTP[4]. Proofs model the key derivation as a random oracle (ROM).

Rests on

If any of these breaks, this breaks too.

If it falls

If this breaks, these break with it.

Nothing on the map depends on it: it is an end point, something people use directly.

About the tags

ROM
Its security proof treats a hash function as a perfectly random function (the random oracle model). Real hashes aren't random functions, so this is a heuristic. For signatures and encryption no practical attack has exploited it. For multi-round proof systems, see the Fiat-Shamir box.

References

  1. R. Barnes, K. Bhargavan, B. Lipp and C. Wood. Hybrid Public Key Encryption. RFC 9180, 2022. rfc-editor.org/rfc/rfc9180
  2. Eric Rescorla, Kazuho Oku, Nick Sullivan and Christopher A. Wood. TLS Encrypted Client Hello (Internet-Draft draft-ietf-tls-esni). IETF TLS working group, 2018. datatracker.ietf.org/doc/draft-ietf-tls-esni
  3. R. Barnes, B. Beurdouche, R. Robert et al. The Messaging Layer Security (MLS) Protocol. RFC 9420, 2023. rfc-editor.org/rfc/rfc9420
  4. M. Thomson and C. A. Wood. Oblivious HTTP. RFC 9458, 2024. rfc-editor.org/rfc/rfc9458