18.11.2013 Aufrufe

Kapitel 2. Elementare Zahlentheorie 2.1. Primfaktorzerlegung

Kapitel 2. Elementare Zahlentheorie 2.1. Primfaktorzerlegung

Kapitel 2. Elementare Zahlentheorie 2.1. Primfaktorzerlegung

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Kapitel</strong> <strong>2.</strong> <strong>Elementare</strong> <strong>Zahlentheorie</strong><br />

<strong>2.</strong>1. <strong>Primfaktorzerlegung</strong><br />

Menge der ganzen Zahlen Z: = {. . . , −3, −2, −1, 0, 1, 2, 3, . . .}<br />

Addition<br />

Inverse<br />

Multiplikation<br />

Z × Z −→ Z,<br />

Z −→ Z,<br />

Z × Z −→ Z,<br />

(a, b) ↦−→ a + b<br />

a ↦−→ −a<br />

(a, b) ↦−→ a · b<br />

Ausgezeichnete Elemente 0, 1 ∈ Z<br />

1


Rechenregeln: für a, b, c ∈ Z gelten<br />

(a + b) + c = a + (b + c) (+ ist assoziativ)<br />

a + b = b + a (+ ist kommutativ)<br />

a + 0 = 0 + a = a (0 ist Neutralelement von +)<br />

a + (−a) = (−a) + a = 0 (Inverse bzgl. +)<br />

(a · b) · c = a · (b · c) (· ist assoziativ)<br />

a · b = b · a (· ist kommutativ)<br />

a · 1 = 1 · a = a (1 ist Neutralement von ·)<br />

a · (b + c) = a · b + a · c (Distributivgesetz)<br />

2


Definition. Eine Menge R mit Abbildungen<br />

+: R × R −→ R, (a, b) ↦−→ a + b<br />

R −→ R, a ↦−→ (−a)<br />

·: R × R −→ R, (a, b) ↦−→ a · b<br />

und ausgezeichneten Elementen 0, 1 ∈ R, welche die obigen Rechenregeln erfüllen,<br />

heißt ein<br />

kommutativer Ring.<br />

3


Beispiel.<br />

• Z = {ganze Zahlen} ist ein kommutativer Ring<br />

• Q: = {rationale Zahlen} ist ein kommutativer Ring<br />

• R: = {reelle Zahlen} ist ein kommutativer Ring.<br />

4


Definition. Sei R ein kommutativer Ring.<br />

R heißt Körper, falls 0 ≠ 1 und für alle a ∈ R − {0} existiert ein b ∈ R mit<br />

a · b = 1.<br />

Bemerkung. Das Element b heißt Inverse von a.<br />

Beispiel.<br />

• Z ist kein Körper<br />

• Q und R sind Körper<br />

5


Definition. Seien a, b ∈ Z.<br />

a teilt b, geschrieben a | b, falls ein a ′ ∈ Z existiert mit aa ′ = b.<br />

Schreibweise: a ∤ b, falls nicht a|b.<br />

Beispiel.<br />

2 | 6, 6 | 12, 3 ∤ 8<br />

a | 0, 1 | a, a | a für alle a ∈ Z<br />

6


Behauptung. Aus a | b und b | c folgt a | c.<br />

Behauptung. Für a, b ∈ Z gilt: a | b und b | a =⇒ a = b oder a = −b.<br />

Folgerung. | ist eine partielle Ordnung in N.<br />

Behauptung. Seien a, b, c, d ∈ Z. Dann<br />

(1) c | a und c | b =⇒ c | (a + b) und c | (a − b)<br />

(2) c | a =⇒ (cd) | (ad)<br />

7


Definition. Eine Primzahl ist eine ganze Zahl p mit p ≥ 2 und der Eigenschaft<br />

für alle a ∈ Z.<br />

a | p und a > 1 =⇒ a = p<br />

Wir haben schon bewiesen (indirekter Beweis)<br />

Satz. (Euklid) Es gibt unendlich viele Primzahlen.<br />

Bemerkung. Die größte bis heute bekannte Primahl (Febr. 2005) ist<br />

2 25964951 − 1<br />

8


Variante des Prinzips der vollständigen Induktion.<br />

Für jedes n ∈ N, n ≥ n 0 , sei A(n) eine Aussage.<br />

Es gelte:<br />

Induktionsverankerung:<br />

A(n 0 ) ist wahr.<br />

Induktionsschritt:<br />

Für alle n ∈ N gilt:<br />

Ist A(k) wahr für alle n 0 ≤ k ≤ n, so ist A(n + 1) wahr.<br />

Dann ist A(n) wahr für alle n ≥ n 0 .<br />

9


Satz. Jede Zahl n ∈ N, n ≥ 2, ist ein Produkt von endlich vielen Primzahlen.<br />

Bemerkung. Die algorithmische Faktorisierung von ganzen Zahlen ist ein sehr<br />

schwieriges Problem. Darauf beruhen heute einige Kryptosysteme.<br />

10


Satz. Die Zerlegung einer Zahl n ∈ N, n ≥ 2, in Primzahlen ist eindeutig bis auf die<br />

Reihenfolge der Primfaktoren. D.h. ist<br />

n = p 1 · p 2 . . . p r = q 1 · q 2 . . . q s<br />

mit r, s ≥ 1 und Primzahlen p 1 , . . . p r , q 1 , . . . , q s ,<br />

so folgt r = s und es gibt eine bijektive Abbildung<br />

α: {1, 2, . . . , r} −→ {1, 2, . . . , r}, sodass<br />

p i = q α(i) für 1 ≤ i ≤ r.<br />

Beweis später.<br />

11


<strong>2.</strong>2 Darstellung ganzer Zahlen<br />

Satz. Zu (a, b) ∈ N 2 mit b > 0 gibt es genau ein Paar (q, r) ∈ N 2 mit<br />

a = qb + r und 0 ≤ r < b<br />

12


Bezeichnung:<br />

q heißt der Quotient und r der Rest bei der Division von a durch b:<br />

q = a quot b, r = a rem b.<br />

13


Algorithmische Beschreibung<br />

Eingabe: a, b ∈ N, wobei b ≥ <strong>2.</strong><br />

Ausgabe: Liste R (b-adische Darstellung von a)<br />

R ←− ( ) {leere Liste}<br />

while a ≠ 0 do<br />

r ←− a rem b<br />

a ←− a quot b<br />

leftappend r to R<br />

end-while<br />

end.<br />

14


Definition. Sei b ∈ N, b ≥ <strong>2.</strong> Seien a, l ∈ N.<br />

Ein Tupel (r l−1 , r l−2 , . . . , r 0 ) ∈ N l mit r l−1 ≠ 0 und r k < b für 0 ≤ k < l, heißt<br />

b-adische Darstellung von a ∈ N, falls<br />

a = r l−1 b l−1 + r l−2 b l−2 + . . . + r 1 b + r 0 .<br />

Man schreibt auch<br />

und nennt b die Basis.<br />

a = (r l−1 r l−2 . . . r 0 ) b<br />

b = 2<br />

b = 8<br />

b = 10<br />

b = 16<br />

Dual<br />

Oktal<br />

Dezimal<br />

Hexadezimal<br />

15


Satz. Sei b ∈ N, b ≥ 2, a ∈ N.<br />

Dann hat a eine b-adische Darstellung und diese ist eindeutig bestimmt.<br />

16


Beispiel.<br />

3081 = 3 · 10 3 + 0 · 10 2 + 8 · 10 1 + 1 · 10 0 = (3081) 10<br />

3081 = 2 11 + 2 10 + 2 3 + 2 0 = (110000001001) 2<br />

3081 = 12 · 16 2 + 9 · 16 0 = (C09) 16<br />

(Man schreibt hier A, B, C, D, E, F statt 10, 11, 12, 13, 14, 15.)<br />

17


<strong>2.</strong>3 GGT und Euklidischer Algorithmus<br />

Definition. Seien a, b ∈ Z. Eine Zahl c ∈ N heißt größter gemeinsamer Teiler<br />

(ggT) von a und b, falls gilt:<br />

(1) c | a und c | b<br />

(2) ∀d ∈ Z (d | a und d | b =⇒ d | c)<br />

Bemerkung. Der ggT ist eindeutig bestimmt (falls er existiert).<br />

Bezeichnung c = ggT(a, b)<br />

Definition. a, b ∈ Z heißen teilerfremd, falls ggT(a, b) = 1.<br />

18


Gibt es immer einen ggT?<br />

Wenn ja, wie berechnet man ihn (effizient)?<br />

Lemma. Sei a = qb + r, wobei a, b, q, r ∈ Z.<br />

Dann gilt ggT(a, b) = ggT(b, r).<br />

19


Euklidischer Algorithmus<br />

Eingabe: (a, b) ∈ N 2 mit b ≠ 0.<br />

Ausgabe: ggT(a, b)<br />

while b ≠ 0 do<br />

q ←− a quot b<br />

r ←− a rem b<br />

a ←− b<br />

b ←− r<br />

end-while<br />

return(a)<br />

end.<br />

20


Der Algorithmus terminiert, weil b bei jedem Schleifendurchgang kleiner wird.<br />

Der Algorithmus arbeitet korrekt (d.h. gemäß Spezifikation) aufgrund des Lemmas.<br />

21


Definition. Der Absolutbetrag von a ∈ Z ist definiert als<br />

⎧<br />

⎨ a falls a ≥ 0,<br />

|a|: =<br />

⎩ −a sonst.<br />

Bemerkung. ggT(a, b) = ggT(|a|, |b|) für a, b ∈ Z.<br />

Folgerung. Für alle a, b ∈ Z existiert der ggT(a, b).<br />

22


Zurück zum Beispiel a = 126, b = 35<br />

126 = 3 · 35 + 21<br />

35 = 1 · 21 + 14<br />

21 = 1 · 14 + 7<br />

14 = 2 · 7 + 0<br />

23


1 · 126 + 0 · 35 = 126<br />

0 · 126 + 1 · 35 = 35<br />

1 · 126 + (−3) · 35 = 21 (= 126 − 3 · 35)<br />

(−1) · 126 + 4 · 35 = 14 (= 35 − 21)<br />

2 · 126 + (−7) · 35 = 7 (= 21 − 14)<br />

Also für a = 126, b = 35<br />

Das geht allgemein!<br />

2 · a + (−7) · b = ggT(a, b)<br />

24


Erweiterter Euklidischer Algorithmus<br />

Eingabe: (a, b) ∈ N 2 mit b ≠ 0<br />

Ausgabe: (d, s, t) ∈ Z 3 mit d = ggT(a, b) und s · a + t · b = d<br />

r 0 ←− a; r 1 ←− b<br />

s 0 ←− 1; t 0 ←− 0<br />

s 1 ←− 0; t 1 ←− 1<br />

25


i ←− 1<br />

while r i ≠ 0 do<br />

q i ←− r i−1 quot r i<br />

r i+1 ←− r i−1 rem r i<br />

s i+1 ←− s i−1 − q i s i<br />

t i+1 ←− t i−1 − q i t i<br />

i ←− i + 1<br />

end-while<br />

return (r i−1 , s i−1 , t i−1 )<br />

26


Satz. Der Algorithmus durchlaufe bei Eingabe (a, b) ∈ N 2 , b ≠ 0, genau l Schleifen<br />

(l ∈ N). Dann ist r l+1 = 0. Für 1 ≤ i ≤ l + 1 gilt:<br />

(1) r i < r i−1 falls i ≥ 2<br />

(2) ggT(r i−1 , r i ) = ggT(a, b)<br />

(3) s i a + t i b = r i<br />

27


Folgerung.<br />

(i) Der Algorithmus terminiert.<br />

(ii) Er gilt r l = ggT(a, b) und s l · a + t l · b = ggT(a, b).<br />

28


Nachtrag: Eindeutigkeit der <strong>Primfaktorzerlegung</strong>.<br />

Lemma. Seien a, b, p ∈ Z, p Primzahl. Dann<br />

p | (ab) =⇒ (p | a oder p | b).<br />

29


Satz. Die Zerlegung einer Zahl n ∈ N, n ≥ 2, in Primzahlen ist eindeutig bis auf die<br />

Reihenfolge der Primfaktoren. D.h. gilt<br />

n = p 1 · p 2 . . . p r = q 1 · q 2 . . . q s<br />

mit r, s ≥ 1 und Primzahlen p 1 , . . . p r , q 1 , . . . , q s ,<br />

so folgt r = s und es gibt eine bijektive Abbildung<br />

α: {1, 2, . . . , r} −→ {1, 2, . . . , r} so dass<br />

p i = q α(i) für 1 ≤ i ≤ r.<br />

30


<strong>2.</strong>4 Rechnen modulo n<br />

Definition. Sei m ∈ N, m ≥ 1. Zwei Zahlen a, b ∈ Z heißen kongruent modulo m,<br />

falls m | (b − a).<br />

Man schreibt dafür a ≡ m b oder a ≡ b ( mod m).<br />

Lemma.<br />

(1) ≡ m ist eine Äquivalenzrelation in Z.<br />

(2) ≡ m ist eine “Kongruenzrelation” in Z, d.h. für a, b, a ′ , b ′ ∈ Z gilt:<br />

a ≡ m a ′ ∧ b ≡ m b ′ =⇒ a + b ≡ m a ′ + b ′ ∧ ab ≡ m a ′ b ′ .<br />

31


Definition. Für m, a ∈ Z, m ≥ 1, heißt die Äquivalenzklasse von a<br />

die Restklasse von a modulo m.<br />

[a] m : = {x ∈ Z: x ≡ m a}<br />

Offensichtlich gilt<br />

a ≡ m a ′ ⇐⇒ [a] m = [a ′ ] m .<br />

32


Definition. Sei m ∈ N, m ≥ 1. Die Menge der Restklassen modulo m ist eine<br />

Partition von Z. Sie wird mit Z m (oder Z/(m)) bezeichnet. Also<br />

Z m = {[a] m : a ∈ Z}.<br />

33


Lemma. Sei m ∈ N, m ≥ 1. Jede Restklasse modulo m enthält eine eindeutig<br />

bestimmte Zahl r ∈ {0, 1, . . . , m − 1}, welche mit Division mit Rest gewonnen<br />

wird:<br />

a = qm + r, 0 ≤ r < m =⇒ a ≡ m r<br />

r ≡ m r ′ 0 ≤ r, r ′ < m =⇒ r = r ′<br />

Folgerung. Z m = {[0] m , [1] m , . . . , [m − 1] m }, |Z m | = m.<br />

34


Wir definieren “Operationen” (m ∈ N, m ≥ 1)<br />

+: Z m × Z m −→ Z m , ([a] m , [b] m ) ↦−→ [a + b] m<br />

−: Z m −→ Z m , [a] m ↦−→ [−a] m<br />

·: Z m × Z m −→ Z m , ([a] m , [b] m ) ↦−→ [a · b] m<br />

Behauptung. Diese Abbildungen sind wohldefiniert.<br />

35


Satz. Sei m ∈ N, m ≥ 1. Die Menge Z m mit den Abbildungen +, −, · und den<br />

ausgezeichneten Elementen [0] m , [1] m ist ein kommutativer Ring.<br />

Man schreibt:<br />

[a] m + [b] m : = [a + b] m<br />

−[a] m : = [−a] m<br />

[a] m · [b] m : = [a · b] m<br />

36


Beweis. Es müssen die folgenden Rechenregeln gezeigt werden:<br />

Für α, β, γ ∈ Z m gelten<br />

(α + β) + γ = α + (β + γ) (+ ist assoziativ)<br />

α + β = β + α (+ ist kommutativ)<br />

α + 0 = 0 + α = α (0 ist Neutralelement von +)<br />

α + (−α) = (−α) + α = 0 (Inverse bzgl. +)<br />

(α · β) · γ = α · (β · γ) (· ist assoziativ)<br />

α · β = β · α (· ist kommutativ)<br />

α · 1 = 1 · α = α (1 ist Neutralement von ·)<br />

α · (β + γ) = α · β + α · γ (Distributivgesetz)<br />

37


Zeigen exemplarisch das Distributivgesetz<br />

α · (β + γ) = α · β + α · γ<br />

38


Bemerkung. Sei m ∈ N, m ≥ 1. Die Abbildung<br />

f : Z −→ Z m : a ↦−→ [a] m<br />

erfüllt folgende Eigenschaften: für a, b ∈ Z gilt<br />

f(a + b) = f(a) + f(b)<br />

f(−a) = −f(a)<br />

f(a · b) = f(a) · f(b)<br />

f(0) = [0] m , f(1) = [1] m .<br />

Allgemein nennt man eine Abbildung f : R → S zwischen kommutativen Ringen<br />

mit diesen Eigenschaften einen Ringhomomorphismus.<br />

Das obige f ist also ein surjektiver Ringhomomorphismus.<br />

39


Definition. Sei R ein kommutativer Ring, a ∈ R.<br />

(1) a heißt Einheit, falls es b ∈ R gibt mit a · b = 1 (b heißt Inverse von a).<br />

(2) a heißt Nullteiler, falls es ein b ∈ R\{0} gibt mit a · b = 0.<br />

Bemerkung.<br />

(1) Ist a ∈ R eine Einheit, so ist seine Inverse eindeutig bestimmt. Diese wird mit<br />

a −1 bezeichnet.<br />

(2) Sind a, b Einheiten, so auch a −1 und a · b. Ferner ist 1 eine Einheit.<br />

(3) 0 ist ein Nullteiler.<br />

Es gilt {a: a Einheit } ∧ {a: a Nullteiler } = ∅.<br />

40


Bemerkung. Sei R ein kommutativer Ring. Dann<br />

R ist ein Körper ⇐⇒ {a ∈ R: a Einheit } = R\{0}.<br />

Bezeichnung:<br />

R × : = {a ∈ R: a Einheit }<br />

heißt die Einheitengruppe des Ringes R.<br />

Was sind die Einheiten in Z m ?<br />

Für welche m ist Z m ein Körper?<br />

41


Satz. Sei m ∈ N, m ≥ 1. Dann<br />

Z × m = {[a] m : a ∈ Z, ggT(a, m) = 1}.<br />

Ergänzung. Der Beweis zeigt, dass Inversen mittels des erweiterten Euklidischen<br />

Algorithmus berechnet werden können.<br />

42


Satz. Sei m ∈ N, m ≥ 1.<br />

Der Restklassenring Z m ist genau dann ein Körper, wenn m eine Primzahl ist.<br />

43


Die endlichen Körper Z p sind außerordentlich wichtig in der Informatik.<br />

Andere Bezeichnung dafür: F p = Z p für eine Primzahl p.<br />

Sie haben Anwendungen in:<br />

- Codierungstheorie<br />

- Kryptographie<br />

- Komplexitätstheorie<br />

- usw.<br />

44


<strong>2.</strong>5 Satz von Euler und effizientes Potenzieren<br />

Definition. Die Eulersche Phi-Funktion (L. Euler, 1707-1783) ist definiert durch<br />

ϕ(m): = |Z × m| für m ∈ N, m ≥ 1.<br />

Gemäß unserer Charakterisierung von ϕ(m) gilt<br />

ϕ(m) = |{a ∈ N: 0 ≤ a < m, ggT(a, m) = 1}|.<br />

Bemerkung. Für eine Primzahl p gilt ϕ(p) = p − 1, da ggT(a, p) = 1 für 1 ≤ a < p.<br />

45


Satz. Für eine Primzahl p und e ∈ N, e ≥ 1, gilt<br />

ϕ(p e ) = p e−1 (p − 1).<br />

Proposition. Seien p, q verschiedene Primzahlen. Dann gilt<br />

ϕ(pq) = (p − 1)(q − 1).<br />

Beweis als Übungsaufgabe.<br />

46


Satz von Euler. Seien a, m ∈ Z teilerfremd und m ≥ 1.<br />

Dann gilt<br />

a ϕ(m) ≡ m 1.<br />

Für den Beweis holen wir etwas aus.<br />

47


Definition. Eine Menge G mit Abbildungen<br />

G × G −→ G,<br />

G −→ G,<br />

(a, b) −→ a ◦ b<br />

a −→ a<br />

und einem ausgezeichneten Element e ∈ G heißt Gruppe, falls folgende<br />

Rechenregeln für alle a, b, c ∈ G gelten:<br />

(a ◦ b) ◦ c = a ◦ (b ◦ c) (Assoziativität)<br />

a ◦ e = e ◦ a = a (Neutralelement)<br />

a ◦ a = a ◦ a = e (Inverse).<br />

Gilt zusätzlich das Kommutativitätsgesetz<br />

so heißt G abelsch (oder kommutativ).<br />

a ◦ b = b ◦ a für a, b ∈ G<br />

48


Beispiel. Sei R ein kommutativer Ring.<br />

1. R ist mit den Festsetzungen<br />

a ◦ b: = a + b, a: = −a, e: = 0<br />

eine abelsche Gruppe. Diese heißt die additive Gruppe des Rings und wird mit<br />

(R, +) bezeichnet.<br />

Beispiel: (Z, +), (Q, +), (R, +), (Z m , +)<br />

49


<strong>2.</strong> R × = {a ∈ R: a Einheit in R} ist mit den Festsetzungen<br />

a ◦ b: = a · b, a: = Inverse von a, e: = 1<br />

eine abelsche Gruppe. Diese heißt die Einheitengruppe des Rings und wird mit<br />

(R × , ·) bezeichnet.<br />

Z.B.<br />

(Z × = {−1, 1}, ·), (Q × = Q\{0}, ·)<br />

Besonders interessant ist die Einheitengruppe Z × m von Z m .<br />

50


Man schreibt die Operation ◦ in G manchmal<br />

additiv: a ◦ b = a + b, e = 0<br />

oder<br />

multiplikativ: a ◦ b = a · b, e = 1.<br />

51


Definition. Sei G eine Gruppe mit multiplikativ geschriebener Operation. Die<br />

Potenzen von g ∈ G werden rekursiv definiert durch<br />

g 0 : = 1<br />

g n+1 : = (g n ) · g für n ∈ N.<br />

Außerdem definiert man für n ∈ N und g ∈ G<br />

g −n : = (g) n .<br />

Bemerkung. g = g −1 . Mit Induktion zeigt man leicht das Potenzgesetz<br />

g n · g m = g n+m für n, m ∈ Z.<br />

52


Bezeichnung. Eine Gruppe G heißt endlich, falls die Menge G endlich ist.<br />

Satz. Sei G eine endliche abelsche Gruppe (multiplikativ geschrieben).<br />

Dann gilt g |G| = 1 für alle g ∈ G.<br />

53


Wenden diesen Satz auf die Gruppe G = Z × m an.<br />

Satz von Euler. Seien a, m ∈ Z teilerfremd und m ≥ 1.<br />

Dann gilt<br />

a ϕ(m) ≡ m 1.<br />

54


Der Satz von Euler liefert für eine Primzahl m = p folgendes Ergebnis:<br />

Kleiner Satz von Fermat (1601-1655)<br />

Für eine Primzahl p und a ∈ Z mit p ∤ a gilt<br />

a p−1 ≡ p 1.<br />

55


Wie berechnet man die Potenz g n in einer Gruppe effizient?<br />

56


Algorithmus “Square and Multiply”<br />

Eingabe: Gruppe G, g ∈ G, n ∈ N<br />

Ausgabe: g n<br />

x ← 1; y ← g; k ← n {Kommentar: g n = y k · x}<br />

while k > 0 do<br />

end-while<br />

return(x)<br />

end.<br />

if 2 | k then<br />

y ← y 2 ; k ← k/2<br />

else<br />

x ← xy; y ← y 2 ; k ← (k−1)<br />

2<br />

end-if<br />

57


Behauptung. Sei n = α l−1 2 l−1 + . . . + α 1 2 + α 0 mit a l−1 = 1, α i ∈ {0, 1}.<br />

Für 1 ≤ i ≤ l gilt nach dem i-ten Schleifendurchgang<br />

x = g α i−12 i−1 +...+α 0<br />

y = g 2i<br />

k = α l−1 2 l−1−i + . . . + α i+1 2 + α i<br />

Dies folgt leicht mit Induktion nach i.<br />

Insbesondere gilt nach dem l-ten Schleifendurchgang<br />

x = g α l−12 l−1 +...+α 0<br />

= g n .<br />

Die Ausgabe des Algorithmus ist also tatsächlich g n .<br />

58


<strong>2.</strong>6 Das RSA Kryptosystem<br />

• Bob möchte Alice eine geheime Nachricht übers Internet schicken.<br />

• Dazu wird der Klartext x von Bob verschlüsselt zum chiffrierten Text y. Dieser<br />

wird übers Internet verschickt. Anschließend entschlüsselt Alice den Text y.<br />

• Traditionellerweise verwenden Alice und Bob zum Ver- und Entschlüsseln den<br />

gleichen geheimen Schlüssel.<br />

• Der sichere Schlüsselaustausch kann problematisch sein.<br />

59


Revolutionäre Idee von Diffi und Hellmann (1976) der asymmetrischen<br />

Kryptosysteme:<br />

• Jeder Teilnehmer hat einen öffentlichen und einen privaten Schlüssel<br />

• Ferner hat man in Abhängigkeit dieser Schlüssel eine<br />

Verschlüsselungsfunktion E (encrypt)<br />

Entschlüsselungsfunktion D (decrypt)<br />

Gewünschte Eigenschaften<br />

1. Korrekte Entschlüsselung:<br />

Für jeden Klartext x gilt D(E(x)) = x.<br />

<strong>2.</strong> Public Key Eigenschaft:<br />

Aus dem privaten Schlüssel kann der öffentliche Schlüssel effizient berechnet<br />

werden, aber nicht umgekehrt.<br />

3. Die Funktion E und D sind effizient berechenbar.<br />

60


Jeder Teilnehmer erzeugt für sich einen privaten Schlüssel und berechnet daraus den<br />

öffentlichen Schlüssel. Der öffentliche Schlüssel wird publiziert.<br />

Ist es überhaupt möglich, so ein System zu konstruieren?<br />

Ja! Mittels <strong>Zahlentheorie</strong>.<br />

61


RSA System<br />

Seien p, q verschiedene Primzahlen, n = pq<br />

Sei d ∈ N mit ggT(d, ϕ(n)) = 1,<br />

d < ϕ(n).<br />

Privater Schlüssel: (p, q, d).<br />

Berechne e ∈ N mit<br />

ed ≡ ϕ(n) 1,<br />

e < ϕ(n),<br />

mittels dem erweiterten Euklidschen Algorithmus.<br />

Öffentlicher Schlüssel: (n, e).<br />

Verschlüsselungsfunktion E : Z n −→ Z n , x ↦→ x e<br />

Entschlüsselungsfunktion D : Z n −→ Z n , y ↦→ y d<br />

62


Die Funktionen E und D können mittels des Algorithmus “Square and Multiply”<br />

effizient berechnet werden.<br />

Korrekte Entschlüsselung?<br />

Proposition. Seien e, d, n wie im RSA System. Dann gilt für alle x ∈ Z<br />

x ed ≡ n x.<br />

63


Zur “Sicherheit”<br />

Satz. Die folgenden drei Probleme sind “polynomialzeitäquivalent“ (gegeben n)<br />

(1) Faktorisierung von n<br />

(2) Berechnen von ϕ(n)<br />

(3) Berechnen von d<br />

Wir verzichten auf den Beweis.<br />

Die Faktorisierung von n = pq für Primzahlen p, q etwa gleicher Größe (z.B. 100<br />

Dezimalstellen) gilt als sehr schwieriges Problem. Anderseits kann man leicht<br />

Primzahlen dieser Größe erzeugen.<br />

64

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!