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: (1201 + 898) mod 3.
Um längere Rechnungen zu vermeiden, rechnen wir:
(1201 + 898) mod 3 ≡ (1201 mod 3 + 898 mod 3) mod 3.
1201 mod 3 ≡ 1 mod 3 kann man relativ leicht bestimmen, weil ja 1201
= 1200
898 mod 3 ≡ 1 mod 3 kann man relativ leicht bestimmen, weil ja 898
= 900
Somit gilt:
(1201 + 898) mod 3 ≡ (1 + 1) mod 3 ≡ 2 mod 3.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (95 ⋅ 96) mod 3.
Um längere Rechnungen zu vermeiden, rechnen wir:
(95 ⋅ 96) mod 3 ≡ (95 mod 3 ⋅ 96 mod 3) mod 3.
95 mod 3 ≡ 2 mod 3 kann man relativ leicht bestimmen, weil ja 95 = 93 + 2 = 31 ⋅ 3 + 2 ist.
96 mod 3 ≡ 0 mod 3 kann man relativ leicht bestimmen, weil ja 96 = 96 + 0 = 32 ⋅ 3 + 0 ist.
Somit gilt:
(95 ⋅ 96) mod 3 ≡ (2 ⋅ 0) mod 3 ≡ 0 mod 3.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 16564 mod 547.
Die 64 im Exponent ist ja ein reine 2er-Potenz (26).
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. 165 -> x
2. mod(x²,547) -> 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: 1651=165
2: 1652=1651+1=1651⋅1651 ≡ 165⋅165=27225 ≡ 422 mod 547
4: 1654=1652+2=1652⋅1652 ≡ 422⋅422=178084 ≡ 309 mod 547
8: 1658=1654+4=1654⋅1654 ≡ 309⋅309=95481 ≡ 303 mod 547
16: 16516=1658+8=1658⋅1658 ≡ 303⋅303=91809 ≡ 460 mod 547
32: 16532=16516+16=16516⋅16516 ≡ 460⋅460=211600 ≡ 458 mod 547
64: 16564=16532+32=16532⋅16532 ≡ 458⋅458=209764 ≡ 263 mod 547
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 477228 mod 769.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 228 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 228 an und zerlegen 228 in eine Summer von 2er-Potenzen:
228 = 128+64+32+4
1: 4771=477
2: 4772=4771+1=4771⋅4771 ≡ 477⋅477=227529 ≡ 674 mod 769
4: 4774=4772+2=4772⋅4772 ≡ 674⋅674=454276 ≡ 566 mod 769
8: 4778=4774+4=4774⋅4774 ≡ 566⋅566=320356 ≡ 452 mod 769
16: 47716=4778+8=4778⋅4778 ≡ 452⋅452=204304 ≡ 519 mod 769
32: 47732=47716+16=47716⋅47716 ≡ 519⋅519=269361 ≡ 211 mod 769
64: 47764=47732+32=47732⋅47732 ≡ 211⋅211=44521 ≡ 688 mod 769
128: 477128=47764+64=47764⋅47764 ≡ 688⋅688=473344 ≡ 409 mod 769
477228
= 477128+64+32+4
= 477128⋅47764⋅47732⋅4774
≡ 409 ⋅ 688 ⋅ 211 ⋅ 566 mod 769
≡ 281392 ⋅ 211 ⋅ 566 mod 769 ≡ 707 ⋅ 211 ⋅ 566 mod 769
≡ 149177 ⋅ 566 mod 769 ≡ 760 ⋅ 566 mod 769
≡ 430160 mod 769 ≡ 289 mod 769
Es gilt also: 477228 ≡ 289 mod 769
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-59-Inverse zur Zahl 45.
Also bestimme x, so dass 45 ⋅ x ≡ 1 mod 59 gilt:
Berechnung des größten gemeinsamen Teilers von 59 und 45
| =>59 | = 1⋅45 + 14 |
| =>45 | = 3⋅14 + 3 |
| =>14 | = 4⋅3 + 2 |
| =>3 | = 1⋅2 + 1 |
| =>2 | = 2⋅1 + 0 |
also gilt: ggt(59,45)=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= 3-1⋅2 | |||
| 2= 14-4⋅3 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅3 -1⋅(14 -4⋅ 3)
= 1⋅3 -1⋅14 +4⋅ 3) = -1⋅14 +5⋅ 3 (=1) |
| 3= 45-3⋅14 | eingesetzt in die Zeile drüber: | 1 |
= -1⋅14 +5⋅(45 -3⋅ 14)
= -1⋅14 +5⋅45 -15⋅ 14) = 5⋅45 -16⋅ 14 (=1) |
| 14= 59-1⋅45 | eingesetzt in die Zeile drüber: | 1 |
= 5⋅45 -16⋅(59 -1⋅ 45)
= 5⋅45 -16⋅59 +16⋅ 45) = -16⋅59 +21⋅ 45 (=1) |
Es gilt also: ggt(59,45)=1 = -16⋅59 +21⋅45
oder wenn man -16⋅59 auf die linke Seite bringt:
1 +16⋅59 = +21⋅45
Es gilt also: 21⋅45 = 16⋅59 +1
Somit 21⋅45 = 1 mod 59
21 ist also das Inverse von 45 mod 59
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 61 und q = 101. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
