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: (1997 - 8000) mod 4.
Um längere Rechnungen zu vermeiden, rechnen wir:
(1997 - 8000) mod 4 ≡ (1997 mod 4 - 8000 mod 4) mod 4.
1997 mod 4 ≡ 1 mod 4 kann man relativ leicht bestimmen, weil ja 1997
= 1900
8000 mod 4 ≡ 0 mod 4 kann man relativ leicht bestimmen, weil ja 8000
= 8000
Somit gilt:
(1997 - 8000) mod 4 ≡ (1 - 0) mod 4 ≡ 1 mod 4.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (75 ⋅ 34) mod 10.
Um längere Rechnungen zu vermeiden, rechnen wir:
(75 ⋅ 34) mod 10 ≡ (75 mod 10 ⋅ 34 mod 10) mod 10.
75 mod 10 ≡ 5 mod 10 kann man relativ leicht bestimmen, weil ja 75 = 70 + 5 = 7 ⋅ 10 + 5 ist.
34 mod 10 ≡ 4 mod 10 kann man relativ leicht bestimmen, weil ja 34 = 30 + 4 = 3 ⋅ 10 + 4 ist.
Somit gilt:
(75 ⋅ 34) mod 10 ≡ (5 ⋅ 4) mod 10 ≡ 20 mod 10 ≡ 0 mod 10.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 243128 mod 751.
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. 243 -> x
2. mod(x²,751) -> 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: 2431=243
2: 2432=2431+1=2431⋅2431 ≡ 243⋅243=59049 ≡ 471 mod 751
4: 2434=2432+2=2432⋅2432 ≡ 471⋅471=221841 ≡ 296 mod 751
8: 2438=2434+4=2434⋅2434 ≡ 296⋅296=87616 ≡ 500 mod 751
16: 24316=2438+8=2438⋅2438 ≡ 500⋅500=250000 ≡ 668 mod 751
32: 24332=24316+16=24316⋅24316 ≡ 668⋅668=446224 ≡ 130 mod 751
64: 24364=24332+32=24332⋅24332 ≡ 130⋅130=16900 ≡ 378 mod 751
128: 243128=24364+64=24364⋅24364 ≡ 378⋅378=142884 ≡ 194 mod 751
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 8979 mod 281.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 79 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 79 an und zerlegen 79 in eine Summer von 2er-Potenzen:
79 = 64+8+4+2+1
1: 891=89
2: 892=891+1=891⋅891 ≡ 89⋅89=7921 ≡ 53 mod 281
4: 894=892+2=892⋅892 ≡ 53⋅53=2809 ≡ 280 mod 281
8: 898=894+4=894⋅894 ≡ 280⋅280=78400 ≡ 1 mod 281
16: 8916=898+8=898⋅898 ≡ 1⋅1=1 ≡ 1 mod 281
32: 8932=8916+16=8916⋅8916 ≡ 1⋅1=1 ≡ 1 mod 281
64: 8964=8932+32=8932⋅8932 ≡ 1⋅1=1 ≡ 1 mod 281
8979
= 8964+8+4+2+1
= 8964⋅898⋅894⋅892⋅891
≡ 1 ⋅ 1 ⋅ 280 ⋅ 53 ⋅ 89 mod 281
≡ 1 ⋅ 280 ⋅ 53 ⋅ 89 mod 281
≡ 280 ⋅ 53 ⋅ 89 mod 281
≡ 14840 ⋅ 89 mod 281 ≡ 228 ⋅ 89 mod 281
≡ 20292 mod 281 ≡ 60 mod 281
Es gilt also: 8979 ≡ 60 mod 281
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-73-Inverse zur Zahl 31.
Also bestimme x, so dass 31 ⋅ x ≡ 1 mod 73 gilt:
Berechnung des größten gemeinsamen Teilers von 73 und 31
| =>73 | = 2⋅31 + 11 |
| =>31 | = 2⋅11 + 9 |
| =>11 | = 1⋅9 + 2 |
| =>9 | = 4⋅2 + 1 |
| =>2 | = 2⋅1 + 0 |
also gilt: ggt(73,31)=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= 9-4⋅2 | |||
| 2= 11-1⋅9 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅9 -4⋅(11 -1⋅ 9)
= 1⋅9 -4⋅11 +4⋅ 9) = -4⋅11 +5⋅ 9 (=1) |
| 9= 31-2⋅11 | eingesetzt in die Zeile drüber: | 1 |
= -4⋅11 +5⋅(31 -2⋅ 11)
= -4⋅11 +5⋅31 -10⋅ 11) = 5⋅31 -14⋅ 11 (=1) |
| 11= 73-2⋅31 | eingesetzt in die Zeile drüber: | 1 |
= 5⋅31 -14⋅(73 -2⋅ 31)
= 5⋅31 -14⋅73 +28⋅ 31) = -14⋅73 +33⋅ 31 (=1) |
Es gilt also: ggt(73,31)=1 = -14⋅73 +33⋅31
oder wenn man -14⋅73 auf die linke Seite bringt:
1 +14⋅73 = +33⋅31
Es gilt also: 33⋅31 = 14⋅73 +1
Somit 33⋅31 = 1 mod 73
33 ist also das Inverse von 31 mod 73
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 101 und q = 73. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
