Folien der 15. Vorlesungswoche Mathematische Analyse von RSA I (1) Wir wählen zwei “große” Primzahlen∗ p und q (p 6= q) und setzen n = p · q. Wir arbeiten von nun an in Zn und berücksichtigen, dass wie später gezeigt wird — als Folge der Sätze von Euler und Fermat — in Zn die Beziehung [x]a·ϕ(n)+1 = [x] für jedes x gilt. (2) Da n = p · q Bestandteil des öffentlichen Schlüssels wird, müssen p und q so groß gewählt sein, dass die Faktorisierung von n in Primfaktoren — auch unter Einsatz schneller Rechner — unmöglich ist, oder eines unvertretbar hohen Geld- und Zeitaufwands bedarf. (3) Für großes n erleiden wir keinen Informationsverlust, wenn wir die Nachricht x ∈ N durch ihre Restklasse [x] ∈ Zn ersetzen. ∗ Der Begriff große Primzahl hängt vom Stand der mathematischen Technologie ab. 1 Mathematische Analyse von RSA II (4) Wir wählen “zufällig” den öffentlichen Schlüssel 1 < e < ϕ(n), so dass e und ϕ(n) = (p − 1) · (q − 1) teilerfremd sind. Also [e]ϕ(n) ∈ Z∗ϕ(n). Aus einer Darstellung α · e + β · ϕ(n) = 1, die uns der erweiterte Euklidische Algorithmus liefert, ermitteln wir dann das multiplikativ Inverse d von e modulo ϕ(n) als Rest α mod ϕ(n). Dann ist (n, d) der geheime Schlüssel. Es folgt für geeignetes a ∈ Z d · e = 1 + a · ϕ(n). (5) Verschlüsseln: Für die zu sendende Nachricht x mit 0 ≤ x < n senden wir den Rest y = xe mod n. 2 Mathematische Analyse von RSA III (6) Entschlüsseln: Es ist d · e = 1 + a · ϕ(n) und daher gilt in Zn [y]d = [x]e·d = [x]1+a·ϕ(n) = [x] nach der folgenden Variante des Satzes von Euler. Der Beweis dieser Variante schließt unsere mathematische Beweisführung zur RSA-Verschlüsselung ab. 3 Variante des Satzes von Euler Satz. Es seien p 6= q Primzahlen und n = p · q . Dann gilt in Zn die Formel [x]a·ϕ(n)+1 = [x] für alle [x] ∈ Zn und a ∈ Z. Beweis. Falls x zu n teilerfremd ist, liefert der Satz von Euler xϕ(n) ≡ 1 (n) durch Potenzieren mit a und anschließende Multiplikation mit x die Behauptung. Wir müssen uns daher jetzt noch um diejenigen x im Bereich 0 ≤ x ≤ n − 1 kümmern, die nicht zu n teilerfremd sind. Dies sind wegen n = p · q genau die Zahlen 0, p und q; aus Symmetriegründen reicht es dann die Fälle x = 0 und x = p zu behandeln. (a) Für x = 0 ist die Behauptung offensichtlich. (b) Für x = p berücksichtigen wir, dass y = pa·(p−1) zur Primzahl q teilerfremd ist, daher (kleiner Fermat) y q−1 = 1 + α · q für geeignetes α ∈ Z gilt. Wir erhalten somit pa·ϕ(n)+1 = pa·(p−1)·(q−1)+1 = p · y q−1 = p + α · (p · q) und damit die Behauptung. 4 RSA-Verfahren: Kommentar I (1) Da der Lauscher Kenntnis von dem Produkt n = p · q hat kann er — jedenfalls im Prinzip — p und q durch Primfaktorzerlegung von n ermitteln. (2) Von dem Moment, wo der Lauscher p und q kennt, kann er aus dem öffentlichen den geheimen Schlüssel ermitteln und die vermeintlich geheime Botschaft entschlüsseln. Er kennt dann nämlich ϕ(n) = (p − 1) · (q − 1) und ferner als Bestandteil des öffentlichen Schlüssels die Zahl e, die zu ϕ(n) teilerfremd ist. Er kann nun — mit Hilfe des erweiterten euklidischen Algorithmus — den geheimen Schlüssel d durch Invertieren von [e] in Zϕ(n) ermitteln. 5 RSA-Verfahren: Kommentar II (3) Nach dem jetzigen Stand mathematischer Technologie gilt jedoch die RSA-Verschlüsselung als sicher, da — wie diskutiert — die Faktorisierung großer Zahlen als schweres Problem gilt. Wie weit diese Einschätzung künftige Entwicklungen überlebt, muss sich zeigen. (4) Es gibt auch keinen Beweis, dass jeder Versuch die RSA-Verschlüsselung zu knacken, tatsächlich auf die Faktorisierung von n = p · q hinausläuft. Denkbar wäre beispielsweise eine schnelle Berechnung von ϕ(n), die ohne Faktorisierung von n auskommt. (5) Viele offene Fragen also, deren Antworten Sie künftig erleben werden!? In der Praxis (Internet, Zahlungsverkehr, . . .) ist RSA jedenfalls als sehr sicheres Verfahren akzeptiert. Durch Vergrößerung der Primzahlen p und q haben Anwender einen zusätzlichen Einfluss auf die Verschlüsselungsgüte. 6 Polynome Polynome kennen wir aus dem Schulunterricht als Funktionen des Bautyps f (x) = a0 + a1 x + a2 x2 + · · · + an xn. Hierbei sind die Koeffizienten a0, . . . , an gegebene reelle Zahlen. Für uns werden anschließend algebraische Manipulationen mit solchen Polynomausdrücken, nicht der Funktionsgesichtspunkt, im Vordergrund stehen. Im gleichen Atemzug werden wir den Ring K[X] aller Polynome mit Koeffizienten aus K betrachten, wobei K ein Körper, etwa gleich Q, R oder C ist. Dabei werden sich erstaunliche Ähnlichkeiten zu den Eigenschaften des Rings Z der ganzen Zahlen ergeben. 7 Der Polynombegriff Wir fixieren einen Körper K und betrachten Polynome f = a0 + a1 X + a2 X 2 + · · · + an X n in einer Unbestimmten X und Koeffizienten ai aus K. Falls an 6= 0 hat f den Grad n (Bezeichnung: grad (f ) = n). Das Nullpolynom f = 0, für welches alle ai = 0, hat nach dieser Erklärung keinen Grad. Wir treffen folgende Vereinbarung für die Gleichheit von Polynomen: (1) Hinzufügen oder Weglassen von Termen 0 · X i ändert das Polynom f nicht. i (2) Zwei Polynome f = n i=0 ai X und g = genau wenn ai = bi für alle i = 0, 1, . . . , n gilt. P Pn i i=0 bi X sind gleich Mit K[X] bezeichnen wir die Menge aller Polynome mit Koeffizienten in K. 8 Addition und Multiplikation von Polynomen Polynome werden gliedweise addiert, also f g = = a0 b0 + + a1 X b1 X f + g = (a0 + b0 ) + (a1 + b1 )X + + a2 X 2 b2 X 2 + ··· + ··· + (a2 + b2 )X 2 + · · · + + an X n bn X n + (an + bn)X n Das Produkt f · g zweier Polynome ist in jedem Faktor K-linear; ferner gilt X n · X m = X n+m. Beachtung beider Regeln liefert als Produkt von f = a0 + a1 X + · · · + am X m und g = b0 + b1 X + · · · + bn X n, dass f · g = c0 + c1 X + c2 X 2 + · · · + cn+m X n+m , wobei cp = Pp i=0 ai bp−i gilt, insbesondere cn+m = am · bn gilt. Es folgt: Satz. Sind f und g Polynome vom Grad m bzw. n, so hat f · g den Grad m + n. 9 Der Integritätsbereich K[X] Im einzelnen ist leicht zu verifizieren, dass Addition und Multiplikation von Polynomen die Ringanforderungen (A1)–(A4), (M1)–(M3) und (D) erfüllen. Satz. Die Menge aller K[X] Polynome über K in der Unbestimmten X bildet einen kommutativen Integritätsbereich, d.h. einen kommutativen Ring mit 1 6= 0, welcher nullteilerfrei ist. Beweis. Die Ringeigenschaften sind leicht zu verifizieren, ebenfalls ist klar, dass 0 6= 1. Die Nullteilerfreiheit ist noch zu zeigen. Seien dazu f und g Polynome ungleich Null, etwa f vom Grad m und g vom Grad n. Dann hat f · g den Grad m + n, ist also ebenfalls 6= 0. 10 Beispiele: Produkt von Polynomen Beispiel. Wir berechnen das Produkt von (1 − X) und 1 + X + X 2. Es folgt (1 − X) · (1 + X + X 2) = (1 + X + X 2) − X · (1 + X + X 2) = (1 + X + X 2) − (X + X 2 + X 3) = 1 − X 3. Beispiel. Wir berechnen für a ∈ K das Produkt von X − a und g = X n + a X n−1 + a2 X n−2 + · · · + an−1 X + an. Es folgt (X − a) · g = X n+1 + aX n + a2X n−1 + · · · + anX − (a X n + a2 X n−1 + · · · + an X + an+1) = X n+1 − an+1. Vereinfacht ausgedrückt, können wir daher mit Polynomen ganz wie gewohnt rechnen. 11 Die Einheiten im Polynomring Satz. Ein Polynom f = a0 + a1X + · · · + an X n 6= 0 ist hat genau dann ein multiplikativ Inverses in K[X], wenn f = a0, somit f — wie wir sagen — ein konstantes Polynom 6= 0 ist. Beweis. Aus f · g = 1 folgt durch Bilden des Grades, dass grad (f ) + grad (g) = 0, also f den Grad Null hat. Umgekehrt hat natürlich ein konstantes Polynom f = a, 0 6= a ∈ K in K[X] das konstante Polynom g = 1/a als multiplikativ Inverses. 12 Nullstellen von Polynomen Sei f = a0 + a1 X + · · · + an X n ein Polynom aus K[X] und a ein Element aus K. Wir können a in das Polynom f einsetzen und erhalten das Element f (a) := a0 + a1 · a + · · · + an · an. Falls f (a) = 0 ist, nennen wir a eine Nullstelle des Polynoms f . Satz. Ein Element a aus K ist genau dann eine Nullstelle von f , wenn f die Form (X − a) · g mit einem Polynom g hat. Wir sagen in diesem Fall auch, dass f durch X − a geteilt wird. Beweis. (a) Falls f = (X − a) · g liefert Einsetzen f (a) = (a − a) · g(a) = 0. (b) Falls umgekehrt 0 = f (a) = a0 + a1 · a + · · · + an · an, so ist f = f − f (a) = a1 (X − a) + a2 (X 2 − a2 ) + · · · + an(X n − an). Wegen X k − ak = (X − a) · (X k−1 + aX n−2 + a2 X n−3 + · · · + an−2 X + an−1 ) wird jeder Summand der obigen Summendarstellung von f durch (X − a) geteilt, folglich auch f . 13 Anzahl der Nullstellen Der vorangehende Satz erlaubt Aussagen über die Anzahl der Nullstellen eines Polynoms. Satz. Ein Polynom f = a0 + a1 X + · · · + an X n vom Grad n hat höchstens n Nullstellen in K. Beweis. Seien u1, u2, . . . , ur paarweise verschiedene Nullstellen von f . Dann gilt f = (X − u1) · g mit einem Polynom g vom Grad n − 1. Wegen 0 = f (ui) = (ui − u1) · g(ui) sind u2, u3, . . . , ur Nullstellen von g. Per Induktion hat g höchstens n − 1 Nullstellen. Somit ist r ≤ n. Andererseits muss ein Polynom nicht so viele Nullstellen haben, wie sein Grad beträgt. So hat das Polynom X 2 + 1 ∈ R[X] überhaupt keine Nullstelle in R. 14 Division mit Rest Völlig überraschend ist, dass Polynome über einem Körper K einerseits und ganze Zahlen andererseits ein sehr ähnliches Verhalten zeigen, obwohl sie als mathematische Gegenstände sehr unterschiedlich konzipiert sind. Verantwortlich ist dafür die Möglichkeit der Division mit Rest. Satz. Seien f und g Polynonome über dem Körper K. Es sei g 6= 0 vom Grad m. Dann gibt es Polynome q und r, so dass f = q · g + r und (r = 0 oder grad (r) < m) gilt. Entweder also ist f durch g teilbar oder andernfalls der bei Division durch g verbleibende Rest r — per Grad gemessen — kleiner als g. Wir schreiben künftig einfach grad (r) < m und schließen dabei den Fall r = 0 ein. 15 Illustration durch ein Beispiel Wir dividieren jeweils die Leitterme, hier 5X 4 und X 2 , und erhalten den jeweiligen (Summen)-Anteil des Quotienten q. Im vorliegenden Beispiel erhalten wir also im ersten Schritt den Quotienten 5X 4 /X 2 = 5X 2 . Wir fahren in gleicher Weise mit den verbleibenden Resten solange fort, bis wir einen Rest vom Grad kleiner als zwei erreichen. 5X 4 +3X 3 +2X 2 5X 4 +5X 2 3X 3 −3X 2 3X 3 −3X 2 −3X 2 +7X +7X +3X +4X 4X +5 : X 2 + 1 = 5X 2 +3X +5 −3 +8 −3 Mit q = 5X 2 + 3X − 3 und r = 4X + 8 folgt f = q · g + r. 16 Division mit Rest: Beweis Für den Nachweis können wir annehmen, dass f und g nicht Null sind. Sei n = grad (f ) und m = grad (g) . Wir argumentieren durch Induktion nach n und orientieren uns am Schema der Beispielrechnung. (1) Falls n < m setzen wir q = 0 und r = f und sind mit f = q · g + r fertig. (2) Falls n ≥ m berücksichtigen wir f = anX n + · · · + a1X + a0, an 6= 0, g = bmX m + · · · + b1X + b0, bm 6= 0 und erhalten, dass f 0 := f − (an/bm)X n−mg ein Polynom vom Grad ≤ n − 1 ist∗. Per Induktionsannahme gilt f 0 = q 0 · g + r, wobei grad (r) < grad (g). Es folgt f = (an/bmX n−m + q 0) · g + r. ∗ Hier ist die Möglichkeit eingeschlossen, dass f 0 das Nullpolynom ist. 17 Division mit Rest: Anwendung Wir wenden die Division mit Rest auf das Teilen des Polynoms f durch das Polynom X − a vom Grad 1 an und erhalten: f = (X − a) · g + b, wobei b entweder Null oder ein Polynom vom Grad 0 ist, d.h. b ∈ K. Im Fall f (a) = 0 folgt dann 0 = f (a) = (a − a) · g(a) + b = b, also b = 0. Damit ist f = (X − a) · g , ein Resultat, welches wir schon vorher durch explizite Rechnung eingesehen haben. Hier illustriert das Argument, wie nützlich das Möglichkeit der Division mit Rest ist. 18 Der Hauptidealsatz Eine (additive) Untergruppe I von K[X], für welche alle Produkte f · u mit f ∈ K[X] und u ∈ I wieder in I liegen, heißt Ideal in K[X]. Satz. Sei I ein Ideal in K[X]. Dann gibt es ein Polynom u ∈ I, so dass I gerade die Menge K[X] · u := {f · u| f ∈ K[X]} aller K[X]Vielfachen von u ist. Ideale dieser Form K[X] · u, u ∈ K[X], nennt man Hauptideale. Bemerkung. Im Ring Z der ganzen Zahlen ist jede Untergruppe U gegen Multiplikation mit Elementen n ∈ Z abgeschlossen (warum?), erfüllt also die Idealbedingung. 19 Hauptidealsatz: Beweis Beweis. (a) Falls I = {0} wählen wir u = 0 und I = K[X] · u. (b) Falls I 6= 0 ist, enthält I ein Polynom u = 6 0 minimalen Grades m. Wegen der Idealbedingung für I ist dann K[X] · u in I gelegen. Sei umgekehrt f ∈ I. Division mit Rest durch u liefert f = q · u + r mit grad (r) < m. Falls r 6= 0 wäre, enthielte I ein Polynom r = f −q ·u vom Grad < m, im Widerspruch zur Auswahl von u. Folglich ist r = 0 und f = q · u gehört zu K[X] · u. Hinweis. Wir beachten die Parallelität zum Beweis des Untergruppensatzes für Z. 20 Größter gemeinsame Teiler Satz. Sind f und g aus K[X], f und g nicht beide Null, so gibt es ein Polynom d mit den folgenden Eigenschaften: (1) d|f und d|g, d.h. f und g sind K[X]-Vielfache von d, kurz f, g ∈ K[X] · d. (2) Ist d0 ∈ K[X] ein gemeinsamer Teiler von f und g, d.h. d0|f und d0|g, so folgt d0|d. (3) Es ist d = α · f + β · g für geeignete Polynome α, β ∈ K[X]. Satz und Definition. Es ist d durch f und g bis auf einen konstanten Faktor 6= 0 eindeutig bestimmt. d heißt größter gemeinsamer Teiler von f und g. Schreibweise: d = g.g.T.(f, g). 21 ggT für Polynome: Beweis Beweis. Seien f, g ∈ K[X] und nicht beide 0. Wir bilden I = K[X] · f + K[X] · g und beachten, dass I ein Ideal in K[X] ist. Folglich (Hauptidealsatz) gibt es ein Polynom d, für welches (∗) gilt. K[X] · f + K[X] · g = K[X] · d Zu (1): Da f und g in I gelegen sind, folgt f, g ∈ K[X] · d, somit Bedingung (1). Zu (3): Wegen (∗) ist d in K[X] · f + K[X] · g gelegen, daher in der Form d = α · f + β · g mit α, β ∈ K[X] darstellbar. Zu (2): Ist d0 ein gemeinsamer Teiler von f und g, so sind f und g und dann auch alle u · f + v · g mit u, v ∈ K[X] in K[X] · d0 gelegen. Insbesondere ist somit d in K[X] · d0 gelegen; es folgt d0 |d. 22 Normierte Polynome Ist I 6= {0} mit I = K[X] · f und I = K[X] · g, so folgt f = u · g und g = v · f mit Polynomen u, v 6= 0. Bilden der Grade liefert grad (f ) = grad (u) + grad (g) ≥ grad (g) und grad (g) = grad (v) + grad (f ) ≥ grad (f ). Wir erhalten daraus grad (f ) = grad (g), folglich besitzen u und v den Grad Null. Die Polynome f und g stimmen daher bis auf eine Konstante 6= 0 überein. Wir können auch für I 6= 0 die Eindeutigkeit des erzeugenden Polynoms f mit I = K[X] · f erzwingen, indem wir f als normiertes Polynom f = X n + an−1X n−1 + · · · + a1X + a0 annehmen. Entsprechend können wir, falls f und g nicht beide Null sind, vom g.g.T.(f, g) verlangen, dass er normiert ist. Mit dieser Zusatzanforderung ist d = g.g.T.(f, g) durch f und g eindeutig bestimmt, ohne diese Anforderung nur bis auf eine Konstante 6= 0. 23 Der Euklidische Algorithmus für Polynome Seien f = X 5 + X 4 + X 3 + 2X 2 + 1 und g = X 4 − 1 . Wir bestimmen — durch ein dem erweiterten Euklidischen Algorithmus für Z nachgebildetes Verfahren — den größten gemeinsamen Teiler d = g.g.T.(f, g) und zugleich eine Darstellung d = α · f + β · g mit α, β ∈ K[X]. Wir starten mit wiederholter Division mit Rest (linke untere Hälfte) bis die Division aufgeht. Der vorige Rest, gelb markiert, ist der gesuchte ggT. Danach wechseln wir in die rechte Hälfte des Rechenschemas und erhalten — von oben nach unten fortschreitend — die gesuchte Darstellung des ggT’s als Linearkombination von f und g. f = g = 1·f + 0·f + 0·g 1·g r z }| { 3 2 f = (X + 1) · g + X + 2X + X + 2 r = 1·f − (X + 1) · g r1 z }| { g = (X − 2) · r + 3X 2 + 3 r1 = (2 − X) · f + (X 2 − X − 1) · g r = 1/3(X + 2) · r1 + 0 Wir schließen: r1 teilt f und g. Jeder gemeinsame Teiler von f und g teilt auch r und schließlich r1 . Also r1 = g.g.T.(f, g). Ferner ist r1 Linearkombination von f und g mit Koeffizienten aus K[X]. 24 Teilerfremde Polynome Definition. Zwei Polynome f und g heißen teilferfremd, wenn g.g.T.(f, g) = 1 gilt. Satz. Die Polynome f und g sind genau dann in K[X] teilerfremd, wenn es α, β in K[X] gibt mit 1 = α · f + β · g. Beweis. Wir können den für Z geführten Beweis sinngemäß übernehmen. Zum Beispiel sind f = X − a und g = X − b für a 6= b teilerfremd, da 1/(b − a) · (f − g) = 1. 25 Irreduzible Polynome Ein Polynom 0 6= f vom Grad n heißt irreduzibel (in K[X]), falls f keinen Teiler vom Grad > 0 und < n hat. Irreduzible Polynome spielen in K[X] dieselbe Rolle, welche Primzahlen im Ring Z der ganzen Zahlen spielen. Jedes Polynom aX + b, a 6= 0, vom Grad 1 ist irreduzibel. Für K = C sind dies nach dem sogenannten Hauptsatz der Algebra schon alle irreduziblen Polynome. Im allgemeinen gibt es jedoch weitere irreduzible Polynome. So ist f = X 2 + 1 in R[X] irreduzibel. Andernfalls hätte f einen Faktor vom Grad 1 und daher eine reelle Nullstelle. Ohne Einschränkung können wir uns bei der Untersuchuchung irreduzibler Polynome auf den Fall normierter Polynome beschränken. 26 Irreduzible Polynome sind prim Irreduzible Polynome verhalten sich wie Primzahlen: Satz. Das Polynom p sei irreduzibel und teile das Produkt f · g mit f, g ∈ K[X]. Dann ist p in K[X] ein Teiler von f oder von g. Beweis. Wir nehmen an, dass p kein Teiler von f ist und zeigen, dass in diesem Fall p das Polynom g teilt. In diesem Fall sind f und p teilerfremd; wir können folglich 1 als Linearkombination 1=α·f +β·p darstellen. Multiplikation dieser Gleichung mit g liefert g = α · (f · g) + (β · g) · p. Da p beide Summanden der rechten Seite teilt, ist p — wie behauptet — ein Teiler von g. 27 Primfaktorzerlegung von Polynomen Satz. Jedes normierte Polynom f ist als Produkt p1 · p2 · · · pr von irreduziblen normierten Polynomen pi darstellbar. Die Faktoren p1, p2, . . . , pr sind durch bis auf Reihenfolge eindeutig bestimmt. Beweis. (a) Existenz der Zerlegung: Wir verfahren durch Induktion nach dem Grad n von f . Für n = 0 ist f = 1 Produkt von 0 irreduziblen Polynomen. Sei nunmehr n > 0. Falls f irreduzibel ist, sind wir mit p1 = f fertig. Andernfalls besitzt f eine Zerlegung f = g · h mit Polynomen g und h vom Grad < n. Per Induktion sind dann g und h folglich auch g · h Produkte irreduzibler Polynome. (b) Eindeutigkeit der Zerlegung: Dies beweisen wir — wie die Eindeutigkeit der Primfaktorzerlegung für Z — durch Rückgriff auf den vorangehenden Satz. 28 Nur endlich viele Teiler Eine wichtige Eigenschaft der Primfaktorzerlegung für Polynome ist der folgende Satz. Satz. Ein normiertes Polynome f besitzt in K[X] nur endlich viele normierte Teiler. Beweis. Ist f = p1 · p2 · · · pr eine Darstellung von f als Produkt normierter irreduzibler Polynome, so ist — als Folge des vorangehenden Satzes — jeder normierte Teiler g von f ein Teilprodukt von p1 · p2 · · · pr . Dies liefert nur endlich viele Möglichkeiten für g. 29