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: (10002 - 20002) mod 5.
Um längere Rechnungen zu vermeiden, rechnen wir:
(10002 - 20002) mod 5 ≡ (10002 mod 5 - 20002 mod 5) mod 5.
10002 mod 5 ≡ 2 mod 5 kann man relativ leicht bestimmen, weil ja 10002
= 10000
20002 mod 5 ≡ 2 mod 5 kann man relativ leicht bestimmen, weil ja 20002
= 20000
Somit gilt:
(10002 - 20002) mod 5 ≡ (2 - 2) mod 5 ≡ 0 mod 5.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (23 ⋅ 83) mod 3.
Um längere Rechnungen zu vermeiden, rechnen wir:
(23 ⋅ 83) mod 3 ≡ (23 mod 3 ⋅ 83 mod 3) mod 3.
23 mod 3 ≡ 2 mod 3 kann man relativ leicht bestimmen, weil ja 23 = 21 + 2 = 7 ⋅ 3 + 2 ist.
83 mod 3 ≡ 2 mod 3 kann man relativ leicht bestimmen, weil ja 83 = 81 + 2 = 27 ⋅ 3 + 2 ist.
Somit gilt:
(23 ⋅ 83) mod 3 ≡ (2 ⋅ 2) mod 3 ≡ 4 mod 3 ≡ 1 mod 3.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 26216 mod 821.
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. 262 -> x
2. mod(x²,821) -> 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: 2621=262
2: 2622=2621+1=2621⋅2621 ≡ 262⋅262=68644 ≡ 501 mod 821
4: 2624=2622+2=2622⋅2622 ≡ 501⋅501=251001 ≡ 596 mod 821
8: 2628=2624+4=2624⋅2624 ≡ 596⋅596=355216 ≡ 544 mod 821
16: 26216=2628+8=2628⋅2628 ≡ 544⋅544=295936 ≡ 376 mod 821
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 601165 mod 829.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 165 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 165 an und zerlegen 165 in eine Summer von 2er-Potenzen:
165 = 128+32+4+1
1: 6011=601
2: 6012=6011+1=6011⋅6011 ≡ 601⋅601=361201 ≡ 586 mod 829
4: 6014=6012+2=6012⋅6012 ≡ 586⋅586=343396 ≡ 190 mod 829
8: 6018=6014+4=6014⋅6014 ≡ 190⋅190=36100 ≡ 453 mod 829
16: 60116=6018+8=6018⋅6018 ≡ 453⋅453=205209 ≡ 446 mod 829
32: 60132=60116+16=60116⋅60116 ≡ 446⋅446=198916 ≡ 785 mod 829
64: 60164=60132+32=60132⋅60132 ≡ 785⋅785=616225 ≡ 278 mod 829
128: 601128=60164+64=60164⋅60164 ≡ 278⋅278=77284 ≡ 187 mod 829
601165
= 601128+32+4+1
= 601128⋅60132⋅6014⋅6011
≡ 187 ⋅ 785 ⋅ 190 ⋅ 601 mod 829
≡ 146795 ⋅ 190 ⋅ 601 mod 829 ≡ 62 ⋅ 190 ⋅ 601 mod 829
≡ 11780 ⋅ 601 mod 829 ≡ 174 ⋅ 601 mod 829
≡ 104574 mod 829 ≡ 120 mod 829
Es gilt also: 601165 ≡ 120 mod 829
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-79-Inverse zur Zahl 42.
Also bestimme x, so dass 42 ⋅ x ≡ 1 mod 79 gilt:
Berechnung des größten gemeinsamen Teilers von 79 und 42
| =>79 | = 1⋅42 + 37 |
| =>42 | = 1⋅37 + 5 |
| =>37 | = 7⋅5 + 2 |
| =>5 | = 2⋅2 + 1 |
| =>2 | = 2⋅1 + 0 |
also gilt: ggt(79,42)=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= 5-2⋅2 | |||
| 2= 37-7⋅5 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅5 -2⋅(37 -7⋅ 5)
= 1⋅5 -2⋅37 +14⋅ 5) = -2⋅37 +15⋅ 5 (=1) |
| 5= 42-1⋅37 | eingesetzt in die Zeile drüber: | 1 |
= -2⋅37 +15⋅(42 -1⋅ 37)
= -2⋅37 +15⋅42 -15⋅ 37) = 15⋅42 -17⋅ 37 (=1) |
| 37= 79-1⋅42 | eingesetzt in die Zeile drüber: | 1 |
= 15⋅42 -17⋅(79 -1⋅ 42)
= 15⋅42 -17⋅79 +17⋅ 42) = -17⋅79 +32⋅ 42 (=1) |
Es gilt also: ggt(79,42)=1 = -17⋅79 +32⋅42
oder wenn man -17⋅79 auf die linke Seite bringt:
1 +17⋅79 = +32⋅42
Es gilt also: 32⋅42 = 17⋅79 +1
Somit 32⋅42 = 1 mod 79
32 ist also das Inverse von 42 mod 79
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 31 und q = 97. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
