Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Asymmetrische Verschlüsselung und RSA

Nach dieser Lektion: Ich kann erklären, wie ein öffentlicher und ein privater Schlüssel zusammenarbeiten.

Lektion, 65 Min.5 BefehleLab „Linux im Alltag“: die dreißig Befehle, die Entwickelnde auswendig tippen

Wie funktioniert ein öffentlicher Schlüssel?

Bei der asymmetrischen Verschlüsselung hat jede Person zwei Schlüssel: einen öffentlichen, den alle kennen dürfen, und einen privaten, den nur sie selbst kennt. Was der eine verschließt, öffnet nur der andere.

So können sich zwei Menschen sicher schreiben, die sich nie getroffen haben. Eine Webseite nutzt dieses Prinzip bei jedem Aufruf mit HTTPS.

Am Ende dieser Lektion

Notiz

Ich kann erklären, wie ein öffentlicher und ein privater Schlüssel zusammenarbeiten.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
öffentlicher Schlüsselder Teil des Paares, den alle kennen dürfen und mit dem man verschlüsselt
privater Schlüsselder Teil des Paares, der geheim bleibt und mit dem man entschlüsselt
Schlüsselpaarzwei Schlüssel, die mathematisch zusammengehören
Moduloder Rest nach einer Division15 modulo 12 ist 3
Primzahleine Zahl, die nur durch 1 und sich selbst teilbar ist11
Hybridverfahrenasymmetrisch einen Schlüssel vereinbaren, symmetrisch die Daten verschlüsseln

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Das Problem: Wie kommt der Schlüssel zum Gegenüber?

Symmetrische Verfahren sind schnell. Sie haben aber ein Henne-Ei-Problem: Beide brauchen denselben geheimen Schlüssel, und den muss einer zum anderen bringen.

Per E-Mail ist das riskant, denn jede Person auf dem Weg liest mit. Die asymmetrische Verschlüsselung löst das Problem.

Ein Briefkasten als Bild

Stellen Sie sich einen Briefkasten vor. Jede Person darf einen Brief einwerfen. Nur wer den Schlüssel zum Kasten hat, holt die Briefe heraus.

Der öffentliche Schlüssel ist der Einwurfschlitz: alle dürfen ihn nutzen. Der private Schlüssel ist der Schlüssel zum Kasten und bleibt beim Besitzer.

RSA mit kleinen Zahlen in vier Schritten

RSA ist das bekannteste Verfahren dieser Art. Wir rechnen mit Zahlen, die so klein sind, dass Sie nachrechnen können. Das ist ein Spielzeug und nicht sicher.

Echte Schlüssel haben Hunderte von Stellen. Das Prinzip bleibt gleich. Lesen Sie die Tabelle von oben nach unten.

Ein Beispiel: ein kleines Schlüsselpaar bauen

SchrittRechnungErgebnis
1. Zwei Primzahlen wählenp = 11 und q = 23Beide sind prim
2. Das Produkt bildenn = 11 mal 23n = 253
3. Den Hilfswert bilden(11 minus 1) mal (23 minus 1)220
4. Einen öffentlichen Exponenten wählene = 7, teilerfremd zu 220e = 7
5. Den privaten Exponenten findend mit 7 mal d, Rest 1 modulo 220d = 63

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

n und den Hilfswert berechnen

Befehl
python3 -c "print(11 * 23, (11 - 1) * (23 - 1))"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Stimmt der private Exponent?

Befehl
python3 -c "print(7 * 63 % 220)"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Was das Terminal ausgibt

Der erste Befehl gibt 253 220 aus. Der zweite gibt 1 aus. Das Zeichen % rechnet Modulo, also den Rest.

Der öffentliche Schlüssel ist jetzt das Paar (7, 253). Der private ist das Paar (63, 253).

Verschlüsseln und Entschlüsseln heißt potenzieren

Eine Nachricht ist hier eine Zahl m unter 253. Der Geheimtext c ist m hoch e, Rest modulo n. Zurück kommt man mit c hoch d, Rest modulo n.

Python rechnet das mit pow(m, e, n) schnell und ohne riesige Zwischenwerte.

Die Zahl 65 mit dem öffentlichen Schlüssel verschlüsseln

Befehl
python3 -c "print(pow(65, 7, 253))"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Mit dem privaten Schlüssel zurückrechnen

Befehl
python3 -c "print(pow(153, 63, 253))"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Mit einem falschen Exponenten versuchen

Befehl
python3 -c "print(pow(153, 62, 253))"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Nur der richtige Schlüssel führt zurück

Die drei Befehle geben 153, dann 65 und dann 12 aus. Mit 63 kommt die Ausgangszahl zurück. Mit 62 kommt eine andere Zahl heraus, nicht die 65.

Wer nur (7, 253) kennt, müsste 253 in 11 mal 23 zerlegen, um d zu finden. Bei 253 gelingt das im Kopf. Bei einer Zahl mit 600 Stellen gelingt es keinem Computer.

Warum echte Schlüssel groß sein müssen

Größe von nZerlegen in Primzahlen
3 Stellen, wie 253Von Hand in Sekunden
15 StellenMit einem Programm in Sekunden
über 600 Stellen, 2048 BitMit heutiger Technik praktisch unmöglich

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Bauen Sie nie Ihr eigenes RSA

Warnung

Das RSA dieser Lektion ist ein Spielzeug. Echtes RSA braucht Auffüllen, große Zufallszahlen und viele Vorsichtsmaßnahmen. Nutzen Sie dafür eine geprüfte Bibliothek und nie Ihren eigenen Code.

In der Praxis mischt man beide Arten

Asymmetrische Verfahren sind langsam. Darum verschlüsselt man mit ihnen nur einen kurzen Sitzungsschlüssel. Die eigentlichen Daten verschlüsselt danach ein schnelles symmetrisches Verfahren wie AES.

Das nennt man ein Hybridverfahren. Fast jede HTTPS-Verbindung arbeitet so.

Ein häufiger Fehler

Warnung

Viele glauben, der öffentliche Schlüssel müsse geheim bleiben, oder der private dürfe weitergegeben werden. Es ist umgekehrt. Der öffentliche Schlüssel ist für alle, der private gehört nur Ihnen.

Weiterführend: andere Zahlen wählen

Wählen Sie p = 7, q = 19 und e = 5. Berechnen Sie n und den Hilfswert von Hand. Suchen Sie dann d mit einem kleinen Python-Befehl.

Verschlüsseln Sie die Zahl 42 und rechnen Sie zurück. Beschreiben Sie in zwei Sätzen, was angreifende Personen bräuchten, die nur (5, 133) kennen.

Über dieses Lab und seinen Quellcode: Lab „Linux im Alltag“: die dreißig Befehle, die Entwickelnde auswendig tippen

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.