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: (14005 + 14000) mod 7.
Um längere Rechnungen zu vermeiden, rechnen wir:
(14005 + 14000) mod 7 ≡ (14005 mod 7 + 14000 mod 7) mod 7.
14005 mod 7 ≡ 5 mod 7 kann man relativ leicht bestimmen, weil ja 14005
= 14000
14000 mod 7 ≡ 0 mod 7 kann man relativ leicht bestimmen, weil ja 14000
= 14000
Somit gilt:
(14005 + 14000) mod 7 ≡ (5 + 0) mod 7 ≡ 5 mod 7.
Modulo multiplizieren
Beispiel:
Berechne ohne WTR: (90 ⋅ 32) mod 6.
Um längere Rechnungen zu vermeiden, rechnen wir:
(90 ⋅ 32) mod 6 ≡ (90 mod 6 ⋅ 32 mod 6) mod 6.
90 mod 6 ≡ 0 mod 6 kann man relativ leicht bestimmen, weil ja 90 = 90 + 0 = 15 ⋅ 6 + 0 ist.
32 mod 6 ≡ 2 mod 6 kann man relativ leicht bestimmen, weil ja 32 = 30 + 2 = 5 ⋅ 6 + 2 ist.
Somit gilt:
(90 ⋅ 32) mod 6 ≡ (0 ⋅ 2) mod 6 ≡ 0 mod 6.
modulo Potenzieren einfach
Beispiel:
Berechne möglichst geschickt: 17932 mod 347.
Die 32 im Exponent ist ja ein reine 2er-Potenz (25).
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. 179 -> x
2. mod(x²,347) -> 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: 1791=179
2: 1792=1791+1=1791⋅1791 ≡ 179⋅179=32041 ≡ 117 mod 347
4: 1794=1792+2=1792⋅1792 ≡ 117⋅117=13689 ≡ 156 mod 347
8: 1798=1794+4=1794⋅1794 ≡ 156⋅156=24336 ≡ 46 mod 347
16: 17916=1798+8=1798⋅1798 ≡ 46⋅46=2116 ≡ 34 mod 347
32: 17932=17916+16=17916⋅17916 ≡ 34⋅34=1156 ≡ 115 mod 347
modulo Potenzieren große Zahlen
Beispiel:
Berechne möglichst geschickt: 51887 mod 587.
Wir berechnen zuerst mal alle 2er-Potenzen, die kleiner sind 87 (grauer Kasten).
Dann schauen wir die Binärdarstellung von 87 an und zerlegen 87 in eine Summer von 2er-Potenzen:
87 = 64+16+4+2+1
1: 5181=518
2: 5182=5181+1=5181⋅5181 ≡ 518⋅518=268324 ≡ 65 mod 587
4: 5184=5182+2=5182⋅5182 ≡ 65⋅65=4225 ≡ 116 mod 587
8: 5188=5184+4=5184⋅5184 ≡ 116⋅116=13456 ≡ 542 mod 587
16: 51816=5188+8=5188⋅5188 ≡ 542⋅542=293764 ≡ 264 mod 587
32: 51832=51816+16=51816⋅51816 ≡ 264⋅264=69696 ≡ 430 mod 587
64: 51864=51832+32=51832⋅51832 ≡ 430⋅430=184900 ≡ 582 mod 587
51887
= 51864+16+4+2+1
= 51864⋅51816⋅5184⋅5182⋅5181
≡ 582 ⋅ 264 ⋅ 116 ⋅ 65 ⋅ 518 mod 587
≡ 153648 ⋅ 116 ⋅ 65 ⋅ 518 mod 587 ≡ 441 ⋅ 116 ⋅ 65 ⋅ 518 mod 587
≡ 51156 ⋅ 65 ⋅ 518 mod 587 ≡ 87 ⋅ 65 ⋅ 518 mod 587
≡ 5655 ⋅ 518 mod 587 ≡ 372 ⋅ 518 mod 587
≡ 192696 mod 587 ≡ 160 mod 587
Es gilt also: 51887 ≡ 160 mod 587
erweiterter Euklid'scher Algorithmus
Beispiel:
Berechne mit Hilfe des erweiterten Euklid'schen Algorithmus das Modulo-61-Inverse zur Zahl 26.
Also bestimme x, so dass 26 ⋅ x ≡ 1 mod 61 gilt:
Berechnung des größten gemeinsamen Teilers von 61 und 26
| =>61 | = 2⋅26 + 9 |
| =>26 | = 2⋅9 + 8 |
| =>9 | = 1⋅8 + 1 |
| =>8 | = 8⋅1 + 0 |
also gilt: ggt(61,26)=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= 9-1⋅8 | |||
| 8= 26-2⋅9 | eingesetzt in die Zeile drüber: | 1 |
= 1⋅9 -1⋅(26 -2⋅ 9)
= 1⋅9 -1⋅26 +2⋅ 9) = -1⋅26 +3⋅ 9 (=1) |
| 9= 61-2⋅26 | eingesetzt in die Zeile drüber: | 1 |
= -1⋅26 +3⋅(61 -2⋅ 26)
= -1⋅26 +3⋅61 -6⋅ 26) = 3⋅61 -7⋅ 26 (=1) |
Es gilt also: ggt(61,26)=1 = 3⋅61 -7⋅26
oder wenn man 3⋅61 auf die linke Seite bringt:
1 -3⋅61 = -7⋅26
-7⋅26 = -3⋅61 + 1 |+61⋅26
-7⋅26 + 61⋅26 = -3⋅61 + 61⋅26 + 1
(-7 + 61) ⋅ 26 = (-3 + 26) ⋅ 61 + 1
54⋅26 = 23⋅61 + 1
Es gilt also: 54⋅26 = 23⋅61 +1
Somit 54⋅26 = 1 mod 61
54 ist also das Inverse von 26 mod 61
Schlüsselpaar für RSA
Beispiel:
Berechne mit dem RSA-Verfahren ein Schlüsselpaar zu den beiden Primzahlen p = 97 und q = 101. Aus Sicherheitsgründen sollte der selbst gewählte geheime Schlüssel nicht zu klein sein, hier also mindestens 500.
