Introduction à la cryptologie
Bienvenue dans ce cours ! Ce premier chapitre, orienté sur la théorie, aborde une notion importante : la cryptologie. Il est essentiel d’avoir quelques bases sur le sujet pour bien appréhender la suite de ce cours, et notamment les notions de certificat, de clé publique, de clé privée et d’autorité de certification.
Ce sera l’occasion d’expliquer des termes incontournables comme la confidentialité, l’authenticité et l’intégrité, ainsi que les différents mécanismes utilisés (chiffrement, hachage, signature).
Sommaire
I. Définitions : confidentialité, authenticité, intégrité
La cryptologie est la science du secret pour garantir :
- La confidentialité : s’assurer que l'information reste illisible pour toute personne non autorisée. Par exemple, un message chiffré avec un mot de passe ne pourra être déchiffré que par quelqu’un qui possède la clé de déchiffrement.
- L'authenticité : vérifier que le message provient bien de l'expéditeur qu'il prétend être. Par exemple, une signature numérique permet de s’assurer que l’e-mail reçu a bien été envoyé par votre banque et non par un pirate.
- L'intégrité : s'assurer que le message n'a pas été modifié ou altéré lors de sa transmission. Par exemple, un fichier téléchargé est accompagné d’un hash (empreinte numérique) pour vérifier que son contenu est identique à l’original et n’a pas été corrompu.
Vous l’aurez compris, la cryptologie est un pilier pour garantir la sécurité de nos échanges numériques. Mais, pour cela, il convient d’utiliser des algorithmes robustes et capables de résister aux attaques actuelles.
Remarque : la cryptologie englobe à la fois la cryptographie et la cryptanalyse. Cela regroupe, d’une part, l’art de concevoir des systèmes pour protéger les informations, et d’autre part, les techniques pour analyser et casser ces mêmes systèmes afin d’en identifier les failles.
II. Les mécanismes
A. Chiffrement
Pour s'assurer que le message n'a pas été lu par quelqu'un d'autre que son destinataire, on peut appliquer un chiffrement. Un code ou une clé est nécessaire pour chiffrer/déchiffrer le message.
Pour cela, on applique alors un algorithme ou un modèle mathématique. Dans la Rome Antique, on utilisait le code de César. Il consiste à substituer une lettre par une autre de l'alphabet en prenant un décalage d'un nombre défini. Exemple : avec un décalage de 2, le A devient C, le B devient D, etc.
Si je veux chiffrer le message :
Ceci est un message secret
Avec un décalage de 3, j'obtiens :
Fhfl hvw xq phvvdjh vhfuhw
Le chiffrement peut être :
- Symétrique : on utilise la même clé ou le même code pour le chiffrement ou le déchiffrement. La clé doit être transmise par un autre canal au destinataire. Par exemple, BitLocker (chiffrement des disques sur Windows) s’appuie sur un chiffrement symétrique.
- Asymétrique : la clé utilisée pour le chiffrement est différente de celle utilisée pour le déchiffrement. La clé utilisée pour le chiffrement est publique, tandis que la clé de déchiffrement est privée. Par exemple, quand vous naviguez sur un site web accessible en HTTPS, le navigateur utilise la clé publique d'un site pour chiffrer des données et seul le site peut les déchiffrer grâce à sa clé privée (utilisation de TLS).
B. Hachage ou « hash »
Pour assurer l'intégrité du message et vérifier qu'aucune modification n'y a été apportée, on calcule un hachage (« hash » en anglais). On parle aussi d'empreinte numérique, qui est calculée à partir d’une fonction cryptographique et qui est forcément unique.
Il s'agit d'une suite de lettres et de chiffres qui ressemble à ceci :
Une fois le fichier transféré à son destinataire, ce dernier peut calculer le hash et déterminer s'il correspond à celui fourni par l'expéditeur. Ainsi, il pourra déterminer si le fichier est intact. Il faut comprendre que si l’on modifie un bit dans un fichier (un seul caractère, par exemple), cela va changer le hash : ce sera une preuve que le contenu a été altéré !
Parmi les algorithmes les plus connus, on trouve :
- HMAC (Hash-based Message Authentication Code) : utilisé pour garantir à la fois l’intégrité et l’authenticité d’un message, grâce à une clé partagée.
- MD5 (Message Digest 5) : algorithme relativement ancien, aujourd’hui considéré comme peu sûr face aux attaques (obsolète).
- SHA (Secure Hash Algorithm) : famille d’algorithmes largement utilisés, comme SHA-256, reconnu pour sa sécurité et recommandé pour les usages modernes.
Enfin, sachez qu’il est pratiquement impossible de retrouver deux fichiers différents produisant le même hash. Si cela se produit, c'est ce qu'on appelle une collision, et de bons algorithmes doivent les éviter. Le risque existe, mais il est avant tout théorique.
C. Signature
Pour confirmer qu'un message provient bien de l'émetteur indiqué, on peut y apposer une signature numérique. Comme pour un document officiel, l'auteur du message signe le message en utilisant sa clé privée et il publie sa clé publique.
Le destinataire qui veut vérifier l'authenticité utilise la clé publique pour vérifier la signature. Nous pouvons synthétiser le processus de signature de cette façon :
- L'émetteur calcule un hash du message, qui représente une empreinte unique de son contenu.
- Il chiffre ce hash avec sa clé privée pour produire la signature numérique.
- La signature est jointe au message avant son envoi.
De son côté, le destinataire, pourra vérifier l'authenticité de cette façon :
- Recalcule le hash du message reçu.
- Utilise la clé publique de l'émetteur pour déchiffrer la signature et obtenir le hash initial.
- Compare les deux hash afin de voir s’ils sont identiques. Si c’est le cas, cela garantit que le message n’a pas été modifié et qu’il provient bien de l’émetteur.
La signature est liée aux notions évoquées précédemment puisqu’elle va permettre de vérifier l’authenticité et l’intégrité d’un message. Elle permet de déduire :
- Authenticité : elle prouve que le message a bien été envoyé par le propriétaire de la clé privée.
- Intégrité : elle assure que le message n’a pas été altéré après sa signature.
De plus, il y a une notion de non-répudiation associée à la signature. En effet, l’émetteur ne peut pas nier avoir envoyé le message, car seul lui possédait la clé privée utilisée pour le signer.
III. Conclusion
Ce chapitre d’introduction à la cryptologie sert de base pour le chapitre suivant, puisque nous allons regarder comment s'applique la cryptologie dans le monde des certificats.