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: (19997 + 505) mod 5.
Um längere Rechnungen zu vermeiden, rechnen wir:
(19997 + 505) mod 5 ≡ (19997 mod 5 + 505 mod 5) mod 5.
19997 mod 5 ≡ 2 mod 5 kann man relativ leicht bestimmen, weil ja 19997
= 19000
505 mod 5 ≡ 0 mod 5 kann man relativ leicht bestimmen, weil ja 505
= 500
Somit gilt:
(19997 + 505) mod 5 ≡ (2 + 0) mod 5 ≡ 2 mod 5.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (93 ⋅ 59) mod 7.
Um längere Rechnungen zu vermeiden, rechnen wir:
(93 ⋅ 59) mod 7 ≡ (93 mod 7 ⋅ 59 mod 7) mod 7.
93 mod 7 ≡ 2 mod 7 kann man relativ leicht bestimmen, weil ja 93 = 91 + 2 = 13 ⋅ 7 + 2 ist.
59 mod 7 ≡ 3 mod 7 kann man relativ leicht bestimmen, weil ja 59 = 56 + 3 = 8 ⋅ 7 + 3 ist.
Somit gilt:
(93 ⋅ 59) mod 7 ≡ (2 ⋅ 3) mod 7 ≡ 6 mod 7.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 662128 mod 761.
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. 662 -> x
2. mod(x²,761) -> 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: 6621=662
2: 6622=6621+1=6621⋅6621 ≡ 662⋅662=438244 ≡ 669 mod 761
4: 6624=6622+2=6622⋅6622 ≡ 669⋅669=447561 ≡ 93 mod 761
8: 6628=6624+4=6624⋅6624 ≡ 93⋅93=8649 ≡ 278 mod 761
16: 66216=6628+8=6628⋅6628 ≡ 278⋅278=77284 ≡ 423 mod 761
32: 66232=66216+16=66216⋅66216 ≡ 423⋅423=178929 ≡ 94 mod 761
64: 66264=66232+32=66232⋅66232 ≡ 94⋅94=8836 ≡ 465 mod 761
128: 662128=66264+64=66264⋅66264 ≡ 465⋅465=216225 ≡ 101 mod 761
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 214108 mod 421.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 108 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 108 an und zerlegen 108 in eine Summer von 2er-Potenzen:
108 = 64+32+8+4
1: 2141=214
2: 2142=2141+1=2141⋅2141 ≡ 214⋅214=45796 ≡ 328 mod 421
4: 2144=2142+2=2142⋅2142 ≡ 328⋅328=107584 ≡ 229 mod 421
8: 2148=2144+4=2144⋅2144 ≡ 229⋅229=52441 ≡ 237 mod 421
16: 21416=2148+8=2148⋅2148 ≡ 237⋅237=56169 ≡ 176 mod 421
32: 21432=21416+16=21416⋅21416 ≡ 176⋅176=30976 ≡ 243 mod 421
64: 21464=21432+32=21432⋅21432 ≡ 243⋅243=59049 ≡ 109 mod 421
214108
= 21464+32+8+4
= 21464⋅21432⋅2148⋅2144
≡ 109 ⋅ 243 ⋅ 237 ⋅ 229 mod 421
≡ 26487 ⋅ 237 ⋅ 229 mod 421 ≡ 385 ⋅ 237 ⋅ 229 mod 421
≡ 91245 ⋅ 229 mod 421 ≡ 309 ⋅ 229 mod 421
≡ 70761 mod 421 ≡ 33 mod 421
Es gilt also: 214108 ≡ 33 mod 421
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 = 43 und q = 89. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
