vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Allgemeine Diskussionen
Zu Tipp 143 
Autor: devnull
Datum: 10.07.02 14:18

Hallo Leute,

da ich mich im Moment mit dem Thema Verschlüsselung ziemlich stark beschäftige, habe ich mich gleich mal um die Verschlüsselung von Tipp 143 gekümmert. Dabei habe ich festgestellt, dass der Algorithmus nicht nur (unnötig) langsam, sondern auch (unnötig) unsicher ist


Jedes Zeichen des Klartextes wird immer mit allen Zeichen des Passwortes (und dessen Positionen) xor-verschlüsselt. Dadurch muss man zur Entschlüsselung nur alle die Zahlen von 0 bis 255 durchtesten (das geht schnell!!), um den Klartext herauszubekommen.


Viel besser wäre eine "reine" Vigenère-Verschlüsselung. Dort wird auch XOR verwendet. Allerdings wird jedes Zeichen des Klartextes nur mit EINEM Zeichen des Passwortes verschlüsselt. Unter der Annahme, dass jedes Passwort-Zeichen echt zufällig gewählt wurde, das Passwort genauso lang ist wie der Klartext und das Passwort nur einmal verwendet wird, ist dieses Verfahren sogar nachgewiesenermaßen das einzig bekannte absolut sichere Verfahren. Hinzu kommt noch, dass es sogar schneller ist als Tipp 143.

Public Function VigenereCode(Original As String, Passwort As String) As String
    Dim i As Long
    Dim aktpos As Long
    Dim bAkt As Byte
    Dim bCode As Byte
 
    VigenereCode = ""
 
    <font color=green>' Passwort auf die Länge des Klartextes bringen</font>
    <font color=green>' Dazu wird z.B. aus "Geheim" dann _
      "GeheimGeheimGehe...."</font>
    aktpos = 1
    For i = Len(Passwort) + 1 To Len(Original)
        Passwort = Passwort & Mid(Passwort, aktpos, 1)
        aktpos = aktpos + 1
        If aktpos > Len(Passwort) Then aktpos = 1
    Next i
 
    For i = 1 To Len(Original)
        bAkt = Asc(Mid(Original, i, 1))
        bCode = Asc(Mid(Passwort, i, 1))
 
        VigenereCode = VigenereCode & Chr(bAkt Xor bCode)
    Next i
 
End Function
Gruß,
Thomas
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Zu Tipp 14374devnull10.07.02 14:18
Re: Zu Tipp 14358devnull11.07.02 19:48
Re: Zu Tipp 143244ModeratorDieter11.07.02 20:24
Re: Zu Tipp 14342devnull11.07.02 21:12

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel