Introduction à la Cryptographie
Maîtrisez les concepts fondamentaux de la cryptographie moderne, de la protection des données au secret des communications.
Navigation rapide
1. Les fondements de la cryptographie
Les piliers de la sécurité (CIAN)
La cryptographie moderne vise à garantir quatre objectifs majeurs :
- Confidentialité : Assurer que seuls les destinataires autorisés puissent accéder au contenu d'un message.
- Intégrité : Garantir que le message n'a pas été altéré durant son transport.
- Authentification : Permettre de vérifier l'identité de son interlocuteur.
- Non-répudiation : Empêcher qu'un expéditeur puisse nier avoir envoyé un message.
Le principe de Kerckhoffs
Un système cryptographique doit rester sûr même si tout ce qui le concerne, à l'exception de la clé, est connu publiquement. La sécurité repose sur la robustesse de la clé, pas sur le secret de l'algorithme.
Un bref historique
- Le Chiffre de César : Une simple substitution de lettres, facile à casser mais un premier pas.
- La machine Enigma : Sa complexité a nécessité des efforts colossaux pour être vaincue, marquant un tournant dans la cryptanalyse.
- L'ère numérique : L'invention d'algorithmes comme DES puis AES a ouvert la voie à la cryptographie moderne.
2. Chiffrement Symétrique
Il utilise une seule et même clé pour chiffrer et déchiffrer. Sa grande vitesse le rend idéal pour chiffrer de grands volumes de données.
Chiffrement par bloc vs. par flux
- Chiffrement par bloc (Block Cipher) : Traite les données par blocs de taille fixe (ex: 128 bits pour AES). Le plus courant.
- Chiffrement par flux (Stream Cipher) : Chiffre les données bit par bit. Utile quand la taille des données n'est pas connue à l'avance (ex: flux réseau).
Modes opératoires
Un mode opératoire définit comment appliquer un chiffre par bloc. Le choix est crucial pour la sécurité.
ECB: À ne jamais utiliser car des motifs identiques dans le clair apparaissent dans le chiffré.CBC: Chaque bloc est XORé avec le bloc chiffré précédent. Plus sûr, mais séquentiel.GCM: Un mode moderne qui offre à la fois chiffrement et authentification. Le standard pour TLS 1.3.
Le défi de la distribution des clés
Le talon d'Achille du symétrique : comment deux parties peuvent-elles se mettre d'accord sur une clé secrète sans qu'un espion ne l'intercepte ? C'est là qu'intervient le chiffrement asymétrique.
3. Chiffrement Asymétrique
Il utilise une paire de clés (publique/privée) pour résoudre le problème de l'échange de clés.
- La clé publique peut être partagée. Elle sert à chiffrer les messages ou à vérifier une signature.
- La clé privée doit rester secrète. Elle sert à déchiffrer les messages ou à créer une signature.
Les géants mathématiques
- RSA : Sa sécurité repose sur la difficulté de factoriser de très grands nombres.
- ECC (Courbes elliptiques) : Niveau de sécurité similaire à RSA avec des clés beaucoup plus courtes.
- Diffie-Hellman : Permet de créer une clé secrète partagée sur un canal public.
Infrastructure à Clés Publiques (PKI)
Comment être sûr que la clé publique de google.com appartient bien à Google ? Les Autorités de Certification (CA) émettent des certificats numériques (X.509) qui lient une clé publique à une identité.
4. Hachage et Signatures
Une fonction de hachage transforme des données en une sortie de taille fixe (empreinte). C'est une opération à sens unique, essentielle pour garantir l'intégrité.
HMAC : Hachage et Authentification
Pour vérifier à la fois l'intégrité et l'authenticité, on utilise un HMAC (Hash-based Message Authentication Code). Il combine le message avec une clé secrète avant de le hacher.
Le processus de signature numérique
- Création : L'expéditeur hache le message, puis chiffre ce hash avec sa clé privée.
- Vérification : Le destinataire déchiffre la signature avec la clé publique de l'expéditeur pour retrouver le hash, puis le compare au hash du message reçu.
5. Cryptanalyse : L'art de casser les codes
La cryptanalyse est l'étude des méthodes pour déchiffrer une information sans connaître la clé. La robustesse d'un algorithme est évaluée par sa résistance aux attaques connues.
Types d'attaques
- Attaque par force brute : Tenter toutes les clés possibles. La longueur de la clé est la meilleure défense.
- Analyse fréquentielle : Exploiter la fréquence d'apparition des lettres ou symboles (surtout contre les chiffrements anciens).
- Attaques par canal auxiliaire (Side-Channel) : Exploiter des fuites d'information physiques : consommation électrique, temps de calcul, émissions électromagnétiques.
- Cryptanalyse différentielle et linéaire : Techniques avancées qui analysent comment les différences en entrée affectent les sorties pour trouver des faiblesses dans les chiffres par bloc.
L'erreur humaine
Le maillon le plus faible est souvent l'humain. Une mauvaise gestion des clés, des mots de passe faibles ou des algorithmes mal implémentés peuvent rendre inutile la meilleure cryptographie du monde.
6. Applications Pratiques
La cryptographie est partout, souvent invisible. Voici quelques exemples concrets :
HTTPS et le cadenas du web
Le protocole TLS sécurise vos connexions web en utilisant l'asymétrique pour l'authentification et l'échange d'une clé de session, puis le symétrique pour chiffrer les données rapidement.
Stockage des mots de passe
Les sites web stockent une empreinte (hash) de votre mot de passe, souvent "salée" et passée dans une fonction lente comme Argon2 pour résister aux attaques par force brute.
Messageries sécurisées
Des applications comme Signal ou WhatsApp utilisent le chiffrement de bout en bout (E2EE). Seuls l'expéditeur et le destinataire peuvent lire les messages, grâce à des clés gérées sur leurs appareils.
Blockchains et Cryptomonnaies
La cryptographie est au cœur des monnaies numériques. Les signatures numériques (ECDSA) prouvent la possession des fonds et les fonctions de hachage (SHA-256) sécurisent l'intégrité de la chaîne de blocs.
7. Cryptographie Post-Quantique (PQC)
L'avènement de l'ordinateur quantique menace les algorithmes asymétriques actuels (RSA, ECC), qui pourraient être cassés facilement. La PQC vise à développer de nouveaux algorithmes résistants à cette menace.
La menace quantique
L'algorithme de Shor, exécutable sur un ordinateur quantique suffisamment puissant, peut factoriser de grands nombres et résoudre le problème du logarithme discret, rendant RSA et ECC obsolètes.
Les nouveaux standards
Le NIST (National Institute of Standards and Technology) a mené une compétition pour standardiser les futurs algorithmes PQC. Les algorithmes gagnants reposent sur des problèmes mathématiques différents :
- Cryptographie basée sur les réseaux euclidiens : Ex: CRYSTALS-Kyber (échange de clés) et CRYSTALS-Dilithium (signatures).
- Cryptographie basée sur le hachage : Ex: SPHINCS+ (signatures).
"Stocker maintenant, déchiffrer plus tard"
Un attaquant peut enregistrer aujourd'hui des données chiffrées et attendre de disposer d'un ordinateur quantique pour les déchiffrer. La migration vers la PQC est donc une urgence pour la sécurité à long terme des secrets d'État et d'entreprise.
8. Outils et Bibliothèques
Mettre les mains dans le cambouis est le meilleur moyen d'apprendre. Voici une sélection d'outils :
- OpenSSL : La référence absolue en ligne de commande pour générer des clés, certificats, chiffrer, hacher...
- GnuPG (GPG) : L'implémentation du standard OpenPGP pour chiffrer et signer vos emails et fichiers.
- Wireshark : Permet d'analyser le trafic réseau et de voir les protocoles cryptographiques comme TLS en action.
- Hashcat : L'outil de référence pour le cassage de mots de passe, utile pour tester leur robustesse.
- CyberChef : Une "baie de brassage" web pour manipuler des données avec des dizaines d'opérations cryptographiques.
- Cryptool : Un excellent logiciel éducatif pour visualiser et expérimenter avec des algorithmes.
9. Ressources pour aller plus loin
Livres de référence
- "Cryptography Engineering: Design Principles and Practical Applications" par Ferguson, Schneier, et Kohno.
- "Serious Cryptography: A Practical Introduction to Modern Encryption" par Jean-Philippe Aumasson.
Sites web et cours
- CryptoHack : Des défis ludiques pour apprendre par la pratique.
- Cryptopals Crypto Challenges : Des exercices de programmation pour implémenter et casser des cryptos.
- Crypto 101 : Un livre d'introduction gratuit et accessible.