Caesar Chiffre

Veröffentlicht: 21.04.2019 Aktualisiert: 24.04.2019

Die Caesar Verschlüsselung ist zwar keine echte Verschlüsselung, daher auch häufig Caesar Chiffre genannt, aber es ist eine der ältesten Methoden, um den Inhalt eines Textes zu verschleiern. Um den Text für Andere unleserlich zu machen, werden die Buchstaben um eine festgelegte Anzahl verschoben. Bei einer Verschiebung von 1 wird aus einem A ein B, aus einem B ein C und so weiter. Um das Prinzip zu veranschaulichen, habe ich es in Python implementiert und mit Flask als Webanwendung umgesetzt.

Steckbrief

Nutzen
Einfache Demonstration der Caesar Chiffre
Beginn
09.12.2018
Server
Debian 9, Apache Webserver
Webseite
https://caesar.pimux.de/
Repository
https://github.com/Finn10111/caesar-cipher
Framework(s)
Flask
Programmiersprache(n)
CSS - HTML - Python

Das Projekt

Im ersten Schritt werden alle Buchstaben des Alphabets benötigt. Kleinbuchstaben (lowercase) solten genügen, das ist mit Python (hier in der Konsole dargestellt) schnell erledigt:

>>> from string import ascii_lowercase as lc
>>> print(lc)
abcdefghijklmnopqrstuvwxyz

Wenn man nun einen Buchstaben verschieben möchte, ist das ganz einfach:

>>> print(lc[lc.find('a') + 1])
b

Etwas vollständiger wird das ganz, wenn man das zu chiffrierende Wort mit einer Schleife durchläuft und das Ergebnis der Verschiebung speichert, um es am Ende auszugeben.

>>> from string import ascii_lowercase as lc
>>> result = ""
>>> for c in "hallo":
...     result += lc[(lc.find(c) + 1) % len(lc)]
... 
>>> print(result)
ibmmp

Aus "hallo" wird also "ibmmp". Dieses Verfahren ist weder sicher noch eine echte Verschlüsselung, vielmehr eine Chiffrierung bzw. Verschleierung des Textes.

Um den Text nun wieder leserlich zu machen, muss man die Verschiebung der Buchstaben rückgängig machen.

>>> from string import ascii_lowercase as lc
>>> result = ""
>>> for c in "ibmmp":
...     result += lc[(lc.find(c) - 1) % len(lc)]
... 
>>> print(result)
hallo

Die Verschiebung um einen Buchstaben dient nur als Beispiel, die Verschiebung kann um beliebig viele Zeichen angewendet werden. Relativ üblich ist eine Verschiebung um 13 Buchstaben, da hier der gleiche Algorithmus zum Ver- und Entschlüsseln angewendet werden kann (wenn man ein Alphabet mit 26 Buchstaben nutzt). Diese Variante der Caesar Chiffrierung wird auch ROT13 genannt.

Da diese Anwendung hauptsächlich der Demonstration dient, habe ich sie mit Flask in einer Webanwendung unter caesar.pimux.de zur Verfügung gestellt. Der Quellcode ist auf GitHub verfügbar.

Bilder