Cassage de code par "attaque de dictionnaire"
Mister fk
Messages postés
2
Statut
Membre
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai un problème, j'essaye de faire un programme de cassage de code par "attaque de dictionnaire"
En gros : - j'ai un fichier texte crypté en entrée
- j'ai un fichier texte en sortie dans lequel j'aurais mon texte décrypté par méthode "xor" (tout cela je l'ai déjà)
-j'ai fait un générateur de clef de 3 lettres qui me retourne une clef (de 3 lettres ^^ )
mon problème est maintenant : - j'ai un fichier texte dans lequel se trouve les mots du dictionnaire(en partie, mais suffisant ... normalement) un par ligne et mon fichier texte décrypté et je doit déterminer quel clef générée me procure le décryptage le plus cohérent...
mon prototype du générateur de clef :
- unsigned char *cherche_clef(int *char1,int *char2, int *char3);
/*char1 char2 char3 sont les indices du char trouvé dans le tableau qui contient tout les caracteres acceptables pour le decryptage*/
et voila mes sous programme :
void cassage_de_code(FILE* text, FILE* xor_text)
{
int char1 = 0, char2 = 0, char3 = 0;
unsigned char clef[3];
do{
clef = cherche_clef(&char1, &char2, &char3);
cryptage(text, xor_text, clef, 3); //sous programme deja fait qui me decrypte text et me le renvoie dans xor_text
???????? [c'est ici je pense qu'il me manque des chose dont compare_dico] ??????????
}while(char1 != 80 || char2 != 80 || char3 != 80); // test si toute les clef on étaient générées
}
int compare_dico(FILE* xor_text)
{
?????
}
Merci beaucoup de votre aide je commence à péter un plomb xD
Si certaines choses ne sont pas claires vous pouvez me poser des questions =)
j'ai un problème, j'essaye de faire un programme de cassage de code par "attaque de dictionnaire"
En gros : - j'ai un fichier texte crypté en entrée
- j'ai un fichier texte en sortie dans lequel j'aurais mon texte décrypté par méthode "xor" (tout cela je l'ai déjà)
-j'ai fait un générateur de clef de 3 lettres qui me retourne une clef (de 3 lettres ^^ )
mon problème est maintenant : - j'ai un fichier texte dans lequel se trouve les mots du dictionnaire(en partie, mais suffisant ... normalement) un par ligne et mon fichier texte décrypté et je doit déterminer quel clef générée me procure le décryptage le plus cohérent...
mon prototype du générateur de clef :
- unsigned char *cherche_clef(int *char1,int *char2, int *char3);
/*char1 char2 char3 sont les indices du char trouvé dans le tableau qui contient tout les caracteres acceptables pour le decryptage*/
et voila mes sous programme :
void cassage_de_code(FILE* text, FILE* xor_text)
{
int char1 = 0, char2 = 0, char3 = 0;
unsigned char clef[3];
do{
clef = cherche_clef(&char1, &char2, &char3);
cryptage(text, xor_text, clef, 3); //sous programme deja fait qui me decrypte text et me le renvoie dans xor_text
???????? [c'est ici je pense qu'il me manque des chose dont compare_dico] ??????????
}while(char1 != 80 || char2 != 80 || char3 != 80); // test si toute les clef on étaient générées
}
int compare_dico(FILE* xor_text)
{
?????
}
Merci beaucoup de votre aide je commence à péter un plomb xD
Si certaines choses ne sont pas claires vous pouvez me poser des questions =)
A voir également:
- Cassage de code par "attaque de dictionnaire"
- Code ascii - Guide
- Télécharger dictionnaire larousse pdf gratuit - Télécharger - Dictionnaires & Langues
- Code de déverrouillage oublié - Guide
- Dictionnaire medical - Télécharger - Dictionnaires & Langues
- Code puk bloqué - Guide
3 réponses
Bonjour,
Pas bien compris la question, faut dire que je ne connais pas le C.
Si c'est pour savoir si tu as terminé la meilleure méthode est de connaitre un mot qui doit être présent dans le texte. Mais c'est rarement le cas...
Tu peux te baser sur la fréquence des lettres en français : e 15% s 8% a i t n 7% sur un extrait de texte.
https://fr.wikipedia.org/wiki/Fr%C3%A9quence_d%27apparition_des_lettres_en_fran%C3%A7ais
Ou bien sur la fréquence des mots. Difficile d'imaginer un texte sans ' le ' ou ' la ' dedans.
Auquel tu peux éventuellement ajouter qcq mots que tu soupçonnes d'y être : des noms, prénoms
https://eduscol.education.fr/186/liste-de-frequence-lexicale
eric
Pas bien compris la question, faut dire que je ne connais pas le C.
Si c'est pour savoir si tu as terminé la meilleure méthode est de connaitre un mot qui doit être présent dans le texte. Mais c'est rarement le cas...
Tu peux te baser sur la fréquence des lettres en français : e 15% s 8% a i t n 7% sur un extrait de texte.
https://fr.wikipedia.org/wiki/Fr%C3%A9quence_d%27apparition_des_lettres_en_fran%C3%A7ais
Ou bien sur la fréquence des mots. Difficile d'imaginer un texte sans ' le ' ou ' la ' dedans.
Auquel tu peux éventuellement ajouter qcq mots que tu soupçonnes d'y être : des noms, prénoms
https://eduscol.education.fr/186/liste-de-frequence-lexicale
eric
Merci pour ton aide mais pour la comparaison fréquentielle (par "force brut " en c) je vais le réaliser mais plus tard pour l'instant c'est plutôt le code en c qui m'interresse car pour la méthode elle est déjà défini... :-/
Mais merci quand même =)
Mais merci quand même =)