Symmetrische Verschlüsselung ist nicht per se unsicher. Auch heute wird vielerorts symmetrische Verschlüsselung eingesetzt.

# XOR-Blockchiffre

# Umwandlung in binäre Zahlen

Um die Verschlüsselungsverfahren computertauglich zu machen, muss der Klartext vor der Verschlüsselung in binäre Zahlen umgewandelt und der Geheimtext zur Darstellung wieder in Buchstaben zurückverwandelt werden.

Wie im Kapitel «Daten und Informationen» besprochen, gibt es dazu eine Vielzahl von Codierungen. Beispielsweise könnte dazu die ASCII-Codierung verwendet werden. Für die folgenden Beispiele verwenden wir den etwas kürzeren Pentacode:

Wir können so eine Klartext codieren:

Klartext
Buchstaben GEHEIMESTREFFEN
Pentacode 00111 00101 01000 00101 01001
01101 00101 10011 10100 10010
00101 00110 00110 00101 01110

Ebenso können wir einen Schlüssel codieren:

Schlüssel
Buchstaben PENTA
Pentacode 10000 00101 01110 10100 00001

# XOR als Verschlüsselung

Die XOR-Schaltung kennen wir bereits (siehe Kapitel Computer). XOR kann auch zur Verschlüsselung verwendet werden. Dabei wird 1 Bit des Klartextes mit einem Bit des Schlüssels verrechnet. Das Ergebnis ist 1 Bit des Geheimtextes. Die Wahrheitstabelle sieht folgendermassen aus:

= XOR
0 0 0
0 1 1
1 0 1
1 1 0

Im folgenden Beispiel wird der oben bereits erwähnte Klartext mit dem Schlüssel bitweise mit XOR verschlüsselt:

Verschlüsselung Text Pentacode
Klartext G 0 0 1 1 1
Schlüssel P 1 0 0 0 0
Geheimtext W 1 0 1 1 1

Entschlüsselung Text Pentacode
Geheimtext W 0 0 1 1 1
Schlüssel P 1 0 0 0 0
Klartext G 1 0 1 1 1

Die Verschlüsselung ist identisch mit der Entschlüsselung, da Folgendes gilt:

# Blocklänge

Da der Klartext dreimal so lange ist wie der Schlüssel, muss der Text in drei Teile (in der Kryptologie Blöcke genannt) aufgeteilt werden, welche wir separat verschlüsseln:

Verschlüsselung Text Pentacode
Klartext Block 1 GEHEI 00111 00101 01000 00101 01001
Schlüssel PENTA 10000 00101 01110 10100 00001
Geheimtext Block 1 W FQH 10111 00000 00110 10001 01000

Verschlüsselung Text Pentacode
Klartext Block 2 MESTR 01101 00101 10011 10100 10010
Schlüssel PENTA 10000 00101 01110 10100 00001
Geheimtext Block 2 . . S 11101 00000 11101 00000 10011

Verschlüsselung Text Pentacode
Klartext Block 3 EFFEN 00101 00110 00110 00101 01110
Schlüssel PENTA 10000 00101 01110 10100 00001
Geheimtext Block 3 UCHQO 10101 00011 01000 10001 01111

Aufgabe «XOR-Blockchiffre»

Verschlüssle den folgenden Text mit der XOR-Blockchiffre:

Text: PAKET ZUGESTELLT

Schlüssel: BETA

  1. Codiere zuerst den Text mit Pentacode (nicht manuell, sondern mit Hilfe des interaktiven Tools oben).
  2. Codiere anschliessend den Schlüssel mit Pentacode.
  3. Verschlüssle den binär dargestellten Text anschliessend mit dem binär dargestellten Schlüssel mittels XOR-Blockchiffre.
  4. Decodiere ihn wieder mit Pentacode.
Lösung «XOR-Blockchiffre»
  1. 10000 00001 01011 00101 10100 00000 11010 10101 00111 00101 10011 10100 00101 01100 01100 10100
  2. 00010 00101 10100 00001
  3. 10010 00100 11111 00100 10110 00101 01110 10100 00101 00000 00111 10101 00111 01001 11000 10101
  4. RD@DVENTE GUGIXU

# Verkettung der Blöcke

Im letzten Kapitel wurde der Geheimtext zur Ver- resp. Entschlüsselung in Blöcke aufgeteilt, die exakt so lang sind wie der Schlüssel. Die Blöcke werden anschliessend einzeln durch die XOR-Funktion mit dem Schlüssel ver- resp. entschlüsselt.

Allgemeine Blockchiffre

Prinzipiell kann anstelle der XOR-Funktion jede beliebige mathematische Funktion (resp. Verkettung von Funktionen) verwendet werden (in den unten aufgeführten Grafiken daher mit dem allgemeinen Begriff block cipher encryption bezeichnet). Wir beschränken uns hier allerdings auf die einfache und gut verständliche XOR-Verschlüsselung.

# Der Betriebsmodus «Electronic Code Book» (ECB)

Falls jeder Block mit dem immer gleichen Schlüssel verschlüsselt wird, spricht man vom «Electronic Code Book» (ECB) Betriebsmodus. Schematisch dargestellt sieht dieser wie folgt aus:

Verschlüsselung im ECB-Modus [1]

In der Abbildung wird deutlich, dass ECB kein eigenes Verschlüsselungsverfahren, sondern nur ein Modus ist. Er definiert, wie die einzelnen Blöcke verwendet werden. Die konkrete Verschlüsselungsfunktion ist in dieser Darstellung nicht genauer angegeben – wir verwenden der Einfachheit halber hier die XOR-Funktion.

Die Entschlüsselung funktioniert analog: Der Geheimtext wird wiederum in Blöcke aufgeteilt, welche separat mit dem Schlüssel entschlüsselt werden. Die dabei entstandenen Klartext-Blöcke ergeben aneinander gereiht den gesamten Klartext.

Entschlüsselung im ECB-Modus [2]



Aufgabe «ECB-Modus»

  1. Verschlüssle den folgenden Text EINE SEHR KLEINE SENSATION mit dem Schlüssel ZUSE.
  2. Schaue dir den Klartext und den Geheimtext genau an.
  3. Überlege dir, welche Schwächen der ECB-Modus hat.

Hinweis «ECB-Modus»

Überlege dir, was passiert, wenn zwei Blöcke identisch sind (z.B. weil eine bestimmte Passage des Textes erneut vorkommt). Wie ist die Auswirkung auf den Geheimtext?

Lösung «ECB-Modus»
  1. Geheimtext: @-. ZFVMHUXI@-. ZFVKITGLU,
  2. Die Blöcke EINE (am Anfang des Klartextes und im Wort KLEINE) ergeben exakt denselben Geheimtextblock @-.. Beim jeweils darauf folgenden Block stimmen die ersten 3 Zeichen überein – sowohl im Klartext (SE) wie auch im Geheimtext (ZFV).
  3. Folgende Schwächen fallen auf:
    1. Jeder Klartext-Block wird mit demselben Schlüssel verschlüsselt. Gleiche Klartext-Blöcke ergeben demnach gleiche Geheimtext-Blöcke, was bereits viel über den Klartext aussagt.
    2. Eine Änderung in einem Klartext-Block führt nur zu einer Änderung im entsprechenden Geheimtext-Block. Unterscheiden sich zwei mit demselben Schlüssel verschlüsselte Geheimtexte nur minim, sind auch die Klartexte fast identisch.
    3. Ein Angreifer kann eine abgefangene, verschlüsselte Nachricht verändern, z.B. indem er Blöcke einfügt, die mit demselben Schlüssel verschlüsselt worden sind, ohne dass der Empfänger dies merkt. Der Angreifer muss dabei den Schlüssel nicht kennen, er kann einfach bestehende Geheimtextblöcke verwenden.

# Der Betriebsmodus «Cipher Block Chaining» (CBC)

Im CBC-Modus werden die Blöcke nicht mehr getrennt voneinander verarbeitet. Wie in der folgenden Abbildung ersichtlich ist, dient jeder Geheimtext-Block (ausser der letzte) im nachfolgenden Schritt zusätzlich als Input. So werden gleiche Klartext-Blöcke trotz identischem Schlüssel zu unterschiedlichen Geheimtextblöcken verschlüsselt.

Da bei der Verarbeitung des ersten Blocks noch kein Geheimtext-Block zur Verfügung steht, wird ein sogenannter «Initialisierungsvektor» verwendet.

Verschlüsselung im CBC-Modus [3]

Ändert man 1 Bit im IV, führt dies zu Änderungen im gesamten Geheimtext. Ändert man 1 Bit im Klartext, so ändern sich auch sämtliche darauffolgenden Blöcke im Geheimtext.

Ein Nachteil des CBC-Modus ist allerdings, dass die Verschlüsselung nicht parallelisiert werden kann, da das Resultat des vorherigen Blocks für die Verschlüsselung des aktuellen Blocks benötigt wird. D.h. ein bestimmter Klartext-Block kann erst verschlüsselt werden, wenn sämtliche vorherigen Blöcke bereits verschlüsselt sind.

Bei der Entschlüsselung sieht es anders aus. Da sofort sämtliche Geheimtextblöcke vorliegen, kann die Entschlüsselung problemlos parallelisiert werden, wie du in der folgenden Abbildung nachvollziehen kannst:

Entschlüsselung im CBC-Modus [4]

Bemerkenswert

Auf den ersten Blick erstaunlich ist die Tatsache, dass die Entschlüsselung mit falschem IV nur dazu führt, dass der erste Klartext-Block unleserlich ist, während die restlichen Blöcke korrekt entschlüsselt werden.

Aufgabe «CBC-Modus»

  1. Verschlüssle nochmals denselben Text, diesmal allerdings im CBC-Modus:
    Klartext: EINE SEHR KLEINE SENSATION
    Schlüssel ZUSE
  2. Achte wiederum auf die Blöcke, die im Klartext übereinstimmen. Was passiert jetzt?
  3. Wähle verschiedene Initialisierungsvektoren. Wie unterscheiden sich die Resultate?

Aufgabe «Initialisierungsvektor»

Überlege dir zusammen mit deinem Pultnachbarn/deiner Pultnachbarin, mit welcher einfachen Massnahme man darauf verzichten könnte, neben dem Schlüssel auch den Initialisierungsvektor mit dem/r Kommunikationspartner/in abzusprechen.

Lösung «Initialisierungsvektor»

Fügt man vor der eigentlichen Nachricht am Anfang einen zufälligen, sinnlosen Text in der Länge der Blocklänge hinzu, so kann der/die Kommunikationspartner/in den Geheimtext entschlüsseln, ohne den IV kennen zu müssen.

Dies bedeutet, dass der IV völlig zufällig gewählt werden kann und nicht übertragen werden muss, was zu einem zusätzlichen Sicherheitsgewinn führt.

Aufgabe «Angriff auf die XOR-Blockchiffre»

Setzt euch in Dreiergruppen zusammen und diskutiert folgende Fragen:

  1. Welche Faktoren beeinflussen die Sicherheit unserer XOR-Blockchiffre?
  2. Stellt zu jedem Faktor eine Aussage auf, die aufzeigt, wie eine möglichst hohe Sicherheit erreicht werden kann.
  3. Wie sicher ist die Verwendung von XOR (im Kasten «block cipher encryption/decryption» in den Abbildungen oben) als Blockchiffren-Verfahren?
Lösung «Angriff auf die XOR-Blockchiffre»
  1. Es sind insbesondere die folgenden Faktoren:
    • die Länge des Schlüssels resp. die Blocklänge,
    • die Art und Weise, wie dieser Schlüssel gewählt wird (Benutzer wählt Passwort, zufällige binäre Zahlenfolge, …)
  2. Folgende Aussagen sind wichtig:
    • Der Schüssel/die Blocklänge sollte so gewählt werden, dass man den Schlüsselraum nicht in sinnvoller Zeit durchprobieren kann (also mind. 128 bit, besser 256 oder 512).
    • Der Schlüssel sollte von einem Computer zufällig gewählt werden, denn basiert der Schlüssel auf einem Passwort, können Angreifer versuchen, das Passwort anzugreifen anstatt den ganzen Schlüsselraum abzusuchen.
  3. Die XOR-Verschlüsselung ist unsicher! Für die folgende Überlegung denken wir an den ersten Block, die Aussage gilt aber auch für sämtliche folgenden Blöcke. Jedes einzelne Bit aus dem Geheimtext wird nur vom entsprechenden Bit des Klartexts und Schlüssels beeinflusst, es findet keine «Vermischung» innerhalb des Blocks statt. Ändert ein Bit des Klartexts, ändert im entsprechenden Block des Geheimtexts auch nur genau das entsprechende Bit. Viel besser wäre es, wenn jede kleine Änderung eine grosse Auswirkung (durch Vermischung) hätte. Dies wird von modernen Blockchiffren selbstverständlich gemacht.

# Die Krypto-Familie

Alice

Alice und Bob kommunizieren häufig miteinander – dies natürlich verschlüsselt.

Bob

Anstelle von «Person A» und «Person B» spricht man von Alice und Bob.

Charlie

Wird eine dritte Person benötigt, kommt Charlie ins Spiel.

Eve

Eve wird meist dann eingesetzt, wenn Verbindungen abgehört (engl. eavesdropping) werden. Sie ist also eine passive Zuhörerin.

Mallory

Mallory ist ein bösartiger, aktiver Angreifer (engl. malicious).

Trent

Wird eine vertrauenswürdige dritte Stelle verwendet, wird Trent (engl. für trusted entity) eingesetzt.

# Symmetrische Verschlüsselung

Bei sämtlichen bisher betrachteten Verfahren handelte es sich um symmetrische Verfahren, d.h. zum Verschlüsseln und Entschlüsseln wird derselbe Schlüssel verwendet:

# Kerckhoffs’ Prinzip

In der Kryptologie ist der wichtigste Punkt stets die Sicherheit. Dabei ist es wichtig, Sicherheit von Schein-Sicherheit zu unterscheiden.

# Das Prinzip von Kerckhoffs

Auguste Kerckhoffs [5]

Eines der wichtigsten Prinzipien in der Kryptologie stammt von August Kerckhoffs:

Die Sicherheit eines Kryptosystems darf nicht von der Geheimhaltung des Algorithmus abhängen.
Die Sicherheit gründet sich nur auf die Geheimhaltung des Schlüssels.

Auguste Kerckhoffs (1835 - 1903)

# Formulierung von Claude Shannon

Claude Shannon [6]

Claude Shannon hat dasselbe kurz und prägnant ausgedrückt:

The enemy knows the system!

Claude Shannon (1916 - 2001)

# Erklärung von Bruce Schneier

Bruce Schneier [7]

Der renommierte Kryptologe Bruce Schneier erklärt das Prinzip von Kerckhoffs’ mit einer kurzen Geschichte[8]:

Wenn ich einen Brief in einen Safe einschliesse, diesen irgendwo in New York verstecke und dir dann sage, du sollst den Brief lesen, hat dies nichts mit Sicherheit zu tun. Das ist Verschleierung.

Angenommen, ich schliesse einen Brief in einen Safe ein, übergebe dir den Safe mitsamt Bauplan, hundert weiteren, identischen Safes und deren geheimer Kombination, so dass du und die besten Codeknacker den Schliessmechanismus studieren können.
Wenn du den Brief trotzdem nicht lesen kannst, dann spricht man von Sicherheit.

Bruce Schneier


  1. WhiteTimberwolf via Wikimedia (opens new window) (PD) ↩︎

  2. WhiteTimberwolf via Wikimedia (opens new window) (PD) ↩︎

  3. WhiteTimberwolf via Wikimedia (opens new window) (PD) ↩︎

  4. WhiteTimberwolf via Wikimedia (opens new window) (PD) ↩︎

  5. Unbekannt via Wikimedia (opens new window) (PD) ↩︎

  6. Konrad Jacobs via Wikimedia (opens new window) (CC-BY-SA-2.0) ↩︎

  7. Rama via Wikimedia (opens new window) (PD) ↩︎

  8. Quelle: Applied Cryptography (opens new window), Bruce Schneier, Vorwort ↩︎

Letzte Änderung: 23. Februar 2022 07:56