Aufgabenbeispiele von MGK Klasse 10
Durch Aktualisieren des Browsers (z.B. mit Taste F5) kann man neue Beispielaufgaben sehen
Modulo addieren
Beispiel:
Berechne ohne WTR: (4001 + 80) mod 4.
Um längere Rechnungen zu vermeiden, rechnen wir:
(4001 + 80) mod 4 ≡ (4001 mod 4 + 80 mod 4) mod 4.
4001 mod 4 ≡ 1 mod 4 kann man relativ leicht bestimmen, weil ja 4001
= 4000
80 mod 4 ≡ 0 mod 4 kann man relativ leicht bestimmen, weil ja 80
= 80
Somit gilt:
(4001 + 80) mod 4 ≡ (1 + 0) mod 4 ≡ 1 mod 4.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (94 ⋅ 22) mod 8.
Um längere Rechnungen zu vermeiden, rechnen wir:
(94 ⋅ 22) mod 8 ≡ (94 mod 8 ⋅ 22 mod 8) mod 8.
94 mod 8 ≡ 6 mod 8 kann man relativ leicht bestimmen, weil ja 94 = 88 + 6 = 11 ⋅ 8 + 6 ist.
22 mod 8 ≡ 6 mod 8 kann man relativ leicht bestimmen, weil ja 22 = 16 + 6 = 2 ⋅ 8 + 6 ist.
Somit gilt:
(94 ⋅ 22) mod 8 ≡ (6 ⋅ 6) mod 8 ≡ 36 mod 8 ≡ 4 mod 8.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 7216 mod 227.
Die 16 im Exponent ist ja ein reine 2er-Potenz (24).
Deswegen quadrieren wir einfach mit jedem Schritt das Ergebnis und kommen so immer eine 2er-Potenz im Exponenten höher:
Zur technischen Durchführung mit einem TI-WTR bietet sich folgende Vorgehensweise an:
1. 72 -> x
2. mod(x²,227) -> x
- den Pfeil "->" erhält man durch Drücken der [sto->]-Taste
- die x-Taste ist direkt darüber
- "mod" erhält man durch [math]->NUM->8:mod
- das Komma "," erhält man durch Drücken von [2nd][.]
1: 721=72
2: 722=721+1=721⋅721 ≡ 72⋅72=5184 ≡ 190 mod 227
4: 724=722+2=722⋅722 ≡ 190⋅190=36100 ≡ 7 mod 227
8: 728=724+4=724⋅724 ≡ 7⋅7=49 ≡ 49 mod 227
16: 7216=728+8=728⋅728 ≡ 49⋅49=2401 ≡ 131 mod 227
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 443177 mod 967.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 177 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 177 an und zerlegen 177 in eine Summer von 2er-Potenzen:
177 = 128+32+16+1
1: 4431=443
2: 4432=4431+1=4431⋅4431 ≡ 443⋅443=196249 ≡ 915 mod 967
4: 4434=4432+2=4432⋅4432 ≡ 915⋅915=837225 ≡ 770 mod 967
8: 4438=4434+4=4434⋅4434 ≡ 770⋅770=592900 ≡ 129 mod 967
16: 44316=4438+8=4438⋅4438 ≡ 129⋅129=16641 ≡ 202 mod 967
32: 44332=44316+16=44316⋅44316 ≡ 202⋅202=40804 ≡ 190 mod 967
64: 44364=44332+32=44332⋅44332 ≡ 190⋅190=36100 ≡ 321 mod 967
128: 443128=44364+64=44364⋅44364 ≡ 321⋅321=103041 ≡ 539 mod 967
443177
= 443128+32+16+1
= 443128⋅44332⋅44316⋅4431
≡ 539 ⋅ 190 ⋅ 202 ⋅ 443 mod 967
≡ 102410 ⋅ 202 ⋅ 443 mod 967 ≡ 875 ⋅ 202 ⋅ 443 mod 967
≡ 176750 ⋅ 443 mod 967 ≡ 756 ⋅ 443 mod 967
≡ 334908 mod 967 ≡ 326 mod 967
Es gilt also: 443177 ≡ 326 mod 967
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-89-Inverse zur Zahl 36.
Also bestimme x, so dass 36 ⋅ x ≡ 1 mod 89 gilt:
Berechnung des größten gemeinsamen Teilers von 89 und 36
| =>89 | = 2⋅36 + 17 |
| =>36 | = 2⋅17 + 2 |
| =>17 | = 8⋅2 + 1 |
| =>2 | = 2⋅1 + 0 |
also gilt: ggt(89,36)=1
Jetzt formen wir jede Zeile von unten nach oben um indem wir das Prokukt auf die andere Seite bringen.
Wir starten mit der zweitletzten Zeile:
| 1= 17-8⋅2 | |||
| 2= 36-2⋅17 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅17 -8⋅(36 -2⋅ 17)
= 1⋅17 -8⋅36 +16⋅ 17) = -8⋅36 +17⋅ 17 (=1) |
| 17= 89-2⋅36 | eingesetzt in die Zeile drüber: | 1 |
= -8⋅36 +17⋅(89 -2⋅ 36)
= -8⋅36 +17⋅89 -34⋅ 36) = 17⋅89 -42⋅ 36 (=1) |
Es gilt also: ggt(89,36)=1 = 17⋅89 -42⋅36
oder wenn man 17⋅89 auf die linke Seite bringt:
1 -17⋅89 = -42⋅36
-42⋅36 = -17⋅89 + 1 |+89⋅36
-42⋅36 + 89⋅36 = -17⋅89 + 89⋅36 + 1
(-42 + 89) ⋅ 36 = (-17 + 36) ⋅ 89 + 1
47⋅36 = 19⋅89 + 1
Es gilt also: 47⋅36 = 19⋅89 +1
Somit 47⋅36 = 1 mod 89
47 ist also das Inverse von 36 mod 89
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 71 und q = 37. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
