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.

Wenn p eine große Primzahl <strong>und</strong> g eine Primitivwurzel in F × p ist, dann hat man<br />

in dem Square and Multiply Algorithmus ein schnelles 2 Verfahren zur Berechnung<br />

von exp F<br />

×<br />

p ,g(u) für u ∈ Z/(p − 1)Z.<br />

Für die Berechnung von log F<br />

×<br />

p ,g<br />

kann man eine Tabelle wie in obigem Beispiel<br />

anlegen, <strong>und</strong> dann auslesen. Das kostet natürlich enorm viel Laufzeit. Das Berechnen<br />

des relevanten Teils der Zeile [x] der Potenzierungstabelle braucht ca.<br />

2 B Schritte, wenn ord([x]) eine B-Bit-Zahl ist. Es gibt etwas schnellere Algorithmen<br />

für die Berechnung diskreter Logarithmen, z.B.<br />

a) den Algorithmus von Silver, Pohig <strong>und</strong> Hellman,<br />

b) die Babystep-Giantstep-Methode von Shanks (siehe [B], Abschnitt 9.3)<br />

oder<br />

c) die Index-Kalkulus-Methode.<br />

All diese Algorithmen sind i.a. nicht polynomial in der Bitlänge von p, zumindest<br />

wenn die Basis g des Logarithmus so beschaffen ist, daß ord(g) einen großen<br />

Primteiler 3 l hat<br />

Nach dem Stand der Technik 4 gilt es als praktisch unmöglich, log F<br />

×<br />

p ,g(x) zu berechnen,<br />

wenn p eine 1000-Bit Primzahl ist <strong>und</strong> ord(g) einen 200-Bit Primteiler<br />

hat.<br />

Wir wissen bereits, dass für jede Primzahl p die Gruppe F × p zyklisch ist. Die<br />

zyklischen Gruppen haben eine sehr einfache Strukturtheorie. Wir beenden den<br />

Abschnitt mit wichtigen Sätzen über zyklische Gruppen.<br />

Satz 4.1.7 Sei G eine endliche, zyklische Gruppe <strong>und</strong> g ein Erzeuger. Für jeden<br />

positiven Teiler d von |G| hat G genau eine Untergruppe U mit |U| = d nämlich<br />

U = 〈g |G|/d 〉.<br />

Beweis: Gelte dm = |G|. Sei N = |G|. Offenbar ist U := 〈g m 〉 eine Untergruppe<br />

mit<br />

|U| = ord(g m ) = |G|/m = d<br />

(beachte 4.1.2, 4.1.3).<br />

Sei V eine Untergruppe der Ordnung d. Wir zeigen V ⊂ U. (Dann muß U = V<br />

gelten wg. |U| = |V | = d). Sei v ∈ V beliebig. Wegen |V | = d folgt v d =<br />

1. Wie jedes Element von G ist v eine Potenz von g: Sagen wir v = g s mit<br />

s ∈ {0, · · · , N − 1}. Dann gilt 1 = g ds <strong>und</strong> mit ord(g) = N folgt N | ds, d.h.<br />

md | sd. Daher ist s ein Vielfaches von m. Also existiert ein k ∈ {0, · · · , d − 1}<br />

mit s = mk. Es folgt v = g mk ∈ U.<br />

□<br />

2 polynomial in der Bitlänge von p<br />

3 vielleicht ist die Bitlänge von l halb so groß wie die Bitlänge von p<br />

4 im Jahr 2007<br />

63

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!