Modulo-Rechner mit modularer Inverse

Modulo-Rechner für große Zahlen: Rest, modulares Potenzieren, modulare Inverse und erweiterter euklidischer Algorithmus mit Rechenweg.

Beispiele
–

 

Schrittrqst

Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.

Modulare Arithmetik mit BigInt

Der Modulo-Rechner rechnet mit Restklassen: a mod m ist der Rest bei der Division von a durch m, immer als Zahl zwischen 0 und m − 1. Dazu kommen die wichtigsten Operationen der Zahlentheorie: modulares Potenzieren (a^b mod m) mit dem Verfahren „Square and Multiply“, die modulare Inverse und der erweiterte euklidische Algorithmus, der neben dem ggT auch die Bézout-Koeffizienten s und t mit s·a + t·m = ggT(a, m) liefert.

Alle Rechnungen laufen mit BigInt, also ohne Rundung und mit beliebig vielen Stellen. Damit lassen sich auch Werte aus der Kryptografie nachrechnen. Das Beispiel RSA lädt die Lehrbuchwerte p = 61, q = 53: Mit n = 3233, φ(n) = 3120 und e = 17 ergibt die modulare Inverse den privaten Exponenten d = 2753. Die Tabelle zeigt jeden Schritt des erweiterten euklidischen Algorithmus mit Rest r, Quotient q und den Koeffizienten s und t.

Grenzen: Negative Exponenten werden als Potenz der Inversen gerechnet, das geht nur, wenn die Inverse existiert. Sehr große Exponenten sind schnell, sehr große Moduln mit Tausenden Stellen können aber einige Sekunden dauern. Für Primzahltests nutzen Sie den Rechner Primzahl prüfen.

Anleitung: Modulo-Rechner in 4 Schritten

  1. Geben Sie die Zahl a, den Exponenten oder zweiten Operanden b und den Modul m ein; beliebig große ganze Zahlen sind erlaubt.
  2. Wählen Sie unter „Rechenart“ zum Beispiel „Potenz a^b mod m“ oder „Inverse a⁻¹ mod m“.
  3. Lesen Sie das Ergebnis oben ab; darunter steht bei Inverse und ggT die Tabelle des erweiterten euklidischen Algorithmus.
  4. Mit „Kopieren“ übernehmen Sie das Ergebnis, mit „Beispiel RSA“ laden Sie ein kleines RSA-Lehrbeispiel.

Typische Anwendungsfälle

  • RSA im Unterricht nachrechnen: privaten Exponenten d als Inverse von e modulo φ(n) bestimmen.
  • Prüfziffern und Hash-Funktionen nachvollziehen, die mit Resten modulo einer Primzahl arbeiten.
  • Ergebnisse eigener Implementierungen von modpow oder Inverse in Python, Java oder JavaScript gegenprüfen.
  • Lineare Kongruenzen wie 7x ≡ 1 (mod 40) lösen.
Fragen

Häufige Fragen

Wie berechne ich die modulare Inverse?

Mit dem erweiterten euklidischen Algorithmus. Er findet s und t mit s·a + t·m = 1. Dann ist s mod m die Inverse von a. Für 17 modulo 3120 ist das 2753.

Was ist modulares Potenzieren?

Die Berechnung von a^b mod m, ohne a^b vollständig auszurechnen. Nach jedem Quadrieren und Multiplizieren wird sofort modulo m reduziert, daher bleibt die Rechnung klein und schnell.

Was sind Restklassen?

Alle ganzen Zahlen, die bei Division durch m denselben Rest lassen, bilden eine Restklasse. Modulo 5 gehören etwa 2, 7, 12 und −3 zur selben Klasse.

Warum BigInt statt normaler Zahlen?

JavaScript-Zahlen sind nur bis 2^53 exakt. In der Kryptografie sind Zahlen mit Hunderten Stellen üblich, dafür ist BigInt nötig.

Warum liefert -7 % 3 in JavaScript -1 und nicht 2?

Der Operator % in JavaScript, Java und C ist ein Rest mit dem Vorzeichen des Dividenden. Mathematisch üblich ist der kleinste nichtnegative Rest; der Rechner gibt diesen aus, also 2.

Wann gibt es keine modulare Inverse?

Nur wenn ggT(a, m) = 1 ist, existiert eine Inverse. Bei a = 6 und m = 9 ist der ggT 3, daher gibt es keine Zahl x mit 6x ≡ 1 (mod 9).

Weitere Werkzeuge

Das könnte auch helfen

Alle 558 Werkzeuge