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 :
- Le client contacte le serveur et propose notamment ses paramètres TLS.
- 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.
- Le serveur présente son certificat et prouve qu’il possède la clé privée correspondante en signant des éléments du handshake.
- Le client valide le certificat, le nom DNS et la chaîne de confiance.
- Les deux côtés calculent un secret partagé puis dérivent différentes clés de session.
- 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.
