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: (39993 - 805) mod 8.
Um längere Rechnungen zu vermeiden, rechnen wir:
(39993 - 805) mod 8 ≡ (39993 mod 8 - 805 mod 8) mod 8.
39993 mod 8 ≡ 1 mod 8 kann man relativ leicht bestimmen, weil ja 39993
= 39000
805 mod 8 ≡ 5 mod 8 kann man relativ leicht bestimmen, weil ja 805
= 800
Somit gilt:
(39993 - 805) mod 8 ≡ (1 - 5) mod 8 ≡ -4 mod 8 ≡ 4 mod 8.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (33 ⋅ 100) mod 4.
Um längere Rechnungen zu vermeiden, rechnen wir:
(33 ⋅ 100) mod 4 ≡ (33 mod 4 ⋅ 100 mod 4) mod 4.
33 mod 4 ≡ 1 mod 4 kann man relativ leicht bestimmen, weil ja 33 = 32 + 1 = 8 ⋅ 4 + 1 ist.
100 mod 4 ≡ 0 mod 4 kann man relativ leicht bestimmen, weil ja 100 = 100 + 0 = 25 ⋅ 4 + 0 ist.
Somit gilt:
(33 ⋅ 100) mod 4 ≡ (1 ⋅ 0) mod 4 ≡ 0 mod 4.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 53316 mod 743.
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. 533 -> x
2. mod(x²,743) -> 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: 5331=533
2: 5332=5331+1=5331⋅5331 ≡ 533⋅533=284089 ≡ 263 mod 743
4: 5334=5332+2=5332⋅5332 ≡ 263⋅263=69169 ≡ 70 mod 743
8: 5338=5334+4=5334⋅5334 ≡ 70⋅70=4900 ≡ 442 mod 743
16: 53316=5338+8=5338⋅5338 ≡ 442⋅442=195364 ≡ 698 mod 743
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 50179 mod 827.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 79 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 79 an und zerlegen 79 in eine Summer von 2er-Potenzen:
79 = 64+8+4+2+1
1: 5011=501
2: 5012=5011+1=5011⋅5011 ≡ 501⋅501=251001 ≡ 420 mod 827
4: 5014=5012+2=5012⋅5012 ≡ 420⋅420=176400 ≡ 249 mod 827
8: 5018=5014+4=5014⋅5014 ≡ 249⋅249=62001 ≡ 803 mod 827
16: 50116=5018+8=5018⋅5018 ≡ 803⋅803=644809 ≡ 576 mod 827
32: 50132=50116+16=50116⋅50116 ≡ 576⋅576=331776 ≡ 149 mod 827
64: 50164=50132+32=50132⋅50132 ≡ 149⋅149=22201 ≡ 699 mod 827
50179
= 50164+8+4+2+1
= 50164⋅5018⋅5014⋅5012⋅5011
≡ 699 ⋅ 803 ⋅ 249 ⋅ 420 ⋅ 501 mod 827
≡ 561297 ⋅ 249 ⋅ 420 ⋅ 501 mod 827 ≡ 591 ⋅ 249 ⋅ 420 ⋅ 501 mod 827
≡ 147159 ⋅ 420 ⋅ 501 mod 827 ≡ 780 ⋅ 420 ⋅ 501 mod 827
≡ 327600 ⋅ 501 mod 827 ≡ 108 ⋅ 501 mod 827
≡ 54108 mod 827 ≡ 353 mod 827
Es gilt also: 50179 ≡ 353 mod 827
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-73-Inverse zur Zahl 68.
Also bestimme x, so dass 68 ⋅ x ≡ 1 mod 73 gilt:
Berechnung des größten gemeinsamen Teilers von 73 und 68
| =>73 | = 1⋅68 + 5 |
| =>68 | = 13⋅5 + 3 |
| =>5 | = 1⋅3 + 2 |
| =>3 | = 1⋅2 + 1 |
| =>2 | = 2⋅1 + 0 |
also gilt: ggt(73,68)=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= 5-1⋅3 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅3 -1⋅(5 -1⋅ 3)
= 1⋅3 -1⋅5 +1⋅ 3) = -1⋅5 +2⋅ 3 (=1) |
| 3= 68-13⋅5 | eingesetzt in die Zeile drüber: | 1 |
= -1⋅5 +2⋅(68 -13⋅ 5)
= -1⋅5 +2⋅68 -26⋅ 5) = 2⋅68 -27⋅ 5 (=1) |
| 5= 73-1⋅68 | eingesetzt in die Zeile drüber: | 1 |
= 2⋅68 -27⋅(73 -1⋅ 68)
= 2⋅68 -27⋅73 +27⋅ 68) = -27⋅73 +29⋅ 68 (=1) |
Es gilt also: ggt(73,68)=1 = -27⋅73 +29⋅68
oder wenn man -27⋅73 auf die linke Seite bringt:
1 +27⋅73 = +29⋅68
Es gilt also: 29⋅68 = 27⋅73 +1
Somit 29⋅68 = 1 mod 73
29 ist also das Inverse von 68 mod 73
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 31 und q = 73. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
