Page 1 sur 1

_Crypt_DecryptFile returne true même si la résultat est fausse

Posté : jeu. 01 sept. 2022 16:39
par Mehdi350
j'ai un problème avec la fonction _Crypt_DecryptFile ( $sSourceFile, $sDestinationFile, $vCryptKey, $iAlgID )
j'ai crypter un fichier Excel avec _Crypt_Encrypt avec l'algorithme $CALG_AES_256 et avec $vCryptKey=123
mais lorsque j'ai lancé un brute force pour décrypter ce fichier malheureusement cette fonction Retourne True même si $vCryptKey est diffèrent de 123
Par exemple cette fonction returne true même si $vCryptKey= 27 et 143 et 067
est ce que il ya des troue négative à cette fonction
merci

Re: _Crypt_DecryptFile returne true même si la résultat est fausse

Posté : ven. 02 sept. 2022 00:21
par jchd
C'est normal. Le résultat indique le succès du déchiffrement quelle que soit la clé utilisée. Ca ne veut surtout pas dire que la clé utilisée est la bonne ! C'est vrai pour tout crypto-système.

Une fonction de déchiffrement accepte au minimum un "cyphertext" (le produit du chiffrement d'un texte) et une clé. Elle renvoie soit le "plaintext" correspondant à ces arguments (le message déchiffré avec cette clé), que ça fasse sens ou pas, soit un code indiquant une condition d'erreur.

Mais jamais un déchiffrement ne révèle "tu as utilisé la bonne clé". Il n'y a d'ailleurs aucune possibilité qu'une telle fonction puisse déduire cette information !

Prenons un exemple simple : le chiffrement par XOR.

Tu reçois le "ciphertext" suivant en hexadécimal :
2F 00 07 54 06 41 11 03 11 12 45 1C 55 53 1A 00 11 00 02 00 1D 06 00 53 0F

L'émetteur t'a dit d'utiliser la clé suivante :
63 65 74 74 65 20 63 6C 65 66 20 6F 75 20 75 6E 65 20 61 75 74 72 65 20 21

Tu décodes donc le "plaintext" suivant :
4C 65 73 20 63 61 72 6F 74 74 65 73 20 73 6F 6E 74 20 63 75 69 74 65 73 2E
ce qui signifie, en ASCII :
Les carottes sont cuites.

Si tu avais décidé d'essayer la clé :
66 6C 27 3A 21 38 31 62 31 62 24 6F 75 32 69 73 74 7A 22 64 78 26 67 32 75

tu aurais décodé le "plaintext" suivant :
49 6C 20 6E 27 79 20 61 20 70 61 73 20 61 73 73 65 7A 20 64 65 20 67 61 7A
ce qui signifie, en ASCII :
Il n'y a pas assez de gaz

Il n'y a aucun moyen de discerner la "bonne" clé et donc le véritable message d'origine.

Re: _Crypt_DecryptFile returne true même si la résultat est fausse

Posté : ven. 02 sept. 2022 09:42
par Mehdi350
merci beaucoup JCHD pour cette exemple
Mais à votre avis, est ce que il ya des moyens d'utiliser la fonction _Crypt_DecryptFile pour faire un brute force pour connaitre un mot de passe de cryptage d'un fichier ou non ?

Re: _Crypt_DecryptFile returne true même si la résultat est fausse

Posté : ven. 02 sept. 2022 12:46
par jchd
Le seul moyen c'est de vérifier que le message (fichier) déchiffré a la structure attendue et vérifie les propriétés d'un format particulier, comme pour un .PDF ou .JPG

Par contre, brute force sur du AES-256 avec une longueur de clé inconnue, prévoir un délai et une énorme facture EDF !

Re: _Crypt_DecryptFile returne true même si la résultat est fausse

Posté : ven. 02 sept. 2022 15:47
par Mehdi350
merci bien mon frère pour tes réponses