Elouan

Chiffrement symétrique et asymétrique

Une clé partagée ou une paire de clés : comment fonctionnent AES et RSA, pourquoi on les combine, et ce qu'est vraiment une signature numérique.

Elouan

Série Cryptographie appliquée · article 2 sur 3
  1. Hachage, chiffrement, encodage : ne plus confondre
  2. Chiffrement symétrique et asymétrique
  3. Certificats et PKI

Chiffrer, c’est rendre un message illisible pour tous sauf pour ceux qui ont la bonne clé. Toute la question est de savoir comment cette clé est partagée. Il existe deux réponses, la cryptographie symétrique et l’asymétrique, et presque tous les systèmes réels utilisent les deux ensemble.

Le chiffrement symétrique

Avec le chiffrement symétrique, la même clé sert à chiffrer et à déchiffrer. C’est le cadenas classique : celui qui a la clé ouvre et ferme.

Clair ──[ AES + clé K ]──► Chiffré ──[ AES + clé K ]──► Clair
AlgorithmeRemarque
AESLe standard mondial (128 ou 256 bits), accéléré par le matériel dans les processeurs modernes
ChaCha20Très rapide en logiciel, utilisé notamment sur mobile et dans TLS 1.3
DES, 3DES, RC4Obsolètes

Avantage : très rapide, adapté aux gros volumes (disques, flux réseau). Difficulté : il faut que les deux parties possèdent la même clé, sans qu’elle soit interceptée en chemin. Et avec n personnes, il faudrait une clé différente pour chaque paire.

Le mode compte autant que l’algorithme

AES chiffre des blocs de 128 bits. Pour chiffrer un message plus long, on utilise un mode opératoire.

ModeÀ retenir
ECBChaque bloc chiffré séparément : les motifs restent visibles. À proscrire.
CBCEnchaîne les blocs, mais ne protège pas l’intégrité et a connu de nombreuses attaques (padding oracle)
GCMChiffrement authentifié : confidentialité + intégrité. Le choix par défaut aujourd’hui.

Le chiffrement authentifié

Un chiffrement seul empêche de lire, mais pas forcément de modifier discrètement le message chiffré. Les modes authentifiés (AES-GCM, ChaCha20-Poly1305) détectent toute modification. C’est ce qu’utilise TLS 1.3.

Le chiffrement asymétrique

Le chiffrement asymétrique utilise une paire de clés liées mathématiquement :

  • une clé publique, qu’on peut donner à tout le monde ;
  • une clé privée, que l’on garde secrète.

Ce qui est chiffré avec l’une ne peut être déchiffré qu’avec l’autre. L’image classique est celle de la boîte aux lettres : tout le monde peut y déposer un courrier (clé publique), seul le propriétaire peut l’ouvrir (clé privée).

Bob chiffre avec la clé PUBLIQUE d'Alice ──► seule la clé PRIVÉE d'Alice déchiffre
FamilleExemplesRepose sur
RSAChiffrement, signatureLa difficulté de factoriser de grands nombres
Courbes elliptiquesECDSA, Ed25519 (signature), ECDH, X25519 (échange de clés)Le logarithme discret sur une courbe elliptique

Les clés sur courbes elliptiques sont beaucoup plus courtes à sécurité égale : une courbe de 256 bits offre une sécurité comparable à un RSA d’environ 3072 bits.

Avantage : plus besoin de partager un secret à l’avance. Inconvénient : beaucoup plus lent, et limité à de petites quantités de données.

La signature numérique

L’asymétrique sert aussi dans l’autre sens. On calcule l’empreinte du document, puis on la transforme avec sa clé privée : c’est la signature. N’importe qui peut la vérifier avec la clé publique.

Signer   : empreinte(document) ──[ clé PRIVÉE de l'auteur ]──► signature
Vérifier : signature ──[ clé PUBLIQUE de l'auteur ]──► correspond à empreinte(document) ?

Une signature valide garantit :

  • l’intégrité : le document n’a pas changé ;
  • l’authenticité : il vient bien du détenteur de la clé privée ;
  • la non-répudiation : l’auteur ne peut pas nier l’avoir signé.

On la retrouve partout : certificats TLS, mises à jour logicielles, exécutables Windows signés, mails S/MIME, commits Git.

Qui utilise quelle clé ?

Pour chiffrer un message à quelqu’un : sa clé publique à lui. Pour signer : ma clé privée à moi. Les deux opérations n’utilisent pas la même clé dans le même sens, et c’est une question piège très classique.

Le chiffrement hybride : le meilleur des deux

Dans la pratique, on combine les deux familles :

  1. on génère une clé symétrique aléatoire (la clé de session) ;
  2. on chiffre les données avec elle, rapidement (AES) ;
  3. on protège ou on échange cette clé avec l’asymétrique.

C’est ainsi que fonctionnent TLS, PGP, S/MIME ou le chiffrement de disque avec récupération par clé.

Diffie-Hellman : se mettre d’accord sur une clé en public

L’échange de clés Diffie-Hellman permet à deux parties de calculer la même clé secrète en n’échangeant que des valeurs publiques. Un observateur qui voit passer tout l’échange ne peut pas en déduire la clé.

Quand on génère de nouvelles valeurs à chaque session (Diffie-Hellman éphémère, DHE ou ECDHE), on obtient la confidentialité persistante : même si la clé privée du serveur est volée un jour, les sessions passées enregistrées restent indéchiffrables. TLS 1.3 l’impose (voir l’article sur HTTP et TLS).

Diffie-Hellman n’authentifie personne

Seul, Diffie-Hellman ne dit pas avec qui on s’est mis d’accord : un attaquant au milieu pourrait faire un échange avec chacun des deux. C’est pour ça que TLS l’associe à une signature du serveur, vérifiée grâce à son certificat.

Les tailles de clés à connaître

UsageRecommandation actuelle
SymétriqueAES-128 minimum, AES-256 pour une protection de longue durée
RSA2048 bits minimum, 3072 bits pour la durée
Courbes elliptiques256 bits (P-256, Curve25519)
HachageSHA-256 minimum

L’ANSSI publie ses propres règles dans son guide sur les mécanismes cryptographiques, et ses recommandations vont généralement dans le sens de clés plus longues.

Et l’ordinateur quantique ?

Un ordinateur quantique suffisamment puissant pourrait casser RSA et les courbes elliptiques (algorithme de Shor). Les algorithmes symétriques sont beaucoup moins touchés : doubler la taille de clé suffit (AES-256). Le NIST a standardisé en 2024 les premiers algorithmes post-quantiques (ML-KEM pour l’échange de clés, ML-DSA pour la signature), et la transition commence, souvent en mode hybride (classique + post-quantique).

Reste une question : comment être sûr qu’une clé publique appartient bien à la bonne personne ? C’est le rôle des certificats.

L'essentiel

  • Symétrique : la même clé chiffre et déchiffre (AES, ChaCha20). Rapide, mais il faut partager la clé de façon sûre.
  • Asymétrique : une clé publique et une clé privée liées (RSA, courbes elliptiques). On chiffre avec la clé publique du destinataire, il déchiffre avec sa clé privée.
  • Signature : on signe avec sa clé privée, tout le monde vérifie avec la clé publique. Elle prouve l'origine et l'intégrité, et empêche de nier avoir signé.
  • En pratique, on combine les deux (chiffrement hybride) : l'asymétrique sert à échanger ou protéger une clé symétrique, qui chiffre ensuite les données.
  • Diffie-Hellman permet à deux parties de se mettre d'accord sur une clé secrète en ne s'échangeant que des valeurs publiques. En version éphémère, il apporte la confidentialité persistante.
  • Repères de taille : AES-128 ou AES-256 ; RSA d'au moins 2048 bits (3072 recommandé pour la durée) ; courbes elliptiques de 256 bits.
  • Mode de chiffrement : préférer un mode authentifié comme AES-GCM ou ChaCha20-Poly1305. Le mode ECB est à proscrire.

Idées reçues

Pour envoyer un message confidentiel à Alice, avec quelle clé le chiffre-t-on ?

L'erreur courante. Répondre « avec ma clé privée ».

En réalité. Avec la clé publique d'Alice. Seule sa clé privée pourra déchiffrer. Chiffrer avec sa propre clé privée ne protège rien, puisque tout le monde a la clé publique correspondante : c'est le principe de la signature, pas du chiffrement.

Pourquoi n'utilise-t-on pas RSA pour chiffrer directement un gros fichier ?

L'erreur courante. Dire que RSA n'est pas assez sûr.

En réalité. RSA est beaucoup plus lent que le chiffrement symétrique et ne peut chiffrer directement qu'une petite quantité de données. On génère donc une clé symétrique aléatoire, on chiffre le fichier avec AES, et on chiffre seulement cette clé avec RSA. C'est le chiffrement hybride, utilisé par TLS, PGP ou S/MIME.

Que garantit une signature numérique que ne garantit pas un simple hash ?

L'erreur courante. Dire que c'est la même chose.

En réalité. Un hash prouve que le contenu n'a pas changé, mais n'importe qui peut recalculer un hash après modification. Une signature est calculée avec la clé privée de l'auteur : elle prouve aussi qui a signé, et personne d'autre ne peut la produire. Elle garantit l'intégrité, l'authenticité et la non-répudiation.

Pourquoi le mode ECB est-il dangereux ?

L'erreur courante. Penser que le mode n'a pas d'importance si l'algorithme est AES.

En réalité. En ECB, chaque bloc est chiffré indépendamment avec la même clé : deux blocs identiques en clair donnent deux blocs identiques chiffrés. Les motifs des données restent visibles (l'exemple célèbre de l'image du manchot chiffrée en ECB). On utilise des modes comme GCM, qui ajoutent aussi une vérification d'intégrité.

Tester ses connaissances

Références

  • Serious Cryptography (2e éd.)Jean-Philippe Aumasson · No Starch Press
  • Cryptography EngineeringNiels Ferguson, Bruce Schneier, Tadayoshi Kohno · Wiley
  • Real-World CryptographyDavid Wong · Manning

Textes de référence en ligne