PRIMZAHLEN PATRICK WEGENER 1. Einführung: Was sind Primzahlen? Eine ganze Zahl p, welche größer als 1 ist, heißt Primzahl, wenn sie nur durch 1 und sich selbst teilbar ist. Mit teilbar meinen wir hier folgendes: Die ganze Zahl p ist durch die ganze Zahl n teilbar, wenn p : n wieder eine ganze Zahl ist. Beispiel 1.1. Die Zahl 6 ist zum Beispiel durch 2 teilbar, denn 6 : 2 = 3 und 3 ist wieder eine ganze Zahl. Sie ist aber zum Beispiel nicht durch 4 teilbar, denn 6 : 4 = 1, 5 und 1, 5 ist keine ganze Zahl. Die Zahl 5 ist eine Primzahl, denn sie ist nicht durch 2, 3 oder 4 teilbar. Die Zahl 6 ist keine Primzahl, denn (wie oben gesehen) ist sie zum Beispiel durch 2 teilbar. Allgemein sehen wir: Jede gerade ganze Zahl größer als 2 ist keine Primzahl. Satz 1.2 (Euklid). Es gibt unendliche viele Primzahlen. Beweis. Wir nehmen an, es gäbe nur endlich viele Primzahlen. Wenn dies so wäre, dann müßte es eine größte Primzahl geben, und diese bezeichnen wir mit n. Die Liste aller Primzahlen wäre also (1) 2, 3, 5, 7, 11, 13,..., n. Wir betrachten jetzt die folgende Zahl (2) 2 3 5 7 11 13... n + 1. Diese Zahl ist sicher viel größer als die Zahl n, könnte also keine Primzahl sein. Folglich müßte sie einen (von 1 und ihr selbst verschiedenen) Teiler besitzen. Dieser Teiler könnte in ein Produkt von Primzahlen zerlegt werden, und alle diese Primfaktoren müßten die Zahl (2) teilen, da sie in der Liste (1) auftauchen. (Wenn eine Zahl z.b. von 10 geteilt wird, dann auch von den Primfaktoren 2 und 5). Es müßte also zumindest eine Primzahl geben, die (2) teilt. Andererseits läßt sich (2) nicht restlos durch irgendeine Primzahl unserer Liste (1) dividieren, da immer der Rest 1 bleibt. Es gäbe also eine Primzahl, die nicht in unserer Liste vorkommt. Das widerspricht aber der Annahme, dass wir in (1) bereits alle Primzahlen aufgelistet haben. Satz 1.3. Jede ganze Zahl n mit n > 1 lässt sich eindeutig (bis auf die Reihenfolge) als Produkt von Primzahlen schreiben. D.h. es gibt Primzahlen p 1, p 2,..., p m, so dass n = p 1 p 2... p m. Wir nennen dies die Primfaktorzerlegung von n. 1
2 PATRICK WEGENER Beispiel 1.4. Für die Zahl n = 210 erhalten wir die Primfaktorzerlegung 210 = 2 3 5 7. Für die Zahl 32 erhalten wir 32 = 2 2 2 2 2 = 2 5, d.h. Primzahlen können in der Primfakktorzerlegung auch häufiger vorkommen. Aufgabe 1.5 (Ein Zahlenrätsel). Die beiden Google Gründer Sergey Brin und Larry Page werden von Mark Zuckerberg in seinem Keller festgehalten. Er verspricht ihnen die Freiheit, wenn sie die beiden ganzen Zahlen zwischen 1 und 100 (d.h. die möglichen Zahlen sind 2, 3, 4,..., 98, 99) herausfinden, die er sich ausgedacht hat. Er nennt Brin das Produkt und Page die Summe der beiden Zahlen. Daraufhin kommt es zu folgender Unterhaltung zwischen den beiden: Brin: Ich kenne die beiden Zahlen nicht. Page: Das war mir klar. Brin: Jetzt kenne ich die beiden Zahlen. Page: Dann kenne ich sie auch. Findet die beiden Zahlen heraus, die Zuckerberg sich ausgedacht hat. Hinweis: Alleine aus dem Dialog der beiden lässt sich eine eindeutige Lösung herleiten. So sagt Brin etwa am Anfang, dass er die beiden Zahlen nicht kenne. Hätte Zuckerberg ihm aber zum Beispiel als Produkt der beiden Zahlen die 6 genannt, so wüsste er sicher, dass die gesuchten Zahlen 2 und 3 sind. Denn 6 = 2 3 und zwar gilt auch 6 = 1 6, aber die von Zuckerberg erdachten Zahlen sind größer als 1. Aufgabe 1.6. https://www.youtube.com/watch?v=c18gjbnzxmw
PRIMZAHLEN 3 2. Warum Primzahlen? https://www.youtube.com/watch?v=yhlv5aeuo_k Primzahlen spielen in vielen Bereichen der Mathematik eine wichtige Rolle und sind ein entscheidender Aspekt für viele mathematische Fragestellungen. Auch hier in der AGAG (wie etwa in der der Algebraischen Geometrie, Zahlentheorie, Gruppentheorie). Aber auch in unserem Alltag spielen sie (wenn auch unbewusst) eine wichtige Rolle. Der RSA Algorithmus: Ein Verschlüsselungsverfahren aus dem Jahre 1974, benannt nach den Entwicklern Rivest, Shamir und Adleman. Es handelt sich hierbei um ein sogenanntes Public Key Verschlüsselungsverfahren, d.h. es gibt einen öffentlichen Schlüssel (der prinzipiell jedem zugänglich ist) und einen privaten Schlüssel (der geheim ist). Mit Hilfe des öffentlichen Schlüssels kann nun jeder Nachichten verschlüsseln, aber nur der Besitzer des privaten Schlüssels kann die Nachrichten wieder entschlüsseln. Im Verlaufe des RSA-Algorithmus wird eine Zahl verschlüsselt bzw. später wieder entschlüsselt. Später werden wir sehen, wie man dann auch Texte oder ähnlches verschlüsseln kann. Wir wllen nun den Algorithmus beschreiben. Parallel dazu illustrieren wir dies immer an einem Beispiel (blaue Schrift). Wir verwenden dabei den MAPLE-Befehl x mod n; Dieser berechnet den Rest bei Division von x durch n. Nun zum Verfahren: (1) Wähle zwei (unterschiedliche) Primzahlen p und q und berechne n = p q. Wir nennen n die öffentliche Zahl. p = 11, q = 17 n = 11 17 = 187 (2) Berechne ϕ(n) = (p 1) (q 1) und wähle eine positive ganze Zahl e, so dass e und ϕ(n) keinen gemeinsamen Teiler (außer der 1) haben. Wir können z.b. ϕ(n) in Primfaktoren zerlegen und für e eine Primzahl wählen, die nicht unter diesen Primfaktoren vorkommt. Die Zahl e ist der öffentliche Schlüssel. ϕ(n) = (11 1) (17 1) = 160 = 2 5 5 e = 7 (3) Es kann nun jede positive ganze Zahl m (der Klartext) mit m < n zu einer Zahl c (der Geheimtext) verschlüsselt werden. Die verschlüsselte Zahl c erhält man wie folgt: c = m e mod n, d.h. c ist der Rest bei der Division von m e durch n. Wir verschlüsseln zum Beispiel m = 4. Es ist m e = 4 7 = 16384 = 115 mod 187, d.h. c = 115. (4) Der private Schlüssel ist eine ganze Zahl d gegeben durch d e = 1 mod ϕ(n). Ein solches d gibt es immer und kann zum Beispiel mit dem folgenden MAPLE-Befehl berechnet werden. igcdex(ϕ(n), e, s, t ); Die letzte Zahl in der Ausgabe liefert dann d. Mit obigem MAPLE-Befehl erhalten wir d = 23. (5) Zum Entschlüsseln muss die Empfängerin oder der Empfänger nun c d mod n
4 PATRICK WEGENER berechnen. Das Ergebnis ist dann genau der Klartext m. Es ist c d = 115 2 3 = 4 mod 187. Wir erhalten also den Klartext m = 4 zurück. Beispiel 2.1. Um einen Text zu verschlüsseln, müssen zunächst Buchstaben in Zahlen umgewandelt werden. Dazu verwendet man in der Praxis zum Beispiel den ASCII-Code. Hier sei willkürlich die folgende Zuordnung gewählt: A = 01, B = 02, C = 03,... (00 = Leerzeichen). Darüber hinaus sei angenommen, dass jeweils drei Zeichen zu einer Zahl zusammengefasst werden. Die Buchstabenfolge AXT wird also zu 012420. Die kleinste zu verschl sselnde Zahl ist dann 000000 (drei Leerzeichen), die größte 262626 (ZZZ). Die öffentliche Zahl n = p q muss also größer als 262626 sein. Der Klartext SCHULE lautet als Zahlenfolge also 19 03 08 21 12 05. Zunächst werden geheim zwei Primzahlen gewählt, beispielsweise p = 307 und q = 859. Damit ergibt sich: n = p q = 263713 und ϕ(n) = (p 1) (q 1) = 262548. Wir wählen (mit Hilfe von MAPLE): e = 1721 d = 1373 Verschlüsselung: Da wir immer drei Buchstaben zu einer Zahl zusammenfassen und das Wort SCHULE sechs Buchstaben hat, müssen wir also zwei Zahlen verschlüsseln. Einmal m 1 = 190308 und zum anderen m 2 = 211205. Wir erhalten (wieder mit Hilfe von MAPLE): c 1 = m e 1 mod n = 1903081721 mod 263713 = 111585 c 2 = m e 2 mod n = 2112051721 mod 263713 = 212260 Erhält man beim Verschlüsseln (oder auch später beim Entschlüsseln) eine Zahl die nicht 6-stellig ist, so füllt man mit Nullen auf. Also statt 1234 würde man etwa 001234 nehmen. Nun entschlüsseln wir die Nachricht wieder: m 1 = c d 1 mod n = 1115851373 mod 263713 = 190308 m 2 = c d 2 mod n = 2122601373 mod 263713 = 211205 Aufgabe 2.2 (Verschlüsseln eines Textes mit RSA). Überlegt euch jeweils zwei Primzahlen p und q und berechnet dann n, ϕ(n), d und e. Tut euch in Zweiergruppen zusammen und tauscht jeweils n und e aus. Schickt euch gegenseitig eine verschlüsselte Nachricht und entschlüsselt diese dann wieder. Unter folgendem Link könnt ihr euer Ergebnis überprüfen: http://www.inf.fh-flensburg.de/lang/krypto/protokolle/rsa.htm
PRIMZAHLEN 5 3. Primzahlen suchen Beispiel 3.1 (Mersenne-Primzahlen). Es gibt unendlich viele Primzahlen, d.h. es ist gar nicht möglich alle Primzahlen zu kennen. Aber zum Beispiel für den RSA-Algorithmus ist es wünschenswert, dass man sehr große Primzhalen kennt. Die größten bisher bekannten Primzahlen sind alle sogenannte Mersenne Zahlen. Dies sind Zahlen der Form 2 n 1, wobei n eine positive ganze Zahl sein kann. Also zum Beispiel 2 5 1 = 31, was auch eine Primzahl ist. Aber nicht jede dieser Zahlen ist eine Primzahl. So ist etwa 2 4 1 = 15 keine Primzahl. Auf der Suche nach immer größeren Primzahlen konzentriert man sich dennoch auf die Mersenne Zahlen. D.h. man kontrolliert für immer größere Zahlen n ob 2 n 1 eine Primzahl ist. Auf diese Art und Weise wurde erst vor kurzem die bislang größte bekannte Primzahl gefunden. Diese hat fast 23,5 Millionen Stellen!! Mehr dazu: http://www.zeit.de/wissen/2018-01/mersenne-primzahl-50-entdeckt-mathematik Aufgabe 3.2. Die folgende Fragestellung war Teil des deutschen Vorausscheides zur Mathematik- Olympiade: Für welche ganzen Zahlen n mit n 1 ist der Ausdruck n 3 + 4 n n 1 eine Primzahl? Wir wollen uns die Lösung schrittweise erarbeiten: (1) Testet dies zuerst an Beispielen (mit dem Computer). Betrachtet alle n mit n = 1, 2, 3,..., 14, 15. Stelle eine Vermutung auf. (2) Ist der Ausdruck n 3 + 4 n n 1 für ein n keine Primzahl, so gibt es eine Primzahl p welche diesen Ausdruck teilt. Nehmt die ganzen Zahlen n zwischen 1 und 15, für die n 3 + 4 n n 1 keine Primzahl ist und bestimmt alle Primzhalen p die den Ausdruck n 3 + 4 n n 1 teilen. Was fällt euch auf?