Zurück

Caesar-Verschlüsselung

22.01.2014 08:00 von Samuel

Als ich vor Kurzem bei einer "Hacker-Challenge" eine Aufgabe hatte, verschiedene verschlüsselte Texte zu entschlüsseln, war unter anderem ein Text dabei welcher mit dem "Cäsar-Algorithmus" verschlüsselt war.

Da diese Verschlüsselung sehr einfach zu verstehen ist und daher gut für den Einstieg in die Kryptologie ist versuche ich in diesem Beitrag, einen kleinen Einblick dazu zu vermitteln.

Warum "Caesar"?

Tatsächlich hat diese Verschlüsselung etwas mit Julius Caesar zutun. Er hatte diesen Algorithmus für die militärische Korrespondenz verwendet. Heute könnte man sich das nicht vorstellen, da diese Verschlüsselung relativ einfach zu entschlüsseln ist.

Wie funktioniert die Verschlüsselung?

Diese Verschlüsslung ist sehr einfach zu erklären. Wir nehmen das Alphabet und setzen unter jedem Buchstaben eine Zahl. Immer +1.

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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Nehmen wir an, wir möchten das Wort "samsec" verschlüsseln. Wir zerlegen das Wort in einzelne Buchstaben und schreiben die Zahl daneben:

s  = 19

a  = 1

m  = 13

s  = 19

e  = 5

c = 3

 

Jetzt kommt der Key also der Schlüssel zum Einsatz. Mit diesem Schlüssel werden wir alle Buchstaben um x Stellen nach rechts verschieben. Wenn wir z.B. den Schlüssel "4" nehmen, müssen wir bei jedem Buchstabe 4 Stellen nach rechts rücken und erhalten dann unser neuer Buchstabe.

 

s  = 23 = w

a  = 5 = e

m  = 17 = q

s  = 23 = w

e  = 9 = i

c = 7 = g

 

Die Zahlen dienen nur zur Übersicht. Diese Auflistung heisst übersetzt nicht mehr als:

s + 4 = Nr. 23 also = w

usw.

 

Wort unverschlüsselt: samsec

Wort verschlüsselt: weqwig

Schlüssel: 4

 

Der Schlüssel kann nur zwischen 0-26 gross sein. Wobei 0 und 26 keinen Sinn ergeben, da die Nachricht dann nicht verschlüsselt wird.

Entschlüsseln

Wir haben nun den Text "samsec" mit dem Key "4" verschlüsselt.

Wort unverschlüsselt: samsec

Wort verschlüsselt: weqwig

Schlüssel: 4

 

Der Empfänger kann nun dieses Wort sehr einfach mit dem Key entschlüsseln. Anstatt die x Stellen nach rechts zu rücken, wird der Empfänger die Zeichen nach links verschieben.

Wir zerlegen dazu wieder das Wort. Diesmal das verschlüsselte:

w = w ist die Stelle 25 - Schlüsse, also 4 ergibt s

e = w ist die Stelle 5 - Schlüsse, also 4 ergibt a

q = w ist die Stelle 17 - Schlüsse, also 4 ergibt m

w = w ist die Stelle 25 - Schlüsse, also 4 ergibt s

i = w ist die Stelle 9 - Schlüsse, also 4 ergibt e

g = w ist die Stelle 7 - Schlüsse, also 4 ergibt c

 

Somit wäre das Wort wieder entschlüsselt. Da der Sender und der Emfpänger bei dieser Verschlüsselung den gleichen Schlüssel verwenden, redet man hier von einem "symmetrischen Verschlüsselungsverfahren".

Entschlüsseln ohne Schlüssel

Tatsächlich lässt sich die "Caesar-Verschlüsselung" ohne den Schlüssel zu kennen, knacken. Da die Schlüssellänge bei der Verschlüsselung auf 1-25 (da 0 un 26 keinen Sinn ergeben) begrenzt ist, kann man alle 25 Möglichkeiten durchgehen und den Text welcher am meisten Sinn ergibt, ist sehr wahrscheinlich der entschlüsselte Text.

Eine andere Möglichkeit ist, die Buchstabenhäufigkeit zu ermitteln. Bei deutschsprachigen Texten ist der Buchstabe "e" 17,40 % auf Platz 1 (Wikipedia). Bei langen Texten kann man dieses Verfahren recht erfolgreich anwenden. Bei einzelnen Wörter kann es aber nicht dienen, da beim Wort "Wikipedia" z.B. mehrere "i"s als "e"s vorkommt.

Ein Beispiel:

Alle Kinder gehen auf den Friedhof, nur nicht Hagen, der wird getragen.

Dieser Text sieht verschlüsselt so aus:

Kvvo Usxnob qorox kep nox Pbsonryp, xeb xsmrd Rkqox, nob gsbn qodbkqox.

 

Nun zählen wir die Buchstaben:

1 x Zeichen "g"  
3 x Zeichen "k"  
1 x Zeichen "m"  
5 x Zeichen "n"  
10 x Zeichen "o"  

 

Nun sehen wir also, dass der "o" ganze 10 mal übereinstimmt. Sehr wahrscheinloch wird dieser Buchstabe den "e" ersetzen. Wir schauen also in unsere Tabelle und zählen die Anzahl Zeichen zwischen dem "o" und dem "e".

 

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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

o n m l k j i h g f e

1 2 3 4 5 6 7 8 9 10

 

10 Stellen trennen die Buchstaben. Unser Key sollte daher "10" sein.

Implementierung in PHP

Einen kleinen Beispiel-Code in PHP stelle ich gerne zur Verfügung. Es werden nur Zeichen von a-z entschlüsselt und verschlüsselt.

<?php
    /*
        Cäsar example for encrypt and decrypt
        @author Samuel Bittel , samsec.ch
    */
    
    $meintext = 'ichliebedich';
    $key = 3; //0-25
    
    //0 = encrypt, 1 = decrypt
    $encrypted = de_en_crypt_caesar(1, $meintext, $key);
    $decrypted = de_en_crypt_caesar(0, $encrypted, $key);
    
    echo '<p><b>Encrypted:</b> '.$encrypted.'</p>';
    echo '<p><b>Decrypted:</b> '.$decrypted.'</p>';
    
    function de_en_crypt_caesar($crypt, $string, $key) {
        $result = '';
        
        $alpha = array('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');
        
        for($i = 0; $i <= strlen($string) - 1; $i++) {
            if($crypt === 1) {
                $result .= $alpha[array_search($string[$i], $alpha) + $key]; //encrypt
            } else {
                $result .= $alpha[array_search($string[$i], $alpha) - $key]; //decrypt
            }
        }
        
        return $result;
    }
 

Viel Spass beim Ausproblen und tüfteln. Falls du offene Fragen dazu hast, kannst du mich gerne kontaktieren.

Zurück

Einen Kommentar schreiben

Kommentar von Josef um 24.01.2014

Einfach, super toll die Erklärung!

Herzliche Gratulation

Kommentar von Buying Essays um 28.02.2018

thesis statement maker for a research paper <a href="http://researchpaper.store">write research paper</a> high school research paper <a href=http://researchpaper.store>research paper</a>

Kommentar von Quick Loan um 16.10.2018

poor credit loans <a href="https://creditloansguaranteedapproval.com/">quick loan</a> credit loans guaranteed approval <a href=https://creditloansguaranteedapproval.com/>online loans no credit check</a>