Symmetrische und asymmetrische Verschlüsselungsverfahren
Ein Stadtwerk in Köln will, dass 50.000 Smart Meter ihre Verbrauchsdaten täglich an die Zentrale schicken. Die Daten laufen über das Internet, und jeder dort kann mitlesen. Wie lässt sich verhindern, dass Unbefugte die Daten verstehen? Und wie einigen sich Zähler und Zentrale auf einen Schlüssel, ohne sich vorher getroffen zu haben? Diese Fragen beantwortet dieses Kapitel.
Grundbegriffe und die Caesar-Verschlüsselung
Bei der Verschlüsselung wird ein lesbarer Klartext mit einem Schlüssel in einen Geheimtext umgewandelt. Beim Entschlüsseln entsteht wieder der Klartext. Das Verfahren (der Algorithmus) darf öffentlich bekannt sein. Geheim bleibt nur der Schlüssel (Kerckhoffs'sches Prinzip).
Das einfachste historische Beispiel ist die Caesar-Verschlüsselung: Jeder Buchstabe wird im Alphabet um $k$ Stellen nach hinten verschoben. Nach Z folgt wieder A.
Rechnerisch: Ordne den Buchstaben Zahlen zu (A = 0, B = 1, …, Z = 25). Dann gilt
$$\text{Geheim} = (\text{Klar} + k) \bmod 26, \qquad \text{Klar} = (\text{Geheim} - k) \bmod 26.$$Der Rest bei Division durch 26 sorgt dafür, dass nach Z wieder A kommt.
Ein Java-Programm setzt dieselbe Rechnung um. Dabei ist c - 'A' die Position im Alphabet, % 26 der Übertrag und (char) ('A' + neu) die Rückumwandlung in einen Buchstaben:
int pos = c - 'A';
int neu = (pos + pSchluessel) % 26;
char geheim = (char) ('A' + neu);
Die Caesar-Verschlüsselung ersetzt jeden Buchstaben des Klartextes durch den Buchstaben, der im Alphabet um den Schlüssel $k$ Stellen weiter hinten steht. Nach Z folgt…
Die Caesar-Verschlüsselung ersetzt jeden Buchstaben des Klartextes durch den Buchstaben, der im Alphabet um den Schlüssel $k$ Stellen weiter hinten steht. Nach Z folgt wieder A. Mit dem Schlüssel $k=3$ wird zum Beispiel aus HALLO das Geheimwort KDOOR.
- a) Verschlüsseln Sie das Wort KOELN mit dem Schlüssel $k=3$.
- b) Entschlüsseln Sie den Geheimtext GHXWVFK, der mit dem Schlüssel $k=3$ erzeugt wurde.
- c) Erläutern Sie, warum es sich bei der Caesar-Verschlüsselung um ein symmetrisches Verfahren handelt.
Eine Caesar-Verschlüsselung für Texte aus Großbuchstaben (A bis Z) ist durch die folgende Methode umgesetzt. Der Schlüssel liegt im Bereich 0 bis 25. a) Bestimmen Sie…
Eine Caesar-Verschlüsselung für Texte aus Großbuchstaben (A bis Z) ist durch die folgende Methode umgesetzt. Der Schlüssel liegt im Bereich 0 bis 25.
public String verschluessele(String pText, int pSchluessel) {
String ergebnis = "";
for (int i = 0; i < pText.length(); i++) {
char c = pText.charAt(i);
int pos = c - 'A';
int neu = (pos + pSchluessel) % 26;
ergebnis = ergebnis + (char) ('A' + neu);
}
return ergebnis;
}
- a) Bestimmen Sie das Ergebnis des Aufrufs
verschluessele("WIND", 5)und geben Sie dazu für jedes Zeichen die Werte vonposundneuan.
- b) Erläutern Sie die Wirkung des Modulo-Operators
% 26in dieser Methode.
- c) Entwickeln Sie eine Methode
entschluessele(String pText, int pSchluessel), die die Methodeverschluesseleverwendet. Begründen Sie außerdem, dass die Caesar-Verschlüsselung leicht zu brechen ist.
Symmetrische Verschlüsselung
Bei einem symmetrischen Verfahren verwenden Sender und Empfänger denselben geheimen Schlüssel zum Ver- und zum Entschlüsseln. Die Caesar-Verschlüsselung ist ein Beispiel. Moderne Verfahren wie AES arbeiten nach demselben Prinzip, aber mit riesigen Schlüsselräumen.
Eigenschaften:
-
Sie sind sehr schnell, auch bei großen Datenmengen.
-
Das Schlüsselaustauschproblem bleibt: Wie kommt der geheime Schlüssel sicher zum Partner? Läuft er über dasselbe unsichere Netz, kann ihn jeder abfangen.
-
Die Schlüsselverwaltung wird aufwendig, wenn viele Personen beteiligt sind.
Wie viele Schlüssel braucht ein Netz?
Soll jedes Paar von $n$ Personen einen eigenen gemeinsamen Schlüssel haben, braucht man
$$\frac{n\cdot(n-1)}{2}$$Schlüssel, nämlich einen pro Paar. Für $n=4$ sind das $\frac{4\cdot 3}{2}=6$ Schlüssel. Bei 10 Personen sind es schon 45, bei 1.000 Personen fast 500.000. Das Wachstum ist quadratisch.
Schlüssellänge und Brute-Force
Ein Schlüssel aus $b$ Bit hat $2^b$ mögliche Werte. Jedes zusätzliche Bit verdoppelt den Aufwand für Ausprobieren.
Eine einfache Verschlüsselung mit XOR
Sensorknoten haben wenig Rechenleistung. Eine einfache Möglichkeit ist die bitweise Verknüpfung mit XOR (exklusives Oder). Das Ergebnis ist 1, wenn die Bits verschieden sind: $0\oplus0=0$, $0\oplus1=1$, $1\oplus0=1$, $1\oplus1=0$. In Java steht dafür ^.
Die Besonderheit: Zweimal mit demselben Schlüssel verknüpft, ergibt wieder den Klartext. Es gilt also $(d \oplus k)\oplus k = d$. Das Entschlüsseln ist derselbe Rechenschritt wie das Verschlüsseln. Das passt zu einem symmetrischen Verfahren.
Mit dem Widget kannst du Bits umschalten und den Dezimalwert beobachten:
Fünf Mitarbeiter eines Stadtwerks möchten vertraulich miteinander kommunizieren. Jede Person soll mit jeder anderen Person verschlüsselt Nachrichten austauschen können.…
Fünf Mitarbeiter eines Stadtwerks möchten vertraulich miteinander kommunizieren. Jede Person soll mit jeder anderen Person verschlüsselt Nachrichten austauschen können.
- a) Nennen Sie den grundlegenden Unterschied zwischen symmetrischen und asymmetrischen Verschlüsselungsverfahren im Hinblick auf die verwendeten Schlüssel.
- b) Berechnen Sie, wie viele verschiedene Schlüssel benötigt werden, wenn jedes Paar von Personen bei einem symmetrischen Verfahren einen eigenen gemeinsamen Schlüssel verwendet, und wie viele Schlüsselpaare bei einem asymmetrischen Verfahren nötig sind.
- c) Beschreiben Sie das Problem des Schlüsselaustauschs bei symmetrischen Verfahren.
Funksensoren in einem Gewächshaus im Münsterland verschlüsseln ihre Messdaten mit einem symmetrischen Verfahren. Ein Angreifer probiert systematisch alle möglichen…
Funksensoren in einem Gewächshaus im Münsterland verschlüsseln ihre Messdaten mit einem symmetrischen Verfahren. Ein Angreifer probiert systematisch alle möglichen Schlüssel aus und schafft dabei $10^9$ Schlüssel pro Sekunde. Der Hersteller bietet zwei Varianten an: einen Schlüssel mit 40 Bit und einen Schlüssel mit 128 Bit. Für die Variante mit 128 Bit gilt $2^{128}\approx 3{,}4\cdot 10^{38}$.
- a) Berechnen Sie die Anzahl möglicher Schlüssel bei 40 Bit und die längste Zeit, die der Angreifer für das Ausprobieren aller Schlüssel benötigt. Geben Sie die Zeit in Sekunden und in Minuten an.
- b) Begründen Sie, wie sich der Aufwand eines Angriffs mit jedem zusätzlichen Bit der Schlüssellänge verändert.
- c) Beurteilen Sie die Aussage: „Die Daten sind sicher, denn der Schlüssel hat 128 Bit.“ Berücksichtigen Sie, dass alle Geräte des Herstellers mit demselben Schlüssel ab Werk ausgeliefert werden.
Ein Stadtwerk plant, 50.000 Smart Meter (intelligente Messsysteme) einzusetzen. Jeder Zähler sendet täglich seine Verbrauchsdaten an die Zentrale des Stadtwerks. Die…
Ein Stadtwerk plant, 50.000 Smart Meter (intelligente Messsysteme) einzusetzen. Jeder Zähler sendet täglich seine Verbrauchsdaten an die Zentrale des Stadtwerks. Die Daten müssen vertraulich übertragen werden. Es werden zwei Konzepte diskutiert:
-
Konzept A: Alle Zähler und die Zentrale verwenden denselben symmetrischen Schlüssel.
-
Konzept B: Jeder Zähler besitzt einen eigenen symmetrischen Schlüssel, den die Zentrale in einer Datenbank verwaltet.
Ein Angreifer kann einen einzelnen Zähler aus dem Gerät auslesen.
- a) Analysieren Sie für beide Konzepte, welche Folgen es hat, wenn ein Zähler ausgelesen wird, und geben Sie die Anzahl der von der Zentrale zu verwaltenden Schlüssel an.
- b) Erläutern Sie, welches Problem beim Schlüsselaustausch für Konzept B auftritt, wenn die Zähler bereits installiert sind.
- c) Entwickeln Sie einen Vorschlag, wie ein hybrides Verfahren die Probleme beider Konzepte löst, und beurteilen Sie ihn hinsichtlich Sicherheit und Energieverbrauch der batteriebetriebenen Zähler.
Ein einfacher Sensorknoten verschlüsselt Messwerte mit einem Schlüssel, der aus einem Byte besteht. Dabei wird jedes Datenbyte mit dem Schlüssel bitweise durch…
Ein einfacher Sensorknoten verschlüsselt Messwerte mit einem Schlüssel, der aus einem Byte besteht. Dabei wird jedes Datenbyte mit dem Schlüssel bitweise durch „exklusives Oder“ (XOR, in Java ^) verknüpft:
public int[] xorVerschluesseln(int[] pDaten, int pSchluessel) {
int[] ergebnis = new int[pDaten.length];
for (int i = 0; i < pDaten.length; i++) {
ergebnis[i] = pDaten[i] ^ pSchluessel;
}
return ergebnis;
}
Für zwei Bits gilt: $0\oplus 0=0$, $0\oplus 1=1$, $1\oplus 0=1$, $1\oplus 1=0$.
- a) Berechnen Sie das Ergebnis des Aufrufs mit den Daten $\{72, 105\}$ und dem Schlüssel $90$. Stellen Sie dazu die Zahlen als 8-Bit-Dualzahlen dar.
- b) Zeigen Sie, dass zweimaliges Anwenden derselben Methode mit demselben Schlüssel die ursprünglichen Daten liefert. Begründen Sie dabei allgemein mit der Wertetabelle von XOR.
- c) Ein Angreifer kennt das erste Klartextbyte einer abgefangenen Nachricht und das zugehörige Geheimtextbyte. Erläutern Sie, wie er den Schlüssel bestimmt, und beurteilen Sie die Sicherheit des Verfahrens.
Asymmetrische Verschlüsselung
Beim asymmetrischen Verfahren besitzt jeder Teilnehmer ein Schlüsselpaar:
-
den öffentlichen Schlüssel (public key), den jeder kennen darf,
-
den privaten Schlüssel (private key), den nur der Besitzer kennt.
Was mit dem einen Schlüssel verschlüsselt wurde, lässt sich nur mit dem anderen wieder entschlüsseln. Einen Geheimtext, der mit Murats öffentlichem Schlüssel erzeugt wurde, kann also nur Murat mit seinem privaten Schlüssel lesen.
Eigenschaften:
-
Es gibt kein Schlüsselaustauschproblem: Der öffentliche Schlüssel muss nicht geheim bleiben.
-
Bei $n$ Personen genügen $n$ Schlüsselpaare.
-
Die Verfahren (z. B. RSA) sind deutlich langsamer als symmetrische. Ihre Sicherheit beruht auf mathematischen Problemen, die sich praktisch nicht umkehren lassen. Beispiel: Große Zahlen in ihre Primfaktoren zerlegen ist sehr aufwendig, Multiplizieren dagegen nicht. Eine Rechnung wie bei RSA müssen Sie hier nicht ausführen.
Digitale Signatur: Man kann die Rollen auch umkehren. Wer mit dem privaten Schlüssel signiert, kann von jedem mit dem öffentlichen Schlüssel überprüft werden. So belegt man die Herkunft einer Nachricht (Authentizität).
Einsatzbereiche: HTTPS beim Online-Banking, E-Mail-Verschlüsselung, WLAN (WPA), Messenger, verschlüsselte Festplatten, Zugangsdaten bei Smart-Home-Geräten.
Lena möchte Murat eine vertrauliche Nachricht über das Internet senden. Murat hat ein Schlüsselpaar erzeugt, das aus einem öffentlichen und einem privaten Schlüssel…
Lena möchte Murat eine vertrauliche Nachricht über das Internet senden. Murat hat ein Schlüsselpaar erzeugt, das aus einem öffentlichen und einem privaten Schlüssel besteht. Den öffentlichen Schlüssel hat er auf seiner Webseite veröffentlicht.
- a) Beschreiben Sie, welchen Schlüssel Lena zum Verschlüsseln und welchen Schlüssel Murat zum Entschlüsseln verwendet.
- b) Erläutern Sie, warum Murat seinen öffentlichen Schlüssel ohne Sicherheitsrisiko veröffentlichen kann.
- c) Nennen Sie zwei Einsatzbereiche von Verschlüsselungsverfahren im Alltag.
Hybride Verfahren und Angriffe
Symmetrisch ist schnell, hat aber das Austauschproblem. Asymmetrisch löst das Austauschproblem, ist aber langsam. Die Lösung ist die Kombination als hybrides Verfahren, wie es HTTPS (TLS) nutzt:
-
Der Browser holt den öffentlichen Schlüssel des Servers.
-
Er erzeugt einen zufälligen Sitzungsschlüssel, verschlüsselt ihn asymmetrisch und schickt ihn dem Server.
-
Der Server entschlüsselt ihn mit seinem privaten Schlüssel.
-
Die eigentlichen Daten werden symmetrisch mit dem Sitzungsschlüssel übertragen.
Man-in-the-Middle-Angriff
Ein Restproblem bleibt: Gehört der öffentliche Schlüssel wirklich dem Partner? Ein Angreifer (Mallory) kann einen eigenen Schlüssel $P_X$ unterschieben, die Nachrichten entschlüsseln, lesen und mit dem echten Schlüssel weiterleiten. Keiner der Partner bemerkt etwas. Das ist ein Man-in-the-Middle-Angriff.
Schutz bieten Zertifikate: Eine vertrauenswürdige Stelle (Zertifizierungsstelle) bestätigt per digitaler Signatur, dass ein öffentlicher Schlüssel zu einer bestimmten Person oder Webseite gehört. Der Browser überprüft diese Signatur.
Vom Anfang: Die Smart Meter können mit einem hybriden Verfahren arbeiten. Die Zentrale hat ein Schlüsselpaar, jeder Zähler einigt sich damit auf einen eigenen Sitzungsschlüssel. Die Daten laufen dann schnell und symmetrisch. Ein ausgelesener Zähler gefährdet nur seine eigene Verbindung.
Beim Aufruf einer Webseite per HTTPS verwenden Browser und Server ein hybrides Verfahren. Zunächst wird mit einem asymmetrischen Verfahren ein gemeinsamer…
Beim Aufruf einer Webseite per HTTPS verwenden Browser und Server ein hybrides Verfahren. Zunächst wird mit einem asymmetrischen Verfahren ein gemeinsamer Sitzungsschlüssel vereinbart. Anschließend werden die Daten mit einem symmetrischen Verfahren verschlüsselt. Messwerte einer Testumgebung:
| Verfahren | Verarbeitungsrate |
|---|---|
| symmetrisch | $200\,\mathrm{MB/s}$ |
| asymmetrisch | $0{,}5\,\mathrm{MB/s}$ |
- a) Berechnen Sie, wie lange das Verschlüsseln von $50\,\mathrm{MB}$ Daten bei reiner Verwendung des symmetrischen und bei reiner Verwendung des asymmetrischen Verfahrens dauert.
- b) Beschreiben Sie den Ablauf des hybriden Verfahrens in der richtigen Reihenfolge.
- c) Begründen Sie, warum das hybride Verfahren die Vorteile beider Verfahrensarten verbindet.
Murat veröffentlicht seinen öffentlichen Schlüssel $P_M$. Der Angreifer Mallory kann Nachrichten im Netz abfangen und verändern. Er erzeugt ein eigenes Schlüsselpaar mit…
Murat veröffentlicht seinen öffentlichen Schlüssel $P_M$. Der Angreifer Mallory kann Nachrichten im Netz abfangen und verändern. Er erzeugt ein eigenes Schlüsselpaar mit öffentlichem Schlüssel $P_X$. Der Ablauf:
-
Lena fordert Murats öffentlichen Schlüssel an.
-
Mallory fängt die Antwort ab und sendet Lena stattdessen $P_X$.
-
Lena verschlüsselt ihre Nachricht mit $P_X$ und sendet sie.
-
Mallory entschlüsselt sie mit seinem privaten Schlüssel, liest sie, verschlüsselt sie mit $P_M$ und leitet sie an Murat weiter.
- a) Analysieren Sie, weshalb weder Lena noch Murat den Angriff bemerken, obwohl ein asymmetrisches Verfahren verwendet wird.
- b) Erläutern Sie, wie ein Zertifikat, das eine vertrauenswürdige Stelle ausstellt, diesen Angriff erschweren kann.
- c) Beurteilen Sie die Aussage: „Eine starke Verschlüsselung allein genügt nicht für sichere Kommunikation.“