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: (1504 + 201) mod 5.
Um längere Rechnungen zu vermeiden, rechnen wir:
(1504 + 201) mod 5 ≡ (1504 mod 5 + 201 mod 5) mod 5.
1504 mod 5 ≡ 4 mod 5 kann man relativ leicht bestimmen, weil ja 1504
= 1500
201 mod 5 ≡ 1 mod 5 kann man relativ leicht bestimmen, weil ja 201
= 200
Somit gilt:
(1504 + 201) mod 5 ≡ (4 + 1) mod 5 ≡ 5 mod 5 ≡ 0 mod 5.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (16 ⋅ 22) mod 11.
Um längere Rechnungen zu vermeiden, rechnen wir:
(16 ⋅ 22) mod 11 ≡ (16 mod 11 ⋅ 22 mod 11) mod 11.
16 mod 11 ≡ 5 mod 11 kann man relativ leicht bestimmen, weil ja 16 = 11 + 5 = 1 ⋅ 11 + 5 ist.
22 mod 11 ≡ 0 mod 11 kann man relativ leicht bestimmen, weil ja 22 = 22 + 0 = 2 ⋅ 11 + 0 ist.
Somit gilt:
(16 ⋅ 22) mod 11 ≡ (5 ⋅ 0) mod 11 ≡ 0 mod 11.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 27264 mod 359.
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. 272 -> x
2. mod(x²,359) -> 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: 2721=272
2: 2722=2721+1=2721⋅2721 ≡ 272⋅272=73984 ≡ 30 mod 359
4: 2724=2722+2=2722⋅2722 ≡ 30⋅30=900 ≡ 182 mod 359
8: 2728=2724+4=2724⋅2724 ≡ 182⋅182=33124 ≡ 96 mod 359
16: 27216=2728+8=2728⋅2728 ≡ 96⋅96=9216 ≡ 241 mod 359
32: 27232=27216+16=27216⋅27216 ≡ 241⋅241=58081 ≡ 282 mod 359
64: 27264=27232+32=27232⋅27232 ≡ 282⋅282=79524 ≡ 185 mod 359
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 398165 mod 857.
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: 3981=398
2: 3982=3981+1=3981⋅3981 ≡ 398⋅398=158404 ≡ 716 mod 857
4: 3984=3982+2=3982⋅3982 ≡ 716⋅716=512656 ≡ 170 mod 857
8: 3988=3984+4=3984⋅3984 ≡ 170⋅170=28900 ≡ 619 mod 857
16: 39816=3988+8=3988⋅3988 ≡ 619⋅619=383161 ≡ 82 mod 857
32: 39832=39816+16=39816⋅39816 ≡ 82⋅82=6724 ≡ 725 mod 857
64: 39864=39832+32=39832⋅39832 ≡ 725⋅725=525625 ≡ 284 mod 857
128: 398128=39864+64=39864⋅39864 ≡ 284⋅284=80656 ≡ 98 mod 857
398165
= 398128+32+4+1
= 398128⋅39832⋅3984⋅3981
≡ 98 ⋅ 725 ⋅ 170 ⋅ 398 mod 857
≡ 71050 ⋅ 170 ⋅ 398 mod 857 ≡ 776 ⋅ 170 ⋅ 398 mod 857
≡ 131920 ⋅ 398 mod 857 ≡ 799 ⋅ 398 mod 857
≡ 318002 mod 857 ≡ 55 mod 857
Es gilt also: 398165 ≡ 55 mod 857
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-71-Inverse zur Zahl 47.
Also bestimme x, so dass 47 ⋅ x ≡ 1 mod 71 gilt:
Berechnung des größten gemeinsamen Teilers von 71 und 47
| =>71 | = 1⋅47 + 24 |
| =>47 | = 1⋅24 + 23 |
| =>24 | = 1⋅23 + 1 |
| =>23 | = 23⋅1 + 0 |
also gilt: ggt(71,47)=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= 24-1⋅23 | |||
| 23= 47-1⋅24 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅24 -1⋅(47 -1⋅ 24)
= 1⋅24 -1⋅47 +1⋅ 24) = -1⋅47 +2⋅ 24 (=1) |
| 24= 71-1⋅47 | eingesetzt in die Zeile drüber: | 1 |
= -1⋅47 +2⋅(71 -1⋅ 47)
= -1⋅47 +2⋅71 -2⋅ 47) = 2⋅71 -3⋅ 47 (=1) |
Es gilt also: ggt(71,47)=1 = 2⋅71 -3⋅47
oder wenn man 2⋅71 auf die linke Seite bringt:
1 -2⋅71 = -3⋅47
-3⋅47 = -2⋅71 + 1 |+71⋅47
-3⋅47 + 71⋅47 = -2⋅71 + 71⋅47 + 1
(-3 + 71) ⋅ 47 = (-2 + 47) ⋅ 71 + 1
68⋅47 = 45⋅71 + 1
Es gilt also: 68⋅47 = 45⋅71 +1
Somit 68⋅47 = 1 mod 71
68 ist also das Inverse von 47 mod 71
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 73 und q = 97. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
