Chinesischer Restsatz Rechner
Löse x ≡ a₁ (mod m₁), x ≡ a₂ (mod m₂), ... mit dem erweiterten euklidischen Algorithmus – Schritt für Schritt
Schritt-für-Schritt-Lösung
Was ist der Chinesische Restsatz (CRT)?
Der Chinesische Restsatz ist eines der ältesten Ergebnisse der Zahlentheorie. Er besagt: Wenn m₁, m₂, ..., mₙ paarweise teilerfremde positive ganze Zahlen sind (jedes Paar hat einen ggT von 1), dann hat das System simultaner Kongruenzen:
x ≡ a₂ (mod m₂)
⋮
x ≡ aₙ (mod mₙ)
eine eindeutige Lösung modulo M = m₁ × m₂ × ... × mₙ. Das bedeutet, es gibt genau eine ganze Zahl x im Bereich [0, M), die alle Kongruenzen gleichzeitig erfüllt, und alle weiteren Lösungen haben die Form x₀ + kM für eine beliebige ganze Zahl k.
Der Satz stammt aus dem Sunzi Suanjing (China, 3.–5. Jahrhundert n. Chr.), das die klassische Aufgabe stellte: „Finde eine Zahl, die bei Division durch 3 den Rest 2 lässt, bei Division durch 5 den Rest 3 und bei Division durch 7 den Rest 2." Die Antwort lautet x = 23.
CRT-Formel und Algorithmus
Der konstruktive Beweis des CRT liefert eine explizite Formel für die Lösung:
Mᵢ = M / mᵢ (Produkt aller Moduln außer mᵢ)
yᵢ ≡ Mᵢ⁻¹ (mod mᵢ) (modulares Inverses von Mᵢ)
x = (a₁·M₁·y₁ + a₂·M₂·y₂ + ... + aₙ·Mₙ·yₙ) mod M
Die zentrale Erkenntnis ist, dass jeder Term aᵢ·Mᵢ·yᵢ ≡ aᵢ (mod mᵢ) und ≡ 0 (mod mⱼ) für j ≠ i erfüllt, weil Mᵢ durch jedes mⱼ außer mᵢ teilbar ist. Dadurch werden die Terme „orthogonal" — jeder Term erfüllt genau eine Kongruenz, ohne die anderen zu stören.
Durchgerechnetes Beispiel — Sunzis Aufgabe
Löse: x ≡ 2 (mod 3), x ≡ 3 (mod 5), x ≡ 2 (mod 7)
Schritt 2: Mᵢ-Werte berechnen
M₁ = 105/3 = 35
M₂ = 105/5 = 21
M₃ = 105/7 = 15
Schritt 3: Modulare Inverse yᵢ = Mᵢ⁻¹ (mod mᵢ) finden
y₁ = 35⁻¹ mod 3: 35 ≡ 2 (mod 3), 2×2=4≡1 (mod 3) → y₁ = 2
y₂ = 21⁻¹ mod 5: 21 ≡ 1 (mod 5), 1×1=1 (mod 5) → y₂ = 1
y₃ = 15⁻¹ mod 7: 15 ≡ 1 (mod 7), 1×1=1 (mod 7) → y₃ = 1
Schritt 4: Kombinieren
x = (2×35×2) + (3×21×1) + (2×15×1) mod 105
x = 140 + 63 + 30 = 233 mod 105
x = 23 ✓
Probe: 23 mod 3 = 2 ✓, 23 mod 5 = 3 ✓, 23 mod 7 = 2 ✓. Allgemeine Lösung: x = 23 + 105k für eine beliebige ganze Zahl k.
Der erweiterte euklidische Algorithmus
Das modulare Inverse yᵢ = Mᵢ⁻¹ (mod mᵢ) wird mit dem erweiterten euklidischen Algorithmus bestimmt, der ganze Zahlen x und y berechnet, die die Bézout-Identität erfüllen: a·x + b·y = ggT(a, b). Wenn ggT(a, b) = 1 ist, ist x (reduziert mod b) das modulare Inverse von a.
wenn b = 0: gib (a, 1, 0) zurück
(g, x₁, y₁) = extGGT(b, a mod b)
gib (g, y₁, x₁ - ⌊a/b⌋·y₁) zurück
Beispiel: Inverses von 35 mod 3
extGGT(2, 3): → (1, -1, 1), weil 2×(-1) + 3×1 = 1
(-1 mod 3 + 3) mod 3 = 2 → Inverses = 2
Der Algorithmus läuft in O(log(min(a,b))) Zeit — deutlich schneller als reines Ausprobieren, besonders bei den großen Moduln, die in der Kryptografie zum Einsatz kommen.
Voraussetzungen für den CRT
- Paarweise teilerfremde Moduln: ggT(mᵢ, mⱼ) = 1 für alle i ≠ j. Ohne diese Bedingung garantiert der Satz keine eindeutige Lösung.
- Wertebereich der Reste: Technisch kann aᵢ eine beliebige ganze Zahl sein, aber die kanonische Form verwendet 0 ≤ aᵢ < mᵢ. Werte außerhalb dieses Bereichs lassen sich reduzieren: aᵢ mod mᵢ verwenden.
- Positive Moduln ≥ 2: Jedes mᵢ muss eine positive ganze Zahl von mindestens 2 sein, damit die Kongruenz sinnvoll ist.
- Mindestens 2 Gleichungen: Eine einzelne Kongruenz hat trivialerweise unendlich viele Lösungen; der CRT wird erst bei Systemen mit 2 oder mehr Gleichungen aussagekräftig.
Anwendungen des CRT
- RSA-Kryptografie: Der CRT beschleunigt die RSA-Entschlüsselung um etwa das Vierfache, indem die Berechnung in zwei kleinere modulare Potenzierungen mit den Primfaktoren p und q des RSA-Moduls aufgeteilt wird.
- Astronomie und Kalenderzyklen: Die Bestimmung, wann mehrere periodische Ereignisse (Mondmonat, Sonnenjahr, bestimmte Himmelskonstellationen) zusammenfallen, nutzt eine dem CRT ähnliche Argumentation. Der antike chinesische metonische Zyklus ist ein klassisches Beispiel.
- Fehlerkorrigierende Codes: Redundante Restklassen-Zahlensysteme (RNS) nutzen den CRT, um Originalwerte aus teilweisen (möglicherweise fehlerhaften) modularen Resten zu rekonstruieren, was Fehlertoleranz ermöglicht.
- Computerarithmetik: Restklassen-Zahlensysteme stellen große ganze Zahlen als Tupel von Resten modulo kleiner, paarweise teilerfremder Basen dar. Die Arithmetik auf diesen Tupeln lässt sich massiv parallelisieren, und der CRT rekonstruiert das Endergebnis.
- Hashfunktionen und Secret Sharing: Shamirs Secret-Sharing-Verfahren nutzt Polynominterpolation über endlichen Körpern — ein Konzept, das eng mit den Ideen des CRT verwandt ist, um ein Geheimnis auf mehrere Parteien zu verteilen.