Le chiffrement asymétrique (ou cryptographie à clé publique) repose sur une paire de clés mathématiquement liées : une clé publique distribuable librement et une clé privée gardée secrète. Ce qui est chiffré avec la clé publique ne peut être déchiffré qu'avec la clé privée correspondante (et inversement pour les signatures). Inventé en 1976 par Whitfield Diffie et Martin Hellman puis concrétisé par RSA en 1977 (Rivest, Shamir, Adleman), il résout le problème historique de la cryptographie symétrique : comment échanger une clé secrète sans canal sécurisé préalable. En 2026, trois familles d'algorithmes asymétriques dominent : RSA (encore présent mais déprécié pour nouveaux projets, RSA-2048 minimum), ECC (Elliptic Curve Cryptography avec Curve25519/Ed25519/X25519 dominante, secp256r1/P-256 en environnement FIPS), et post-quantum cryptography (PQC) avec ML-KEM (FIPS 203, anciennement Kyber, août 2024) et ML-DSA (FIPS 204, anciennement Dilithium) pour résister aux ordinateurs quantiques futurs. Cet article détaille le principe sans plonger dans les mathématiques avancées, compare les 3 algorithmes dominants 2026 avec tailles de clés et performances, présente les cas d'usage (TLS handshake, signatures Sigstore, échange de clés Signal), explique la migration RSA → ECC en cours, analyse la transition vers PQC (hybrides X25519MLKEM768 déployés par Chrome et Cloudflare depuis 2024) et liste les pièges fréquents avec CVE historiques marquants.
Principe : la paire de clés
L'idée révolutionnaire du chiffrement asymétrique est d'utiliser deux clés mathématiquement liées avec deux propriétés.
Propriété 1 — Asymétrie fonctionnelle : ce qui est chiffré avec la clé publique ne peut être déchiffré qu'avec la clé privée correspondante. La clé publique permet de chiffrer mais pas de déchiffrer.
Propriété 2 — Difficulté calculatoire : déduire la clé privée à partir de la clé publique seule est calculatoirement infaisable (avec les ordinateurs classiques actuels).
Représentation simplifiée
┌────────────────┐
│ Bob (récepteur)│
│ Clé privée: 🔑 │
│ Clé publique: 🔓│
└────────────────┘
│
│ Bob publie sa clé publique 🔓
│ partout (PKI, profile GitHub, etc.)
▼
┌──────────────────────────────────┐
│ Alice (émettrice) │
│ Récupère 🔓 de Bob │
│ │
│ Message clair: │
│ "Hello Bob" │
│ │ │
│ ▼ │
│ Chiffrement avec 🔓 de Bob : │
│ "Hello Bob" + 🔓 │
│ │ │
│ ▼ │
│ Ciphertext (visible Internet) : │
│ "x9YbA3kNc..." │
└──────────────────────────────────┘
│
│ Internet (canal non sécurisé)
▼
┌──────────────────────────────────┐
│ Bob reçoit ciphertext │
│ "x9YbA3kNc..." │
│ │ │
│ ▼ │
│ Déchiffrement avec 🔑 (privée) : │
│ "Hello Bob" │
└──────────────────────────────────┘L'attaquant qui intercepte le ciphertext ne peut pas le déchiffrer même s'il connaît la clé publique 🔓 de Bob.
Trois usages distincts
Le chiffrement asymétrique sert trois fonctions cryptographiques distinctes en pratique.
| Usage | Mécanique | Exemple concret |
|---|---|---|
| Confidentialité | Chiffrer avec clé publique destinataire | Échange de clé symétrique TLS |
| Authentification (signature) | Signer avec clé privée, vérifier avec clé publique | Signature artefact Sigstore Cosign |
| Échange de clé | Diffie-Hellman pour dériver secret partagé | TLS 1.3 X25519 handshake |
En pratique 2026, le chiffrement asymétrique est rarement utilisé pour chiffrer directement des données (lent), mais pour échanger une clé symétrique qui chiffrera les données (chiffrement hybride). Pattern dominant dans TLS, Signal, OpenPGP.
Les 3 familles d'algorithmes 2026
RSA (Rivest-Shamir-Adleman, 1977)
Premier algorithme asymétrique pratique. Sécurité basée sur la difficulté de factoriser de grands nombres premiers (problème RSA).
Tailles de clés 2026 :
| Taille | Statut 2026 | Usage |
|---|---|---|
| RSA-1024 | Strictement déprécié depuis 2014 | Migrer immédiatement |
| RSA-2048 | Acceptable jusque ~2030 | Standard legacy maintenu |
| RSA-3072 | Recommandé minimum nouveau projet RSA | Compatibilité ANSSI |
| RSA-4096 | Sécurisé long terme classique | Très rare en pratique |
Caractéristiques :
- Bien compris, mature (50 ans), implémentations partout.
- Performance médiocre : RSA-2048 sign environ 10 ms (100 ops/sec), RSA-3072 environ 30 ms.
- Tailles de clés et signatures volumineuses (256-512 octets).
- Sensible à de nombreuses attaques d'implémentation (Bleichenbacher, padding oracle, fault attacks).
Quand utiliser RSA en 2026 :
- Compatibilité legacy obligatoire (intégration ancien partenaire, ancien format).
- Certificats X.509 d'autorités de certification racines (souvent RSA-4096 historique).
- Migration progressive vers ECC.
Quand éviter RSA :
- Nouveau projet où ECC est supportée par toutes les parties.
- Contexte performance critique (millions d'opérations crypto par seconde).
- Tout signé pour stockage long terme (taille importante).
ECC (Elliptic Curve Cryptography, ~2000+)
Famille basée sur le problème du logarithme discret sur courbes elliptiques. Inventée 1985 (Koblitz, Miller), déployée en pratique depuis 2000+.
Variantes dominantes 2026 :
| Variante | Usage | Standardisation | Performance |
|---|---|---|---|
| Curve25519 (Bernstein 2006) | ECDH (X25519) | RFC 7748 | Excellente |
| Ed25519 (Bernstein et al. 2011) | Signatures (EdDSA) | RFC 8032 | Excellente |
| Curve448 | ECDH (X448), grande sécurité | RFC 7748 | Bonne |
| Ed448 | Signatures, grande sécurité | RFC 8032 | Bonne |
| secp256r1 (NIST P-256) | ECDH ou ECDSA | NIST FIPS 186-5 | Excellente |
| secp384r1 (NIST P-384) | ECDH ou ECDSA | NIST FIPS 186-5 | Bonne |
| secp521r1 (NIST P-521) | ECDH ou ECDSA, grande sécurité | NIST FIPS 186-5 | Moyenne |
Tailles de clés ECC vs RSA pour sécurité équivalente :
| Niveau sécurité | RSA | ECC |
|---|---|---|
| 112 bits (= AES-112) | RSA-2048 | secp224r1 |
| 128 bits (= AES-128) | RSA-3072 | secp256r1 ou Curve25519 |
| 192 bits (= AES-192) | RSA-7680 | secp384r1 ou Curve448 |
| 256 bits (= AES-256) | RSA-15360 | secp521r1 ou Ed448 |
ECC offre la même sécurité avec des clés ~10x plus petites que RSA. Performance également supérieure (5-10x sur signatures, 3-5x sur échange de clé).
Post-Quantum Cryptography (PQC, NIST FIPS 2024)
Nouvelle famille résistante aux ordinateurs quantiques (qui pourraient casser RSA et ECC via l'algorithme de Shor). Standardisée par NIST en août 2024.
Standards NIST FIPS publiés août 2024 :
| Standard | Algorithme | Usage | Successeur de |
|---|---|---|---|
| FIPS 203 | ML-KEM (anciennement Kyber) | Key encapsulation, échange de clé | RSA encryption, ECDH |
| FIPS 204 | ML-DSA (anciennement Dilithium) | Signatures | RSA signatures, ECDSA, EdDSA |
| FIPS 205 | SLH-DSA (anciennement SPHINCS+) | Signatures hash-based, fallback | Backup conservateur |
| FIPS 206 (draft) | FN-DSA (anciennement Falcon) | Signatures compactes | Optimisation taille |
ML-KEM (anciennement CRYSTALS-Kyber) est l'équivalent post-quantum de l'échange de clé Diffie-Hellman. Trois niveaux : ML-KEM-512 (sécurité ~AES-128), ML-KEM-768 (~AES-192, recommandé en 2026), ML-KEM-1024 (~AES-256).
ML-DSA (anciennement CRYSTALS-Dilithium) est l'équivalent post-quantum de la signature numérique. ML-DSA-44, -65, -87 selon niveau sécurité.
Adoption en cours 2024-2026 :
- TLS 1.3 hybrides : X25519MLKEM768 (combinaison classique + post-quantum) déployé par Google Chrome depuis avril 2024, Cloudflare depuis octobre 2024.
- OpenSSH : ML-KEM hybride disponible depuis OpenSSH 9.9 (septembre 2024).
- OpenSSL : support natif FIPS 203/204/205 depuis OpenSSL 3.5.
- AWS : KMS post-quantum disponible 2024-2025.
- Cloudflare : WARP et Cloudflare Tunnel post-quantum hybrides 2024+.
Stratégie hybride 2026 : combiner classique (X25519) + post-quantum (ML-KEM-768) pour avoir la sécurité du plus fort des deux, en cas de faille découverte sur l'un ou l'autre.
Cas d'usage en 2026
Trois patterns dominants en pratique applicative.
Cas 1 — TLS 1.3 handshake
Le cas d'usage le plus déployé. Chaque connexion HTTPS utilise asymétrique pour échanger une clé symétrique.
TLS 1.3 handshake simplifié :
1. Client envoie ClientHello avec :
- Liste cipher suites supportées
- Key share : clé éphémère (X25519 ou ECDH P-256)
- Hybride 2026 : X25519MLKEM768 key share
2. Serveur répond ServerHello avec :
- Cipher suite choisi (par exemple TLS_AES_256_GCM_SHA384)
- Key share : clé éphémère serveur
- Certificat X.509 avec clé publique RSA ou ECDSA
3. Client vérifie certificat :
- Validation chaîne PKI jusqu'à CA racine
- Vérification signature avec clé publique CA
4. Échange de clé Diffie-Hellman :
- ECDHE-X25519 entre les key shares
- Production d'un secret partagé
5. Dérivation des clés symétriques :
- HKDF-Expand-Label dérive : client_write_key, server_write_key, etc.
6. Communication chiffrée :
- AES-256-GCM (ou ChaCha20-Poly1305) avec les clés dérivéesECDH X25519 est utilisé une seule fois par session (handshake), AES-256-GCM est utilisé pour tous les bytes ensuite.
Cas 2 — Signatures Sigstore Cosign
Signature d'artefacts container et binaires.
# Sigstore Cosign : signature keyless avec OIDC
# Clé éphémère générée à chaque signature, certificat court-lived (10 min)
# par Fulcio, signature inscrite dans Rekor (transparency log)
# Génère keypair éphémère + signe artefact
cosign sign --yes my-registry.example.test/app:v1.2.3
# Sous le capot :
# 1. Génération keypair Ed25519 ou ECDSA P-256 éphémère
# 2. OIDC token utilisé pour s'authentifier auprès de Fulcio
# 3. Fulcio émet certificat X.509 avec clé publique éphémère
# 4. Signature de l'artefact avec clé privée éphémère
# 5. Inscription dans Rekor transparency log
# 6. Clé privée détruite immédiatement (keyless)
# Vérification côté consommateur
cosign verify --certificate-identity-regexp='...' \
--certificate-oidc-issuer='https://token.actions.githubusercontent.com' \
my-registry.example.test/app:v1.2.3Pattern : pas de gestion de clés privées long terme, identité OIDC + certificats éphémères + transparency log.
Cas 3 — Échange de clé Signal Protocol
Application messaging end-to-end. Pattern X3DH (Extended Triple Diffie-Hellman) avec X25519.
Signal Protocol simplifié :
1. Alice a 3 paires X25519 :
- Identity Key (IK_A, long-terme)
- Signed Pre-Key (SPK_A, moyen-terme)
- One-Time Pre-Key (OPK_A, éphémère)
2. Bob veut envoyer message à Alice :
- Récupère IK_A, SPK_A, OPK_A depuis serveur
- Vérifie signature SPK_A avec IK_A
- Génère sa clé éphémère EK_B
3. Triple ECDH X3DH :
- DH1 = ECDH(IK_B, SPK_A)
- DH2 = ECDH(EK_B, IK_A)
- DH3 = ECDH(EK_B, SPK_A)
- DH4 = ECDH(EK_B, OPK_A)
- Master secret = HKDF(DH1 || DH2 || DH3 || DH4)
4. Double Ratchet pour forward secrecy :
- Chaque message a une clé symétrique unique dérivée
- Compromission clé n'expose pas messages passés ni futursAdopté par Signal, WhatsApp, Facebook Messenger, Skype. X25519 partout.
Performance comparée
Benchmarks indicatifs 2026 sur CPU moderne (Intel Xeon ou Apple M3, single thread).
| Opération | RSA-2048 | RSA-3072 | ECDSA P-256 | Ed25519 | X25519 ECDH | ML-KEM-768 |
|---|---|---|---|---|---|---|
| Sign | 100 ops/sec | 30 ops/sec | 8000 ops/sec | 20000 ops/sec | n/a | n/a |
| Verify | 4000 ops/sec | 2000 ops/sec | 4000 ops/sec | 7000 ops/sec | n/a | n/a |
| Key gen | 1 op/sec | 0.3 op/sec | 5000 ops/sec | 25000 ops/sec | 30000 ops/sec | 35000 ops/sec |
| Encapsulate / Encrypt | 5000 ops/sec | 2000 ops/sec | n/a | n/a | 15000 ops/sec | 50000 ops/sec |
| Decapsulate / Decrypt | 80 ops/sec | 25 ops/sec | n/a | n/a | 15000 ops/sec | 30000 ops/sec |
Lectures clés :
- ECC est 10-200x plus rapide que RSA selon l'opération.
- ML-KEM est compétitif voire plus rapide que ECC sur les opérations clé-encapsulation.
- Pour APIs haute charge : Ed25519/X25519 par défaut, ML-KEM hybride en 2026+.
Migration RSA vers ECC en cours
La migration RSA → ECC, démarrée vers 2010-2015, s'accélère 2020-2026.
État de l'adoption fin 2024
Selon les statistiques Cloudflare, Let's Encrypt, et autres :
- TLS handshakes Internet : ECC dominante (~65 %), RSA en déclin.
- Certificats Let's Encrypt : ECDSA P-256 en croissance forte (~40 %), RSA-2048 décroissant.
- SSH host keys : Ed25519 dominante en nouveaux déploiements (~70 %), RSA legacy.
- Code signing GitHub : Ed25519 supporté depuis 2022.
Migration pratique
Pour migrer RSA → ECC sur votre infrastructure :
# Génération nouvelle paire Ed25519 (signature ou SSH)
ssh-keygen -t ed25519 -C "your_email@example.test" -f ~/.ssh/id_ed25519_new
# Génération nouvelle paire ECDSA P-256 pour certificat TLS
openssl ecparam -genkey -name prime256v1 -out ec-key.pem
openssl req -new -key ec-key.pem -out ec-req.csr
# Transition coexistence : maintenir RSA + ECC en parallèle
# Serveur web peut servir multiple certificats selon SNI/cipher suite
# nginx exemple :
ssl_certificate /etc/nginx/ssl/cert-rsa.pem;
ssl_certificate_key /etc/nginx/ssl/key-rsa.pem;
ssl_certificate /etc/nginx/ssl/cert-ec.pem;
ssl_certificate_key /etc/nginx/ssl/key-ec.pem;Migration coexistence : maintenir RSA + ECC en parallèle pendant 12-24 mois pour permettre clients legacy de migrer.
Migration vers post-quantum
Stratégie de transition recommandée.
Stratégie hybride
Combiner classique (X25519) + post-quantum (ML-KEM-768) :
- Si l'algorithme classique tombe : on est protégé par PQ.
- Si l'algorithme PQ tombe (faiblesse découverte) : on est protégé par classique.
- Coût : un peu plus de bande passante (PQ keys plus grandes), performance acceptable.
TLS 1.3 hybrid X25519MLKEM768 :
- Key share = X25519 public key (32 octets) + ML-KEM-768 public key (1184 octets)
- Total ~1216 octets vs 32 octets pour X25519 seul
- Acceptable bande passante en 2026 (web haut débit)Calendrier de migration recommandé
| Période | Action |
|---|---|
| 2024-2025 | Inventaire complet de la crypto utilisée. Identifier les zones à migrer. |
| 2025-2026 | Démarrer hybrides X25519MLKEM768 sur TLS public-facing. |
| 2026-2027 | Étendre PQ aux microservices internes, signatures avec ML-DSA. |
| 2027-2028 | PQ pure (sans hybride) pour nouveaux projets. |
| 2028-2030 | Déprécier hybrides au profit de PQ pure standard. |
| 2030-2035 | Migration complète tous secteurs critiques. |
ANSSI publie un guide annuel "Avis ANSSI sur la migration vers la cryptographie post-quantique" depuis 2022.
Pièges fréquents
Six erreurs courantes en chiffrement asymétrique.
Piège 1 — Réutiliser la même paire de clés pour chiffrement et signature
Mathématiquement possible avec RSA, mais cryptographiquement dangereux. Une attaque sur l'usage chiffrement peut compromettre la signature et vice versa. Toujours utiliser deux paires distinctes : une pour chiffrement, une pour signature.
Piège 2 — Padding oracle (RSA PKCS#1 v1.5)
RSA PKCS#1 v1.5 est vulnérable à l'attaque Bleichenbacher (1998, encore exploitée 2024 dans CVE-2023-50387 KeyTrap variants). Toujours utiliser RSA-OAEP pour chiffrement, RSA-PSS pour signatures. Mieux : éviter RSA pour nouveaux projets, utiliser ECC.
Piège 3 — Génération de clés depuis PRNG faible
Une clé asymétrique générée depuis un PRNG prédictible permet à l'attaquant de reproduire la clé. Toujours utiliser CSPRNG : secrets Python, crypto.randomBytes Node, crypto/rand Go. Sur systèmes embarqués, attention aux entropies faibles au boot.
Piège 4 — Stockage de clés privées en clair
La clé privée doit être protégée comme un secret de plus haute valeur. Patterns acceptables : passphrase forte sur clé privée, vault (HashiCorp Vault, AWS KMS), HSM hardware (YubiHSM, AWS CloudHSM, Azure Dedicated HSM).
Piège 5 — Pas de rotation des clés
Clé privée utilisée 10 ans = exposition cumulative. Rotation périodique (annuelle minimum pour clés long-terme, automatique avec courte durée pour TLS). Sigstore Cosign utilise des clés éphémères 10 minutes : pas de rotation à gérer.
Piège 6 — Implémentation maison
"Don't roll your own crypto" reste l'erreur la plus dommageable. Toujours utiliser bibliothèques de haut niveau maintenues : libsodium, BoringSSL, OpenSSL 3.x, AWS-LC.
CVE crypto historiques marquants
Cinq incidents emblématiques à connaître.
CVE-2014-0160 Heartbleed (avril 2014, OpenSSL)
Buffer over-read dans extension TLS heartbeat permettant à l'attaquant de lire jusqu'à 64 KB de mémoire serveur, exposant clés privées RSA, mots de passe, données utilisateur. Estimé 17 % du web vulnérable au moment de la disclosure. Patch immédiat partout. Conséquence durable : audits crypto plus rigoureux, projet OpenSSL réformé.
CVE-2017-15361 ROCA (octobre 2017, Infineon TPM)
Faiblesse dans la génération de clés RSA par bibliothèques RSALib d'Infineon (utilisées dans des millions de TPM, smart cards, Yubikey 4 series). Permet de factoriser les clés RSA-2048 en quelques heures de calcul (vs millions d'années sécurité théorique). Impact massif : cartes d'identité estoniennes, slovaques (760 000 cartes affectées), Yubikey 4 series rappelées.
CVE-2020-1968 Raccoon (septembre 2020, TLS 1.2)
Attaque timing sur TLS 1.2 utilisant Diffie-Hellman non éphémère. Permet de récupérer le secret partagé via mesures temporelles précises. Impact limité (TLS 1.2 DH non-éphémère peu déployé). Renforce le mouvement vers TLS 1.3 + ECDHE.
CVE-2023-50387 KeyTrap (février 2024, DNSSEC)
Vulnérabilité dans DNSSEC : un attaquant peut envoyer des messages crafted qui forcent les resolvers à effectuer des calculs cryptographiques excessifs, causant DoS. Tous les principaux resolvers (BIND, Unbound, PowerDNS, Knot) impactés.
CVE-2024-3596 Blast-RADIUS (juillet 2024, RADIUS protocol)
MD5 collision attack sur RADIUS Access-Request, permettant authentication bypass. RADIUS utilise encore MD5 dans son design protocole, exploité 35 ans après MD5 cassé. Impact : équipements réseau, VPN d'entreprise. Mitigation : Message-Authenticator obligatoire, migration vers RADIUS over TLS (RadSec).
Outils et bibliothèques 2026
Stack pratique pour implémenter chiffrement asymétrique.
Bibliothèques de référence
| Bibliothèque | Niveau | Particularité |
|---|---|---|
| libsodium | Haut niveau | API simple, défaults sûrs, multi-langage. Recommandée par défaut |
| BoringSSL | Bas niveau | Fork OpenSSL par Google, qualité supérieure |
| OpenSSL 3.x | Bas niveau | Standard, support FIPS 203/204/205 depuis 3.5 |
| AWS-LC | Bas niveau | Fork BoringSSL d'AWS, FIPS validated |
| RustCrypto | Pur Rust | Implémentations Rust audited, zero unsafe |
| Tink (Google) | Haut niveau | Multi-langage, opinions sûres, défaults strict |
| age (open source) | Outil | Chiffrement de fichiers simple, X25519 + ChaCha20-Poly1305 |
Recommandations par langage
| Langage | Bibliothèque recommandée 2026 | Notes |
|---|---|---|
| Python | cryptography (PyCA) | Maintenue, sûre, défaults modernes |
| Node.js | @noble/curves ou crypto stdlib | @noble pour ECC pure JS |
| Go | crypto stdlib + golang.org/x/crypto | Excellent stdlib, support PQ croissant |
| Rust | RustCrypto ou ring | Pure Rust audited |
| Java | Bouncy Castle ou JCE | BC pour features avancées |
| .NET | System.Security.Cryptography | stdlib moderne |
Cloud KMS
Pour ne pas gérer les clés privées soi-même :
- AWS KMS : génération + stockage + opérations crypto sans extraction. Support PQ 2024+.
- GCP Cloud KMS : équivalent Google Cloud.
- Azure Key Vault : équivalent Azure.
- HashiCorp Vault Transit : équivalent open source self-hosted.
Pattern recommandé 2026 : génération de clés dans le KMS, signing/decrypt via API du KMS, jamais d'extraction de clé privée.
Points clés à retenir
- Le chiffrement asymétrique repose sur une paire de clés (publique distribuable, privée secrète) avec asymétrie fonctionnelle. Inventé 1976 (Diffie-Hellman), concrétisé 1977 (RSA), évolué avec ECC (2000+) et post-quantum (NIST FIPS 2024).
- Trois familles dominantes 2026 : RSA (legacy, RSA-2048 minimum acceptable jusque 2030), ECC (Curve25519/Ed25519/X25519 dominante, secp256r1 si FIPS), post-quantum (ML-KEM/Kyber FIPS 203, ML-DSA/Dilithium FIPS 204).
- Migration en cours RSA → ECC : ECC offre même sécurité avec clés 10x plus petites et performance 5-10x supérieure. Ed25519 partout en nouveau projet.
- Migration vers post-quantum 2025-2030 : hybrides X25519MLKEM768 déployés par Chrome (avril 2024), Cloudflare (octobre 2024), OpenSSH 9.9 (septembre 2024). Migration immédiate recommandée pour données long-terme sensibles (harvest now decrypt later).
- Règle absolue : "Don't roll your own crypto". Utiliser bibliothèques haut niveau maintenues (libsodium, Tink, RustCrypto, AWS KMS) plutôt qu'implémentations maison. Stocker clés privées dans vault ou KMS, jamais en clair.
Pour aller plus loin
- Qu'est-ce que la cryptographie - vue d'ensemble du domaine incluant symétrique et asymétrique.
- Authentification d'API : les bases - JWT et OAuth utilisent intensivement le chiffrement asymétrique.
- Qu'est-ce que Keycloak - IdP qui gère les clés asymétriques pour signing tokens.
- Sécurité Active Directory - PKI ADCS et certificats X.509 reposent sur RSA et ECC.





