Crypto

Einführung §

Die Caesar-Chiffre ist eine der frühesten bekannten und einfachsten Chiffren. Es ist eine Art Ersetzungschiffre, bei der jeder Buchstabe im Klartext um eine bestimmte Anzahl von Stellen im Alphabet verschoben wird. Zum Beispiel würde mit einer Verschiebung von 1 A durch B ersetzt, B würde C werden und so weiter. Die Methode ist nach Julius Caesar benannt, der sie offenbar zur Kommunikation mit seinen Generälen verwendete.Komplexere Verschlüsselungsschemata wie die Vigenère-Chiffre verwenden die Caesar-Chiffre als ein Element des Verschlüsselungsprozesses. Die weithin bekannte ROT13-Verschlüsselung ist einfach eine Caesar-Chiffre mit einem Offset von 13. Die Caesar-Chiffre bietet im Wesentlichen keine Kommunikationssicherheit, und es wird gezeigt, dass sie auch von Hand leicht gebrochen werden kann.

Beispiel §

Um eine verschlüsselte Nachricht von einer Person an eine andere weiterzugeben, müssen zunächst beide Parteien über den ‚Schlüssel‘ für die Chiffre verfügen, damit der Absender sie verschlüsseln und der Empfänger sie entschlüsseln kann. Für die Caesar-Chiffre ist der Schlüssel die Anzahl der Zeichen, um das Chiffrealphabet zu verschieben.

Hier ist ein kurzes Beispiel für die Ver- und Entschlüsselungsschritte, die mit der Caesar-Chiffre verbunden sind. Der Text, den wir verschlüsseln werden, ist ‚verteidige die Ostwand des Schlosses‘, mit einer Verschiebung (Schlüssel) von 1.

plaintext: defend the east wall of the castleciphertext: efgfoe uif fbtu xbmm pg uif dbtumf

Es ist leicht zu sehen, wie jedes Zeichen im Klartext im Alphabet nach oben verschoben wird. Die Entschlüsselung ist genauso einfach, indem ein Offset von -1 verwendet wird.

plain: abcdefghijklmnopqrstuvwxyzcipher: bcdefghijklmnopqrstuvwxyza

Wenn ein anderer Schlüssel verwendet wird, wird das Chiffrealphabet offensichtlich um einen anderen Betrag verschoben.

Mathematische Beschreibung §

Wobei k der Schlüssel (die Verschiebung) ist, der auf jeden Buchstaben angewendet wird. Nach Anwendung dieser Funktion ist das Ergebnis eine Zahl, die dann wieder in einen Buchstaben übersetzt werden muss. Die Entschlüsselungsfunktion ist:

JavaScript Beispiel der Caesar-Chiffre §

Klartext

shift:

Ciphertext

Andere Implementierungen §

Caesar-Chiffrecode in verschiedenen Programmiersprachen finden Sie auf der Seite Implementierungen.

Um Ihre eigenen Nachrichten in Python zu verschlüsseln, können Sie das Pycipher-Modul verwenden. Um es zu installieren, verwenden Sie pip install pycipher . So verschlüsseln Sie Nachrichten mit der Caesar-Chiffre (oder einer anderen Chiffre, Dokumentation finden Sie hier):

Kryptoanalyse §

Eine Möglichkeit, diese Chiffre automatisch zu brechen, finden Sie unter Kryptoanalyse der Caesar-Chiffre.

Kryptoanalyse ist die Kunst, Codes und Chiffren zu brechen. Die Caesar-Chiffre ist wahrscheinlich die am einfachsten zu brechende Chiffre. Da die Verschiebung eine Zahl zwischen 1 und 25 sein muss (0 oder 26 würden zu einem unveränderten Klartext führen), können wir einfach jede Möglichkeit ausprobieren und sehen, welche zu einem lesbaren Text führt. Wenn Sie zufällig wissen, was ein Stück des Chiffretextes ist, oder wenn Sie ein Stück erraten können, können Sie den Schlüssel sofort finden.

Wenn dies nicht möglich ist, besteht ein systematischerer Ansatz darin, die Häufigkeitsverteilung der Buchstaben im Chiffretext zu berechnen. Dies besteht darin, zu zählen, wie oft jeder Buchstabe erscheint. Natürlicher englischer Text hat eine sehr unterschiedliche Verteilung, die zum Knacken von Codes verwendet werden kann. Diese Verteilung ist wie folgt:

Englische Buchstabenfrequenzen

Dies bedeutet, dass der Buchstabe e am häufigsten vorkommt und fast 13% der Zeit vorkommt, während z weit weniger als 1 Prozent der Zeit vorkommt. Die Anwendung der Caesar-Chiffre ändert diese Buchstabenfrequenzen nicht, sondern verschiebt sie lediglich ein wenig (für eine Verschiebung von 1 wird der häufigste Chiffretextbuchstabe zu f). Ein Kryptoanalytiker muss nur die Verschiebung finden, die bewirkt, dass die Chiffretextfrequenzen eng mit den natürlichen englischen Frequenzen übereinstimmen, und dann den Text mit dieser Verschiebung entschlüsseln. Diese Methode kann verwendet werden, um Caesar-Chiffren leicht von Hand zu brechen.

Wenn Sie immer noch Probleme haben, versuchen Sie es mit dem Abschnitt Kryptoanalyse auf der Seite Substitution cipher. Alle Strategien, die mit der Substitutionschiffre arbeiten, funktionieren auch mit der Caesar-Chiffre (aber Methoden, die mit der Caesar-Chiffre arbeiten, funktionieren nicht unbedingt mit der allgemeinen Substitutionschiffre).

Für eine Methode, die auf Computern gut funktioniert, brauchen wir eine Möglichkeit, herauszufinden, welche der 25 möglichen Entschlüsselungen am ehesten englischem Text ähnelt. Siehe Kryptoanalyse der Caesar-Chiffre für eine exemplarische Vorgehensweise, wie man sie mit Quadgram-Statistiken bricht. Der Schlüssel (oder Shift), der zu einer Entschlüsselung mit der höchsten Wahrscheinlichkeit führt, englischer Text zu sein, ist höchstwahrscheinlich der richtige Schlüssel. Je mehr Chiffretext Sie haben, desto wahrscheinlicher ist dies natürlich (dies gilt für alle statistischen Maßnahmen, einschließlich des obigen Frequenzansatzes). Die verwendete Methode besteht also darin, den Chiffretext zu nehmen, ihn mit jedem Schlüssel zu entschlüsseln und dann zu sehen, welche Entschlüsselung am besten aussieht. Diese vereinfachte Methode der Kryptoanalyse funktioniert nur bei sehr einfachen Chiffren wie der Caesar-Chiffre und der Rail Fence-Chiffre, selbst etwas komplexere Chiffren können viel zu viele Schlüssel haben, um alle zu überprüfen.

Referenzen §

  • Wikipedia hat eine gute Beschreibung des Verschlüsselungs- / Entschlüsselungsprozesses, der Geschichte und der Kryptoanalyse dieses Algorithmus
  • Simon Singhs ‚The Code Book‘ ist eine ausgezeichnete Einführung in Chiffren und Codes und enthält einen Abschnitt über Caesar-Chiffren.
  • Singh, Simon (2000). Das Codebuch: Die Wissenschaft der Geheimhaltung vom alten Ägypten bis zur Quantenkryptographie. ISBN 0-385-49532-3.



Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.