Modulo: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Uhr-Beispiel als Band um die 12-Stunden-Uhr (14 und 29 Stunden)
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
==Schaubild==
== Schaubild ==
{{#drawio:modulo}}
{{#drawio:modulo}}


'''Animation:''' [https://xinux.org/modulo.html Modulo: Rechnen im Kreis]


= Modulo (Restklassenrechnung) =
= Modulo (Restklassenrechnung) =


; Bedeutung
; Bedeutung
Die Modulo-Operation liefert den Rest einer Division. Sie ist ein zentrales mathematisches Werkzeug in der Kryptografie, Informatik und Netzwerkberechnung.
Die Modulo-Operation liefert den '''Rest einer Division'''. Sie ist ein zentrales Werkzeug in der Kryptografie, der Informatik und bei Netzwerkberechnungen.
 
== Die Uhr und das Band ==
Man stelle sich eine ganz normale Uhr mit 12 Stunden vor und ein Band, auf dem Stunden abgetragen sind. Das Band wird ab der 12 um die Uhr gewickelt.
* Ein Band mit '''14 Stunden''' reicht einmal ganz herum, '''2 Stunden''' stehen über: '''14 mod 12 = 2'''.
* Ein Band mit '''29 Stunden''' reicht zweimal ganz herum (24), '''5 Stunden''' stehen über: '''29 mod 12 = 5'''.
Wie oft das Band herumgeht, interessiert nicht. Das Ergebnis von Modulo ist '''der Überstand'''.


== Grundprinzip ==
== Grundprinzip ==
* a mod n = r
a mod n = r
Dabei ist r der Rest, der entsteht, wenn a durch n geteilt wird.
* r ist der Rest, der entsteht, wenn a durch n geteilt wird.
* Man kann sich eine Uhr mit '''n Feldern''' vorstellen, beschriftet mit 0 bis n−1.
* Der Zeiger läuft a Schritte. Wo er stehen bleibt, ist das Ergebnis.
* Wie viele volle Runden er dabei gedreht hat, spielt keine Rolle.


== Beispielrechnungen ==
== Beispielrechnungen ==
* 17 mod 5 = 2
{| class="wikitable"
; Erklärung: 17 / 5 = 3 Rest 2
! Rechnung !! als Division !! auf der Uhr
* 29 mod 7 = 1
|-
* 100 mod 10 = 0
| 17 mod 5 = 2 || 17 / 5 = 3 Rest 2 || 3 volle Runden, 2 Schritte übrig
 
|-
== Warum Modulo wichtig ist ==
| 29 mod 7 = 1 || 29 / 7 = 4 Rest 1 || 4 volle Runden, 1 Schritt übrig
* In der Kryptografie erzeugt Modulo Zyklen, die sich ideal für Schlüsselräume und mathematische Gruppen eignen (z. B. RSA, Diffie-Hellman, ECC).
|-
* In Hashfunktionen und Checksummen wird Modulo genutzt, um Werte in bestimmte Bereiche zu bringen.
| 100 mod 10 = 0 || 100 / 10 = 10 Rest 0 || genau 10 Runden, der Zeiger steht wieder auf 0
* In Netzwerken wird Modulo verwendet, um Bereiche zu adressieren und Masken zu berechnen.
|}
Geht eine Division ohne Rest auf, ist das Ergebnis 0.


== Modulo und periodisches Verhalten ==
== Modulo und periodisches Verhalten ==
Modulo erzeugt immer einen Wertebereich zwischen 0 und n−1.
Modulo erzeugt immer einen Wertebereich zwischen '''0 und n−1'''. Beispiel für n = 5:
Beispiel für n=5:
{| class="wikitable"
* 0 mod 5 = 0
! a !! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7 !! 8 !! 9 !! 10 !! 11
* 1 mod 5 = 1
|-
* 2 mod 5 = 2
! a mod 5
* 3 mod 5 = 3
| 0 || 1 || 2 || 3 || 4 || '''0''' || 1 || 2 || 3 || 4 || '''0''' || 1
* 4 mod 5 = 4
|}
* 5 mod 5 = 0
Zählt man hoch, kommen die Ergebnisse immer in derselben Reihenfolge wieder. Dadurch entstehen '''wiederkehrende Muster''': Die Uhr läuft im Kreis.
* 6 mod 5 = 1


; Dadurch entstehen wiederkehrende Muster.
== Warum Modulo wichtig ist ==
* '''Kryptografie''': Modulo erzeugt Zyklen, die sich für Schlüsselräume und mathematische Gruppen eignen (RSA, Diffie-Hellman, ECC).
* '''Hashfunktionen und Prüfsummen''': Modulo bringt beliebig große Werte in einen festen Bereich. Beispiel: Ein Hashwert 1 234 567 soll auf eine Tabelle mit 8 Fächern verteilt werden: 1 234 567 mod 8 = 7, also Fach 7.
* '''Netzwerke''': Modulo hilft, Bereiche zu adressieren. Beispiel: Wo liegt 10.0.0.77 in Blöcken zu 64 Adressen (/26)? 77 mod 64 = 13, also Host 13 im Block, der Block beginnt bei 77 − 13 = 64, das Netz ist 10.0.0.64/26.


== Anwendung in der Kryptografie ==
== Anwendung in der Kryptografie ==
* RSA nutzt Modulo mit sehr großen Primzahlen (z. B. n = p·q).
Nimmt man eine Zahl immer wieder mal sich selbst und rechnet jedes Mal modulo, läuft auch das im Kreis. Beispiel mit n = 14:
* Diffie-Hellman nutzt Modulo-Arithmetik in zyklischen Gruppen.
{| class="wikitable"
* ECC basiert auf Modulo-Rechnung über endlichen Körpern.
! Potenz !! 2<sup>1</sup> !! 2<sup>2</sup> !! 2<sup>3</sup> !! 2<sup>4</sup> !! 2<sup>5</sup> !! 2<sup>6</sup> !! 2<sup>7</sup>
|-
! mod 14
| 2 || 4 || 8 || 2 || 4 || 8 || 2
|}
Auf solchen Zyklen beruhen die asymmetrischen Verfahren, nur mit Zahlen, die Hunderte Stellen lang sind:
* '''RSA''' rechnet „hoch, dann mod n“ mit n = p · q aus zwei großen Primzahlen, siehe [[RSA Beispiel]] (dort mit n = 14).
* '''Diffie-Hellman''' rechnet „g hoch a, dann mod p“ in einer zyklischen Gruppe.
* '''ECC''' rechnet auf einer elliptischen Kurve modulo einer Primzahl.
 
Allen gemeinsam: Vorwärts ist die Rechnung leicht, rückwärts kommt man ohne das Geheimnis praktisch nicht hin.


[[Kategorie:Kryptografie]]
[[Kategorie:Kryptografie]]

Aktuelle Version vom 20. Oktober 2026, 05:34 Uhr

Schaubild

modulo

Animation: Modulo: Rechnen im Kreis

Modulo (Restklassenrechnung)

Bedeutung

Die Modulo-Operation liefert den Rest einer Division. Sie ist ein zentrales Werkzeug in der Kryptografie, der Informatik und bei Netzwerkberechnungen.

Die Uhr und das Band

Man stelle sich eine ganz normale Uhr mit 12 Stunden vor und ein Band, auf dem Stunden abgetragen sind. Das Band wird ab der 12 um die Uhr gewickelt.

  • Ein Band mit 14 Stunden reicht einmal ganz herum, 2 Stunden stehen über: 14 mod 12 = 2.
  • Ein Band mit 29 Stunden reicht zweimal ganz herum (24), 5 Stunden stehen über: 29 mod 12 = 5.

Wie oft das Band herumgeht, interessiert nicht. Das Ergebnis von Modulo ist der Überstand.

Grundprinzip

a mod n = r
  • r ist der Rest, der entsteht, wenn a durch n geteilt wird.
  • Man kann sich eine Uhr mit n Feldern vorstellen, beschriftet mit 0 bis n−1.
  • Der Zeiger läuft a Schritte. Wo er stehen bleibt, ist das Ergebnis.
  • Wie viele volle Runden er dabei gedreht hat, spielt keine Rolle.

Beispielrechnungen

Rechnung als Division auf der Uhr
17 mod 5 = 2 17 / 5 = 3 Rest 2 3 volle Runden, 2 Schritte übrig
29 mod 7 = 1 29 / 7 = 4 Rest 1 4 volle Runden, 1 Schritt übrig
100 mod 10 = 0 100 / 10 = 10 Rest 0 genau 10 Runden, der Zeiger steht wieder auf 0

Geht eine Division ohne Rest auf, ist das Ergebnis 0.

Modulo und periodisches Verhalten

Modulo erzeugt immer einen Wertebereich zwischen 0 und n−1. Beispiel für n = 5:

a 0 1 2 3 4 5 6 7 8 9 10 11
a mod 5 0 1 2 3 4 0 1 2 3 4 0 1

Zählt man hoch, kommen die Ergebnisse immer in derselben Reihenfolge wieder. Dadurch entstehen wiederkehrende Muster: Die Uhr läuft im Kreis.

Warum Modulo wichtig ist

  • Kryptografie: Modulo erzeugt Zyklen, die sich für Schlüsselräume und mathematische Gruppen eignen (RSA, Diffie-Hellman, ECC).
  • Hashfunktionen und Prüfsummen: Modulo bringt beliebig große Werte in einen festen Bereich. Beispiel: Ein Hashwert 1 234 567 soll auf eine Tabelle mit 8 Fächern verteilt werden: 1 234 567 mod 8 = 7, also Fach 7.
  • Netzwerke: Modulo hilft, Bereiche zu adressieren. Beispiel: Wo liegt 10.0.0.77 in Blöcken zu 64 Adressen (/26)? 77 mod 64 = 13, also Host 13 im Block, der Block beginnt bei 77 − 13 = 64, das Netz ist 10.0.0.64/26.

Anwendung in der Kryptografie

Nimmt man eine Zahl immer wieder mal sich selbst und rechnet jedes Mal modulo, läuft auch das im Kreis. Beispiel mit n = 14:

Potenz 21 22 23 24 25 26 27
mod 14 2 4 8 2 4 8 2

Auf solchen Zyklen beruhen die asymmetrischen Verfahren, nur mit Zahlen, die Hunderte Stellen lang sind:

  • RSA rechnet „hoch, dann mod n“ mit n = p · q aus zwei großen Primzahlen, siehe RSA Beispiel (dort mit n = 14).
  • Diffie-Hellman rechnet „g hoch a, dann mod p“ in einer zyklischen Gruppe.
  • ECC rechnet auf einer elliptischen Kurve modulo einer Primzahl.

Allen gemeinsam: Vorwärts ist die Rechnung leicht, rückwärts kommt man ohne das Geheimnis praktisch nicht hin.