Skip to content

noise: hybrid post-quantum handshake (X25519 + ML-KEM-768)#727

Open
royzah wants to merge 1 commit into
libp2p:masterfrom
royzah:noise-pq-mlkem768-hfs
Open

noise: hybrid post-quantum handshake (X25519 + ML-KEM-768)#727
royzah wants to merge 1 commit into
libp2p:masterfrom
royzah:noise-pq-mlkem768-hfs

Conversation

@royzah

@royzah royzah commented Jul 6, 2026

Copy link
Copy Markdown

Concrete draft for #723, so we have something byte-level to react to instead of an open question.

Additive, separately negotiated handshake that mixes ML-KEM-768 into the XX pattern via Noise HFS. Advertised ahead of /noise, falls back with no flag day. Auth stays classical (identity key signs the static key), only secrecy is hybridized.

Pins the protocol id and suite, defers token/KDF order to Noise HFS. Still open (called out in the doc):

  1. the protocol id string
  2. test vectors so go/js/rust match byte-for-byte
  3. ML-KEM-768 only vs the 512/768/1024 family

Reference impl: libp2p/rust-libp2p#6481 (off-by-default mlkem-hfs). Would love go/js eyes early. cc @jxs @thomaseizinger @mxinden @MarcoPolo @achingbrain

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Triage

Development

Successfully merging this pull request may close these issues.

1 participant