Passer au contenu principal
Divers

Chiffrement : clés, AES, RSA, TLS, hachage et signatures numériques

Le chiffrement est l’un des piliers de la sécurité informatique moderne. Il protège les données stockées sur un disque, les communications Web, les VPN, certaines messageries, les sauvegardes et une quantité considérable d’infrastructures que l’on préfère généralement ne pas laisser lisibles au premier inconnu disposant de Wireshark.

Son principe général est simple : transformer une information compréhensible en une représentation inutilisable sans disposer du secret ou des clés nécessaires.

La cryptographie moderne ne consiste cependant pas uniquement à cacher des données. Elle doit aussi permettre de détecter leur modification, d’authentifier leur origine et de gérer correctement les clés qui rendent tout cela possible.

Chiffrement, déchiffrement, décryptage : les bons termes

En français technique, il est utile de distinguer plusieurs opérations.

Terme Signification
Texte clair Donnée originale lisible avant chiffrement
Chiffrement Transformation du clair en données chiffrées à l’aide d’une clé
Texte chiffré Résultat du chiffrement, normalement inexploitable sans le secret approprié
Déchiffrement Opération permettant de retrouver le clair avec la clé prévue
Décryptage Recherche du clair sans disposer initialement de la clé de déchiffrement
Cryptage Terme très répandu dans le langage courant, mais déconseillé dans le vocabulaire cryptographique français rigoureux

Le chiffre de César constitue un exemple historique de chiffrement par substitution : chaque lettre est décalée dans l’alphabet. Il est intéressant pour comprendre le principe, mais sa sécurité face à un ordinateur moderne se situe quelque part entre « inexistante » et « excellente activité pour école primaire ».

Ce que la cryptographie cherche réellement à protéger

Le modèle classique de sécurité de l’information est le triptyque CIA :

  • Confidentialité : empêcher les personnes non autorisées de lire les données.
  • Intégrité : permettre de détecter les modifications non autorisées.
  • Disponibilité : maintenir l’information et les services accessibles lorsqu’ils doivent l’être.

La cryptographie contribue fortement aux deux premiers objectifs, mais elle ne garantit pas à elle seule la disponibilité. Un serveur dont les données sont parfaitement chiffrées mais dont l’alimentation vient de mourir reste remarquablement indisponible.

D’autres propriétés importantes viennent compléter ce modèle, notamment :

  • authenticité : vérifier l’identité ou l’origine d’une donnée ;
  • authentification : vérifier qu’une entité est bien celle qu’elle prétend être ;
  • non-répudiation : dans certains systèmes de signature, fournir des éléments empêchant le signataire de nier facilement son action.

Chiffrement symétrique : une clé secrète partagée

Le chiffrement symétrique utilise une clé secrète connue des parties autorisées. Cette clé permet de chiffrer puis de déchiffrer les données.

Imaginons Laurent et André. Ils possèdent tous les deux une clé secrète. Laurent chiffre son message avec cette clé ; André utilise le secret correspondant pour retrouver le message original.

Si Julie intercepte uniquement le texte chiffré, elle ne devrait pas pouvoir retrouver le contenu dans des conditions réalistes. Si elle vole la clé, en revanche, la soirée cryptographique est terminée.

AES

AES, pour Advanced Encryption Standard, est un chiffrement par blocs extrêmement répandu. Il travaille sur des blocs de 128 bits et existe avec des clés de :

  • AES-128 ;
  • AES-192 ;
  • AES-256.

La taille indiquée correspond à la clé, pas à la taille des blocs, qui reste de 128 bits.

AES n’est cependant qu’une primitive. Pour chiffrer correctement des données de taille quelconque, il faut employer un mode de fonctionnement approprié.

Le chiffrement authentifié

Dans les nouveaux systèmes, on préfère généralement un mécanisme AEAD — Authenticated Encryption with Associated Data — qui fournit simultanément confidentialité et contrôle d’intégrité/authenticité des données.

Deux exemples importants sont :

  • AES-GCM ;
  • ChaCha20-Poly1305.

Le principe est important : chiffrer quelque chose ne suffit pas nécessairement à empêcher un attaquant de modifier intelligemment le texte chiffré. Un mécanisme authentifié vérifie également qu’il n’a pas été altéré.

Dans une conception moderne, « les données sont illisibles » n’est pas suffisant. On veut aussi savoir si quelqu’un a bricolé les octets pendant le trajet.

Attention aux nonces

De nombreux modes modernes utilisent, en plus de la clé, une valeur appelée nonce. Les règles précises dépendent de l’algorithme, mais réutiliser incorrectement un nonce avec la même clé peut détruire les garanties de sécurité de certains systèmes.

C’est une excellente illustration d’un principe général : un excellent algorithme utilisé avec une mauvaise gestion des paramètres peut produire une excellente catastrophe.

Chiffrement asymétrique : deux clés complémentaires

La cryptographie asymétrique repose sur une paire :

  • une clé publique, qui peut être diffusée ;
  • une clé privée, qui doit rester secrète.

Dans certains schémas de chiffrement à clé publique, Laurent peut utiliser la clé publique d’André pour protéger une information qu’André pourra récupérer grâce à sa clé privée.

Mais la formule simplifiée :

« La clé publique chiffre et la clé privée déchiffre. »

ne décrit pas toute la cryptographie asymétrique moderne. Les paires de clés servent également à l’établissement de secrets partagés et à la signature numérique.

RSA, ECC et autres familles

Parmi les mécanismes à clé publique que l’on rencontre ou que l’on a beaucoup rencontrés :

Technologie Usage courant
RSA Signature et, historiquement, chiffrement/transport de clés selon les protocoles
ECDSA Signature numérique sur courbes elliptiques
Ed25519 Signature numérique moderne
ECDH / X25519 Établissement d’un secret partagé
ElGamal Famille historique de mécanismes asymétriques encore importante conceptuellement

ECC n’est pas un algorithme unique : Elliptic Curve Cryptography désigne une famille de constructions cryptographiques fondées sur les courbes elliptiques.

Signature numérique : prouver l’origine sans cacher le message

Une signature numérique poursuit un objectif différent du chiffrement. Elle permet notamment de vérifier :

  • l’intégrité des données ;
  • leur origine cryptographique ;
  • que le détenteur de la clé privée correspondante a produit la signature.

André peut ainsi signer un document avec sa clé privée. Laurent utilise la clé publique correspondante pour vérifier la signature.

Une signature valide signifie alors que le contenu signé n’a pas été modifié depuis la signature et que la signature est cohérente avec la clé publique utilisée pour la vérification.

Mais il reste une question fondamentale :

Comment Laurent sait-il que cette clé publique appartient réellement à André ?

C’est précisément là qu’interviennent, selon les systèmes, les certificats X.509, les autorités de certification, les empreintes de clés, les PKI ou d’autres mécanismes d’établissement de confiance.

Hachage, MAC et mot de passe : trois choses à ne pas mélanger

Fonction de hachage

Une fonction de hachage cryptographique prend une donnée de taille quelconque et produit un condensat de taille fixe.

Exemples de familles modernes :

  • SHA-256 ;
  • SHA-384 ;
  • SHA-512 ;
  • SHA-3.

Le hachage est à sens unique : il n’existe pas de clé de déchiffrement permettant normalement de récupérer le message original.

Il ne faut donc pas confondre :

Opération Réversible ? Clé ?
Chiffrement Oui, avec la clé appropriée Oui
Hachage Non par conception Pas pour un hash classique
Signature Ce n’est pas du chiffrement réversible du document Paire publique/privée

Pourquoi un hash seul ne suffit pas contre un attaquant ?

Supposons qu’un fichier soit accompagné de son SHA-256. Un téléchargement accidentellement corrompu donnera une empreinte différente : parfait.

Mais si Julie peut modifier à la fois le fichier et l’empreinte publiée, elle peut simplement calculer le hash de son fichier modifié.

Pour vérifier une intégrité face à un adversaire actif, on utilise notamment :

  • un MAC avec une clé secrète ;
  • une signature numérique ;
  • un mécanisme AEAD.

Les mots de passe

Les mots de passe d’utilisateurs ne devraient normalement pas être stockés sous forme réversible. Un serveur n’a généralement pas besoin de connaître le mot de passe original : il doit pouvoir vérifier qu’une tentative correspond au secret précédemment enregistré.

On utilise donc des fonctions spécialisées de hachage de mots de passe avec sel et coût ajustable, par exemple Argon2id lorsque l’environnement le permet.

Une base contenant :

« mot de passe utilisateur : chiffrement AES, clé stockée juste à côté »

offre surtout à l’attaquant une procédure de récupération particulièrement bien documentée.

Comment HTTPS combine réellement les mécanismes

Les protocoles modernes combinent souvent cryptographie asymétrique et symétrique parce que chacune excelle dans un domaine différent.

La cryptographie asymétrique est très utile pour :

  • authentifier ;
  • signer ;
  • établir des secrets sans les avoir partagés auparavant.

La cryptographie symétrique est très efficace pour :

  • chiffrer de grandes quantités de données ;
  • protéger les paquets d’une session ;
  • obtenir d’excellentes performances.

Version simplifiée d’un handshake TLS 1.3

Lors d’une connexion HTTPS moderne, le déroulement conceptuel ressemble plutôt à ceci :

  1. Le client contacte le serveur et propose notamment ses paramètres TLS.
  2. Les deux parties échangent les informations nécessaires à un établissement de clé, typiquement avec un mécanisme éphémère de type Diffie-Hellman sur courbe elliptique.
  3. Le serveur présente son certificat et prouve qu’il possède la clé privée correspondante en signant des éléments du handshake.
  4. Le client valide le certificat, le nom DNS et la chaîne de confiance.
  5. Les deux côtés calculent un secret partagé puis dérivent différentes clés de session.
  6. Les données applicatives sont ensuite protégées avec du chiffrement symétrique authentifié.

Ce modèle possède une propriété particulièrement importante appelée forward secrecy. Avec un échange éphémère correctement réalisé, le vol futur de la clé privée du certificat ne permet pas automatiquement de déchiffrer toutes les anciennes sessions enregistrées.

Pourquoi l’ancienne explication RSA est dépassée

Dans d’anciennes configurations TLS, RSA pouvait effectivement servir au transport d’un secret pré-maître chiffré avec la clé publique du serveur.

TLS 1.3 a supprimé ce mécanisme. RSA peut encore intervenir pour la signature et l’authentification du serveur, mais plus comme ancien mécanisme statique de transport de clé TLS 1.3.

Applications concrètes du chiffrement

Application Mécanismes utilisés
HTTPS / TLS Certificats, signatures, établissement de clés et chiffrement symétrique authentifié
VPN Authentification, négociation de clés et chiffrement des tunnels
Signal / messageries E2EE Protocoles de bout en bout combinant clés asymétriques et chiffrement symétrique
BitLocker Chiffrement de volumes et gestion de clés
VeraCrypt Chiffrement de volumes ou conteneurs
S/MIME Certificats, chiffrement et signature d’e-mails
Signature de code Signatures numériques permettant de vérifier origine et intégrité
SSH Établissement de clés, authentification et chiffrement de session

Chiffrement de bout en bout

Le chiffrement end-to-end vise à faire en sorte que seuls les terminaux participants possèdent les clés permettant de lire le contenu.

C’est différent d’une simple connexion TLS vers un serveur.

Avec HTTPS classique :

client → serveur est chiffré, mais le serveur reçoit normalement les données en clair au niveau applicatif.

Avec un véritable chiffrement de bout en bout :

expéditeur → destinataire reste protégé de manière à ce que l’intermédiaire ne dispose normalement pas des clés permettant de lire le contenu.

Chiffrement du stockage

BitLocker ou VeraCrypt protègent les données au repos. Cette protection est notamment très utile lorsqu’un disque ou un ordinateur est volé.

Mais une fois le volume déverrouillé sur une machine compromise, le chiffrement du disque ne protège pas magiquement les fichiers contre un malware exécuté dans la session autorisée.

La cryptographie ne fait jamais disparaître la question :

« À quel endroit exact les données sont-elles déchiffrées et qui contrôle cet endroit ? »

Blockchain

Les blockchains sont souvent décrites comme reposant sur le « chiffrement », mais les mécanismes centraux sont très souvent plutôt :

  • les fonctions de hachage ;
  • les signatures numériques ;
  • les structures permettant de vérifier l’intégrité et l’enchaînement des données.

Une transaction publique sur une blockchain n’est donc pas nécessairement chiffrée. Elle peut être parfaitement lisible tout en étant cryptographiquement signée.

La sécurité dépend surtout des clés et de leur gestion

Un algorithme robuste ne compense pas une mauvaise gestion des clés.

Les clés privées ou symétriques doivent notamment être :

  • générées avec une source aléatoire appropriée ;
  • stockées correctement ;
  • accessibles uniquement aux composants autorisés ;
  • renouvelées ou remplacées lorsque nécessaire ;
  • révoquées ou invalidées après compromission lorsque le système le permet ;
  • sauvegardées lorsque leur perte entraînerait une perte définitive des données.

La phrase :

« Notre base est chiffrée en AES-256. »

semble rassurante.

Si la clé AES-256 se trouve dans :

/var/www/html/key.txt

accessible au même attaquant, les 256 bits viennent surtout d’acquérir une valeur décorative.

Ne concevez pas votre propre cryptographie

Pour une application réelle, il est presque toujours préférable d’utiliser :

  • des protocoles standardisés ;
  • des bibliothèques cryptographiques reconnues ;
  • des constructions AEAD modernes ;
  • des mécanismes de gestion de clés éprouvés.

Évitez d’inventer :

AES + XOR maison + hash secret + encodage Base64 trois fois

et de baptiser le résultat « protocole militaire ».

Base64 n’est d’ailleurs pas du chiffrement. L’hexadécimal non plus.

Et l’informatique quantique ?

Les algorithmes symétriques comme AES et les mécanismes asymétriques comme RSA ou ECC ne sont pas affectés de la même manière par la perspective d’ordinateurs quantiques suffisamment puissants.

RSA et les systèmes classiques basés notamment sur le problème du logarithme discret sont particulièrement concernés par l’algorithme de Shor. L’écosystème prépare donc progressivement la migration vers la cryptographie post-quantique.

Depuis 2024, le NIST a notamment normalisé :

Standard Algorithme Fonction
FIPS 203 ML-KEM Établissement d’un secret partagé / encapsulation de clé
FIPS 204 ML-DSA Signature numérique
FIPS 205 SLH-DSA Signature numérique fondée sur des fonctions de hachage

Cette transition ne signifie pas qu’il faut supprimer demain matin toutes les clés RSA d’une entreprise. Elle signifie que les protocoles, PKI et systèmes ayant une durée de vie longue doivent désormais prévoir leur agilité cryptographique et leur migration future.

Les confusions à éviter

Affirmation Correction
« Le chiffrement garantit tout » Le chiffrement seul vise surtout la confidentialité ; intégrité et authenticité nécessitent les constructions appropriées
« CIA = Confidentialité, Intégrité, Authenticité » Le A signifie Availability, donc disponibilité
« Une clé symétrique est un mot de passe » Un mot de passe doit généralement servir d’entrée à une KDF lorsqu’il doit produire une clé
« Un hash protège contre toute modification » Un hash non authentifié peut être recalculé par un attaquant
« Signer = chiffrer avec la clé privée » Une signature est une primitive distincte avec ses propres algorithmes
« HTTPS chiffre une clé AES avec RSA » Ce modèle correspond à d’anciens échanges ; TLS 1.3 utilise des mécanismes modernes d’établissement de clé
« Base64 protège les données » Base64 est uniquement un encodage réversible
« Une blockchain chiffre toutes ses transactions » Elle utilise notamment signatures et hachages ; les données peuvent rester publiques

Conclusion : la cryptographie est un système, pas un algorithme isolé

AES, RSA, ChaCha20, SHA-256 ou Ed25519 ne sont pas des talismans que l’on ajoute dans une application pour obtenir automatiquement la sécurité.

Un système cryptographique fiable repose sur plusieurs éléments complémentaires : un algorithme adapté, des clés correctement générées et protégées, un protocole solide, une authentification fiable et une implémentation qui respecte scrupuleusement les règles concernant les nonces, paramètres et formats.

La distinction fondamentale reste simple :

Besoin Mécanisme typique
Cacher les données Chiffrement
Détecter une modification accidentelle Hash
Vérifier intégrité et origine avec secret partagé MAC
Vérifier intégrité et signataire avec paire de clés Signature numérique
Chiffrer et authentifier simultanément AEAD
Transformer un mot de passe en clé KDF adaptée
Stocker un mot de passe Fonction spécialisée de hachage de mot de passe

La cryptographie moderne fonctionne donc moins comme une serrure unique que comme toute une chaîne de confiance.

Et comme pour une vraie porte blindée, installer une serrure à plusieurs milliers d’euros tout en laissant la clé sous le paillasson reste techniquement une décision.

Simplement pas une décision cryptographique très brillante.