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: (17993 - 18000) mod 9.
Um längere Rechnungen zu vermeiden, rechnen wir:
(17993 - 18000) mod 9 ≡ (17993 mod 9 - 18000 mod 9) mod 9.
17993 mod 9 ≡ 2 mod 9 kann man relativ leicht bestimmen, weil ja 17993
= 18000
18000 mod 9 ≡ 0 mod 9 kann man relativ leicht bestimmen, weil ja 18000
= 18000
Somit gilt:
(17993 - 18000) mod 9 ≡ (2 - 0) mod 9 ≡ 2 mod 9.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (67 ⋅ 77) mod 11.
Um längere Rechnungen zu vermeiden, rechnen wir:
(67 ⋅ 77) mod 11 ≡ (67 mod 11 ⋅ 77 mod 11) mod 11.
67 mod 11 ≡ 1 mod 11 kann man relativ leicht bestimmen, weil ja 67 = 66 + 1 = 6 ⋅ 11 + 1 ist.
77 mod 11 ≡ 0 mod 11 kann man relativ leicht bestimmen, weil ja 77 = 77 + 0 = 7 ⋅ 11 + 0 ist.
Somit gilt:
(67 ⋅ 77) mod 11 ≡ (1 ⋅ 0) mod 11 ≡ 0 mod 11.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 1488 mod 223.
Die 8 im Exponent ist ja ein reine 2er-Potenz (23).
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. 148 -> x
2. mod(x²,223) -> 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: 1481=148
2: 1482=1481+1=1481⋅1481 ≡ 148⋅148=21904 ≡ 50 mod 223
4: 1484=1482+2=1482⋅1482 ≡ 50⋅50=2500 ≡ 47 mod 223
8: 1488=1484+4=1484⋅1484 ≡ 47⋅47=2209 ≡ 202 mod 223
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 288186 mod 491.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 186 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 186 an und zerlegen 186 in eine Summer von 2er-Potenzen:
186 = 128+32+16+8+2
1: 2881=288
2: 2882=2881+1=2881⋅2881 ≡ 288⋅288=82944 ≡ 456 mod 491
4: 2884=2882+2=2882⋅2882 ≡ 456⋅456=207936 ≡ 243 mod 491
8: 2888=2884+4=2884⋅2884 ≡ 243⋅243=59049 ≡ 129 mod 491
16: 28816=2888+8=2888⋅2888 ≡ 129⋅129=16641 ≡ 438 mod 491
32: 28832=28816+16=28816⋅28816 ≡ 438⋅438=191844 ≡ 354 mod 491
64: 28864=28832+32=28832⋅28832 ≡ 354⋅354=125316 ≡ 111 mod 491
128: 288128=28864+64=28864⋅28864 ≡ 111⋅111=12321 ≡ 46 mod 491
288186
= 288128+32+16+8+2
= 288128⋅28832⋅28816⋅2888⋅2882
≡ 46 ⋅ 354 ⋅ 438 ⋅ 129 ⋅ 456 mod 491
≡ 16284 ⋅ 438 ⋅ 129 ⋅ 456 mod 491 ≡ 81 ⋅ 438 ⋅ 129 ⋅ 456 mod 491
≡ 35478 ⋅ 129 ⋅ 456 mod 491 ≡ 126 ⋅ 129 ⋅ 456 mod 491
≡ 16254 ⋅ 456 mod 491 ≡ 51 ⋅ 456 mod 491
≡ 23256 mod 491 ≡ 179 mod 491
Es gilt also: 288186 ≡ 179 mod 491
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-71-Inverse zur Zahl 37.
Also bestimme x, so dass 37 ⋅ x ≡ 1 mod 71 gilt:
Berechnung des größten gemeinsamen Teilers von 71 und 37
| =>71 | = 1⋅37 + 34 |
| =>37 | = 1⋅34 + 3 |
| =>34 | = 11⋅3 + 1 |
| =>3 | = 3⋅1 + 0 |
also gilt: ggt(71,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= 34-11⋅3 | |||
| 3= 37-1⋅34 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅34 -11⋅(37 -1⋅ 34)
= 1⋅34 -11⋅37 +11⋅ 34) = -11⋅37 +12⋅ 34 (=1) |
| 34= 71-1⋅37 | eingesetzt in die Zeile drüber: | 1 |
= -11⋅37 +12⋅(71 -1⋅ 37)
= -11⋅37 +12⋅71 -12⋅ 37) = 12⋅71 -23⋅ 37 (=1) |
Es gilt also: ggt(71,37)=1 = 12⋅71 -23⋅37
oder wenn man 12⋅71 auf die linke Seite bringt:
1 -12⋅71 = -23⋅37
-23⋅37 = -12⋅71 + 1 |+71⋅37
-23⋅37 + 71⋅37 = -12⋅71 + 71⋅37 + 1
(-23 + 71) ⋅ 37 = (-12 + 37) ⋅ 71 + 1
48⋅37 = 25⋅71 + 1
Es gilt also: 48⋅37 = 25⋅71 +1
Somit 48⋅37 = 1 mod 71
48 ist also das Inverse von 37 mod 71
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 43 und q = 71. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
