pdf-file - Mathematik

Werbung
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
Herunterladen