18.11.2013 Aufrufe

Elementare Zahlentheorie und Kryptographie

Elementare Zahlentheorie und Kryptographie

Elementare Zahlentheorie und Kryptographie

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!