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: (503 + 496) mod 5.
Um längere Rechnungen zu vermeiden, rechnen wir:
(503 + 496) mod 5 ≡ (503 mod 5 + 496 mod 5) mod 5.
503 mod 5 ≡ 3 mod 5 kann man relativ leicht bestimmen, weil ja 503
= 500
496 mod 5 ≡ 1 mod 5 kann man relativ leicht bestimmen, weil ja 496
= 400
Somit gilt:
(503 + 496) mod 5 ≡ (3 + 1) mod 5 ≡ 4 mod 5.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (60 ⋅ 87) mod 10.
Um längere Rechnungen zu vermeiden, rechnen wir:
(60 ⋅ 87) mod 10 ≡ (60 mod 10 ⋅ 87 mod 10) mod 10.
60 mod 10 ≡ 0 mod 10 kann man relativ leicht bestimmen, weil ja 60 = 60 + 0 = 6 ⋅ 10 + 0 ist.
87 mod 10 ≡ 7 mod 10 kann man relativ leicht bestimmen, weil ja 87 = 80 + 7 = 8 ⋅ 10 + 7 ist.
Somit gilt:
(60 ⋅ 87) mod 10 ≡ (0 ⋅ 7) mod 10 ≡ 0 mod 10.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 48432 mod 1009.
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. 484 -> x
2. mod(x²,1009) -> 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: 4841=484
2: 4842=4841+1=4841⋅4841 ≡ 484⋅484=234256 ≡ 168 mod 1009
4: 4844=4842+2=4842⋅4842 ≡ 168⋅168=28224 ≡ 981 mod 1009
8: 4848=4844+4=4844⋅4844 ≡ 981⋅981=962361 ≡ 784 mod 1009
16: 48416=4848+8=4848⋅4848 ≡ 784⋅784=614656 ≡ 175 mod 1009
32: 48432=48416+16=48416⋅48416 ≡ 175⋅175=30625 ≡ 355 mod 1009
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 604141 mod 661.
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: 6041=604
2: 6042=6041+1=6041⋅6041 ≡ 604⋅604=364816 ≡ 605 mod 661
4: 6044=6042+2=6042⋅6042 ≡ 605⋅605=366025 ≡ 492 mod 661
8: 6048=6044+4=6044⋅6044 ≡ 492⋅492=242064 ≡ 138 mod 661
16: 60416=6048+8=6048⋅6048 ≡ 138⋅138=19044 ≡ 536 mod 661
32: 60432=60416+16=60416⋅60416 ≡ 536⋅536=287296 ≡ 422 mod 661
64: 60464=60432+32=60432⋅60432 ≡ 422⋅422=178084 ≡ 275 mod 661
128: 604128=60464+64=60464⋅60464 ≡ 275⋅275=75625 ≡ 271 mod 661
604141
= 604128+8+4+1
= 604128⋅6048⋅6044⋅6041
≡ 271 ⋅ 138 ⋅ 492 ⋅ 604 mod 661
≡ 37398 ⋅ 492 ⋅ 604 mod 661 ≡ 382 ⋅ 492 ⋅ 604 mod 661
≡ 187944 ⋅ 604 mod 661 ≡ 220 ⋅ 604 mod 661
≡ 132880 mod 661 ≡ 19 mod 661
Es gilt also: 604141 ≡ 19 mod 661
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-73-Inverse zur Zahl 38.
Also bestimme x, so dass 38 ⋅ x ≡ 1 mod 73 gilt:
Berechnung des größten gemeinsamen Teilers von 73 und 38
| =>73 | = 1⋅38 + 35 |
| =>38 | = 1⋅35 + 3 |
| =>35 | = 11⋅3 + 2 |
| =>3 | = 1⋅2 + 1 |
| =>2 | = 2⋅1 + 0 |
also gilt: ggt(73,38)=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= 35-11⋅3 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅3 -1⋅(35 -11⋅ 3)
= 1⋅3 -1⋅35 +11⋅ 3) = -1⋅35 +12⋅ 3 (=1) |
| 3= 38-1⋅35 | eingesetzt in die Zeile drüber: | 1 |
= -1⋅35 +12⋅(38 -1⋅ 35)
= -1⋅35 +12⋅38 -12⋅ 35) = 12⋅38 -13⋅ 35 (=1) |
| 35= 73-1⋅38 | eingesetzt in die Zeile drüber: | 1 |
= 12⋅38 -13⋅(73 -1⋅ 38)
= 12⋅38 -13⋅73 +13⋅ 38) = -13⋅73 +25⋅ 38 (=1) |
Es gilt also: ggt(73,38)=1 = -13⋅73 +25⋅38
oder wenn man -13⋅73 auf die linke Seite bringt:
1 +13⋅73 = +25⋅38
Es gilt also: 25⋅38 = 13⋅73 +1
Somit 25⋅38 = 1 mod 73
25 ist also das Inverse von 38 mod 73
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.
