www.r-krell.de |
Webangebot für Schule und Unterricht, Software, Fotovoltaik und mehr |
Willkommen/Übersicht > Informatik > Informatik mit Java, Teil j) > Vigenère-Übungs-Programm
Bedienungsanleitung:
Bitte Klartext eingeben und verschlüsseln oder direkt
Geheimtext eingeben und dann analysieren
bzw. zerlegen. Vermuteten Schlüssel oben wieder eingeben und
durch Ent.(schlüsseln) testen.
Weitere Hinweise s.u.!
Bitte speichern Sie zunächst die
Programmdatei
Vigenere_mit_Angriff(r-krell.de).jar (16 kB) |
auf Ihrem Computer und starten ("öffnen")
Sie dann die herunter geladene Datei durch Anklicken.
Am besten schieben Sie danach das geöffnete Programmfenster
nach oben links,
sodass Sie gleichzeitig diese Seite lesen können.
Mehr zum Start von Java-Programmen als Application (und nicht mehr als Applet) auf meiner Extraseite Übersicht über meine Java-Programme - Appletprobleme und Downloads, die in einem neuem Tab Ihres Browsers erscheint.
Das polyalphabetische Verschlüsselungs-Verfahren nach Vigenère galt jahrhundertelang als sicher und unknackbar. Erst nach 1900 wurden erfolgreiche Angriffsstrategien entwickelt, um auch bei fehlendem Schlüssel den Geheimtext zu entziffern. Das hier vorgestellte Programm dient dazu, weitere Beispiele wie im nachfolgenden Übungsblatt zu generieren bzw. zu überprüfen. Die Nummern 1) bis 3) im Programm korrespondieren deswegen mit den Nummern im Übungsblatt. Hat man durch "Analysieren" Hinweise auf die Schlüssellänge gefunden, kann der Geheimtext durch "Zerlegen" in entsprechend viele Teiltexte zerlegt werden. Für jeden Teiltext werden automatisch die häufigsten Geheim-Buchstaben angegeben, die dann vermutlich jeweils für das Klartext-e bzw. Klartext-n, -i oder -r, -t, -s, -a stehen. Ist der Schlüssel noch nicht bekannt, kann ein entsprechend vermuteter Schlüssel oben in 1) eingegeben und der Geheimtext durch Betätigen von "Ent." (="Entschlüsseln") in Klartext umgewandelt werden. Kommt kein zufriedenstellender Klartext heraus, sollte der nächsthäufige Klartext-Buchstabe als Chiffre für den häufigsten Geheim-Buchstaben von einem oder mehreren Geheim-Teiltexten probiert werden.
Wird das Programm genutzt, um Klausur- oder Prüfungsaufgaben zu erstellen, sollten Klartext und Schlüssel so gewählt werden, dass die Analyse und das Zerlegen zu eindeutigen Ergebnissen führt und kein zeitraubendes Probieren mit verschiedenen Schlüsseln nötig wird.
Da in alle einzeiligen Textfelder des Programms Eingaben erfolgen können, weist ein ggf. erscheinender Stern "*" auf eine Inkonsistenz der Anzeige hin, weil z.B. der Geheimtext nach Betätigen von "Analyse" oder "Zerlegen" verändert wurde, und daher nicht mehr dem analysierten oder zerlegten Geheimtext entspricht.
Im Kasiski-Test I ('Kasiski-I' im Analyse-Ergebnis) werden Buchstabengruppe gefolgt von allen Positionen ihres Auftretens genannt: So würde xyz-7-24-35 bedeuten, dass die Geheimbuchstabengruppe "xyz" dreimal im Geheimtext auftaucht, nämlich ab Stelle 7, ab Stelle 24 und ab Stelle 35. Daraus können dann die Abstände bzw. die gemeinsamen Teiler der Abstände errechnet werden.
Beim Kasiski-Test II ('Kasiki-II' bzw. Autokorrelationsverfahren) werden die Übereinstimmungen (Koinzidenzen) zwischen dem unveränderten Geheimtext (0) und dem um 1 bis 6 Positionen verschobenen Geheimtext markiert und gezählt.
Beim Friedman-Test werden die Ergebnisse für kappa nach der genaueren und der Näherungsformel angegeben; dann wird das genauere kappa in die gute und in die schlechtere, vereinfachte Längenformel eingesetzt; zum Schluss wird das ungenaue kappa in die schlechte Näherungs-Längenformel eingesetzt. Dieses letzte Ergebnis ist meist völlig unbrauchbar; bei kurzen Texten darf man von der Friedman-Formel ohnehin nicht allzuviel erwarten, weil zu wenige Buchstaben für eine ordentliche Statistik betrachtet werden.
Alles Weitere ist dem nachfolgenden Übungsblatt zu entnehmen, das auch unter
als pdf-Datei angesehen oder herunter geladen werden kann.
zum Seitenanfang / zum Seitenende
zum Seitenanfang / zum Seitenende
Wie man erkennt, ist der Angriff (d.h. das Knacken bzw.
Entschlüsseln eines Vigenère-Geheimtextes ohne
Kenntnis des Schlüssels) um so leichter, je kürzer das
Schlüsselwort ist und um so öfter es deshalb wiederholt
werden muss. Das Verfahren ist hingegen sicher, wenn das
Schlüsselwort nicht wiederholt wird (weil 1. die Länge
des Schlüsselworts mindestens so lang ist wie der Klar- bzw.
der Geheimtext und 2. das Schlüsselwort nicht auch für
weitere Nachrichten verwendet wurde, weil ein Angreifer, der
mehrere Geheimtexte abfängt, sonst daraus einen großen
Geheimtext mit Wiederholung des Schlüsselworts machen
könnte) und wenn das Schlüsselwort keinerlei
Regelmäßigkeiten enthält (insbesondere auch keine
Häufung bestimmter Buchstaben, weswegen ein normaler Text
als Schlüssel unsicher ist).
Die strengen Anforderungen an den Schlüssel sind nur
gegeben, wenn für jede Nachricht eine eigene, völlig
zufällig erzeugte Buchstabenfolge ausreichender Länge
verwendet wird. Da man früher Agenten individuelle
Blöcke mitgegeben hat, wo auf jedem Blatt ein solcher langer
Schlüssel aufgedruckt war, der nur einmal verwendet werden
durfte und dann abgerissen und vernichtet werden musste, spricht
man vom One-Time-Pad (OTP; Einmal-Block) (Eine Kopie des OTP
musste vom Agentenführer natürlich behalten werden,
damit er - als einziger - später die Geheimtexte des Agenten
entschlüsseln konnte).
Das Vigenère-Verfahren mit OTP-Schlüssel ist wirklich
sicher und überhaupt das einzige Verfahren mit 100-%-iger
Sicherheit. Trotzdem ist es heute kaum in Gebrauch, weil es z.B.
für einen Onlinehändler oder eine Bank viel zu
mühsam ist, für jedem potentiellen Kunden bzw. für
jeden Kontoinhaber ein eigenes OTP zu erstellen, ihm das auf
sicherem Weg (z.B. mit einem Panzerfahrzeug) vor der
Kommunikation zukommen zu lassen und im Versandhaus oder der Bank
für jeden Kunden die richtige Kopie geschützt
vorzuhalten. Deshalb begnügt man sich mit unsichereren, aber
praktikablen modernen Verfahren.
Bei der Enigma hatte man jeden Kommunikationspartner den langen, zufälligen Schlüssel selbst mit einer elektro-mechanischen Maschine erzeugen lassen (um die zentrale Erstellung der OTP-Blöcke und den Schlüsselaustausch zu vermeiden). Aber die Maschine erzeugte natürlich nicht wirklich zufällige, sondern nur pseudozufällige Schlüsselwörter. Vorallem aber hatten alle Partner die gleiche Maschine, so dass beispielsweise alle Nachrichten aller U-Boote am selben Tag mit dem gleichen, pseudozufälligen Schlüssel verschlüsselt wurden, wodurch sich eben doch sehr viele Wiederholungen ergaben. Deshalb konnte - wenn auch mit extremem Aufwand - die per Enigma verschlüsselte Kommunikation der deutschen Marine mit ihren U-Booten gegen Ende des zweiten Weltkriegs bekanntlich geknackt und von den Engländern abgehört werden.
zum Seitenanfang / zum Seitenende
zurück zur
Seite „Informatik mit Java, Teil j)"