Caesar Verschlüsselung
Die Caesar Verschlüsselung oder Cäsar Chiffre ist ein symmetrisches Verschlüsselungsverfahren , das auf der Verschiebung des Alphabets basiert. In diesem Beitrag erklären wir dir, wie man mit der Caesar Verschlüsselung einen Text verschlüsseln und wieder entschlüsseln kann und ob man das Verfahren als sicher einstufen kann.
Du möchtest die Caesar Verschlüsselung einfach und verständlich erklärt bekommen? Dann ist unser Video genau richtig für dich!
Inhaltsübersicht
Caesar Verschlüsselung Definition
Die Caesar Verschlüsselung, auch Cäsar Chiffre, Einfacher Caesar oder Caesar Code genannt, ist ein symmetrisches Verschlüsselungsverfahren das nach Julius Caesar benannt ist. Dabei wird ein Klartextbuchstabe immer durch einen Buchstaben ersetzt, der Stellen weiter rechts im Alphabet steht.
Cäsar Chiffre – Geschichte
Die Cäsar Chiffre ist schon sehr alt und wurde vor über 2000 Jahren von Julius Caesar verwendet, um geheime Nachrichten auszutauschen. Die Caesar Verschlüsselung beziehungsweise das Caesar Verfahren findet jedoch auch heute noch Anwendung, wie zum Beispiel bei ROT13.
Caesar Scheibe
Um einen Text mit der Cäsar Chiffre schnell und einfach zu verschlüsseln oder zu entschlüsseln, entwickelte Leon Battista Alberti im 15. Jahrhundert eine Scheibe, mit der dies möglich ist. Die Caesar Scheibe besteht aus einer inneren und einer äußeren Scheibe. Dabei kann man die innere Schreibe um den verwendeten Schlüssel drehen und anschließend die zu ersetzenden Buchstaben ablesen.
Caesar Verschlüsselung Erklärung
Die Caesar Verschlüsselung (englisch: caesar cipher) basiert auf einer monoalphabetischen Substitution. Geht man von dem lateinischen Alphabet mit 26 Buchstaben aus, so wird jeder Buchstabe durch einen Buchstaben ersetzt, der im Alphabet um Stellen weiter rechts steht. Konkret kann man dies darstellen, indem man das Alphabet einmal in der richtigen Reihenfolge aufschreibt und darunter das Alphabet um Stellen verschoben notiert. Ist man am Ende des Alphabets angelangt, so beginnt man wieder am Anfang. Dies kann man sich zum Beispiel mit wie folgt veranschaulichen:
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 |
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 |
Ein a wird also zu einem d, ein b zu einem e und so weiter.
Stellt man nun die Buchstaben a-z durch Zahlen von 0-25 dar, so kann man zu einem Klartextbuchstaben den zugehörigen Geheimtextbuchstaben Chiffre() durch folgende Formel ermitteln
Hierbei ist der Modulo Operator. Dieser liefert den Rest Chiffre() bei der Division der Zahlen und 26. Der geheime Schlüssel der Caesar Verschlüsselung wäre in diesem Beispiel 3. Theoretisch kann man auch einen anderen Schlüssel wählen, ohne dass sich am Prinzip der Verschlüsselung etwas ändert. Wählt man den Schlüssel 0 oder 26, so handelt es sich mathematisch um die Identität. Denn jeder Buchstabe wird wieder auf den gleichen Buchstaben abgebildet und somit nicht verschlüsselt.
Caesar Verschlüsselung Beispiel
Im Folgenden wollen wir uns an einem konkretes Beispiel anschauen, wie die Caesar Verschlüsselung funktioniert. Wir gehen von dem folgenden Satz aus: „ich bin ein sicherer satz“. Wendet man nun die Caesar Verschlüsselung mit darauf an, so erhält man unter Verwendung der oberen Tabelle:
Klartext | i | c | h | b | i | n | e | i | n | s | i | c | h | e | r | e | r | s | a | t | z | ||||
Geheimtext | l | f | k | e | l | q | h | l | q | v | l | f | k | h | u | h | u | v | d | w | c |
Caesar Verschlüsselung Entschlüsseln
Die Cäsar Chiffre lässt sich sehr einfach wieder entschlüsseln. Man verschiebt das Alphabet einfach um drei Stellen wieder zurück. Anschaulich erreicht man dies, indem man in der oberen Ersetzungstabelle die zwei Zeilen vertauscht. Dies führt dann auf:
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 |
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 |
Nun erhält man den Klartext aus dem Geheimtext durch Ersetzen der Buchstaben wie beim Verschlüsseln. Also d wird zu einem a, e zu einem b und so weiter.
Caesar Verschlüsselung Entschlüsseln – Beispiel
Betrachten wir nun wieder unser vorheriges Beispiel. Wir wollen nun den Geheimtext „lfk elq hlq vlfkhuhu vdwc“ wieder entschlüsseln. Unter Verwendung der oberen Entschlüsselungstabelle erhält man dann den Klartext:
Geheimtext | l | f | k | e | l | q | h | l | q | v | l | f | k | h | u | h | u | v | d | w | e | ||||
Klartext | i | c | h | b | i | n | e | i | n | s | i | c | h | e | r | e | r | s | a | t | z |
Sicherheit
Wie man sich leicht klar machen kann, ist die Caesar Chiffre sehr unsicher. Um die Verschiebechiffre zu knacken, muss man einfach alle 25 Schlüssel ausprobieren. Dies stellt für den Computer überhaupt kein Problem dar. Damals basierte die Sicherheit darauf, dass das Verfahren vollkommen unbekannt war. Heutzutage sollte die Sicherheit eines Verschlüsselungsverfahrens nicht auf dem Algorithmus selbst basieren, sondern nur auf dem geheimen Schlüssel. Das Verfahren ist somit auch dann noch sicher, wenn der Algorithmus bekannt ist.
Eine weitere Möglichkeit eine Verschiebechiffre zu knacken besteht in der Verwendung einer Häufigkeitsanalyse. Da ein Klartextbuchstabe immer auf denselben Geheimtextbuchstaben abgebildet wird, kann man unter Verwendung der Häufigkeit der vorkommenden Buchstaben den Schlüssel finden. Zum Beispiel ist in der deutschen Sprache der Buchstabe e am häufigsten. Ermittelt man nun im Geheimtext den am häufigsten vorkommenden Buchstaben, so kann man die Verschiebung bestimmen und die Verschlüsselung somit knacken.
Caesar Code Anwendung
Eine Anwendung der Caesar Verschlüsselung ist ROT13. Hierbei wird das Alphabet um 13 Stellen verschoben. Der Schlüssel ist in diesem Fall also die Zahl 13. Das Ziel dabei ist, dass die Leser nicht unbeabsichtigt etwas lesen, was sie nicht lesen wollen beziehungsweise sollen, zum Beispiel um das Spoilern bei Filmen zu vermeiden.
Caesar Verschlüsselung Java
In diesem Abschnitt wollen wir eine Implementierung der Caesar Verschlüsselung in Java vorstellen. Unser Ziel dabei ist es, dass man einen beliebigen Text eingibt und man einen mit der Caesar Chiffre verschlüsselten Text zurückbekommt oder einen Caesar Code eingibt und den Klartext erhält. Sonderzeichen und Leerzeichen sollen dabei nicht verändert werden.
Caesar Verschlüsselung Java-Code
Mit dem folgenden Java-Code ist es möglich, einen Klartext in einen Geheimtext umzuwandeln oder umgekehrt. Der Schlüssel (key) ist dabei fest vorgegeben.
public class Caesar {
//Teste Programm mit main Funktion
public static void main(String[] args) {
String plaintext = "Guten Tag!";
int key = 3;
String ciphertext = code(plaintext, key);
System.out.println("Klartext: " + plaintext + " ---> " + ciphertext);
String decoded = decode(ciphertext, key);
System.out.println("Geheimtext: " + ciphertext + " ---> " + decoded);
}
/* Klartext mit dem Schluessel verschluesseln */
public static String code(String plaintext, int key){
String ciphertext = "";
plaintext = plaintext.toLowerCase(); //Alles in Kleinbuchstaben umwandeln
for(int i=0; i<plaintext.length(); i++){
//Buchstaben verschieben und an Geheimtext haengen
char next = plaintext.charAt(i);
ciphertext = ciphertext + shift(next, key);
}
return ciphertext;
}
/* Verschiebt den Buchstaben um die angegebene Verschiebung (key)*/
public static char shift(char letter, int shift){
//Buchstaben als Zahl behandeln
if(letter>='a' && letter <='z'){ //Sonderzeichen nicht veraendern
letter += shift;
while(letter > 'z'){
letter -= 26;
}
}
return letter;
}
/* Entschluesselt den Geheimtext mit dem angegebenen Schluessel */
public static String decode(String ciphertext, int key){
String decoded = "";
ciphertext = ciphertext.toLowerCase(); //Alles in Kleinbuchstaben umwandeln
for(int i=0; i<ciphertext.length(); i++){
//Jeden Buchstaben verschieben und zwar um (26-Schluessel(key)) Stellen
//und an entschluesselten Text anhaengen
char next = ciphertext.charAt(i);
decoded = decoded + shift(next, 26-key);
}
return decoded;
}
}
Ausgabe
Lässt man das Programm laufen, so wandelt dieses den Klartext „Guten Tag!“ um in den Geheimtext „jxwhq wdj!“ und anschließend diesen Geheimtext wieder in den Klartext. In diesem Fall wird der Schlüssel 3 verwendet. Als Ausgabe erhält man auf dem Terminal:
Klartext | G | u | t | e | n | T | a | g | ! | j | x | w | h | q | w | d | j | ! | |||
Geheimtext | j | x | w | h | q | w | d | j | ! | G | u | t | e | n | T | a | g | ! |