Elementare Zahlentheorie und Kryptographie
Elementare Zahlentheorie und Kryptographie
Elementare Zahlentheorie und Kryptographie
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Aller Wahrscheinlichkeit nach ist dann b j − b i eine Einheit in Z/N <strong>und</strong> dann<br />
läßt sich (∗) nach x Auflösen.<br />
Merke: In jeder Gruppe G läßt sich das diskrete Logarithmusproblem in erwarteter<br />
Laufzeit von O( √ |G|) Schritten berechnen.<br />
Bemerkung: Dies ist für kleine Gruppen relevant. Im Fall |G| ≈ 2 1000 ist die<br />
Beschleunigung aber bei weitem nicht stark genug, um diskrete Logarithmen<br />
mit dieser Methode effektiv berechnen zu können.<br />
4.3 Der Algorithmus von Silver, Pohlig <strong>und</strong> Hellman<br />
Sei G eine zyklische Gruppe <strong>und</strong> g ∈ G. Wir nehmen an, daß die Primfaktorzerlegung<br />
ord(g) = l e1<br />
1 · · · let t<br />
von ord(g) bekannt ist.<br />
Wir stellen einen Algorithmus für das Berechnen von<br />
Log G,g : 〈g〉 → N<br />
vor, der in manchen Fällen schneller ist als der naive Algorithmus “Berechnen<br />
der entsprechenden Zeile einer Potenzierungstafel”. Zur Abkürzung setzen wir<br />
im folgenden Log := Log G,g .<br />
Für jeden Primteiler l von ord(g) sei g l := g ord(g)/l . g l ist also ein Erzeuger der<br />
eindeutig bestimmten Untergruppe U l von 〈g〉 der Ordnung l.<br />
Wir gehen im folgenden davon aus, daß Log gl für jeden Primteiler l von ord(g)<br />
bereits implementiert ist. Meist wird in einer Initialisierungsphase für jeden<br />
Primteiler l von ord(g) die Logarithmentafel für Log gl<br />
berechnet.<br />
Schon hier sieht man: Wenn ord(g) prim ist, dann wird dieses Vorgehen keinerlei<br />
Vorteil gegenüber dem naiven Algorithmus haben. Wenn aber ord(g) ein<br />
Produkt von kleinen Primzahlen ist, dann ist der Zeitgewinn erheblich.<br />
Beispiel: p = 30000001 ist prim. g = [2744] ist ein Element der Ordnung<br />
10 7 in F × 30000001 . Die Primteiler von ord(g) = 107 sind 2 <strong>und</strong> 5 (also sehr<br />
klein verglichen mit ord(g)). g 2 = g 107 /2 = [30000000] hat Ordnung 2 <strong>und</strong><br />
g 5 = g 107 /5 = [18544125] hat Ordung 5.Es sollen Logarithmen Log g zur Basis<br />
g berechnet werden. In der Initialisierungsphase des Algorithmus von Silver,<br />
Pohlig <strong>und</strong> Hellman werden die beiden Potenzierungstafeln<br />
k 0 1 2 3 4 (5) (6)<br />
g k 5 [1] [18544125] [20552807] [9404415] [11498654] ([1]) ([18544125]) ,<br />
k 0 1 (2) (3)<br />
g k 2 [1] [30000000] ([1]) ([30000000]) · · ·<br />
67