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: (70 + 3499) mod 7.
Um längere Rechnungen zu vermeiden, rechnen wir:
(70 + 3499) mod 7 ≡ (70 mod 7 + 3499 mod 7) mod 7.
70 mod 7 ≡ 0 mod 7 kann man relativ leicht bestimmen, weil ja 70
= 70
3499 mod 7 ≡ 6 mod 7 kann man relativ leicht bestimmen, weil ja 3499
= 3500
Somit gilt:
(70 + 3499) mod 7 ≡ (0 + 6) mod 7 ≡ 6 mod 7.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (61 ⋅ 15) mod 11.
Um längere Rechnungen zu vermeiden, rechnen wir:
(61 ⋅ 15) mod 11 ≡ (61 mod 11 ⋅ 15 mod 11) mod 11.
61 mod 11 ≡ 6 mod 11 kann man relativ leicht bestimmen, weil ja 61 = 55 + 6 = 5 ⋅ 11 + 6 ist.
15 mod 11 ≡ 4 mod 11 kann man relativ leicht bestimmen, weil ja 15 = 11 + 4 = 1 ⋅ 11 + 4 ist.
Somit gilt:
(61 ⋅ 15) mod 11 ≡ (6 ⋅ 4) mod 11 ≡ 24 mod 11 ≡ 2 mod 11.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 18732 mod 211.
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. 187 -> x
2. mod(x²,211) -> 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: 1871=187
2: 1872=1871+1=1871⋅1871 ≡ 187⋅187=34969 ≡ 154 mod 211
4: 1874=1872+2=1872⋅1872 ≡ 154⋅154=23716 ≡ 84 mod 211
8: 1878=1874+4=1874⋅1874 ≡ 84⋅84=7056 ≡ 93 mod 211
16: 18716=1878+8=1878⋅1878 ≡ 93⋅93=8649 ≡ 209 mod 211
32: 18732=18716+16=18716⋅18716 ≡ 209⋅209=43681 ≡ 4 mod 211
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 116204 mod 373.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 204 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 204 an und zerlegen 204 in eine Summer von 2er-Potenzen:
204 = 128+64+8+4
1: 1161=116
2: 1162=1161+1=1161⋅1161 ≡ 116⋅116=13456 ≡ 28 mod 373
4: 1164=1162+2=1162⋅1162 ≡ 28⋅28=784 ≡ 38 mod 373
8: 1168=1164+4=1164⋅1164 ≡ 38⋅38=1444 ≡ 325 mod 373
16: 11616=1168+8=1168⋅1168 ≡ 325⋅325=105625 ≡ 66 mod 373
32: 11632=11616+16=11616⋅11616 ≡ 66⋅66=4356 ≡ 253 mod 373
64: 11664=11632+32=11632⋅11632 ≡ 253⋅253=64009 ≡ 226 mod 373
128: 116128=11664+64=11664⋅11664 ≡ 226⋅226=51076 ≡ 348 mod 373
116204
= 116128+64+8+4
= 116128⋅11664⋅1168⋅1164
≡ 348 ⋅ 226 ⋅ 325 ⋅ 38 mod 373
≡ 78648 ⋅ 325 ⋅ 38 mod 373 ≡ 318 ⋅ 325 ⋅ 38 mod 373
≡ 103350 ⋅ 38 mod 373 ≡ 29 ⋅ 38 mod 373
≡ 1102 mod 373 ≡ 356 mod 373
Es gilt also: 116204 ≡ 356 mod 373
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-97-Inverse zur Zahl 92.
Also bestimme x, so dass 92 ⋅ x ≡ 1 mod 97 gilt:
Berechnung des größten gemeinsamen Teilers von 97 und 92
| =>97 | = 1⋅92 + 5 |
| =>92 | = 18⋅5 + 2 |
| =>5 | = 2⋅2 + 1 |
| =>2 | = 2⋅1 + 0 |
also gilt: ggt(97,92)=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= 5-2⋅2 | |||
| 2= 92-18⋅5 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅5 -2⋅(92 -18⋅ 5)
= 1⋅5 -2⋅92 +36⋅ 5) = -2⋅92 +37⋅ 5 (=1) |
| 5= 97-1⋅92 | eingesetzt in die Zeile drüber: | 1 |
= -2⋅92 +37⋅(97 -1⋅ 92)
= -2⋅92 +37⋅97 -37⋅ 92) = 37⋅97 -39⋅ 92 (=1) |
Es gilt also: ggt(97,92)=1 = 37⋅97 -39⋅92
oder wenn man 37⋅97 auf die linke Seite bringt:
1 -37⋅97 = -39⋅92
-39⋅92 = -37⋅97 + 1 |+97⋅92
-39⋅92 + 97⋅92 = -37⋅97 + 97⋅92 + 1
(-39 + 97) ⋅ 92 = (-37 + 92) ⋅ 97 + 1
58⋅92 = 55⋅97 + 1
Es gilt also: 58⋅92 = 55⋅97 +1
Somit 58⋅92 = 1 mod 97
58 ist also das Inverse von 92 mod 97
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 47 und q = 59. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
