🔐 B3.2 – Chiffrement et Hachage
BTS SIO • Bloc 3 – Protection des données et authentification
🎯 Rappels : Les piliers de la sécurité
Avant de plonger dans le chiffrement et le hachage, rappelons les quatre propriétés fondamentales que nous cherchons à garantir :
Définition : Garantir que seules les personnes autorisées peuvent lire l'information.
Question clé : "Est-ce que quelqu'un d'autre peut lire mon message ?"
Solution technique : Le chiffrement
Définition : Garantir que l'information n'a pas été modifiée entre l'envoi et la réception.
Question clé : "Mon message a-t-il été altéré en chemin ?"
Solution technique : Le hachage
Définition : Garantir l'identité de l'émetteur du message.
Question clé : "Suis-je sûr que c'est bien Alice qui a envoyé ce message ?"
Solution technique : La signature numérique
Définition : Garantir que l'émetteur ne peut pas nier avoir envoyé le message.
Question clé : "Alice peut-elle prétendre qu'elle n'a jamais envoyé ce message ?"
Solution technique : La signature numérique avec certificats
📚 Définitions essentielles
Science qui regroupe l'ensemble des techniques permettant de protéger les communications et les données.
Elle inclut : le chiffrement, le déchiffrement, le hachage, les signatures numériques, etc.
Définition : Processus de transformation d'un message clair (lisible) en un message chiffré (illisible) à l'aide d'une clé de chiffrement.
Objectif : Rendre le message incompréhensible pour quiconque ne possède pas la clé.
Définition : Processus légitime de transformation d'un message chiffré en message clair à l'aide de la clé de déchiffrement appropriée.
Important : Le déchiffrement nécessite la bonne clé.
Définition : Processus illégitime visant à retrouver le message clair sans posséder la clé.
C'est l'activité des attaquants !
Méthodes : force brute, analyse de fréquence, exploitation de failles, etc.
• Déchiffrement = avec la clé (légitime)
• Décryptage = sans la clé (attaque)
🦊 Mise en situation : Alice et les renards
Contexte :
Alice est biologiste et étudie une colonie de renards roux dans une réserve naturelle. Elle a fait une découverte scientifique majeure : elle a observé un comportement de communication unique chez ces renards, qui pourrait révolutionner notre compréhension de l'intelligence animale.
Elle souhaite partager ses observations détaillées avec son collègue Bob, un autre chercheur, mais elle a un problème...
- Alice et Bob communiquent par email pour échanger leurs données de recherche
- Un concurrent malveillant, Charlie, surveille le réseau et intercepte tous les emails
- Si Charlie lit les découvertes d'Alice, il pourrait publier les résultats avant elle et s'attribuer la découverte
- Les emails transitent en clair sur Internet : n'importe qui peut les lire !
👤
Charlie (concurrent espion)
Peut lire tous les messages en clair !
Message qu'Alice veut envoyer :
- Charlie peut intercepter et lire le message
- Il pourrait voler la découverte et publier avant Alice
- Les années de recherche d'Alice seraient compromises
- Sa réputation scientifique serait ruinée
Même si Charlie intercepte l'email, il ne pourra lire qu'un charabia incompréhensible.
🔤 Les chiffrements monoalphabétique et polyalphabétique
1.1 Chiffrement monoalphabétique
Un chiffrement monoalphabétique remplace chaque lettre du message par une autre lettre selon une règle fixe.
Caractéristique : Une même lettre est toujours remplacée par la même lettre chiffrée.
Exemple : Le chiffrement de César
Le chiffrement de César décale chaque lettre d'un nombre fixe de positions dans l'alphabet.
Clé : Le nombre de décalages (exemple : 3)
Exemple de chiffrement :
- Message clair :
RENARD - Avec décalage de 3 :
UHQDUG
Détail :
- R → U (R + 3)
- E → H (E + 3)
- N → Q (N + 3)
- A → D (A + 3)
- R → U (R + 3)
- D → G (D + 3)
Très vulnérable à l'analyse de fréquence ! En français, la lettre "E" est la plus fréquente. Si on voit qu'une lettre apparaît souvent dans le message chiffré, c'est probablement le "E" chiffré.
1.2 Chiffrement polyalphabétique
Un chiffrement polyalphabétique utilise plusieurs alphabets de substitution.
Caractéristique : Une même lettre peut être chiffrée différemment selon sa position dans le message.
Avantage : Résiste beaucoup mieux à l'analyse de fréquence.
Exemple : Le chiffrement de Vigenère
Utilise un mot-clé qui se répète pour déterminer le décalage de chaque lettre.
Exemple :
- Message :
RENARD - Clé :
FOX(qui se répète : FOXFOX)
| Lettre du message | Lettre de la clé | Décalage | Lettre chiffrée |
|---|---|---|---|
| R | F | +5 | W |
| E | O | +14 | S |
| N | X | +23 | K |
| A | F | +5 | F |
| R | O | +14 | F |
| D | X | +23 | A |
Résultat : RENARD devient WSKFFA
1.3 Chiffrement mathématique
Un chiffrement mathématique modélise le chiffrement comme une fonction appliquée au message, contrôlée par une clé.
- Chiffrement : on note
c = E_k(m)oùmest le message clair,kla clé,cle message chiffré. - Déchiffrement : on note
m = D_k(c)avecD_kla fonction inverse associée à la clé.
Selon les algorithmes, E_k et D_k utilisent des opérations déterministes (décalage modulo 26, XOR, arithmétique modulaire, etc.).
D_k(E_k(m)) = m
🔐 Le chiffrement symétrique
Le chiffrement symétrique utilise la même clé pour chiffrer et déchiffrer un message.
Analogie : Comme un cadenas avec une seule clé qui peut à la fois verrouiller et déverrouiller.
(incompréhensible)
Étapes :
- Alice et Bob se mettent d'accord sur une clé secrète K (en privé)
- Alice chiffre son message avec la clé K
- Alice envoie le message chiffré à Bob
- Bob déchiffre le message avec la même clé K
🛠️ Exercices pratiques de chiffrement
Rappel : La table ASCII
ASCII (American Standard Code for Information Interchange) est une table qui associe chaque caractère à un nombre.
| Caractère | Valeur ASCII (décimale) |
|---|---|
| A | 65 |
| B | 66 |
| ... | ... |
| Z | 90 |
| a | 97 |
| b | 98 |
| ... | ... |
| z | 122 |
| 0 | 48 |
| 1 | 49 |
| Espace | 32 |
Exercice 1 : Chiffrement XOR
L'opération XOR compare deux bits et retourne :
- 0 si les bits sont identiques
- 1 si les bits sont différents
| A | B | A XOR B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Propriété magique : Si on applique XOR deux fois avec la même clé, on retrouve le message original !
Message : FOX
Clé : KEY
Consigne : Chiffrer le message en utilisant l'opération XOR.
Étape 1 : Convertir en ASCII
- F = 70
- O = 79
- X = 88
- K = 75
- E = 69
- Y = 89
Étape 2 : Convertir en binaire
- F = 70 = 01000110
- K = 75 = 01001011
Étape 3 : Appliquer XOR bit par bit
Le caractère ASCII 13 n'est pas imprimable, mais c'est normal en chiffrement !
Exercice à faire : Complétez le chiffrement pour O⊕E et X⊕Y.
Exercice 2 : Chiffrement de César
Message à chiffrer : RENARD ROUX
Clé (décalage) : 7
Consigne :
- Chiffrer le message avec un décalage de 7
- Déchiffrer le message :
ZLJHYL(décalage de 7)
Aide :
Pour chiffrer, ajoutez 7 à chaque lettre. Si vous dépassez Z, revenez à A.
Exemple : R + 7 = Y
Exercice 3 : Chiffrement de Vigenère
Message : ALICE
Clé : BOB
Consigne : Chiffrer le message.
Méthode :
- Répéter la clé :
ALICE→BOBBO - Pour chaque lettre, ajouter le décalage correspondant :
- A + B (décalage 1) = B
- L + O (décalage 14) = Z
- I + B (décalage 1) = J
- C + B (décalage 1) = D
- E + O (décalage 14) = S
- Message chiffré :
BZJDS
🔢 Algorithmes de chiffrement modernes
AES (Advanced Encryption Standard)
AES est l'algorithme de chiffrement symétrique le plus utilisé aujourd'hui.
- Adopté en 2001 par le gouvernement américain
- Tailles de clé : 128, 192 ou 256 bits
- Utilisé partout : WiFi (WPA2/WPA3), VPN, HTTPS, disques chiffrés
- Sécurité : Considéré comme incassable avec les moyens actuels
Temps pour casser AES-256 par force brute :
Avec les ordinateurs les plus puissants actuels : environ plusieurs milliards d'années
DES et 3DES
- Ancien standard (1977)
- Clé de 56 bits
- ⚠️ Obsolète : Trop facile à casser aujourd'hui
- Applique DES trois fois de suite
- Plus sécurisé que DES
- ⚠️ En phase de dépréciation : Remplacé par AES
🔑 Le problème du chiffrement symétrique : l'échange de clés
Comment Alice et Bob peuvent-ils échanger la clé secrète de manière sécurisée ?
Il peut maintenant déchiffrer TOUS les messages !
Solutions historiques (peu pratiques) :
- Rencontre physique : Alice et Bob se rencontrent en personne → Impossible à grande échelle
- Courrier sécurisé : Envoyer la clé par voie postale → Lent et coûteux
- Messager de confiance : Utiliser un tiers → Risque de compromission
Imaginez une entreprise de 1000 employés. Avec le chiffrement symétrique, chaque paire d'employés doit avoir sa propre clé secrète.
Nombre de clés nécessaires : 1000 × 999 / 2 = 499 500 clés à gérer ! 😱
🔐🔓 Le chiffrement asymétrique (ou à clé publique)
Le chiffrement asymétrique utilise deux clés différentes :
- Une clé publique 🔑 (peut être partagée avec tout le monde)
- Une clé privée 🔒 (doit rester secrète)
Propriété magique :
- Ce qui est chiffré avec la clé publique ne peut être déchiffré qu'avec la clé privée
- Ce qui est chiffré avec la clé privée ne peut être déchiffré qu'avec la clé publique
Comment Alice envoie un message confidentiel à Bob
Message clair + 🔑 Clé publique Bob = Message chiffré
Message chiffré + 🔒 Clé privée Bob = Message clair
• Pas besoin d'échanger de secret avant de communiquer
• Les clés publiques peuvent être partagées librement
• Chaque personne n'a besoin que d'une paire de clés (publique/privée)
Beaucoup plus lent que le chiffrement symétrique (100 à 1000 fois plus lent).
1. Utiliser le chiffrement asymétrique pour échanger une clé symétrique de manière sécurisée
2. Utiliser ensuite le chiffrement symétrique (rapide) pour les données
Le meilleur des deux mondes !
🔢 RSA : L'algorithme de chiffrement asymétrique
RSA (Rivest-Shamir-Adleman, 1977) est l'algorithme de chiffrement asymétrique le plus célèbre.
- Basé sur la difficulté de factoriser de très grands nombres
- Tailles de clés courantes : 2048 ou 4096 bits
- Utilisé dans : HTTPS, SSH, signatures numériques, certificats SSL/TLS
Principe mathématique simplifié
Génération des clés (version très simplifiée) :
- Choisir deux grands nombres premiers p et q (exemple : p=61, q=53)
- Calculer n = p × q (exemple : n = 61 × 53 = 3233)
- Calculer φ(n) = (p-1) × (q-1) (exemple : φ(n) = 60 × 52 = 3120)
- Choisir e tel que 1 < e < φ(n) et e soit premier avec φ(n) (exemple : e = 17)
- Calculer d tel que (d × e) mod φ(n) = 1 (exemple : d = 2753)
Résultat :
- Clé publique : (n, e) = (3233, 17)
- Clé privée : (n, d) = (3233, 2753)
Sécurité de RSA :
La sécurité repose sur le fait qu'il est extrêmement difficile de retrouver p et q à partir de n quand n est très grand.
Exemple : Factoriser un nombre de 2048 bits prendrait des milliards d'années avec les ordinateurs actuels.
Autres algorithmes asymétriques
- Avantage : Sécurité équivalente à RSA avec des clés beaucoup plus courtes
- Exemple : Une clé ECC de 256 bits ≈ sécurité d'une clé RSA de 3072 bits
- Utilisé dans : Bitcoin, appareils mobiles, cartes à puce
- Plus rapide que RSA
👥 Le problème : Human-in-the-Middle
Nous avons vu que le chiffrement asymétrique résout le problème de l'échange de clés. Mais un nouveau problème apparaît : Comment être sûr qu'on communique avec la bonne personne ?
Résultat : Charlie peut lire et même modifier tous les messages entre Alice et Bob sans qu'ils s'en rendent compte !
Le chiffrement asymétrique garantit la confidentialité, mais pas l'authenticité ni l'intégrité !
Comment être sûr que la clé publique appartient vraiment à Bob ?
#️⃣ Le hachage : garantir l'intégrité
Un hash (ou empreinte numérique) est le résultat d'une fonction de hachage appliquée à des données.
Fonction de hachage : Transforme des données de taille quelconque en une chaîne de caractères de taille fixe.
"Les renards roux chassent de nuit"
a3f5b8c9e1d...
Propriétés d'une bonne fonction de hachage
- Déterministe : Le même message donne toujours le même hash
- Rapide à calculer
- Effet avalanche : Un changement minime dans le message change complètement le hash
- Irréversible : Impossible de retrouver le message à partir du hash
- Résistance aux collisions : Très difficile de trouver deux messages différents ayant le même hash
Démonstration de l'effet avalanche
Message 1 : RENARD
Hash SHA-256 : 7a8f3e9c... (64 caractères hexadécimaux)
Message 2 : RENART (une seule lettre changée !)
Hash SHA-256 : b2d4c1f8... (complètement différent !)
Algorithmes de hachage courants
- Produit un hash de 256 bits (64 caractères hexadécimaux)
- Standard actuel recommandé
- Utilisé dans : Bitcoin, certificats SSL, signatures
- Produit un hash de 128 bits (32 caractères hexadécimaux)
- ⚠️ OBSOLÈTE : Vulnérable aux collisions
- Encore utilisé pour vérifier l'intégrité de fichiers (checksums)
- Produit un hash de 160 bits
- ⚠️ Déprécié : Collisions trouvées en 2017
- Remplacé par SHA-256
Exercice pratique : Calculer un hash
Contexte : Alice veut envoyer un fichier de données sur les renards à Bob. Elle veut s'assurer que le fichier n'est pas corrompu pendant le transfert.
Méthode :
- Alice calcule le hash SHA-256 du fichier :
a3f5b8c9e1d2... - Alice envoie le fichier ET le hash à Bob (séparément)
- Bob reçoit le fichier et calcule son hash
- Bob compare les deux hash :
- ✅ Identiques → Le fichier est intègre
- ❌ Différents → Le fichier a été modifié ou corrompu
Exercice pratique (Windows) :
Exercice pratique (Linux/Mac) :
À faire : Créez un fichier texte avec votre nom, calculez son hash, modifiez une seule lettre, recalculez le hash et observez la différence !
Utilisations du hachage
- Vérification d'intégrité : Téléchargements, sauvegardes
- Stockage de mots de passe : On ne stocke jamais les mots de passe en clair, seulement leurs hash
- Signatures numériques : On signe le hash du document, pas le document entier
- Blockchain : Chaque bloc contient le hash du bloc précédent
- Détection de doublons : Deux fichiers identiques ont le même hash
✍️ La signature numérique
Une signature numérique est l'équivalent électronique d'une signature manuscrite.
Elle permet de garantir :
- Authenticité : Le message provient bien de l'expéditeur prétendu
- Intégrité : Le message n'a pas été modifié
- Non-répudiation : L'expéditeur ne peut pas nier avoir envoyé le message
Comment fonctionne la signature numérique ?
• Authenticité : Seule Alice possède sa clé privée, donc seule elle peut créer cette signature
• Intégrité : Si le message est modifié, le hash ne correspondra plus
• Non-répudiation : Alice ne peut pas nier avoir signé (sa clé privée est unique)
Différence entre chiffrement et signature
| Aspect | Chiffrement | Signature |
|---|---|---|
| Objectif | Confidentialité | Authenticité + Intégrité |
| Clé utilisée pour créer | 🔑 Clé publique du destinataire | 🔒 Clé privée de l'émetteur |
| Clé utilisée pour lire | 🔒 Clé privée du destinataire | 🔑 Clé publique de l'émetteur |
| Protège contre | Lecture non autorisée | Usurpation d'identité et modification |
• Chiffrer = Utiliser la clé publique du DESTINATAIRE (je veux que lui seul puisse lire)
• Signer = Utiliser la clé privée de l'ÉMETTEUR (je prouve que c'est moi qui envoie)
Exercice : Chiffrement ET Signature
Contexte : Alice veut envoyer un message à Bob qui soit à la fois confidentiel ET authentifié.
Question : Dans quel ordre Alice doit-elle effectuer les opérations ?
Option A :
- Signer le message avec sa clé privée
- Chiffrer le message (+ signature) avec la clé publique de Bob
Option B :
- Chiffrer le message avec la clé publique de Bob
- Signer le message chiffré avec sa clé privée
Réponse : Option A est la bonne pratique !
- On signe d'abord (pour prouver que c'est Alice)
- Puis on chiffre tout (pour la confidentialité)
5. Bob vérifie la signature (clé publique Alice)
✅ Message confidentiel + authentifié
🏛️ Les autorités de certification (CA)
Nous avons vu que les signatures numériques résolvent le problème d'authenticité. Mais une question demeure : Comment être sûr que la clé publique d'Alice appartient vraiment à Alice ?
Une Autorité de Certification (CA - Certificate Authority) est une entité de confiance qui :
- Vérifie l'identité des demandeurs
- Émet des certificats numériques qui lient une clé publique à une identité
- Signe ces certificats avec sa propre clé privée
Exemples de CA : DigiCert, Let's Encrypt, GlobalSign, Sectigo
Un certificat numérique est un document électronique qui contient :
- L'identité du propriétaire (nom, organisation, domaine)
- Sa clé publique
- La période de validité
- La signature de l'Autorité de Certification
Standard : X.509
Chaîne de confiance
Préinstallée dans votre navigateur/OS
Auto-signée, hautement sécurisée
Utilisée au quotidien pour émettre des certificats
Exemple : www.banque.fr
Contient : clé publique du site + identité + signature de l'AC
Vérification d'un certificat
Quand vous visitez un site HTTPS, votre navigateur :
- Reçoit le certificat du site
- Vérifie la signature de l'AC intermédiaire
- Vérifie la signature de l'AC racine (qui est dans votre navigateur)
- Vérifie la date de validité
- Vérifie que le nom de domaine correspond
Si tout est OK : 🔒 Cadenas vert (ou icône de sécurité)
Si problème : ⚠️ Avertissement de sécurité
Dans votre navigateur, cliquez sur le cadenas à côté de l'URL d'un site HTTPS et explorez les informations du certificat !
Vous verrez : l'autorité de certification, la date d'expiration, la clé publique, etc.
🌍 Exemples concrets dans la vie courante
HTTPS (Navigation web sécurisée)
HTTPS = HTTP + TLS/SSL
Protocole TLS (Transport Layer Security) :
- Handshake (poignée de main) :
- Le serveur envoie son certificat (contenant sa clé publique)
- Le navigateur vérifie le certificat
- Le navigateur génère une clé de session symétrique aléatoire
- Le navigateur chiffre cette clé avec la clé publique du serveur
- Le serveur déchiffre avec sa clé privée
- Communication :
- Tout le reste de la communication utilise le chiffrement symétrique (AES) avec la clé de session
- C'est rapide et sécurisé !
• Confidentialité : Personne ne peut lire vos données
• Intégrité : Les données ne sont pas modifiées
• Authenticité : Vous communiquez bien avec le bon site
WhatsApp - Chiffrement de bout en bout
WhatsApp utilise le protocole Signal :
- Chiffrement de bout en bout (E2EE) : Seuls l'expéditeur et le destinataire peuvent lire les messages
- Même WhatsApp ne peut pas lire vos messages !
- Chaque conversation a ses propres clés de chiffrement
- Les clés changent régulièrement (Perfect Forward Secrecy)
Technique :
- Échange de clés avec Diffie-Hellman
- Chiffrement avec AES-256
- Signatures avec Curve25519
Telegram - Chiffrement client-serveur (par défaut)
Mode par défaut (discussions normales) :
- Chiffrement client-serveur, pas de bout en bout
- Messages chiffrés entre vous et le serveur Telegram
- Telegram peut techniquement lire vos messages
- Avantage : Synchronisation sur tous vos appareils
Mode "Secret Chat" :
- Chiffrement de bout en bout (E2EE)
- Pas de synchronisation cloud
- Messages auto-destructibles
- Protocole maison : MTProto 2.0
Signal - Le champion de la confidentialité
- Chiffrement E2EE par défaut (toujours actif)
- Open source : Le code est public et auditable
- Métadonnées minimales : Signal collecte très peu d'informations
- Perfect Forward Secrecy : Si votre clé est compromise, les anciens messages restent sécurisés
- Recommandé par Edward Snowden et les experts en sécurité
Email - PGP/GPG
PGP permet de chiffrer et signer des emails :
- Chaque utilisateur a une paire de clés (publique/privée)
- Les clés publiques sont partagées (serveurs de clés)
- Permet de chiffrer et signer des emails
- Problème : Complexe à mettre en place pour les utilisateurs non techniques
Alternative moderne : ProtonMail (chiffrement E2EE automatique)
VPN (Virtual Private Network)
- Crée un tunnel chiffré entre votre appareil et le serveur VPN
- Tout votre trafic passe par ce tunnel
- Chiffrement : généralement AES-256
- Protocoles : OpenVPN, WireGuard, IKEv2/IPsec
Avantages :
- Cache votre adresse IP
- Protège sur les réseaux WiFi publics
- Contourne les restrictions géographiques
⚠️ Important : Vous devez faire confiance au fournisseur VPN (il peut voir votre trafic) !
Blockchain et Bitcoin
- Hachage SHA-256 : Chaque bloc contient le hash du bloc précédent
- Clés publiques/privées : Votre portefeuille = paire de clés
- Signatures numériques : Chaque transaction est signée avec votre clé privée
- Preuve de travail : Mining = trouver un hash avec des contraintes spécifiques