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: (3004 + 240) mod 6.
Um längere Rechnungen zu vermeiden, rechnen wir:
(3004 + 240) mod 6 ≡ (3004 mod 6 + 240 mod 6) mod 6.
3004 mod 6 ≡ 4 mod 6 kann man relativ leicht bestimmen, weil ja 3004
= 3000
240 mod 6 ≡ 0 mod 6 kann man relativ leicht bestimmen, weil ja 240
= 240
Somit gilt:
(3004 + 240) mod 6 ≡ (4 + 0) mod 6 ≡ 4 mod 6.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (86 ⋅ 18) mod 10.
Um längere Rechnungen zu vermeiden, rechnen wir:
(86 ⋅ 18) mod 10 ≡ (86 mod 10 ⋅ 18 mod 10) mod 10.
86 mod 10 ≡ 6 mod 10 kann man relativ leicht bestimmen, weil ja 86 = 80 + 6 = 8 ⋅ 10 + 6 ist.
18 mod 10 ≡ 8 mod 10 kann man relativ leicht bestimmen, weil ja 18 = 10 + 8 = 1 ⋅ 10 + 8 ist.
Somit gilt:
(86 ⋅ 18) mod 10 ≡ (6 ⋅ 8) mod 10 ≡ 48 mod 10 ≡ 8 mod 10.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 10564 mod 271.
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. 105 -> x
2. mod(x²,271) -> 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: 1051=105
2: 1052=1051+1=1051⋅1051 ≡ 105⋅105=11025 ≡ 185 mod 271
4: 1054=1052+2=1052⋅1052 ≡ 185⋅185=34225 ≡ 79 mod 271
8: 1058=1054+4=1054⋅1054 ≡ 79⋅79=6241 ≡ 8 mod 271
16: 10516=1058+8=1058⋅1058 ≡ 8⋅8=64 ≡ 64 mod 271
32: 10532=10516+16=10516⋅10516 ≡ 64⋅64=4096 ≡ 31 mod 271
64: 10564=10532+32=10532⋅10532 ≡ 31⋅31=961 ≡ 148 mod 271
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 93179 mod 251.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 179 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 179 an und zerlegen 179 in eine Summer von 2er-Potenzen:
179 = 128+32+16+2+1
1: 931=93
2: 932=931+1=931⋅931 ≡ 93⋅93=8649 ≡ 115 mod 251
4: 934=932+2=932⋅932 ≡ 115⋅115=13225 ≡ 173 mod 251
8: 938=934+4=934⋅934 ≡ 173⋅173=29929 ≡ 60 mod 251
16: 9316=938+8=938⋅938 ≡ 60⋅60=3600 ≡ 86 mod 251
32: 9332=9316+16=9316⋅9316 ≡ 86⋅86=7396 ≡ 117 mod 251
64: 9364=9332+32=9332⋅9332 ≡ 117⋅117=13689 ≡ 135 mod 251
128: 93128=9364+64=9364⋅9364 ≡ 135⋅135=18225 ≡ 153 mod 251
93179
= 93128+32+16+2+1
= 93128⋅9332⋅9316⋅932⋅931
≡ 153 ⋅ 117 ⋅ 86 ⋅ 115 ⋅ 93 mod 251
≡ 17901 ⋅ 86 ⋅ 115 ⋅ 93 mod 251 ≡ 80 ⋅ 86 ⋅ 115 ⋅ 93 mod 251
≡ 6880 ⋅ 115 ⋅ 93 mod 251 ≡ 103 ⋅ 115 ⋅ 93 mod 251
≡ 11845 ⋅ 93 mod 251 ≡ 48 ⋅ 93 mod 251
≡ 4464 mod 251 ≡ 197 mod 251
Es gilt also: 93179 ≡ 197 mod 251
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-61-Inverse zur Zahl 19.
Also bestimme x, so dass 19 ⋅ x ≡ 1 mod 61 gilt:
Berechnung des größten gemeinsamen Teilers von 61 und 19
| =>61 | = 3⋅19 + 4 |
| =>19 | = 4⋅4 + 3 |
| =>4 | = 1⋅3 + 1 |
| =>3 | = 3⋅1 + 0 |
also gilt: ggt(61,19)=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= 4-1⋅3 | |||
| 3= 19-4⋅4 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅4 -1⋅(19 -4⋅ 4)
= 1⋅4 -1⋅19 +4⋅ 4) = -1⋅19 +5⋅ 4 (=1) |
| 4= 61-3⋅19 | eingesetzt in die Zeile drüber: | 1 |
= -1⋅19 +5⋅(61 -3⋅ 19)
= -1⋅19 +5⋅61 -15⋅ 19) = 5⋅61 -16⋅ 19 (=1) |
Es gilt also: ggt(61,19)=1 = 5⋅61 -16⋅19
oder wenn man 5⋅61 auf die linke Seite bringt:
1 -5⋅61 = -16⋅19
-16⋅19 = -5⋅61 + 1 |+61⋅19
-16⋅19 + 61⋅19 = -5⋅61 + 61⋅19 + 1
(-16 + 61) ⋅ 19 = (-5 + 19) ⋅ 61 + 1
45⋅19 = 14⋅61 + 1
Es gilt also: 45⋅19 = 14⋅61 +1
Somit 45⋅19 = 1 mod 61
45 ist also das Inverse von 19 mod 61
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 61 und q = 89. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
