Pas à pas — PQC · Signature hybride
Le labo 5 active localement une politique de vérification stricte. Dans une fédération déployée, un Hub peut épingler la clé PQ annoncée par un pair et refuser que ce pair revienne à une signature classique. Exiger le PQ de tous les pairs relève d’un réglage distinct,
AIMARKET_PQC_REQUIRE=1. La politique couvre les signatures hors chaîne. Les transactions de séquestre sur Base utilisent le schéma de signature de l’EVM.
Pourquoi ce cours
Les signatures portent sur le passé. Un reçu contesté dans des années doit déjà résister à un adversaire quantique. Remplacer Ed25519 par ML-DSA seul casse l'interop aujourd'hui. Le hub AIMarket publie l'hybride : Ed25519 + ML-DSA-65 — LIVE : modelmarket.dev/.well-known/ai-market.json. Jamais présenter du SIM comme LIVE.
Installation
pip install -e ".[dev]"
pip install -e ".[pqc,dev]" # optionnel
pytest -q
COURSE_LANG=fr python labs/lab01_why_hybrid.py
Sans dilithium : Ed25519 se vérifie ; l'enveloppe LIVE s'inspecte ; la signature PQ est marquée skipped — jamais de faux succès.
Modules
| Module | Lab | Idée |
|---|---|---|
| M1 | lab01_why_hybrid |
Pourquoi l'hybride ; LIVE optionnel |
| M2 | lab02_key_identity |
Identité duale ; épingler les deux clés |
| M3 | lab03_sign_receipt |
Signer un reçu |
| M4 | lab04_verify_offline |
Vérifier hors ligne |
| M5 | lab05_hybrid_gate_capstone |
refuse_single_orbit (phase 3) |
Exercices
Remplir # YOUR CODE HERE dans courselib/exercises.py → python labs/run_exercises.py → --certificate "Votre Nom".
Checklist
- [ ] Downgrade sans
require_pqcompris - [ ] Vérif classique hors ligne OK
- [ ] La porte refuse le single-orbit
- [ ] LIVE inspecté sans le nommer SIM