Teil 1: Grundlagen

Kryptografie: Die Grundlagen der Verschlüsselung von Cäsar
1 Kommentar

Schon vor Jahrtausenden hegten Menschen den Wunsch, einander geheime Nachrichten zukommen lassen zu können. Diesen Wunsch können verschiedene Techniken der Kryptografie erfüllen, mit deren Grundlagen sich der erste Teil dieser Serie befasst.

Das Wort Kryptografie ist zusammengesetzt aus den beiden griechischen Wörtern kryptos und graphein, was „geheim“ und „schreiben“ heißt. Die Kryptografie ist dementsprechend die Wissenschaft, die sich mit dem Schreiben geheimer Nachrichten befasst – also dem Vorgang, den man umgangssprachlich mit Verschlüsselung meint.

Der Kryptografie gegenüber steht die Kryptoanalyse. Sie ist die Wissenschaft, die sich mit dem Erforschen, dem Analysieren und dem Entschlüsseln geheimer Nachrichten beschäftigt. Die Kryptoanalyse bildet gewissermaßen die Kehrseite der Kryptografie.

Tatsächlich ist die Kryptografie jedoch nicht die einzige Methode, geheime Nachrichten zu verfassen: Die Steganografie beispielsweise basiert auf der Idee, Nachrichten nicht zu verschlüsseln, sondern zu verstecken. Die meisten kryptografischen Verfahren haben nämlich den großen Nachteil, dass man den verschlüsselten Nachrichten sofort ansieht, dass sie verschlüsselt sind – das alleine kann schon Verdacht erregen.

Artikelserie

  • Teil 1: Grundlagen
  • Teil 2: Zufallszahlengeneratoren und symmetrische Verschlüsselung
  • Teil 3: Hashes und Passwörter
  • Teil 4: Asymmetrische Verschlüsselung
  • Teil 5: Zertifikate, HTTPS und Co.

Versteckt man die Nachricht stattdessen auf unauffällige Art, erspart man sich unter Umständen sehr unangenehme Maßnahmen. Im Zusammenhang mit Kryptografie ist es sicherlich sinnvoll, den Begriff der Steganografie schon einmal gehört zu haben, im Folgenden geht es allerdings ausschließlich um die Kryptografie selbst.

Alice, Bob und Eve …

Wie bereits erwähnt, geht es bei der Kryptografie um das Verschlüsseln und das Entschlüsseln von Nachrichten. Die beiden Vorgänge stellen zwei Seiten einer Medaille dar und bedingen sich wechselseitig. Um eine Verschlüsselung durchführen zu können, muss zunächst eine Nachricht vorliegen, die übertragen werden soll. Sie wird als Klartext (Plain Text) bezeichnet. Durch die Verschlüsselung wird aus dem Klartext der Geheimtext (Cipher Text). Wird er wieder entschlüsselt, erhält man den ursprünglichen Klartext.

Wenn Nachrichten übermittelt werden sollen, gibt es stets auch einen Absender und einen Empfänger. In der Kryptografie haben sich hierfür zwei Personae eingebürgert: Die Absenderin wird üblicherweise Alice benannt, der Empfänger Bob. Selbstverständlich müssten Alice und Bob ihre Kommunikation nicht schützen, wenn es keine Dritte im Bunde gäbe, vor der es Dinge geheim zu halten gilt: Die Angreiferin wird in der Kryptografie üblicherweise Eve genannt. Sie ist diejenige, die mit den Mitteln der Kryptoanalyse versucht, die abgefangenen Nachrichten unrechtmäßig zu knacken.

International JavaScript Conference

Effective Microservices Architecture In Node.js

by Tamar Stern (Palto Alto Networks)

React Components And How To Style Them

by Jemima Abu (Telesoftas)

IT Security Summit 2019

Sichere Logins sind doch ganz einfach!

mit Arne Blankerts (thePHP.cc)

Hands-on workshop – Hansel & Gretel do TLS

mit Marcus Bointon (Synchromedia Limited)

Den Mechanismus, mit dem ein Klartext in einen Geheimtext beziehungsweise ein Geheimtext in einen Klartext verwandelt wird, bezeichnet man als Algorithmus. Um einen Algorithmus in verschiedenen Situationen flexibel wiederverwenden zu können, sollte er parametrisierbar sein, das heißt durch einen oder mehrere Faktoren an eine individuelle Situation anpassbar. Die Faktoren bilden den Schlüssel, mit dem ver- und entschlüsselt wird.

Bereits im Jahr 1883 formulierte der niederländische Linguist Auguste Kerckhoffs das im Anschluss nach ihm benannte Kerckhoffs’sche Prinzip, das sich auf die Sicherheit von kryptografischen Algorithmen bezieht. Es besagt: „Es darf nicht der Geheimhaltung bedürfen und soll ohne Schaden in Feindeshand fallen können.“

Letztlich bedeutet das, dass die Sicherheit einer Verschlüsselung nur vom gewählten Schlüssel abhängen darf, nicht jedoch von dem verwendeten Verfahren. Das Verfahren muss man sogar ausdrücklich veröffentlichen können, ohne dadurch im gleichen Zug auch die Sicherheit der Verschlüsselung einzuschränken.

Gründe für das Prinzip gibt es zahlreiche. So ist es beispielsweise weitaus schwieriger, einen Algorithmus geheim zu halten als einen Schlüssel, da der Algorithmus zum Beispiel durch Reverse Engineering von Hard- oder Software ermittelt werden kann. Außerdem können öffentlich verfügbare Algorithmen viel einfacher von unabhängigen Entwicklern analysiert und auf Schwachstellen überprüft werden – ein Gedanke, der in ähnlicher Form auch in der heutigen Open-Source-Bewegung zu finden ist.

Hält man den Algorithmus hingegen geheim, spricht man von „Security by Obscurity“, also der Sicherheit durch Verschleierung. Häufig erreicht man auf diesem Weg jedoch nur eine vorgetäuschte Sicherheit, was zu bösen Überraschungen führen kann.

… treffen auf Cäsar

Der simpelste Ansatz, Nachrichten zu verschlüsseln, geht auf den römischen Kaiser Cäsar zurück, weshalb das Verfahren auch als Cäsar-Chiffre bezeichnet wird. Die grundlegende Idee ist sehr einfach: Zunächst schreibt man das Alphabet zwei Mal zeilenweise auf, so dass die zweite Zeile unter der ersten steht:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ

Anschließend verschiebt man das obere Alphabet um eine festgelegte Anzahl von Stellen. Diese Anzahl bildet den Schlüssel. Ein Schlüssel von drei ergibt zum Beispiel die folgende Verschiebung:

   ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ

Nun lassen sich die Buchstaben des oberen Alphabets auf die des unteren abbilden. Aus einem A wird so beispielsweise ein D, auf einem B ein E, aus einem C ein F und so weiter. Da für die Buchstaben ab X kein passender Buchstabe im unteren Alphabet verfügbar ist, wird das Alphabet hier umgebrochen, sodass das X wiederum auf A abgebildet wird, das Y auf B und das Z auf C.
Auf dem Weg lassen sich nun ganze Texte verschlüsseln. Aus dem Klartext ATTACK AT DAWN wird so der folgende Geheimtext: DWWDFN DW GDZQ.

Die Verschlüsselung lässt sich auf einfachem Weg auch wieder rückgängig machen. Dazu muss lediglich das gleiche System aufgebaut werden, nur dass dieses Mal der Schlüssel negiert wird. Statt das obere Alphabet also um drei Stellen nach rechts zu verschieben, verschiebt man es nun um drei Stellen nach links:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
   ABCDEFGHIJKLMNOPQRSTUVWXYZ

Wendet man nun den gleichen Vorgang wieder an, erhält man wieder den ursprünglichen Klartext ATTACK AT DAWN.

Der Ansatz, das Alphabet zu verschieben, ist hierbei der Algorithmus. Die Anzahl der Stellen, um die verschoben wird, ist der Schlüssel. Für den Schlüssel gibt es in der Cäsar-Chiffre 25 verschiedene Möglichkeiten, wenn man von der Möglichkeit absieht, einen Klartext auf sich selbst abzubilden. Man spricht also davon, dass der Schlüsselraum eine Größe von 25 hat.

Das ist zugegebenermaßen ein sehr kleiner Schlüsselraum, weshalb die einfachste Möglichkeit zum Knacken einer Cäsar-Chiffre darin besteht, einfach alle potenziellen Schlüssel auszuprobieren, bis sich bei einem ein sinnvoller Klartext ergibt. Nimmt man den gegebenen Geheimtext und entschlüsselt mit dem Schlüssel 1, wird bereits nach den ersten Buchstaben klar, dass das Ergebnis keinen sinnvollen Text darstellt: CVVCEM CV FCYP. Und auch eine Verschiebung um 2 ergibt keinen sinnvollen Klartext: BUUBDL BU EBXO. Doch bereits beim dritten Versuch ergibt sich der Text ATTACK AT DAWN. Die Verschlüsselung ist also geknackt.

Der Ansatz, schlichtweg alle potenziellen Schlüssel auszuprobieren, basiert letztlich auf roher Gewalt, nämlich dem Einsatz von ausreichend Rechenleistung. Er wird daher als Brute Force bezeichnet.

Wie knackt man Verschlüsselungen?

Tatsächlich gibt es jedoch noch andere Ansätze, wie sich eine Cäsar-Chiffre knacken lässt. Man kann nämlich weitaus systematischer vorgehen, was in dem Fall vielleicht etwas übertrieben sein mag, aber anschaulich zeigt, dass es auch noch andere Möglichkeiten gibt.

Vergleicht man den Klartext mit dem Geheimtext, fällt beispielsweise auf, dass Buchstaben, die im Klartext doppelt auftauchen, auch im Geheimtext doppelt vertreten sind. Außerdem werden die gleichen Buchstaben stets zu den gleichen Buchstaben im Geheimtext verschlüsselt. Die beiden Effekte treten besonders auffällig bei den Buchstaben T und A auf:

ATTACK AT DAWN
DWWDFN DW GDZQ

Das kann man sich zu Nutze machen, zumindest wenn man längere Texte entschlüsseln möchte. Die Effekte bedeuten nämlich, dass die Verteilung der einzelnen Buchstaben im Klartext die gleiche ist wie die des Geheimtexts: Der Buchstabe, der im Klartext am häufigsten enthalten ist, wird auch im Geheimtext durch das am häufigsten vorkommende Zeichen repräsentiert.

Da die Sprache einer Nachricht häufig bekannt ist oder zumindest mit hoher Wahrscheinlichkeit vermutet werden kann, muss man praktisch nur noch die Buchstabenhäufigkeit der jeweiligen Sprache kennen, um Rückschlüsse ziehen zu können. Der am häufigsten vorkommende Buchstabe im Englischen ist – wie übrigens auch im Deutschen – das E. Auf dem zweiten Platz liegen im Englischen nah beieinander die Buchstaben A, I, N, S und T.

Zählt man die Häufigkeiten des Geheimtexts, ergibt sich folgende Verteilung:

  • D: 4
  • W: 3
  • F: 1
  • N: 1
  • G: 1
  • Z: 1
  • Q: 1

In der Mitte des Geheimtexts steht nun ein Wort, das aus lediglich zwei Buchstaben besteht. Es könnte also zum Beispiel IN, ON, IS oder AT heißen. Das sind zwar einige Möglichkeiten, aber doch überschaubar viele. Nun fällt aber darüber hinaus auf, dass das Wort aus Buchstaben besteht, die auch zwei Drittel des ersten Worts bilden: Wenn das Wort in der Mitte beispielsweise IS heißen würde, müsste das erste Wort ISSI.. heißen. Es gibt allerdings kein englisches Wort mit sechs Buchstaben, das mit ISSI beginnt. Daher kann das mittlere Wort nicht IS sein.

Das gleiche gilt für INNI und ONNO. Bei ATTA hingegen stößt man auf ATTACK. Dadurch weiß man nun, dass die ersten beiden Wörter ATTACK AT heißen und das dritte Wort dem Muster .A.. folgt. Natürlich könnte man nun durch Raten auf DAWN kommen, doch liegen nun genug Informationen vor, um zu vermuten, dass der Schlüssel 3 verwendet wurde. Wendet man ihn nun auf das dritte Wort an, erhält man DAWN, und kann davon ausgehen, dass die Nachricht wohl korrekt entschlüsselt wurde.

Wer nicht glaubt, dass sich eine verschlüsselte Nachricht auf diesem Weg in überschaubarer Zeit entschlüsseln lässt, kann sich spaßeshalber an folgendem Geheimtext versuchen, der mit Hilfe der Cäsar-Chiffre aus einem deutschsprachigen Klartext erstellt wurde (Umlaute dabei wurden durch zwei Buchstaben dargestellt, ein Ä ist also beispielsweise ein AE und ein ß ein SS):

URJ MVIWRYIVE, SVZ TRVJRI VZEWRTY SLTYJKRSVE QL QRVYCVE,
ZJK JF VZEWRTY LEU WLEBKZFEZVIK JF XLK, URJJ ZTY JTYFE
RCJ BZEU XIFJJVE JGRJJ URIRE YRKKV, UVIRIK MVIJTYCLVJJVCKV
ERTYIZTYKVE QL BERTBVE – XVJTYIZVSVE YRK JZV URDRCJ DVZE
GRGR WLVI DZTY.

Zur Unterstützung sei die Buchstabenhäufigkeitstabelle aus Wikipedia für deutschsprachige Texte empfohlen.

Es liegt auf der Hand, dass die Cäsar-Chiffre heutzutage keine ernsthafte Methode zur Verschlüsselung von Nachrichten darstellt, aber dennoch hat sie auch heute noch sinnvolle Einsatzgebiete. Eines der bekanntesten basiert auf der Tatsache, dass man durch eine Verschiebung von 26 das Alphabet wieder auf sich selbst abbildet. Der Schlüssel 26 wiederum lässt sich als zweifache Cäsar-Chiffre mit dem Schlüssel 13 interpretieren.

Das bedeutet, dass man einen Klartext durch eine Verschiebung um 13 in einen Geheimtext verwandeln kann, und durch eine erneute Verschiebung um 13 den Geheimtext wiederum in den ursprünglichen Klartext. Dabei entfällt die Anforderung, den Schlüssel zum Entschlüsseln negieren zu müssen. Das Verfahren bietet zwar keinerlei Sicherheit, verhindert aber die Lesbarkeit einer Nachricht auf den ersten Blick.

Daher setzen zum Beispiel verschiedene Diskussionsforen die Cäsar-Chiffre mit einem Schlüssel von 13 ein, um Forenbeiträge unkenntlich zu machen, die einen Spoiler enthalten. Das Verfahren wird als ROT13 bezeichnet, da die Nachricht bei jedem Aufruf um 13 Zeichen rotiert wird.

Von der Antike ins Mittelalter

Auch wenn die Cäsar-Chiffre aus heutiger Sicht trivial erscheinen mag, war sie trotzdem über Jahrhunderte ohne Konkurrenz. Doch selbst, als im Lauf des 16. Jahrhunderts neue Ansätze aufkamen, basierten auch sie darauf, das Alphabet zu verschieben. Die grundlegendste Neuerung war jedoch, nicht nur ein Alphabet zu verwenden, sondern mehrere: Deshalb spricht man bei diesen Verfahren von polyalphabetischen Verfahren, wohingegen die Cäsar-Chiffre ein monoalphabetisches Verfahren darstellt.

Am bekanntesten ist die Vigenère-Chiffre, die von dem französischen Diplomaten Blaise de Vigenère entwickelt und entsprechend nach ihm benannt wurde. Um die Chiffre anzuwenden, schreibt man zunächst alle möglichen Cäsar-Alphabete in einem Quadrat untereinander:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
BCDEFGHIJKLMNOPQRSTUVWXYZA
CDEFGHIJKLMNOPQRSTUVWXYZAB
:
XYZABCDEFGHIJKLMNOPQRSTUVW
YZABCDEFGHIJKLMNOPQRSTUVWX
ZABCDEFGHIJKLMNOPQRSTUVWXY

Will man nun eine Nachricht verschlüsseln, benötigt man zunächst wieder einen Schlüssel. Bei Vigenère wird dazu aber nicht nur eine Zahl verwendet, sondern ein Codewort, beispielsweise ABBA. Nun schreibt man den Klartext und das Codewort übereinander, und wiederholt dabei das Codewort so oft wie nötig:

ABBA ABBA ABBA AB
ATTA CK A T DA WN

Anschließend verschlüsselt man jeden Buchstaben des Klartextes mit dem Alphabet, das sich durch den Buchstaben des Codeworts ergibt. Für das erste Zeichen des Klartextes, das A, bedeutet das, dass es mit dem A des Codeworts verschlüsselt wird. Zunächst gilt es, das passende Alphabet im Vigenère-Quadrat zu finden. Dazu sucht man die Zeile, deren erstes Zeichen dem Buchstaben des Codeworts entspricht, was in diesem Fall die erste Zeile liefert. Anschließend sucht man in der ersten Zeile des Vigenère-Quadrats nach dem Buchstaben des Klartexts, und nimmt dann den Schnittpunkt aus Zeile und Spalte. Das führt in diesem Beispiel dazu, dass das A ein A bleibt.

Der zweite Buchstabe, ein T, soll mit einem B verschlüsselt werden. Man nimmt also die B-Zeile und schaut nach, welcher Buchstabe dort in der Spalte steht, in der in der ersten Zeile das T steht. Das führt zu einem U. Führt man dieses Verfahren fort, erhält man den folgenden Geheimtext:

AUUACL AT EAWO

Auffällig ist die hohe Ähnlichkeit zwischen Klar- und Geheimtext. Das zweite Wort der Nachricht, AT, ist sogar komplett erhalten geblieben. Das liegt an der hohen Anzahl des Buchstabens A im Codewort, was zu einer Abbildung auf sich selbst führt. Nimmt man ein anderes Codewort, zum Beispiel ENTWICKLER, fällt das Ergebnis deutlich besser aus:

EGMWKM LX HNPJ

Das Vigenère-Verfahren löst einige der Probleme der Cäsar-Chiffre: Es verhindert, dass gleiche Buchstaben im Klartext stets auf den gleichen Buchstaben im Geheimtext abgebildet werden. Tatsächlich ist das A aus dem Klartext im Beispiel kein einziges Mal auf das gleiche Zeichen im Geheimtext abgebildet worden. Stattdessen wurden die Zeichen E, W, L und N verwendet. Das erschwert die Häufigkeitsanalyse deutlich, weshalb das Verfahren fast 300 Jahre lang als unentschlüsselbar galt. Erst 1854 hat Charles Babbage einen Ansatz gefunden, das Verfahren zu knacken.

Der Kern der Kryptoanalyse besteht an dieser Stelle darin, zunächst die Länge des Codeworts zu ermitteln. Dazu sucht man nach Buchstabenpaaren, die periodisch auftreten. Aus den Wiederholungen lassen sich Rückschlüsse auf die Länge des Schlüssels ziehen. Hat man sie erst einmal ermittelt, weiß man, dass jedes n-te Zeichen mit dem gleichen Alphabet verschlüsselt wurde – was dann wieder dem Knacken von Cäsar mit einer Häufigkeitsanalyse entspricht.

Es liegt auf der Hand, dass das Vorgehen umso besser funktioniert, je kürzer der verwendete Schlüssel ist. Im Idealfall ist der Schlüssel so lang wie der Klartext. In dem Fall spricht man dann auch von einer Vernam-Chiffre. Doch selbst dann noch ist das Verfahren nicht unfehlbar: Aufwendige moderne statistische Verfahren liefern immer noch mehr als genug Möglichkeiten, Muster zu erkennen.

Eine Prise Zufall, bitte!

Eines der höchsten Ziele in der Kryptografie ist daher, Muster zu eliminieren. Je gleichförmiger und unauffälliger ein Geheimtext daherkommt, desto schwieriger wird es, das Verfahren zu knacken und den Klartext auch ohne Kenntnis des Schlüssels wiederherzustellen oder den Schlüssel zu rekonstruieren. Denkt man über die Aufgabe nach, einen Verschlüsselungsalgorithmus zu entwickeln, der Muster vermeidet, stellt man fest, dass es einen solchen eigentlich schon gibt: Die Cäsar-Chiffre erfüllt die Anforderungen nämlich wunderbar, solange man nur ein einzelnes Zeichen verschlüsselt. Wenn die abgefangene Nachricht aus einem J besteht, lässt sich nicht systematisch ermitteln, ob der zugehörige Klartext ein A, ein B, ein C oder ein anderer Buchstabe ist.

Würde man also jeden Buchstaben eines Klartexts unabhängig von den anderen mit der Cäsar-Chiffre verschlüsseln, hätte man ein perfektes Verfahren: Das Problem mit den Mustern ergibt sich ja gerade daraus, dass sich Informationen aus der Umgebung eines jeden einzelnen Zeichens ermitteln lassen. Fällt das weg, und ist jedes Zeichen individuell verschlüsselt, wird die Entschlüsselung ohne Schlüssel unmöglich.

Das bedeutet zum einen, dass man einen Schlüssel benötigt, der so lang ist wie der Klartext (also wie bei der Vernam-Chiffre). Zum anderen bedeutet das aber auch, dass der verwendete Schlüssel zufällig sein muss – ansonsten enthält nämlich auch der Schlüssel Muster, aus denen sich Informationen herleiten lassen. Wenn man dann einen solchen Schlüssel nur ein einziges Mal verwendet, und für jeden neuen Klartext einen neuen Schlüssel verwendet, hat man ein perfektes Verschlüsselungssystem, das auf ganz einfachen Grundlagen basiert.

Das Vorgehen wird als One-Time Pad (OTP) bezeichnet. Es ist trivial zu implementieren und mathematisch nachweislich absolut sicher, wenn man sich an die hier noch einmal wiederholten Bedingungen hält:

  • Der Schlüssel ist so lang wie der Klartext.
  • Der Schlüssel wird zufällig gewählt.
  • Ein einmal verwendeter Schlüssel wird nicht nochmals verwendet.

Die Preisfrage dabei lautet: Wenn es doch ein solches Verfahren gibt, das alle Probleme löst und das sich beweisbar nicht knacken lässt, warum wird das Verfahren dann nicht im großen Stil überall und von jedem verwendet? Warum sollte man sich überhaupt mit anderen Verfahren beschäftigen?

Das Problem des One-Time Pad ist der Schlüsseltausch. Da der Schlüssel für jede Nachricht neu generiert werden muss, muss Alice nicht nur die Nachricht an Bob übertragen, sondern auch den Schlüssel. In der Übertragung liegt nun das Dilemma: Wenn es einen sicheren Weg gibt, den Schlüssel zu übertragen, hätte man auch gleich die eigentliche Nachricht auf dem Weg übertragen können. Bestehen aber Bedenken, eine Nachricht zu übermitteln, muss man die gleichen Bedenken auch hinsichtlich der Übertragung des Schlüssels haben.

Verschärft wird das Problem noch dadurch, dass Alice und Bob genau genommen ja nicht die einzigen Parteien sind, die auf sicherem Wege miteinander kommunizieren wollen. Haben Alice und Bob jeweils noch weitere Kommunikationspartner, benötigt jeder von ihnen mit jedem einen eigenen Schlüssel – und zwar für jede einzelne Nachricht einen neuen. Die Anzahl der verwendeten Schlüssel wächst also überproportional mit der Anzahl der Teilnehmer, was sich als wenig alltagstauglich erweist.

Tragfähig ist das Verfahren also nur, wenn es um einen kleinen Kreis an Teilnehmern geht, und es für sie einen sicheren Weg gibt, eine größere Menge an Schlüsseln im Vorfeld zu übermitteln, auf die dann von beiden Parteien zurückgegriffen werden kann. Natürlich ist der Aufwand hierfür sehr hoch. Tatsächlich wird das One-Time Pad in der Praxis eingesetzt, allerdings nur in Umgebungen, in denen der Aufwand den Nutzen rechtfertigt, beispielsweise in hohen diplomatischen und militärischen Kreisen.

Sieht man von diesen Problemen jedoch einmal ab, ist das Verfahren trivial zu implementieren. Da es für beliebige Zeichen und nicht nur für die Großbuchstaben des Alphabets funktionieren soll, bietet es sich an, den ASCII-Code eines Klartextzeichens mit dem ASCII-Code eines Schlüsselzeichens per XOR zu verknüpfen. XOR hat den großen Vorteil, dass die gleiche Verknüpfung zwei Mal hintereinander angewandt wieder den Originalwert liefert:

65 XOR 97 => 32
32 XOR 97 => 65

Der erste Aufruf von XOR verschlüsselt also, der zweite entschlüsselt. In JavaScript sieht der Code dazu wie folgt aus:

const encrypt = function (plain, key) {
  const cipher = plain.charCodeAt(0) ^ key.charCodeAt(0);

  return cipher;
};

Will man nun eine ganze Zeichenkette verschlüsseln, muss man lediglich über ihre einzelnen Zeichen iterieren und für jedes die Funktion encrypt aufrufen, wie in Listing 1 zu sehen ist.

const plainText = 'Attack at dawn!';
const key       = 'grgzuoqfg348qfg';

const cipherText = [];

for (let i = 0; i < plainText.length; i++) {
  const cipher = encrypt(plainText[i], key[i]);

  cipherText.push(cipher);
}

Das ergibt ein Array von Zahlen, das man anschließend mit einer ähnlichen Schleife und dem gleichen Schlüssel wieder in den ursprünglichen Text verwandeln kann.

Ausblick

Leider gibt es mit dem One-Time Pad noch ein weiteres Problem: Wie generiert man den zufälligen Schlüssel? Computer sind nämlich aller Rechenleistung und Speicherkapazität zum Trotz vor allem eines: Deterministisch. Sie sind letztlich sehr komplexe Rechenmaschinen, und Zufall ist so ziemlich das einzige, was man in Bezug auf eine Rechenmaschine nicht haben möchte. Was also tun? Und was machen, wenn das One-Time Pad sich aus rein praktikablen Gründen als zu aufwendig erweist? Was ist eine gangbare Alternative?

Diese Fragen adressiert der zweite Teil, in dem erklärt wird, wie das Generieren von Zufallszahlen funktioniert, worauf dabei zu achten ist, und wie eine gangbare Alternative zu den bislang vorgestellten Verfahren aussieht, die im Alltag einsetzbar ist.

Auch wenn die bislang vorgestellten Verfahren entweder zu unsicher oder zu aufwändig sind, ist es doch wichtig, sie zu kennen. Sie bilden die Grundlage für alles weitere, und eignen sich außerdem hervorragend dazu, grundlegende Begriffe und Ansätze einzuführen. Es bleibt also spannend.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

1 Kommentar auf "Kryptografie: Die Grundlagen der Verschlüsselung von Cäsar"

avatar
400
  Subscribe  
Benachrichtige mich zu:
Marius
Gast

Der erste Teil der Serie gefällt mir sehr gut, vielen Dank dafür!

X
- Gib Deinen Standort ein -
- or -