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: (7995 - 801) mod 8.
Um längere Rechnungen zu vermeiden, rechnen wir:
(7995 - 801) mod 8 ≡ (7995 mod 8 - 801 mod 8) mod 8.
7995 mod 8 ≡ 3 mod 8 kann man relativ leicht bestimmen, weil ja 7995
= 7000
801 mod 8 ≡ 1 mod 8 kann man relativ leicht bestimmen, weil ja 801
= 800
Somit gilt:
(7995 - 801) mod 8 ≡ (3 - 1) mod 8 ≡ 2 mod 8.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (100 ⋅ 50) mod 3.
Um längere Rechnungen zu vermeiden, rechnen wir:
(100 ⋅ 50) mod 3 ≡ (100 mod 3 ⋅ 50 mod 3) mod 3.
100 mod 3 ≡ 1 mod 3 kann man relativ leicht bestimmen, weil ja 100 = 99 + 1 = 33 ⋅ 3 + 1 ist.
50 mod 3 ≡ 2 mod 3 kann man relativ leicht bestimmen, weil ja 50 = 48 + 2 = 16 ⋅ 3 + 2 ist.
Somit gilt:
(100 ⋅ 50) mod 3 ≡ (1 ⋅ 2) mod 3 ≡ 2 mod 3.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 31364 mod 331.
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. 313 -> x
2. mod(x²,331) -> 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: 3131=313
2: 3132=3131+1=3131⋅3131 ≡ 313⋅313=97969 ≡ 324 mod 331
4: 3134=3132+2=3132⋅3132 ≡ 324⋅324=104976 ≡ 49 mod 331
8: 3138=3134+4=3134⋅3134 ≡ 49⋅49=2401 ≡ 84 mod 331
16: 31316=3138+8=3138⋅3138 ≡ 84⋅84=7056 ≡ 105 mod 331
32: 31332=31316+16=31316⋅31316 ≡ 105⋅105=11025 ≡ 102 mod 331
64: 31364=31332+32=31332⋅31332 ≡ 102⋅102=10404 ≡ 143 mod 331
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 464240 mod 863.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 240 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 240 an und zerlegen 240 in eine Summer von 2er-Potenzen:
240 = 128+64+32+16
1: 4641=464
2: 4642=4641+1=4641⋅4641 ≡ 464⋅464=215296 ≡ 409 mod 863
4: 4644=4642+2=4642⋅4642 ≡ 409⋅409=167281 ≡ 722 mod 863
8: 4648=4644+4=4644⋅4644 ≡ 722⋅722=521284 ≡ 32 mod 863
16: 46416=4648+8=4648⋅4648 ≡ 32⋅32=1024 ≡ 161 mod 863
32: 46432=46416+16=46416⋅46416 ≡ 161⋅161=25921 ≡ 31 mod 863
64: 46464=46432+32=46432⋅46432 ≡ 31⋅31=961 ≡ 98 mod 863
128: 464128=46464+64=46464⋅46464 ≡ 98⋅98=9604 ≡ 111 mod 863
464240
= 464128+64+32+16
= 464128⋅46464⋅46432⋅46416
≡ 111 ⋅ 98 ⋅ 31 ⋅ 161 mod 863
≡ 10878 ⋅ 31 ⋅ 161 mod 863 ≡ 522 ⋅ 31 ⋅ 161 mod 863
≡ 16182 ⋅ 161 mod 863 ≡ 648 ⋅ 161 mod 863
≡ 104328 mod 863 ≡ 768 mod 863
Es gilt also: 464240 ≡ 768 mod 863
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-53-Inverse zur Zahl 37.
Also bestimme x, so dass 37 ⋅ x ≡ 1 mod 53 gilt:
Berechnung des größten gemeinsamen Teilers von 53 und 37
=>53 | = 1⋅37 + 16 |
=>37 | = 2⋅16 + 5 |
=>16 | = 3⋅5 + 1 |
=>5 | = 5⋅1 + 0 |
also gilt: ggt(53,37)=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= 16-3⋅5 | |||
5= 37-2⋅16 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅16 -3⋅(37 -2⋅ 16)
= 1⋅16 -3⋅37 +6⋅ 16) = -3⋅37 +7⋅ 16 (=1) |
16= 53-1⋅37 | eingesetzt in die Zeile drüber: | 1 |
= -3⋅37 +7⋅(53 -1⋅ 37)
= -3⋅37 +7⋅53 -7⋅ 37) = 7⋅53 -10⋅ 37 (=1) |
Es gilt also: ggt(53,37)=1 = 7⋅53 -10⋅37
oder wenn man 7⋅53 auf die linke Seite bringt:
1 -7⋅53 = -10⋅37
-10⋅37 = -7⋅53 + 1 |+53⋅37
-10⋅37 + 53⋅37 = -7⋅53 + 53⋅37 + 1
(-10 + 53) ⋅ 37 = (-7 + 37) ⋅ 53 + 1
43⋅37 = 30⋅53 + 1
Es gilt also: 43⋅37 = 30⋅53 +1
Somit 43⋅37 = 1 mod 53
43 ist also das Inverse von 37 mod 53
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 101 und q = 47. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.