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: (405 + 16003) mod 8.
Um längere Rechnungen zu vermeiden, rechnen wir:
(405 + 16003) mod 8 ≡ (405 mod 8 + 16003 mod 8) mod 8.
405 mod 8 ≡ 5 mod 8 kann man relativ leicht bestimmen, weil ja 405
= 400
16003 mod 8 ≡ 3 mod 8 kann man relativ leicht bestimmen, weil ja 16003
= 16000
Somit gilt:
(405 + 16003) mod 8 ≡ (5 + 3) mod 8 ≡ 8 mod 8 ≡ 0 mod 8.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (51 ⋅ 63) mod 6.
Um längere Rechnungen zu vermeiden, rechnen wir:
(51 ⋅ 63) mod 6 ≡ (51 mod 6 ⋅ 63 mod 6) mod 6.
51 mod 6 ≡ 3 mod 6 kann man relativ leicht bestimmen, weil ja 51 = 48 + 3 = 8 ⋅ 6 + 3 ist.
63 mod 6 ≡ 3 mod 6 kann man relativ leicht bestimmen, weil ja 63 = 60 + 3 = 10 ⋅ 6 + 3 ist.
Somit gilt:
(51 ⋅ 63) mod 6 ≡ (3 ⋅ 3) mod 6 ≡ 9 mod 6 ≡ 3 mod 6.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 21832 mod 239.
Die 32 im Exponent ist ja ein reine 2er-Potenz (25).
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. 218 -> x
2. mod(x²,239) -> 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: 2181=218
2: 2182=2181+1=2181⋅2181 ≡ 218⋅218=47524 ≡ 202 mod 239
4: 2184=2182+2=2182⋅2182 ≡ 202⋅202=40804 ≡ 174 mod 239
8: 2188=2184+4=2184⋅2184 ≡ 174⋅174=30276 ≡ 162 mod 239
16: 21816=2188+8=2188⋅2188 ≡ 162⋅162=26244 ≡ 193 mod 239
32: 21832=21816+16=21816⋅21816 ≡ 193⋅193=37249 ≡ 204 mod 239
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 735170 mod 853.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 170 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 170 an und zerlegen 170 in eine Summer von 2er-Potenzen:
170 = 128+32+8+2
1: 7351=735
2: 7352=7351+1=7351⋅7351 ≡ 735⋅735=540225 ≡ 276 mod 853
4: 7354=7352+2=7352⋅7352 ≡ 276⋅276=76176 ≡ 259 mod 853
8: 7358=7354+4=7354⋅7354 ≡ 259⋅259=67081 ≡ 547 mod 853
16: 73516=7358+8=7358⋅7358 ≡ 547⋅547=299209 ≡ 659 mod 853
32: 73532=73516+16=73516⋅73516 ≡ 659⋅659=434281 ≡ 104 mod 853
64: 73564=73532+32=73532⋅73532 ≡ 104⋅104=10816 ≡ 580 mod 853
128: 735128=73564+64=73564⋅73564 ≡ 580⋅580=336400 ≡ 318 mod 853
735170
= 735128+32+8+2
= 735128⋅73532⋅7358⋅7352
≡ 318 ⋅ 104 ⋅ 547 ⋅ 276 mod 853
≡ 33072 ⋅ 547 ⋅ 276 mod 853 ≡ 658 ⋅ 547 ⋅ 276 mod 853
≡ 359926 ⋅ 276 mod 853 ≡ 813 ⋅ 276 mod 853
≡ 224388 mod 853 ≡ 49 mod 853
Es gilt also: 735170 ≡ 49 mod 853
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-79-Inverse zur Zahl 54.
Also bestimme x, so dass 54 ⋅ x ≡ 1 mod 79 gilt:
Berechnung des größten gemeinsamen Teilers von 79 und 54
| =>79 | = 1⋅54 + 25 |
| =>54 | = 2⋅25 + 4 |
| =>25 | = 6⋅4 + 1 |
| =>4 | = 4⋅1 + 0 |
also gilt: ggt(79,54)=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= 25-6⋅4 | |||
| 4= 54-2⋅25 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅25 -6⋅(54 -2⋅ 25)
= 1⋅25 -6⋅54 +12⋅ 25) = -6⋅54 +13⋅ 25 (=1) |
| 25= 79-1⋅54 | eingesetzt in die Zeile drüber: | 1 |
= -6⋅54 +13⋅(79 -1⋅ 54)
= -6⋅54 +13⋅79 -13⋅ 54) = 13⋅79 -19⋅ 54 (=1) |
Es gilt also: ggt(79,54)=1 = 13⋅79 -19⋅54
oder wenn man 13⋅79 auf die linke Seite bringt:
1 -13⋅79 = -19⋅54
-19⋅54 = -13⋅79 + 1 |+79⋅54
-19⋅54 + 79⋅54 = -13⋅79 + 79⋅54 + 1
(-19 + 79) ⋅ 54 = (-13 + 54) ⋅ 79 + 1
60⋅54 = 41⋅79 + 1
Es gilt also: 60⋅54 = 41⋅79 +1
Somit 60⋅54 = 1 mod 79
60 ist also das Inverse von 54 mod 79
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 97 und q = 37. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
