vlad2i
Messages postés285Date d'inscriptionmercredi 20 août 2003StatutMembreDernière intervention13 février 2005 27 oct. 2004 à 18:26
Tout premièrement, la représentation que j'ai faite de la sortie (xxxxxx; xxxxxx; xxxxxx ....) est une représentation hexadécimale, donc 255 serait FF, 65535 FFFFF ... si j'ai mis les <;> c'est pour séparer les différents "chiffres" du code. Dans une implémentation plus "professionelle", on aurait plutot tendance a encoder ce chiffre sous forme d'un entier binaire (65534 = chr$(255) & chr(254)) qui réduit de beaucoup la taille et a l'avantage de séparer plus discrètement (par exemple si tu utilises toujours 4 octets pour encoder un chiffre, plus besoin de mettre explicitement un <;>)
Donc pour répondre clairement à la question, avant de modifier le décrypteur, il faut déjà que je sache comment se présente la sortie de l'encrypteur. Si le nombres de caractères est fixe pour chaque chiffre, alors on pourra se passer des <;> dans le cas contraire je ne vois pas comment :)
Pour s'assurer de la validité du message, on peut placer un MD5 (crypté il assurerait une validité totale, décrypté il peut etre un risque si on connait la taille du message) je peux te donner des exemples.
Robuste, on peut le supposer, étant donné que l'on travaille avec des chiffres, des combinaisons de grands chiffres - la faillibilité du programme réside justement dans la taille des chiffres. Ici, bridé par le type Long de Visual Basic , j'ai du me contenter de "petits" entiers et il s'avère que, meme si le code ici est plus robuste (a coup sur) qu'un Vigenère, XOR (voire DES :P) il n'en reste pas moins discutable face à Rijndael, RSA ...
Dans la théorie, tu peux utiliser de très grands entiers. RSA multiplie des facteurs premiers, et la difficulté pour le casser tient dans la factorisation de grands nombres, forcément d'autant plus longue que le nombre est grand. Mon code additionne plusieurs grands entiers en combinaison. On ne peut pas retrouver directement le code comme avec RSA, mais mon code aurait peut etre, je le suppose, une faiblesse face aux attaques différencielles (cad si on connait un message et sa forme cryptée en ayant le crypteur en libre accès)
Une réponse un peu complexe mais la plus complète possible je l'espère.
Vlad
echoupe
Messages postés21Date d'inscriptionmardi 29 octobre 2002StatutMembreDernière intervention15 mars 2007 27 oct. 2004 à 11:10
Votre code est très intéressant et assez robuste à mon avis. Toutefois, J'aimerais savoir au cas où on éliminerais le caractère <;> lors du cryptage, comment faudrait-il modifier le code du décrypteur? et aussi quel traitement préalable peut-on appliquer au texte crypté afin de s'assurer de sa validité lors du décryptage?
En attendant je vous donnerais bien un 8/10.
vlad2i
Messages postés285Date d'inscriptionmercredi 20 août 2003StatutMembreDernière intervention13 février 2005 7 oct. 2004 à 18:45
tbbuim1> C'est effectivement une simple démonstration technique, je ne cherches pas a te concurrencer, ni d'ailleurs à l'utiliser pour msn !
sunny>"A" 65 en ASCII 41 en hexadecimal = 00101001 en binaire
Alors R K(0)×a(0) ... (le dernier chiffre binaire)×a(0) +(l'avant dernier)×a(1) ...
Pu + Qv = 1 ... c'est le théorème de Bezout, utilisé dans mon programme :) donc il y a assez d'informations (c qd meme pas des maths de niveau sup c une simple equation du premier degré !)
Valà
Vlad
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 7 oct. 2004 à 16:00
Bien, mais tu n'as fait qu'appliquer un principe mathématique. Hors dans mon cas, j'avais fait ce programme exclusivement pour crypter mes messages sous msn. Ce que tu auras du mal à faire car ton programme augmente de trop la taille du message d'origine et tu seras donc limité par msn qui coupera ton message! >:( Et ce dernier sera donc perdu en partie ou en totalité :'( En revanche, tu y gagnes en sécurité, point très positif.
Pas mal, pas mal, tu as bien retenu tes courts de maths ^^ je te mets 8 car ce n'est pas parfait, mais c pas du kk non plus :p
cs_sunny
Messages postés6Date d'inscriptionvendredi 21 décembre 2001StatutMembreDernière intervention 7 octobre 2004 7 oct. 2004 à 09:27
Pas mal, mais tout n'est pas clair, par ex :
Pour crypter, on décompose un nombre K en binaire (ex "A" 41 0101001) puis on crée le code R tel que R = K(0)a(0) + K(1)b(1) ....et la suite K(2)a(2) ou b(2)
Ensuite on a Pu + Qv = 1 , pas assez d'info pour résoudre l'équation à moins de choisir u ou v au hasard.
( si v=0 est-ce que cela marche ?)
u sert à quoi car il n'apparait pas dans la suite des explications
27 oct. 2004 à 18:26
Donc pour répondre clairement à la question, avant de modifier le décrypteur, il faut déjà que je sache comment se présente la sortie de l'encrypteur. Si le nombres de caractères est fixe pour chaque chiffre, alors on pourra se passer des <;> dans le cas contraire je ne vois pas comment :)
Pour s'assurer de la validité du message, on peut placer un MD5 (crypté il assurerait une validité totale, décrypté il peut etre un risque si on connait la taille du message) je peux te donner des exemples.
Robuste, on peut le supposer, étant donné que l'on travaille avec des chiffres, des combinaisons de grands chiffres - la faillibilité du programme réside justement dans la taille des chiffres. Ici, bridé par le type Long de Visual Basic , j'ai du me contenter de "petits" entiers et il s'avère que, meme si le code ici est plus robuste (a coup sur) qu'un Vigenère, XOR (voire DES :P) il n'en reste pas moins discutable face à Rijndael, RSA ...
Dans la théorie, tu peux utiliser de très grands entiers. RSA multiplie des facteurs premiers, et la difficulté pour le casser tient dans la factorisation de grands nombres, forcément d'autant plus longue que le nombre est grand. Mon code additionne plusieurs grands entiers en combinaison. On ne peut pas retrouver directement le code comme avec RSA, mais mon code aurait peut etre, je le suppose, une faiblesse face aux attaques différencielles (cad si on connait un message et sa forme cryptée en ayant le crypteur en libre accès)
Une réponse un peu complexe mais la plus complète possible je l'espère.
Vlad
27 oct. 2004 à 11:10
En attendant je vous donnerais bien un 8/10.
7 oct. 2004 à 18:45
sunny>"A" 65 en ASCII 41 en hexadecimal = 00101001 en binaire
Alors R K(0)×a(0) ... (le dernier chiffre binaire)×a(0) +(l'avant dernier)×a(1) ...
Pu + Qv = 1 ... c'est le théorème de Bezout, utilisé dans mon programme :) donc il y a assez d'informations (c qd meme pas des maths de niveau sup c une simple equation du premier degré !)
Valà
Vlad
7 oct. 2004 à 16:00
Pas mal, pas mal, tu as bien retenu tes courts de maths ^^ je te mets 8 car ce n'est pas parfait, mais c pas du kk non plus :p
7 oct. 2004 à 09:27
Pour crypter, on décompose un nombre K en binaire (ex "A" 41 0101001) puis on crée le code R tel que R = K(0)a(0) + K(1)b(1) ....et la suite K(2)a(2) ou b(2)
Ensuite on a Pu + Qv = 1 , pas assez d'info pour résoudre l'équation à moins de choisir u ou v au hasard.
( si v=0 est-ce que cela marche ?)
u sert à quoi car il n'apparait pas dans la suite des explications
Je vais regarder le code pour voir !!