einklich.net  > Vigenerizer

14. Oct. 2014

Vigenerizer

Inhalt: Vigenerizer – Zum VerfahrenSurftippDas Vigenère-Quadrat

Vigenerizer

Dieser Vigenerizer ver- und entschlüsselt Texte nach dem Vigenère-Verfahren. Obwohl das Verfahren auch heute noch sicher ist, wenn man bestimmte Regeln beachtet, ist das hier eher als Spielerei gedacht. Für ernsthafte Verschlüsselung sollte man z.B. PGP benutzen.

Auch für Cäsar-Verschiebung und ROT13 geeignet (unter „Modus“ auswählen).

Wer es etwas farbiger mag, kann auch den grafischen Vigenerizer benutzen – der kann allerdings nur den klassischen Alphabet-Modus.

Eingabe:
Schlüssel:
Aktion: Modus:
Ausgabe:

Anleitung

Javascript muß eingeschaltet sein! Warum?

Verschlüsseln

  1. Im Feld „Eingabe“ den Text eingeben
  2. Schlüssel eingeben und/oder Modus auswählen

    Im alphabetischen Modus ist der Schlüssel ein Wort, im ASCII-Modus kann es auch ein ganzer Satz sein. Lies bitte die Sicherheitshinweise. Im Cäsar- und ROT13-Modus sind die Schlüssel schon festgelegt.

  3. Button „Verschlüsseln“ drücken
  4. Der verschlüsselte Text steht im Feld „Ausgabe“

Entschlüsseln

  1. Im Feld „Eingabe“ den verschlüsselten Text eingeben
  2. Schlüssel eingeben und/oder Modus auswählen
  3. Button „Entschlüsseln“ drücken
  4. Der entschlüsselte Text steht im Feld „Ausgabe“

Auswahlfeld „Modus“

Alphabet

Das ist die klassische Vigenère-Anwendung. Verarbeitet werden nur die 26 Buchstaben von A bis Z. Alle anderen Zeichen (auch Leerschritte, Ziffern und Umlaute!) werden unverändert ins Kryptogramm übernommen, zählen aber als Zeichen, d.h. sie „verbrauchen“ einen Schlüsselbuchstaben. Groß- und Kleinschreibung wird beibehalten.

ASCII

Alle druckbaren ASCII-Zeichen (Code 32 bis 126) werden rotiert, dazu gehören Groß- und Kleinbuchstaben, Leerzeichen, Ziffern und Satzzeichen. Im Kryptogramm sind daher keine Wortzwischenräume mehr zu erkennen. Auch im Schlüssel sind alle ASCII-Zeichen von 32 bis 126 erlaubt. Nicht rotiert werden Umlaute und andere Sonderzeichen!

Cäsar / ROT13

Verschlüsselt wird alphabetisch nach der Cäsar-Verschiebung (3 Zeichen vorwärts) oder nach ROT13 (13 Zeichen – ob vorwärts oder rückwärts, ist in dem Fall egal). Da der Schlüssel dafür bereits feststeht, ist es keine wirklich sichere Verschlüsselung, eher eine Verschleierung.

Sicherheitshinweise

Schlüssellänge

Je länger ein Schlüssel ist, desto sicherer ist die Verschlüsselung. Einfache Wiederholungen wirken nicht als Verlängerung – „ABCABCABC“ ist derselbe Schlüssel wie „ABC“.

Mehr zur Schlüssellänge unten im Abschnitt „Sicherheit weiter steigen“.

Schlüsselgeheimnis

Da der Verschlüsselungs-Schlüssel gleichzeitig der Entschlüsselungs-Schlüssel ist, muß er natürlich sorgfältig geheim gehalten und vor allem auch geheim übermittelt werden.

Klartextgeheimnis

Probier mal Folgendes: Fang eine Nachricht mit „Hallobeisammen“ an (plus beliebig viel Text dahinter) und verschlüssel sie mit einem beliebigen Schlüssel. Merk dir den Schlüssel. Jetzt nimm das Kryptogramm, gib als Schlüssel „Hallobeisammen“ ein und entschlüssel das. Im Klartextfenster siehst du – deinen Schlüssel! Mit dem kannst du jetzt problemlos alles entschlüsseln ...

Das ist der Nachteil des Verfahrens: Wer Kryptogramm und ausreichend viel Klartext hat, hat sofort auch den Schlüssel. Deshalb müssen alle Klartexte peinlich geheim gehalten werden, auch wenn man sie nicht mehr braucht! Am besten vernichtet man sie nach dem Entschlüsseln sofort.

Aus demselben Grund solltest du erratbare Grußfloskeln, wie im Beispiel oben, entweder nicht mit verschlüsseln oder sogar ganz darauf verzichten.

Das ist ein Nachteil von sogenannten symmetrischen Verfahren, wo der Verschlüsselungs-Schlüssel auch der Entschlüsselungs-Schlüssel ist. Heute benutzt man asymmetrische Verfahren wie z.B. PGP, die diesen Nachteil nicht haben.

Warum Javascript?

Bist du erstaunt darüber, daß ich eine Verschlüsselung, also einen sicherheitsrelevanten Vorgang, mit Javascript realisiere, wo man doch immer wieder über Javascript-Sicherheitslücken liest?

Ob Du’s glaubst oder nicht: Javascript ist in diesem Fall die sicherste Lösung, die es gibt. Natürlich könnte ich die Verschlüsselung auch auf dem Server mit einem Perlskript erledigen. Aber dazu wäre es nötig, daß mein Perlskript deinen Schlüssel erfährt – und genau das mußt du bei diesem Verfahren mit absoluter Sicherheit ausschließen! Niemand außer dir und dem Empfänger darf den Schlüssel kennen! Wirklich niemand!

Ein Javascript läuft ausschließlich in deinem Browser. Die Daten verlassen deinen Rechner nicht. Das bedeutet maximale Sicherheit. Wenn du magst, kannst du diese Seite auch abspeichern und die Verschlüsselung dann ohne Internet-Verbindung offline vornehmen.

Außerdem liegt auf diese Weise der Quellcode offen (einfach „Ansicht → Quelltext“ wählen) – du kannst dich jederzeit davon überzeugen, daß das Skript keine Schweinereien mit deinen Daten macht :)

Zum Verfahren

Antike Kryptographie

Schon Gaius Julius Cäsar hat seine Botschaften über eine alphabetische Rotation, also eine zyklische Verschiebung der Buchstaben, vor unerwünschten Lesern verborgen. Sein Verfahren – eine starre Rotation um drei Zeichen – war zwar einfach zu knacken, aber für neugierige Augen mathematisch ungebildeter Legionäre offenbar sicher genug.

Unsicher ist eine starre Rotation vor allem deshalb, weil jeder Klartextbuchstabe immer durch den selben Kryptobuchstaben ersetzt wird, auch dann, wenn man das Alphabet vorher verwürfelt. Eine einfache Häufigkeitsanalyse an einem nicht ganz kurzen Text kann die Verschlüsselung der meisten Buchstaben dann einigermaßen sicher ermitteln: der häufigste wird wohl für E stehen.

Die Französische Revolution der Verschlüsselung

Im 16. Jahrhundert entwickelte der französische Diplomat Blaise de Vigenère ein raffinierteres Verfahren, wobei er Cäsars Rotation einklich nur minimal weiterentwickelte. Der entscheidende Unterschied: Er benutzte keine starre Verschiebung um einen festen Wert für den ganzen Text, sondern jedes Zeichen bekommt seinen eigenen Verschiebungswert.

Das funktioniert so: Erst vereinbart man ein Schlüsselwort. Dann wird jedem Zeichen des Klartextes genau ein Zeichen des Schlüssels zugeordnet, beim ersten angefangen. Ist der Klartext länger als der Schlüssel, fängt man beim Schlüssel einfach vorn wieder an. Das erste Schlüsselzeichen gibt an, welche Rotation auf das erste Klartextzeichen anzuwenden ist. Ist der Schlüsselbuchstabe A, wird der Klartextbuchstabe überhaupt nicht rotiert (bleibt also, wie er ist), ist der Schlüsselbuchstabe Z, wird der Klartextbuchstabe um 25 Stellen rotiert (aus A wird Z, aus B wird wieder A und so weiter). Dann gehts mit dem zweiten Klartextzeichen und dem zweiten Schlüsselbuchstaben weiter, bis alles verschlüsselt ist.

Das Schöne an dem Verfahren: es ist mit einem Vigenère-Quadrat recht einfach auf dem Papier zu bewerkstelligen, aber trotzdem (wenn überhaupt) nur mit großem Aufwand zu knacken, solange man sichere (d.h. unerratbare und möglichst lange) Schlüssel verwendet.

Durch die dynamische Verschlüsselung ist auch ein Analyseversuch über Buchstabenhäufigkeiten nicht ganz so einfach, weil es ja keinen festen Zusammenhang mehr zwischen Kryptogrammbuchstaben und Klartextbuchstaben gibt. Ein E im Klartext kann – je nach Schlüsselbuchstabe – als L, W, X, F oder sonstwas im Kryptogramm auftauchen.

Sicherheit weiter steigern

Sicherheit gegen einfache Angriffe erreicht man beim klassischen Vigenère-Verfahren schon dadurch, daß man nur die normalen Buchstaben A–Z benutzt, also keine Umlaute und keine Ziffern, weil die nicht verschlüsselt werden. Außerdem kann man auch auf Wortzwischenräume verzichten, damit ein Angreifer keine Wortgrenzen mehr erkennt. Ist dann zwar auch für den Empfänger schwerer lesbar; aber man kann ja zum Beispiel alle Wortzwischenräume durch X ersetzen.

Das bietet aber noch keine Sicherheit gegen professionelle Kryptoanalyse, wie der englische Mathematiker Charles Babbage Mitte des 19. Jahrhunderts zeigte, indem er ein Vigenère-Kryprogramm entzifferte (aber nicht das Verfahren an sich knackte!). Sein Angriff beruht darauf, daß der Schlüssel meist viel kürzer als die Nachricht, und dann lassen sich immer noch Muster erkennen. Die relative Buchstabenhäufigkeit verschiebt sich dann periodisch, wobei die Periodenlänge der Schlüssellänge entspricht. Um dem Babbage-Angriff zu begegnen, sollte der Schlüssel mindestens ein Viertel bis ein Drittel so lang sein wie der Klartext, lieber noch länger, um möglichst wenig Wiederholungen zu bekommen. Nur werden dadurch die Schlüssel auch schwierig zu merken.

Wenn sich im Kryptogramm keine Muster erkennen lassen, bleibt dem Angreifer nur noch die sogenannte brute-force-Attacke: alle möglichen Schlüssel durchprobieren, bis etwas sinnvoll Aussehendes herauskommt (lies dazu auch den nächsten Absatz). Bei einem einfachen Alphabet-Schlüssel mit zehn Buchstaben sind das 26¹⁰ Möglichkeiten – anders ausgedrückt: über 140 Billionen. Wer pro Sekunde eine Million Schlüssel ausprobieren kann (das geht nur mit einem Großrechner), braucht ungefähr viereinhalb Jahre, bis er die alle durch hat. Er kann also nur darauf hoffen, gleich zu Anfang auf den richtigen Schlüssel zu stoßen. Und woher soll der Angreifer wissen, wie lang der Schlüssel ist?

Ist der Schlüssel ebenso lang wie der Klartext, dann hilft einem Angreifer auch die brute-force-Methode nicht mehr. Denn wenn er beim Entschlüsseln auf einen sinnvollen Klartext stößt, weiß er immer noch nicht, ob es auch der richtige ist!

Nimm einmal das Kryptogramm CGGFD. Mit dem Schlüssel SCPGZ erhältst Du den Klartext KERZE, mit dem Schlüssel XMCSY erhältst Du FUENF, mit dem Schlüssel KNGOK erhältst Du START und so weiter. Alles sinnvolle Wörter. Woher weißt Du, welcher Schlüssel der richtige ist? Erst wenn die Fortsetzung mit demselben Schlüssel auch wieder sinnvollen Klartext ergibt, kann man annehmen, den richtigen Schlüssel gefunden zu haben. Das geht aber nur, wenn der Schlüssel kürzer ist als Kryptogramm und Klartext.

Cäsar- und ROT13-„Verschlüsselung“

Das Cäsar-Verfahren und das ROT13-Verfahren, das man heute zur „Verschleierung“ von Texten (gegen unabsichtliches Lesen) benutzt, lassen sich auf das Vigenère-Verfahren abbilden: die Cäsar-Verschlüsselung entspricht einer Vigenère-Verschlüsselung mit dem einfachen Schlüssel D, ROT13 entspricht einer Vigenère-Verschlüsselung mit dem Schlüssel N. Diese Schlüssel setzt der Vigenerizer automatisch.

nach oben

Surftipp

Sehr informativ, interessant, umfassend und doch einfach zu lesen: das Schüler-Webprojekt „Sichere Datenübertragung“.

nach oben

Das Vigenère-Quadrat

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z (Klartextalphabet)
B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C (Cäsar-Alphabet)
E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
N O P Q R S T U V W X Y Z A B C D E F G H I J K L M (ROT-13-Alphabet)
O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z A B C D E F G H I J K L M N O P Q R S T U V W X Y

In der ersten Zeile stehen die Klartextbuchstaben, in der ersten Spalte die Schlüsselbuchstaben. Man geht vom Klartextzeichen abwärts und vom Schlüsselzeichen nach rechts. Am Kreuzungspunkt dieser Linien steht das verschlüsselte Zeichen.

Hier wird der Klartextbuchstabe H mit dem Schlüsselbuchstaben G verschlüsselt. Als Kryptobuchstabe ergibt sich N.

Zum Entschlüsseln geht man erst in der Schlüsselspalte abwärts bis zum richtigen Schlüsselzeichen (G) und von da nach rechts bis zum Kryptobuchstaben N und findet von da aus aufwärts in der Klartextzeile das H.

nach oben