Cäsar

Gaius Iulius Caesar soll Nachrichten an seine Feldherren auf folgende Weise verschlüsselt haben: Er notierte seine Nachrichten, indem er jeden Buchstaben durch beispielsweise seinen 5 Nachfolger austauschte. Am Ende des Alphabets angelangt, begann er wieder vorne.

Man kann sich das Alphabet am Einfachsten als ein ringförmig zusammengeklebtes Band vorstellen, auf dem das A sofort wieder nach dem Z folgt. So besitzt jeder Buchstabe beliebig viele Nachfolger.

Satzzeichen, Kleinbuchstaben und Leerzeichen werden nicht berücksichtigt.

mehrfache Anwendung

Um die Sicherheit zu erhöhen, könnte man auf den Gedanken kommen, dass Verfahren mehrfach anzuwenden. Die Sicherheit wird allerdings dadurch keinesfalls erhöht. Verschlüsselt man beispielsweise einen Text mit n und anschließend nochmal mit m, kann man äquivalent dazu auch sofort mit n+m verschlüsseln. Das wäre sogar einfacher und schneller. Im Extremfall, wenn die Summe der einzelnen Schlüssel ein Vielfaches von 26 ist, ergibt sich durch das Verschlüsseln sogar wieder der Originaltext - was hoffentlich spätestens dann auffällt…

Beispiele

Beispiel 1

Verschlüsselt man den Text

Uni Brachbach

bespielsweise mit dem Schlüssel 5, ergibt sich als verschlüsselter Text:

ZSNGWFHMGFHM

Beispiel 2

Wie lautet der verschlüsselte Text, wenn

Kryptologie

mit einem Schlüssel von 9 verschlüsselt werden soll?

Beispiel 3

Der Text

Informatik ist toll

ergibt verschlüsselt:

TYQZCXLETVTDEEZWW

Welcher Schlüsselt wurde verwendet?

Beispiel 4

Ein verschlüsselter Text lautet:

KYVZEWFIDRKZBSLTY

Wie lautet der Originaltext?

Cäsar spricht Java

    public static String caesar(String original, int schluessel) {
        String geheimText = "";
        int num;
        original = original.toUpperCase();//nur Grossbuchstaben
        if (schluessel >= 0) {
            for (int i = 0; i < original.length(); i++) {
                num = original.charAt(i);
                if (num == ' '); //Filtern der Leerzeichen
                else {
                    num += schluessel;
                    if (num > 90) {
                        num -= 26;    //Zurueck ins Alphabet
                    }
                    geheimText += (char) num; //Aufbau des Geheimtextes
                }
            }
        } else {
            for (int i = 0; i < original.length(); i++) {
                num = original.charAt(i);
                if (num == ' '); else {
                    num += schluessel;
                    if (num < 65) {
                        num += 26;
                    }
                    geheimText += (char) num;
                }
            }
        }
        return geheimText;
    }
Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Noncommercial-Share Alike 4.0 International