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: (17996 + 599) mod 6.
Um längere Rechnungen zu vermeiden, rechnen wir:
(17996 + 599) mod 6 ≡ (17996 mod 6 + 599 mod 6) mod 6.
17996 mod 6 ≡ 2 mod 6 kann man relativ leicht bestimmen, weil ja 17996
= 18000
599 mod 6 ≡ 5 mod 6 kann man relativ leicht bestimmen, weil ja 599
= 600
Somit gilt:
(17996 + 599) mod 6 ≡ (2 + 5) mod 6 ≡ 7 mod 6 ≡ 1 mod 6.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (36 ⋅ 55) mod 7.
Um längere Rechnungen zu vermeiden, rechnen wir:
(36 ⋅ 55) mod 7 ≡ (36 mod 7 ⋅ 55 mod 7) mod 7.
36 mod 7 ≡ 1 mod 7 kann man relativ leicht bestimmen, weil ja 36 = 35 + 1 = 5 ⋅ 7 + 1 ist.
55 mod 7 ≡ 6 mod 7 kann man relativ leicht bestimmen, weil ja 55 = 49 + 6 = 7 ⋅ 7 + 6 ist.
Somit gilt:
(36 ⋅ 55) mod 7 ≡ (1 ⋅ 6) mod 7 ≡ 6 mod 7.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 78416 mod 941.
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. 784 -> x
2. mod(x²,941) -> 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: 7841=784
2: 7842=7841+1=7841⋅7841 ≡ 784⋅784=614656 ≡ 183 mod 941
4: 7844=7842+2=7842⋅7842 ≡ 183⋅183=33489 ≡ 554 mod 941
8: 7848=7844+4=7844⋅7844 ≡ 554⋅554=306916 ≡ 150 mod 941
16: 78416=7848+8=7848⋅7848 ≡ 150⋅150=22500 ≡ 857 mod 941
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 688182 mod 757.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 182 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 182 an und zerlegen 182 in eine Summer von 2er-Potenzen:
182 = 128+32+16+4+2
1: 6881=688
2: 6882=6881+1=6881⋅6881 ≡ 688⋅688=473344 ≡ 219 mod 757
4: 6884=6882+2=6882⋅6882 ≡ 219⋅219=47961 ≡ 270 mod 757
8: 6888=6884+4=6884⋅6884 ≡ 270⋅270=72900 ≡ 228 mod 757
16: 68816=6888+8=6888⋅6888 ≡ 228⋅228=51984 ≡ 508 mod 757
32: 68832=68816+16=68816⋅68816 ≡ 508⋅508=258064 ≡ 684 mod 757
64: 68864=68832+32=68832⋅68832 ≡ 684⋅684=467856 ≡ 30 mod 757
128: 688128=68864+64=68864⋅68864 ≡ 30⋅30=900 ≡ 143 mod 757
688182
= 688128+32+16+4+2
= 688128⋅68832⋅68816⋅6884⋅6882
≡ 143 ⋅ 684 ⋅ 508 ⋅ 270 ⋅ 219 mod 757
≡ 97812 ⋅ 508 ⋅ 270 ⋅ 219 mod 757 ≡ 159 ⋅ 508 ⋅ 270 ⋅ 219 mod 757
≡ 80772 ⋅ 270 ⋅ 219 mod 757 ≡ 530 ⋅ 270 ⋅ 219 mod 757
≡ 143100 ⋅ 219 mod 757 ≡ 27 ⋅ 219 mod 757
≡ 5913 mod 757 ≡ 614 mod 757
Es gilt also: 688182 ≡ 614 mod 757
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-61-Inverse zur Zahl 23.
Also bestimme x, so dass 23 ⋅ x ≡ 1 mod 61 gilt:
Berechnung des größten gemeinsamen Teilers von 61 und 23
| =>61 | = 2⋅23 + 15 |
| =>23 | = 1⋅15 + 8 |
| =>15 | = 1⋅8 + 7 |
| =>8 | = 1⋅7 + 1 |
| =>7 | = 7⋅1 + 0 |
also gilt: ggt(61,23)=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= 8-1⋅7 | |||
| 7= 15-1⋅8 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅8 -1⋅(15 -1⋅ 8)
= 1⋅8 -1⋅15 +1⋅ 8) = -1⋅15 +2⋅ 8 (=1) |
| 8= 23-1⋅15 | eingesetzt in die Zeile drüber: | 1 |
= -1⋅15 +2⋅(23 -1⋅ 15)
= -1⋅15 +2⋅23 -2⋅ 15) = 2⋅23 -3⋅ 15 (=1) |
| 15= 61-2⋅23 | eingesetzt in die Zeile drüber: | 1 |
= 2⋅23 -3⋅(61 -2⋅ 23)
= 2⋅23 -3⋅61 +6⋅ 23) = -3⋅61 +8⋅ 23 (=1) |
Es gilt also: ggt(61,23)=1 = -3⋅61 +8⋅23
oder wenn man -3⋅61 auf die linke Seite bringt:
1 +3⋅61 = +8⋅23
Es gilt also: 8⋅23 = 3⋅61 +1
Somit 8⋅23 = 1 mod 61
8 ist also das Inverse von 23 mod 61
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 101 und q = 73. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
