Arkendia Classrooms
Leçon 22 sur 28 · 18 min

Chiffrement symétrique et asymétrique : les grands principes

Chiffrer, c'est transformer un message lisible en une suite d'octets incompréhensible pour quiconque n'a pas la clé. Cette idée vieille de plusieurs millénaires est aujourd'hui partout : messageries, sites web, disques durs, paiements. Deux grandes familles existent, qui répondent à des besoins différents et se complètent : le chiffrement symétrique et le chiffrement asymétrique. Voyons comment elles fonctionnent, sans formules.

Dans la leçon précédente, le hachage nous a servi à vérifier l'intégrité d'une donnée. Contrairement au hachage, le chiffrement est réversible : avec la bonne clé, on retrouve le message d'origine. C'est exactement ce qui le distingue : le hachage protège contre la modification, le chiffrement protège contre la lecture.

Le principe de Kerckhoffs

Un principe fondateur de la cryptographie moderne, énoncé au XIXe siècle, dit que la sécurité d'un système de chiffrement doit reposer uniquement sur le secret de la clé, et non sur le secret de l'algorithme. Les algorithmes sérieux sont donc publics, étudiés et attaqués par des milliers d'experts pendant des années avant d'être adoptés. La règle d'or qui en découle : n'inventez jamais votre propre algorithme de chiffrement. Les schémas « maison » sont presque toujours cassés rapidement. On utilise des algorithmes éprouvés, via des bibliothèques reconnues.

Le chiffrement symétrique : une seule clé

En chiffrement symétrique, la même clé sert à chiffrer et à déchiffrer. C'est comme un coffre qui s'ouvre et se ferme avec la même clé : si vous voulez que quelqu'un d'autre l'ouvre, il doit en avoir une copie.

L'algorithme de référence est AES (Advanced Encryption Standard), avec des clés de 128, 192 ou 256 bits. Ces tailles de clé offrent un niveau de sécurité considéré comme très élevé avec la technologie actuelle : essayer toutes les clés possibles (attaque par force brute) est irréalisable en pratique.

Un point souvent oublié : l'algorithme se combine avec un mode de fonctionnement, qui détermine comment enchaîner le chiffrement de plusieurs blocs de données. Le mode ECB, qui chiffre chaque bloc indépendamment, laisse apparaître des motifs et doit être évité. Les modes modernes comme GCM apportent en plus l'authentification : le déchiffrement échoue si le message a été modifié, ce qui garantit à la fois confidentialité et intégrité. Vous n'avez pas à choisir un mode à la main : une bonne bibliothèque ou un bon outil le fait pour vous.

Forces et limites

  • Rapide et efficace, il convient au chiffrement de gros volumes (disques, fichiers, flux réseau).
  • Problème de la distribution des clés : comment transmettre la clé à son correspondant sans qu'elle soit interceptée ? Si vous l'envoyez par le même canal que le message, l'écouteur la récupère aussi. C'est la grande faiblesse du symétrique pris isolément.
  • Explosion du nombre de clés : pour que chaque paire de personnes d'un groupe puisse communiquer en secret, il faudrait une clé par paire.

Le chiffrement asymétrique : une paire de clés

Le chiffrement asymétrique, ou à clé publique, résout ce problème avec une idée géniale : chaque personne possède une paire de clés mathématiquement liées.

  • La clé publique peut être diffusée à tout le monde.
  • La clé privée reste secrète et ne quitte jamais son propriétaire.

L'analogie la plus courante est celle de la boîte aux lettres : tout le monde connaît l'adresse et peut y glisser une lettre (clé publique), mais seul le propriétaire a la clé pour l'ouvrir (clé privée). Un message chiffré avec la clé publique de Léa ne peut être déchiffré qu'avec la clé privée de Léa. Plus besoin d'échanger un secret à l'avance.

Les algorithmes les plus répandus sont RSA et ceux fondés sur les courbes elliptiques (Ed25519, ECDSA, X25519). À niveau de sécurité équivalent, les courbes elliptiques utilisent des clés beaucoup plus courtes. Pour RSA, on recommande au moins 2 048 bits, et souvent 3 072 pour les usages longue durée ; vérifiez les recommandations officielles en vigueur, publiées notamment par l'ANSSI et par le NIST.

La signature numérique

L'asymétrique sert aussi à signer. Le principe est inversé : on signe avec sa clé privée, et n'importe qui peut vérifier avec la clé publique. Si la vérification réussit, on sait que le document vient bien du détenteur de la clé privée (authenticité), qu'il n'a pas été modifié (intégrité), et que le signataire ne peut pas le nier (non-répudiation). En pratique, on signe l'empreinte du document, c'est là qu'intervient le hachage de la leçon précédente.

Forces et limites

  • Pas de secret à partager à l'avance : on échange des clés publiques, qui n'ont pas besoin d'être cachées.
  • Plus lent que le symétrique, il ne convient pas au chiffrement de gros volumes.
  • Question de confiance : comment être sûr qu'une clé publique appartient bien à la personne annoncée ? C'est le rôle des certificats (leçon suivante).

Le meilleur des deux mondes : le chiffrement hybride

En pratique, on combine les deux. Pour établir une connexion chiffrée (HTTPS par exemple) : on utilise des mécanismes asymétriques pour se mettre d'accord sur une clé de session secrète, puis on chiffre le reste de la conversation en symétrique, beaucoup plus rapide. L'asymétrique résout le problème de l'échange de clé ; le symétrique fait le travail de fond. C'est exactement ce qui se passe quand vous consultez un site en HTTPS, et ce que nous détaillerons à la leçon 3.

Un avantage supplémentaire des mécanismes modernes d'accord de clé est la confidentialité persistante (forward secrecy) : les clés de session sont temporaires et indépendantes de la clé privée du serveur. Même si cette dernière est volée plus tard, les conversations passées enregistrées ne peuvent pas être déchiffrées.

CritèreSymétriqueAsymétrique
ClésUne seule, partagéeUne paire (publique + privée)
VitesseTrès rapidePlus lente
Usage typiqueChiffrer les donnéesÉchanger des clés, signer, authentifier
ExemplesAESRSA, Ed25519, ECDSA
Difficulté principaleDistribuer la cléGarantir qui possède la clé publique

Un regard vers l'avenir. Les ordinateurs quantiques, s'ils atteignent un jour une taille suffisante, menaceraient les algorithmes asymétriques actuels (RSA et courbes elliptiques) ; le symétrique y résiste mieux en augmentant la taille des clés. Les organismes de normalisation, dont le NIST, standardisent déjà des algorithmes « post-quantiques ». Vous n'avez rien à faire aujourd'hui, mais cela explique pourquoi on parle d'« agilité cryptographique » : pouvoir changer d'algorithme sans tout reconstruire.

Mise en pratique avec OpenSSL

L'outil openssl, présent sur la plupart des systèmes, permet de manipuler tout cela en ligne de commande. Dans un répertoire de test de votre laboratoire :

# Chiffrement symétrique d'un fichier (AES-256) avec un mot de passe
echo "Message confidentiel du labo" > message.txt
openssl enc -aes-256-cbc -pbkdf2 -salt -in message.txt -out message.enc
openssl enc -d -aes-256-cbc -pbkdf2 -in message.enc -out message-dechiffre.txt

# Paire de clés asymétriques
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:3072 -out cle-privee.pem
openssl pkey -in cle-privee.pem -pubout -out cle-publique.pem

# Signature et vérification
openssl dgst -sha256 -sign cle-privee.pem -out signature.bin message.txt
openssl dgst -sha256 -verify cle-publique.pem -signature signature.bin message.txt

La commande de chiffrement vous demande un mot de passe, dont est dérivée la clé AES (c'est le rôle de l'option -pbkdf2, une dérivation lente comme celles vues à la leçon 1). La commande de vérification doit répondre « Verified OK ». Ces commandes sont données à titre pédagogique : pour protéger de vrais fichiers, on utilise des outils de plus haut niveau (chiffrement de disque, gestionnaire de mots de passe, GnuPG, ou chiffrement intégré aux applications).

À vous de jouer

  1. Exécutez les commandes ci-dessus dans un dossier de test. Ouvrez message.enc avec cat ou xxd : est-il lisible ?
  2. Déchiffrez-le avec un mauvais mot de passe. Que se passe-t-il ?
  3. Modifiez un caractère de message.txt puis relancez la vérification de signature. Quel est le résultat ?
  4. Réflexion : un collègue vous envoie une clé publique par e-mail en disant « voici ma clé, chiffrez-moi vos données avec ». Que devez-vous vérifier avant de lui faire confiance ?
Voir une solution

1. Le fichier chiffré n'est pas lisible : il commence souvent par la chaîne « Salted__ » suivie de données aléatoires.

2. Avec un mauvais mot de passe, le déchiffrement échoue, avec une erreur du type « bad decrypt ». Remarque : ce mode ne détecte pas toujours toutes les modifications, ce qui illustre l'intérêt des modes authentifiés comme GCM dans les vrais systèmes.

3. La vérification répond « Verification failure » : la moindre modification invalide la signature.

4. Il faut vérifier que la clé appartient bien à cette personne, par un autre canal (appel téléphonique, comparaison de l'empreinte de la clé, remise en main propre, ou un certificat signé par une autorité de confiance). Sans cela, un intermédiaire pourrait avoir substitué sa propre clé.

À retenir

  • Le chiffrement protège la confidentialité ; il est réversible avec la clé, contrairement au hachage.
  • Le chiffrement symétrique (AES) utilise une seule clé : rapide, mais la distribution de la clé est un problème.
  • Le chiffrement asymétrique (RSA, courbes elliptiques) utilise une paire clé publique / clé privée : il sert à échanger des clés et à signer.
  • En pratique, on combine les deux (chiffrement hybride, comme dans HTTPS), et on n'invente jamais son propre algorithme.
  • La question de la confiance dans une clé publique est résolue par les certificats.

Reste une question que nous avons laissée en suspens : comment savoir que la clé publique que vous recevez est bien celle du site auquel vous pensez vous connecter ? C'est précisément ce que résolvent les certificats et le protocole TLS.

Publicité
Connectez-vous pour enregistrer votre progression. Se connecter