begin process at 2012 02 16 04:39:02
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité

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

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


 Information sur la source

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurité Classé sous :cryptage, xor, codage, caractère, clé Niveau :Débutant Date de création :16/06/2004 Date de mise à jour :23/11/2005 20:26:33 Vu / téléchargé :15 154 / 353

Auteur : MadM@tt

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (20)
Ajouter un commentaire et/ou une note


 Description

Ces fonctions permettent de coder un texte avec une clé de 1 caractère.
Chaque caractère sera codé avec la clé et le caractère précédent comme ça c'est plus dur à décoder

j'ai bien commenté (je pense) le code affiché dans cette page par contre j'ai pas bcp commenté celui de la source, désolé.

Source

  • ' 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
' 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

 Conclusion

dites moi si vous avez des idées pour améliorer le codage, s'il ya des défauts, des bugs...
et laissez votre commentaire svp ça aide toujours

@ +
MadMatt

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

13 août 2004 14:42:31 :
petit bug corrigé ;-)
23 novembre 2005 20:26:33 :
Ajout des mots clés

 Sources du même auteur

Source avec Zip COMMUNICATION INTER-PROCESSUS (IPC)
Source avec Zip OPÉRATIONS SUR LES CHAINES DE CARACTÈRE OPTIMISÉES ET ÉTENDU...
Source avec Zip Source avec une capture FISHTANK - SCREENSAVER INTERACTIF : AQUARIUM AVEC POISSONS V...
Source avec Zip Source avec une capture RÉCUPÉRER LA TEMPÉRATURE DES DISQUES DURS
Source avec Zip Source avec une capture WIN++ OPTIONS AVANCÉES SUR LES FENETRES ET PROCESSUS WINDOWS...

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) CHIFFREMENT XOR PLUS ROBUSTE par dheroux
Source avec Zip CRYPTAGE MARANT par alpha5
Source avec Zip ACCÈS PAR MOT DE PASSE À FEUILLE EXCEL par mimiZanzan
Source avec Zip CRYPTER-DÉCRYPTER UN TEXTE - TEXTE CRYPTÉ UNIQUEMENT EN MAJ... par Saintache
Source avec Zip Source avec une capture FOLDER PROTECTION par hackoo

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) CRYPTÉ/DÉCRYPTER UN TEXTE SELON UN CLÉ par Jeromedu79
LOGICIEL DE CRYPTAGE UTILISANT L'OPÉRATION XOR ET LA TABLE A... par jejedelajungle
Source avec Zip Source avec une capture CACHER MOT DE PASSE DANS BITMAP - STEGANOGRAPHIE par ym_trainz
Source avec Zip Source avec une capture CRYPTAGE\DECRYPTAGE AVEC DES ALPHABETS DE CRYPTAGES MULTIPLE... par MALIKcpp
FONCTION GÉNÉRIQUE DE REMPLACEMENT DES ACCENTS ET AUTRES CAR... par pifou25

Commentaires et avis

Commentaire de vlad2i le 17/06/2004 03:29:30

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.

Commentaire de vlad2i le 17/06/2004 03:32:17

Pardon, concernant la remarque 1 :

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

Xcuses :P

Commentaire de MadM@tt le 17/06/2004 09:33:14

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

Commentaire de VBsat62fr le 07/08/2004 15:19:04

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.

Commentaire de vlad2i le 07/08/2004 16:35:26

"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é..

Commentaire de vlad2i le 07/08/2004 16:36:08

A aucun moment je n'ai critiqué son code. Juste son idée.

Commentaire de yoman64 le 11/08/2004 19:27:21

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

Commentaire de yoman64 le 11/08/2004 19:30:07

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...

Commentaire de yoman64 le 11/08/2004 19:33:14

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

Commentaire de vlad2i le 11/08/2004 20:02:51

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 :))

Commentaire de MadM@tt le 13/08/2004 14:32:33

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

Commentaire de jnspunk le 16/08/2004 12:23:56

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

Commentaire de vlad2i le 16/08/2004 19:59:16

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 :)

Commentaire de vlad2i le 16/08/2004 20:00:58

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

Commentaire de vlad2i le 16/08/2004 20:01:39

et aussi, A Xor A n'est pas égal à A, mais à 0 pardon

Commentaire de vlad2i le 16/08/2004 20:19:59

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à :)

Commentaire de jnspunk le 16/08/2004 23:43:52

ok merci de t' etre pencher sur la question, je v voir sa :)
Mais je suis toujour intrigué!

Commentaire de jnspunk le 17/08/2004 00:01:24

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 ^^

Commentaire de yoman64 le 17/08/2004 04:23:58

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

Commentaire de jnspunk le 17/08/2004 10:58:27

vi, c sur que c' est cassable mais faut y mettre les moyens ^^

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Puissance de codage d'une clé [ par MadM@tt ] Salut tout le monde,ça fait super longtemps que j'essaie de calculer la puissance de codage d'une clé (lors du codage d'un fichier ou d'un texte).En f Cryptage [ par Blanc ] Bonsoir,J'aimerai savoir si quelqu'un pouvais m'expliquer comment faire pour crypter (du texte par exemple..) (en VB.Net.....) mais pas de crypter ca CRYPTAGE PAR XOR [ par tekila_bandita ] Je suis en train d'ESSAYER de créer un petit prog de cryptage de fichier au niveau binaire par xor, mais je rencontre quelque probleme, voicila p cryptage de données [ par Tikaf ] Bonjour tout le monde,Je travaille actuellement sur une application développée en VisualBasic .NET qui est protégée par cryptage de données dans une clé [ par Tikaf ] Bonjour tout le monde,J'avais écrit le message suivant dans la rubrique "J'AI BESOIN D'AIDE", mais je n'ai pas eu de réponses.J'espère cryptage et decryptage par une clé [ par idream000 ] bonjour je developpe une application monétaire en utilisant la plate-forme VB.net avec une base données SQLserveur. Avant d'enregistrer les données da Cryptage 128, 256 ????? [ par hippo92210b ] Bonjours, Il u a quelque jour, je me suis intéresser de prés au cryptage et j'ai donc pris une source de cryptage RC4et je voudrai que le texte soi c Cryptage TripleDES [ par dheroux ] Bonjour, Je programme sous VB NET 2008. Le cryptage TripleDES s'effectue à l'aide d'une clé de 192 bits (et d'un vecteur) Lorsqu'on génère automatiqu S.O.S ! clé de cryptage xp non sauvegardée avant reinstallation [ par ralfspark ] salut j ai un gros probleme j ai crypté mes photo sous xp (je sais c'est idiot mais trop tard !),et apres avoir reinstallé xp il refuse de les lire et chaine de caractère [ par clovis23 ] Bonjour!je voudrais savoir comment procéder pour récupérer séparement les voyelles et les consonnes d'un mot saisi dans un texte box sous visual basi


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,541 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales