MINT lernen

Asymmetrische Verschlüsselung

Zwei Aufgaben zu öffentlichem und privatem Schlüssel – von der Schul-Cloud bis zur geheimen Online-Wahl.

Dein Fortschritt:
0 / 0 Aufgaben
1

Facharbeiten in der Schul-Cloud

AFB I–II

Die Schul-Cloud eines Gymnasiums bietet eine Ende-zu-Ende-Verschlüsselung mit einem asymmetrischen Verfahren (RSA) an. Beim ersten Anmelden erzeugt jedes Gerät ein Schlüsselpaar; der öffentliche Schlüssel wird in ein Verzeichnis eingetragen, das alle Nutzer lesen können (Material M1). Im Deutschkurs von Frau Demir sollen die 28 Schülerinnen und Schüler ihre Facharbeiten so abgeben, dass niemand außer der Lehrkraft sie lesen kann – auch nicht der Betreiber der Cloud.

M1Auszug aus dem Schlüsselverzeichnis der Schul-Cloud
Nutzeröffentlicher Schlüssel (RSA, 3072 Bit, gekürzt)sichtbar für
Demir, Selin (Lehrkraft)30 82 01 8a 02 82 01 81 00 c4 7e …alle Nutzer
Albers, Lars (Q1)30 82 01 8a 02 82 01 81 00 9b 12 …alle Nutzer
Yilmaz, Hanna (Q1)30 82 01 8a 02 82 01 81 00 e0 5f …alle Nutzer
Private Schlüssel liegen nur auf den Geräten der jeweiligen Nutzer, nicht in der Cloud.
  1. Beschreiben Sie, wie Lars Albers seine Facharbeit so an Frau Demir übermittelt, dass nur sie sie lesen kann. Gehen Sie dabei auf jeden verwendeten Schlüssel ein.
  2. Vergleichen Sie den Schlüsselbedarf eines symmetrischen und des asymmetrischen Verfahrens, wenn im Kurs alle 29 Personen (28 Lernende und Frau Demir) paarweise vertraulich miteinander kommunizieren sollen.
  3. Erläutern Sie, warum es die Vertraulichkeit der Facharbeiten nicht gefährdet, dass das Schlüsselverzeichnis M1 für alle Nutzer lesbar ist, und welches Problem trotzdem offenbleibt.

Hinweise

Hinweis zu Aufgabe a)
Unterscheiden Sie, wem welcher Schlüssel gehört und wer ihn kennt. Welcher Schlüssel wird aus M1 gebraucht?Beschreiben verlangt den Ablauf in eigenen Worten mit Fachbegriffen – keine Bewertung.
Hinweis zu Aufgabe b)
Symmetrisch: Jedes Paar braucht einen eigenen Schlüssel, \(\frac{n\,(n-1)}{2}\). Asymmetrisch: ein Schlüsselpaar je Person. Vergleichen Sie auch, wie viele Geheimnisse eine einzelne Person schützen muss und was beim Hinzukommen einer Person passiert.
Hinweis zu Aufgabe c)
Denken Sie an die Idee der Einwegfunktion bei RSA. Für den zweiten Teil: Woher weiß Lars, dass der Eintrag „Demir“ in M1 wirklich zum Gerät von Frau Demir gehört?

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)
  1. Frau Demirs Gerät hat ein Schlüsselpaar erzeugt; der öffentliche Schlüssel steht in M1, der private bleibt auf ihrem Gerät.
  2. Lars liest den öffentlichen Schlüssel von Frau Demir aus dem Verzeichnis.
  3. Er verschlüsselt die Facharbeit (bzw. in der Praxis einen Sitzungsschlüssel, hybrid) mit diesem öffentlichen Schlüssel und lädt den Geheimtext hoch.
  4. Cloud-Betreiber und Mitschüler sehen nur den Geheimtext; mit dem öffentlichen Schlüssel lässt er sich nicht entschlüsseln.
  5. Frau Demir entschlüsselt mit ihrem privaten Schlüssel.

Lars' eigenes Schlüsselpaar wird für diese Übertragung nicht benötigt.

Erwartungshorizont zu Aufgabe b)
Kriteriumsymmetrischasymmetrisch
Schlüssel insgesamt (n = 29)\(\frac{29\cdot 28}{2}=406\) geheime Schlüssel29 Schlüsselpaare (58 Schlüssel, davon 29 öffentlich)
geheim zu haltende Schlüssel pro Person281 (der eigene private)
vorheriger Austauschjeder Schlüssel muss über einen sicheren Kanal verteilt werdennur öffentliche Schlüssel, über ein offenes Verzeichnis
eine neue Person kommt hinzu29 neue geheime Schlüssel1 neues Schlüsselpaar

Gemeinsamkeit: Beide Verfahren sichern bei geheim gehaltenen Schlüsseln die Vertraulichkeit. Der Schlüsselbedarf wächst symmetrisch quadratisch, asymmetrisch nur linear mit der Personenzahl; dafür ist das asymmetrische Verfahren deutlich langsamer.

Erwartungshorizont zu Aufgabe c)

Mit einem öffentlichen Schlüssel kann man nur verschlüsseln, nicht entschlüsseln. Der passende private Schlüssel lässt sich aus dem öffentlichen praktisch nicht berechnen: Bei RSA ist das Erzeugen leicht (zwei große Primzahlen multiplizieren), das Zurückrechnen würde das Zerlegen einer über 900-stelligen Zahl in ihre Primfaktoren erfordern (Einwegfunktion). Bei 3072 Bit ist das mit heutigen Rechnern nicht machbar. Wer M1 liest, kann Frau Demir also Nachrichten schicken, aber keine lesen.

Offen bleibt die Authentizität des Verzeichnisses: Könnte ein Angreifer (oder der Betreiber) den Eintrag „Demir“ durch seinen eigenen öffentlichen Schlüssel ersetzen, würde Lars für den Angreifer verschlüsseln (Man-in-the-Middle). Lösung: öffentliche Schlüssel über Zertifikate bzw. einen Abgleich des Schlüssel-Fingerabdrucks bestätigen.

2

Eine verschlüsselte Schülersprecher-Wahl

AFB II–III

Für die Wahl der Schülersprecherin bzw. des Schülersprechers programmiert die Informatik-AG einen Prototyp: Jede Stimme ist die Nummer einer Kandidatin bzw. eines Kandidaten. Die Wahl-App verschlüsselt die Nummer mit dem öffentlichen Schlüssel der Wahlleitung und sendet den Geheimtext an einen Server; nach Wahlschluss zählt die Wahlleitung auf ihrem eigenen Rechner aus. Zum Testen verwendet die AG ein RSA-Schlüsselpaar mit sehr kleinen Zahlen (Material M2).

M2Quelltext des Prototyps (Python)
N = 3233          # Modul (öffentlich)
E = 17            # öffentlicher Exponent
D = 2753          # privater Exponent

def verschluesseln(stimme):
    return pow(stimme, E, N)

def entschluesseln(geheim):
    return pow(geheim, D, N)
pow(a, b, n) berechnet den Rest von \(a^b\) bei Division durch \(n\). Kandidatennummern: 1 = Aylin, 2 = Ben, 3 = Chiara.
M3Eingegangene Stimmen (Geheimtexte) aus der Klasse 10c
geheimtexte = [1752, 1211, 1, 1752, 1211, 1752, 1752, 1]
  1. Analysieren Sie den Quelltext in M2 im Hinblick darauf, welche Werte die Wahlleitung veröffentlichen darf, welche geheim bleiben müssen und auf welchem Gerät welche Funktion ausgeführt wird.
  2. Implementieren Sie eine Funktion auszaehlen(geheimtexte), die alle Geheimtexte entschlüsselt und ein Dictionary zurückgibt, das jeder Kandidatennummer ihre Stimmenzahl zuordnet. Geben Sie das Ergebnis für M3 an.
  3. Beurteilen Sie, ob der Prototyp das Wahlgeheimnis wahrt. Beziehen Sie M3 und die verwendeten Zahlen ein und nennen Sie geeignete Verbesserungen.

Hinweise

Hinweis zu Aufgabe a)
Ordnen Sie N, E und D den beiden Schlüsseln zu. Welche Funktion braucht nur öffentliche Werte, welche einen geheimen?
Hinweis zu Aufgabe b)
Eine Schleife über die Liste, in jedem Durchlauf entschluesseln aufrufen und im Dictionary hochzählen. Achten Sie auf Nummern, die noch nicht als Schlüssel im Dictionary vorkommen.
Hinweis zu Aufgabe c)
Prüfkriterien: Wie groß ist N? Wie viele verschiedene Klartexte gibt es überhaupt – und was kann jemand tun, der den öffentlichen Schlüssel kennt? Sehen Sie sich den Geheimtext 1 genauer an.Beim Beurteilen zählt ein begründetes Urteil – nicht nur eine Liste von Schwächen.

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)
  • N und E bilden den öffentlichen Schlüssel; sie dürfen in jeder Wahl-App stehen.
  • D (zusammen mit N) ist der private Schlüssel; er darf nur auf dem Rechner der Wahlleitung vorkommen. Im Prototyp steht D im selben Quelltext – in der echten App muss D entfernt werden.
  • verschluesseln nutzt nur öffentliche Werte und läuft auf jedem Wählergerät.
  • entschluesseln benötigt D und läuft ausschließlich bei der Wahlleitung.
  • Verschlüsselung und Entschlüsselung sind jeweils eine modulare Potenz; der Unterschied liegt nur im Exponenten (E bzw. D).
Erwartungshorizont zu Aufgabe b)
def auszaehlen(geheimtexte):
    ergebnis = {}
    for g in geheimtexte:
        stimme = entschluesseln(g)
        if stimme in ergebnis:
            ergebnis[stimme] = ergebnis[stimme] + 1
        else:
            ergebnis[stimme] = 1
    return ergebnis

Entschlüsselt ergibt M3 die Stimmen 2, 3, 1, 2, 3, 2, 2, 1, also {2: 4, 3: 2, 1: 2}: Ben 4 Stimmen, Aylin und Chiara je 2.

Erwartungshorizont zu Aufgabe c)

Schwäche 1 – zu kleine Zahlen: \(N = 3233 = 61\cdot 53\) lässt sich sofort faktorisieren; daraus kann jeder D berechnen und alle Stimmen entschlüsseln.

Schwäche 2 – wenige, vorhersagbare Klartexte: Es gibt nur die Klartexte 1, 2, 3, und die Verschlüsselung ist deterministisch. Jeder kann mit dem öffentlichen Schlüssel alle drei verschlüsseln (1 → 1, 2 → 1752, 3 → 1211) und die Geheimtexte in M3 einfach vergleichen – ganz ohne privaten Schlüssel. Besonders auffällig: \(1^{17}\bmod 3233 = 1\), Stimmen für Aylin stehen sogar im Klartext da. Das gilt auch bei 3072-Bit-Schlüsseln.

Weitere Punkte: Der Server sieht, von welchem Gerät welcher Geheimtext kommt; ohne Anmeldung/Signatur könnte jemand mehrfach abstimmen.

Verbesserungen: ausreichend lange Schlüssel (mind. 3072 Bit), jede Stimme vor dem Verschlüsseln mit einer Zufallszahl auffüllen (zufälliges Padding) oder hybrid mit zufälligem Sitzungsschlüssel verschlüsseln, private Schlüssel getrennt verwahren, Stimmabgabe authentisieren, aber Identität und Stimme trennen.

Urteil: In der vorliegenden Form wahrt der Prototyp das Wahlgeheimnis nicht; das asymmetrische Prinzip ist geeignet, die Umsetzung aber nicht.