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: (155 - 19998) mod 5.
Um längere Rechnungen zu vermeiden, rechnen wir:
(155 - 19998) mod 5 ≡ (155 mod 5 - 19998 mod 5) mod 5.
155 mod 5 ≡ 0 mod 5 kann man relativ leicht bestimmen, weil ja 155
= 150
19998 mod 5 ≡ 3 mod 5 kann man relativ leicht bestimmen, weil ja 19998
= 19000
Somit gilt:
(155 - 19998) mod 5 ≡ (0 - 3) mod 5 ≡ -3 mod 5 ≡ 2 mod 5.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (77 ⋅ 72) mod 4.
Um längere Rechnungen zu vermeiden, rechnen wir:
(77 ⋅ 72) mod 4 ≡ (77 mod 4 ⋅ 72 mod 4) mod 4.
77 mod 4 ≡ 1 mod 4 kann man relativ leicht bestimmen, weil ja 77 = 76 + 1 = 19 ⋅ 4 + 1 ist.
72 mod 4 ≡ 0 mod 4 kann man relativ leicht bestimmen, weil ja 72 = 72 + 0 = 18 ⋅ 4 + 0 ist.
Somit gilt:
(77 ⋅ 72) mod 4 ≡ (1 ⋅ 0) mod 4 ≡ 0 mod 4.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 78516 mod 863.
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. 785 -> x
2. mod(x²,863) -> 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: 7851=785
2: 7852=7851+1=7851⋅7851 ≡ 785⋅785=616225 ≡ 43 mod 863
4: 7854=7852+2=7852⋅7852 ≡ 43⋅43=1849 ≡ 123 mod 863
8: 7858=7854+4=7854⋅7854 ≡ 123⋅123=15129 ≡ 458 mod 863
16: 78516=7858+8=7858⋅7858 ≡ 458⋅458=209764 ≡ 55 mod 863
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 89232 mod 227.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 232 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 232 an und zerlegen 232 in eine Summer von 2er-Potenzen:
232 = 128+64+32+8
1: 891=89
2: 892=891+1=891⋅891 ≡ 89⋅89=7921 ≡ 203 mod 227
4: 894=892+2=892⋅892 ≡ 203⋅203=41209 ≡ 122 mod 227
8: 898=894+4=894⋅894 ≡ 122⋅122=14884 ≡ 129 mod 227
16: 8916=898+8=898⋅898 ≡ 129⋅129=16641 ≡ 70 mod 227
32: 8932=8916+16=8916⋅8916 ≡ 70⋅70=4900 ≡ 133 mod 227
64: 8964=8932+32=8932⋅8932 ≡ 133⋅133=17689 ≡ 210 mod 227
128: 89128=8964+64=8964⋅8964 ≡ 210⋅210=44100 ≡ 62 mod 227
89232
= 89128+64+32+8
= 89128⋅8964⋅8932⋅898
≡ 62 ⋅ 210 ⋅ 133 ⋅ 129 mod 227
≡ 13020 ⋅ 133 ⋅ 129 mod 227 ≡ 81 ⋅ 133 ⋅ 129 mod 227
≡ 10773 ⋅ 129 mod 227 ≡ 104 ⋅ 129 mod 227
≡ 13416 mod 227 ≡ 23 mod 227
Es gilt also: 89232 ≡ 23 mod 227
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-79-Inverse zur Zahl 52.
Also bestimme x, so dass 52 ⋅ x ≡ 1 mod 79 gilt:
Berechnung des größten gemeinsamen Teilers von 79 und 52
| =>79 | = 1⋅52 + 27 |
| =>52 | = 1⋅27 + 25 |
| =>27 | = 1⋅25 + 2 |
| =>25 | = 12⋅2 + 1 |
| =>2 | = 2⋅1 + 0 |
also gilt: ggt(79,52)=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= 25-12⋅2 | |||
| 2= 27-1⋅25 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅25 -12⋅(27 -1⋅ 25)
= 1⋅25 -12⋅27 +12⋅ 25) = -12⋅27 +13⋅ 25 (=1) |
| 25= 52-1⋅27 | eingesetzt in die Zeile drüber: | 1 |
= -12⋅27 +13⋅(52 -1⋅ 27)
= -12⋅27 +13⋅52 -13⋅ 27) = 13⋅52 -25⋅ 27 (=1) |
| 27= 79-1⋅52 | eingesetzt in die Zeile drüber: | 1 |
= 13⋅52 -25⋅(79 -1⋅ 52)
= 13⋅52 -25⋅79 +25⋅ 52) = -25⋅79 +38⋅ 52 (=1) |
Es gilt also: ggt(79,52)=1 = -25⋅79 +38⋅52
oder wenn man -25⋅79 auf die linke Seite bringt:
1 +25⋅79 = +38⋅52
Es gilt also: 38⋅52 = 25⋅79 +1
Somit 38⋅52 = 1 mod 79
38 ist also das Inverse von 52 mod 79
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 101 und q = 47. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
