Ein kurzer Ausflug in die Mathematik

Im letzten Kapitel wurden einige Bildungsvorschriften benutzt, in denen das Wort mod vorkam. Hierbei handelt es sich um die sogenannte Modulo-Funktion, die nachfolgend ein wenig genauer unter die Lupe genommen wird. Die Modulo-Arithmetik, manchmal auch Uhren-Arithmetik genannt, ist ein Gebiet der Mathematik, auf dem sich reichlich Einwegfunktionen finden, diese werden ausführlicher im Abschnitt zu der Public-Key-Chiffrierung beschrieben.. In der Modulo-Arithmetik werden endliche Gruppen von Zahlen untersucht, die auf einer Schleife angeordnet sind, ähnlich wie die Ziffern einer Uhr. Denken wir uns beispielsweise eine Uhr für modulo 7 (oder mod 7), die nur 7 Zahlen von 0 bis 6 besitzt. Um die Aufgabe 2+3 zu lösen, beginnen wir bei 2, gehen drei Schritte im Kreis und landen bei 5, erhalten also dieselbe Antwort wie in der üblichen Arithmetik. Um 2+6 zu lösen, beginnen wir bei 2 und gehen sechs Schritte im Kreis, doch diesmal überschreiten wir die 0 und landen bei 1, was wir in der normalen Arithmetik nicht erhalten würden. Die Rechnungen können wie folgt dargestellt werden:

2 + 3 = 5 (mod 7) und 2 + 6= 1 (mod 7)

Die Modul-Arithmetik ist relativ einfach, und tatsächlich betreiben wir sie jeden Tag, wenn wir über die Zeit reden. Wenn es jetzt 9 Uhr ist und wir in 8 Stunden ein Date haben, können wir auch sagen, das Treffen ist um 5 Uhr. Wir haben im Kopf 9+8 (mod 12) ausgerechnet. Stellen wir uns eine Uhr vor, schauen wir auf die 9 und gehen 8 Ziffern weit im Kreis, dann landen wir bei 5:

9 + 8 = 5 (mod 12)

Anstelle von Uhren nehmen die Mathematiker eine Abkürzung und führen Moduloberechnungen nach der folgenden Regel aus. Erstens wird das Ergebnis in der normalen Arithmetik berechnet. Wenn wir zweitens die Antwort (mod x) wissen wollen, teilen wir das normale Ergebnis durch x und notieren den Rest. Dieser Rest ist die Antwort (mod x). Um die Antwort auf

11 x 9(mod 13) zu finden, tun wir folgendes:

11 x 9 = 99
               99 / 13 = 7, Rest 8 daraus folgt 11 x 9 = 8 (mod 13)

Funktionen in der Modulo-Arithmetik verhalten sich oft unstet, was sie in manchen Fällen zu den bereits oben erwähnten Einwegfunktionen macht. Dies wird deutlich, wenn wir eine einfache Funktion in der gewöhnlichen Arithmetik mit der gleichen einfachen Funktion in der Modul-Arithmetik vergleichen. Im ersten Fall haben wir es mit einer Zweiwegfunktion zu tun, die leicht umzukehren ist; in der Modul-Arithmetik jedoch ist sie eine Einwegfunktion. Nehmen wir beispielsweise die Funktion 3x. Das heißt, wir nehmen ein Zahl x, multiplizieren dann die 3 x-mal mit sich selbst und erhalten eine neue Zahl. Wenn x=2 ist und wir die Funktion ausführen, dann erhalten wir:

3x = 32 = 3 x 3 = 9

Die Funktion verwandelt also 2 in 9. In der normalen Arithmetik erhöht sich mit dem Wert von x auch das Ergebnis der Funktion. Wenn man uns also das Ergebnis der Funktion lieferte, wäre es recht einfach, sie umzukehren und die Ausgangszahl zu erschließen. Wenn das Resultat beispielsweise 81 lautet, können wir schließen, dass x den Wert 4 hat, denn 34 = 81. Wenn wir nur raten und annehmen, x habe den Wert 5, können wir 35 = 243 berechnen und feststellen, dass wir zu hoch angesetzt haben. Dann können wir den Wert von x auf 4 senken und bekommen die richtige Antwort. Selbst wenn wir also falsch raten, können wir uns auf den richtigen Wert von x einpendeln und damit die Funktion umkehren.
In der Modulo-Arithmetik verhält sich dieselbe Funktion jedoch nicht so vernünftig. Nehmen wir an, man sagt uns, dass 3x (mod 7) = 1 ist und fordert uns auf, den Wert von x zu finden. Auf Anhieb fällt uns kein Wert ein, weil wir mit der Modul-Arithmetik nicht vertraut sind. Wir könnten versuchsweise annehmen, dass x = 5 und das Ergebnis von 35 (mod 7) ausrechnen. Die Antwort lautet 5, und das ist zu groß, denn wir suchen nach 1 als Ergebnis. Wenn wir dann den Wert von x verringern, vielleicht auf 4, und es erneut probieren, würden wir in die falsche Richtung gehen, denn die Antwort lautet x = 6. In der normalen Arithmetik können wir Zahlenwerte ausprobieren und feststellen, ob die Spur heißer oder kälter wird. Auf dem Feld der Modulo-Arithmetik gibt es keine nützlichen Hinweise, und die Umkehrung der Funktionen ist viel schwieriger. Oft besteht der einzige Weg darin, die Funktion für viele Werte von x zu berechnen und eine Tabelle zu erstellen, bis die richtige Antwort gefunden ist. Tabelle 4 zeigt die Ergebnisse mehrerer Werte von x für die Funktion 3x in der gewöhnlichen Arithmetik und in der Modulo-Arithmetik. Sie zeigt deutlich das unstete Verhalten der Funktion, wenn sie in der Modulo-Arithmetik berechnet wird. Eine solche Tabelle mit relativ kleinen Zahlen zu erstellen ist zwar ein wenig mühselig, doch wäre es unglaublich schwer, eine Tabelle für Funktionen wie 453x (mod 21997) zu erstellen. Dies ist ein klassisches Beispiel für eine Einwegfunktion, weil ich einen Wert für x wählen und das Ergebnis der Funktion berechnen könnte, doch wenn ich Ihnen ein Resultat geben würde, sagen wir 5787, hätten Sie enorme Schwierigkeiten, die Funktion umzukehren und auf das ursprüglich gewählte x zu schließen. Für die Berechnung von 5787 braucht man lediglich ein paar Sekunden, doch Sie würden Stunden brauchen, um die Tabelle zu erstellen und das gewählte x herauszufinden.

x 1 2 3 4 5 6
3x 3 9 27 81 243 729
3x ( mod 7) 3 2 6 4 5 1
Werte der Funktion 3x in der gewöhnlichen Arithmetik (Zeile 2) und in der Modulo-Arithmetik (Zeile 3).

zurück Gliederung vor