Skip to content
Merged
Changes from all commits
Commits
Show all changes
35 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
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
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
55 changes: 55 additions & 0 deletions src/analyzers/chacha20_analyzer.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import hashlib
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from rich import print
import os, struct

class ChaCha20_Analyzer:

def filtrer_dictionnaire_par_indices(self, chemin_fichier_chiffre):
pass



def generer_cle_candidates(self, chemin_fichier_chiffre):
'''
Cette fonction se charge de générer les clés candidates pour le déchiffremment du fichier chiffré en utilisant
la dérivation sha256 pour renforcer les clées de chiffrement.


Args:
chemin_fichier_chiffre(str) : Le chemin vers le fichier chiffré

Returns:
cles_candidates (list[bytes]) : Un tableau de clés, chaque clé étant une séquence d'octets

'''

donnees_fichier_filtre = self.filtrer_dictionnaire_par_indices(chemin_fichier_chiffre)

cle_candidates: list[bytes] = []
for cle in donnees_fichier_filtre:
cle_candidates.append(hashlib.sha256(cle).encode(encoding="utf-8"))

return cle_candidates

def dechiffrer(self,chemin_fichier_chiffer : str ,clef :bytes)->str:
if len(clef) != 32 : return ValueError("Erreur : La clé a pas la taille correcte ")
else:
try:
with open(f"data/{chemin_fichier_chiffer}",'rb') as f:
nonce = f.read(16)
texte_chiffrer = f.read()

counter=0
algorithm_chacha20 = algorithms.ChaCha20(clef,nonce)
cipher = Cipher(algorithm_chacha20,mode=None)
decrypteur = cipher.decryptor()
return decrypteur.update(texte_chiffrer)



except Exception as e:
print(f"Une erreur est survenu : {e}")


# print(ChaCha20_Analyzer().dechiffrer("mission2.enc",os.urandom(32)))