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: (9003 + 8997) mod 9.
Um längere Rechnungen zu vermeiden, rechnen wir:
(9003 + 8997) mod 9 ≡ (9003 mod 9 + 8997 mod 9) mod 9.
9003 mod 9 ≡ 3 mod 9 kann man relativ leicht bestimmen, weil ja 9003
= 9000
8997 mod 9 ≡ 6 mod 9 kann man relativ leicht bestimmen, weil ja 8997
= 9000
Somit gilt:
(9003 + 8997) mod 9 ≡ (3 + 6) mod 9 ≡ 9 mod 9 ≡ 0 mod 9.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (98 ⋅ 24) mod 5.
Um längere Rechnungen zu vermeiden, rechnen wir:
(98 ⋅ 24) mod 5 ≡ (98 mod 5 ⋅ 24 mod 5) mod 5.
98 mod 5 ≡ 3 mod 5 kann man relativ leicht bestimmen, weil ja 98 = 95 + 3 = 19 ⋅ 5 + 3 ist.
24 mod 5 ≡ 4 mod 5 kann man relativ leicht bestimmen, weil ja 24 = 20 + 4 = 4 ⋅ 5 + 4 ist.
Somit gilt:
(98 ⋅ 24) mod 5 ≡ (3 ⋅ 4) mod 5 ≡ 12 mod 5 ≡ 2 mod 5.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 49916 mod 593.
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. 499 -> x
2. mod(x²,593) -> 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: 4991=499
2: 4992=4991+1=4991⋅4991 ≡ 499⋅499=249001 ≡ 534 mod 593
4: 4994=4992+2=4992⋅4992 ≡ 534⋅534=285156 ≡ 516 mod 593
8: 4998=4994+4=4994⋅4994 ≡ 516⋅516=266256 ≡ 592 mod 593
16: 49916=4998+8=4998⋅4998 ≡ 592⋅592=350464 ≡ 1 mod 593
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 373118 mod 659.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 118 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 118 an und zerlegen 118 in eine Summer von 2er-Potenzen:
118 = 64+32+16+4+2
1: 3731=373
2: 3732=3731+1=3731⋅3731 ≡ 373⋅373=139129 ≡ 80 mod 659
4: 3734=3732+2=3732⋅3732 ≡ 80⋅80=6400 ≡ 469 mod 659
8: 3738=3734+4=3734⋅3734 ≡ 469⋅469=219961 ≡ 514 mod 659
16: 37316=3738+8=3738⋅3738 ≡ 514⋅514=264196 ≡ 596 mod 659
32: 37332=37316+16=37316⋅37316 ≡ 596⋅596=355216 ≡ 15 mod 659
64: 37364=37332+32=37332⋅37332 ≡ 15⋅15=225 ≡ 225 mod 659
373118
= 37364+32+16+4+2
= 37364⋅37332⋅37316⋅3734⋅3732
≡ 225 ⋅ 15 ⋅ 596 ⋅ 469 ⋅ 80 mod 659
≡ 3375 ⋅ 596 ⋅ 469 ⋅ 80 mod 659 ≡ 80 ⋅ 596 ⋅ 469 ⋅ 80 mod 659
≡ 47680 ⋅ 469 ⋅ 80 mod 659 ≡ 232 ⋅ 469 ⋅ 80 mod 659
≡ 108808 ⋅ 80 mod 659 ≡ 73 ⋅ 80 mod 659
≡ 5840 mod 659 ≡ 568 mod 659
Es gilt also: 373118 ≡ 568 mod 659
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-89-Inverse zur Zahl 59.
Also bestimme x, so dass 59 ⋅ x ≡ 1 mod 89 gilt:
Berechnung des größten gemeinsamen Teilers von 89 und 59
| =>89 | = 1⋅59 + 30 |
| =>59 | = 1⋅30 + 29 |
| =>30 | = 1⋅29 + 1 |
| =>29 | = 29⋅1 + 0 |
also gilt: ggt(89,59)=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= 30-1⋅29 | |||
| 29= 59-1⋅30 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅30 -1⋅(59 -1⋅ 30)
= 1⋅30 -1⋅59 +1⋅ 30) = -1⋅59 +2⋅ 30 (=1) |
| 30= 89-1⋅59 | eingesetzt in die Zeile drüber: | 1 |
= -1⋅59 +2⋅(89 -1⋅ 59)
= -1⋅59 +2⋅89 -2⋅ 59) = 2⋅89 -3⋅ 59 (=1) |
Es gilt also: ggt(89,59)=1 = 2⋅89 -3⋅59
oder wenn man 2⋅89 auf die linke Seite bringt:
1 -2⋅89 = -3⋅59
-3⋅59 = -2⋅89 + 1 |+89⋅59
-3⋅59 + 89⋅59 = -2⋅89 + 89⋅59 + 1
(-3 + 89) ⋅ 59 = (-2 + 59) ⋅ 89 + 1
86⋅59 = 57⋅89 + 1
Es gilt also: 86⋅59 = 57⋅89 +1
Somit 86⋅59 = 1 mod 89
86 ist also das Inverse von 59 mod 89
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 61 und q = 67. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
