multiformats / multiformats/multicodec

Hybrid Post-Quantum primitive codecs

Open
#408 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
383
Forks
221
Avg merge
24d 6h
Merged PRs (30d)
1

Description

The IETF working groups tied to COSE and HPKE are set to expand the use of hybrid PQ primitives that don't yet have a multicodec. Specifically:

https://datatracker.ietf.org/doc/draft-ietf-cose-hpke-pq-pqt/

  • ML-KEM-768 + P-256
  • ML-KEM-768 + X25519
  • ML-KEM-1048 + P-384

https://datatracker.ietf.org/doc/draft-ietf-jose-pq-composite-sigs/

  • ML-DSA-44 + P-256
  • ML-DSA-65 + P-256
  • ML-DSA-87 + P-384
  • ML-DSA-44 + Ed25519
  • ML-DSA-65 + Ed25519
  • ML-DSA-87 + Ed448

It would be sweet if they got a codec, so those could be used with COSE and UCAN without needing to split hybrid keys as two separate did:keys (which has complex ramifications like split UCANs) or using custom codecs (which can break interoperability).

If I understood well, multikey is supposed to help:

https://github.com/cryptidtech/multi-key#supported-key-formats

but per the spec:

https://github.com/cryptidtech/provenance-specifications/blob/main/specifications/multi-key.md

"Comment : A Multi-Key object contains a string that describes the key. This is application specific."

hence my presumed need for a specific codec. (Or perhaps I'm just misunderstanding and I can use that with a did:key?)

Thanks in advance.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the linked COSE/HPKE and JOSE PQ drafts, then compare their hybrid key requirements with the linked Multi-Key specification and existing multicodec table conventions. Determine whether Multi-Key already supports the requested did:key representations. Done means an agreed codec approach for all listed combinations, with interoperability implications documented.

Written by the indexing model from the issue text.

Assessment

Domain
cryptography
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.