Cryptographie de base
Progression
#Cryptographie de base
À quoi ça sert ?
À quoi ça sert: assurer confidentialité, intégrité et authenticité. Comment: hachage (SHA‑2/3), MAC (HMAC), chiffrement (symétrique/asymétrique), signatures, et pièges à éviter (ECB, IV/nonce réutilisé, mauvaise dérivation de clé).
#Hash (Python)
Chargement de l’éditeur...
#Exercice : Chiffrement symétrique avec Fernet
Implémentez un système de chiffrement symétrique sécurisé en utilisant la bibliothèque Fernet de Python.
#Instructions
- Utilisez
cryptography.fernet.Fernet
pour créer une clé et chiffrer/déchiffrer des messages. - Générez une clé sécurisée et stockez-la de manière appropriée.
- Implémentez des fonctions pour chiffrer et déchiffrer des messages.
- Gérez les erreurs potentielles (clé invalide, message corrompu).
#Exemple de code
pythonpython
1from cryptography.fernet import Fernet2import base643import os4 5def generer_cle():6 """Génère une clé Fernet sécurisée"""7 return Fernet.generate_key()8 9def sauvegarder_cle(cle, fichier):10 """Sauvegarde la clé dans un fichier"""11 with open(fichier, 'wb') as f:12 f.write(cle)13 14def charger_cle(fichier):
Chargement de l’éditeur...
Attention: ne pas réutiliser des primitives sans schéma; préférer libs haut niveau (ex.: Fernet, NaCl).
Ne pas confondre hash et MAC
Un hash seul n’authentifie pas un message. Utilisez HMAC (clé partagée) ou une signature (clé privée/publique) pour l’authenticité.