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: (1606 - 320) mod 8.
Um längere Rechnungen zu vermeiden, rechnen wir:
(1606 - 320) mod 8 ≡ (1606 mod 8 - 320 mod 8) mod 8.
1606 mod 8 ≡ 6 mod 8 kann man relativ leicht bestimmen, weil ja 1606
= 1600
320 mod 8 ≡ 0 mod 8 kann man relativ leicht bestimmen, weil ja 320
= 320
Somit gilt:
(1606 - 320) mod 8 ≡ (6 - 0) mod 8 ≡ 6 mod 8.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (87 ⋅ 37) mod 7.
Um längere Rechnungen zu vermeiden, rechnen wir:
(87 ⋅ 37) mod 7 ≡ (87 mod 7 ⋅ 37 mod 7) mod 7.
87 mod 7 ≡ 3 mod 7 kann man relativ leicht bestimmen, weil ja 87 = 84 + 3 = 12 ⋅ 7 + 3 ist.
37 mod 7 ≡ 2 mod 7 kann man relativ leicht bestimmen, weil ja 37 = 35 + 2 = 5 ⋅ 7 + 2 ist.
Somit gilt:
(87 ⋅ 37) mod 7 ≡ (3 ⋅ 2) mod 7 ≡ 6 mod 7.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 55864 mod 853.
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. 558 -> x
2. mod(x²,853) -> 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: 5581=558
2: 5582=5581+1=5581⋅5581 ≡ 558⋅558=311364 ≡ 19 mod 853
4: 5584=5582+2=5582⋅5582 ≡ 19⋅19=361 ≡ 361 mod 853
8: 5588=5584+4=5584⋅5584 ≡ 361⋅361=130321 ≡ 665 mod 853
16: 55816=5588+8=5588⋅5588 ≡ 665⋅665=442225 ≡ 371 mod 853
32: 55832=55816+16=55816⋅55816 ≡ 371⋅371=137641 ≡ 308 mod 853
64: 55864=55832+32=55832⋅55832 ≡ 308⋅308=94864 ≡ 181 mod 853
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 553122 mod 733.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 122 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 122 an und zerlegen 122 in eine Summer von 2er-Potenzen:
122 = 64+32+16+8+2
1: 5531=553
2: 5532=5531+1=5531⋅5531 ≡ 553⋅553=305809 ≡ 148 mod 733
4: 5534=5532+2=5532⋅5532 ≡ 148⋅148=21904 ≡ 647 mod 733
8: 5538=5534+4=5534⋅5534 ≡ 647⋅647=418609 ≡ 66 mod 733
16: 55316=5538+8=5538⋅5538 ≡ 66⋅66=4356 ≡ 691 mod 733
32: 55332=55316+16=55316⋅55316 ≡ 691⋅691=477481 ≡ 298 mod 733
64: 55364=55332+32=55332⋅55332 ≡ 298⋅298=88804 ≡ 111 mod 733
553122
= 55364+32+16+8+2
= 55364⋅55332⋅55316⋅5538⋅5532
≡ 111 ⋅ 298 ⋅ 691 ⋅ 66 ⋅ 148 mod 733
≡ 33078 ⋅ 691 ⋅ 66 ⋅ 148 mod 733 ≡ 93 ⋅ 691 ⋅ 66 ⋅ 148 mod 733
≡ 64263 ⋅ 66 ⋅ 148 mod 733 ≡ 492 ⋅ 66 ⋅ 148 mod 733
≡ 32472 ⋅ 148 mod 733 ≡ 220 ⋅ 148 mod 733
≡ 32560 mod 733 ≡ 308 mod 733
Es gilt also: 553122 ≡ 308 mod 733
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-97-Inverse zur Zahl 30.
Also bestimme x, so dass 30 ⋅ x ≡ 1 mod 97 gilt:
Berechnung des größten gemeinsamen Teilers von 97 und 30
| =>97 | = 3⋅30 + 7 |
| =>30 | = 4⋅7 + 2 |
| =>7 | = 3⋅2 + 1 |
| =>2 | = 2⋅1 + 0 |
also gilt: ggt(97,30)=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= 7-3⋅2 | |||
| 2= 30-4⋅7 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅7 -3⋅(30 -4⋅ 7)
= 1⋅7 -3⋅30 +12⋅ 7) = -3⋅30 +13⋅ 7 (=1) |
| 7= 97-3⋅30 | eingesetzt in die Zeile drüber: | 1 |
= -3⋅30 +13⋅(97 -3⋅ 30)
= -3⋅30 +13⋅97 -39⋅ 30) = 13⋅97 -42⋅ 30 (=1) |
Es gilt also: ggt(97,30)=1 = 13⋅97 -42⋅30
oder wenn man 13⋅97 auf die linke Seite bringt:
1 -13⋅97 = -42⋅30
-42⋅30 = -13⋅97 + 1 |+97⋅30
-42⋅30 + 97⋅30 = -13⋅97 + 97⋅30 + 1
(-42 + 97) ⋅ 30 = (-13 + 30) ⋅ 97 + 1
55⋅30 = 17⋅97 + 1
Es gilt also: 55⋅30 = 17⋅97 +1
Somit 55⋅30 = 1 mod 97
55 ist also das Inverse von 30 mod 97
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 79 und q = 61. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
