Zurück zur StartseiteInformatik · Q2 Grundkurs · Fach wechseln
Kostenlos starten
Q2 Grundkurs · Informatik
Vorbereitung auf das Abitur Informatik · Vernetzte Informatiksysteme: Rechnernetze, Verschlüsselung und Datenschutz am Beispiel des Internets der Dinge

Symmetrische und asymmetrische Verschlüsselungsverfahren

Ein Stadtwerk in Köln liest die Smart Meter seiner Kunden per Funk aus. Jeder Zähler sendet seine Verbrauchsdaten über das Internet an die Zentrale. Wer unterwegs mitliest, erfährt, wann jemand zu Hause ist. Wie kann man Daten so verschicken, dass nur der Empfänger sie lesen kann, und wie einigen sich beide auf ein Geheimnis, ohne sich vorher zu treffen? Am Ende der Seite beantworten Sie diese Frage.

Klartext, Geheimtext, Schlüssel: die Caesar-Verschlüsselung

Eine Verschlüsselung wandelt einen lesbaren Klartext mithilfe eines Schlüssels in einen Geheimtext um. Nur wer den passenden Schlüssel kennt, kann den Geheimtext wieder entschlüsseln. Die Funktionsweise des Verfahrens (der Algorithmus) darf dabei bekannt sein. Die Sicherheit soll allein im Schlüssel liegen.

Das einfachste Beispiel ist die Caesar-Verschlüsselung. Jeder Buchstabe wird im Alphabet um $k$ Stellen nach hinten verschoben, nach Z folgt wieder A. Der Schlüssel ist die Zahl $k$. Zum Entschlüsseln verschiebt man um $k$ Stellen zurück.

Rechnerisch nummeriert man die Buchstaben mit $A=0, B=1, \dots, Z=25$. Dann gilt:

Das „$\bmod 26$“ (Rest bei Division durch 26) sorgt dafür, dass nach Z wieder A kommt. In Java schreibt man dafür %.

Die gleiche Rechnung als Java-Methode (Großbuchstaben, Schlüssel 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';                  // 'A' -> 0, 'B' -> 1, ...

        int neu = (pos + pSchluessel) % 26;

        ergebnis = ergebnis + (char) ('A' + neu);

    }

    return ergebnis;

}

c - 'A' rechnet den Buchstaben in seine Position um. (char) ('A' + neu) wandelt die neue Position zurück in einen Buchstaben. Beim Entschlüsseln rechnet man (pos - pSchluessel + 26) % 26. Das + 26 ist nötig, weil % bei negativen Zahlen in Java ein negatives Ergebnis liefern kann.

Die Caesar-Verschlüsselung ist ein symmetrisches Verfahren: Zum Ver- und Entschlüsseln dient derselbe Schlüssel $k$. Sie ist aber unsicher, denn es gibt nur 25 sinnvolle Schlüssel. Man kann sie in Sekunden durch Ausprobieren knacken.

Üben★☆☆Nicht begonnen
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.

  1. a) Verschlüsseln Sie das Wort KOELN mit dem Schlüssel $k=3$.
  1. b) Entschlüsseln Sie den Geheimtext GHXWVFK, der mit dem Schlüssel $k=3$ erzeugt wurde.
  1. c) Erläutern Sie, warum es sich bei der Caesar-Verschlüsselung um ein symmetrisches Verfahren handelt.
Lösen
Üben★★☆Nicht begonnen
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;

}
  1. a) Bestimmen Sie das Ergebnis des Aufrufs verschluessele("WIND", 5) und geben Sie dazu für jedes Zeichen die Werte von pos und neu an.
  1. b) Erläutern Sie die Wirkung des Modulo-Operators % 26 in dieser Methode.
  1. c) Entwickeln Sie eine Methode entschluessele(String pText, int pSchluessel), die die Methode verschluessele verwendet. Begründen Sie außerdem, dass die Caesar-Verschlüsselung leicht zu brechen ist.
Lösen

Symmetrisch oder asymmetrisch?

Bei symmetrischen Verfahren verwenden Sender und Empfänger denselben geheimen Schlüssel. Beispiele sind Caesar und AES. Sie sind schnell und für große Datenmengen geeignet. Es gibt aber zwei Probleme:

  • Schlüsselaustausch: Wie gelangt der geheime Schlüssel sicher zum Empfänger? Über das unsichere Netz darf er nicht einfach verschickt werden.

  • Schlüsselanzahl: Wenn jedes Paar von $n$ Personen einen eigenen Schlüssel braucht, sind es

$$\frac{n\,(n-1)}{2}$$

Schlüssel. Bei 4 Personen sind das 6 Schlüssel, bei 10 Personen schon 45, bei 1.000 Personen fast 500.000.

Bei asymmetrischen Verfahren hat jeder Teilnehmer ein Schlüsselpaar: einen öffentlichen Schlüssel (public key), den jeder kennen darf, und einen privaten Schlüssel (private key), der geheim bleibt. Ein Beispiel ist RSA. Was mit dem einen Schlüssel verschlüsselt wurde, lässt sich nur mit dem anderen entschlüsseln. Man kann den privaten Schlüssel nicht mit vertretbarem Aufwand aus dem öffentlichen berechnen. Das beruht auf mathematischen Aufgaben, die in einer Richtung leicht und in der Gegenrichtung praktisch unlösbar sind.

Bei $n$ Personen werden nur $n$ Schlüsselpaare gebraucht. Jeder veröffentlicht seinen öffentlichen Schlüssel, und ein Schlüsselaustausch über einen geheimen Kanal entfällt. Dafür sind asymmetrische Verfahren deutlich langsamer.

symmetrisch asymmetrisch
Schlüssel ein gemeinsamer geheimer Schlüssel Schlüsselpaar: öffentlich und privat
Geschwindigkeit schnell langsam
Schlüsselaustausch Problem kein geheimer Austausch nötig
Schlüssel bei $n$ Personen $\frac{n(n-1)}{2}$ $n$ Paare
Beispiele Caesar, AES RSA
Üben★☆☆Nicht begonnen
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.

  1. a) Nennen Sie den grundlegenden Unterschied zwischen symmetrischen und asymmetrischen Verschlüsselungsverfahren im Hinblick auf die verwendeten Schlüssel.
  1. 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.
  1. c) Beschreiben Sie das Problem des Schlüsselaustauschs bei symmetrischen Verfahren.
Lösen

Asymmetrisch verschlüsseln, signieren und Angriffe

Lena will Murat eine vertrauliche Nachricht senden. Der Ablauf:

  1. Murat erzeugt ein Schlüsselpaar und veröffentlicht den öffentlichen Schlüssel $P_M$.

  2. Lena verschlüsselt mit Murats öffentlichem Schlüssel.

  3. Nur Murat kann mit seinem privaten Schlüssel entschlüsseln.

Lena verschlüsselt mit Murats öffentlichem Schlüssel, Murat entschlüsselt mit seinem privaten Schlüssel. Lena verschlüsselt mit öffentl. Schlüssel Murat entschlüsselt mit privatem Schlüssel Geheimtext

Der öffentliche Schlüssel kann gefahrlos veröffentlicht werden. Er dient nur zum Verschlüsseln. Daraus den privaten Schlüssel zu berechnen, ist praktisch unmöglich. Selbst Lena kann ihre eigene Nachricht danach nicht mehr entschlüsseln.

Digitale Signatur (Idee): Dreht man die Rollen um, kann man damit die Herkunft einer Nachricht belegen. Murat „signiert“ mit seinem privaten Schlüssel. Jeder kann mit dem öffentlichen Schlüssel prüfen, dass die Signatur nur von Murat stammen kann. Das sichert die Authentizität. Die Vertraulichkeit sichert das noch nicht.

Es bleibt eine Schwachstelle: Woher weiß Lena, dass der öffentliche Schlüssel wirklich Murat gehört? Ein Angreifer „in der Mitte“ (Man-in-the-Middle) kann Lena seinen eigenen öffentlichen Schlüssel unterschieben, die Nachrichten mitlesen und sie mit dem echten Schlüssel an Murat weiterleiten. Beide bemerken nichts, weil die Verschlüsselung selbst fehlerfrei funktioniert. Das Problem liegt in der Authentifizierung des Schlüssels. Die Lösung sind Zertifikate: Eine vertrauenswürdige Stelle (Zertifizierungsstelle) bestätigt per digitaler Signatur, dass ein öffentlicher Schlüssel zu einer bestimmten Person oder Webseite gehört.

Üben★☆☆Nicht begonnen
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.

  1. a) Beschreiben Sie, welchen Schlüssel Lena zum Verschlüsseln und welchen Schlüssel Murat zum Entschlüsseln verwendet.
  1. b) Erläutern Sie, warum Murat seinen öffentlichen Schlüssel ohne Sicherheitsrisiko veröffentlichen kann.
  1. c) Nennen Sie zwei Einsatzbereiche von Verschlüsselungsverfahren im Alltag.
Lösen
Üben★★★Nicht begonnen
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:

  1. Lena fordert Murats öffentlichen Schlüssel an.

  2. Mallory fängt die Antwort ab und sendet Lena stattdessen $P_X$.

  3. Lena verschlüsselt ihre Nachricht mit $P_X$ und sendet sie.

  4. Mallory entschlüsselt sie mit seinem privaten Schlüssel, liest sie, verschlüsselt sie mit $P_M$ und leitet sie an Murat weiter.

  1. a) Analysieren Sie, weshalb weder Lena noch Murat den Angriff bemerken, obwohl ein asymmetrisches Verfahren verwendet wird.
  1. b) Erläutern Sie, wie ein Zertifikat, das eine vertrauenswürdige Stelle ausstellt, diesen Angriff erschweren kann.
  1. c) Beurteilen Sie die Aussage: „Eine starke Verschlüsselung allein genügt nicht für sichere Kommunikation.“
Lösen

Hybride Verfahren: HTTPS

Symmetrische Verfahren sind schnell, aber der Schlüsselaustausch ist schwierig. Asymmetrische Verfahren lösen den Austausch, sind aber langsam. Man kombiniert deshalb beide zu einem hybriden Verfahren. So arbeitet HTTPS (HTTP über TLS):

  1. Der Server schickt sein Zertifikat mit dem öffentlichen Schlüssel. Der Browser prüft es.

  2. Mit dem asymmetrischen Verfahren vereinbaren beide einen Sitzungsschlüssel. Das sind nur wenige Bytes.

  3. Alle weiteren Daten werden symmetrisch mit dem Sitzungsschlüssel verschlüsselt.

Zurück zum Anfang: Die Smart Meter des Stadtwerks können genau so arbeiten. Sie nutzen ein asymmetrisches Verfahren, um einen Sitzungsschlüssel zu vereinbaren, und verschlüsseln dann die Verbrauchsdaten schnell und sparsam symmetrisch. Das ist wichtig, weil die Geräte nur wenig Rechenleistung und Energie haben.

Üben★★☆Nicht begonnen
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}$
  1. 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.
  1. b) Beschreiben Sie den Ablauf des hybriden Verfahrens in der richtigen Reihenfolge.
  1. c) Begründen Sie, warum das hybride Verfahren die Vorteile beider Verfahrensarten verbindet.
Lösen

Schlüssellänge, Brute-Force und XOR

Bei einem Brute-Force-Angriff probiert der Angreifer systematisch alle Schlüssel aus. Ein Schlüssel mit $n$ Bit hat $2^n$ mögliche Werte. Mit jedem zusätzlichen Bit verdoppelt sich die Zahl der Schlüssel. Im Mittel findet der Angreifer den Schlüssel nach der Hälfte der Versuche. Die längste Zeit entspricht dem Durchprobieren aller Schlüssel:

$$\text{Zeit} = \frac{2^n}{\text{Versuche pro Sekunde}}$$

Schlüssellänge ist ein Sicherheitsmerkmal, aber nicht das einzige. Ein einfaches Verfahren mit langem Schlüssel kann trotzdem unsicher sein. Außerdem sind Rechner mit der Zeit schneller geworden, daher müssen Schlüssel länger werden.

Verschlüsselung mit XOR: Das exklusive Oder verknüpft Bits einzeln: $0\oplus 0=0$, $0\oplus 1=1$, $1\oplus 0=1$, $1\oplus 1=0$. Ein Sensorknoten kann jedes Datenbyte mit dem Schlüsselbyte per XOR verknüpfen (in Java ^). Die Besonderheit: Zweimal dieselbe Verknüpfung hebt sich auf, $a \oplus k \oplus k = a$. Verschlüsseln und Entschlüsseln sind also dieselbe Rechnung, mit demselben Schlüssel. Das ist ein symmetrisches Verfahren.

Üben★★☆Nicht begonnen
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}$.

  1. 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.
  1. b) Begründen Sie, wie sich der Aufwand eines Angriffs mit jedem zusätzlichen Bit der Schlüssellänge verändert.
  1. 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.
Lösen
Üben★★★Nicht begonnen
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$.

  1. 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.
  1. 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.
  1. 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.
Lösen

Schlüsselverwaltung im Internet der Dinge

Bei vielen Geräten kommt es nicht nur auf das Verfahren an, sondern auch auf die Schlüsselverwaltung. Ein Gerät, das ein Angreifer physisch auslesen kann (z. B. ein Zähler im Keller), verrät seinen Schlüssel. Entscheidend ist dann, was dieser Schlüssel noch schützt:

  • Ein gemeinsamer Schlüssel für alle Geräte: Wird ein Gerät ausgelesen, sind alle Geräte betroffen. Der Schlüssel muss überall ausgetauscht werden.

  • Ein eigener Schlüssel pro Gerät: Nur dieses Gerät ist kompromittiert. Die Zentrale kann den Schlüssel sperren oder austauschen. Dafür muss sie viele Schlüssel sicher verwalten.

Dazu kommen: keine Standardpasswörter, regelmäßige Updates und eine Speicherung der Schlüssel in geschützter Hardware. Sie sollten solche Konzepte immer abwägen, etwa nach Aufwand, Sicherheit und Folgen im Schadensfall, und Ihre Entscheidung begründen.

Üben★★★Nicht begonnen
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.

  1. 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.
  1. b) Erläutern Sie, welches Problem beim Schlüsselaustausch für Konzept B auftritt, wenn die Zähler bereits installiert sind.
  1. 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.
Lösen

Auf einen Blick

Alle Aufgaben zu diesem Abschnitt anzeigen