Cryptage a clef unique (vb5 + activex : richtextbox & commondialog)

Description

Bonjours, c'est ma première source alors soyez indulgents, c'est un petit prog. qui permet de crypter avec une clef unique (et donc indécryptable à ce que je pense d'ailleurs dites moi les failles, lourdeurs de codes et autre s.v.p.)....
Ce système est basé sur la méthode d'un article de :
Pour la science No 291 Janvier 2002

Ce principe est : A écrit le message M et crée une clef aléatoire K (basé sur un principe physique (ici la souris + temps) et non algorithmique),
A donne a B la clef K de manière sure (au préalable)
ensuite A crypte M avec K (dans mon exemple par une porte xor) pour donner le message crypté Mc
A fille Mc à B et si C l'intercepte, il n'y verra k'un truc aléatoire... tandis ke B poura le décoder...

Par ce principe, la clef doit être au moins égale à la longueur du message sinon on rejoint l'algo de César (ki consistait à déplacer toutes les lettres du message par un même chiffre) et qui peut être déchiffrer par un cryptanaliste débutant (analyse de fréquences)... (comme moi)

Source / Exemple :


'Pour encoder :

For i = 1 To Len(Text1.Text)  'Text1.text est le Message M (For est pour coder tout ce text)
    a = Asc(Mid(Text1.Text, i, 1))  'a est le chiffre ascii correspondant a la lettre i de M
    t = Asc(Mid(Text3.Text, i, 1))  't est le chiffre ascii correspondant a la lettre i de K
c = a Xor t 'c est le résultat de M xor K
If c = 0 Then 'si le xor = 0 aucuns caractères ascii ne corespondent alors on met le code correspondant à la clef (comme sa au décryptage le xor sera aussi 0 et on mettra aussi le code de la clef)
c = t
End If
Text5.Text = Text5.Text & Chr(c) 'on écrit au fur et a mesure de i le nouveau message Mc formé...
Next i
Text1.Text = Text5.Text
Text5.Text = ""
End If

'Pour générer aléatoirement un nombre (clef K)

' j'ai pris un timer(1ms qui fait une boucle de 1 à 16) et quand on passe sur un des boutons (de 1 à 16 on a :)

Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
bb = 1
Text2.Text = Text2.Text & Chr(aa * bb)
End Sub

'comme sa le nombre est entre 1 et 256 (16^2) et sa correspond à un caractère ascii que l'on rentre dans la clef K

Conclusion :


J'ai corrigé (peu être un peu à l'arache) les bugs flagrants... (M(c) xor K = 0)
Mais j'y ai passé quand même du tps... et j'aimerais savoir ce que vous en penssiez (pas de mé fote d'aurtograf) mé de ce piti prog.
Si vous voulez une explication ou de la doc. sur le cryptage, cryptanalyse demandez-moi mé je suis pas un pro. du tout (jconnais juste 2 - 3 bases)
Sinon vous pouvez allez voir mon site : www.GFAT.clan.st mé il parle de mon clan de jeu... (et un piti truc pour "crypter" vos pages HTML)...
Voilà... bonne prog...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.