Elementare Zahlentheorie und Kryptographie
Elementare Zahlentheorie und Kryptographie
Elementare Zahlentheorie und Kryptographie
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
d.h. mit x j = f j (x 0 ), wobei f j = f ◦ · · · ◦ f die j-malige Hintereinanderausführung<br />
von f ist. Da X endlich ist, kann die Abbildung<br />
N → X, i ↦→ x i<br />
nicht injektiv sein. Es muß also ein Indexpaar (i, j) mit i < j <strong>und</strong> x i = x j geben.<br />
Ein solches Indexpaar wird im folgenden eine Kollision in (x i ) i genannt.<br />
Sei (v, w) das kleinste solche Indexpaar <strong>und</strong> s = w −v. Dann gilt für jedes j ∈ N<br />
schon x v+j+s = f j (x v+s ) = f j (x v ) = x v+j . D.h. nach einer Vorperiode der<br />
Länge v mündet (x i ) i in einen Zyklus der Periodenlänge s. Wenn f eine Zufallsabbildung<br />
(d.h. ein zufällig gewähltes Element der Menge aller Abbildungen<br />
X → X) ist, dann sind v <strong>und</strong> s Zufallsvariable mit Erwartungswert ≈ 0.6 √ N.<br />
Faktum B. Sei f : X → X eine Zufallsabbildung <strong>und</strong> x 0 ∈ X ein Startwert.<br />
Dann läßt sich eine Kollision in der Folge (x i ) i = (f i (x 0 )) in erwarteter Laufzeit<br />
von O( √ N) Schritten berechnen.<br />
Sei wieder G eine endliche abelsche Gruppe <strong>und</strong> g ∈ G. Der Clou bei der<br />
ρ-Methode von Pollard ist folgendes: Das diskrete Logarithmusproblem (d.h.<br />
Problem A im Spezialfall der Abbildung exp g ) kann durch einen “Trick” (Betrachten<br />
einer geeigneten Hilfsfunktion) überführt werden in ein Problem, das<br />
auf Gr<strong>und</strong> von Faktum B in O( √ |G|) Schritten gelöst werden kann. Dies ergibt<br />
eine Verbesserung der Laufzeit von O(|G|) auf O( √ |G|).<br />
Wir gehen nun auf die Details ein. Sei o.E. G = 〈g〉 zyklisch mit Erzeuger g.<br />
Sei h ∈ G. Wir wollen x mit g x = h berechen. Sei G = T 1 ∪ T 2 ∪ T 3 eine<br />
disjunkte Zerlegung in drei etwa gleich große Teilmengen. Wir betrachten die<br />
Hilfsfunktion<br />
⎧<br />
⎨ xg x ∈ T 1<br />
f : G → G, x ↦→ x 2 x ∈ T 2<br />
⎩<br />
xh x ∈ T 3<br />
Seien a 0 , b 0 ∈ Z/N (N := |G|) <strong>und</strong> x 0 = g a0 h b0 . Seien (x i ) i , (a i ) i <strong>und</strong> (b i ) i die<br />
rekursiv definierten Folgen mit<br />
<strong>und</strong><br />
x i+1 = f(x i ),<br />
⎧<br />
⎨ a i + 1 x ∈ T 1<br />
a i+1 = 2a i x ∈ T 2<br />
⎩<br />
a i x ∈ T 3<br />
⎧<br />
⎨ b i x ∈ T 1<br />
b i+1 = 2b i x ∈ T 2 .<br />
⎩<br />
b i + 1 x ∈ T 3<br />
Dann gilt x i = g ai h bi für alle i. Man findet nach Faktum B in erwarteter Laufzeit<br />
von O( √ N) Rechenschritten eine Kollision (i, j) in der Folge (x i ) i . Dann gilt<br />
g ai h bi = g aj h bj <strong>und</strong> das impliziert g ai−aj = h bj−bi = g x(bj−bi) . Daraus gewinnt<br />
man die folgende Gleichung im Ring Z/N:<br />
a i − a j = x(b j − b i ).<br />
66