ⁿ

Modulare-Exponentiation-Rechner

Square-and-Multiply · BigInt Support · RSA · Diffie-Hellman

Berechne ab mod m für beliebig große ganze Zahlen mit dem schnellen binären (rechts-nach-links) Algorithmus. Vollständige Schritt-für-Schritt-Tabelle, Binärvisualisierung und kryptografische Anwendungen.

Schnellbeispiele

Was ist modulare Exponentiation?

Modulare Exponentiation ist die Berechnung von ab mod m — das Potenzieren einer Basis a mit einem Exponenten b und das Behalten nur des Rests bei der Division durch den Modulo m. Diese Operation ist ein Eckpfeiler der modernen Zahlentheorie und Public-Key-Kryptografie.

Zum Beispiel 3644 mod 645 = 36. Während der Zwischenwert 3644 eine astronomisch große Zahl ist, ist die Antwort einfach 36.

Warum die naive Berechnung versagt

Der direkte Ansatz — zuerst ab berechnen, dann den Rest nehmen — ist für große Exponenten völlig unpraktisch. Die Zahl 21000 hat bereits über 300 Dezimalstellen.

Die wichtigste Erkenntnis ist, dass wir nach jeder einzelnen Multiplikation modulo m reduzieren können, wodurch alle Zwischenwerte unter m2 bleiben.

Der Square-and-Multiply-Algorithmus

The algorithm processes the Binärdarstellung of b from LSB (least significant bit) to MSB. At step k (corresponding to bit k of b):

  • Immer quadrieren: berechne basis = basis × basis mod m
  • Wenn Bit k = 1: multipliziere zusätzlich ergebnis = ergebnis × basis mod m
  • Wenn Bit k = 0: überspringe die Multiplikation

Das Ergebnis akkumuliert nur jene Potenzen von a, deren entsprechendes Bit in b 1 ist.

O(log b) Komplexität

Der Algorithmus führt genau ⌊log2 b⌋ Quadrierungen durch. Da die Anzahl O(log b) ist, ist die Gesamtzahl der modularen Multiplikationen O(log b).

Für 2048-Bit-RSA-Parameter bedeutet dies etwa 2000 Multiplikationen von 2048-Bit-Zahlen — in Millisekunden machbar.

RSA-Verschlüsselung und -Entschlüsselung

RSA ist das am weitesten verbreitete Public-Key-Kryptosystem. Die Schlüsselerzeugung wählt zwei große Primzahlen p und q.

  • Verschlüsselung: C = Me mod n
  • Entschlüsselung: M = Cd mod n

Beide Operationen sind reine modulare Exponentiationen.

Diffie-Hellman-Schlüsselaustausch

Zwei Parteien einigen sich öffentlich auf eine große Primzahl p und eine Primitivwurzel g. Jede Partei wählt einen privaten Zufallsexponenten und veröffentlicht ihren öffentlichen Wert.

Fermats kleines Theorem

Fermats kleiner Satz besagt: Wenn p prim ist und ggT(a, p) = 1, dann ap−1 ≡ 1 (mod p). Dies ist eine notwendige Bedingung für Primalität.

Referenztabelle: Beispielberechnungen

abmab mod mb in BinärQuadrierungen
36446453610100001009
21010002410103
72561391000000008
2103143211001116
562381102
1234567896991110010008

Häufig gestellte Fragen

Was ist modulare Exponentiation?
Modulare Exponentiation ist die Berechnung von ab mod m. Das Ergebnis liegt immer im Bereich [0, m−1].
Warum nicht ab berechnen und dann mod nehmen?
Für große Exponenten hat der Wert ab Millionen von Stellen. Der Square-and-Multiply-Algorithmus reduziert modulo m nach jeder Multiplikation.
Wie funktioniert der Square-and-Multiply-Algorithmus?
Der Algorithmus tastet die binären Ziffern von b vom LSB zum MSB ab. In jedem Schritt k: (1) quadriere die aktuelle Basis mod m. (2) Wenn Bit k von b 1 ist, multipliziere das laufende Ergebnis mit der aktuellen Basis mod m.
Wie hoch ist die Zeitkomplexität der modularen Exponentiation?
Der Algorithmus verwendet O(log b) modulare Multiplikationen. Jede Multiplikation kostet O((log m)2) Bitoperationen, was eine Gesamtbitkomplexität von O(log b × (log m)2) ergibt.
Wie wird die modulare Exponentiation in RSA verwendet?
Die RSA-Verschlüsselung ist C = Me mod n und die Entschlüsselung ist M = Cd mod n. Beide sind modulare Exponentiationen.
Was ist der kleine Satz von Fermat?
Fermats kleiner Satz besagt, dass wenn p prim ist und ggT(a, p) = 1, dann ap−1 ≡ 1 (mod p). Dies ist die Grundlage des Fermat-Primzahltests.
Was ist der Diffie-Hellman-Schlüsselaustausch?
Diffie-Hellman (DH) ermöglicht es zwei Parteien, über einen öffentlichen Kanal ein gemeinsames Geheimnis zu erstellen. Beide einigen sich auf eine Primzahl p und einen Generator g.