CRYPTAGE XOR EN FONCTION D'UNE CLÉ ET DU CARACTÈRE PRÉCÉDENT

vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005 - 17 juin 2004 à 03:29
jnspunk Messages postés 16 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 10 février 2007 - 17 août 2004 à 10:58
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23754-cryptage-xor-en-fonction-d-une-cle-et-du-caractere-precedent

jnspunk Messages postés 16 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 10 février 2007
17 août 2004 à 10:58
vi, c sur que c' est cassable mais faut y mettre les moyens ^^
cs_yoman64 Messages postés 592 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 4 décembre 2008
17 août 2004 à 04:23
Pour utiliser une cle a plusieurs caractere pkoi tu fait pas un truc tout simple genre :

key=255
For i = 1 To Len(Clé)
Key = Key Xor Asc(Mid(Clé, i, 1)) Xor Val(Mid(str(i), 1, 2))
Next

En t-k sa va etre plus dur de casser ton cryptage , mais bon c sur que c'est pas encore incassable :P

@++
YoMan64
jnspunk Messages postés 16 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 10 février 2007
17 août 2004 à 00:01
bah... je suis toujours pas convaincu...
c sur que si on code "blabla" avec une clé "coco" en faisant
'b xor c' puis 'l xor o' puis 'a xor c' etc.. les technique décrite plus haut fonctionne a coup sur.

mais si on code en faisant
'b xor c' puis 'b xor o' puis 'b xor c' puis b xor o' etc etc
je veut dire par la que l' on code chaque caractere de la chaine par tout les caractere de la clé.

Ca veut dire que si on decode 1 niveau de codage il en reste encore 3 pour une clé de 4 caracteres, et là impossible de reperer des mots... et impossible de savoir cb il y a de niveau d' encodage....
Pour une clé de 160 octets il y a 160 niveau d' encodage à décoder, là je voit pas l' interet des techniques cités plus haut :/

Enfin j' aimerais bien voir un programme capable de casser les messages codées par exemple par l' unité que j' ai programé dans la section delphi :) celui des fichier jpg est inutile ^^
jnspunk Messages postés 16 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 10 février 2007
16 août 2004 à 23:43
ok merci de t' etre pencher sur la question, je v voir sa :)
Mais je suis toujour intrigué!
vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005
16 août 2004 à 20:19
Dommage, on m'a devancé :)
Tenez, un décrypteur de XOR :

http://www.vbfrance.com/code.aspx?id=25413

C'est un auteur qui a l'air de s'amuser :)
Son code ne décode que des photos, ca doit pouvoir s'appliquer à d'autres fichiers

Valà :)
vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005
16 août 2004 à 20:01
et aussi, A Xor A n'est pas égal à A, mais à 0 pardon
vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005
16 août 2004 à 20:00
Ah je précise aussi, je l'ai laissé sous entendre :

Avec XOR, si on a le message crypté et le message décrypté on a la clé.

A Xor B = C
A Xor C = B
B Xor C = A
vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005
16 août 2004 à 19:59
jnspunk> En ce qui concerne son code, qui utilise une clé de 1 octet, il suffit de passer 256 possibilités (en cherchant un mot en francais, comme "le", ou si on ne connait pas la langue, der, die, das, the, es ...) et de lire les quelques volontaires pour avoir le code, c'est une analyse simple heuristique, ou tu peux essayer une attaque par dictionnaire...

Ensuite, inutile d'utiliser une clé de 1 Mo sur un fichier (ou un message) qui ne fait que 12 octets, à moins que tu veuilles retrouver la clé.

Pour casser un XOR, on utilise une approche linéaire, ou, mieux, des attaques différentielles. En fait, on cassera d'autant plus facilement le code si on a possibilité de voir le message crypté et le message non crypté. Tu cherches un peu sur le net, pour casser XOR et meme DES, et meme AES (Rijndael),(http://www.cryptosec.org/article.php3?id_article=28) et tu trouveras comment faire ce n'est pas la question.

Quand je dis que XOR est facile à casser, ce n'est ni méchant, ni un compte à régler... C'est un fait établi depuis bien longtemps, et ce, quelle que soit la clé.

AES, dont certains logiciels se vantent de la sûreté est sujet aux memes attaques que DES et 3DES... Il n'y a pas d'algorythme vraiment sûr, ce n'est qu'une question de temps et de puissance de calcul.

Sisi, il y a des algos pour casser RSA si vous cherchez bien. La cryptanalyse est un sujet aussi amusant que le cryptage, je vous assure.

Peut etre je le ferais ce XOR cracker, mais je doute qu'il ait du succes, on est pas trop alter-informatique ici :) (lol) on verra :)
jnspunk Messages postés 16 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 10 février 2007
16 août 2004 à 12:23
dit moi vlad2i, non franchement je voit pas comment casser un message coder par xor.

Si tu masque ton message de départ pour foirer l' analyse heuristique et que tu code avec une clé de 160 octects (et pourquoi pas 1Mo...), tu as aucune chance de trouver la clé!
moi je te souhaite bon courage en tout cas mdrrrrrrrrrr
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
13 août 2004 à 14:32
Effectivement chu vraiment con pour avoir laissé passer une erreur pareille, mais bon l'erreur est humaine, le code est corrigé. Merci yoman

@ + tout le monde
MadMatt
vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005
11 août 2004 à 20:02
yoman > XOR est une opération native sur les bits (eXclusive OR, par opposition au OR ou Inclusive OR)

Tu as 4 portes logiques : AND, OR, NOT et XOR
Tu peux traduire xor par : l'un ou l'autre mais pas les 2

Table de vérité :
a b sortie
0 0 0
1 0 1
0 1 1
1 1 0

En prenant en compte que A Xor A = A, on ne peut pas crypter en utilisant le message comme clé..

Mais cette opération a l'avantage de décourager quelques gens et d'etre le code le + rapide a utiliser au monde (forcément hehe) et donc, le + rapide à décoder (aussi :))
cs_yoman64 Messages postés 592 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 4 décembre 2008
11 août 2004 à 19:33
Ok j'ai trouver le pb ;)
C'est parce que tu utilise 2 fois asc pour key donc sa bug et sa prend juste le premier chiffre .


Voila le code corriger:
' Codage
' Txt c'est le texte à coder
' Clé c'est la clé (1 seul caractère)
Public Function CodXor(ByVal Txt As String, ByVal Clé As String) As String
' Les variables
Dim Key As String
Dim Char As String
Dim ExChar As Long
Dim Ajout As String
' La clé
Key = Asc(Clé)
' Vide la destination
CodXor = ""
' Le caractère précédent celui codé est vide car on est au début
ExChar = 0
' Code le texte
' on code lettre après lettre
For T = 1 To Len(Txt)
' récupère le caractère que l'on traite
Char = Mid(Txt, T, 1)
' Codage Xor du caractère (Char) en fonction de la clé (Key) et du caractère précédent (ExChar)
Ajout = Chr(Key Xor Asc(Char) Xor ExChar)
' Ajoute le caractère codé à la phrase codée
CodXor = CodXor + Ajout
' Sauvegarde le caractère pour le codage de la lettre suivante
ExChar = Asc(Char)
Next
End Function

' Décodage
Public Function DeCodXor(ByVal Txt As String, ByVal Clé As String) As String
' Les variables
Dim Key As String
Dim Char As String
Dim ExChar As Long
Dim Ajout As String
' La clé
Key = Asc(Clé)
' Vide la destination
ExChar = 0
DeCodXor = ""
' Décode le texte avec la même méthode que le codage
For T = 1 To Len(Txt)
Char = Mid(Txt, T, 1)
Ajout = Chr(Key Xor Asc(Char) Xor ExChar)
DeCodXor = DeCodXor + Ajout
ExChar = Asc(Ajout)
Next
End Function
cs_yoman64 Messages postés 592 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 4 décembre 2008
11 août 2004 à 19:30
En passant je crois ke ya un bug :$
Voila je fait :
MsgBox DeCodXor(CodXor("Salut", Chr(2)), Chr(25))
Et sa affiche moi message Salut meme si c'est pas la bonne clef ,alors voila essais darranger sa...
cs_yoman64 Messages postés 592 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 4 décembre 2008
11 août 2004 à 19:27
Vraiment pratique ce truc .
Seul , c'est pas utile mais si on le combine a un autre systeme de cryptage , sa ajoute bcp de protection , merci je ne connaissais pas la technique XOR.
En passant tu pourrais pas expliquer c'est quoi XOR ?
Merci et Bonne Prog

@++
YoMan64
vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005
7 août 2004 à 16:36
A aucun moment je n'ai critiqué son code. Juste son idée.
vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005
7 août 2004 à 16:35
"Contrairement à ce que dit 'vlad2i'"...

Faut pas exagérer : je ne connais pas un seul code qui l'utilise encore...

Quand à PGP, non, dsl, il n'y a pas de XOR...
Comme je le dit plus haut, sa faiblesse est dans la linéarité des résultats...

DES est tombé dans l'oubli tant il est fragile...

Enfin ceux qui y tiennent, utilisez les, mais vous étonnez pas si ca casse

Quand à c2i (Richard Clark ?) je ne vois pas le moindre rapport avec moi, désolé..
VBsat62fr Messages postés 56 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 23 août 2017
7 août 2004 à 15:19
Bonjour,
Tout code est bon en soi, même si le niveau est débutant. Continue dans cette voix, les arcanes des API et de l'assembleur te feront franchir les limites de VB ou autres d'ailleurs.
Contrairement à ce que dit 'vlad2i', le XOR est encore très utilisé dans les algo de codage. Tiens au fait 'vlad2i' ton pseudo me laisse supposer que tu peux expliquer l'algo du c2i ? En es-tu là ?
D'ailleurs les PGP, DESS et les différents autres codages sont à base de XOR, LSR, RSL donc de bon vieux algo assembleur!
Ton code est un début et est-il important de savoir cracker un code ou de comprendre son algo ? La question reste posée ?
Pour info j'ai eu l'occasion aux débuts de l'informatique d'utiliser un Oric matériel tombé en désuétude depuis et dans le domaine public, SI, SI !
Eh bien j'ai pris beaucoup plus de plaisir à comprendre comment faisait les programmeurs pour charger leur programmes qui étaient splittés sur cassette que du résultat effectif d'avoir cracké ces derniers. D'ailleurs c'était pour la bonne cause et pouvoir les récupérer pour émulation actuelle, nostalgie quand tu nous tiens...

A +, VBsat62fr.
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
17 juin 2004 à 09:33
Salut vlad2i
lol si t'es pas méchant d'habitude alors d'accord j'accepte tes remarques.
Enfin bon ce code c'est du niveau 1, et puis ça permet à des débutants comme moi de passer à autre chose que du codage Xor simple. Si comme tu dit on peut casser le code hyper facilement alors ok je capitule le codage Xor n'a pas beaucoup d'avenir. Donc je vais essayer de trouver sur ce site des chose plus compliquée mais j'espère que ce code aidera quelques un à s'entrainer dans le domaine du cryptage.
Et si cette source existe déjà sur le site je ne l'avais pas vu, je m'excuse.
Bon tchao à tous
MadMatt

au fait l'idée du Xor cracker c'est pas mal lol
vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005
17 juin 2004 à 03:32
Pardon, concernant la remarque 1 :

- "on casse un code de 256 OCTETS en pas une MILLIseconde"

Xcuses :P
vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005
17 juin 2004 à 03:29
Je ne suis pas méchant d'habitude...

1. Le codage XOR est déjà assez pas fiable comme ca (attaque linéaire et heuristique, on casse un code de 256bits en pas une seconde)

2. Au moins tu aurais pu avoir fait l'effort d'utiliser une clé de plusieurs lettres, ca change peu de choses...

3. En cherchant un peu, on voit des codes comme ca un peu partout sur le site ...

Tu aurais pu chercher à faire un XOR Cracker plutot boy...
Non sérieusement, ton ca revient à changer l'ordre des tables ascii (256 possibles, donc on teste 256 possibilités) avant d'avoir à coup sûr ton message, et meme par là ton code...

(D'autant plus qu'avec un clavier on ne peut saisir que 100 lettres a peu près)

Si tu veux crypter utilise DES, RC4 ou GPG hehe
Tu n'expliques meme pas ce que c'est hehe le cryptage XOR hehe

Alors à défaut, explique :P

Vlad qui aide les gens en étant méchant des fois mais pas souvent.
Rejoignez-nous