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: (297 + 12000) mod 3.
Um längere Rechnungen zu vermeiden, rechnen wir:
(297 + 12000) mod 3 ≡ (297 mod 3 + 12000 mod 3) mod 3.
297 mod 3 ≡ 0 mod 3 kann man relativ leicht bestimmen, weil ja 297
= 300
12000 mod 3 ≡ 0 mod 3 kann man relativ leicht bestimmen, weil ja 12000
= 12000
Somit gilt:
(297 + 12000) mod 3 ≡ (0 + 0) mod 3 ≡ 0 mod 3.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (40 ⋅ 20) mod 4.
Um längere Rechnungen zu vermeiden, rechnen wir:
(40 ⋅ 20) mod 4 ≡ (40 mod 4 ⋅ 20 mod 4) mod 4.
40 mod 4 ≡ 0 mod 4 kann man relativ leicht bestimmen, weil ja 40 = 40 + 0 = 10 ⋅ 4 + 0 ist.
20 mod 4 ≡ 0 mod 4 kann man relativ leicht bestimmen, weil ja 20 = 20 + 0 = 5 ⋅ 4 + 0 ist.
Somit gilt:
(40 ⋅ 20) mod 4 ≡ (0 ⋅ 0) mod 4 ≡ 0 mod 4.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 49732 mod 587.
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. 497 -> x
2. mod(x²,587) -> 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: 4971=497
2: 4972=4971+1=4971⋅4971 ≡ 497⋅497=247009 ≡ 469 mod 587
4: 4974=4972+2=4972⋅4972 ≡ 469⋅469=219961 ≡ 423 mod 587
8: 4978=4974+4=4974⋅4974 ≡ 423⋅423=178929 ≡ 481 mod 587
16: 49716=4978+8=4978⋅4978 ≡ 481⋅481=231361 ≡ 83 mod 587
32: 49732=49716+16=49716⋅49716 ≡ 83⋅83=6889 ≡ 432 mod 587
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 173141 mod 277.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 141 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 141 an und zerlegen 141 in eine Summer von 2er-Potenzen:
141 = 128+8+4+1
1: 1731=173
2: 1732=1731+1=1731⋅1731 ≡ 173⋅173=29929 ≡ 13 mod 277
4: 1734=1732+2=1732⋅1732 ≡ 13⋅13=169 ≡ 169 mod 277
8: 1738=1734+4=1734⋅1734 ≡ 169⋅169=28561 ≡ 30 mod 277
16: 17316=1738+8=1738⋅1738 ≡ 30⋅30=900 ≡ 69 mod 277
32: 17332=17316+16=17316⋅17316 ≡ 69⋅69=4761 ≡ 52 mod 277
64: 17364=17332+32=17332⋅17332 ≡ 52⋅52=2704 ≡ 211 mod 277
128: 173128=17364+64=17364⋅17364 ≡ 211⋅211=44521 ≡ 201 mod 277
173141
= 173128+8+4+1
= 173128⋅1738⋅1734⋅1731
≡ 201 ⋅ 30 ⋅ 169 ⋅ 173 mod 277
≡ 6030 ⋅ 169 ⋅ 173 mod 277 ≡ 213 ⋅ 169 ⋅ 173 mod 277
≡ 35997 ⋅ 173 mod 277 ≡ 264 ⋅ 173 mod 277
≡ 45672 mod 277 ≡ 244 mod 277
Es gilt also: 173141 ≡ 244 mod 277
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-71-Inverse zur Zahl 46.
Also bestimme x, so dass 46 ⋅ x ≡ 1 mod 71 gilt:
Berechnung des größten gemeinsamen Teilers von 71 und 46
| =>71 | = 1⋅46 + 25 |
| =>46 | = 1⋅25 + 21 |
| =>25 | = 1⋅21 + 4 |
| =>21 | = 5⋅4 + 1 |
| =>4 | = 4⋅1 + 0 |
also gilt: ggt(71,46)=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= 21-5⋅4 | |||
| 4= 25-1⋅21 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅21 -5⋅(25 -1⋅ 21)
= 1⋅21 -5⋅25 +5⋅ 21) = -5⋅25 +6⋅ 21 (=1) |
| 21= 46-1⋅25 | eingesetzt in die Zeile drüber: | 1 |
= -5⋅25 +6⋅(46 -1⋅ 25)
= -5⋅25 +6⋅46 -6⋅ 25) = 6⋅46 -11⋅ 25 (=1) |
| 25= 71-1⋅46 | eingesetzt in die Zeile drüber: | 1 |
= 6⋅46 -11⋅(71 -1⋅ 46)
= 6⋅46 -11⋅71 +11⋅ 46) = -11⋅71 +17⋅ 46 (=1) |
Es gilt also: ggt(71,46)=1 = -11⋅71 +17⋅46
oder wenn man -11⋅71 auf die linke Seite bringt:
1 +11⋅71 = +17⋅46
Es gilt also: 17⋅46 = 11⋅71 +1
Somit 17⋅46 = 1 mod 71
17 ist also das Inverse von 46 mod 71
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 41 und q = 89. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
