À la fin de ce cours, les étudiants seront capables de :
Comprendre les fondements théoriques de la cryptographie.
Analyser et implémenter des techniques classiques de chiffrement et de dissimulation de messages.
Utiliser Python pour explorer et tester des concepts cryptographiques.
Relier les méthodes de cryptographie classique aux approches modernes.
1. Introduction à la cryptographie
Concepts fondamentaux :
Définitions de base : chiffrement, déchiffrement, clé publique/privée.
Cryptographie symétrique vs asymétrique.
Étude historique (chiffrement César, Affine).
2. Chiffrement par substitution
Méthodes classiques :
Chiffre César, Affine, et Vigenère.
Analyse de fréquence pour casser les chiffres.
Ateliers en Python : Implémentation du chiffrement César.
Implémentation des algorithmes.
Réalisation d'un programme Python pour effectuer une analyse de fréquence.
3. Techniques de dissimulation
Stéganographie et dissimulation :
Concepts fondamentaux.
Techniques modernes de dissimulation (pixels, images, etc.).
Projet Python :
Création d’un programme pour dissimuler un message dans une image (en utilisant des bibliothèques comme Pillow).
4. Introduction à la cryptographie moderne
Bases des algorithmes modernes :
RSA, AES, DES.
Algorithmes de hachage (SHA-256, MD5).
Exemples en Python :
Génération de clés RSA.
Chiffrement et déchiffrement avec AES (bibliothèque cryptography).
Sécurité et vulnérabilités : Cas pratiques.
5. Projet pratique (5 séances + soutenance)
Sujet : Implémentation et analyse d’une méthode cryptographique.
Les étudiants choisissent une méthode vue en cours (classique ou moderne).
Étapes :
Analyse théorique.
Implémentation complète en Python.
Analyse des performances et de la sécurité.
Soutenance devant leurs pairs.
Cours magistral : Explications théoriques des concepts.
TP interactifs : Implémentations guidées en Python avec des projets évolutifs.
Projets collaboratifs : Les étudiants travaillent en binômes/trinômes.
"Serious Cryptography: A Practical Introduction to Modern Encryption" par Jean-Philippe Aumasson (2017).
Une introduction accessible mais rigoureuse aux concepts et outils de cryptographie moderne.
"Cryptography in Python: Develop Strong Principles of Encryption, Decryption, and Security Protocols" par Simon Monk (2022).
Un guide détaillé pour apprendre la cryptographie en Python.
"Cryptography Engineering: Design Principles and Practical Applications" par Niels Ferguson, Bruce Schneier, et Tadayoshi Kohno (2015).
Bibliothèques Python suggérées :
cryptography : Pour les implémentations modernes.
hashlib : Pour les algorithmes de hachage.
Pillow : Pour les projets de stéganographie.
numpy et matplotlib : Pour les analyses graphiques et statistiques des fréquences.
30% : TP et devoirs réguliers en Python (mini-projets).
30% : Quiz théoriques et techniques.
40% : Projet final avec soutenance.