Auf einen Blick
- Schlüsselpaar: Jeder Teilnehmer besitzt einen öffentlichen Schlüssel (zum Verschlüsseln) und einen privaten Schlüssel (zum Entschlüsseln).
- Kein sicherer Kanal nötig: Der öffentliche Schlüssel darf frei verteilt werden – der Hauptvorteil gegenüber symmetrischen Verfahren.
- RSA (1977): Basiert auf der Schwierigkeit, große Zahlen $n = p \cdot q$ zu faktorisieren.
- Langsam: RSA ist etwa 1000× langsamer als AES – daher werden hybride Verfahren (RSA + AES) verwendet.
- Padding notwendig: Textbook-RSA ist unsicher. In der Praxis: OAEP (Verschlüsselung), PSS (Signaturen).
Kernkonzepte
Grundprinzip asymmetrischer Verschlüsselung
Bei symmetrischen Verfahren teilen sich Sender und Empfänger denselben geheimen Schlüssel – der muss aber irgendwie sicher übertragen werden. Bei asymmetrischen Verfahren gibt es zwei mathematisch verknüpfte Schlüssel:
- Öffentlicher Schlüssel (public key): darf jeder wissen, wird zum Verschlüsseln genutzt.
- Privater Schlüssel (private key): bleibt geheim, wird zum Entschlüsseln genutzt.
Nur der Besitzer des privaten Schlüssels kann Nachrichten entschlüsseln, die mit seinem öffentlichen Schlüssel verschlüsselt wurden.
Vorteil: Kein sicherer Kanal für Schlüsseltransport erforderlich.
Nachteil: Rechenintensiv, dadurch viel langsamer als symmetrische Verfahren.
RSA – Schlüsselgenerierung
RSA wurde 1977 von Rivest, Shamir und Adleman am MIT entwickelt. Ablauf der Schlüsselerzeugung:
- Wähle zwei große Primzahlen $p$ und $q$ (in der Praxis je 1024 oder 2048 Bit).
- Berechne den Modulus $n = p \cdot q$.
- Berechne die Eulersche Phi-Funktion $\varphi(n) = (p-1)(q-1)$.
- Wähle den öffentlichen Exponenten $e$ mit $1 < e < \varphi(n)$ und $\gcd(e, \varphi(n)) = 1$. In der Praxis meist $e = 65537 = 2^{16} + 1$.
- Berechne das multiplikative Inverse $d$ mit $e \cdot d \equiv 1 \pmod{\varphi(n)}$ (erweiterter Euklidischer Algorithmus).
Öffentlicher Schlüssel: $(n, e)$
Privater Schlüssel: $d$ (und $p, q, \varphi(n)$ müssen geheim bleiben!)
RSA – Ver- und Entschlüsseln
Sei $m$ die Nachricht als Zahl mit $0 \le m < n$.
Verschlüsseln (mit öffentlichem Schlüssel):
$c = m^e \bmod n$
Entschlüsseln (mit privatem Schlüssel):
$m = c^d \bmod n$
Korrektheit
Es gilt $c^d = (m^e)^d = m^{e \cdot d}$. Wegen $e \cdot d \equiv 1 \pmod{\varphi(n)}$ ist $e \cdot d = 1 + k \cdot \varphi(n)$ für ein $k \in \mathbb{N}$. Damit:
$m^{ed} = m^{1 + k\varphi(n)} = m \cdot (m^{\varphi(n)})^k \equiv m \cdot 1^k = m \pmod n$
Der letzte Schritt folgt aus dem Satz von Euler: $m^{\varphi(n)} \equiv 1 \pmod n$ für $\gcd(m, n) = 1$.
Sicherheit von RSA
Die Sicherheit von RSA basiert auf dem Faktorisierungsproblem: Aus $n$ die Primfaktoren $p$ und $q$ zu bestimmen, ist für große $n$ praktisch unmöglich.
Wer $p$ und $q$ kennt, kann $\varphi(n)$ berechnen und daraus $d$ – RSA wäre gebrochen.
Heutige Schlüssellängen:
| Bitlänge $n$ | Sicherheit |
|---|---|
| 1024 Bit | nicht mehr empfohlen |
| 2048 Bit | Standard bis ca. 2030 |
| 4096 Bit | langfristig sicher (nach heutigem Stand) |
Padding – warum Textbook-RSA unsicher ist
Reines RSA ohne Padding hat schwerwiegende Schwächen:
- Deterministisch: Gleiche Nachricht ergibt immer denselben Chiffretext → keine semantische Sicherheit.
- Kleine Nachrichten: Ist $m^e < n$, entfällt der Modulo und man kann $m = \sqrt[e]{c}$ direkt ziehen.
- Multiplikative Struktur: $c_1 \cdot c_2 = (m_1 \cdot m_2)^e \bmod n$ ermöglicht Angriffe.
Deshalb werden in der Praxis Padding-Verfahren eingesetzt:
- OAEP (Optimal Asymmetric Encryption Padding) – für Verschlüsselung.
- PSS (Probabilistic Signature Scheme) – für digitale Signaturen.
Hybride Verfahren
RSA ist ca. 1000× langsamer als AES. Deshalb kombiniert man beide:
- Sender erzeugt zufälligen AES-Sessionkey $k$.
- Nutzdaten werden mit $k$ per AES verschlüsselt.
- Der Sessionkey $k$ wird mit dem RSA-öffentlichen Schlüssel des Empfängers verschlüsselt.
- Beides (verschlüsselte Daten + verschlüsselter Sessionkey) wird gesendet.
Dieses Prinzip ist die Grundlage von TLS/HTTPS, PGP und S/MIME.
RSA für digitale Signaturen
RSA kann auch zum Signieren verwendet werden – die Rollen werden vertauscht:
- Signieren (mit privatem Schlüssel): $\text{Sig} = m^d \bmod n$
- Verifizieren (mit öffentlichem Schlüssel): prüfe $\text{Sig}^e \bmod n \stackrel{?}{=} m$
Nur der Besitzer des privaten Schlüssels kann eine gültige Signatur erzeugen – jeder mit dem öffentlichen Schlüssel kann sie prüfen.
Merksätze
🖊️ Handrechnung nach Miller
Karte 1 · RSA-Kochrezept in Miller-Notation
Miller nennt $\varphi(n)$ konsequent $z$. Merke die fünf Schritte in genau dieser Reihenfolge, sie decken jede Klausur-Teilaufgabe ab.
- Zwei Primzahlen wählen: $p, q$ prim.
- Modulus: $n = p \cdot q$.
- Miller-Phi: $z = \varphi(n) = (p-1)(q-1)$.
- Öffentlicher Exponent: $e$ mit $1 < e < n$ und $\gcd(e, z) = 1$.
- Privater Exponent: $d$ mit $e \cdot d \equiv 1 \bmod z$ (via erweitertem Euklid).
Schlüsselpaare: $E = (e, n)$ öffentlich, $D = (d, n)$ privat.
Chiffrieren: $c \equiv m^e \bmod n$. Dechiffrieren: $m \equiv c^d \bmod n$.
Miller-Beobachtung: $e$ und $d$ sind symmetrisch — dieselbe Rechnung liefert eine Signatur, wenn Alice zuerst mit $d$ potenziert und Bob mit $e$ prüft.
Karte 2 · Erweiterter Euklid nach Miller (Folie S.79)
Miller schreibt das Verfahren als Zwei-Spalten-Tabelle — links die Modulo-Reste $r_i$, rechts die ganzzahligen Quotienten $x_i$. Anschließend läuft eine Rückwärts-Rekursion.
Tabelle:
$z \bmod e = r_0 \quad|\quad z \div e = x_0$
$e \bmod r_0 = r_1 \quad|\quad e \div r_0 = x_1$
$r_0 \bmod r_1 = r_2 \quad|\quad r_0 \div r_1 = x_2$
$\vdots$
$r_{t-2} \bmod r_{t-1} = 1 \quad|\quad r_{t-2} \div r_{t-1} = x_t$
Abbruch, sobald ein Rest 1 auftaucht (das bestätigt zugleich $\gcd(z, e) = 1$). Ist der letzte echte Rest größer als 1, ist $e$ ungültig.
Rekursion:
$A_{t+2} = 0, \quad A_{t+1} = 1$
$A_k = A_{k+2} - x_k \cdot A_{k+1} \quad$ für $k = t, t-1, \ldots, 0$
Gesuchtes $d = A_0 \bmod z$ (bei negativem $A_0$ einfach $z$ addieren).
Beispiel A: $z = 60,\ e = 53$
$60 \bmod 53 = 7 \quad|\quad 60 \div 53 = 1 \quad\Rightarrow r_0 = 7,\ x_0 = 1$
$53 \bmod 7 = 4 \quad|\quad 53 \div 7 = 7 \quad\Rightarrow r_1 = 4,\ x_1 = 7$
$7 \bmod 4 = 3 \quad|\quad 7 \div 4 = 1 \quad\Rightarrow r_2 = 3,\ x_2 = 1$
$4 \bmod 3 = 1 \quad|\quad 4 \div 3 = 1 \quad\Rightarrow r_3 = 1,\ x_3 = 1 \quad\text{(Stop)}$
Also $t = 3$. Rekursion:
$A_5 = 0,\ A_4 = 1$
$A_3 = A_5 - x_3 \cdot A_4 = 0 - 1 \cdot 1 = -1$
$A_2 = A_4 - x_2 \cdot A_3 = 1 - 1 \cdot (-1) = 2$
$A_1 = A_3 - x_1 \cdot A_2 = -1 - 7 \cdot 2 = -15$
$A_0 = A_2 - x_0 \cdot A_1 = 2 - 1 \cdot (-15) = 17$
Ergebnis: $d = 17$. Probe: $53 \cdot 17 = 901 = 15 \cdot 60 + 1 \equiv 1 \bmod 60$ ✓
Beispiel B: $z = 160,\ e = 107$ (aus Klausuraufgabe unten)
$160 \bmod 107 = 53 \quad|\quad 160 \div 107 = 1 \quad\Rightarrow r_0 = 53,\ x_0 = 1$
$107 \bmod 53 = 1 \quad|\quad 107 \div 53 = 2 \quad\Rightarrow r_1 = 1,\ x_1 = 2 \quad\text{(Stop)}$
Also $t = 1$. Rekursion:
$A_3 = 0,\ A_2 = 1$
$A_1 = A_3 - x_1 \cdot A_2 = 0 - 2 \cdot 1 = -2$
$A_0 = A_2 - x_0 \cdot A_1 = 1 - 1 \cdot (-2) = 3$
Ergebnis: $d = 3$. Probe: $107 \cdot 3 = 321 = 2 \cdot 160 + 1 \equiv 1 \bmod 160$ ✓
Die Mod-Spalte dient nur der Abbruchprüfung ($\gcd = 1$ genau dann, wenn ein Rest 1 auftritt). Für die Rekursion braucht man ausschließlich die Div-Spalte $x_0, x_1, \ldots, x_t$. Vorzeichen sauber mitführen, negative $A_i$ sind normal und werden am Ende via $+z$ korrigiert.
Karte 3 · Ägyptisches Potenzieren (Square-and-Multiply)
Miller nennt Square-and-Multiply konsequent ägyptisches Potenzieren (Übungsaufg. 16). Ohne diese Technik ist $m^e \bmod n$ für Klausur-typische Exponenten nicht in endlicher Zeit rechenbar.
Rezept (MSB-first):
- Exponent binär schreiben, führendes Bit ist immer 1.
- Startwert $r = 1$.
- Für jedes Bit von links nach rechts: $r \leftarrow r^2 \bmod n$; falls Bit = 1, zusätzlich $r \leftarrow r \cdot m \bmod n$.
- Nach dem letzten Bit ist $r = m^e \bmod n$.
Mini-Beispiel: $3^5 \bmod 7$ mit $5 = 101_2$.
Start: $r = 1$
Bit 1 (MSB): $r = 1^2 \cdot 3 = 3$
Bit 0: $r = 3^2 = 9 \equiv 2 \bmod 7$
Bit 1: $r = 2^2 \cdot 3 = 12 \equiv 5 \bmod 7$
Ergebnis: $3^5 \bmod 7 = 5$ ✓
In der Klausur immer zuerst die Bit-Tabelle des Exponenten aufschreiben (z.B. $107 = 1101011_2$), dann Zeile für Zeile quadrieren und bei jeder 1 mit der Basis multiplizieren — jeweils sofort $\bmod n$ reduzieren, sonst werden die Zwischenzahlen unbeherrschbar.
Karte 4 · Vollständige Klausuraufgabe: $p=11,\ q=17,\ e=107,\ m=6$
Schritt 1 — Schlüssel erzeugen:
$n = p \cdot q = 11 \cdot 17 = 187$
$z = (p-1)(q-1) = 10 \cdot 16 = 160$
$\gcd(107, 160) = 1$ ✓ (aus EEA-Tabelle sichtbar)
$d = 3$ (aus Karte 2, Beispiel B)
Probe: $e \cdot d = 107 \cdot 3 = 321 \equiv 1 \bmod 160$ ✓
Also $E = (107, 187)$, $D = (3, 187)$.
Schritt 2 — Verschlüsseln $c = 6^{107} \bmod 187$:
Binärdarstellung: $107 = 64 + 32 + 8 + 2 + 1 = 1101011_2$.
Vorab-Potenzen (jeweils quadrieren und $\bmod 187$):
$6^1 \equiv 6$
$6^2 \equiv 36$
$6^4 = 36^2 = 1296 = 6 \cdot 187 + 174 \equiv 174$
$6^8 = 174^2$. Mit $174 \equiv -13 \bmod 187$ folgt $6^8 \equiv (-13)^2 = 169$
$6^{16} = 169^2 = 28561 = 152 \cdot 187 + 137 \equiv 137$
$6^{32} = 137^2 = 18769 = 100 \cdot 187 + 69 \equiv 69$
$6^{64} = 69^2 = 4761 = 25 \cdot 187 + 86 \equiv 86$
Zusammensetzen $6^{107} = 6^{64} \cdot 6^{32} \cdot 6^{8} \cdot 6^{2} \cdot 6^{1}$:
$86 \cdot 69 = 5934 = 31 \cdot 187 + 137 \equiv 137$
$137 \cdot 169 = 23153 = 123 \cdot 187 + 152 \equiv 152$
$152 \cdot 36 = 5472 = 29 \cdot 187 + 49 \equiv 49$
$49 \cdot 6 = 294 = 1 \cdot 187 + 107 \equiv 107$
Ergebnis: $c = 107$.
Schritt 3 — Kontrolle via Entschlüsseln $m = 107^3 \bmod 187$:
$107^2 = 11449 = 61 \cdot 187 + 42 \equiv 42$
$107^3 = 42 \cdot 107 = 4494 = 24 \cdot 187 + 6 \equiv 6$
Ergebnis: $m = 6$ ✓ — identisch mit dem Klartext, RSA-Runde geschlossen.
Karte 5 · Miller-Klausurbeispiel mit Chiffratfolge (Folie S.75–76)
Setup: Bobs öffentlicher Schlüssel $E_B = (53, 77)$. Alice sendet die Chiffratfolge $c = (62, 16, 74, 45, 21)$.
Angreifersicht (klein genug für Handrechnung):
$n = 77 = 7 \cdot 11 \;\Rightarrow\; p = 7,\ q = 11$
$z = 6 \cdot 10 = 60$
$d$: Miller-EEA aus Beispiel A liefert direkt $d = 17$ (denn $z = 60,\ e = 53$).
Probe: $53 \cdot 17 = 901 \equiv 1 \bmod 60$ ✓
Blockweise Entschlüsselung — jeweils $c_i^{17} \bmod 77$:
$62^{17} \bmod 77 = 6$
$16^{17} \bmod 77 = 25$
$74^{17} \bmod 77 = 2$
$45^{17} \bmod 77 = 12$
$21^{17} \bmod 77 = 21$
Mit Miller-Kodierung $\text{A} = 2, \text{B} = 3, \ldots, \text{Z} = 27$ ergibt $(6, 25, 2, 12, 21)$ die Buchstaben E, X, A, K, T.
Klartext: EXAKT.
Wieso werden 0 und 1 nicht kodiert? Weil $0^e \equiv 0$ und $1^e \equiv 1$ für jeden Exponenten gelten. Der Angreifer erkennt diese beiden Klartexte am Chiffrat sofort — die Verschlüsselung ist wirkungslos.
Wieso nicht Buchstabe für Buchstabe verschlüsseln? Weil RSA ohne Padding deterministisch ist: gleicher Klartext-Buchstabe liefert immer denselben Chiffratblock. Damit degeneriert RSA zu einer monoalphabetischen Substitutions-Chiffre und ist mit klassischer Häufigkeitsanalyse angreifbar. Deshalb werden Blöcke aus mehreren Zeichen (oder ein Session-Key, siehe Karte 6) verschlüsselt.
Karte 6 · RSA-Schlüsseltausch (Übungsaufg. 17)
Praktisch wird RSA fast nie zur Massenverschlüsselung genutzt, sondern nur zum Transport eines symmetrischen Sitzungsschlüssels $k$ (z.B. eines AES-Schlüssels).
Ablauf:
- Alice erzeugt einen zufälligen Session-Key $k$ (AES-128/256).
- Alice holt Bobs öffentlichen Schlüssel $E_B = (e_B, n_B)$ und berechnet $c = k^{e_B} \bmod n_B$.
- Alice schickt $c$ an Bob.
- Bob rechnet $k = c^{d_B} \bmod n_B$ und hat denselben Session-Key.
- Beide führen ab jetzt AES-Verkehr mit $k$.
Perfect Forward Secrecy? Nein, so nicht. Bobs RSA-Schlüsselpaar bleibt über viele Sitzungen konstant. Wird Bobs $d_B$ irgendwann kompromittiert — und ein Angreifer hat die alten Chiffrate mitgeschnitten —, lassen sich alle vergangenen $k$ und damit der gesamte historische Verkehr entschlüsseln.
PFS wäre nur möglich, wenn Bob für jede Sitzung ein frisches RSA-Paar erzeugte; das ist zu teuer. Deshalb setzt TLS ab Version 1.3 für den Schlüsseltausch nicht mehr RSA, sondern ephemerales Diffie-Hellman (ECDHE) ein — RSA bleibt dort nur zur Signatur der DH-Parameter.
Karte 7 · Klausur-Checkliste RSA
Standard-Reihenfolge in jeder RSA-Aufgabe:
- $p, q$ aus Angabe → $n = p \cdot q$.
- $z = (p-1)(q-1)$ ausrechnen (nicht $n-1$!).
- $e$ prüfen: $\gcd(e, z) \stackrel{!}{=} 1$.
- Miller-EEA-Tabelle (2 Spalten) → $d = A_0 \bmod z$.
- Probe $e \cdot d \equiv 1 \bmod z$ hinschreiben — der Korrektor sieht sofort, ob $d$ stimmt.
- Ver-/Entschlüsseln via ägyptischem Potenzieren.
- Endprobe: $c^d \bmod n$ ergibt wieder $m$.
Typische Fallen:
- $z$ und $n$ vertauscht. Regel: Der Exponent wird mod $z$ reduziert, die Zahl selbst mod $n$.
- Vorzeichenfehler in der EEA-Rekursion. $A_k$ darf negativ sein, am Ende $+z$ addieren.
- Falsche Bit-Reihenfolge bei Square-and-Multiply (LSB-first vs. MSB-first). Wir nutzen MSB-first.
- Zwischenergebnisse nicht sofort $\bmod n$ reduziert → Zahlen explodieren.
Ist $d$ vermutlich klein (kleines $z$, kleines $e$), probiere $d = 1, 2, 3, \ldots$ direkt in $e \cdot d \bmod z$ durch. Bei $z = 160,\ e = 107$ ist $d = 3$ nach zwei Versuchen gefunden — schneller als jede EEA-Tabelle. Für die Vollpunktzahl trotzdem die EEA-Herleitung mit aufschreiben.
RSA nach Miller heißt: $p, q \to n \to z \to e \to d$. Miller-EEA liefert $d$ als $A_0$ aus der Div-Spalte. Ver- und Entschlüsseln laufen beide über ägyptisches Potenzieren, jeweils $\bmod n$. Exponenten leben in $\mathbb{Z}_z$, Zahlen selbst in $\mathbb{Z}_n$. In der Praxis transportiert RSA nur einen Session-Key — echte Payload verschlüsselt AES.
🧮 Rechenaufgaben mit Lösung
Klick auf eine Aufgabe, um den vollständigen Lösungsweg zu sehen.
Aufgabe 1 – RSA-Schlüsselgenerierung mit $p=11$, $q=13$
Schritt 1 – Modulus $n$
$n = p \cdot q = 11 \cdot 13 = 143$
Schritt 2 – Eulersche Phi-Funktion
$\varphi(n) = (p-1)(q-1) = 10 \cdot 12 = 120$
Schritt 3 – Prüfung von $e$
$\gcd(7, 120) = 1$ – also ist $e = 7$ zulässig.
Schritt 4 – Berechne $d$ mit erweitertem Euklid
Gesucht: $7 \cdot d \equiv 1 \pmod{120}$.
| Schritt | Division | Gleichung |
|---|---|---|
| 1 | $120 = 17 \cdot 7 + 1$ | $1 = 120 - 17 \cdot 7$ |
| 2 | $7 = 7 \cdot 1 + 0$ | Ende |
Aus $1 = 120 - 17 \cdot 7$ folgt $d \equiv -17 \equiv 120 - 17 = 103 \pmod{120}$.
Schritt 5 – Probe
$7 \cdot 103 = 721 = 6 \cdot 120 + 1$ ✓
Öffentlich: $(n, e) = (143, 7)$; Privat: $d = 103$
Aufgabe 2 – RSA verschlüsseln: $m = 9$, $(n, e) = (143, 7)$
Formel
$c = m^e \bmod n = 9^7 \bmod 143$
Zerlegung des Exponenten
$7 = 4 + 2 + 1$, also $9^7 = 9^4 \cdot 9^2 \cdot 9^1$.
Modulare Zwischenpotenzen
| Potenz | Rechnung | Ergebnis mod 143 |
|---|---|---|
| $9^1$ | $9$ | $9$ |
| $9^2$ | $81$ | $81$ |
| $9^4$ | $81^2 = 6561 = 45 \cdot 143 + 126$ | $126$ |
Zusammensetzen
$9^7 \equiv 126 \cdot 81 \cdot 9 \pmod{143}$
Zwischenschritt: $126 \cdot 81 = 10\,206 = 71 \cdot 143 + 53$, also $\equiv 53$.
Weiter: $53 \cdot 9 = 477 = 3 \cdot 143 + 48$, also $\equiv 48$.
$c = 48$
Aufgabe 3 – RSA entschlüsseln: $c = 48$, $d = 103$, $n = 143$
Formel
$m = c^d \bmod n = 48^{103} \bmod 143$
Square-and-Multiply
$103 = 64 + 32 + 4 + 2 + 1 = (1100111)_2$.
| Potenz | Rechnung | mod 143 |
|---|---|---|
| $48^1$ | $48$ | $48$ |
| $48^2$ | $2304 = 16 \cdot 143 + 16$ | $16$ |
| $48^4$ | $16^2 = 256 = 1 \cdot 143 + 113$ | $113$ |
| $48^8$ | $113^2 = 12\,769 = 89 \cdot 143 + 42$ | $42$ |
| $48^{16}$ | $42^2 = 1764 = 12 \cdot 143 + 48$ | $48$ |
| $48^{32}$ | $48^2 \bmod 143 = 16$ | $16$ |
| $48^{64}$ | $16^2 \bmod 143 = 113$ | $113$ |
Zusammensetzen
$48^{103} = 48^{64} \cdot 48^{32} \cdot 48^{4} \cdot 48^{2} \cdot 48^{1}$
$= 113 \cdot 16 \cdot 113 \cdot 16 \cdot 48 \pmod{143}$
Schritt für Schritt:
- $113 \cdot 16 = 1808 = 12 \cdot 143 + 92 \equiv 92$
- $92 \cdot 113 = 10\,396 = 72 \cdot 143 + 100 \equiv 100$
- $100 \cdot 16 = 1600 = 11 \cdot 143 + 27 \equiv 27$
- $27 \cdot 48 = 1296 = 9 \cdot 143 + 9 \equiv 9$
$m = 9$ ✓ (entspricht der Originalnachricht aus Aufgabe 2)
Aufgabe 4 – Kleines RSA-Beispiel: $p=7$, $q=11$, $e=13$
Schritt 1 – Modulus & $\varphi$
$n = 7 \cdot 11 = 77$; $\varphi(n) = 6 \cdot 10 = 60$.
Schritt 2 – $\gcd(13, 60) = 1$?
Ja, $13$ und $60$ sind teilerfremd.
Schritt 3 – Erweiterter Euklid für $d$
Gesucht: $13 \cdot d \equiv 1 \pmod{60}$.
| Schritt | Division |
|---|---|
| 1 | $60 = 4 \cdot 13 + 8$ |
| 2 | $13 = 1 \cdot 8 + 5$ |
| 3 | $8 = 1 \cdot 5 + 3$ |
| 4 | $5 = 1 \cdot 3 + 2$ |
| 5 | $3 = 1 \cdot 2 + 1$ |
| 6 | $2 = 2 \cdot 1 + 0$ |
Rückwärtssubstitution
- $1 = 3 - 1 \cdot 2$
- $= 3 - (5 - 3) = 2 \cdot 3 - 5$
- $= 2(8 - 5) - 5 = 2 \cdot 8 - 3 \cdot 5$
- $= 2 \cdot 8 - 3(13 - 8) = 5 \cdot 8 - 3 \cdot 13$
- $= 5(60 - 4 \cdot 13) - 3 \cdot 13 = 5 \cdot 60 - 23 \cdot 13$
Also: $-23 \cdot 13 \equiv 1 \pmod{60}$, damit $d \equiv -23 \equiv 60 - 23 = 37 \pmod{60}$.
Probe
$13 \cdot 37 = 481 = 8 \cdot 60 + 1$ ✓
Öffentlich $(77, 13)$; Privat $d = 37$
Aufgabe 5 – Warum muss $p \neq q$ gelten?
Analyse
Wäre $p = q$, dann wäre $n = p^2$. Aus $n$ könnte ein Angreifer sofort $p = \sqrt{n}$ berechnen – die Faktorisierung ist trivial.
Zusätzliche Konsequenz
Bei $p = q$ gilt $\varphi(n) = p(p-1)$ statt $(p-1)(q-1)$ – die Struktur von RSA ist gebrochen.
In der Praxis
$p$ und $q$ müssen zusätzlich etwa gleich groß, aber nicht zu nah beieinander sein, sonst greift Fermats Faktorisierungsmethode (Suche nahe $\sqrt{n}$).
Bei $p=q$ ist $n$ trivial faktorisierbar → RSA komplett unsicher.
Aufgabe 6 – Faktorisierungs-Angriff: $n = 1517$
Schritt 1 – Suchbereich
$\sqrt{1517} \approx 38{,}95$. Es genügt, Primzahlen bis $38$ als potentielle Teiler zu prüfen.
Schritt 2 – Systematisches Testen
| $p$ | $1517 / p$ | Rest |
|---|---|---|
| 2 | – | ungerade |
| 3 | – | Quersumme 14 |
| 7 | 216{,}71… | ≠ 0 |
| 11 | 137{,}9… | ≠ 0 |
| 13 | 116{,}7… | ≠ 0 |
| 17 | 89{,}2… | ≠ 0 |
| 19 | 79{,}8… | ≠ 0 |
| 23 | 65{,}9… | ≠ 0 |
| 29 | 52{,}3… | ≠ 0 |
| 31 | 48{,}9… | ≠ 0 |
| 37 | $1517 / 37 = 41$ | $= 0$ ✓ |
Schritt 3 – Ergebnisse
$n = 37 \cdot 41$ (beides Primzahlen).
$\varphi(n) = 36 \cdot 40 = 1440$.
$p = 37$, $q = 41$, $\varphi(n) = 1440$
Aufgabe 7 – RSA-Signatur: $m=5$, $d=103$, $n=143$
Signieren
$\text{Sig} = m^d \bmod n = 5^{103} \bmod 143$
Square-and-Multiply für $5^{103}$
$103 = 64 + 32 + 4 + 2 + 1$.
| Potenz | Rechnung | mod 143 |
|---|---|---|
| $5^1$ | $5$ | $5$ |
| $5^2$ | $25$ | $25$ |
| $5^4$ | $625 = 4 \cdot 143 + 53$ | $53$ |
| $5^8$ | $53^2 = 2809 = 19 \cdot 143 + 92$ | $92$ |
| $5^{16}$ | $92^2 = 8464 = 59 \cdot 143 + 27$ | $27$ |
| $5^{32}$ | $27^2 = 729 = 5 \cdot 143 + 14$ | $14$ |
| $5^{64}$ | $14^2 = 196 = 1 \cdot 143 + 53$ | $53$ |
Kombination: $5^{103} = 5^{64} \cdot 5^{32} \cdot 5^{4} \cdot 5^{2} \cdot 5^{1} \equiv 53 \cdot 14 \cdot 53 \cdot 25 \cdot 5 \pmod{143}$.
- $53 \cdot 14 = 742 = 5 \cdot 143 + 27 \equiv 27$
- $27 \cdot 53 = 1431 = 10 \cdot 143 + 1 \equiv 1$
- $1 \cdot 25 = 25$
- $25 \cdot 5 = 125$
Signatur: $\text{Sig} = 125$.
Verifizieren
Prüfe: $\text{Sig}^e \bmod n = 125^7 \bmod 143 \stackrel{?}{=} 5$.
| Potenz | Rechnung | mod 143 |
|---|---|---|
| $125^1$ | $125$ | $125$ |
| $125^2$ | $15\,625 = 109 \cdot 143 + 38$ | $38$ |
| $125^4$ | $38^2 = 1444 = 10 \cdot 143 + 14$ | $14$ |
$125^7 = 125^4 \cdot 125^2 \cdot 125 \equiv 14 \cdot 38 \cdot 125 \pmod{143}$.
- $14 \cdot 38 = 532 = 3 \cdot 143 + 103 \equiv 103$
- $103 \cdot 125 = 12\,875 = 90 \cdot 143 + 5 \equiv 5$
Verifikation liefert $5 = m$ ✓ – Signatur gültig.
Aufgabe 8 – Kleiner-$e$-Angriff bei Textbook-RSA
Beobachtung
Ist $m$ so klein, dass $m^e < n$ gilt, wirkt der Modulo nicht: $c = m^e$ ohne Reduktion.
Prüfung
Nehmen wir $m = 3$: $m^e = 3^3 = 27 < 2867 = n$. Also gilt tatsächlich $c = m^e$ direkt.
Angriff
Ziehe die $e$-te Wurzel: $m = \sqrt[3]{27} = 3$.
Konsequenz
Ohne Padding lassen sich kleine Nachrichten trivial rückwärts berechnen. OAEP verhindert dies durch zufällige Auffüllung.
$m = 3$; Textbook-RSA gebrochen ohne Faktorisierung
Übungsfragen
F1Wie erzeugt man ein RSA-Schlüsselpaar?
- Zwei große Primzahlen $p, q$ wählen (praktisch je 1024–2048 Bit).
- $n = p \cdot q$ und $\varphi(n) = (p-1)(q-1)$ berechnen.
- Öffentlichen Exponenten $e$ mit $\gcd(e, \varphi(n)) = 1$ wählen, meist $e = 65537$.
- Privaten Exponenten $d$ als multiplikatives Inverses von $e$ modulo $\varphi(n)$ berechnen (erweiterter Euklid).
- Öffentlich $(n, e)$ veröffentlichen; $d$ (und $p, q, \varphi(n)$) geheim halten.
F2Warum ist RSA ohne Padding unsicher?
Textbook-RSA ist deterministisch: gleiche Nachricht ergibt gleichen Chiffretext → keine semantische Sicherheit, Wörterbuchangriffe möglich. Zusätzlich sind kleine Nachrichten anfällig für den Wurzelangriff ($m^e < n$), und die multiplikative Struktur $c_1 c_2 = (m_1 m_2)^e$ erlaubt Chosen-Ciphertext-Angriffe. OAEP fügt gezielt Zufallsbits hinzu und schließt diese Lücken.
F3Warum wird $e = 65537$ oft gewählt?
$65537 = 2^{16} + 1$ ist eine Fermat-Primzahl mit nur zwei gesetzten Bits. Vorteile:
- Prim → $\gcd(e, \varphi(n))$ ist meist automatisch $1$.
- Nur zwei Bits gesetzt → Square-and-Multiply braucht nur 16 Quadrierungen und eine Multiplikation → sehr schnell.
- Groß genug, um bekannte Angriffe (z. B. Håstad, Coppersmith) für kleines $e$ zu vermeiden.
F4Was ist ein hybrides Verfahren und warum wird es verwendet?
Ein hybrides Verfahren kombiniert asymmetrische und symmetrische Kryptografie:
- Sender erzeugt zufälligen AES-Sessionkey $k$.
- Nutzdaten werden mit $k$ per AES verschlüsselt (schnell).
- $k$ selbst wird mit dem RSA-öffentlichen Schlüssel des Empfängers verschlüsselt.
Vorteil: Man vereint die Geschwindigkeit von AES mit der einfachen Schlüsselverteilung von RSA. TLS/HTTPS, PGP und S/MIME basieren darauf.
F5Wie viele Bits sollte $n$ bei RSA heute haben?
Nach aktueller BSI-Empfehlung (2026):
- 1024 Bit – veraltet, gilt als brechbar.
- 2048 Bit – Mindeststandard bis ca. 2030.
- 3072 / 4096 Bit – langfristig sicher gegen klassische Angreifer.
Gegen Quantencomputer (Shor-Algorithmus) bietet RSA jedoch keine Sicherheit – dafür braucht es Post-Quanten-Verfahren.
F6Warum kann man aus $n$ und $e$ nicht ohne weiteres $d$ berechnen?
Um $d$ zu berechnen, braucht man $\varphi(n) = (p-1)(q-1)$. Und dafür wiederum die Primfaktoren $p, q$. Aus $n$ allein die Faktoren $p, q$ zu bestimmen ist das Faktorisierungsproblem – für hinreichend große $n$ (2048+ Bit) praktisch unlösbar. Wer $n$ faktorisieren könnte, hätte $d$ – und damit ist RSA gebrochen.
F7Was bedeutet Semantic Security?
Semantische Sicherheit bedeutet: Ein Angreifer, der den Chiffretext sieht, gewinnt keinerlei Information über den Klartext – nicht einmal ein einzelnes Bit oder ob zwei Chiffretexte den gleichen Klartext haben. Formal: Ein probabilistisch polynomialzeit-Angreifer kann nicht zwischen den Verschlüsselungen zweier selbst gewählter Klartexte unterscheiden. Textbook-RSA ist nicht semantisch sicher, weil deterministisch. RSA-OAEP dagegen schon.
F8Kann man RSA auch für Signaturen verwenden?
Ja. Die Rollen der Schlüssel werden vertauscht:
- Signieren mit privatem Schlüssel: $\text{Sig} = m^d \bmod n$
- Verifizieren mit öffentlichem Schlüssel: prüfe $\text{Sig}^e \bmod n = m$
In der Praxis signiert man nicht $m$ direkt, sondern $H(m)$ (Hash der Nachricht) und nutzt das PSS-Padding. Damit ist die Signatur eindeutig dem Besitzer des privaten Schlüssels zuzuordnen (Authentizität + Nicht-Abstreitbarkeit).
F9Was ist der Unterschied zwischen OAEP und PSS?
OAEP (Optimal Asymmetric Encryption Padding) fügt beim Verschlüsseln Zufalls- und Feldbits ein, damit der Chiffretext probabilistisch und semantisch sicher wird.
PSS (Probabilistic Signature Scheme) macht das analog für Signaturen – auch Signaturen werden probabilistisch, sodass wiederholtes Signieren derselben Nachricht unterschiedliche Signaturen ergibt und keine Angriffsangriffsflächen wie beim Textbook-Signieren entstehen.
F10Warum ist RSA so viel langsamer als AES?
RSA arbeitet mit modularer Exponentiation über sehr großen Zahlen (2048+ Bit). Jede Multiplikation ist quadratisch aufwendig, und pro Verschlüsselung fallen viele davon an. AES dagegen nutzt effiziente Bit- und Byteoperationen auf 128-Bit-Blöcken, die in Hardware direkt umgesetzt werden können (AES-NI). Faktor ~1000 zugunsten von AES – deshalb hybride Verfahren.
F11Was ist das Chinese-Remainder-Theorem (CRT) bei RSA?
Beim Entschlüsseln kann man statt $m = c^d \bmod n$ getrennt $m_p = c^{d_p} \bmod p$ und $m_q = c^{d_q} \bmod q$ mit $d_p = d \bmod (p-1)$, $d_q = d \bmod (q-1)$ rechnen und dann per CRT zu $m \bmod n$ kombinieren. Das ist ca. 4× schneller, weil die Zahlen halb so lang sind – der Standardtrick in RSA-Bibliotheken.
F12Bricht ein Quantencomputer RSA?
Ja. Der Shor-Algorithmus faktorisiert eine $n$-Bit-Zahl in polynomialer Zeit auf einem hinreichend großen Quantencomputer. Damit fällt RSA (und ECC ebenso). Deshalb wird an Post-Quanten-Verfahren wie Kyber (Verschlüsselung) und Dilithium (Signatur) gearbeitet, die auf Gitterproblemen basieren.