Kryptographie - math.uzh.ch · Nehmen wir weiter an, dass der Computer nur einen einzigen Zyklus...

21
Kryptographie F. Fontein, A.-L. Trautmann, U. Wagner 24. November 2012 Inhaltsverzeichnis 1 Einf¨ uhrung in die Kryptographie 1 2 Caesar-Chiffre 2 3 Substitutions-Chiffre 4 4 Vigenere-Verschl¨ usselung 6 5 Verschl¨ usseln ohne Schl¨ usselaustausch? 7 6 Modulorechnung 8 7 Modulorechnung etwas allgemeiner 9 8 Die S¨ atze von Fermat und Euler 10 9 Das RSA-Verfahren 12 10 Der Euklidische Algorithmus 16 11 Schnelles Potenzieren 20 1 Einf¨ uhrung in die Kryptographie Seitdem Menschen schreiben k¨ onnen, gibt es auch das Problem, dass Menschen Nachrichten verschicken wollen, ohne dass jemand anderes als der Empf¨ anger die Nachricht lesen kann. Aber wie kann man sicher sein, dass z.B. der Postbote den verschickten Brief nicht lesen kann? Eine M¨ oglichkeit ist, sich eine Geheimsprache auszudenken, die nur der Sender und der Empf¨ anger kennen. 1

Transcript of Kryptographie - math.uzh.ch · Nehmen wir weiter an, dass der Computer nur einen einzigen Zyklus...

Kryptographie

F. Fontein, A.-L. Trautmann, U. Wagner

24. November 2012

Inhaltsverzeichnis

1 Einfuhrung in die Kryptographie 1

2 Caesar-Chiffre 2

3 Substitutions-Chiffre 4

4 Vigenere-Verschlusselung 6

5 Verschlusseln ohne Schlusselaustausch? 7

6 Modulorechnung 8

7 Modulorechnung etwas allgemeiner 9

8 Die Satze von Fermat und Euler 10

9 Das RSA-Verfahren 12

10 Der Euklidische Algorithmus 16

11 Schnelles Potenzieren 20

1 Einfuhrung in die Kryptographie

Seitdem Menschen schreiben konnen, gibt es auch das Problem, dass MenschenNachrichten verschicken wollen, ohne dass jemand anderes als der Empfanger dieNachricht lesen kann. Aber wie kann man sicher sein, dass z. B. der Postbote denverschickten Brief nicht lesen kann? Eine Moglichkeit ist, sich eine Geheimspracheauszudenken, die nur der Sender und der Empfanger kennen.

1

Die Wissenschaft, die sich damit befasst, nennt man Kryptographie. DiesesWort ist aus den griechischen Wortern

krypto = geheim und graphie = Schreiben

zusammengesetzt; es geht also um die Kunst des geheimen Schreibens. Das Prin-zip eines Kryptosystems ist folgendermassen: Der Schreiber nimmt seine Nachricht(wir nennen das den

”Klartext“) und schreibt sie in einer Geheimsprache auf.

Das nennt man auch eine Nachricht verschlusseln oder chiffrieren. Der Empfangererhalt nun diesen Geheimtext und wendet einen Schlussel an, um aus dem Ge-heimtext wieder den Klartext zu erhalten. Nehmen wir z. B. folgenden Schlusselzum Chiffrieren:

Klar A B C D E F G H I J K L M

Geheim 1 2 3 4 5 6 7 8 9 10 11 12 13

Klar N O P Q R S T U V W X Y Z

Geheim 14 15 16 17 18 19 20 21 22 23 24 25 26

Wenn also der Schreiber den Klartext”Treffen um eins“ schicken will, schreibt er

”20 18 5 6 6 5 14 — 21 13 — 5 9 14 19“. Ein

”—“ steht hierbei fur ein Leerzeichen,

um die einzelnen Worter abzutrennen. Der Empfanger hat den gleichen Schlusselund kann damit die Nachricht entschlusseln.

Aufgabe 1.

Entschlussle den Geheimtext”2 9 14 — 7 12 5 9 3 8 — 4 1“.

Nun ist dieses Kryptosystem ziemlich leicht fur andere Leute zu durchschauen,deshalb wollen wir uns nun mit etwas komplexeren Systemen beschaftigen.

2 Caesar-Chiffre

Schon Kaiser Caesar benutzte ein Kryptosystem um seine Nachrichten fur denFeind unleserlich zu machen. Es basierte auf einer Verschiebung des Alphabetsum eine gewisse Anzahl Stellen. Wird das Alphabet zum Beispiel um 5 Stellenverschoben, werden die Buchstaben wie folgt ersetzt:

a b c d e f g h i j k l m n o p q r s t u v w x y zF G H I J K L M N O P Q R S T U V W X Y Z A B C D E

Die Kleinbuchstaben stehen dabei fur den Klartext, die Grossbuchstaben fur denverschlusselten Text. So verschlusselt man zum Beispiel:

d i e s o nne s c h e i n tI NJ XTSSJ XHMJNSY

Dabei ist naturlich wichtig, dass der Empfanger weiss, um wieviel Stellen dasAlphabet verschoben wurde, damit er richtig entschlusseln kann. Genauso wichtigist aber auch, dass alle anderen den Schlussel nicht kennen, damit niemand sonstden Klartext lesen kann.

2

Aufgabe 2.

Schreibe den Schlussel fur eine Caesar-Chiffre, die das Alphabet um8 Stellen verschiebt, auf. Entschlussle dann den Geheimtext

”ACXMZ

AIKPM“.

Eine spezielle Art der Caesar-Chiffre ist die Verschiebung um 13 Stellen (dieswird auch

”Rot13“ genannt). Das Schone an dieser speziellen Verschlusselung ist,

dass wenn man den Text zweimal verschlusselt, wieder der originale Text hervor-kommt. Es ist klar, dass diese Verschlusselung nicht sicher ist, trotzdem wird siemanchmal benutzt, um zum Beispiel in Quizheften die Losung zu verschlusseln.Der Leser kann die Losung dann ohne grossen Aufwand anschauen, sobald er glaubtdas Quiz gelost zu haben. Im Folgenden werden wir die Losung zu einigen Aufga-ben auch jeweils mit Rot13 verschlusselt angeben. Damit du das nicht von Handmachen musst, kannst du Rot13 auf

http://www.math.uzh.ch/aa/schule/

benutzen. Geh auf die Seite und spiele ein bisschen mit Rot13. Wie du siehstwerden Zeichen, die nicht im 26 Buchstaben langen Standardalphabet vorkommen,ein zu eins verschlusselt. Es ist klar, dass dieses System einfach um weitere Zeichenerweitert werden konnte. In unserem Fall ist das aber nicht wichtig. Da in denLosungen auch Zahlen vorkommen konnen, verschlusseln wir diese separat. Dazuverschieben wir jede Ziffer um funf:

Klar 0 1 2 3 4 5 6 7 8 9

Geheim 5 6 7 8 9 0 1 2 3 4

Wir nehmen hier die Verschiebung um funf, damit auch bei den Zahlen zweimalin die gleiche Richtung verschieben das Original ergibt.

Wir geben nun die Losung zu obiger Aufgabe in Rot13:

Losung 2.

Qn rf ahe 70 Zbrtyvpuxrvgra tvog qnf Nycunorg mh irefpuvrora, xnaarva Natervsre nyyr 70 Zbrtyvpuxrvgra cebovrera ovf rva fvaaibyyre Grkgragfgrug.

Aufgabe 3.

Uberlege dir, wie man, selbst wenn man die Anzahl der Stellen, umdie verschoben wird, nicht kennt, trotzdem die Geheimnachricht ent-schlusseln kann. Finde den Klartext zum Geheimtext

”RCCV DVZEV

VEKTYVE JTYNZDDVE RLW UVD JVV“.

Losung 3.

Dre bree vzewrty rccv 71 Doxcztybvzkve ulitygifszvive.

3

Ein Kryptosystem zu knacken indem man alle Schlussel durchprobiert, nenntman eine

”brute-force“-Attacke. Wir wissen jetzt also, dass die Caesar-Chiffre nicht

sicher ist und wir noch bessere Verschlusselungstechniken finden mussen, die gegeneine brute-force-Attacke sicher sind.

3 Substitutions-Chiffre

Eine Verallgemeinerung der Caesar-Chiffre ist die Substitutions-Chiffre. Anstelledas Alphabet einfach um eine feste Anzahl Stellen zu verschieben, wird jedemBuchstaben ein anderer zugeordnet. Also zum Beispiel:

a b c d e f g h i j k l m n o p q r s t u v w x y zX L M I A Z W S J G B O V Y C H T D Q F N E U R K P

Damit wird unser Beispielsatz wie folgt verschlusselt:

d i e s o n n e s c h e i n tI JA QCYYA QMSAJYF

Wiederum kannst du auf der Seite http://www.math.uzh.ch/aa/schule/ damitrumspielen.

Aufgabe 4.

Wieviele verschiedene Schlussel sind moglich wenn wir nur die 26 Buch-staben des Standardalphabets durch Substitution verschlusseln?

Losung 4.

Jve unora 71 Ohpufgnora. Jve trura qre Ervur anpu. Shre ’n’ unora jve 71Zbrtyvpuxrvgra, shre ’o’ qnaa ahe abpu 70 hfj. Nyfb fvaq rf nz Fpuyhff71!-6, qn wrqre Ohpufgnor zvg fvpu fryore mh refrgmra nhftrfpuybffrajveq.

Wie du siehst, gibt es viele verschiedene Schlussel. Wir wollen nun berechnenob die Anzahl Schlussel ausreicht um gegen eine brute-force-Attacke resistent zusein. Dazu machen wir zuerst ein paar Uberlegungen, zu was heutige Computerfahig sind. Nehmen wir an, dass ein Computer einen 1-GHz-Pozessor hat. Dasbedeutet dass der Prozessor 1’000’000’000 = 109 Zyklen pro Sekunde durchlauft.Nehmen wir weiter an, dass der Computer nur einen einzigen Zyklus braucht umeinen Schlussel zu uberprufen.

Aufgabe 5.

Berechne, wieviele Schlussel dieser Computer ungefahr in einem Jahrprobieren kann.

Aufgabe 6.

Berechne, wie lange der Computer ungefahr braucht um alle Schlussel fur

den Substitution Cipher durchzuprobieren. Benutze dabei dass N ! ≈ Ne

N

wobei e ≈ 2.7.

4

Damit haben wir also gezeigt, dass ein brute-force-Angriff auf die Substitutions-Chiffre unmoglich ist. Trotzdem kann man auch diese Chiffre leicht knacken, wiewir jetzt sehen werden.

Aufgabe 7.

Nimm dir ein bisschen Zeit und uberlege dir, wieso das sein konnte. Alskleiner Tipp: Was wir schreiben ist nicht zufallig!

Wie du vielleicht herausgefunden hast, kommen in einem deutschen Text nichtalle Buchstaben gleich haufig vor. Hier eine Tabelle mit der Haufigkeit der Buch-staben in einem durchschnittlichen deutschsprachigen Text:

Buchstabe Haufigkeit Buchstabe Haufigkeit

a 6,51% n 9,78%

b 1,89% o 2,51%

c 3,06% p 0,29%

d 5,08% q 0,02%

e 17,40% r 7,00%

f 1,66% s 7,27%

g 3,01% t 6,15%

h 4,76% u 4,35%

i 7,55% v 0,67%

j 0,27% w 1,89%

k 1,21% x 0,03%

l 3,44% y 0,04%

m 2,53% z 1,13%

Aufgabe 8.

Geh auf http://www.math.uzh.ch/aa/schule/ und kopiere einen Text(z. B. einen Text aus einer Online-Zeitung) in das entsprechende Feld.Sind die Buchstabenhaufigkeiten so verteilt, wie in der obigen Tabelleangegeben? Probiere verschiedene Texte aus.

Daraus kann man schliessen, dass der Buchstabe, der in einem Geheimtext amhaufigsten vorkommt, mit grosser Wahrscheinlichkeit den Klartextbuchstaben

”e“

darstellt usw. Ausserdem kann man noch folgende Tricks gebrauchen:

• Nach einem”c“ kommt wahrscheinlich ein

”h“ oder ein

”k“.

• Nach”sc“ kommt wahrscheinlich ein

”h“.

• Es gibt nur wenige Worter, die zwei Buchstaben haben, z. B.”in, im, an, am,

um“.

5

• Jedes Wort hat mindestens einen Vokal.

Schwieriger wird es dabei, wenn alle Leer- und Sonderzeichen aus dem Text ent-fernt wurden. Dann kann man z. B. die beiden letzten Punkte nicht mehr benutzen.In folgender Aufgabe werden die Sonderzeichen ignoriert, die Leerzeichen zur Ver-einfachung der Aufgabe aber beibehalten.

Aufgabe 9.

Probiere nun folgenden Text zu entschlusseln:CID JGKJGX CID LZGNIDRIZN ZBN ZG CID BHOLIZR

QWG BHOGIIKJFF MIXFIZNIN LWDCIG CZIBID OZIFNJSK CID JFYIGGWDCBIZNI LJIODIGC CID XJGRIG GJHONJSK OISNI MZB ZG CZI GZICIDSGXIG JG LZI PINIWGILB

OISNI PWDXIG PZNNIZFNIKopiere den Text dazu in das Feld http://www.math.uzh.ch/aa/schule/

und versuche, mit der Haufigkeitsanalyse und anderen Tricks den Klarextzu finden.Tipp: Das Wort

”Schnee“ kommt im Text vor.

Losung 9.

QRE NASNAT QRE JVAGREMRVG VFG VA QRE FPUJRVM IBAFPUARRSNYY ORTYRVGRG JBEQRA QVRFRE UVRYG NHS QRENYCRAABEQFRVGR JNRUERAQ QRE TNAMRA ANPUG NHS UR-HGR OVF VA QVR AVRQREHATRA NA JVR ZRGRBARJF URHGRZBETRA ZVGGRVYGR.

4 Vigenere-Verschlusselung

Der Hauptgrund fur die Schwache der Substitution-Chiffre ist, dass derselbe Buch-stabe im Klartext auch immer derselbe Buchstabe im verschlusselten Text ist.Es handelt sich um eine sogenannt ’mono-alphabetische Substitution’. Eine poly-alphabetische Substitution umgeht dieses Problem.

Aufgabe 10.

Lies den entsprechenden Artikel auf Wikipedia durch:http://de.wikipedia.org/wiki/Polyalphabetische_Substitution.

Aufgabe 11.

Dechiffriere die Geheimnachricht”Fuabeey iol wss Hhhsnnss“ mit dem

Schlussel”Autobahn“ in der normalen Vigenere-Verschlusselung.

Losung 11.

Snuaqre ibe qre Unhfghre.

6

5 Verschlusseln ohne Schlusselaustausch?

Stell dir vor, du hast einen Brieffreund in Australien. Du mochtest ihm nun etwasGeheimes schreiben, was niemand anders wissen soll – weder deine Eltern, die denBrief zur Post bringen, noch der Postbote, noch die Eltern von deinem Brieffreund,die den Brief entgegennehmen und deinem Brieffreund geben. Wir haben bereitsgesehen, wie man das machen kann wenn man vorher einen geheimen

”Schlussel“

austauscht.Aber was, wenn ihr das nicht einfach machen konnt? Da Australien nicht gera-

de um die Ecke liegt, hattet ihr vielleicht nie eine Gelegenheit, eurem Brieffreundetwas zukommen zu lassen mit der Gewissheit, dass wirklich niemand zwischen-durch – seien es Eltern oder Postboten – diese Information abfangen konnte.

Es gibt jedoch eine Moglichkeit, wie man trotzdem etwas geheimes austauschenkann:

1. Du nimmst ein Schloss, zu welchem nur du einen Schlussel hast. Du legst diegeheime Nachricht in eine Kiste und verschliesst diese mit deinem Schlossso, dass niemand sie offnen kann ohne sie zu zerstoren.

2. Dann schickst du die Kiste per Post an deinen Brieffreund.

3. Dein Brieffreund kann die Kiste nicht offnen – dein Schloss ist ja dran –,aber er kann die Kiste nochmal abschliessen mit seinem eigenen Schloss, zudem nur er einen Schlussel hat.

4. Die nun doppelt abgeschlossene Kiste schickt er per Post an dich zuruck.

5. Du schliesst nun dein Schloss mit deinem Schlussel auf. Sein Schloss ist immernoch an der Kiste, womit diese weiterhin verschlossen ist.

6. Nun schickst du die Kiste per Post zuruck an den Brieffreund.

7. Dieser offnet nun sein Schloss mit seinem Schlussel und kann die Kisteschliesslich offnen.

Aufgabe 12.

Uberlege dir, warum dies funktioniert.

Aufgabe 13.

Uberlege dir, wie der neugierige Postbote trotzdem den Inhalt der Kistesehen kann, ohne dass ihr etwas bemerkt.

Wir wollen spater das RSA-Verfahren vorstellen. Es war das erste Verfahren,welches eine Verschlusselung ohne vorherigen Austausch eines geheimen Schlusselsermoglicht. Um das Verfahren zu beschreiben, benotigen wir jedoch etwas mehrMathematik. Wir werden im Folgenden Modulo-Rechnung beschreiben (Abschnit-te 6 und 7) und anschliessend zwei Satze aus der Zahlentheorie (Abschnitt 8). Da-mit konnen wir dann das RSA-Verfahren beschreiben und erklaren (Abschnitt 9).Um das RSA-Verfahren besser anwenden zu konnen, werden wir danach in zweiweiteren Abschnitten (10 und 11) zwei weitere mathematische

”Tricks“ untersu-

chen.

7

6 Modulorechnung

Wenn es 15 Uhr ist und man drei Stunden wartet, so ist es 15 + 3 = 18 Uhr. Wennes jedoch 23 Uhr ist und man drei Stunden wartet, sagt man zur Uhrzeit nicht23 + 3 = 26 Uhr, sondern 2 Uhr: man zieht 24 ab, um eine Stundenzahl zwischen0 und 23 zu bekommen.

Wenn es wieder 15 Uhr ist und man wartet zehn mal 13 Stunden, wie spat istes dann? Dazu rechnet man 15 + 10 · 13 = 145; wieder ist 145 viel zu gross. Umdie Uhrzeit zu bestimmen, zieht man solange 24 von 145 ab, bis man eine Zahlzwischen 0 und 23 erhalt: 145−24 = 121, 121−24 = 97, 97−24 = 73, 73−24 = 49,49 − 24 = 25, 25 − 24 = 1. Die gesuchte Uhrzeit ist also 1 Uhr morgens. Da wirsechsmal 24 subtrahiert haben, sind also 6 Tage vergangen. Man kann dies auchso ausdrucken:

145 = 6 · 24 + 1.

Aufgabe 14.

Wenn ich acht mal 15 Stunden warte und es vorher 13 Uhr ist, wie spatist es dann?

Wenn man mit Stunden rechnet, so kann man zu zwei Stundenzahlen x und ytesten ob sie die gleiche Uhrzeit beschreiben (eventuell an verschiedenen Tagen),indem man schaut, ob ihre Differenz ein Vielfaches von 24 ist. Falls sie die gleicheUhrzeit beschreiben, so schreiben wir x ≡ y (mod 24).

Dieses Symbol”≡“ verhalt sich nun ahnlich wie das Gleichheitszeichen. Wie

oben haben wir 26 ≡ 2 (mod 24). Wenn man nun elf mal 26 Stunden wartet,sind das 286 Stunden. Wartet man dagegen elf mal zwei Stunden, so sind dies22 Stunden. Nun gilt 286−22 = 264 = 24·11. Ob man also elf mal 2 Stunden wartetoder elf mal 26 Stunden, die Uhrzeit zum Zielpunkt ist beide Male identisch, nurdas man bei elf mal 26 Stunden noch elf weitere Tage wartet. Formal ausgedruckt:es ist 11 · 26 ≡ 11 · 2 (mod 24). Anstelle 11 hatten wir jede andere ganze Zahlverwenden konnen.

Dies kann man allerdings auch noch weiter treiben. Etwa gilt 11 ≡ 35 (mod 24),und wenn man 11 · 26 = 286 und 35 · 2 = 70 berechnet, so sieht man, dass derenDifferenz 286 − 70 = 216 = 9 · 24 ebenfalls durch 24 teilbar ist. Es gilt also auch11 · 26 ≡ 35 · 2 (mod 24).

Aufgabe 15.

Versuche formal zu zeigen: gilt x ≡ y (mod 24) und a ≡ b (mod 24), sogilt auch xa ≡ yb (mod 24).

Hinweis: schreibe yb − xa als Vielfaches von 24. Hierbei kannst duverwenden, dass y−x und b−a Vielfache von 24 sind, etwa y−x = 24 ·Cund b− a = 24 ·D mit ganzen Zahlen C und D.

Dies gilt allgemeiner und kann sehr praktisch sein: mochte man z. B. wissen, wiespat es ist, wenn man 123 mal 49 Stunden wartet, und es jetzt gerade 15 Uhr ist, sokann man wie folgt vorgehen. Es ist 123−5 ·24 = 123−120 = 3 und 49 = 2 ·24+1,womit 123 ≡ 3 (mod 24) und 49 ≡ 1 (mod 24) ist. Nun wissen wir 123 · 49 ≡ 3 · 1

8

(mod 24), womit die Stundenzahl bei 123× 49 Stunden sich um genau 3 Stundenvorschiebt. Nach 123 mal 49 Stunden warten ist es also 15 + 3 = 18 Uhr.

Hatten wir direkter gerechnet, also zuerst 123 · 49 ausgerechnet und dann eineDivision mit Rest durch 24 gemacht, um die Anzahl der Tage und Stunden zubestimmen, hatten wir mit grosseren Zahlen rechnen mussen. Was ohne Taschen-rechner etwas muhsam ist.

Aufgabe 16.

Wenn es jetzt 13 Uhr ist und wir 24005 mal 35 Stunden warten, wie spatist es dann?

7 Modulorechnung etwas allgemeiner

Wenn n eine positive naturliche Zahl ist, haben wir folgende Rechenregeln furunser Symbol ≡ (mod n):

Seien a, b, c, d ganze Zahlen mit a ≡ b (mod n) und c ≡ d (mod n), so ist auch

1. a + c ≡ b + d (mod n) und

2. a · c ≡ b · d (mod n).

Weiterhin gilt ac ≡ bc (mod n). Allerdings gilt nicht unbedingt ac ≡ bd (mod n)!

Aufgabe 17.

Finde ein Gegenbeispiel: Sei n = 3. Dann gilt 1 ≡ 4 (mod 3). Suche nuneine ganze Zahl a mit a1 6≡ a4 (mod 3).

Wir werden spater noch eine wichtige Eigenschaft der Modulorechnung benotigen:wenn wir zwei ganze Zahlen a, b haben mit 0 ≤ a, b < n und a ≡ b (mod n), dannmuss bereits a = b sein.

Aufgabe 18.

Begrunde, warum dies so ist.

Abschliessend noch ein kleiner Hinweis: die Verfahren aus den ersten Abschnit-ten, namlich der Caesar-Cipher und die Vigenere-Verschlusselung, lassen sich ameinfachsten mit der Modulo-Rechnung darstellen:

• Bei der Caesar-Verschlusselung interpretiert man die Buchstaben von A bisZ als Zahlen 0 bis 25, und addiert beim Verschlusseln zu jedem Buchstabeneinen Wert und rechnet modulo 26. Beim Entschlusseln wird dieser Wertabgezogen und wieder modulo 26 gerechnet.

• Bei der Vigenere-Verschlusselung fasst man den Klartext sowie das PasswortZeichen fur Zeichen als Zahl modulo 26 auf und addiert diese modulo 26zusammen.

9

8 Die Satze von Fermat und Euler

Der franzosische Mathematiker Pierre de Fermat1 hat folgendes herausgefunden:

Satz (von Fermat).

Ist p eine Primzahl und a eine ganze Zahl, so ist p immer ein Teiler vonap − a.

Mit unserer Modulo-Schreibweise kann man dies als ap ≡ a (mod p) schreiben.

Aufgabe 19.

Begrunde im Fall p = 2, warum dies so ist.

Dies hat eine interessante Konsequenz. Erinnert ihr euch noch, dass fur ganzeZahlen a, b, c, d mit a ≡ b (mod n) und c ≡ d (mod n) nicht umbedingt ac ≡ bd

(mod n) gilt?Ist nun n = p eine Primzahl und gilt a ≡ b (mod p) und c ≡ d (mod p − 1),

so gilt ac ≡ bd (mod p)!Aber was, wenn n keine Primzahl ist? Eine allgemeine Losung dieses Problems

geht auf den schweizerischen Mathematiker Leonhard Euler2 zuruck. Wir wollendie Losung hier nur in einem Spezialfall anschauen, und zwar wenn n das Produktzweier verschiedener Primzahlen ist, etwa n = 3 · 5 = 15. Dann gilt namlicha(3−1)·(5−1)+1 ≡ a (mod 3 · 5).

Weiterhin gilt: aus a ≡ b (mod 15) und c ≡ d (mod (3−1) · (5−1)), also c ≡ d(mod 8), folgt ac ≡ bd (mod 15).

Es ist kein Zufall, dass wir a(3−1)·(5−1)+1 geschrieben haben bzw. c ≡ d (mod (3−1) · (5−1)), und nicht direkt a8+1, c ≡ d (mod 8) oder a9. Die Zahl (3−1) · (5−1)hat eine spezielle Bedeutung in Bezug auf 15 = 3 · 5:

Aufgabe 20.

Prufe nach, dass es genau 8 = (3 − 1) · (5 − 1) ganze Zahlen x mit0 ≤ x < 15 gibt, die zu 15 teilerfremd sind.

Um diesen Zusammenhang zu verstehen, muss man etwas in die Gruppentheoriegehen. Wir wollen dies heute nicht weiter vertiefen.

1Fermat lebte Anfang des 17. Jahrhunderts und war Mathematiker und Jurist. Er hat durchKorrespondenz mit anderen Mathematikern diesen ofter Probleme vorgestellt, die er bereitsangeblich gelost hatte und diese dazu angetrieben, die Probleme selber zu losen. In einigen Fallenkannte Fermat die Losung selber nicht. Das beste Beispiel ist der sogenannte ”letzte/grosse Satzvon Fermat“: fur n ≥ 3 hat die Gleichung xn + yn = zn keine ganzzahligen Losungen mitx · y · z 6= 0. Der erste korrekte Beweis wurde 1994 vom englischen Mathematiker AndrewWiles vorgestellt und ist extrem kompliziert. Fermat selber hatte die Behauptung an den Randin einem Buch gekritzelt mit der Bemerkung ”Ich habe hierfur einen wahrhaft wunderbarenBeweis gefunden, doch ist der Rand hier zu schmal, um ihn zu fassen.“ Vermutlich hatte Fermatentweder einen fehlerhaften Beweis oder hochstens einen Beweis fur spezielle Werte von n. Derhier vorgestellte Satz von Fermat ist auch als ”kleiner Satz von Fermat“ bekannt.

2Euler lebte Anfang des 18. Jahrhunderts und gehorte neben Carl Friedrich Gauß zu den be-deutesten Mathematikern uberhaupt. Der erste uberlieferte Beweis des obigen Satzes von Fermatstammt von Euler.

10

Fur das Produkt zweier verschiedener Zahlen gilt der Satz von Euler:

Satz (von Euler).

Sind p und q zwei verschiedene Primzahlen, und ist a eine beliebige ganzeZahl, so gilt

a1+(p−1)·(q−1) ≡ a (mod p · q).

Auch die Aussage aus der letzten Aufgabe kann man verallgemeinern:

Aufgabe 21.

Versuche dies allgemein zu zeigen: sind p und q zwei verschiedene Prim-zahlen, so gibt es genau (p− 1) · (q − 1) Zahlen x mit 0 ≤ x < p · q, dieteilerfremd zu p · q sind.

Hinweis: Du kannst folgendes verwenden: ist eine Zahl n durch zweiandere Zahlen a und b teilbar, die beide teilerfremd zueinander sind, soist n auch durch das Produkt a · b teilbar. (Vergewissere dich, dass esohne die Teilerfremdheit nicht funktioniert.)

Hinweis: Zahle die Zahlen x mit 0 ≤ x < p ·q, welche (a) durch p teilbarsind, (b) durch q teilbar sind, und (c) durch p und q teilbar sind. Damitkannst du die Anzahl der solchigen Zahlen bestimmen, die weder durchp noch durch q teilbar sind.

Damit es zu einer Zahl N so ein n > 1 gibt mit an ≡ a (mod N) fur alleganzen Zahlen a benotigt man, dass N quadratfrei ist. Dies bedeutet, dass in derPrimfaktorzerlegung von N keine Primzahl mehr als einmal vorkommt. Die Zahlen3, 6, 10, 15 sind etwa quadratfrei, wahrend 4, 12 und 16 nicht quadratfrei sind: esist 4 = 22, 12 = 22 · 3 und 16 = 24. In jeder dieser Primfaktorzerlegungen kommtder Faktor 2 mehr als einmal vor.

Man kann nun zeigen, dass es zu jedem quadratfreien N immer so ein n > 1gibt, und zu jedem nicht quadratfreien N es nie so ein n > 1 gibt. Im einfachsenFall N = 4 konnt ihr selber versuchen zu zeigen, dass es kein solches n > 1 gibt:

Aufgabe 22.

Sei p = q = 2. Finde eine Zahl a, so dass an ≡ a (mod 4) fur kein n > 1gilt.

Wir wollen nun den Satz von Euler von oben fur Produkte zweier verschiedenerPrimzahlen etwas verallgemeinern. Seien p und q zwei verschiedene Primzahlen.Der Satz von Euler besagt, dass dann fur jede ganze Zahl a gilt

a1+(p−1)·(q−1) ≡ a (mod p · q).

Daa1+(p−1)·(q−1) = a · a(p−1)·(q−1)

11

ist, bedeutet dies also, dass man a mit a(p−1)·(q−1) multiplizieren kann, ohne etwasan dem Rest von a bei Division durch p · q zu andern. Wir konnen es also auchmehrmals multiplizieren: so gilt

a1+2·(p−1)·(q−1) = (a · a(p−1)·(q−1)) · a(p−1)·(q−1)

≡ a · a(p−1)·(q−1) ≡ a (mod p · q)

und genauso

a ≡ a1+3·(p−1)·(q−1) ≡ a1+4·(p−1)·(q−1) ≡ · · · ≡ a1+k·(p−1)·(q−1) (mod p · q)

fur jede ganze Zahl k > 0.Wir werden spater (in Abschnitt 11) sehen, wie man hohe Potenzen von einer

Zahl modulo einer anderen schnell ausrechnen kann.Nun haben wir das Rustzeug um eines der bekanntesten modernen Kryptosys-

temen zu besprechen. Es handelt sich dabei um das RSA-Verfahren.

9 Das RSA-Verfahren

Ein sehr bedeutenes Verfahren aus der Kryptographie ist das RSA-Verfahren. Eswurde 1977 von den drei Mathematikern Ronald L. Rivest, Adi Shamir und Leo-nard Adleman entdeckt und beschrieben.3 Es ist eins der Systeme, die wir unbe-wusst im taglichen Leben verwenden, wenn wir im Internet unterwegs sind.

Wir konnen nun erklaren, wie das RSA-Verfahren funktioniert. Eine schemati-sche Darstellung findet sich weiter unten in einem Kasten.

Dazu nimmt man sich zwei verschiedene Primzahlen, nennen wir sie p und q.Mit N sei das Produkt p · q bezeichnet. Die Daten, die verschlusselt werden, sowiedie verschlusselten Daten sind jeweils ganze Zahlen x mit 0 ≤ x < N .

Neben N = p · q benotigen wir noch zwei weitere positive ganze Zahlen e undd. Diese sollen

e · d ≡ 1 (mod (p− 1) · (q − 1))

erfullen. Dies bedeutet, dass e ·d−1 ein Vielfaches von (p−1) · (q−1) ist; sei etwae · d− 1 = k · (p− 1) · (q − 1). Wenn ihr weiter oben beim Ende von Abschnitt 8nachschaut seht ihr, dass dann a1+k·(p−1)·(q−1) ≡ a (mod N) fur alle ganzen Zahlena und alle ganzen positiven Zahlen k gilt. Daraus folgt

(ae)d = aed = a1+k·(p−1)·(q−1) ≡ a (mod N).

Wir skizzieren das Verfahren anhand zweier Personen, genannt Alice und Bob.Alice findet solche Primzahlen p und q sowie die dazugehorigen Zahlen e und

d. Sie berechnet N = p · q und veroffentlicht das Produkt N sowie die Zahl e. DieZahlen p, q und d behalt sie fur sich.

Als Beispiel nehmen wir p = 3 und q = 5; dann ist N = 15.Wenn p und q grosse Zahlen sind ist N ebenfalls gross, und es ist sehr schwer,

die Primfaktorzerlegung (und damit p, q, oder auch (p−1) ·(q−1)) zu bestimmen.

3Erst spater wurde bekannt, dass das Verfahren bereits 1973 dem britischen GeheimdienstGCHQ bekannt war. Es wurde dort von Clifford Cocks entdeckt. Jedoch durfte er es nichtveroffentlichen, und bis 1998 galt diese Entdeckung als ”top secret“. Erst dann wurde diesVeroffentlicht.

12

Damit weiss niemand ausser Alice, wie p und q und (p− 1) · (q− 1) aussehen, undwelche Bedingung die geheime Zahl d, die Alice kennt, uberhaupt erfullen soll.

Um das Beispiel fortzufuhren, konnen wir e = d = 3 nehmen. Dann ist e · d =9 ≡ 1 (mod (3− 2) · (5− 1)), da (3− 2) · (5− 1) = 8 ist.

Aufgabe 23.

Uberlege dir, warum man p und q einfach direkt bestimmen kann, wennman das Produkt N = p · q sowie das Produkt P := (p − 1) · (q − 1)kennt.Hier bedeutet

”einfach“, dass man dies mit einem Taschenrechner ma-

chen kann, ohne eine Zahl in Primfaktoren zu zerlegen.

Wenn Bob Alice nun eine Nachricht schicken mochte, stellt er die Nachrichtzuerst als ganze Zahl x mit 0 ≤ x < N dar. Da er N kennt (die Zahlen N und ekonnen in einem offentlichen Verzeichnis stehen, ahnlich den weissen Seiten), kanner dies problemlos machen. Dann berechnet er xe (mod N). Dies ist wieder eineZahl, nennen wir sie y, mit 0 ≤ y < N . Diese Zahl schreibt er nun z. B. auf einePostkarte und schickt diese an Alice.

Hat Bob etwa x = 7 gewahlt, so ist xe = 73 = 7 · 7 · 7 = 49 · 7 ≡ 4 · 7 = 28 ≡ 13(mod 15). Damit verschickt Bob die Nachricht y = 13 per Postkarte.

Aufgabe 24.

Wenn x = 3 ist, was ist dann y?

Alice nimmt diese Zahl y und berechnet yd (mod N). Diese Zahl, nennen wirsie m, erfullt wieder 0 ≤ m < N . Weiterhin ist

m ≡ yd ≡ (xe)d ≡ x (mod N),

wobei (xe)d ≡ x (mod N) wie oben gilt – dort stand a anstelle x. Damit gilt m ≡ x(mod N). Da m und x beide Zahlen zwischen 0 und N sind, und bei Division durchN den gleichen Rest lassen, mussen sie aber gleich sein (vergleiche Aufgabe 18):es ist also m = x und somit kennt Alice den Wert x von Bob!

In unserem Beispiel ist

m ≡ yd = 133 = 13 · 13 · 13 = 169 · 13 ≡ 4 · 13 = 52 ≡ 7 (mod 15),

womit m = 7 = x ist.

Aufgabe 25.

Sei y der Wert aus der letzten Aufgabe (mit x = 3). Zeige, dass m = 3ist.

Das RSA-Verfahren

Schlusselerzeugung:

13

1. Alice wahlt zwei verschiedene grosse Primzahlen p und q.

2. Alice wahlt eine zufallige ganze Zahl e mit 0 < e < (p− 1) · (q− 1),die teilerfremd zu (p− 1) · (q − 1) ist.

3. Alice findet eine ganze Zahl d mit 0 < d < (p− 1) · (q − 1), welched · e ≡ 1 (mod (p− 1) · (q − 1)) erfullt.

4. Alice veroffentlicht das Paar (N, e) mit N = p · q, und behalt dieZahlen p, q und d fur sich.

Verschlusseln:

1. Bob will eine ganze Zahl x mit 0 ≤ x < N verschlusseln.

2. Er berechnet xe modulo N .

3. Das Ergebnis, eine Zahl y mit 0 ≤ y < N , schickt er an Alice.

Entschlusseln:

1. Alice nimmt die Zahl y von Bob.

2. Alice berechnet yd modulo N .

3. Das Ergebnis, eine Zahl m mit 0 ≤ x < N , ist dann gleich der Zahlx von Bob.

Wenn irgendwer – etwa der Postbote – die Zahl y von der Postkarte abliest,so kennt er zwar N , e und y, aber nicht d und kann somit nicht m (und damit x)berechnen. Er kann die Nachricht von Bob also nicht lesen. Alice ist die einzige,die dies kann.

In unseren Beispiel kann jeder schnell 15 in Primfaktoren zerlegen: da 15 = 3 ·5ist, ist (3 − 1) · (5 − 1) = 8 und somit kann man zu e = 3 schnell d = 3 findenmit e · d ≡ 1 (mod 8). Wenn man jedoch grossere Zahlen verwendet, ist dies nichtmehr so einfach moglich.

In der Praxis verwendet man fur p und q Primzahlen mit 2512 < p, q < 2513,womit 21024 < N < 21025 gilt. Die Zahl 21024 ist ausgeschrieben 309 Dezimalstellenlang:

179’769’313’486’231’590’772’930’519’078’902’473’361’797’697’894’230’657’

273’430’081’157’732’675’805’500’963’132’708’477’322’407’536’021’120’113’

879’871’393’357’658’789’768’814’416’622’492’847’430’639’474’124’377’767’

893’424’865’485’276’302’219’601’246’094’119’453’082’952’085’005’768’838’

150’682’342’462’881’473’913’110’540’827’237’163’350’510’684’586’298’239’

947’245’938’479’716’304’835’356’329’624’224’137’216.

(Dies ist eine Zahl, die wir auf sechs Zeilen aufteilen mussten, um sie nicht unles-bar klein zu schreiben.) Mit solch grossen Zahlen hat man als Mensch ziemlicheMuhe, und auch mit den meisten Taschenrechnern kommt man nicht sehr weit,da Taschenrechner meist nur mit einer festen und vergleichsweise kleinen AnzahlDezimalziffern arbeiten konnen. Computer jedoch konnen mit solchen Zahlen rechtmuhelos umgehen, sprich sie multiplizieren, addieren, subtrahieren und mit Restdividieren. Wir werden in Abschnitt 11 ein Verfahren kennenlernen, mit dem ein

14

Computer damit auch schnell hohe Potenzen einer Zahl modulo einer anderenausrechnen kann.

Um das Verfahren nun in der Praxis umzusetzen, fehlen nur noch zwei Schritte:

• Wie findet man grosse Primzahlen p und q?

• Wenn man p und q hat, wie findet man dann entsprechende e und d?

Das finden von so grossen Primzahlen ist recht einfach: man nimmt einfach einepassend grosse ungerade Zahl und schaut, ob sie eine Primzahl ist. Wenn nicht,addiert man zwei hinzu und schaut nochmal nach. Man wiederholt dies so lange,bis man eine Primzahl gefunden hat.

Dies hort sich recht umstandlich an. Jedoch ist es so, dass man meist nichtlange probieren muss. Ein wichtiges Resultat aus der Zahlentheorie ist, dass eszwischen 1 und n ungefahr n

log nviele Primzahlen gibt (dies besagt der sogenannte

Primzahlsatz). Dies bedeutet, dass man von einer Zahl n im Durchschnitt nur log nZahlen der Reihe nach durchprobieren muss, um eine Primzahl zu finden. Da derLogarithmus einer grossen Zahl recht klein ist, muss man meist nicht oft probieren:es ist zum Beispiel

log 2512 = 512 · log 2 ≈ 355,

womit man nur ein paar hundert Zahlen probieren muss. Das ist von Hand sehrmuhsam (wie uberhaupt das Behandeln von so grossen Zahlen), jedoch fur einenComputer kein grosses Problem.

Dann muss man naturlich auch noch wissen, wie man bei einer solchen grossenZahl schnell uberprufen kann, ob es sich wirklich um eine Primzahl handelt. Wirwollen das hier nicht vertiefen sondern nur erwahnen, dass dies tatsachlich sehrschnell geht. Testen, ob eine Zahl eine Primzahl ist, ist viel einfacher als eineZahl in seine Primfaktoren zu zerlegen! Auch wenn es bei kleinen Zahlen ahnlichschwer (oder leicht, bei sehr kleinen Zahlen) erscheint, so ist es bei grossen Zahlentatsachlich viel leichter.

Aufgabe 26.

Wieviele Primzahlen gibt es in etwa zwischen 1000 und 2000?

Hinweis: log 1000 ≈ 6.9 und log 2000 ≈ 7.6

Nun angenommen wir haben p und q und somit N = p ·q bestimmt. Wie findenwir nun e und d?

Hierfur wahlen wir eine der Zahlen zufallig – etwa e – und bestimmen einpassendes d. Man kann zeigen, dass es ein solches d genau dann gibt, wenn e und(p− 1) · (q− 1) teilerfremd sind. Dies testen und d berechnen, falls sie teilerfremdsind, kann man mit dem Euklidischen Algorithmus sehr effizient. Wir werden diesin Abschnitt 10 genauer untersuchen. Bei kleinen Zahlenbeispielen wie N = 3 ·5 =15 und somit (p − 1) · (q − 1) = 8 kann man einfach alle Zahlen d = 0, 1, 2, . . . , 7durchprobieren.

Aufgabe 27.

Versuche zu p = 7 und q = 13 ein passendes Paar (e, d) zu finden.

15

10 Der Euklidische Algorithmus

Hat man zwei ganze Zahlen, zum Beispiel 18 und 60, so kann man den grosstengemeinsamen Teiler (ggT) von 18 und 60 etwa durch die Primfaktorzerlegungbestimmen:

18 = 21 · 32 · 50, 60 = 22 · 31 · 51

und damit ist der grosste gemeinsame Teiler gleich 21 ·31 ·50: der Exponent von 2 istdas Minimum aus 1 und 2, der Exponent von 3 ist das Minimum aus 2 und 1, undder Exponent von 5 ist das Minimum aus 0 und 1. Damit ist ggT(12, 18) = 2·3 = 6.

Aber was jetzt, wenn wir den grossten gemeinsamen Teiler

ggT(123456789, 543212345)

bestimmen wollen? Wir konnen naturlich versuchen, zuerst eine Primfaktorzerle-gung zu bestimmen. Man kann noch recht einfach

123456789 = 3 · 41152263 = 32 · 13717421

bestimmen, aber wie kann man 13717421 weiter zerlegen? Und es ist

543212345 = 5 · 108642469 = 5 · 13 · 8357113,

aber weiter kommt man auch nicht so einfach.Nun hat der Mathematiker Euklid vor langer Zeit herausgefunden, wie man

ganz einfach den grossten gemeinsamen Teiler von zwei solch grossen Zahlen be-stimmen kann, ohne ihre Primfaktorzerlegung zu kennen. Ihm ist namlich auf-gefallen, dass ggT(a, b) = ggT(a − b, b) = ggT(a, b − a) ist. Wenn man im-mer die grossere Zahl von der kleineren abzieht, werden die Zahlen irgendwannso klein, dass man den grossten gemeinsamen Teiler ablesen kann. Damit istggT(a, b) = ggT(a, b − a) = ggT(a, b − 2 · a) = · · · = ggT(a, b − c · a) fur jedenaturliche Zahl c. Jetzt kann man wieder mit Divison mit Rest arbeiten: damitb−c ·a moglichst klein werden soll, sollte b−c ·a der Rest von b bei Division durch

16

a sein.

ggT(123456789, 543212345)

= ggT(123456789, 543212345− 4 · 123456789) = ggT(123456789, 49385189)

= ggT(123456789− 2 · 49385189, 49385189) = ggT(24686411, 49385189)

= ggT(24686411, 49385189− 2 · 24686411) = ggT(24686411, 12367)

= ggT(24686411− 1996 · 12367, 12367) = ggT(1879, 12367)

= ggT(1879, 12367− 6 · 1879) = ggT(1879, 1093)

= ggT(1879− 1 · 1093, 1093) = ggT(786, 1093)

= ggT(786, 1093− 1 · 786) = ggT(786, 307)

= ggT(786− 2 · 307, 307) = ggT(172, 307)

= ggT(172, 307− 1 · 172) = ggT(172, 135)

= ggT(172− 1 · 135, 135) = ggT(37, 135)

= ggT(37, 135− 3 · 37) = ggT(37, 24)

= ggT(37− 1 · 24, 24) = ggT(13, 24)

= ggT(13, 24− 1 · 13) = ggT(13, 11)

= ggT(13− 1 · 11, 11) = ggT(2, 11)

= ggT(2, 11− 5 · 2) = ggT(2, 1)

= ggT(2− 2 · 1, 1) = ggT(0, 1).

Nun ist der grosste gemeinsame Teiler von 0 und 1 gleich 1, womit

ggT(123456789, 543212345) = 1

ist. Wir kennen zwar immer noch nicht die Primfaktorzerlegung der beiden Zahlen,aber wir wissen, dass sie teilerfremd sind, also dass von keiner Zahl > 1 beideZahlen geteilt werden.

Um den Schreibaufwand etwas zu reduzieren, schreibt man meist nur die Divi-

17

sionen mit Rest auf:

Dividend Quotient Divisor Rest

↓ ↓ ↓ ↓543212345 = 4 · 123456789 + 49385189

123456789 = 2 · 49385189 + 24686411

49385189 = 2 · 24686411 + 12367

24686411 = 1996 · 12367 + 1879

12367 = 6 · 1879 + 1093

1879 = 1 · 1093 + 786

1093 = 1 · 786 + 307

786 = 2 · 307 + 172

307 = 1 · 172 + 135

172 = 1 · 135 + 37

135 = 3 · 37 + 24

37 = 1 · 24 + 13

24 = 1 · 13 + 11

13 = 1 · 11 + 2

11 = 5 · 2 + 1← ggT

2 = 2 · 1 + 0← Null

In diesem Schema kann man gut erkennen, wie sich die Zahlen verschieben: ausDivisor wird Dividend und aus Rest Divisor. Der letzte Rest, der nicht 0 ist, istder grosste gemeinsame Teiler des ersten Dividenden und Divisors. Die Quotientendie zwischendurch auftreten werden hier nicht gebraucht.

Aufgabe 28.

Bestimme ggT(123, 321) mit dieser Methode.

Man kann allerdings die Quotienten aus dem euklidischen Algorithmus ver-wenden, um eine interessante Gleichung aufzustellen. Die vorletzten Gleichung,die letzte Division mit echtem Rest, hier 11 = 5 · 2 + 1, konnen wir nach demgrossten gemeinsamen Teiler, hier 1, umstellen:

1 = 11− 5 · 2.

In diese Gleichung konnen wir nun die vorvorletzte Gleichung, umgestellt nach 2,einsetzen:

1 = 11− 5 · (13− 1 · 11).

Dies kann man zu

1 = 11− 5 · 13 + 5 · 1 · 11 = 6 · 11 + (−1) · 13

vereinfachen. Hier kann man nun 24 = 1 · 13 + 11 aufgelost nach 11 einsetzen, undschon hat man 1 in der Form x ·24+y ·13 mit ganzen Zahlen x und y geschrieben.

18

Hiermit kann man immer weiter fortfahren, bis man schliesslich

ggT(543212345, 123456789) = 1 = x · 543212345 + y · 123456789

herausbekommt. Eine solche Gleichung nennt man Bezout-Gleichung von 543212345und 123456789.

Mit dem euklidischen Algorithmus kann man also nicht nur den grossten ge-meinsamen Teiler zweier ganzer Zahlen bestimmen, sondern ebenfalls eine Bezout-Gleichung.

Aufgabe 29.

Finde eine Bezout-Gleichung fur ggT(123, 321).

Nun zuruck zum RSA-Verfahren. Dort haben wir fur gegebenes (p− 1) · (q− 1)zwei ganze Zahlen d und e gesucht mit d · e ≡ 1 (mod (p − 1) · (q − 1)). Diesbedeutet gerade, dass es eine ganze Zahl c gibt mit

d · e + c · (p− 1) · (q − 1) = 1.

Dies sieht nach einer Bezout-Gleichung fur e und (p− 1) · (q − 1) aus.

Aufgabe 30.

Angenommen, es gibt ein solches c. Zeige dann, dass e und (p−1) ·(q−1)teilerfremd sind, und genauso dass d und (p−1) ·(q−1) teilerfremd sind.

Wenn man nun irgendeine ganze Zahl e wahlt, die teilerfremd zu (p−1) ·(q−1)ist, so kann man d wie folgt bestimmen. Mit dem euklidischen Algorithmus konnenwir Zahlen b und c finden mit

1 = ggT(e, (p− 1) · (q − 1)) = b · e + c · (p− 1) · (q − 1).

Dies bedeutet aber wiederum

1 ≡ b · e (mod (p− 1) · (q − 1)).

Wir konnen nun d als die kleinste positive Zahl mit d ≡ b (mod (p− 1) · (q − 1))wahlen; in dem Fall gilt dann

d · e ≡ b · e ≡ 1 (mod (p− 1) · (q − 1)).

In dem Beispiel aus dem letzten Abschnitt haben wir (p− 1) · (q − 1) = 8 unde = 3, also berechnen wir ggT(3, 8). Es ist

8 = 2 · 3 + 2,

3 = 1 · 2 + 1,

2 = 2 · 1 + 0.

Damit ist

ggT(3, 8) = 1 = 3− 1 · 2 = 3− 1 · (8− 2 · 3) = 3 · 3− 1 · 8

und somit3 · 3 ≡ 1 (mod 8).

19

Aufgabe 31.

Versuche zu p = 13, q = 17 und e = 31 ein passendes d zu finden.

11 Schnelles Potenzieren

Mochte man 213 ausrechnen, so muss man 2 ·2 ·2 ·2 ·2 ·2 ·2 ·2 ·2 ·2 ·2 ·2 ·2 ausrechnen.Hat man nun einen Taschenrechner zur Verfugung, der zwar Multiplizieren kann,aber nicht exponentieren, so muss man zehn mal multiplizieren.

Jedoch kann man 213 auch schneller ausrechnen. Es ist namlich 213 = 212+1 =212 · 2 = 26·2 · 2 = (26)2 · 2 = (23·2)2 · 2 = ((23)2)2 · 2 = ((2 · 2 · 2)2)2 · 2. Man kanndies mit funf Multiplikationen ausrechnen:

2 · 2 = 4 = 22;

4 · 2 = 8 = 23;

82 = 8 · 8 = 64 = (23)2 = 26;

642 = 64 · 64 = 4096 = (26)2 = 212;

4096 · 2 = 8192 = 212 · 2 = 213.

Der Grund ist hier, dass

13 = 1 + 12 = 1 + 2 · 2 · 3 = 1 + 2 · 2 · (1 + 1 + 1)

ist. Aus dieser Darstellung kann man sofort ablesen, dass man funf Multiplikatio-nen benotigt: jede Addition und Verdoppelung (Multiplikation mit 2) im Expo-nenten entspricht einer Multiplikation.

Ahnlich kann man vorgehen, wenn man 12344321 ausrechnen mochte. Da

4321 = 1 + 4320

= 1 + 2 · 2 · 2 · 2 · 2 · 135

= 1 + 2 · 2 · 2 · 2 · 2 · (1 + 2 · 67)

= 1 + 2 · 2 · 2 · 2 · 2 · (1 + 2 · (1 + 2 · 33))

= 1 + 2 · 2 · 2 · 2 · 2 · (1 + 2 · (1 + 2 · (1 + 2 · 2 · 2 · 2 · 2)))

= 1 + 2 · 2 · 2 · 2 · 2 · (1 + 2 · (1 + 2 · (1 + 2 · 2 · 2 · 2 · (1 + 1))))

ist, benotigt man 16 Multiplikationen, um dies auszurechnen. Das ist sehr wenigim Vergleich zu den 4320 Multiplikationen, die man mit der

”naiven“ Methode

benotigt. Aus der Darstellung kann man auch direkt ablesen, wie man multiplizie-ren und quadrieren muss:

12344321

= (((((((((((1234 · 1234)2)2)2)2 · 1234)2 · 1234)2 · 1234)2)2)2)2)2 · 1234

Nun ist die Zahl 12344321 jedoch sehr gross: genauer gesagt hat sie 13358 Dezi-malstellen! Wenn ihr 100 Ziffern in einer Zeile schreibt, braucht ihr 134 Zeilen, umdas Ergebnis vollstandig aufschreiben zu konnen. Und die meisten Taschenrech-ner helfen hier auch nicht weiter, da sie nur mit ein paar Dezimalstellen arbeitenkonnen.

20

Was ist, wenn wir nur an den letzten vier Dezimalstellen interessiert sind? Dasbedeutet gerade, das wir 12344321 modulo 10000 wissen wollen. Dies konnen wirrecht schnell mit einem normalen Taschenrechner bestimmen.

Hierfur beachten wir die Rechenregeln fur die Modulorechnung: sie besagen,dass man jede in der Rechnung auftretende Zahl um beliebige Vielfache von 10000andern kann, ohne die letzten vier Dezimalstellen des Ergebnisses zu andern.

Wenn wir nun 1234 · 1234 schriftlich von Hand ausrechnen, so haben wir

1234 · 1000 + 1234 · 200 + 1234 · 30 + 1234 · 4= 1234000 + 246800 + 37020 + 4936.

Da wir nur an den letzten vier Dezimalstellen interessiert sind, konnen wir

1234000 + 246800 + 37020 + 4936

≡ 4000 + 6800 + 7020 + 4936 (mod 10000)

verwenden: das Ergebnis ist 10800 + 11956 = 22756. Da wir wieder nur die letztenvier Dezimalstellen brauchen, bekommen wir

1234 · 1234 ≡ 2756 (mod 10000).

(Das vollstandige Ergebnis ware 1522756.)Nun ist 2756 · 2756 ≡ 5536 (mod 10000), wie man mit dem Taschenrechner

schnell herausfinden kann. Damit gilt (1234 · 1234)2 ≡ 5536 (mod 10000). Wirmussen noch drei mal quadrieren: 55362 ≡ 7296 (mod 10000), 72962 ≡ 1616(mod 10000), 16162 ≡ 1456 (mod 10000). Damit haben wir

((((1234 · 1234)2)2)2)2 ≡ 1456 (mod 10000).

Hatten wir dieses Zwischenergebnis exakt ausgerechnet, also nicht modulo 10000,hatten wir

835’766’790’521’608’489’470’804’150’221’650’637’655’651’650’245’824’

748’876’026’021’952’966’731’428’198’479’058’415’057’639’571’456

herausbekommen. (Da die Zahl zu lang fur eine Zeile war, haben wir sie in derMitte getrennt.) Wie man sehen kann, haben wir die letzten vier Dezimalstellenkorrekt bestimmt, ohne mit solch riesigen Zahlen zu arbeiten!

Bei den folgenden Aufgaben solltet ihr einen Taschenrechner verwenden:

Aufgabe 32.

Fuhre die Rechnung fort und bestimme die letzten vier Dezimalstellenvon 12344321.

Aufgabe 33.

Es sei der offentliche RSA-Schlussel N = 713 und e = 35 gegeben.Verschlussle die Nachricht x = 42.

21