Sécurité - Hash et chiffrement
![]() |
Difficulté : Intermédiaire Notions : Cybersécurité, Hashing, chiffrement. |
I. Introduction
Afin de protéger les données sensibles et garantir la sécurité des échanges, les mécaniques cryptographiques jouent un rôle clé dans la cybersécurité. Elles permettent entre autres choses :
- De chiffrer des données sensibles (mots de passes, contenu protégé, données confidentielles, etc...)
- De chiffrer des communications (web, email, protocoles, ...)
- D'authentifier un système ou un utilisateur (signature numérique, empreinte, certificat, etc...)
Il existe pléthore d'algorithmes et de méthodes pour cacher ou protéger de la donnée. On retiendra ici deux concepts majeurs :
- Le hachage.
- Le chiffrement.
Il sera également possible d'aborder la notion de stéganographie.
Trivia : Dû à l'évolution des puissances de calcul et des menaces croissantes, il est nécessaire de constamment adapter les algorithmes de chiffrements afin de les renforcer voire de les abandonner si une méthode a été trouvée pour les 'casser'.
II. Le Hash
2.1 Définition
Le Hash (ou hashing, hachage) est une fonction mathématique qui vise à transformer une donnée de taille variable en une empreinte de taille fixe.
Cette empreinte disposera de propriétés intrinsèques. En effet, par nature
- Non réversible : Il est donc impossible de retrouver le message d'origine
- Déterministe : Une même entrée donnera toujours la même empreinte.
- Non falsifiable : La moindre altération de la donnée d'entrée donnera un hash complètement différent.
De par sa nature, cela rend cette méthode idéale pour le stockage sécurisé de mots de passe, la vérification d'intégrité des téléchargements, les signatures numériques et l'indexation rapide.
La vérification se fera par comparaison.
exemples :
Dans le cas d'un téléchargement, le fournisseur du téléchargement fournit le hash ou somme de contrôle du téléchargement.
Après téléchargement, il est possible de calculer à son tour le hash / checksum et de les comparer à celui fourni par l'éditeur sur la page de téléchargement. Cela permet de s'assurer de l'intégrité des données et de leur non-altération.
Dans le cas de l'authentification, l'utilisateur entre son mot de passe. Celui-ci est Haché et envoyé au serveur d'authentification, celui-ci compare alors le hash reçu et le hash présent en base de donnée pour confirmer que le mot de passe fourni est le bon.
2.2 Algorithmes courants
| Algorithme |
Statut | Usage recommandé |
| MD5 | Obsolète | Aucun (présence de failles majeures) |
| SHA-1 | Obsolète | Aucun (collisions d'entrées) |
| SHA-256 | Sûr | Intégrité des données, signatures |
| SHA-3 | Sûr | Applications |
| bcrypt / scrypt / Argon2 | Très sûr | Stockage de mots de passe |
Le statut des algorithmes se base sur les données de 2025
Attention : Lors du stockage de mots de passe avec sha-256, il faudra utiliser en complément un KDF (Key Derivation Function) comme vu ci-dessus (bcrypt, scrypt, pbkdf2, argon2).
III. Le Chiffrement
3.1 Définition
Le chiffrement (Cypher / Encryption), à l'inverse du hash, a pour vocation à être déchiffré et pas seulement comparé.
Celui-ci sert essentiellement dans les échanges. Pour chiffrer ou déchiffrer de la donnée, il faudra utiliser une ou plusieurs clés.
Il existe deux types de chiffrement, le chiffrement Symétrique et le chiffrement Asymétrique.
Info : Plus la clé de chiffrement est longue, plus le chiffrement sera fort.
3.2 Le chiffrement symétrique
Le principe du chiffrement symétrique est d'utiliser une seule clé qui permettra à la fois de chiffrer et de déchiffrer la donnée.
L'avantage de ce type d'algorithme est qu'il est rapide à mettre en oeuvre. Cela le rend donc idéal pour le chiffrement de gros volumes comme des disques dur ou des bases de données.
L'inconvénient réside dans le fait que si la clé fuite, l'ensemble des données sera simple. Ce qui rend cette clé difficilement partageable.
Les algorithmes les plus courants sont :
| Algorithme |
Type | Statut | Usage recommandé |
| DES | Bloc | Obsolète | aucun |
| 3DES | Bloc | Déprécié | Transition uniquement |
| AES (128,192,256) | Bloc | Standard moderne | VPN, TLS, Chiffrement de disque |
| ChaCha20 | Flux | Très sûr | réseau mobile, environnements connectés. |
A noter que AES s'accompagne également de différentes méthodes pour chiffrer des blocs successifs.
| Algorithme |
Statut | Sécurité | Remarques |
| ECB | Osolète | Mauvais | Révèle les motifs (patterns) de la donnée chiffrée. |
| CBC | Sûr | Bon | Nécessite un IV (Initial Vector) aléatoire |
| CFB / OFB | Sûr | Bon | Flux pseudo-aléatoire |
| GCM | Très sûr | Excellent | Authentifié (AEAD), rapide |
3.3 Le chiffrement asymétrique
Le principe du chiffrement asymétrique est qu'il dépends de deux clé. La première sert à chiffrer la donnée, la seconde à la déchiffrer.
Il s'agit du fameux couple Clé privée / Clé publique que l'on retrouve dans l'architecture PKI.
L'on s'en sert pour échanger des clé de chiffrement de manière sécurisée, pour vérifier les certificats et signatures numériques ainsi que pour de l'authentification par certificats.
Les algorithmes les plus courants sont :
| Algorithme |
Type | Usage recommandé |
| DSA | Signature | Aucun (déprécié) |
| ECDSA | Curve (courbes elliptiques) | Signatures |
| RSA (2048, 3072,4096) | Facteurs premiers | Chiffrement, signature |
| Ed25519 | Curve (courbes elliptiques) | multiple (rapide et sûr) |
| DH (Diffie-Hellman) / ECDH | Echange de clés | TLS, VPN |
IV. Les signatures numériques
4.1 Définition
Le principe de la signature numérique est de garantir authenticité (qui), l'intégrité (non altération) et la non-répudiation.
Le processus de signature et de validation se déroule comme suit :

V. Limitations et bonnes pratiques
5.1 Considérations générales
Lors de l'application des concepts ci-dessus, il conviendra de respecter quelques principes élémentaires :
- Ne pas utiliser d'algorithmes obsolètes, dépréciés ou compromis.
- Préférer des clés fortes dans la mesure du possible.
- Conserver les secrets et clés publiques de manière sécurisée.
5.2 Considérations particulières
5.2.1 Pour le hachage
- Toujours utiliser un KDF (Key Derivation Function) pour les mots de passes.
- Ajouter un salt (sel) unique par utilisateur
Un Salt est un élément aléatoire introduit dans le processus de hachage des mots de passes pour éviter que si plusieurs utilisateurs utilisent le même mot de passe, le hash soit exactement le même.
Exemple sans salt :
| Username | String to be hashed | Hashed value = SHA256 |
user1 |
password123 |
EF92B778BAFE771E89245B89ECBC08A44A4E166C06659911881F383D4473E94F |
user2 |
password123 |
EF92B778BAFE771E89245B89ECBC08A44A4E166C06659911881F383D4473E94F |
Exemple avec salt :
| Username | Salt value | String to be hashed | Hashed value = SHA256 (Password + Salt value) |
user1 |
D;%yL9TS:5PalS/d |
password123D;%yL9TS:5PalS/d |
9C9B913EB1B6254F4737CE947EFD16F16E916F9D6EE5C1102A2002E48D4C88BD |
user2 |
)<,-<U(jLezy4j>* |
password123)<,-<U(jLezy4j>* |
6058B4EB46BD6487298B59440EC8E70EAE482239FF2B4E7CA69950DFBD5532F2 |
5.2.2 Pour le chiffrement symétrique
- Ne jamais réutiliser un IV (vecteur d'initialisation)
Le vecteur d'initialisation (IV) est un bloc de bits utilisé dans le chiffrement pour initialiser le processus de chiffrement.
Il est généralement généré aléatoirement ou pseudo-aléatoirement et est utilisé pour initialiser le premier bloc de donnée lors d'une opération de chiffrement.
Cela garantit que lors du chiffrement, deux blocs identiques en entrée donne des résultats différents en sortie.
Trivia : Cela rend plus difficile les attaques par cryptanalyse en évitant les pattern récurrents.
5.2.3 Pour le chiffrement asymétrique
- Le standard actuel (2025) est d'utiliser des clés supérieures ou égales à 2048 bits.
5.2.4 Autres recommandations
- Utilisation de TLSv1.3 pour les protocoles sécurisés
- Utilisation de clés ed25519 pour le SSH
- Préférer WireGuard pour le VPN client (utilisation de ChaCha20).
Conclusion
En conclusion, dans le monde d'aujourd'hui, la cryptographie n'est pas seulement un moyen technique permettant d'assurer la confidentialité des échanges. C'est un pilier essentiel de la confiance numérique garantissant également l'intégrité et l'authenticité des échanges, d'autant plus primordiale dans une logique d'architecture Zero Trust.
Les méthodes utilisées vont dépendre grandement du besoin à adresser :
| Objectif | Technique | Algorithmes à privilégier |
| Intégrité des données | Hash | SHA-256, SHA-3 |
| Stockage de mots de passe | KDF |
bcrypt, Argon2 |
| Confidentialité | Chiffrement symétrique | AES‑GCM, ChaCha20 |
| Echange de clé | Asymétrique | Diffie‑Hellman, ECDH |
| Signature | Asymétrique + Hash | RSA, Ed25519 |
Trivia : Bitlocker utilise un chiffrement asymétrique AES256 en mode XTS et s'appuie sur un chiffrement matériel grâce à la puce TPM si disponible.


