01 - Chiffrement symetrique vs asymetrique
Ce que tu vas apprendre
- La différence entre chiffrement symetrique et asymetrique
- Quels algorithmes sont utilises en pratique (AES, RSA, Ed25519)
- Pourquoi on utilise les deux ensemble
- Des commandes
opensslpour experimenter
Prerequisites
- 00 - Introduction : le contexte de cette serie
Le problème de la valise
Imagine que tu veux envoyer un message secret a un ami. Tu le mets dans une valise avec un cadenas. Ton ami a besoin de la clé du cadenas pour ouvrir la valise. Mais comment tu lui envoies la clé sans que quelqu'un l'intercepte ?
C'est le problème fondamental de la cryptographie. Et il a deux solutions.
Chiffrement symetrique : une seule clé pour tout
Le chiffrement symetrique utilise la meme clé pour chiffrer et dechiffrer. C'est le cadenas classique : une clé, un cadenas. Alice et Bob partagent un secret, et ce secret sert dans les deux sens.
L'algorithme standard en 2026, c'est AES (Advanced Encryption Standard). Adopte par le NIST en 2001, il est utilise partout : HTTPS, VPN, chiffrement de disque, messageries. AES-256 utilise une clé de 256 bits, ce qui donne 2^256 combinaisons possibles. Pour te donner une idee, c'est plus que le nombre d'atomes dans l'univers observable.
Tu peux l'essayer directement :
bash# Chiffrer un fichier avec AES-256-CBC
openssl enc -aes-256-cbc -salt -in secret.txt -out secret.enc -pbkdf2
# Dechiffrer
openssl enc -d -aes-256-cbc -in secret.enc -out secret_decrypted.txt -pbkdf2
OpenSSL te demande un mot de passe. Ce mot de passe sert a deriver la clé AES (via PBKDF2). Simple.
Le problème du symetrique ? L'échange de clés. Si Alice et Bob ne se sont jamais rencontres physiquement, comment partagent-ils la clé ? Par email ? C'est pas chiffre. Par SMS ? Encore pire. C'est exactement le problème de la valise.
Chiffrement asymetrique : deux clés, deux rôles
Le chiffrement asymetrique resout ce problème avec une idee geniale : au lieu d'une clé, on en a deux. Une clé publique que tu donnes a tout le monde, et une clé privee que tu gardes pour toi. Ce qui est chiffre avec la clé publique ne peut etre dechiffre qu'avec la clé privee correspondante (et inversement pour la signature).
L'analogie que je préféré : la boîte aux lettres. Tout le monde peut mettre une lettre dans ta boîte (clé publique = fente de la boîte). Mais toi seul as la clé pour l'ouvrir (clé privee).
Les algorithmes asymetriques courants :
RSA : le plus ancien encore en usage, créé en 1977 par Rivest, Shamir et Adleman. Repose sur la difficulte de factoriser de grands nombres premiers. En 2026, on recommande des clés d'au moins 3072 bits (le NIST a déprécié 2048 bits pour les nouvelles applications). C'est costaud, mais lent.
Ed25519 : base sur les courbes elliptiques (Curve25519, conçue par Daniel J. Bernstein en 2006). Cles de 256 bits seulement, mais aussi solide que RSA-3072. Plus rapide, clés plus courtes. C'est mon choix par défaut pour SSH et la signature de commits git.
bash# Generer une paire de cles RSA (demonstration)
openssl genpkey -algorithm RSA -out rsa_private.pem -pkeyopt rsa_keygen_bits:4096
# Extraire la cle publique
openssl pkey -in rsa_private.pem -pubout -out rsa_public.pem
# Chiffrer avec la cle publique
openssl pkeyutl -encrypt -pubin -inkey rsa_public.pem -in secret.txt -out secret_rsa.enc
# Dechiffrer avec la cle privee
openssl pkeyutl -decrypt -inkey rsa_private.pem -in secret_rsa.enc -out secret_decrypted.txt
Pourquoi on utilise les deux ensemble
Le symetrique est rapide (AES chiffre des gigaoctets par seconde). L'asymetrique est lent (RSA chiffre quelques kilo-octets). La solution ? On combine les deux. C'est ce que fait TLS (HTTPS) a chaque connexion :
- Le client et le serveur utilisent l'asymetrique pour s'échanger une clé symetrique temporaire (via un échange Diffie-Hellman ou RSA)
- Ensuite, toute la communication est chiffree en symetrique avec cette clé
Ce système s'appelle le chiffrement hybride. Tu le retrouves dans SSH, TLS, PGP/GPG et a peu pres tout protocole serieux.
Le tableau recapitulatif
| Propriété | Symetrique (AES) | Asymetrique (RSA/Ed25519) |
|---|---|---|
| Nombre de clés | 1 (partagee) | 2 (publique + privee) |
| Vitesse | Tres rapide | Lent |
| Taille de clé typique | 128-256 bits | 2048-4096 bits (RSA) / 256 bits (Ed25519) |
| Problème | Échange de clés | Performance |
| Usage | Chiffrement de donnees en masse | Échange de clés, signature |
En pratique, qu'est-ce que ca change pour toi ?
Quand tu fais ssh user@serveur, les deux types de chiffrement sont utilises. Quand tu visites un site en HTTPS, pareil. Quand tu signes un commit avec GPG, c'est de l'asymetrique pur.
Comprendre cette distinction, c'est comprendre pourquoi ta clé SSH privee ne doit jamais quitter ta machine (c'est la clé de ta boîte aux lettres), et pourquoi ta clé publique peut etre collee partout (c'est juste la fente).
On approfondit les clés SSH dans le prochain article : Les clés SSH de A a Z.
Navigation : Precedent : 00 - Introduction | Suivant : 02 - Les clés SSH
Sources
- AES - NIST FIPS 197 par NIST
- Curve25519: New Diffie-Hellman Speed Records par Daniel J. Bernstein
- Recommendation for Key Management (SP 800-57) par NIST
- OpenSSL man pages par OpenSSL Project
Retrouve d'autres articles techniques sur paltemps.fr.