Ce projet simule un SOC (Security Operations Center) doté d'une Intelligence Artificielle. Il est capable d'intercepter des trames de texte chiffré inconnues, d'en déterminer l'algorithme cryptographique sous-jacent grâce au Machine Learning, puis de tenter un décodage autonome en s'appuyant sur des règles heuristiques et du NLP (Natural Language Processing).
L'IA a été entraînée sur un jeu de données dynamique et bilingue (Français/Anglais) pour reconnaître les signatures mathématiques de 10 algorithmes différents :
Texte Clair, Base64, Hexadécimal, Binaire, Morse, César, Atbash, Vigenère, Playfair et AES.
- 🧠 Détection IA (Random Forest) : Analyse de 9 caractéristiques mathématiques complexes (Entropie de Shannon, Indice de Coïncidence, Ratio J/W, etc.) pour classifier le texte avec plus de 95% de précision.
- 🌐 Analyse Linguistique Bilingue (NLP) : Utilisation de dictionnaires de fréquence FR/EN pour valider les décryptages par force brute (ex: César) sans intervention humaine.
- 🔀 Routage Intelligent : Le système sait résoudre de lui-même les ambiguïtés mathématiques (ex: l'IA confond l'Atbash et le César car leurs entropies sont identiques. Le SOC teste l'Atbash en millisecondes avec le NLP, valide, ou redirige vers César).
- 🖥️ Interface Web Réactive : Une application web élégante propulsée par Streamlit pour une utilisation simple et fluide.
Le pipeline est divisé en 4 modules indépendants :
datagen.py(L'Usine à Données) : Génère un dataset massif de 30 000 échantillons chiffrés à partir de livres PDF (bilingue) avec des tailles de fragments dynamiques (100 à 600 caractères).feature_engineering.py(L'Extracteur) : Transforme les textes bruts en un DataFrame de signatures mathématiques pures.train_model.py(Le Cerveau) : Entraîne l'algorithme d'apprentissage supervisé (Random Forest) et sauvegarde le modèle optimisé (modele_crypto.pkl).decoders.py&app_web.py(L'Interface et les Outils) : L'interface utilisateur qui intercepte les requêtes, interroge le modèle IA, et exécute les fonctions de décodage appropriées.
Assurez-vous d'avoir Python 3.8 ou supérieur installé sur votre machine.
Clonez ce dépôt puis installez les dépendances requises via le fichier requirements.txt :
git clone https://github.com/YacIneTheBox/CryptographyMLSorting.git
cd CryptographyMLSorting
pip install -r requirements.txtSi vous souhaitez regénérer le modèle depuis zéro (nécessite des fichiers .pdf dans un dossier Ressources/) :
python DataGeneration/datagen.py
python FeaturesEngineer/feature_engineering.py
python FeaturesEngineer/train_model.pyPour démarrer le SOC et ouvrir l'interface dans votre navigateur local :
streamlit FeaturesEngineer/run app_web.py🎯 Exemples d'Utilisation
Interception de Base64 :
Entrée : Q2UgcHJvamV0IGVzdCBtYWduaWZpcXVlICE=
Réponse du SOC : Détection BASE64 (Confiance 100%) -> Affichage du texte en clair.
Interception de César (Désambiguïsation) :
Entrée : Xn vzts jxy zs yjcyj ij yjxy utzw ajwnknjw qj hfsfq hjfxfw.
Réponse du SOC : Détection César/Atbash -> Échec test Atbash -> Lancement Brute-Force César -> Validation NLP au décalage -5 -> Affichage du texte en clair.
Interception de chiffrement fort (AES) :
Entrée : 4b8c9d2f... (chaîne hexadécimale à entropie maximale)
Réponse du SOC : Détection AES -> Alerte : Décryptage automatique impossible. Algorithme fort détecté. Clé requise.
🛠️ Améliorations Futures
[ ] Ajouter une attaque par dictionnaire bilingue pour casser les clés Playfair simples.
[ ] Intégrer un module de détection de stéganographie (images).
