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: (1196 - 23996) mod 6.
Um längere Rechnungen zu vermeiden, rechnen wir:
(1196 - 23996) mod 6 ≡ (1196 mod 6 - 23996 mod 6) mod 6.
1196 mod 6 ≡ 2 mod 6 kann man relativ leicht bestimmen, weil ja 1196
= 1200
23996 mod 6 ≡ 2 mod 6 kann man relativ leicht bestimmen, weil ja 23996
= 24000
Somit gilt:
(1196 - 23996) mod 6 ≡ (2 - 2) mod 6 ≡ 0 mod 6.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (47 ⋅ 94) mod 5.
Um längere Rechnungen zu vermeiden, rechnen wir:
(47 ⋅ 94) mod 5 ≡ (47 mod 5 ⋅ 94 mod 5) mod 5.
47 mod 5 ≡ 2 mod 5 kann man relativ leicht bestimmen, weil ja 47 = 45 + 2 = 9 ⋅ 5 + 2 ist.
94 mod 5 ≡ 4 mod 5 kann man relativ leicht bestimmen, weil ja 94 = 90 + 4 = 18 ⋅ 5 + 4 ist.
Somit gilt:
(47 ⋅ 94) mod 5 ≡ (2 ⋅ 4) mod 5 ≡ 8 mod 5 ≡ 3 mod 5.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 3978 mod 563.
Die 8 im Exponent ist ja ein reine 2er-Potenz (23).
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. 397 -> x
2. mod(x²,563) -> 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: 3971=397
2: 3972=3971+1=3971⋅3971 ≡ 397⋅397=157609 ≡ 532 mod 563
4: 3974=3972+2=3972⋅3972 ≡ 532⋅532=283024 ≡ 398 mod 563
8: 3978=3974+4=3974⋅3974 ≡ 398⋅398=158404 ≡ 201 mod 563
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 267185 mod 347.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 185 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 185 an und zerlegen 185 in eine Summer von 2er-Potenzen:
185 = 128+32+16+8+1
1: 2671=267
2: 2672=2671+1=2671⋅2671 ≡ 267⋅267=71289 ≡ 154 mod 347
4: 2674=2672+2=2672⋅2672 ≡ 154⋅154=23716 ≡ 120 mod 347
8: 2678=2674+4=2674⋅2674 ≡ 120⋅120=14400 ≡ 173 mod 347
16: 26716=2678+8=2678⋅2678 ≡ 173⋅173=29929 ≡ 87 mod 347
32: 26732=26716+16=26716⋅26716 ≡ 87⋅87=7569 ≡ 282 mod 347
64: 26764=26732+32=26732⋅26732 ≡ 282⋅282=79524 ≡ 61 mod 347
128: 267128=26764+64=26764⋅26764 ≡ 61⋅61=3721 ≡ 251 mod 347
267185
= 267128+32+16+8+1
= 267128⋅26732⋅26716⋅2678⋅2671
≡ 251 ⋅ 282 ⋅ 87 ⋅ 173 ⋅ 267 mod 347
≡ 70782 ⋅ 87 ⋅ 173 ⋅ 267 mod 347 ≡ 341 ⋅ 87 ⋅ 173 ⋅ 267 mod 347
≡ 29667 ⋅ 173 ⋅ 267 mod 347 ≡ 172 ⋅ 173 ⋅ 267 mod 347
≡ 29756 ⋅ 267 mod 347 ≡ 261 ⋅ 267 mod 347
≡ 69687 mod 347 ≡ 287 mod 347
Es gilt also: 267185 ≡ 287 mod 347
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-59-Inverse zur Zahl 31.
Also bestimme x, so dass 31 ⋅ x ≡ 1 mod 59 gilt:
Berechnung des größten gemeinsamen Teilers von 59 und 31
| =>59 | = 1⋅31 + 28 |
| =>31 | = 1⋅28 + 3 |
| =>28 | = 9⋅3 + 1 |
| =>3 | = 3⋅1 + 0 |
also gilt: ggt(59,31)=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= 28-9⋅3 | |||
| 3= 31-1⋅28 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅28 -9⋅(31 -1⋅ 28)
= 1⋅28 -9⋅31 +9⋅ 28) = -9⋅31 +10⋅ 28 (=1) |
| 28= 59-1⋅31 | eingesetzt in die Zeile drüber: | 1 |
= -9⋅31 +10⋅(59 -1⋅ 31)
= -9⋅31 +10⋅59 -10⋅ 31) = 10⋅59 -19⋅ 31 (=1) |
Es gilt also: ggt(59,31)=1 = 10⋅59 -19⋅31
oder wenn man 10⋅59 auf die linke Seite bringt:
1 -10⋅59 = -19⋅31
-19⋅31 = -10⋅59 + 1 |+59⋅31
-19⋅31 + 59⋅31 = -10⋅59 + 59⋅31 + 1
(-19 + 59) ⋅ 31 = (-10 + 31) ⋅ 59 + 1
40⋅31 = 21⋅59 + 1
Es gilt also: 40⋅31 = 21⋅59 +1
Somit 40⋅31 = 1 mod 59
40 ist also das Inverse von 31 mod 59
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.
