Aller au contenu principal

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

  1. Utilisez cryptography.fernet.Fernet pour créer une clé et chiffrer/déchiffrer des messages.
  2. Générez une clé sécurisée et stockez-la de manière appropriée.
  3. Implémentez des fonctions pour chiffrer et déchiffrer des messages.
  4. 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é.