Bonsoir,
Je reviens sur ma remarque du 02/02/2015 car elle peut paraître un peu sibylline. Ce que je voulais dire c'est qu'une string, si elle est utilisée dans un contexte particulier (RichEdit par ex.), peut très bien avoir été "manipulée" par le conteneur (encodage, caractères de contrôle...). Donc pour crypter-décrypter, il ne faut considérer que les octets consubstantiels à la string d'origine... Hum, je ne sais pas si j'ai été bien clair.
Maintenant je voudrais signaler à Seb68970 que le cryptage simple xor par blocs avec une clé immuable est le plus facile à cryptanalyser. Prenons un exemple :
Voici quelques octets du début d'un fichier bmp :
00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF 00 80 80 FF
et voici les mêmes octets cryptés simple xor avec une clé de 8 caractères :
E0 40 1D 17 0C 1D 0E F5 E0 40 1D 17 0C 19 0E F5 E0 40 1D 17 0C 19 0E F5 60 C0 E2 17 8C 99 F1 F5 60 C0 E2 17 8C 99 F1 F5 60 C0 E2 17 8C 99 F1 F5 60 C0 E2 17 8C 99 F1 F5 60 C0 E2 17 8C 99 F1 F5 60 C0 E2 17 8C 99 F1 F5 60 C0 E2 17 8C 99 F1 F5 60 C0 E2 17 8C 99 F1 F5 60 C0 E2 17 8C 99 F1 F5 60 C0 E2 17 8C 99 F1 F5 60 C0 E2 17 8C 99 F1 F5 60 C0 E2 17 8C 99 F1 F5 60 C0 E2 17 8C 99 F1 F5 60 C0 E2 17 8C 99 F1
Les plus perspicaces y verront un pattern se dessiner et se répéter à causes des nombreuses redondances du fichier d'origine... Il est donc nécessaire de "chiader" la méthode de cryptage (ou d'en changer). A titre d'exemple, voici les mêmes octets cryptés avec la même clé mais dont les bits font un décalage à gauche à chaque tour :
2F 41 06 1D A3 51 7B 57 5F 82 0D 3A 46 AB F6 AE BE 04 1A 74 8C 56 ED 5D FD 89 CB E8 98 2D 25 BB 7A 92 97 D0 B1 DA 4A 77 75 A5 2F A0 E3 34 95 EF 6A CB 5F 41 47 E8 2A DE 55 17 BE 83 0E 51 55 BD 2B AF 7D 06 9D 23 AA 7B D7 DF FB 0D BA C6 54 F6 2E 3E F6 1A F4 0C A9 ED DD FD ED 34 68 98 52 DA 3B 7A DA 68 50 B1 A5 B5 F7 75 B4 D0 20 E3 4B 6A 6F 6A 68 A0 C1 47 97 D5 5E 55 D0 41 03 0E 2E AA 3D 2B A0 82 86 9D 5C
C'est déjà mieux non ?
Partager