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: (82 + 364) mod 9.
Um längere Rechnungen zu vermeiden, rechnen wir:
(82 + 364) mod 9 ≡ (82 mod 9 + 364 mod 9) mod 9.
82 mod 9 ≡ 1 mod 9 kann man relativ leicht bestimmen, weil ja 82
= 90
364 mod 9 ≡ 4 mod 9 kann man relativ leicht bestimmen, weil ja 364
= 360
Somit gilt:
(82 + 364) mod 9 ≡ (1 + 4) mod 9 ≡ 5 mod 9.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (89 ⋅ 47) mod 8.
Um längere Rechnungen zu vermeiden, rechnen wir:
(89 ⋅ 47) mod 8 ≡ (89 mod 8 ⋅ 47 mod 8) mod 8.
89 mod 8 ≡ 1 mod 8 kann man relativ leicht bestimmen, weil ja 89 = 88 + 1 = 11 ⋅ 8 + 1 ist.
47 mod 8 ≡ 7 mod 8 kann man relativ leicht bestimmen, weil ja 47 = 40 + 7 = 5 ⋅ 8 + 7 ist.
Somit gilt:
(89 ⋅ 47) mod 8 ≡ (1 ⋅ 7) mod 8 ≡ 7 mod 8.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 203128 mod 499.
Die 128 im Exponent ist ja ein reine 2er-Potenz (27).
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. 203 -> x
2. mod(x²,499) -> 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: 2031=203
2: 2032=2031+1=2031⋅2031 ≡ 203⋅203=41209 ≡ 291 mod 499
4: 2034=2032+2=2032⋅2032 ≡ 291⋅291=84681 ≡ 350 mod 499
8: 2038=2034+4=2034⋅2034 ≡ 350⋅350=122500 ≡ 245 mod 499
16: 20316=2038+8=2038⋅2038 ≡ 245⋅245=60025 ≡ 145 mod 499
32: 20332=20316+16=20316⋅20316 ≡ 145⋅145=21025 ≡ 67 mod 499
64: 20364=20332+32=20332⋅20332 ≡ 67⋅67=4489 ≡ 497 mod 499
128: 203128=20364+64=20364⋅20364 ≡ 497⋅497=247009 ≡ 4 mod 499
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 50881 mod 719.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 81 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 81 an und zerlegen 81 in eine Summer von 2er-Potenzen:
81 = 64+16+1
1: 5081=508
2: 5082=5081+1=5081⋅5081 ≡ 508⋅508=258064 ≡ 662 mod 719
4: 5084=5082+2=5082⋅5082 ≡ 662⋅662=438244 ≡ 373 mod 719
8: 5088=5084+4=5084⋅5084 ≡ 373⋅373=139129 ≡ 362 mod 719
16: 50816=5088+8=5088⋅5088 ≡ 362⋅362=131044 ≡ 186 mod 719
32: 50832=50816+16=50816⋅50816 ≡ 186⋅186=34596 ≡ 84 mod 719
64: 50864=50832+32=50832⋅50832 ≡ 84⋅84=7056 ≡ 585 mod 719
50881
= 50864+16+1
= 50864⋅50816⋅5081
≡ 585 ⋅ 186 ⋅ 508 mod 719
≡ 108810 ⋅ 508 mod 719 ≡ 241 ⋅ 508 mod 719
≡ 122428 mod 719 ≡ 198 mod 719
Es gilt also: 50881 ≡ 198 mod 719
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-83-Inverse zur Zahl 80.
Also bestimme x, so dass 80 ⋅ x ≡ 1 mod 83 gilt:
Berechnung des größten gemeinsamen Teilers von 83 und 80
| =>83 | = 1⋅80 + 3 |
| =>80 | = 26⋅3 + 2 |
| =>3 | = 1⋅2 + 1 |
| =>2 | = 2⋅1 + 0 |
also gilt: ggt(83,80)=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= 3-1⋅2 | |||
| 2= 80-26⋅3 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅3 -1⋅(80 -26⋅ 3)
= 1⋅3 -1⋅80 +26⋅ 3) = -1⋅80 +27⋅ 3 (=1) |
| 3= 83-1⋅80 | eingesetzt in die Zeile drüber: | 1 |
= -1⋅80 +27⋅(83 -1⋅ 80)
= -1⋅80 +27⋅83 -27⋅ 80) = 27⋅83 -28⋅ 80 (=1) |
Es gilt also: ggt(83,80)=1 = 27⋅83 -28⋅80
oder wenn man 27⋅83 auf die linke Seite bringt:
1 -27⋅83 = -28⋅80
-28⋅80 = -27⋅83 + 1 |+83⋅80
-28⋅80 + 83⋅80 = -27⋅83 + 83⋅80 + 1
(-28 + 83) ⋅ 80 = (-27 + 80) ⋅ 83 + 1
55⋅80 = 53⋅83 + 1
Es gilt also: 55⋅80 = 53⋅83 +1
Somit 55⋅80 = 1 mod 83
55 ist also das Inverse von 80 mod 83
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 41 und q = 67. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
