B01 Caesar-Chiffre

Die Notwendigkeit der Geheimhaltung von Daten ist schon sehr alt. Die zum Transport genutzten Boten erhielten die geheime Nachricht mitgeteilt und eilten dann zum Empfänger – es war nur schlecht wenn der falsche Empfänger den Boten dann mehr oder weniger freiwillig zur Herausgabe der Nachricht „überreden“ konnte.

Die nachfolgende Geheimhaltungsroutine wurde von Julius Caesar benutzt, um die Nachricht vor den Boten zu verbergen. Es handelt sich um einen Verschiebe-Mechanismus, denn die Buchstaben wurden einfach durch einen (z.B. 3 Zeichen) versetzten Buchstaben ersetzt. So wird aus einem „A“ ein „E“ und bei der „Entschlüsselung“ wurde der „geheime“ Buchstabe „E“ um 3 Zeichen zurück gesetzt, so das wieder ein „A“ darauf wurde. Eine genauere Erläuterung bietet Euch der Wikipedia-Artikel.

Das nachfolgende Beispiel führt diese Verschiebungen durch, in dem es jeden Buchstaben des plaintextString um eine definierte Anzahl (hier ist es „3“) stellen nach rechts schiebt und bei der Entschlüsselung jeden Buchstaben des chiffretextStrings wieder um 3 Zeichen nach links schiebt.

Diese Lösung stößt an 2 Stellen an Ihre Grenzen – ich kann ein Alphabet (gezählt ohne Umlaute) mit 2 * 26 Buchstaben und 10 Ziffern maximal um 62 Positionen verschieben, dann bin ich wieder am unverschlüsselten Buchstaben angelangt. Das Programm selber nimmt daran keinen Anstoß und verschiebt die Zeichen auch an Stellen (da der ASCII-Code die Basis bildet) an den sich Steuerzeichen oder andere Zeichen befinden, welche schlecht per Bote übermittelt werden können.

So oder so – die Caesar-Chiffre soll Euch nur ein frühzeitliches Beispiel für eine Geheimhaltungsstrategie geben.

Bitte die nachfolgende Routine nicht für den Echteinsatz nutzen, da sie aus kryptographischer Sicht sehr angreifbar ist !

Hier der komplette Quellcode:

… und das Ergebnis aus der Konsole:

Letzte Aktualisierung: 08.11.2018