Skip to content

Feature/aes gcm analyzer #45

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 46 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
80c1f1b
Intégration de AesCbcAnalyzer dans DetecteurCryptoOrchestrateur.
Eunock-web Aug 2, 2025
83cc501
Merge branch 'feature/consoleInterface' of https://github.com/mouwafi…
Eunock-web Aug 2, 2025
a41256c
Debut de l'implementation du code dans la classe principale avec le menu
Eunock-web Aug 2, 2025
f40bb59
Documentation de la fonction d'entropie
e-mandy Aug 2, 2025
0474003
Merge branch 'feature/calculerEntropieShannon' of https://github.com/…
e-mandy Aug 2, 2025
cac3bf5
Suite de l'implementation du code dans la classe principale avec le menu
Eunock-web Aug 2, 2025
8f0dbfc
Essai de fusion (1/2)
e-mandy Aug 2, 2025
eadb52d
Fusion (2/2)
e-mandy Aug 3, 2025
b638a49
Récupération du main (1/2)
e-mandy Aug 3, 2025
ecf4eef
Récupération du main (2/2)
e-mandy Aug 3, 2025
e965801
Mise en place des tests unitaires (1/4)
e-mandy Aug 3, 2025
e119f5d
Revert "Mise en place des tests unitaires (1/4)"
e-mandy Aug 3, 2025
14e759d
Mise en place des tests unitaires (1/4)
e-mandy Aug 3, 2025
3d6332f
Merge branch 'main' of https://github.com/mouwaficbdr/CryptoForensic-…
e-mandy Aug 4, 2025
93fd27d
Update de l'option quitter
wesley-kami Aug 4, 2025
77102c5
Merge branch 'main' of https://github.com/mouwaficbdr/CryptoForensic-…
wesley-kami Aug 4, 2025
52433f7
Mise en place des tests liés à l'analyzer aes cbc
e-mandy Aug 4, 2025
af85ee2
Corrections de typage et de logique
mouwaficbdr Aug 4, 2025
896696a
Correction du comportement à la levée de l'exception
mouwaficbdr Aug 4, 2025
3391403
Correction de la lgoque de test de test_exception_déchiffrer
mouwaficbdr Aug 4, 2025
9b38d27
Corection de la logique de test_verification_texte_dechiffre
mouwaficbdr Aug 4, 2025
275b47a
fix: Utilisation de pathlib pour une gestion portable des chemins.
mouwaficbdr Aug 4, 2025
d662e06
Merge branch 'main' into feature/testsUnitaires
mouwaficbdr Aug 4, 2025
c1c0b22
Revu des fonctions pour une meilleure optimisation
Eunock-web Aug 5, 2025
b8c337b
Creation de la classe Chacha20_Analyzer
Eunock-web Aug 5, 2025
abb4365
Merge branch 'feature/DetecteurCryptoOrchestrateur' of https://github…
wesley-kami Aug 5, 2025
b74715c
Ajout du guide d'utilisation
wesley-kami Aug 5, 2025
5c9e9bb
Merge branch 'main' of https://github.com/mouwaficbdr/CryptoForensic-…
wesley-kami Aug 5, 2025
243ec7f
Fusion de la branch main
e-mandy Aug 5, 2025
ed453b1
Unsaved files
e-mandy Aug 5, 2025
d0e307e
Mise en place de la fonction de génération de clés candidates
e-mandy Aug 6, 2025
fd73f32
Merge branch 'main' of https://github.com/mouwaficbdr/CryptoForensic-…
wesley-kami Aug 6, 2025
2ad2af3
Merge branch 'feature/chacha20_analyzer' of https://github.com/mouwaf…
wesley-kami Aug 6, 2025
3ac1830
prémices du déchiffrement Chacha20
wesley-kami Aug 6, 2025
8e3e468
logique ddecryptage
wesley-kami Aug 7, 2025
3bb38e2
Merge branch 'main' into feature/chacha20_analyzer
wesley-kami Aug 7, 2025
b361f1a
Implementation de la fonction identifier_algo dans la classe chacha20…
Eunock-web Aug 7, 2025
6ba0a41
Correction des erreurs dans la fonction identifier_algo
Eunock-web Aug 7, 2025
64611ee
Merge branch 'main' into feature/chacha20_analyzer
Eunock-web Aug 7, 2025
649fe35
add: Implémentation de Aes_gcm_analyzer.generer_cles_candidates
mouwaficbdr Aug 8, 2025
898a175
Merge branch 'main' of https://github.com/mouwaficbdr/CryptoForensic-…
wesley-kami Aug 8, 2025
445e816
Merge branch 'feature/AesGcmAnalyzer' of https://github.com/mouwaficb…
wesley-kami Aug 8, 2025
820ca94
Merge branch 'main' of https://github.com/mouwaficbdr/CryptoForensic-…
wesley-kami Aug 10, 2025
bbd767c
implémentatino de li'dentification de l'algo
wesley-kami Aug 10, 2025
e14a4d5
update de l'identification
wesley-kami Aug 10, 2025
1ff06be
Merge branch 'main' into feature/AesGcmAnalyzer
wesley-kami Aug 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 12 additions & 5 deletions src/analyzers/aes_gcm_analyzer.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from src.crypto_analyzer import CryptoAnalyzer
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
from cryptography.hazmat.primitives import hashes
from src.utils import calculer_entropie
import re

class Aes_Gcm_Analyzer(CryptoAnalyzer):
Expand Down Expand Up @@ -90,6 +91,7 @@ def generer_cles_candidates(self, chemin_dictionnaire: str) -> list[bytes]:
return clees_candidates

def identifier_algo(self, chemin_fichier_chiffre):

"""
Identifie si le fichier utilise l'algorithme AES GCM.

Expand All @@ -99,13 +101,17 @@ def identifier_algo(self, chemin_fichier_chiffre):
Returns:
float: Probabilité que le fichier utilise AES GCM (0.0 à 1.0).
"""
try:
# Pour l'instant, retourner une probabilité par défaut
# TODO: Implémenter la logique d'identification AES GCM
return 0.5
try :
with open(chemin_fichier_chiffre,'rb') as f:
if len(f.read()) < 28 : # Prise en compte de l'entropie (12 bytes) et du tag (16 bytes) comme taille minimales pour un cryptage AES-GCM
proba = 0.00
if calculer_entropie(f.read()) > 8 :
proba = 0.60
except Exception as e:
print(f"Erreur lors de l'identification de l'algorithme: {e}")
return 0.0

return proba

def dechiffrer(self, chemin_fichier_chiffre, cle_donnee):
"""
Expand All @@ -124,4 +130,5 @@ def dechiffrer(self, chemin_fichier_chiffre, cle_donnee):
return b""
except Exception as e:
print(f"Erreur lors du déchiffrement: {e}")
return b""
return b""