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: (12000 - 1604) mod 4.
Um längere Rechnungen zu vermeiden, rechnen wir:
(12000 - 1604) mod 4 ≡ (12000 mod 4 - 1604 mod 4) mod 4.
12000 mod 4 ≡ 0 mod 4 kann man relativ leicht bestimmen, weil ja 12000
= 12000
1604 mod 4 ≡ 0 mod 4 kann man relativ leicht bestimmen, weil ja 1604
= 1600
Somit gilt:
(12000 - 1604) mod 4 ≡ (0 - 0) mod 4 ≡ 0 mod 4.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (75 ⋅ 68) mod 10.
Um längere Rechnungen zu vermeiden, rechnen wir:
(75 ⋅ 68) mod 10 ≡ (75 mod 10 ⋅ 68 mod 10) mod 10.
75 mod 10 ≡ 5 mod 10 kann man relativ leicht bestimmen, weil ja 75 = 70 + 5 = 7 ⋅ 10 + 5 ist.
68 mod 10 ≡ 8 mod 10 kann man relativ leicht bestimmen, weil ja 68 = 60 + 8 = 6 ⋅ 10 + 8 ist.
Somit gilt:
(75 ⋅ 68) mod 10 ≡ (5 ⋅ 8) mod 10 ≡ 40 mod 10 ≡ 0 mod 10.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 55364 mod 719.
Die 64 im Exponent ist ja ein reine 2er-Potenz (26).
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. 553 -> x
2. mod(x²,719) -> 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: 5531=553
2: 5532=5531+1=5531⋅5531 ≡ 553⋅553=305809 ≡ 234 mod 719
4: 5534=5532+2=5532⋅5532 ≡ 234⋅234=54756 ≡ 112 mod 719
8: 5538=5534+4=5534⋅5534 ≡ 112⋅112=12544 ≡ 321 mod 719
16: 55316=5538+8=5538⋅5538 ≡ 321⋅321=103041 ≡ 224 mod 719
32: 55332=55316+16=55316⋅55316 ≡ 224⋅224=50176 ≡ 565 mod 719
64: 55364=55332+32=55332⋅55332 ≡ 565⋅565=319225 ≡ 708 mod 719
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 36385 mod 761.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 85 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 85 an und zerlegen 85 in eine Summer von 2er-Potenzen:
85 = 64+16+4+1
1: 3631=363
2: 3632=3631+1=3631⋅3631 ≡ 363⋅363=131769 ≡ 116 mod 761
4: 3634=3632+2=3632⋅3632 ≡ 116⋅116=13456 ≡ 519 mod 761
8: 3638=3634+4=3634⋅3634 ≡ 519⋅519=269361 ≡ 728 mod 761
16: 36316=3638+8=3638⋅3638 ≡ 728⋅728=529984 ≡ 328 mod 761
32: 36332=36316+16=36316⋅36316 ≡ 328⋅328=107584 ≡ 283 mod 761
64: 36364=36332+32=36332⋅36332 ≡ 283⋅283=80089 ≡ 184 mod 761
36385
= 36364+16+4+1
= 36364⋅36316⋅3634⋅3631
≡ 184 ⋅ 328 ⋅ 519 ⋅ 363 mod 761
≡ 60352 ⋅ 519 ⋅ 363 mod 761 ≡ 233 ⋅ 519 ⋅ 363 mod 761
≡ 120927 ⋅ 363 mod 761 ≡ 689 ⋅ 363 mod 761
≡ 250107 mod 761 ≡ 499 mod 761
Es gilt also: 36385 ≡ 499 mod 761
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-61-Inverse zur Zahl 23.
Also bestimme x, so dass 23 ⋅ x ≡ 1 mod 61 gilt:
Berechnung des größten gemeinsamen Teilers von 61 und 23
| =>61 | = 2⋅23 + 15 |
| =>23 | = 1⋅15 + 8 |
| =>15 | = 1⋅8 + 7 |
| =>8 | = 1⋅7 + 1 |
| =>7 | = 7⋅1 + 0 |
also gilt: ggt(61,23)=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= 8-1⋅7 | |||
| 7= 15-1⋅8 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅8 -1⋅(15 -1⋅ 8)
= 1⋅8 -1⋅15 +1⋅ 8) = -1⋅15 +2⋅ 8 (=1) |
| 8= 23-1⋅15 | eingesetzt in die Zeile drüber: | 1 |
= -1⋅15 +2⋅(23 -1⋅ 15)
= -1⋅15 +2⋅23 -2⋅ 15) = 2⋅23 -3⋅ 15 (=1) |
| 15= 61-2⋅23 | eingesetzt in die Zeile drüber: | 1 |
= 2⋅23 -3⋅(61 -2⋅ 23)
= 2⋅23 -3⋅61 +6⋅ 23) = -3⋅61 +8⋅ 23 (=1) |
Es gilt also: ggt(61,23)=1 = -3⋅61 +8⋅23
oder wenn man -3⋅61 auf die linke Seite bringt:
1 +3⋅61 = +8⋅23
Es gilt also: 8⋅23 = 3⋅61 +1
Somit 8⋅23 = 1 mod 61
8 ist also das Inverse von 23 mod 61
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 71 und q = 41. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
