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 - 80) mod 4.
Um längere Rechnungen zu vermeiden, rechnen wir:
(19997 - 80) mod 4 ≡ (19997 mod 4 - 80 mod 4) mod 4.
19997 mod 4 ≡ 1 mod 4 kann man relativ leicht bestimmen, weil ja 19997
= 19000
80 mod 4 ≡ 0 mod 4 kann man relativ leicht bestimmen, weil ja 80
= 80
Somit gilt:
(19997 - 80) mod 4 ≡ (1 - 0) mod 4 ≡ 1 mod 4.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (37 ⋅ 19) mod 8.
Um längere Rechnungen zu vermeiden, rechnen wir:
(37 ⋅ 19) mod 8 ≡ (37 mod 8 ⋅ 19 mod 8) mod 8.
37 mod 8 ≡ 5 mod 8 kann man relativ leicht bestimmen, weil ja 37 = 32 + 5 = 4 ⋅ 8 + 5 ist.
19 mod 8 ≡ 3 mod 8 kann man relativ leicht bestimmen, weil ja 19 = 16 + 3 = 2 ⋅ 8 + 3 ist.
Somit gilt:
(37 ⋅ 19) mod 8 ≡ (5 ⋅ 3) mod 8 ≡ 15 mod 8 ≡ 7 mod 8.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 34516 mod 601.
Die 16 im Exponent ist ja ein reine 2er-Potenz (24).
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. 345 -> x
2. mod(x²,601) -> 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: 3451=345
2: 3452=3451+1=3451⋅3451 ≡ 345⋅345=119025 ≡ 27 mod 601
4: 3454=3452+2=3452⋅3452 ≡ 27⋅27=729 ≡ 128 mod 601
8: 3458=3454+4=3454⋅3454 ≡ 128⋅128=16384 ≡ 157 mod 601
16: 34516=3458+8=3458⋅3458 ≡ 157⋅157=24649 ≡ 8 mod 601
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 246212 mod 577.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 212 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 212 an und zerlegen 212 in eine Summer von 2er-Potenzen:
212 = 128+64+16+4
1: 2461=246
2: 2462=2461+1=2461⋅2461 ≡ 246⋅246=60516 ≡ 508 mod 577
4: 2464=2462+2=2462⋅2462 ≡ 508⋅508=258064 ≡ 145 mod 577
8: 2468=2464+4=2464⋅2464 ≡ 145⋅145=21025 ≡ 253 mod 577
16: 24616=2468+8=2468⋅2468 ≡ 253⋅253=64009 ≡ 539 mod 577
32: 24632=24616+16=24616⋅24616 ≡ 539⋅539=290521 ≡ 290 mod 577
64: 24664=24632+32=24632⋅24632 ≡ 290⋅290=84100 ≡ 435 mod 577
128: 246128=24664+64=24664⋅24664 ≡ 435⋅435=189225 ≡ 546 mod 577
246212
= 246128+64+16+4
= 246128⋅24664⋅24616⋅2464
≡ 546 ⋅ 435 ⋅ 539 ⋅ 145 mod 577
≡ 237510 ⋅ 539 ⋅ 145 mod 577 ≡ 363 ⋅ 539 ⋅ 145 mod 577
≡ 195657 ⋅ 145 mod 577 ≡ 54 ⋅ 145 mod 577
≡ 7830 mod 577 ≡ 329 mod 577
Es gilt also: 246212 ≡ 329 mod 577
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-101-Inverse zur Zahl 40.
Also bestimme x, so dass 40 ⋅ x ≡ 1 mod 101 gilt:
Berechnung des größten gemeinsamen Teilers von 101 und 40
| =>101 | = 2⋅40 + 21 |
| =>40 | = 1⋅21 + 19 |
| =>21 | = 1⋅19 + 2 |
| =>19 | = 9⋅2 + 1 |
| =>2 | = 2⋅1 + 0 |
also gilt: ggt(101,40)=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= 19-9⋅2 | |||
| 2= 21-1⋅19 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅19 -9⋅(21 -1⋅ 19)
= 1⋅19 -9⋅21 +9⋅ 19) = -9⋅21 +10⋅ 19 (=1) |
| 19= 40-1⋅21 | eingesetzt in die Zeile drüber: | 1 |
= -9⋅21 +10⋅(40 -1⋅ 21)
= -9⋅21 +10⋅40 -10⋅ 21) = 10⋅40 -19⋅ 21 (=1) |
| 21= 101-2⋅40 | eingesetzt in die Zeile drüber: | 1 |
= 10⋅40 -19⋅(101 -2⋅ 40)
= 10⋅40 -19⋅101 +38⋅ 40) = -19⋅101 +48⋅ 40 (=1) |
Es gilt also: ggt(101,40)=1 = -19⋅101 +48⋅40
oder wenn man -19⋅101 auf die linke Seite bringt:
1 +19⋅101 = +48⋅40
Es gilt also: 48⋅40 = 19⋅101 +1
Somit 48⋅40 = 1 mod 101
48 ist also das Inverse von 40 mod 101
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 71 und q = 89. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
