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: (2001 + 1996) mod 4.
Um längere Rechnungen zu vermeiden, rechnen wir:
(2001 + 1996) mod 4 ≡ (2001 mod 4 + 1996 mod 4) mod 4.
2001 mod 4 ≡ 1 mod 4 kann man relativ leicht bestimmen, weil ja 2001
= 2000
1996 mod 4 ≡ 0 mod 4 kann man relativ leicht bestimmen, weil ja 1996
= 1900
Somit gilt:
(2001 + 1996) mod 4 ≡ (1 + 0) mod 4 ≡ 1 mod 4.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (95 ⋅ 34) mod 4.
Um längere Rechnungen zu vermeiden, rechnen wir:
(95 ⋅ 34) mod 4 ≡ (95 mod 4 ⋅ 34 mod 4) mod 4.
95 mod 4 ≡ 3 mod 4 kann man relativ leicht bestimmen, weil ja 95 = 92 + 3 = 23 ⋅ 4 + 3 ist.
34 mod 4 ≡ 2 mod 4 kann man relativ leicht bestimmen, weil ja 34 = 32 + 2 = 8 ⋅ 4 + 2 ist.
Somit gilt:
(95 ⋅ 34) mod 4 ≡ (3 ⋅ 2) mod 4 ≡ 6 mod 4 ≡ 2 mod 4.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 539128 mod 769.
Die 128 im Exponent ist ja ein reine 2er-Potenz (27).
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. 539 -> x
2. mod(x²,769) -> 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: 5391=539
2: 5392=5391+1=5391⋅5391 ≡ 539⋅539=290521 ≡ 608 mod 769
4: 5394=5392+2=5392⋅5392 ≡ 608⋅608=369664 ≡ 544 mod 769
8: 5398=5394+4=5394⋅5394 ≡ 544⋅544=295936 ≡ 640 mod 769
16: 53916=5398+8=5398⋅5398 ≡ 640⋅640=409600 ≡ 492 mod 769
32: 53932=53916+16=53916⋅53916 ≡ 492⋅492=242064 ≡ 598 mod 769
64: 53964=53932+32=53932⋅53932 ≡ 598⋅598=357604 ≡ 19 mod 769
128: 539128=53964+64=53964⋅53964 ≡ 19⋅19=361 ≡ 361 mod 769
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 61289 mod 823.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 89 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 89 an und zerlegen 89 in eine Summer von 2er-Potenzen:
89 = 64+16+8+1
1: 6121=612
2: 6122=6121+1=6121⋅6121 ≡ 612⋅612=374544 ≡ 79 mod 823
4: 6124=6122+2=6122⋅6122 ≡ 79⋅79=6241 ≡ 480 mod 823
8: 6128=6124+4=6124⋅6124 ≡ 480⋅480=230400 ≡ 783 mod 823
16: 61216=6128+8=6128⋅6128 ≡ 783⋅783=613089 ≡ 777 mod 823
32: 61232=61216+16=61216⋅61216 ≡ 777⋅777=603729 ≡ 470 mod 823
64: 61264=61232+32=61232⋅61232 ≡ 470⋅470=220900 ≡ 336 mod 823
61289
= 61264+16+8+1
= 61264⋅61216⋅6128⋅6121
≡ 336 ⋅ 777 ⋅ 783 ⋅ 612 mod 823
≡ 261072 ⋅ 783 ⋅ 612 mod 823 ≡ 181 ⋅ 783 ⋅ 612 mod 823
≡ 141723 ⋅ 612 mod 823 ≡ 167 ⋅ 612 mod 823
≡ 102204 mod 823 ≡ 152 mod 823
Es gilt also: 61289 ≡ 152 mod 823
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-97-Inverse zur Zahl 43.
Also bestimme x, so dass 43 ⋅ x ≡ 1 mod 97 gilt:
Berechnung des größten gemeinsamen Teilers von 97 und 43
| =>97 | = 2⋅43 + 11 |
| =>43 | = 3⋅11 + 10 |
| =>11 | = 1⋅10 + 1 |
| =>10 | = 10⋅1 + 0 |
also gilt: ggt(97,43)=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= 11-1⋅10 | |||
| 10= 43-3⋅11 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅11 -1⋅(43 -3⋅ 11)
= 1⋅11 -1⋅43 +3⋅ 11) = -1⋅43 +4⋅ 11 (=1) |
| 11= 97-2⋅43 | eingesetzt in die Zeile drüber: | 1 |
= -1⋅43 +4⋅(97 -2⋅ 43)
= -1⋅43 +4⋅97 -8⋅ 43) = 4⋅97 -9⋅ 43 (=1) |
Es gilt also: ggt(97,43)=1 = 4⋅97 -9⋅43
oder wenn man 4⋅97 auf die linke Seite bringt:
1 -4⋅97 = -9⋅43
-9⋅43 = -4⋅97 + 1 |+97⋅43
-9⋅43 + 97⋅43 = -4⋅97 + 97⋅43 + 1
(-9 + 97) ⋅ 43 = (-4 + 43) ⋅ 97 + 1
88⋅43 = 39⋅97 + 1
Es gilt also: 88⋅43 = 39⋅97 +1
Somit 88⋅43 = 1 mod 97
88 ist also das Inverse von 43 mod 97
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 31 und q = 47. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
