Auf einen Blick
- Modulo-Rechnung ist das mathematische Fundament fast aller modernen Kryptoverfahren (RSA, DH, ECC).
- Kongruenz $a \equiv b \pmod n$ bedeutet: $n$ teilt $a-b$. Damit rechnet man in der Restklassenmenge $\mathbb{Z}_n$.
- Multiplikative Inverse $a^{-1} \bmod n$ existiert genau dann, wenn $\gcd(a,n)=1$. Berechnung mit dem erweiterten Euklid.
- Eulersche $\varphi$-Funktion, Fermat und Euler liefern schnelle Regeln für Potenzen mod $n$ – zentral für RSA.
- Square-and-Multiply und Miller-Rabin sind die algorithmischen Werkzeuge der Praxis.
Kernkonzepte
1. Modulo-Operation und Kongruenz
Die Modulo-Operation liefert den Rest einer ganzzahligen Division:
$$a \bmod n = r \quad \text{mit} \quad a = q \cdot n + r,\ 0 \leq r < n$$
Zwei Zahlen $a, b$ heißen kongruent modulo $n$, geschrieben
$$a \equiv b \pmod n \iff n \mid (a-b)$$
Beispiel: $17 \equiv 5 \pmod{12}$, weil $17 - 5 = 12$ durch $12$ teilbar ist.
2. Rechenregeln in $\mathbb{Z}_n$
In der Restklassenmenge $\mathbb{Z}_n = \{0, 1, \dots, n-1\}$ gelten:
- $(a + b) \bmod n = ((a \bmod n) + (b \bmod n)) \bmod n$
- $(a \cdot b) \bmod n = ((a \bmod n) \cdot (b \bmod n)) \bmod n$
- $a^k \bmod n = (a \bmod n)^k \bmod n$
Das erlaubt es, Zwischenergebnisse jederzeit zu reduzieren – zentrales Prinzip für effizientes Rechnen mit riesigen Zahlen.
3. Größter gemeinsamer Teiler und Euklidischer Algorithmus
Der $\gcd(a, b)$ ist die größte Zahl, die sowohl $a$ als auch $b$ teilt. Der euklidische Algorithmus nutzt:
$$\gcd(a, b) = \gcd(b, a \bmod b), \quad \gcd(a, 0) = a$$
Beispiel $\gcd(30, 12)$: $30 = 2\cdot 12 + 6$, $12 = 2 \cdot 6 + 0 \Rightarrow \gcd = 6$.
4. Erweiterter Euklidischer Algorithmus
Findet zusätzlich Koeffizienten $u, v \in \mathbb{Z}$ mit
$$a \cdot u + n \cdot v = \gcd(a, n)$$
Ist $\gcd(a, n) = 1$, so gilt $a \cdot u \equiv 1 \pmod n$ – d.h. $u$ ist die multiplikative Inverse von $a$ modulo $n$.
Anwendung: Entschlüsselung bei affiner Chiffre, RSA-Schlüsselerzeugung ($d = e^{-1} \bmod \varphi(n)$).
5. Multiplikative Inverse in $\mathbb{Z}_n$
Ein Element $a \in \mathbb{Z}_n$ besitzt genau dann eine Inverse $a^{-1}$, wenn
$$\gcd(a, n) = 1$$
Die Menge aller invertierbaren Elemente bildet die Gruppe $\mathbb{Z}_n^*$. Ihre Größe ist $|\mathbb{Z}_n^*| = \varphi(n)$.
6. Eulersche $\varphi$-Funktion
$\varphi(n)$ zählt die zu $n$ teilerfremden Zahlen in $\{1, 2, \dots, n-1\}$.
- Primzahl $p$: $\varphi(p) = p - 1$
- Produkt zweier verschiedener Primzahlen: $\varphi(p \cdot q) = (p-1)(q-1)$
- Allgemein: $\varphi(n) = n \cdot \prod_{p \mid n} \left(1 - \tfrac{1}{p}\right)$
Beispiel: $\varphi(15) = \varphi(3\cdot 5) = 2 \cdot 4 = 8$.
7. Kleiner Satz von Fermat
Für Primzahl $p$ und $\gcd(a, p) = 1$ gilt:
$$a^{p-1} \equiv 1 \pmod p$$
Daraus folgt $a^p \equiv a \pmod p$ – nützlich zur Reduktion von Exponenten.
8. Satz von Euler (Verallgemeinerung)
Für beliebiges $n$ und $\gcd(a, n) = 1$:
$$a^{\varphi(n)} \equiv 1 \pmod n$$
Fundament von RSA: Erlaubt das Zurückrechnen $c^d \equiv m \pmod n$ mit $d \cdot e \equiv 1 \pmod{\varphi(n)}$.
9. Square-and-Multiply
Berechnet $a^k \bmod n$ in $\mathcal{O}(\log k)$ Schritten statt $k$ Multiplikationen. Vorgehen:
- Binärdarstellung des Exponenten: $k = (b_t b_{t-1} \dots b_0)_2$
- Von links nach rechts: Ergebnis quadrieren, bei Bit $=1$ zusätzlich mit $a$ multiplizieren, jeweils $\bmod n$.
Beispiel $3^{13} \bmod n$: $13 = 1101_2$ ergibt Schritte quadriere / multipliziere / quadriere / quadriere-mult. / quadriere-mult.
10. Miller-Rabin-Primzahltest
Probabilistischer Test, ob eine Zahl $n$ prim ist. Zerlegung $n - 1 = 2^s \cdot d$ mit ungeradem $d$. Für zufällige Basis $a$ prüft man
$$a^d \bmod n \quad \text{und} \quad a^{2^r d} \bmod n\ \ (r = 0, \dots, s-1)$$
Erscheint in dieser Kette nicht $1$ oder $-1$ (also $n-1$), so ist $n$ sicher zusammengesetzt. Andernfalls wahrscheinlich prim mit Fehler $\leq 4^{-k}$ nach $k$ Runden.
Merksätze
🧮 Rechenaufgaben mit Lösung
Klick auf eine Aufgabe, um den vollständigen Lösungsweg zu sehen.
R1 · $\gcd(48, 36)$ mit dem euklidischen Algorithmus
Lösung
Anwendung der Regel $\gcd(a, b) = \gcd(b, a \bmod b)$:
Sobald der Rest $0$ ist, ist der letzte nicht-null-Rest der ggT.
R2 · Multiplikative Inverse: $7^{-1} \bmod 26$
Vorwärtsphase (Euklid)
Rückwärtsphase (Substitution)
Damit ist $-11 \cdot 7 \equiv 1 \pmod{26}$, also $7^{-1} \equiv -11 \equiv 15 \pmod{26}$.
Probe
$7 \cdot 15 = 105 = 4 \cdot 26 + 1 \equiv 1 \pmod{26}$ ✓
R3 · Eulersche Funktion $\varphi(21)$
Faktorisierung
$21 = 3 \cdot 7$ mit $3, 7$ prim und verschieden.
Formel anwenden
$$\varphi(p \cdot q) = (p - 1)(q - 1)$$
Kontrolle: teilerfremd zu $21$ in $\{1,\dots,20\}$ sind $\{1,2,4,5,8,10,11,13,16,17,19,20\}$ – das sind genau $12$ Zahlen.
R4 · $3^{100} \bmod 7$ mit kleinem Fermat
Fermat anwenden
$7$ ist prim, $\gcd(3, 7) = 1$, also $3^{6} \equiv 1 \pmod 7$.
Exponenten reduzieren
Restpotenz berechnen
Alternativ direkt: $3^{4} = 81 = 11 \cdot 7 + 4$.
R5 · $7^{13} \bmod 11$ mit Square-and-Multiply
Binärdarstellung des Exponenten
$13 = 1101_{2}$, also $13 = 2^{3} + 2^{2} + 2^{0} = 8 + 4 + 1$.
Sukzessive Quadrate mod $11$
| Potenz | Rechnung | Wert mod 11 |
|---|---|---|
| $7^{1}$ | $7$ | $7$ |
| $7^{2}$ | $49 = 4 \cdot 11 + 5$ | $5$ |
| $7^{4}$ | $5^{2} = 25 = 2 \cdot 11 + 3$ | $3$ |
| $7^{8}$ | $3^{2} = 9$ | $9$ |
Zusammensetzen
R6 · Ist $91$ eine Primzahl?
Probedivision
Es genügt, Teiler bis $\lfloor \sqrt{91} \rfloor = 9$ zu prüfen: $2, 3, 5, 7$.
R7 · Miller-Rabin für $n = 25$, Basis $a = 2$
Zerlegung von $n - 1$
$n - 1 = 24 = 2^{3} \cdot 3$, also $s = 3$, $d = 3$.
Startwert $a^{d} \bmod n$
Sukzessives Quadrieren (bis zu $s-1 = 2$ mal)
| $r$ | Wert $2^{2^{r} \cdot d} \bmod 25$ |
|---|---|
| $0$ | $8$ |
| $1$ | $8^{2} = 64 = 2\cdot 25 + 14 \equiv 14$ |
| $2$ | $14^{2} = 196 = 7\cdot 25 + 21 \equiv 21$ |
Bewertung
Die Kette $8 \to 14 \to 21$ enthält weder $1$ noch $-1 \equiv 24 \pmod{25}$. Damit ist $25$ ein Zeuge für Zusammengesetztheit.
R8 · $\varphi(187)$ für RSA-Modul $187 = 11 \cdot 17$
Faktorisierung
$187 = 11 \cdot 17$ mit $11, 17$ prim und verschieden.
Formel
$$\varphi(n) = (p - 1)(q - 1)$$
Damit könnte man z.B. einen RSA-Schlüssel wählen: $e = 3$, $d = 3^{-1} \bmod 160 = 107$.
Übungsfragen
F1 Wann ist $a \equiv b \pmod n$?
F2 Wann besitzt $a$ eine multiplikative Inverse modulo $n$?
F3 Wie berechnet man $\varphi(n)$ für $n = p \cdot q$?
F4 Was besagt der kleine Satz von Fermat?
F5 Warum ist Square-and-Multiply schneller als naive Potenzierung?
F6 Wozu benötigt man den erweiterten euklidischen Algorithmus in der Kryptographie?
- Affine Chiffre: Entschlüsselung mit $a^{-1} \bmod 26$.
- RSA: privater Exponent $d \equiv e^{-1} \pmod{\varphi(n)}$.
- DSA / ECDSA: Berechnung von $k^{-1} \bmod q$ im Signaturschritt.
- ECC: Punktinversion / affine Koordinaten $\to$ modulare Divisionen.
F7 Unterschied: deterministische vs. probabilistische Primzahltests?
Probabilistische Tests (Miller-Rabin, Solovay-Strassen) liefern in wenigen Millisekunden ein Ergebnis, das mit Fehlerwahrscheinlichkeit $\leq 4^{-k}$ falsch sein kann. Ist die Antwort "zusammengesetzt", so ist sie garantiert korrekt (Zeugen sind konkret). Ist sie "wahrscheinlich prim", so lässt sich die Sicherheit durch mehr Runden beliebig erhöhen. In der Praxis werden $\sim 40$ Runden für RSA-Schlüssel eingesetzt.
F8 Warum ist Modulararithmetik in $\mathbb{Z}_n$ mit $n = p \cdot q$ ohne Kenntnis von $p, q$ "unumkehrbar schwer"?
- Faktorisierungsproblem: Aus $n$ die Primfaktoren $p, q$ zu bestimmen, ist für $n$ mit $\geq 2048$ Bit mit den besten bekannten klassischen Algorithmen (GNFS) in der Praxis nicht in vernünftiger Zeit lösbar.
- Kein Zugriff auf $\varphi(n)$: Ohne $p, q$ kann man $\varphi(n) = (p-1)(q-1)$ nicht berechnen. Damit lässt sich der private RSA-Exponent $d = e^{-1} \bmod \varphi(n)$ nicht bestimmen – die Umkehrung $c \to m$ scheitert.
F9 Warum darf man Zwischenergebnisse modular reduzieren?
F10 Was ist $\mathbb{Z}_n^{*}$ und warum ist es wichtig?
- Jedes Element ein Inverses besitzt (multiplikative Gruppe).
- Der Satz von Euler gilt: $a^{\varphi(n)} \equiv 1 \pmod n$.
- Zyklische Untergruppen für Diffie-Hellman und ElGamal-artige Verfahren entstehen.