Implement Post-Quantum Identities (ML-DSA / RFC-0004)
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 5.6k
- Forks
- 1.3k
- Avg merge
- 8h 47m
- Merged PRs (30d)
- 19
Description
Description
Currently, rust-libp2p relies entirely on classical public-key cryptography (Ed25519, Secp256k1, ECDSA, RSA) for peer identity generation and verification. We would like to request support for post-quantum peer identities using ML-DSA (Module-Lattice-based Digital Signature Algorithm), aligned with the upcoming protocol standard.
Motivation
- Quantum Risk: Existing signature schemes are vulnerable to Shor's algorithm. Consensus estimates place the arrival of a Cryptographically Relevant Quantum Computer (CRQC) between 2030 and 2035.
- Long Deployment Lifecycles: Migrating decentralized networks to post-quantum cryptography takes significant time. We need to begin integrating and testing these standards now to ensure readiness before the threat materializes.
- "Harvest Now, Decrypt Later" Threats: As adversaries are already recording network traffic, our overarching PQC strategy requires migrating transport security and identities as early as possible to safeguard current and future communications.
Requirements
- Standard Implementation: Implement support for the ML-DSA (FIPS 204) signature scheme inside libp2p-identity.
- Feature Flagging: Introduce this behind a feature flag initially, allowing developers to test it before the official cross-language specification is fully merged.
Open questions
Upstream Dependencies: Which Rust-based ML-DSA implementation (e.g., via pqcrypto, ring, or another crate) does the maintainer team prefer to use to ensure optimal safety, performance, and WASM compatibility?
Are you planning to do it yourself in a pull request?
Maybe
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the libp2p-identity crate and its existing peer identity schemes, then review ML-DSA in FIPS 204 and the linked protocol standard. Compare Rust implementations such as pqcrypto or ring, including WASM compatibility, and determine how feature flagging should expose the new identity type; done means feature-gated generation and verification support with tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cryptography, networking, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100