Schnelle modulare Exponentiation
- Art: Bachelorarbeit
- Autor: Uwe Schmidt
- Abgabedatum: Mai 2005
- Umfang: 118 Seiten
- Dateigröße: 1,3 MB
- Note: 1,3
- Institution / Hochschule: FernUniversität in Hagen Deutschland
- ISBN (eBook): 978-3-8324-8925-0
-
ISBN (Paperback) :
978-3-8324-8925-0 P - ISBN (CD) :978-3-8324-8925-0 CD
- Sprache: Deutsch
- Prämierung:
- Arbeit zitieren: Schmidt, Uwe Mai 2005: Schnelle modulare Exponentiation, Hamburg: Diplomica Verlag
- Schlagworte: Kryptographie, Square and Multiply, Fenstertechnik, Additionskette, Divisionskette
In den Warenkorb
98,00 €
Bachelorarbeit von Uwe Schmidt
Zusammenfassung:
In dieser Arbeit werden Algorithmen dargestellt und analysiert, die die in kryptographischen Verfahren häufig vorkommende modulare Exponentiation a^e mod m möglichst schnell berechnen.
Nach der Einleitung in Kapitel 1 werden in Kapitel 2 einige wichtige mathematische Grundlagen vorgestellt. Dabei handelt es sich um den euklidischen Algorithmus, den erweiterten euklidischen Algorithmus, um die modulare Arithmetik, Primzahlen und die für die Beurteilung der Komplexität von Algorithmen wichtige O-Notation.
In Kapitel 3 werden einige kryptographische Verfahren, in denen die modulare Exponentiation eine große Rolle spielt, beschrieben. Zur Beurteilung der Komplexität wird für jedes Verfahren aufgeführt, wie oft und mit welchen Bitlängen die modulare Exponentiation berechnet wird.
Die modulare Multiplikation ist Thema des Kapitels 4. Algorithmen für die Multiplikation und für die Reduktion nach der „Schulmethode“ werden dargestellt. Es wird gezeigt wie mit einem speziellen Algorithmus für die Quadrierung eine Beschleunigung um ca. 25% erzielt werden kann. Ein rekursiver Multiplikationsalgorithmus, der für sehr große Zahlen schneller als der klassische Algorithmus arbeitet, wird vorgestellt. Den Schluss des Kapitels 4 bildet ein Abschnitt über die Montgomerymultiplikation.
In Kapitel 5 werden Methoden zur modularen Exponentiation behandelt, die ohne Vorberechnungen auskommen. Hierbei handelt es sich um die Binär-Methode, die m-ary-Method und die Fenstertechnik. Neben der Anzahl der Multiplikationen ist auch die Anzahl der während der Berechnung zu speichernden Zwischenergebnisse ein wichtiger Parameter für die Ausführungsgeschwindigkeit. Beide Parameter werden für die jeweiligen Verfahren diskutiert.
Die modulare Exponentiation mit Vorberechnungen wird in Kapitel 6 behandelt. Dort wird zunächst auf die Additionsketten eingegangen. Es wird gezeigt, dass das mathematische Problem des Findens einer möglichst kurzen Additionskette, gleichbedeutend mit dem Finden eines möglichst schnellen Exponentiationsalgorithmus ist. Im Unterabschnitt 6.1.1 wird auf die Möglichkeit eingegangen, durch mehrere parallel arbeitende Multiplizierer die Exponentiation zu beschleunigen. Es folgt ein Abschnitt über Divisionsketten, ein Verfahren, das nicht nur auf die Reduzierung der Multiplikationen abzielt. Durch Verringerung von zu speichernden Zwischenergebnissen werden langsame Speicherzugriffe verhindert und so eine Beschleunigung der Berechnung erzielt. In Abschnitt 6.3 wird ein Algorithmus für die Berechnung modularer Exponentiationen mit fester Basis und variablen Exponenten vorgestellt (BMGW-Algorithmus). Beendet wird Kapitel 6 mit einem Abschnitt über die Exponentiation mit dem chinesischen Restsatz beim RSA-Verfahren.
In Kapitel 7 werden die Ergebnisse der vorangegangenen Kapitel zusammengefasst.
Die Arbeit endet mit Kapitel 8. Hier wird die beispielhafte Implementierung eines Verfahrens zur modularen Exponentiation beschrieben. Implementiert wird das Divisionskettenverfahren.
Inhaltsverzeichnis:
| Erklärung | III | |
| Inhaltsverzeichnis | V | |
| Abbildungsverzeichnis | VII | |
| Tabellenverzeichnis | IX | |
| Listings | X | |
| Symbolverzeichnis | XI | |
| Kurzfassung | XII | |
| 1. | Einleitung | 1 |
| 2. | Grundlagen | 3 |
| 2.1 | Euklidischer Algorithmus | 3 |
| 2.2 | Erweiterter euklidischer Algorithmus | 3 |
| 2.3 | Modulare Arithmetik, Restklassen | 4 |
| 2.3.1 | Rechenregeln der modularen Arithmetik | 5 |
| 2.4 | Primzahlen | 6 |
| 2.5 | Chinesischer Restsatz | 7 |
| 2.6 | O-Notation | 7 |
| 3. | Kryptographische Verfahren | 8 |
| 3.1 | Digital Signature Algorithm | 9 |
| 3.2 | ElGamal | 10 |
| 3.3 | Pohlig Hellman | 12 |
| 3.4 | Rabin | 12 |
| 3.5 | RSA | 14 |
| 3.6 | Zusammenfassung | 16 |
| 4. | Modulare Multiplikation | 18 |
| 4.1 | Modulare Multiplikation mit ”Schulmethode“ | 18 |
| 4.2 | Modulare Quadrierung | 21 |
| 4.3 | Rekursiver Multiplikationsalgorithmus | 23 |
| 4.4 | Montgomery-Multiplikation | 24 |
| 5. | Modulare Exponentiation ohne Precalculation | 27 |
| 5.1 | Square and Multiply | 27 |
| 5.2 | Left to Right Binary Method | 29 |
| 5.3 | m-ary Method | 31 |
| 5.4 | Fenstertechnik | 36 |
| 5.5 | Zusammenfassung | 40 |
| 5.6 | Modulare Exponentiation mit der Montgomery-Multiplikation | 42 |
| 6. | Modulare Exponentiation mit Precalculation | 45 |
| 6.1 | Additionsketten | 45 |
| 6.1.1 | Parallelisierung | 50 |
| 6.2 | Divisionsketten | 52 |
| 6.3 | BMGW-Algorithmus | 58 |
| 6.4 | Exponentiation mit chinesischem Restsatz | 63 |
| 7. | Ergebnis | 65 |
| 8. | Implementierung des Divisionskettenverfahrens | 68 |
| A. | Anhang | 73 |
| A.1 | Versuchsanordnung Rekursiver Multiplikationsalgorithmus | 73 |
| A.2 | Tabellierung der Aufwandsfunktionen des BMGW-Algorithmus | 81 |
| A.3 | Quellcode für die Implementierung des Divisionskettenverfahrens | 84 |
| Literaturverzeichnis | 104 |
Wie beim m-ary-Verfahren werden auch beim ’Sliding-Window’ zun¨chst die anibi berechnet a und in einer Tabelle gespeichert. Die Anzahl der Multiplikationen f¨r die Berechnung der u nibi a reduziert sich allerdings erheblich. Da die nibi immer ein f¨hrendes Eins-Bit haben, u kann n¨mlich auf die untere H¨lfte der Tabelle verzichtet werden. Um die Tabelle aufzubaua a en, muss a zun¨chst d − 1 mal modular quadriert werden. Dadurch erh¨lt man den ersten a a Tabelleneintrag. Alle weiteren Tabelleneintr¨ge erh¨lt man durch wiederholtes Multiplizieren a a mit a. Vollst¨ndig ist die Tabelle dann nach weiteren 2d−1 − 1 Multiplikationen. Insgesamt a sind f¨r die Berechnung der anibi also d − 1 + 2d−1 − 1 = d − 2 + 2d−1 modulare Multipliu ∗ kationen notwendig. Der Restfaktor anib findet sich eventuell nicht in der Tabelle, da nib∗ k¨rzer als d sein kann. Er muss separat berechnet werden. Erfolgt dies mittels Square and u Multiply, so kann die Berechnung mit der Berechnung der anibi verschr¨nkt werden. Zu den a sowieso ausgef¨hrten Quadrierungen kommen dann nach Abschnitt 5.1 noch durchschnittu [...]
Die Fenstertechnik [3], auch Sliding Window Techniques genannt, basiert auf der m-aryMethode. Auch hier wird der Exponent in gleich große Bl¨cke zerlegt. Allerdings werden o nur Bl¨cke mit f¨hrenden Eins-Bits ausgew¨hlt. Dazu wird ein d-breites ’Fenster’ auf den o u a Exponenten gelegt. Der Fensterinhalt wird dann als Nibble nibi gew¨hlt, wenn das h¨chsta o wertige Bit gleich Eins ist. Anschließend wird das Fenster um d Stellen weiter nach rechts verschoben. Ist das h¨chstwertige Bit wieder Eins, wird erneut ein Nibble gew¨hlt. Wenn o a nicht, wird das Fenster wiederholt um jeweils eine Stelle weiter nach rechts verschoben bis es Eins ist. Betrachtet man Gleichung 5.5, so sieht man, dass f¨hrende Nullbits ubersprungen u ¨ nibi werden k¨nnen, da sie f¨r die Berechnung der a o u keinen Enfluss haben. Allerdings muss f¨r jedes ubersprungene Bit vor der Multiplikation mit anibi einmal quadriert werden. Sei si u ¨ die Anzahl der vor dem Nibble nibi ubersprungenen Bits und z die Anzahl der verbleiben¨ den, niederwertigen Exponentenbits plus der zuvor ubersprungenen Null-Bits, dann wird aus ¨ [...]
Mit Einbeziehung eines verk¨rzten Restnibbles w¨re die Anzahl der Multiplikationen noch u a etwas geringer. Denn die Anzahl der Werte, die das Restnibble annehmen kann, ist geringer als die der anderen Nibbles, und somit die Wahrscheinlichkeit, dass es gleich Null ist, etwas h¨her. Auf diese Betrachtung wird im Folgenden aber verzichtet und mit 5.6 weitergearbeitet. o F¨r einige gr¨ßere Exponenten ist die Gleichung 5.6 ausgewertet worden. Das Ergebnis findet u o sich in Tabelle 5.9 und Abbildung 5.1. Dort kann die optimale Nibblebreite leicht abgelesen werden. Will man die optimalen Nibblebreiten f¨r beliebig lange Exponenten ermitteln, so u lassen sich diese uber die Nullstellenberechnung der ersten Ableitung von 5.6 ermitteln. ¨ Das m-ary-Verfahren mit richtig gew¨hlter Nibblebreite stellt eine erhebliche Verbesserung a gegen¨ber Square-and-Multiply b.z.w. der Bin¨rmethode dar. In Tabelle 5.10 wird die Veru a ringerung der ben¨tigten Multiplikationen prozentual dargestellt. o In Listing 5.2 erkennt man, dass f¨r jeden Wert, den ein Nibble annehmen kann, ein Register u zur Verf¨gung gestellt werden muss. Bei einer Nibblebreite von d sind dies 2d Register. u Abweichend von Listing 5.2 kann das Ergebnis statt in der Variablen erg in Register Null gespeichert werden. Es sind somit insgesamt 2d Register notwendig. [...]
In den Warenkorb
98,00 €
Link zur Arbeit:
http://www.diplom.de/ean/9783832489250
Arbeit zitieren:
Schmidt, Uwe Mai 2005: Schnelle modulare Exponentiation, Hamburg: Diplomica Verlag
Schlagworte:
Kryptographie, Square and Multiply, Fenstertechnik, Additionskette, Divisionskette



