09.02.2014 Aufrufe

Algorithmische Zahlentheorie und Kryptographie - Mitschriften von ...

Algorithmische Zahlentheorie und Kryptographie - Mitschriften von ...

Algorithmische Zahlentheorie und Kryptographie - Mitschriften von ...

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.

1.1.3 Komplexität gr<strong>und</strong>legender Probleme<br />

Proposition: Seien n <strong>und</strong> m ganze Zahlen. Die Schulmethode zum . . .<br />

• Addieren benötigt O(log n + log m) Bitoperationen.<br />

• Subtrahieren benötigt O(log n + log m) Bitoperationen.<br />

• Multiplizieren benötigt O(log n · log m) Bitoperationen.<br />

• Dividieren mit Rest benötigt O((Log m − Log n + 1) · Log n) Bitoperationen.<br />

In der Übung wird Multiplizieren in (log m + log n) 1.59 (mit 1.59 = log 3 + ε)<br />

betrachtet.<br />

Satz: Seien n, m ganze Zahlen mit Log n, Log m ≤ k.<br />

1. Die Methode <strong>von</strong> Schönhagen <strong>und</strong> Strassen zum Multiplizieren <strong>von</strong> m<br />

<strong>und</strong> n benötigt O(k · log k · log log k) ⊆ Õ(k) Bitoperationen.<br />

2. Die Methode <strong>von</strong> Newton zum Dividieren mit Rest benötigt ebenfalls<br />

Õ(k) Bitoperationen.<br />

Beide Methoden basieren auf der diskreten bzw. schnellen Fourier-Transformation.<br />

Proposition: Die modulare Exponentiation (a n mod m) kann mit<br />

O(log m log 2 n) (Schulmethode) bzw. Õ(log m log n) (Schönhagen, Strassen,<br />

Newton) Bitoperationen durchgeführt werden.<br />

Beispiel: Perfekte Potenzen<br />

Definition: Eine Zahl n ist eine perfekte Potenz, falls es a, b ∈ N gibt mit<br />

a, b ≥ 2 <strong>und</strong> a b = n.<br />

Idee hier: Teste alle b bis zu einer oberen Schranke, wegen a ≥ 2 gilt b ≤ log n.<br />

Um dann für ein festes b ein passendes a zu finden, benutzen wir binäre Suche.<br />

Algorithmus mit Vorbedingung n ≥ 4:<br />

1 b = 2 ;<br />

2 while (2 b ≤n ) {<br />

3 a min = 1 ;<br />

4 a max = n ;<br />

5 while ( ( a max − a min ) ≥ 2) {<br />

6 a = 1 ( a 2 min + a max ) ;<br />

3

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!