Modulo: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Uhr-Beispiel, Tabellen, Beispiele für Hash und Netz, Potenz-Zyklus, Link zur Animation
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 ==
Jeder rechnet täglich modulo, meist ohne es zu merken:
* Es ist 9 Uhr. In 5 Stunden ist es nicht 14 Uhr auf dem Zifferblatt, sondern '''2 Uhr'''.
* Nach der 12 fängt der Zeiger wieder von vorn an.
* Genau das ist Modulo: 9 + 5 = 14, und '''14 mod 12 = 2'''.
 
Auch beliebig viele Stunden passen auf die Uhr: 100 Stunden sind 8 volle Runden (96) und 4 Stunden übrig, also '''100 mod 12 = 4'''.


== 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]]

Version vom 20. Oktober 2026, 05:29 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

Jeder rechnet täglich modulo, meist ohne es zu merken:

  • Es ist 9 Uhr. In 5 Stunden ist es nicht 14 Uhr auf dem Zifferblatt, sondern 2 Uhr.
  • Nach der 12 fängt der Zeiger wieder von vorn an.
  • Genau das ist Modulo: 9 + 5 = 14, und 14 mod 12 = 2.

Auch beliebig viele Stunden passen auf die Uhr: 100 Stunden sind 8 volle Runden (96) und 4 Stunden übrig, also 100 mod 12 = 4.

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.