Algorithmische Zahlentheorie und Kryptographie - Mitschriften von ...
Algorithmische Zahlentheorie und Kryptographie - Mitschriften von ...
Algorithmische Zahlentheorie und Kryptographie - Mitschriften von ...
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