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:

  1. Binärdarstellung des Exponenten: $k = (b_t b_{t-1} \dots b_0)_2$
  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

Kongruenz-Definition
$a \equiv b \pmod n$ ist äquivalent zu $n \mid (a - b)$. Beide Zahlen liegen in derselben Restklasse.
Kriterium für die Inverse
$a^{-1} \bmod n$ existiert $\iff \gcd(a, n) = 1$. Berechnung immer über den erweiterten Euklid.
Phi bei RSA-Modul
Für $n = p \cdot q$ mit Primzahlen $p \neq q$ gilt $\varphi(n) = (p-1)(q-1)$. Ohne Kenntnis von $p, q$ ist $\varphi(n)$ praktisch nicht berechenbar.
Exponenten-Reduktion
Wegen $a^{\varphi(n)} \equiv 1 \pmod n$ (Euler) darf man Exponenten stets modulo $\varphi(n)$ reduzieren – aber nur bei $\gcd(a, n) = 1$.
Square-and-Multiply
Modulare Potenzen $a^k \bmod n$ berechnet man in $\log_2 k$ Multiplikationen. Ohne diesen Trick wäre RSA praktisch unbenutzbar.
Miller-Rabin ist einseitig
Der Test kann Zusammengesetztheit beweisen, aber Primalität nur wahrscheinlich machen. In der Praxis reichen $\sim 40$ Runden.

🧮 Rechenaufgaben mit Lösung

Klick auf eine Aufgabe, um den vollständigen Lösungsweg zu sehen.

R1 · $\gcd(48, 36)$ mit dem euklidischen Algorithmus
Bestimme $\gcd(48, 36)$ per Division mit Rest.

Lösung

Anwendung der Regel $\gcd(a, b) = \gcd(b, a \bmod b)$:

Schritt 1: $48 = 1 \cdot 36 + 12$
Schritt 2: $36 = 3 \cdot 12 + 0$

Sobald der Rest $0$ ist, ist der letzte nicht-null-Rest der ggT.

$\gcd(48, 36) = 12$
R2 · Multiplikative Inverse: $7^{-1} \bmod 26$
Berechne $7^{-1} \bmod 26$ mit dem erweiterten euklidischen Algorithmus.

Vorwärtsphase (Euklid)

$26 = 3 \cdot 7 + 5$
$7 = 1 \cdot 5 + 2$
$5 = 2 \cdot 2 + 1$
$2 = 2 \cdot 1 + 0 \Rightarrow \gcd(26, 7) = 1$

Rückwärtsphase (Substitution)

$1 = 5 - 2 \cdot 2$
$= 5 - 2 \cdot (7 - 1 \cdot 5) = 3 \cdot 5 - 2 \cdot 7$
$= 3 \cdot (26 - 3 \cdot 7) - 2 \cdot 7 = 3 \cdot 26 - 11 \cdot 7$

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}$ ✓

$7^{-1} \equiv 15 \pmod{26}$
R3 · Eulersche Funktion $\varphi(21)$
Berechne $\varphi(21)$.

Faktorisierung

$21 = 3 \cdot 7$ mit $3, 7$ prim und verschieden.

Formel anwenden

$$\varphi(p \cdot q) = (p - 1)(q - 1)$$

$\varphi(21) = (3 - 1)(7 - 1) = 2 \cdot 6 = 12$

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.

$\varphi(21) = 12$
R4 · $3^{100} \bmod 7$ mit kleinem Fermat
Berechne $3^{100} \bmod 7$ unter Nutzung des kleinen Satzes von Fermat.

Fermat anwenden

$7$ ist prim, $\gcd(3, 7) = 1$, also $3^{6} \equiv 1 \pmod 7$.

Exponenten reduzieren

$100 = 6 \cdot 16 + 4$
$3^{100} = (3^{6})^{16} \cdot 3^{4} \equiv 1^{16} \cdot 3^{4} = 3^{4} \pmod 7$

Restpotenz berechnen

$3^{2} = 9 \equiv 2 \pmod 7$
$3^{4} = (3^{2})^{2} \equiv 2^{2} = 4 \pmod 7$

Alternativ direkt: $3^{4} = 81 = 11 \cdot 7 + 4$.

$3^{100} \equiv 4 \pmod 7$
R5 · $7^{13} \bmod 11$ mit Square-and-Multiply
Berechne $7^{13} \bmod 11$ mit dem Square-and-Multiply-Verfahren.

Binärdarstellung des Exponenten

$13 = 1101_{2}$, also $13 = 2^{3} + 2^{2} + 2^{0} = 8 + 4 + 1$.

Sukzessive Quadrate mod $11$

PotenzRechnungWert 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

$7^{13} = 7^{8} \cdot 7^{4} \cdot 7^{1} \equiv 9 \cdot 3 \cdot 7 \pmod{11}$
$9 \cdot 3 = 27 \equiv 5 \pmod{11}$
$5 \cdot 7 = 35 = 3 \cdot 11 + 2 \equiv 2 \pmod{11}$
$7^{13} \equiv 2 \pmod{11}$
R6 · Ist $91$ eine Primzahl?
Prüfe, ob $91$ prim ist.

Probedivision

Es genügt, Teiler bis $\lfloor \sqrt{91} \rfloor = 9$ zu prüfen: $2, 3, 5, 7$.

$91 / 2$: ungerade – nein
Quersumme $9+1=10$: nicht durch $3$ teilbar
$91$ endet nicht auf $0$ oder $5$: nicht durch $5$
$91 = 7 \cdot 13$ ✓ – Teiler gefunden
$91 = 7 \cdot 13$, also nicht prim.
R7 · Miller-Rabin für $n = 25$, Basis $a = 2$
Führe eine Miller-Rabin-Runde mit $n = 25$ und Basis $a = 2$ durch.

Zerlegung von $n - 1$

$n - 1 = 24 = 2^{3} \cdot 3$, also $s = 3$, $d = 3$.

Startwert $a^{d} \bmod n$

$2^{3} = 8 \pmod{25}$

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.

$25 = 5^{2}$ ist nicht prim (bestätigt).
R8 · $\varphi(187)$ für RSA-Modul $187 = 11 \cdot 17$
Berechne $\varphi(n)$ für $n = 187$.

Faktorisierung

$187 = 11 \cdot 17$ mit $11, 17$ prim und verschieden.

Formel

$$\varphi(n) = (p - 1)(q - 1)$$

$\varphi(187) = (11 - 1)(17 - 1) = 10 \cdot 16 = 160$

Damit könnte man z.B. einen RSA-Schlüssel wählen: $e = 3$, $d = 3^{-1} \bmod 160 = 107$.

$\varphi(187) = 160$

Übungsfragen

F1 Wann ist $a \equiv b \pmod n$?
Genau dann, wenn $n$ die Differenz $a - b$ teilt, d.h. wenn es ein $k \in \mathbb{Z}$ gibt mit $a - b = k \cdot n$. Äquivalent: $a$ und $b$ liefern beim Teilen durch $n$ denselben Rest und liegen daher in derselben Restklasse modulo $n$.
F2 Wann besitzt $a$ eine multiplikative Inverse modulo $n$?
Genau dann, wenn $\gcd(a, n) = 1$ (also $a$ und $n$ teilerfremd sind). Der Beweis geht direkt über den erweiterten euklidischen Algorithmus: er liefert $u, v$ mit $a u + n v = 1$, also $a u \equiv 1 \pmod n$, d.h. $u = a^{-1}$. Ist $\gcd(a, n) > 1$, kann kein solches $u$ existieren, denn jede Linearkombination von $a$ und $n$ ist Vielfaches ihres ggT.
F3 Wie berechnet man $\varphi(n)$ für $n = p \cdot q$?
Sind $p, q$ zwei verschiedene Primzahlen, gilt $\varphi(n) = (p - 1)(q - 1)$. Herleitung: Von den $n = p q$ Zahlen $\{1, \dots, n\}$ sind genau die Vielfachen von $p$ ($q$ Stück) und die Vielfachen von $q$ ($p$ Stück) nicht teilerfremd, gemeinsam gezählt einmal $pq$ selbst. Also $\varphi(n) = pq - p - q + 1 = (p-1)(q-1)$.
F4 Was besagt der kleine Satz von Fermat?
Ist $p$ prim und $\gcd(a, p) = 1$, so gilt $a^{p-1} \equiv 1 \pmod p$. Äquivalent: $a^{p} \equiv a \pmod p$ für alle $a$. Der Satz ist ein Spezialfall des Satzes von Euler ($\varphi(p) = p - 1$). Er reduziert große Exponenten schlagartig auf ihren Rest modulo $p - 1$ und ist die Grundlage vieler probabilistischer Primzahltests (Fermat-Test, Miller-Rabin).
F5 Warum ist Square-and-Multiply schneller als naive Potenzierung?
Statt $k - 1$ Multiplikationen für $a^{k}$ nutzt Square-and-Multiply die Binärdarstellung des Exponenten und benötigt nur $\mathcal{O}(\log_{2} k)$ Multiplikationen. Beispiel $a^{1000}$: naiv $999$ Multiplikationen, per Square-and-Multiply nur ca. $\log_{2}(1000) \approx 10$ Quadrierungen und maximal $10$ weitere Multiplikationen. Bei RSA-typischen Exponenten von $2048$ Bit ist der Unterschied der Faktor $2^{2038}$.
F6 Wozu benötigt man den erweiterten euklidischen Algorithmus in der Kryptographie?
Immer wenn eine multiplikative Inverse modulo $n$ gebraucht wird. Konkrete Beispiele:
  • 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.
Der Algorithmus liefert die Inverse in $\mathcal{O}(\log n)$ Schritten – ohne ihn wäre asymmetrische Kryptographie nicht praktikabel.
F7 Unterschied: deterministische vs. probabilistische Primzahltests?
Deterministische Tests (z.B. AKS-Test, Probedivision) liefern ein sicheres Ja/Nein, sind aber entweder langsam (exponentielle Laufzeit bei Probedivision) oder in Praxis mit sehr großen Konstanten behaftet (AKS ist polynomial, aber langsam).

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"?
Zwei zusammenhängende Gründe:
  1. 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.
  2. 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.
Zusätzlich sind Wurzeln in $\mathbb{Z}_n$ (RSA-Problem) und der diskrete Logarithmus in Untergruppen mod $n$ schwer, obwohl das Rechnen (Addition, Multiplikation, Potenzierung) selbst effizient bleibt. Diese Einweg-Struktur ist die Grundlage der asymmetrischen Kryptographie.
F9 Warum darf man Zwischenergebnisse modular reduzieren?
Aus den Rechenregeln folgt $(a \cdot b) \bmod n = ((a \bmod n) \cdot (b \bmod n)) \bmod n$. Das erlaubt es, bei Multiplikationen jederzeit den Rest zu nehmen, ohne das Endergebnis zu ändern. Praktisch ist das entscheidend: In RSA hantiert man mit Zahlen $< n$ (z.B. 2048 Bit); ohne Zwischenreduktion würden Produkte innerhalb weniger Schritte zu absurd großen Zahlen anwachsen.
F10 Was ist $\mathbb{Z}_n^{*}$ und warum ist es wichtig?
$\mathbb{Z}_n^{*}$ ist die multiplikative Gruppe aller zu $n$ teilerfremden Restklassen: $\mathbb{Z}_n^{*} = \{a \in \mathbb{Z}_n \mid \gcd(a, n) = 1\}$. Sie enthält genau $\varphi(n)$ Elemente. Wichtig ist sie, weil in ihr:
  • 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.
F11 Was ist eine Restklasse und wie viele gibt es modulo $n$?
Eine Restklasse $[a]_n$ ist die Menge aller ganzen Zahlen, die bei Division durch $n$ denselben Rest wie $a$ hinterlassen: $[a]_n = \{a + k n \mid k \in \mathbb{Z}\}$. Modulo $n$ gibt es genau $n$ verschiedene Restklassen $[0], [1], \dots, [n-1]$, die zusammen $\mathbb{Z}_n$ bilden. Kongruenz $\equiv$ ist genau die Gleichheit dieser Restklassen.
F12 Wieso genügt es beim Miller-Rabin-Test, nur nach $1$ oder $-1$ in der Kette zu suchen?
Ist $n$ prim, so hat $1$ in $\mathbb{Z}_n$ nur die Quadratwurzeln $\pm 1$. Beim wiederholten Quadrieren $a^{d}, a^{2d}, a^{4d}, \dots, a^{2^{s-1} d}$ endet die Kette wegen $a^{n-1} \equiv 1$ (kleiner Fermat) zwangsläufig bei $1$. Wird direkt vor der ersten $1$ ein Wert $\neq \pm 1$ gefunden, so ist eine nicht-triviale Quadratwurzel von $1$ entdeckt – was in einem Primkörper unmöglich ist. Also muss $n$ zusammengesetzt sein.