Bachelorarbeit. Identbasierte Kryptographie - Implementierung von Paarungen für Körper der Charakteristik 2

Größe: px
Ab Seite anzeigen:

Download "Bachelorarbeit. Identbasierte Kryptographie - Implementierung von Paarungen für Körper der Charakteristik 2"

Transkript

1 Fakultät für Elektrotechnik, Informatik und Mathematik Bachelorarbeit Identbasierte Kryptographie - Implementierung von Paarungen für Körper der Charakteristik 2 Thomas Haarhoff thha@mail.uni-paderborn.de Paderborn, den 13. April 2012 vorgelegt bei Prof. Dr. rer. nat. Johannes Blömer Prof. Dr. Gregor Engels

2 ii

3 Danksagung An dieser Stelle möchte ich mit bei all denjenigen bedanken, die mich bei der Anfertigung dieser Bachelorarbeit unterstützt haben. Ein besonderer Dank gilt Professor Blömer, sowie M.Sc. Gennadij Liske und Dipl.- Ing. Peter Günther, die mir während dieser Zeit mit viel Geduld und Verständnis entgegen gekommen sind und mich bei allen Problemen hervorragend unterstützt haben. Des Weiteren möchte ich mich bei Renate Weiß, Rebekka Bressan und Valerie Schindler bedenken, die meine Arbeit Korrektur gelesen haben. Danken möchte ich weiterhin, meinen Freunden und Bekannten, sowie der AG Wehrheim, die mir die komplette Zeit über mit gutem Rat zur Seite gestanden haben. Nicht zuletzte möchte ich mich noch bei meinen Eltern bedanken, die mir mein gesamtes Studium immer zur Seite gestanden und mich darin unterstützt haben. iii

4 iv

5 Inhaltsverzeichnis 1 Einleitung 1 2 Grundlagen Gruppen und Körper Gruppen Körper Endliche Körper Polynome Der Grundkörper F Körpererweiterung Der Erweiterungskörper F 2 m Division im Erweiterungskörper Algebraische Kurven Affine Kurven Elliptische Kurven Ordnung einer elliptischen Kurve Supersinguläre Kurven Elliptische Kurven über dem Körper F 2 m Paarungen auf elliptischen Kurven Divisoren Weil-Paarung Tate-Paarung Algorithmen Körperarithmetik Addition Reduktion Multiplikation Quadrierung Exponentation Invertierung Elliptische Kurven Addition allgemein Addition für die Kurven E 0 und E Verdopplung von Punkten Double-And-Add-Algorithmus v

6 Inhaltsverzeichnis 3.3 Paarungen Miller Algorithmus Berechnung der Weil-Paarung Berechnung der Tate-Paarung Zusammenfassung Implementierung Werkzeuge Entwicklungsumgebung Erweiterung Subclibse Erweiterung JUnit Erweiterung EclEmma Erweiterung TPTP Umsetzung der Implementierung Testen Ergebnisse 53 Literaturverzeichnis 55 Abbildungsverzeichnis 59 Tabellenverzeichnis 59 vi

7 1 Einleitung 1984 hat der Mathematiker und Informatiker Adi Shamir ein Verfahren vorgestellt, um digitale Signaturen zu erstellen [Sha85]. Dabei wird der geheime Schlüssel genutzt, um eine Nachricht zu signieren. Um die Nachricht zu verifizieren werden dann, anders als beim Public-Key Verfahren, nur öffentliche Informationen des Private Key Generators (PKG) und eine identbasierte öffentliche Information genutzt. Diese Idee wurde unter dem Namen identitätsbasiertes System 1 vorgestellt und war der erste Schritt zu den identbasierten Kryptographiesystemen. Unter identbasierter Kryptographie (IBE) 2 versteht man eine Public-Key Verschlüsselung, in der der öffentliche Schlüssel eine eindeutig mit dem Nutzer verbundene Information, z.b. -Adresse, Telefonnummer, oder Ähnliches ist. Da man so nun einer Person einen eindeutigen öffentlichen Schlüssel zuordnen kann, entfällt die Notwendigkeit, den Schlüssel zu zertifizieren. Ein identbasiertes System kommt somit ohne öffentliche Zertifizierungsstelle (CA) 3 aus. In dieser Arbeit soll ein Konzept implementiert werden, dass verwendet werden kann, um die Sicherheit eines solchen identbasierten Kryptographiesystems zu gewährleisten. Es darf bei einem solchen System, wie bei allen anderen Kryptographiesystemen, nicht möglich sein, aus den öffentlichen Informationen den geheimen Schlüssel in vertretbarer Zeit berechnen zu können. Die bilinearen Paarungen ermöglichen es, identbasierte Verfahren umzusetzen.diese Paarungen sind wesentlicher Bestandteil dieser Arbeit. Das Konzept der Paarungen, oder bilinearen Abbildung, ist eventuell aus der Linearen Algebra bekannt. Das Skalarprodukt ist z.b. eine Paarung auf dem reellen Vektorraum. Dabei wird ein Paar von Vektoren auf eine Zahl abgebildet. Die bilinearen Paarungen, die in dieser Arbeit behandelt werden, sind generell sehr ähnlich. Eine Paarung allgemein ist eine Abbildung e der Form e : G 1 G 2 G 3. Die Paarungen, die wir in dieser Arbeit betrachten haben zudem noch die Eigenschaft der Bilinearität. Das heißt: Für alle P, P G 1 und alle Q, Q G 1 gilt: e(p + P, Q) = e(p, Q)e(P, Q) und e(p, Q + Q ) = e(p, Q)e(P, Q ). Dabei sind P und Q Punkte auf einer elliptischen Kurve. Eine elliptische Kurve ist eine algebraische Kurve, die durch eine Gleichung f der Ordnung 3 definiert ist. Die Punkte einer solchen Kurve können z.b. durch (x, y) R 2 gegeben sein, wobei für x, y gelten muss, das f(x, y) = 0 gilt. In dieser Arbeit betrachten wir Kurven, für die x und y aus einer sehr speziellen Art von Körpern stammen. Diese Körper haben Charakteristik 2. Wir betrachten 1 identity based scheme 2 identity based encryption 3 certification authority 1

8 1 Einleitung diese Körper aus dem einfach Grund, dass, wenn Paarungen berechnet werden, der binäre Zahlenraum vollständig ausgenutzt werden kann. Der Grund dafür ist, dass für die Elemente von Körpern mit Charakteristik 2 eine Darstellung durch 0-1-Folgen existiert. Wie dies genau möglich ist und welche weiteren Eigenschaften diese Körper haben, die wir ausnutzen können, wird im weiteren Verlauf der Arbeit noch ausführlich erläutert. Ziel dieser Bachelorarbeit ist es, zwei Paarungen für Körper der Charakteristik 2 möglichst effizient zu implementieren. Diese Implementierung soll auf einer existierenden Java-Bibliothek aufbauen, die für allgemeine Körper erstellt wurde. Am Ende der Arbeit sollen diese Paarungen verglichen werden und ersichtlich sein, welche sich, für die spezielle Art von Körpern, am effizientesten implementieren lässt. Der Aufbau der Arbeit ist wie folgt: Zuerst werden in Kapitel 2 die Grundlagen vermittelt und benötigte Definitionen angegeben. In Kapitel 3 werden die verwendeten Algorithmen erläutert und die Laufzeit in Form von benötigten Gruppenoperationen analysiert. Kapitel 4 beschäftigt sich mit der Implementierung allgemein und betrachtet die verwendeten Werkzeuge, welche für die Implementierung und Tests, sowie die Optimierung des Programmcodes benutzt wurden. Abschließend werden die Paarungen in Kapitel 5 verglichen, sowie Aussagen über die Effizienz unserer speziellen Implementierung gemacht und dargestellt, welche der beiden Paarungen sich effizienter ist. 2

9 2 Grundlagen Nachdem wir nun einen Einblick vermittelt haben, was das Ziel dieser Arbeit ist, kommen wir zum Grundlagenteil. Ziel dieses Kapitels ist es, alle wichtigen Definitionen und Grundlagen zu vermitteln, die für das Verständnis der folgenden Kapitel nötig sind. Dabei ist der Aufbau des Abschnitts wie folgt. Der erste Teil ist gedacht, um die Begriffe von Gruppen und Körpern zu wiederholen, sowie Definitionen und Notation einzuführen, wie sie in folgenden Kapiteln der Arbeit zu finden sind. Anschließend werden Kurven definiert und beschrieben, welche Kurven in dieser Arbeit betrachtet werden. Der letzte Abschnitt soll die Grundlagen vermitteln, die für das Verständnis der Paarungen benötigt werden. 2.1 Gruppen und Körper In diesem Abschnitt werden wir kurz wiederholen, was Gruppen und Körper sind, wie es evtl. noch aus Vorlesungen wie der Linearen Algebra bekannt ist. Einen detailierteren Einblick in dieses Thema bieten die Bücher von Bosch [Bos06] und Lidl [Lid97] Gruppen In diesem, sowie den folgenden Abschnitten, wird immer wieder das Konzept von Gruppen benötigt. Wir werden damit beginnen, dass wir definieren, wann eine Menge eine Gruppe ist. Definition 2.1. Sei G eine Menge und : G G G eine Operation. Dann ist (G, ) eine Gruppe genau dann, wenn die folgenden Eigenschaften gelten: Assoziativgesetz a, b, c G gilt: a (b c) = (a b) c Neutrales Element e G, sodass a G : a e = e a = a Inverses Element a G b G, sodass: a b = b a = e Eine Gruppe wird weiterhin als abelsch bezeichnet, wenn zusätzlich das Kommutativgesetz gilt: a, b G : a b = b a. Wir werden nun einige Eigenschaften auf einer Gruppe und ihren Elementen definieren. 3

10 2 Grundlagen Definition 2.2. Sei (G, ) eine endliche Gruppe, d.h. die Anzahl #G ihrer Elemente ist endlich. Dann ist die Ordnung der Gruppe als die Anzahl #G ihrer Elemente definiert. Definition 2.3. Sei (G, ) eine Gruppe. Dann ist die Ordnung eines Elementes a G definiert als die kleinste natürliche Zahl i > 0, welche die Gleichung a i = e erfüllt, wobei e das neutrale Element bezeichnet. Existiert diese Zahl nicht, hat a unendliche Ordnung. Definition 2.4. Eine nicht-leere Teilmenge H der Gruppe G wird als eine Untergruppe bezeichnet, wenn H ebenfalls eine Gruppe ist. Definition 2.5. Wenn ein Element a G existiert, sodass jedes andere Element aus G durch eine Potenz a i beschrieben werden kann, nennt man G eine zyklische Gruppe und a ein Generator von G. Dabei ist: a i = } a a {{... a }. i mal Bezogen auf die Ordnung einer Gruppe und ihrer Elemente ist der folgende Satz ein wichtiger Satz der Algebra: Satz 2.6 (Satz von Lagrange). Sei G eine endliche Gruppe. 1. Sei H eine Untergruppe von G. Dann teilt die Ordnung von H die Ordnung von G. 2. Sei g G. Dann teilt die Ordnung des Elements g, die Gruppenordnung von G. Beweis: (Siehe: [HPS08], Prop. 2.14, S. 74) Körper Körper sind, wie Gruppen, ebenfalls Mengen, mit Operationen und bestimmten Eigenschaften. In diesem Abschnitt werden zuerst Körper definiert und im Anschluss weitere Eigenschaften und Sätze angegeben, die für Körper gelten. Definition 2.7. Sei F eine Menge und +, zwei Operationen mit + : F F F, sowie : F F F, dann beschreibt (F, +, ) einen Körper, falls die folgenden Eigenschaften gelten: Additive Gruppe (F, +) beschreibt eine abelsche Gruppe. Multiplikative Gruppe (F \ {0}, ) beschreibt eine abelsche Gruppe. Wobei 0 das Nullelement der additiven Gruppe bezeichnet. Distributivgesetz a, b, c F : (a + b) c = a c + b c 4

11 2.1 Gruppen und Körper Beispiel 2.8. Einige bekannte Beispiele für Körper sind (C, +, ), (R, +, ) und (Q, +, ), jeweils mit der üblichen Addition und Multiplikation für Zahlen. Ein Begriff, den wir noch häufiger in der Arbeit verwenden werden, ist die Charakteristik. Definition 2.9. Die Charakteristik char(f) eines Körpers F ist 0, falls für irgendein m 1, m 1 niemals gleich 0 ist. Ansonsten ist char(f) die kleinste positive Zahl m, für die m 1 = 0 gilt. Dabei sei: m 1 = 1 } {{ + 1 }. m mal Satz Z p ist ein Körper (mit den gewohnten Operationen zur Addition und Multiplikation modulo p), genau dann, wenn p eine Primzahl ist. In diesem Fall ist p die Charakteristik von Z p. Beweis:(Siehe [Hac05], S.258, Satz 7.1.8) Satz Wenn die Charakteristik n eines Körpers F nicht 0 ist, dann ist n eine Primzahl. Beweis: Wir nehmen an, n = char(f) 0 und n ist keine Primzahl. Dann existieren Zahlen a, b N, mit a, b > 1 und a b = n Somit : ab k=1 1 = 0 a b ( ) = 0 k=1 k=1 a ( ) = 0 oder k=1 b = 0. k=1 Das steht aber im Widerspruch zur Definition der Charakteristik, da a und b kleiner sind als a b. Somit muss die Charakteristik eine Primzahl sein. Für den Abschnitt der Körpererweiterungen, brauchen wir noch eine Definition über Unterkörper. Definition Eine Teilmenge F von einem Körper E heißt Unterkörper von E, wenn F selbst wieder ein Körper bzgl. der Operationen auf E ist. In diesem Fall wird E eine Erweiterung von F genannt. 5

12 2 Grundlagen Endliche Körper Ähnlich zur Gruppe ist ein Körper endlich, wenn die Anzahl der Elemente endlich ist. Dessen Anzahl wird auch hier als Ordnung bezeichnet. Ein endlicher Körper mit q Elementen wird mit F q bezeichnet. Satz Die von 0 verschiedenen Elemente aus F q bilden eine zyklische Gruppe der Ordnung q 1, in der jedes Element aus F q. Diese Gruppe wird die multiplikative Gruppe von F q genannt und mit F q bezeichnet. Beweis: (Siehe: [Rom95], Coro , S. 30) Der kommende Satz gibt Aufschluss darüber, wann die Existenz eines Körpers mit q Elementen gegeben ist. Satz Sei n N. Ein Körper F mit n Elementen existiert genau dann, wenn n eine Primzahlpotenz ist. Beweis: (Siehe [BS96], S.126, Th ) Satz Sei p eine Primzahl. Die Zahlen aus Z modulo p beschreiben die Menge M := {0, 1,..., p 1}. Diese Menge bildet den Körper F p bezüglich der üblichen Addition und Multiplikation für Zahlen. Diese Art Körper wird Primkörper genannt. Beweis: (Siehe: [Kar88], Prop. 5.1, S. 85) Diese Körper werden noch häufiger auftreten. Speziell wenn die Erweiterungskörper betrachtet werden. Satz 2.16 (Kleiner Satz von Fermat). Sei F ein endlicher Körper mit Ordnung q. α F gilt: α q = α. Beachte: α q ist die q-fache Verknüpfung der Operation, der multiplikativen Gruppe von F. Beweis: (Siehe [HPS08], S.30, Th. 1.25) Beobachtung Aus Lemma 2.16 folgt, dass α q 1 = 1 gilt. Das wiederum impliziert, dass man das Inverse in einem endlichen Körper bestimmen kann, indem α q 2 berechnet wird Polynome In diesem Abschnitt sollen alle benötigten Definitionen angegeben werden, um Polynome für unsere Zwecke ausreichend zu beschreiben. Diese werden in der Arbeit verwendet, um Körperelemente zu beschreiben. Ein Polynom ist eine Summe von Potenzen, bzw. den Vielfachen von Potenzen. Wir benutzen in dieser Arbeit die Definition von Polynomen als endliche Summe über einem Körper F. 6

13 2.1 Gruppen und Körper Definition Sei F ein Körper. Ein Polynom f über F, in einer Variablen x, ist definiert als: n f(x) = a i x i, wobei die Koeffizienten a i F sind. i 0 Definition Sei f(x) ein Polynom über dem Körper F und f(x) habe die Form f(x) = n i 0 a i x i, mit a n 0, dann wird grad(f) = n als Grad des Polynoms bezeichnet. Sind alle Koeffizienten des Polynoms gleich 0, wird f(x) als Nullpolynom bezeichnet. Eine Definition, die wir im nächsten Abschnitt noch benötigen, ist die folgende. Definition Eine Zahl α F heißt Nullstelle des Polynoms f(x) über F, falls gilt: f(α) = 0. Ist das Polynom f(x) ein Binom der Form x n 1, dann werden die Nullstellen von f(x) die n-ten Einheitswurzeln genannt. In dieser Arbeit werden Polynome verwendet, um Elemente des Körpers zu repräsentieren, welcher in Abschnitt vorgestellt wird. Eine Möglichkeit Körper zu beschreiben ist, durch die Verwendung von irreduziblen Polynomen. Allgemein ausgedrückt gilt ein Polynom f(x) als irreduzibel über einem Körper F, wenn f(x) nicht als das Produkt von zwei nicht konstanten Polynomen über demselben Körper geschrieben werden kann. Diese Polynome wollen wir nun formal definieren. Satz Für zwei Polynome f(x) und g(x) über F, mit g(x) 0 und grad(f) grad(g), gibt es Polynome q(x) und r(x) über F mit grad(r) < grad(g), sodass gilt: f(x) = q(x)g(x) + r(x) Wir sagen, f(x) wird von g(x) mit Quotient q(x) und Rest r(x) geteilt. Beweis: Sei f(x) = n i=0 a i x i und g(x) = m i=0 b i x i mit a n, b m 0 und n m. Wir setzen q(x) auf an a m x n m. Dann ist der Grad von r(x) := f(x) q(x)g(x). Dieser kann maximal n sein. Durch die Wahl von q verschwindet mindestens der n-te Koeffizient und somit gilt grad(r) < n. Wird dieses Vorgehen wiederholt ausgeführt, wird der Grad von r(x) so weit verringert, dass grad(r) < grad(g) gilt. Daraus folgt direkt die Behauptung. Bezogen auf Satz 2.21 ist die Teilbarkeit von Polynomen gegeben, wenn r(x) ein Nullpolynom ist. In diesem Fall wird g(x) als echter Teiler von f(x) bezeichnet. Definition Ein Polynom f(x) wird als irreduzibles Polynom über F bezeichnet, wenn es keine nicht-konstanten Polynome g(x) und q(x) über F gibt, so dass g(x)q(x) = f(x) gilt. f(x) besitzt also, neben den Konstanten, keine echten Teiler. Wenn die Polynome g(x) und q(x) existieren, wird f(x) reduzibel über F genannt. 7

14 2 Grundlagen Tabelle 2.1: Addition Tabelle 2.2: Multiplikation Wir benötigen den folgenden Satz über die Existenz der irreduziblen Polynomen, um mit ihnen Körper zu konstruieren. Satz Für jeden endlichen Körper F q und jede positive Zahl d existiert mindestens ein irreduzibles Polynom m(x) vom Grad d über dem Körper F q. Beweis: (Siehe: [Rom95], Th , S. 165) Der folgende Abschnitt beinhaltet ein Beispiel zur Irreduzibilität von Polynomen Der Grundkörper F 2 Nun soll der Grundkörper mit zwei Elementen definiert werden. Dieser wird die Grundlage für alle weiteren in dieser Arbeit behandelten Körper sein. Dazu werden wir den Körper einführen und die auf ihm geltenden Eigenschaften aufzählen. Die Operationen des Körpers werden im Anschluss textuell beschrieben. Definition 2.24 (F 2 ). Der endliche Körper F 2 hat Charakteristik 2 und besitzt die zwei Elemente: 0 und 1. Die Addition mit dem neutralen Element 0 und die Multiplikation mit dem neutralen Element 1 werden dabei modulo 2 ausgeführt.(siehe Tab. 2.1 und 2.2) Man kann an den Tabellen erkennen, dass es sich bei der Addition um ein logisches XOR und bei der Multiplikation um ein logisches AND handelt. Diese Eigenschaft wird später in der Implementierung ausgenutzt. Wählen wir d = 2 und F q = F 2, besagt Satz 2.23, dass es ein irreduzibles Polynom m(x) von Grad 2 über dem Körper F 2 gibt. Der nächste Satz sagt etwas über dieses Polynom aus und gibt es an. Satz Über dem Körper F 2 gibt es genau ein irreduzibles Polynom m(x) vom Grad 2: m(x) = x 2 + x + 1. Beweis: Um die Forderung der Irreduziblität zu zeigen, kann man in diesem Fall alle Elemente des Körpers in das Polynom einsetzen und zeigen das m(x) keine Nullstellen in F 2 besitzt. Hat m(x) keine Nullstellen, zerfällt es somit nicht in lineare Faktoren. 8

15 2.1 Gruppen und Körper m(0)= = 1 m(1)= = 1 mod 2 Um die Eindeutigkeit zu zeigen, betrachten wir alle anderen Polynome über F 2 vom Grad 2. Diese Polynome sind x 2, x 2 + x und x Diese sind nach Definition 2.22 reduzibel, denn sie können als Produkt von zwei nicht-konstanten Polynomen über F 2 geschrieben werden. x 2 = x x, x 2 + x = (x + 1) x sowie x = (x + 1) 2 mod 2 Somit ist m(x) irreduzibel über F Körpererweiterung Mit dem Grundkörper F 2 wollen wir nun weitere Körper beschreiben. Dazu definieren wir zuerst, was eine Körperweiterung ist und zeigen ein Beispiel für F 2 4, indem wir ein irreduzibles Polynom über F 2 vom Grad 4 angeben. Definition Ein Körper K wird Körpererweiterung eines Körpers F genannt und mit K/F bezeichnet, wenn F ein Unterkörper von K ist. Ein Beispiel dafür sind die komplexen Zahlen C. Sie sind eine Körpererweiterung von den reellen Zahlen R. Diese sind wiederum eine Erweiterung von den rationalen Zahlen Q. In der Regel ist es gewünscht, einen gegebenen Grundkörper zu erweitern. Wir wollen nun beschreiben, wie man allgemein aus einem Grundkörper F q mit q = p m Elementen einen Körper F q k mit q k Elementen konstruieren kann. Satz Seien F q und F t zwei Körper mit q, bzw. t Elementen. F t ist eine Körpererweiterung von F q genau dann, wenn: q = p k, t = p m und k teilt m. Beweis: (Siehe [Bas84], Proposition , S. 192) Nach Satz 2.23 gibt es immer mindestens ein irreduzibles Polynom p(x) für jeden Körper mit beliebigem Grad. Es kann ein Erweiterungskörper definiert werden, indem die Operationen des Körpers modulo diesem p(x) ausgeführt werden. Zur Erinnerung: F q [x] bezeichnet den Ring aller Polynome mit Koeffizienten in F q. Definition Sei F q ein endlicher Körper mit q Elementen, dann ist der Körper F q k mit q k Elementen wie folgt definiert: F q k := F q [x]/(p(x)). Dabei sei p(x) ein irreduzibles Polynom vom Grad k über dem Körper F q [x]. 9

16 2 Grundlagen Nun wollen wir ein Beispiel zeigen, wie man aus dem Grundkörper F 2 den Körper F 2 4 mit 16 Elementen konstruieren kann. Beispiel Um den Körper F 2 4 zu konstruieren, benötigen wir ein irreduzibles Polynom über F 2 vom Grad 4. Nach Satz 2.23 existiert ein solches Polynom. Somit können wir nach Definition 2.28 den Körper F 2 4 konstruieren, indem wir die Operationen des Körpers modulo dem irreduziblen Polynom definieren. Wir betrachten nun das Polynom p(x) = x 4 + x + 1 über F 2. Behauptung: p(x) ist irreduzibel über F 2. Beweis: Ist p(x) reduzibel, muss p(x) einen linearen oder quadratischen Faktor besitzen. Da jedoch p(0) 0 und p(1) 0 gilt, hat p(x) keinen linearen Faktor. Um zu zeigen, dass p keinen quadratischen Faktor besitzt, betrachten wir alle möglichen Polynome mit Grad 2 über F 2 : x 2, x 2 + 1, x 2 + x, x 2 + x + 1. Keines der Produkte dieser Terme ergibt x 4 + x + 1 über F 2. Also zerfällt p(x) nicht in nicht-konstante Terme. Somit ist p(x) irreduzibel über F 2. Der Grad von p(x) ist 4. Somit haben wir nach Definition 2.28: F 2 4 = F 2 [x]/(p(x)) konstruiert. Zum Abschluss wollen wir nun noch darstellen, wie die Elemente aus F 2 4 beschrieben werden können und wie die Operationen auf dem Körper ausgeführt werden. Dazu sei nun α = x/(p(x)) eine Nullstelle von p(x). Alle 16 Elemente aus F 2 4 können nun wie folgt dargestellt werden: Konstant: 0, 1 Linear: α, α + 1 Quadratisch: α 2, α 2 + 1, α 2 + α, α 2 + α + 1 Kubisch: α 3, α 3 + 1, α 3 + α, α 3 + α + 1, α 3 + α 2, α 3 + α 2 + 1, α 3 + α 2 + α, α 3 + α 2 + α + 1. Allgemeiner hat der Körper F 2 4 die Form: F 2 4 = {α 3 x 3 + α 2 x 2 + α 1 x + α 0 α i F 2 }. Die Addition ist einfach, da es sich dabei um die Addition von Polynomen handelt. Diese Addition geschieht koeffizientenweise modulo 2. Jedoch benötigt die Multiplikation eine Reduktion modulo p(α), unter Ausnutzung der Beziehung α 4 = α + 1. Diese Reduktion liefert uns einen eindeutigen Repräsentanten eines Elements des Körpers F 2 4. Man kann aber auch eine andere Darstellung wählen, da gilt: α 15 = (α 5 ) 3 = (α α 4 ) 3 = (α (α + 1)) = α 3 (α + 1) 3 = α 3 (α 3 + α 2 + α + 1) = α 6 + α 5 + α 4 + α 3 = (α 3 + α 2 ) + (α 2 + α) + (α + 1) + α 3 = 1. 10

17 2.1 Gruppen und Körper Hieran kann man sehen, dass die Ordnung von α, 15 teilt. Da weiterhin gilt, dass α 3 1, sowie α 5 1 sind, ist α ein erzeugendes Element der multiplikativen Gruppe. Somit kann man nun folgende Darstellung wählen: F 2 4 = {0, 1, α,... α 13, α 14 }. In dieser Darstellung ist die Multiplikation einfacher, jedoch die Addition aufwendig. Man kann diese Darstellungen auch verbinden, indem man eine Tabelle mit Ersetzungsregeln für α k erstellt. Für das Beispiel F 2 4 kann diese Tabelle und Weiterführendes dazu dem Buch von Steven Roman [Rom95] S.177 entnommen werden. In dieser Arbeit werden wir die Darstellung von F 2 4 = {α 3 x 3 +α 2 x 2 +α 1 x+α 0 α i F 2 } benutzen. Der Grund weshalb wir die kombinierte Darstellung nicht wählen ist, dass sie für unsere Anwendung in der Implementierung nicht effektiv umsetzbar ist. Eine Tabelle mit Ersetzungsregeln zu berechnen und abzuspeichern ist für die Körper F 2 m, die wir betrachten, ein zu großer Aufwand Der Erweiterungskörper F 2 m Wir möchten nun den Körper F 2 um ein beliebiges m erweitern. Dazu benötigen wir ein irreduzibles Polynom vom Grad m über dem Körper F 2. Die Bestimmung solcher Polynome ist nicht einfach und auch nicht Teil dieser Arbeit. Ein Algorithmus, um irreduzible Polynome über einem endlichen Körper zu finden, ist in [Sho90] beschrieben. Nach Satz 2.23 existiert ein solches irreduzibles Polynom. Haben wir also ein solches gefunden, können wir wie im Abschnitt zuvor eine Darstellung von Polynomen wählen, um die Elemente zu addieren und zu multiplizieren. Zur Darstellung der Polynome wählen wir eine 0-1-Folge, welche die Koeffizienten des Polynoms repräsentieren: F 2 m = {(a 0, a 1,..., a m 1 ) a i F 2 }. Die Addition von zwei Polynomen ist einfach, da es sich um eine koeffizientenweise Addition, nach der Additionstabelle für F 2, handelt. Beispiel Addition von zwei Polynome a(x) = x 6 + x 4 + x 3 + x und b(x) = x 7 + x 4 + x 2 + x + 1 über dem Körper F 2. Ein irreduzible Polynom über dem Körper F 2 ist p(x) = x 8 + x 4 + x 3 + x + 1. Dieses kann verwendet werden, um F 2 8 zu beschreiben. Die Darstellung der Polynome ist nach obiger Beschreibung: a(x) = ( ), b(x) = ( ). Beachte dabei, dass die Reihenfolge jedoch nicht mit dem höchsten Koeffizienten beginnt, sondern nach der Form: a 0 x 0, a 1 x 1... ist. Der Grund für diese Schreibweise ist, dass sie in der Implementierung Vorteile hat. Deshalb wird sie an dieser Stelle schon motiviert. Zu berechnen: a + b 11

18 2 Grundlagen a + b= c, mit c Polynom vom Grad kleiner 8 = (a 0, a 1,..., a 7 ) + (b 0, b 1,..., b 7 ) = (c 0, c 1,..., c 7 ), mit c i = a i + b i = ( ) + ( ) = ( ) = 1 + x 2 + x 3 + x 6 + x 7 Da die Addition der Koeffizienten modulo 2 erfolgt, ergibt sich sofort folgendes Korollar: Beobachtung Seien a, b zwei Polynome über dem Körper F 2 m. Und sei c = a + b das Ergebnis der Addition von a und b, dann gilt für c: grad(c) max{grad(a), grad(b)}. durch diese Beobachtung erübrigt sich die Reduktion modulo m(x) bei der Addition von Polynomen im Körper F 2 m, wenn die Polynome vor der Addition maximal einen Grad von m 1 besitzen. Bei der Multiplikation werden die Polynome miteinander multipliziert und anschließend modulo des irreduziblen Polynoms gerechnet, wie es in 2.28 definiert wurde. Die Multiplikation kann dabei ebenfalls in der angegebenen Darstellung realisiert werden. Beispiel Wir multiplizieren die gleichen Polynome, welche wir in Beispiel 2.30 für die Addition benutzt haben. a(x) = x 6 +x 4 +x 3 +x und b(x) = x 7 +x 4 +x 2 +x+1 über dem Körper F 2. Das irreduzible Polynom ist ebenfalls wieder p(x) = x 8 + x 4 + x 3 + x + 1. Wir stellen dazu die Berechnung in 2 Schritten dar. Hier wird die Multiplikation durchgeführt: a b = c, mit c Polynom = ( ) ( ) = ( ) + ( ) + ( ) + ( ) = ( ) Das entspricht dem Polynom: c(x) = x 13 + x 11 + x 8 + x 5 + x 2 + x. Für dieses Polynom gilt jedoch nicht, dass es vom Grad kleiner 8 ist. Deshalb benötigen wir die Reduktion modulo p, um so einen eindeutigen Repräsentanten dieses Elements zu bekommen. Beispiel Wir führen eine Reduktion von c(x) = x 13 + x 11 + x 8 + x 5 + x 2 + x modulo p(x) = x 8 + x 4 + x 3 + x + 1 durch. Dazu benutzen wir die Polynomdivision mit Rest. 12

19 2.1 Gruppen und Körper c mod p = d, mit d Polynom vom Grad kleiner 8 = ( ) mod ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) Dieses Polynom entspricht x 3 + x 5 + x 7 F 2 8. Die Vorgehensweise ist dabei immer dieselbe: Das irreduzible Polynom wird um einen Faktor x k erweitert, so dass der Grad von c gleich grad(p) + k ist. Nach Beobachtung 2.31 wird dadurch gewährleistet, dass sich der Grad des Ergebnispolynoms immer um mindestens 1 verringert. Sobald der Grad von c kleiner ist, als der Grad von p, kann abgebrochen werden. Das Ergebnis der Berechnung ist dann ein eindeutiger Repräsentant eines Elementes aus F Division im Erweiterungskörper Bevor wir die elliptischen Kurven beschreiben, soll noch dargestellt werden, wie innerhalb des Körper F 2 m eine Division durchgeführt werden kann. Das Ergebnis einer Division von zwei Elementen a, b aus einem endlichen Körper kann wie folgt berechnet werden: a b = a b 1. Um das Inverse zu bestimmen kann der erweiterte euklidische Algorithmus (EEA) verwendet werden: Satz Seien f(x) und g(x) zwei Polynome über einem Körper F, dann existieren Polynome r(x) und s(x), die folgende Gleichung erfüllen: ggt (f(x), g(x)) = r(x) g(x) + s(x) f(x). Der erweiterte euklidische Algorithmus ist eine Möglichkeit die Polynome r(x) und s(x) zu bestimmen. Beweis: (Siehe: [HPS08], Th. 1.11, S. 16) Dieser Satz kann nun verwendet werden, um das Inverse eines Elements des Körpers zu bestimmen. Dazu sei nun f(x) ein Polynom über einem Körper F und m(x) das irreduzible 13

20 2 Grundlagen Polynom, das verwendet wurde, um diesen Körper zu beschreiben. Um nun das Inverse von f(x) zu berechnen, können wir den EEA verwenden, indem wir ausnutzen, dass m(x) irreduzibel ist. 1 = ggt (f(x), m(x)) = r(x) m(x) + s(x) f(x) Der Term r(x) m(x) ist innerhalb des Körpers gleich 0 (modulo m(x)). Es bleibt also der Term s(x) f(x) = 1. Daraus folgt direkt s(x) = f 1 (x). Alternativ kann zur Bestimmung des Inversen auch die Beobachtung 2.17 genutzt werden. Diese ist zwar weniger effizient, als der erweiterte euklidische Algorithmus, lässt sich jedoch um einiges einfach implementieren. 2.2 Algebraische Kurven In diesem Abschnitt wollen wir elliptische Kurven einführen. Bevor wir damit beginnen, stellen wir zuerst die affinen Kurven, als Nullstellenmenge von Polynomen in zwei Variablen vor. Nachdem wir im Anschluss an die affinen Kurven die elliptischen Kurven vorgestellt haben, werden wir uns mit der Frage beschäftigen, wie viele Punkte auf einer elliptischen Kurve liegen. Zum Abschluss dieses Abschnitts werden wir uns genauer anschauen was, über die allgemeinen Grundlagen hinaus, für diese Arbeit wichtig ist. Dabei sehen wir uns speziell die supersingulären Kurven und die damit verbunden Eigenschaften an. Was es bedeutet, eine elliptische Kurve über dem Körper F 2 m zu nutzen, wird diesen Abschnitt abschließen. Es gibt viele Bücher zum Thema elliptische Kurven. Für eine Einführung in diese Thema, ist Kapitel 5 des Buches [HPS08] zu empfehlen. Auf das Buch von Silverman [Sil09] wird in der Literatur oft verwiesen. Dieses Buch ist jedoch nur für Leser geeignet, die über ein fundiertes Grundwissen über algebraische Kurven verfügen und nicht sonderlich gut zum Einstieg geeignet Affine Kurven Wir wollen nun damit beginnen, den affinen Raum vorzustellen. Die affinen Kurven, als Nullstellenmenge von Polynomen in zwei Variablen werden im Anschluss definiert. Wenn im folgenden Abschnitt die elliptischen Kurven vorgestellt werden, sind die Punkte einer solchen Kurve, bis auf eine Ausnahme, Punkte aus dem affinen Raum. Definition Sei F p ein endlicher Körper. Der zweidimensionale affine Raum A 2 (F p ) über F p ist definiert als: A 2 (F p ) = F p F p = {(a, b) : a, b F p }. Definition Sei A 2 (F p ) wie in Definition 2.35 über einem endlichen Körper F p definiert. Eine Nullstellenmenge für ein Polynom f(x, y) mit Koeffizienten in F p, wird als affine Kurve bezeichnet und erhält die Bezeichnung C f (F p ). 14

21 2.2 Algebraische Kurven Beispiel Wir betrachten das folgende Polynom f F p [x, y] über einem Primkörper F p : f(x, y) = y 2 x 3 x. Die Nullstellenmenge C f (F p ) für eine Primzahl p ist nun gegeben durch: C f (F p ) = {(a, b) F p F p b 2 = a 3 + a mod p}. Für das Polynom f aus Beispiel 2.37 wird die Nullstellenmenge C f (K), für jeden beliebigen Körper K, nie die leere Menge darstellen, denn der Punkt (0, 0) ist immer eine Lösung. Beispiel Betrachten wir diese Kurve konkret über den Körpern F 2 und F 3, ergeben sich die Mengen: C f (F 2 ) = {(0, 0), (1, 0)}, C f (F 3 ) = {(0, 0), (2, 1), (2, 2)} Elliptische Kurven Bei einer elliptischen Kurve handelt es sich um eine Kurve mit Punkten aus dem affinen Raum und einem weiteren Punkt O. Diesen Punkt nennen wir den Punkt im Unendlichen. Um diesen Punkt formal zu definieren, benötigen wir den projektiven Raum. Für weitere Informationen zu diesem Punkt, sei dem Leser das Buch von Annette Werner [Wer02] nahegelegt. Den ersten Teil dieses Abschnittes werden wir damit beginnen die Notation zu beschreiben. Im Laufe des Kapitels werden die dabei benutzen Begriffe erläutert. Dazu sei F q ein endlicher Körper mit q Elementen und F q k eine Körpererweiterung, wie in Satz 2.28 definiert. Definition Eine elliptische Kurve E ist als die Nullstellenmenge der verallgemeinerten Weierstrass-Gleichung E : y 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6 a i F q, zusammen mit dem Punkt O definiert. Die Koeffizienten a 1,..., a 6 müssen zudem 0 erfüllen. bezeichnet die Diskriminante von E, die wie folgt definiert ist: = b 2 2b 8 8b b 2 b 4 b 6, mit b 2 = a a 2, b 4 = 2a 4 + a 1 a 3, b 6 = a a 6 und b 8 = a 2 1a 6 + 4a 2 a 6 a 1 a 3 a 4 + a 2 a 2 3 a

22 2 Grundlagen Die Anforderung an die Koeffizienten stellt sicher, dass die Kurve keine singulären Punkte besitzt. Weitere Informationen dazu kann dem Buch von Washington [Was03] entnommen werden. In der Arbeit betrachten wir nur Kurven, für die diese Anforderung zutrifft. Es wurde noch keine Aussage über den Körper gemacht, aus dem x und y stammen. Die folgenden Definitionen sollen genau dies erläutern. Definition Die Menge E(F q k) wird als die Menge der F q k-rationalen Punkte bezeichnet: E(F q k) := {(x, y) F q k F q k y 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6 = 0} {O}. Definition E ist die Kurzschreibweise für E(F q ) und bezeichnet die Menge aller F q -rationalen Punkte und ist wie folgt definiert: E := {(x, y) F q F q y 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6 = 0} {O}. Wir schreiben: E ist eine elliptische Kurve über dem Körper F q. Elliptische Kurven haben die schöne Eigenschaft, dass auf der Kurve eine Operation definiert werden kann, sodass (E(F q ), ) eine abelsche Gruppe bildet. In der Literatur wird dabei von der Addition gesprochen. Wir werden diese Konvention beibehalten. Für die erwähnte Gruppe ist O das neutrale Element der Addition und das Inverse zu einen Punkt P 1 = (x 1, y 1 ) ist gegeben durch P 1 = (x 1, y 1 a 1 x 1 a 3 ). Wir wollen nun diese Addition definieren. Definition Seien P 1 = (x 1, y 1 ) und P 2 = (x 2, y 2 ) Punkte auf der Kurve. P 3 = (x 3, y 3 ) = P 1 P 2 ist gegeben durch: x 3 = λ 2 + a 1 λ a 2 x 1 x 2 und y 3 = (λ + a 1 )x 3 ν a 3. Wobei: (y 2 y 1 )/(x 2 x 1 ) falls (x 1 x 2 ) λ = (3x a 2 x 1 + a 4 a 1 y 1 )/(2y 1 + a 1 x 1 + a 3 ) falls (x 1 = x 2 ) (y 1 x 2 y 2 x 1 )/(x 2 x 1 ) falls (x 1 x 2 ) ν = ( x a 4 x 1 + 2a 6 a 3 y 1 )/(2y 1 + a 1 x 1 + a 3 ) falls (x 1 = x 2 ) Für den Punkt im Unendlichen definieren wir die Addition wie folgt: P + O := P, O + O := O und P + ( P ) = O. 16

23 2.2 Algebraische Kurven Diese Formeln haben die folgende anschauliche Darstellung in R: Die Abbildungen 2.1 und 2.2 sollen darstellen, was es bedeutet, zwei Punkte auf einer elliptischen Kurve in R zu addieren. Wenn zwei Punkte addiert werden, wird eine Linie durch diese beiden gezogen. Diese Linie schneidet die elliptische Kurve an genau einem dritten Punkt (Siehe dazu: [Har77], Th. I.7.8). Das Ergebnis der Addition ist das inverse Element dieses dritten Punktes. Haben die beiden Punkte dieselben Koordinaten, wird eine Tangente an dem Punkt angelegt und das Ergebnis der Addition ist das Inverse des Schnittpunktes R von Tangente und elliptischer Kurve. Abbildung 2.1: Addition auf Elliptischer Kurve Abbildung 2.2: Tangente an einem Punkt Bei der Addition von einem Punkt mit seinem Inversen ergibt das Ergebnis den Punkt im Unendlichen, das neutrale Element dieser Addition. Betrachtet man die Addition, wie wir, auf elliptischen Kurven über endlichen Körpern, ist die Darstellung nicht mehr anschaulich. Algebraisch betrachtet ist die Addition jedoch auf diesen endlichen Punktmengen dieselbe. Im weiteren Verlauf der Arbeit verwenden wir + als das Symbol für die Addition von zwei Punkten auf einer elliptischen Kurve Ordnung einer elliptischen Kurve Wir beschäftigen uns nun mit der Frage nach der Anzahl der Punkte, auf einer elliptischen Kurve. Dazu beginnen wir mit einem Beispiel. [Was03] Beispiel Sei E die elliptische Kurve y 2 = x 3 + x + 1 über dem Körper F 5. Um die Anzahl der F 5 -rationalen Punkte auf der Kurve zu bestimmen, stellen wir eine Liste mit allen Punkten, als Lösungen der Gleichung y 2 = x 3 + x + 1, auf. E(F 5 ) = {O, (0, 1), (0, 4), (2, 1), (2, 4), (3, 1), (3, 4), (4, 2), (4, 3)}. 17

24 2 Grundlagen Wir möchten jedoch in der Lage sein, die Anzahl der Elemente für beliebige Körper abschätzen zu können. Der Satz von Hasse liefert eine Möglichkeit, die Anzahl an Punkten abzuschätzen. Satz 2.44 (Hasse-Weil). Sei E eine elliptische Kurve über dem Körper F q. Die Ordnung der Gruppe E(F q k), mit k N 0, ist gegeben durch die Abschätzung #E(F q k) = q k + 1 t k, mit t k 2 q k. Beweis: (Siehe: [Was03], Th. 4.2, S.91) Wenn wir mit Paarungen arbeiten, betrachten wir eine sehr spezielle Gruppe von Punkten. Definition Sei E eine elliptische Kurve über dem Körper F q. Für eine Zahl m N, mit m #E(F q ), ist die Menge der m-torsionspunkte definiert als: E[m] := {P E(F q ) mp = O}. Analog dazu ist die Menge der m-torsionspunkte der F q k-rationalen Punkte, definiert als: E(F q k)[m] := {P E(F q k) mp = O}. Es ist möglich zu zeigen, wenn zwei Punkte P und Q Elemente aus E[m] sind, dann liegen auch (P + Q), sowie P innerhalb E[m]. Satz Sei E eine elliptische Kurve über dem Körper F q und m eine Zahl größer 1 mit q m, dann gilt E[m] = Z/mZ Z/mZ. Beweis: (Siehe: [Was03], Th. 3.2, S.75) Ein weiterer Begriff, den wir speziell für die Paarungen brauchen, ist der Begriff des Einbettungsgrades. Definition Sei E eine elliptische Kurve über dem Körper F q. Weiterhin sei m eine positive Zahl mit m #E(F q ) und ggt (m, q) = 1. Dann ist der Einbettungsgrad die kleinste positive Zahl k, für die gilt: m q k 1 Zu beachten ist, dass k von q und von m abhängt. Nur für sogenannte paarungsfreundliche Kurven ist dieses k klein. Wichtig ist die Eigenschaft, dass es ein k gibt, sodass für alle l > k die Menge E(F q l)[m] nicht mehr Punkte hat, als E(F q k)[m]. 18

25 2.2 Algebraische Kurven q k #E(F q ) Struktur von E(F q k) p 2m 1 q ± 2 q + 1 (Z/( q ± 1)Z) 2 p 2m+1 oder p 2m und p 1(mod 4) 2 q + 1 (Z/(q + 1)Z) 2 p 2m und p 1(mod 3) 3 q ± q + 1 (Z/(q 3/2 1)Z) 2 2 2m+1 4 q ± 2q + 1 (Z/(q 2 + 1)Z) 2 3 2m+1 6 q ± 3q + 1 (Z/(q 3 + 1)Z) 2 Tabelle 2.3: Ordnung, Einbettungsgrad, Struktur, supersingulärer elliptischer Kurven [JN08] Supersinguläre Kurven In dieser Arbeit werden supersinguläre Kurven betrachtet. Was eine supersinguläre Kurve ist, werden wir nun definieren. Definition Sei E eine elliptische Kurve über einem Körper F p. E ist supersinglär genau dann, wenn E[p] = {O} gilt. Der folgende Satz soll es noch etwas einfacher machen, zu zeigen, dass die Kurven, die wir in dieser Arbeit behandeln werden, supersingulär sind. Satz Sei E(F) eine elliptische Kurve und char(f) = 2, dann ist E(F) supersingulär genau dann, wenn a 1 = 0 gilt. Wobei a 1 der Koeffizient aus der verallgemeinerten Weierstrass-Gleichung (Definition 2.39) für elliptische Kurven ist. Beweis: (Siehe: [Wer02], Prop , S. 71) Supersinguläre Kurven sind sehr spezielle elliptische Kurven. Für sie wurden unter anderem Gruppenordnung und Struktur in einer Tabelle zusammgefasst.(siehe Tab. 2.3) Anhand dieser Tabelle ist zu erkennen, dass die Gruppenordnung einer supersingulären Kurve durch zwei mögliche Werte gegeben ist Elliptische Kurven über dem Körper F 2 m Wir wollen uns nun genauer anschauen, welche Kurven in dieser Arbeit verwendet werden und was die Wahl der Kurven für Eigenschaften mit sich bringt. Die von uns betrachteten Körper haben Charakteristik 2. Somit können wir aus Tabelle 2.3 den von uns benötigten Einbettungsgrad ablesen. Dieser Einbettungsgrad ist k = 4. Die Kurven, die wir betrachten werden, sind gegeben durch die Gleichungen: E 0 : y 2 + y = x 3 + x und E 1 : y 2 + y = x 3 + x

26 2 Grundlagen Satz Die Kurven E 0 : y 2 + y = x 3 + x und E 1 : y 2 + y = x 3 + x + 1 sind supersingulär über dem Körper F 2 m. Beweis: Wir betrachten die verallgmeinerte Weierstrass-Gleichung für elliptische Kurven aus Definition 2.39: y 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6. Hier können wir ablesen, welche Koeffizienten 0 sind. Für E 0 sind es a 1, a 2 und a 6 und für E 1, a 1 und a 2. Die anderen Koeffizienten sind 1. Somit sind beide Kurven nach Satz 2.49 supersingulär, da a 1 = 0 gilt und die Charakteristik des Körpers F 2 m 2 ist. Wir können nun die Addition von zwei Punkten auf den Kurven E 0 und E 1 vereinfachen, da die Kurven über dem Körper F 2 m definiert sind und wir an den Kurven ablesen können, dass für die Koeffizienten immer a 1 = 0, a 2 = 0, a 3 = 1, a 4 = 1 gilt. Definition Seien P 1 = (x 1, y 1 ) und P 2 = (x 2, y 2 ) Punkte auf der Kurve E 0, bzw. E 1 von oben. P 3 = (x 3, y 3 ) = P 1 P 2 ist gegeben durch: x 3 = λ 2 + x 1 + x 2 und y 3 = x 3 λ + ν + a 3. wobei: (y 2 + y 1 )/(x 2 + x 1 ) falls (x 1 x 2 ) λ = (x a 4 ) falls (x 1 = x 2 ) (y 1 x 2 + y 2 x 1 )/(x 2 + x 1 ) falls (x 1 x 2 ) ν = (x x 1 + y 1 ) falls (x 1 = x 2 ) Die Addition ist für beide Kurven gleich. Der Grund dafür ist, dass der Koeffizient a 6 nur einmal in der Addition vorkommt. Und zwar bei der Berechnung von λ. Dort wird jedoch 2 a 6 berechnet, was wiederum gleich 0 ist, da wir uns in Charakteristik 2 befinden. Die Tatsache, dass wir uns in Charakteristik 2 befinden, ist ebenfalls der Grund dafür, dass keine Negationen in Gleichungen genutzt werden müssen. Da wir nun wissen welche Kurven wir betrachten, kann noch einmal ein Blick auf die Gruppenordnung gemacht werden. Wie wir zuvor festgestellt haben, handelt es sich um zwei mögliche Werte: q ± 2q + 1. Welcher dieser beiden Werte die Gruppenordnung repräsentiert, kann anhand des folgenden Satzes festgestellt werden. Satz Seien E 0 : y 2 + y = x 3 + x und E 1 : y 2 + y = x 3 + x + 1 zwei elliptische Kurven über dem Körper F q mit q = 2 m. Die Ordnung der ersten Kurve ist q + 2q + 1 genau dann, wenn m ±3 mod 8 und q 2q + 1 sonst. Die Ordnung der zweiten Kurve ist q + 2q + 1 genau dann, wenn m ±1 mod 8 und q 2q + 1 sonst. Für nährere Informationen dazu: Siehe [FST06]. 20

27 2.3 Paarungen auf elliptischen Kurven 2.3 Paarungen auf elliptischen Kurven Paarungen sind bilineare Funktionen in zwei Variablen. In der paarungsbasierten Kryptographie werden sie auf elliptischen Kurven betrachtet. Die bekanntesten Paarungen sind die Weil- und die Tate-Paarung, die auch Teil dieser Arbeit sind. Wir wollen in diesem Teil nun beschreiben, wie Paarungen realisiert werden und vorstellen, was dazu benötigt wird. Zuerst werden wir die Divisoren beschreiben, welche für die Weil- und die Tate-Paarung benötigt werden. Im Anschluss daran werden wir zeigen, wie dieses Paarungen definiert sind und einige Eigenschaften aufzeigen. [BF01] und [Mil04] können als Referenzen für die Weil-Paarung verwendet werden. Für die Tate-Paarung sind [BGOS07] und [Mar08] zu empfehlen. Kapitel 5.8 in [HPS08] bietet einen Einblick in die Definition der Divisoren von rationalen Funktionen und stellt die Eigenschaften derer etwas detaillierter dar Divisoren In diesem Abschnitt wollen wir Divisoren beschreiben. Diese werden benötigt, um die Weil- und die Tate-Paarung zu konstruieren. Sei dazu E eine elliptische Kurve über einem Körper F. Wir bezeichnen jeden Punkt P E(F) mit einem formalen Symbol [P ]. Wobei [P ] die jeweilige Null-/Polstelle der elliptischen Kurve beschreibt. Ein Divisor ist eine Möglichkeit eine rationale Funktion f nur auf der Basis ihrer Nullstellen (f(x) = 0) und Polstellen (f(x) = ± ) zu beschreiben. Zur Erinnerung für die folgende Definition: Die Ordnung von Null- oder Polstellen einer Funktion ist die Zahl k, für die f(x) = 0 (bzw. ), f (x) = 0 (bzw. ), f (x) = 0 (bzw. ), f (k 1) (x) = 0 (bzw. ), f (k) (x) 0 (bzw. ) gilt. Beispiel Wir betrachten die folgende rationale Funktion f, in einer Variablen x: (x 1)2 f(x) = (x + 2) ˆ= (x 3 1)2 (x + 2) 3. Diese Funktion hat eine Nullstelle der Ordnung 2 an der Stelle x = 1, eine Nullstelle der Ordnung 1 im Unendlichen und eine Polstelle der Ordnung 3 an der Stelle x = 2 Definition Sei f eine rationale Funktion. Ein Divisor von f ist definiert als: div(f) = e 1 [α 1 ] e r [α r ] d 1 [β 1 ]... d m [β m ]. Dabei repräsentieren die Zahlen α 1,..., α r die Nullstellen, mit der zugehörigen Ordnung e i von f, und die Zahlen β 1,..., β m die Polstellen, mit der zugehörigen Ordnung d i von f. 21

28 2 Grundlagen Da ein Divisor nur durch die Null- und Polstellen beschrieben ist, unterscheiden sich somit zwei Funktionen, welche den gleichen Divisor haben, nur in einer Konstante. Für Divisoren auf elliptischen Kurven gilt dies auch. Siehe dazu Satz Für elliptische Kurven gilt: Eine Funktion f auf einer elliptischen Kurve E, die über einem Körper F q definiert ist, ist eine rationale Funkion f(x, y) F q (x, y) auf E, die mindestens für einen Punkt aus E(F q ) definiert ist. Dabei bezeichnet F q (x, y) den Funktionenkörper, dessen Elemente rationale Funktionen sind. Mehr Informationen zu dem Thema des Funktionenkörpers über Kurven kann dem Buch von Kunz [Kun05] entnommen werden. Satz Sei E eine elliptische Kurve. Für jeden Punkt P E existiert eine rationale Funktion u auf E mit u(p ) = 0. Weiterhin existiert für jede rationale Funktion f 0 auf E mit f(p ) = 0 eine weitere Funktion g auf E mit g(p ) 0 und eine Zahl d N mit f = u d g. Hierbei bezeichnen wir die Zahl d, mit der Bezeichnung ord P (f), als Ordnung der Funktion f an dem Punkt P und die Funktion u mit dem Begriff Uniformisierenden 1. Beweis: (Siehe: [CC90]) Nun können wir eine Definition von Divisoren einer rationale Funktionen auf elliptischen Kurven aufgestellen. Definition Sei f eine Funktion auf der elliptischen Kurve E und ord P (f) die Ordnung der Funktion f an einem Punkt P E, dann ist der Divisor von f ist definiert als: div(f) = P E ord P (f)[p ] In den folgenden Definitionen sei D ein Divisor, einer rationalen Funktion auf einer elliptischen Kurve E. Für eine rationale Funktion f ist ein Divisor auf einer elliptischen Kurve gegeben durch die formale Summe: div(f) = D = P E n P [P ], n p Z. Wobei alle n P, bis auf endlich viele, gleich 0 sind. Definition Der Support von D ist definiert als: 1 engl.: uniformizer supp(d) := {P E n p 0}. 22

29 2.3 Paarungen auf elliptischen Kurven Definition Der Grad von D ist definiert als: deg(d) := P E n P Z. Definition Die Summe von D ist definiert als: sum(d) := P E n P P E. Dabei sei: n P P = P } + P + {{ + P }. n P mal Der Folgende Satz beantwortet die Frage, welche Divisoren auf E, auch Divisoren einer Funktion f sind. Satz Sei E eine elliptische Kurve. 1. Seien f und f zwei rationale Funktionen auf E. Wenn div(f) = div(f ), dann existiert eine Konstante c, sodass gilt: f = c f. 2. Sei D ein Divisor auf E, dann ist D ein Divisor einer rationalen Funktion f, genau dann, wenn deg(d) = 0 und sum(d) = O. Einen solchen Divisor D bezeichnen wir von nun an als Hauptdivisor. Beweis: (Siehe: [Sil09], Prop. II.3.1 und III.3.4) Beispiel Seien P 1, P 2 und P 3 Punkte auf einer elliptischen Kurve, die auf einer Linie liegen, die durch die Gleichung ax + by + c = 0 beschrieben wird, dann hat die Funktion f(x, y) = ax + by + c bei P 1, P 2 und P 3 Nullstellen. Wenn zudem b 0 gilt, dann muss f eine Polstelle der Ordnung 3 an dem Punkt O haben. Somit gilt: div(f) = [P 1 ] + [P 2 ] + [P 3 ] 3[O]. Nun fehlt uns noch eine Definition über die Äquivalenz von Divisoren, bevor wir mit Paarungen anfangen können. Definition Zwei Divisoren D und D heißen äquivalent, wenn ihre Differenz D D ein Hauptdivisor ist. Wir schreiben: D D In der Literatur wird oft die Notation f(d) benutzt, wobei f eine rationale Funktion und D ein Divisor auf einer elliptischen Kurve ist. 23

30 2 Grundlagen Definition Sei E eine elliptische Kurve über dem Körper F q und f eine rationale Funktion auf der Kurve. Weiterhin sei D = P E n P [P ] ein Divisor auf E, der disjunkten Support zu div(f) hat. Dann ist f(d) definiert als: f(d) = P E f(p ) n P. In dem nun folgenden Kapitel möchten wir zeigen, wo diese Divisoren benutzt werden Weil-Paarung Bilineare Paarungen, wie wir sie betrachten, haben ihren Anfang in der Kryptographie gefunden, als Menezes, Okamoto und Vansonte den MOV-Angriff, ein Verfahren um das DL-Problem für elliptische Kurven auf das DL-Problem für einen endlichen Körper zurückzuführen, vorgestellt haben [MOV91]. Dabei handelt es sich um bilineare Abbildungen von Gruppen der Form: G 1 G 2 G 3. In der Publikation von André Weil im Jahre 1940 wurde die Weil-Paarung [Wei40] vorgestellt und gezeigt, dass sie nützlich bei der Betrachtung von elliptischen Kurven sein kann. Die Publikation eines identbasierten Kryptographiesystems von Boneh und Franklin [BF01], welches diese Paarung benutzt, hat den Paarungen in der Kryptographie einen Aufschwung gegeben, so dass sie auch heute noch einen sehr aktiven Forschungsbereich der Kryptographie bilden. Allgemein für Parungen gilt: Seien G 1, G 2 zwei Gruppen der Ordnung n und G 3 eine Gruppe der Ordnung n, dann ist eine Paarung eine Abbildung der Form: e : G 1 G 2 G 3. Wir beginnen mit der Definition der Weil-Paarung. Definition Seien P, Q E[m] und D P [P ] [O], sowie D Q [Q] [O] zwei Divisoren. Nach Satz 2.60 existieren zwei rationale Funktionen f P und f Q auf E, so dass gilt: div(f P ) = m[p ] m[o] und div(f Q ) = m[q] m[o]. Dann ist die Weil-Paarung gegeben durch: e m (P, Q) = f P (D Q ) f Q (D P ). Der folgende Satz ist das Reziprozitätsgesetz nach Weil. Dieses wird oftmals benötigt, um die Eigenschaften von Paarungen zu beweisen. 24

31 2.3 Paarungen auf elliptischen Kurven Satz 2.65 (Reziprozitätsgesetz nach Weil). Seien f und g zwei rationale Funktionen auf einer elliptischen Kurve E, mit supp(div(f)) supp(div(g)) =, dann gilt: f(div(g)) = g(div(f)). Beweis: (Siehe [Kan85], S. 427, oder [BSS05], Anhang IX, S. 212) Die Weil-Paarung folgende Eigenschaften: Satz Sei E eine elliptische Kurve und P, P, Q, Q E[m] Der Wert der Weil-Paarung e m (P, Q) ist eine m-te Einheitswurzel (Siehe Definition 2.20): e m (P, Q) m = 1 P, Q E[m] Die Weil-Paarung ist bilinear, d.h.: e m (P + P, Q) = e m (P, Q)e m (P, Q) und e m (P, Q + Q ) = e m (P, Q)e m (P, Q ) Die Weil-Paarung ist alternierend, d.h.: e m (P, P ) = 1 P E[m] Das beinhaltet ebenfalls, dass e m (P, Q) = e m (Q, P ) 1 gilt. Die Weil-Paarung ist nicht-ausgeartet, d.h.: Für jedes P E[m]\{O} existiert ein Q E[m], so dass e m (P, Q) 1 Beweis: Mit Ausnahme der Eigenschaft nicht-ausgeartet, können alle anderen mittels der Eigenschaften von rationalen Funktionen auf elliptischen Kurven und dem Satz 2.65 bewiesen werden. Mehr Informationen zum gesamten Beweis ist in dem Buch von Silverman [Sil09], Prop.8.1, S. 94 zu finden. Satz Sei E eine elliptische Kurve über einem endlichen Körper F q und m eine Primzahl, des Weiteren seien P, Q E(F q )[m] zwei Punkte mit P O. Der Punkte Q liegt innerhalb der von P generierten Untergruppe genau dann, wenn e m (P, Q) = 1 Beweis: Folgt aus Satz 2.46 und der Eigenschaft, dass die Weil-Paarung alternierend ist. Die Weil-Paarung kann also genutzt werden, um zu untersuchen, ob zwei Punkte P, Q E[m] linear abhängig sind. Um bei der Weil-Paarung einen Wert e m (P, Q) 1 zu erhalten, müssen P und Q linear unabhängig sein. Um das zu erreichen, benötigen wir nun den Begriff der Verzerrungsabbildung 2. 2 engl: Distorsion-Map 25

32 2 Grundlagen Definition Sei E eine elliptische Kurve und P E[m], mit m Primzahl grösser 2. Weiterhin sei Φ ein Endomorphismus auf E. Φ wird dann als m-verzerrungsabbildung für P bezeichnet, wenn die folgenden Eigenschaften erfüllt sind. 1. Φ(nP ) = nφ(p ) n 1 2. x = e m (P, Φ(P )) ist ein Generator der m-ten Einheitswurzeln. Das bedeutet: r ist ein Vielfaches von m genau dann, wenn e m (P, Φ(P )) r = 1 gilt. Einige Wege, um die zweite Eigenschaft zu überprüfen, können in [HPS08](S.329) gefunden werden. Der folgende Satz zeigt einen Grund, weshalb wir supersinguläre Kurven in dieser Arbeit betrachten: Satz Sei E eine supersinguläre elliptische Kurve über dem dem Körper F q und P E(F q )[m]. Zudem sei m teilerfremd zur Charakteristik von F q, dann existiert immer eine Verzerrungsabbildung auf E hinsichtlich P. Beweis: (Siehe: [Mar08], Prop. 3.8, S. 65) Eine Verzerrungsabbildung eines Punktes P = (x, y) für die Kurven E 0 : y 2 + y = x 3 + x und E 1 : y 2 + y = x 3 + x + 1 ist: Φ(x, y) (α 2 x + β 2, y + α 2 βx + β). Wobei für α F 2 2 und β F 2 4, mit α 2 + α + 1 = 0 und β 2 + (α + 1)β + 1 = 0 gelten muss Tate-Paarung Diese Paarung wurde von John Tate vorgestellt. Frey und Rück [FR94] [FMR99] haben diese Paarung schließlich für endliche Körper definiert. Definition Sei E eine elliptische Kurve über F q mit Einbettungsgrad k und m #E(F q ) mit ggt (m, q) = 1. Wähle nun eine rationale Funktion f P auf E, mit dem Divisor: div(f P ) = m[p ] m[o]. Die Tate-Paarung t m ist definiert als die Abbildung: t m : E(F q k)[m] E(F q k)/me(f q k) F q k/(f q k)m (P, Q) t m (P, Q) = f m,p (D Q ). Wie die Funktion f m,p dieser Definition konstruiert werden kann, wird in Abschnitt 3.3 erläutert. An dieser Stelle reicht es zu wissen, dass es sich um eine Funktion mit dem Divisor div(f m,p ) = m[p ] [mp ] (m 1)[O] handelt. Wir zeigen nun, welche Eigenschaften die Tate-Paarung besitzt. 26

33 2.3 Paarungen auf elliptischen Kurven Satz Sei E eine elliptische Kurve. Des Weiteren seien P, P E(F q k)[m] und Q, Q E(F q k)/me(f q k) Die Tate-Paarung ist bilinear, d.h.: t m (P + P, Q) = t m (P, Q) t m (P, Q) und t m (P, Q + Q ) = t m (P, Q) t m (P, Q ). Die Tate-Paarung ist nicht-ausgeartet, d.h.: Für jedes P E(F q k)[m]\o existiert ein Q E(F q k)/me(f q k), so dass t m (P, Q) 1. Beweis: (Siehe: [BSS05], Th. IX.7, S. 188) Wie es ebenfalls bei der Weil-Paarung der Fall ist, kann es umgangen werden, mit dem Divisor zu arbeiten, indem f m,p an Punkt Q evaluiert wird. Zu beachten ist, dass für einen Einbettungsgrad von k > 1 die Tate-Paarung kein wohldefiniertes Element aus F q ist, da sie abhängig von der Wahl von D k Q und somit auch abhänging von Q ist, welcher wiederum ein Repräsentant aus E(F q k)/me(f q k) ist. Da wir jedoch einen eindeutigen Repräsentanten eines Elementes aus der Äquivalentklasse F q /(F k q ) m haben möchten, führen wir noch eine finale Exponentation k mit (q k 1)/n durch. Diese Vorgehensweise sorgt dafür, dass von t m (P, Q) nur noch m-te Einheitswuzeln aus F q k übrig bleiben. Aufgrund dieser Tatsache, definieren wir nun die vereinfachte Tate-Paarung. Definition Sei E eine elliptische Kurve über F q mit Einbettungsgrad k und m #E(F q ) mit ggt (m, q) = 1. Die vereinfachte Tate-Paarung t m ist definiert als die Abbildung: t m : E(F q k)[m] E(F q k)/me(f q k) µ m F q k (P, Q) t m (P, Q) = t m (P, Q) (qk 1)/m. Dabei ist µ m die Menge der m-ten Einheitswurzeln. 27

34 2 Grundlagen 28

35 3 Algorithmen Im Anschluss an die Grundlagen werden wir nun alle nicht-trivialen Algorithmen beschreiben, die im Verlauf der Arbeit umgesetzt wurden. Dabei sind einige Algorithmen sehr einfach gehalten und nicht die besten, die es gibt. Das liegt daran, dass unser Hauptaugenmerk auf der Implementierung der Paarungen liegt. Daher haben wir uns für Algorithmen entschieden, die einen ausreichenden Kontrast zwischen aufzuwendender Zeit und Effizienzvorteil bieten. Die, in diesem Abschnitt, in Pseudocode angegebenen Algorithmen, sind jeweils die, die auch implementiert wurden. Am Ende dieses Kapitels ist eine Tabelle zu finden, in der alle Algorithmen, mit der benötigten Laufzeit, zusammengefasst sind. 3.1 Körperarithmetik In diesem Abschnitt stellen wir die Algorithmen vor, die für die Umsetzung der Arithmetik des Körpers implementiert wurden. Zu Beginn jedes Unterabschnittes wird beschrieben, wie der einzelne Algorithmus arbeitet, welche Vorteile des Körpers er ausnutzt und auch welche alternativen Algorithmen es gibt. Dabei wird im Wesentlichen auf das Buch von Hankerson, Menezes und Vanstone [HMV03] verwiesen. Häufig wird m im Code, sowie in der Laufzeitanalyse vorkommen. Dabei ist m der Grad des irreduziblen Polynoms, über dem der Körper F 2 m beschrieben wird Addition Da es sich, wie in Kapitel 2 beschrieben, bei uns um den Grundkörper F 2 handelt, kann die dort angegebene Additionstabelle 2.1 verwendet werden. Die Eigenschaft, dass es sich dabei um ein logisches XOR handelt, wird in Algorithmus 1 ausgenutzt, um die Addition umzusetzen. 29

36 3 Algorithmen Algorithmus 1 : add Eingabe: a = m 1 i=0 a i x i, b = m 1 i=0 b i x i F 2 m Ausgabe: a + b 1: for i = 0 m do 2: result i = x i y i 3: end for 4: return result Laufzeit: m Bitoperationen ˆ= 1 Polynomaddition Reduktion Hierbei handelt es sich um eine Polynomdivision mit Rest, deren Korrektheit auf Satz 2.21 beruht. Algorithmus 2 soll genau diese Reduktion umsetzen und den Rest als Ergebnis zurückliefern. Dabei berechnet er die Differenz zwischen grad(z) und grad(m), erweitert m um diese Differenz und zieht es von z ab. Dies wird solange wiederholt, bis grad(z) < grad(m) gilt. Algorithmus 2 : mod Eingabe: z = k i=0 z i x i, Ausgabe: z mod m 1: while grad(z) grad(m) do 2: dif = grad(z) grad(m) 3: for i = 0 grad(m) do 4: z dif+i = z dif+i m i 5: end for 6: end while m = m j=0 m j x j Laufzeit: Die innere for-schleife realisiert führt wie in Algorithmus 1, eine Polynomaddition durch. Die Anzahl der Durchläufe der while-schleife ergibt sich durch eine Invariante. Diese sagt aus, dass nach Zeile 5 der Grad von z sich um mindestens eins verringert hat (Siehe dazu: Beobachtung 2.31). Die Laufzeit, die sich für den Algorithmus ergibt, ist in somit Fall: grad(m) (grad(z) grad(m) Bitoperationen. In unserer Implementierung tritt diese Reduktion ausschließlich in der Multiplikation und der Quadrierung auf. Demnach muss nur betrachtet werden, wie groß das Polynom z maximal werden kann. Das ist gerade ein Polynom vom Grad 2m 1, welches durch die Quadrierung eines Polynoms entsteht, wie sie nachher in Algorithmus 4 beschrieben wird. Für die Laufzeit bedeutet dies, dass die Reduktion im Worst-Case O(m 2 ) (genauer (2m 2 1)) Bitoperationen, bzw. O(m) Polynomadditionen, benötigt. 30

37 3.1 Körperarithmetik Schnellere Algorithmen benutzen größtenteils Eigenschaften des Polynoms durch das sie teilen [HMV03]. Beispiele dafür sind die Algorithmen, die speziell auf einige irreduzible Polynome abgestimmt sind, welche durch das NIST 1 (Standard FIPS 186-2) empfohlen werden. Diese Algorithmen finden sich in [HMV03]. Sie sind für uns jedoch nicht praktikabel, da wir uns nicht auf diese Polynome beschränken wollen Multiplikation Die implementierte Multiplikation funktioniert nach Schulmethode. Für jeden Koeffizienten gleich 1 in a, wird b auf ein Ergebnispolynom an entsprechender Stelle addiert. Algorithmus 3 : mul Eingabe: a = m 1 i=0 a i x i, b = m 1 j=0 b j x j F 2 m Ausgabe: (a b) mod m 1: result = b 2: for i = 0 grad(a) do 3: if a i = 1 then 4: for j = 0 grad(b) do 5: result i+j = result i+j b j 6: end for 7: end if 8: end for 9: result = mod(result,m) 10: return result Laufzeit: Durch die zwei verschachtelten for-schleifen, von denen die innere eine Polynomaddition durchführt, ergibt sich für die reine Multiplikation eine Laufzeit von m Polynomadditionen im Worst-Case ( i [0,..., m 1] : a i = 1). Da wir einen eindeutigen Repräsentanten eines Elements aus F 2 m haben möchten, wird im Anschluss daran eine Reduktion des Polynoms result gemacht. Somit ergibt sich im Worst-Case eine Laufzeit von O(m) (genauer: 3m 1) Polynomadditionen, um eine Multiplikation durchzuführen. Bei Architekturen, die einen Bit-Shift schneller ausführen können als eine Addition, gibt es Algorithmen, die eine Multiplikation in F 2 m schneller durchführen können [Bew94]. Wir haben uns dagegen entschieden, da keine solche Architekturen genutzt wird und auch in der Implementierung mit hohem Aufwand verbunden ist. 1 Das National Institute of Standards and Technology (NIST) ist eine Bundesbehörde der Vereinigten Staaten mit Sitz in Gaithersburg. Es hat die Aufgaben der technologischen Administration des Handelsministeriums und ist für Standardisierungsprozesse zuständig. 31

38 3 Algorithmen Quadrierung Eine Quadrierung wäre durch eine Multiplikation einfach zu realisieren. Es gibt jedoch ebenfalls einen einfachen Algorithmus, um die Quadrierung in linearer Zeit durchzufrühren, wenn man von der Reduktion absieht. Dabei wird die Eigenschaft ausgenutzt, welche Form ein Polynom nach einer Quadrierung in F 2 m hat. Der Grad jedes Summanden des Polynoms wird verdoppelt. Korrektzeit: Beweis durch Induktion: zz: ( m 1 i=0 a i x i ) 2 = m 1 i=0 a 2 i x 2i Induktionsanfang: m = 1 (a 0 x 0 + a 1 x 1 ) 2 = (a 0 x 0 ) 2 + 2(a 0 a 1 x 0 x 1 ) + (a 1 x 1 ) 2 = (a 0 x 0 ) 2 + (a 1 x 1 ) 2 = a 0 + a 1 x 2 Induktionsschritt: m m + 1 ( m a i x i ) 2 = ( m 1 a i x i ) 2 + (a m x m ) 2 i=0 i=0 IV = ( m 1 a 2 i x 2i ) + (a m x m ) 2 i=0 = ( m 1 a 2 i x 2i ) + (a 2 mx 2m ) i=0 = m i=0 a 2 i x 2i Für die Implementierung bedeutet das, dass zwischen jedem Koeffizienten eine 0 eingefügt wird und dann eine Reduktion ausgeführt wird. Dieses Vorgehen wird durch Algorithmus 4 umgesetzt. Algorithmus 4 : square Eingabe: a = m 1 i=0 a i x i F 2 m Ausgabe: a 2 mod m(x) 1: erstelle ein neues Polynom b 2: for i = 0 m do 3: b 2i 1 = a j 4: b 2i = 0 5: end for 6: b = mod(b,m(x)) 7: return b 32

39 3.1 Körperarithmetik Laufzeit: Die for-schleife hat genau m Durchläufe. Dies bedeutet eine Laufzeit von O(m) Operationen für die reine Quadrierung. Hinzu kommt noch die Reduktion, welche nach Algorithmus 2 durch 2m 1 Polynomadditionen realisiert ist. Die Gesamtlaufzeit ergibt somit O(m) Polynomadditionen, bzw. genauer 2m 2 + m 1 Bitoperationen. Im Vergleich zur Multiplikation (3m 2 1 Bitoperationen) wurden durch diese Implementierung m 2 m Bitoperationen gespart Exponentation Wir wollen x n berechnen. Ein naiver Ansatz für die Exponentation wäre, das n-malige multiplizieren von x. Das ist jedoch viel zu zeitintensiv (exponentiell). Bei dem umgesetzten Algorithmus handelt es sich um den Square and Multiply- Algorithmus. Dieser Algorithmus nutzt die Binärdarstellung des Exponenten aus und multipliziert nur dann, wenn es nötig ist. Es wird in jedem der log 2 (n)-vielen Schritte eine Quadrierung von a ausgeführt und wenn im aktuellen Schritt eine 1 in der Binärdarstellung zu behandeln ist, eine Multiplikation mit einem weiteren Polynom durchgeführt. Algorithmus 5 : pow Eingabe: a = m 1 i=0 a i x i F 2 m, n N in Binärdarstellung(MSB zuerst) Ausgabe: a n mod m(x) 1: y = 1 2: z = a 3: for i = 0 n do 4: if n i = 1 then 5: y = mul(y, z) 6: end if 7: z = square(z) 8: end for 9: return y Laufzeit: Zeile 5 wird im Worst-Case bei jedem Schleifendurchlauf ausgeführt. Somit ergeben sich je log 2 (n) Multiplikationen und Quadrierungen in F 2 m. Dies ergibt eine Laufzeit von O(log 2 (n) m) Polynomadditionen, bzw. genauer log 2 (n)(5m 2 + m 2) Bitoperationen. 33

40 3 Algorithmen Invertierung Aufgrund von Zeitgründen verwenden wir zu Invertierung eines Elements nicht den Erweiterten Euklidischen Algorithmus. Die Invertierung eines Elements a wird bei diesem Algorithmus berechnet, indem a 2m 2 berechnet wird. Korrektheit: Gilt nach Beobachtung Algorithmus 6 : inv Eingabe: a = m 1 i=0 a i x i F 2 m Ausgabe: a 1 1: return pow(x, 2 m 2) Laufzeit: Eine Exponentation in F 2 m mit dem Exponenten n = 2 m 2. Diese Exponentation benötigt, da log 2 (2 m 2) m, log 2 (n)(5m 2 + m 2) = 5m 3 + m 2 2m ˆ= O(m 3 ) Bitoperationen. 34

41 3.2 Elliptische Kurven 3.2 Elliptische Kurven Die Algorithmen dieses Kapitels behandeln die Operationen auf elliptischen Kurven. Alle Algorithmen sind speziell für Kurven über dem Körper F 2 m angegeben. Nur Algorithmus 7 bildet eine Ausnahme. Dieser Algorithmus stellt die allgemeine Addition von Punkten auf elliptischen Kurven dar. Daran soll deutlich gemacht werden, dass die von uns betrachteten Kurven, vom Aufwand der Berechnung her, einen Vorteil gegenüber einer allgemeinen Betrachtung haben. Alle folgenden Algorithmen werden für die Kurven E 0 : y 2 +y = x 3 +x und E 1 : y 2 +y = x 3 +x+1 betrachtet. Bei der Betrachtung der Laufzeit, werden wir von nun an die zuvor beschriebenen Körperoperationen angeben. Dazu bezeichnen wir diese zur Übersicht wie folgt: A - Addition, M - Multiplikation, Q - Quadrierung, E - Exponentation und I - Invertierung Addition allgemein Algorithmus 7 : addelk_a (Siehe: Def.: 2.42) Eingabe: P 1 = (x 1, y 1 ), P 2 = (x 2, y 2 ) E(F m 2 ) Ausgabe: P 3 = P 1 + P 2 1: if P 1 = O then 2: return P 2 3: end if 4: if P 2 = O then 5: return P 1 6: end if 7: if x 1 = x 2 then 8: t = (2y 1 + a 1 x 1 + a 3 ) 1 9: λ = t (3x a 2 x 1 + a 4 a 1 y 1 ) 10: ν = t ( x a 4 x 1 + 2a 6 a 3 y 1 ) 11: else 12: t = (x 2 x 1 ) 1 13: λ = t (y 2 y 1 ) 14: ν = t (y 1 x 2 y 2 x 1 ) 15: end if 16: x 3 = λ 2 + a 1 λ a 2 x 1 x 2 17: y 3 = (λ + a 1 )x 3 ν a 3 18: return P 3 = (x 3, y 3 ) 35

42 3 Algorithmen Laufzeit: Wir betrachten nur die Zeilen 8, 9, 10, 12, 13, 14, 16 und 17, da dies die Zeilen sind, in denen Gruppenoperationen vorkommen. Zeile 8: 2A, 2M und 1I Zeile 9: 3A, 5M, 1Q und eine Negation Zeile 10: 3A, 5M, 1Q und zwei Negationen (Beachte: x 3 kann durch 1Q und 1M realisiert werden.) Zeile 12: 1A und 1I Zeile 13: 1A, 1M und eine Negation Zeile 14: 1A, 3A und eine Negation Zeile 16: 4A, 1M, 1Q und 3 Negationen Zeile 17: 3A, 1M und 3 Negationen Somit ergeben sich für x 1 = x 2 : 15A, 14M, 3Q, 1I und 9 Negationen Für x 1 x 2 ergeben dies: 10A, 6M, 1Q, 1I und 8 Negationen Addition für die Kurven E 0 und E 1 Laufzeit: Hier werden nur die Zeilen 8, 9, 11, 12, 13, 15 und 16, betrachtet. Zeile 8: 1A und 1Q Zeile 9: 2A, 1M und 1Q (Beachte: x 3 kann durch 1Q und 1M realisiert werden.) Zeile 11: 1A und 1I Zeile 12: 1A und 1M Zeile 13: 1A und 3M Zeile 15: 2A und 1Q Zeile 16: 2A und 1M Für die Kurven E 0 : y 2 + y = x 3 + x und E 1 : y 2 + y = x 3 + x + 1 ergibt sich also folgende Laufzeit: Für x 1 = x 2 sind es: 7A, 2M und 3Q Für x 1 x 2 ergeben sich: 7A, 5M, 1Q und 1I 36

43 3.2 Elliptische Kurven Algorithmus 8 : addelk (Siehe: Def.: 2.51) Eingabe: P 1 = (x 1, y 1 ), P 2 = (x 2, y 2 ) E(F m 2 ) Ausgabe: P 3 = P 1 + P 2 1: if P 1 = O then 2: return P 2 3: end if 4: if P 2 = O then 5: return P 1 6: end if 7: if x 1 = x 2 then 8: λ = x a 4 9: ν = x x 1 + y 1 10: else 11: t = (x 2 + x 1 ) 1 12: λ = t (y 2 + y 1 ) 13: ν = t (y 1 x 2 + y 2 x 1 ) 14: end if 15: x 3 = λ 2 + x 1 + x 2 16: y 3 = λx 3 + ν + a 3 17: return P 3 = (x 3, y 3 ) Verdopplung von Punkten Es wurde ein Algorithmus zur Verdopplung von Punkten umgesetzt, da 2P schneller berechnet werden kann, als durch Algorithmus 8. Ein solcher Algorithmus wird in den Algorithmen 11 und 10 benutzt. Laufzeit: Dieser Algorithmus kann mit 4Q (2 pro Potenzierung) und 2A umgesetzt Algorithmus 9 : twice Eingabe: P = (x P, y P ) E(F m 2 ) Ausgabe: Q = (x Q, y Q ) = 2P 1: x Q = x 4 P + 1 2: y Q = y 4 P + x 4 P 3: return Q = (x Q, y Q ) werden. Dazu wird zuerst x Q = x 4 P berechnet und dieses Ergebnis für y Q benutzt. Im Anschluss daran wird dann die 1 auf x Q addiert. 37

44 3 Algorithmen Double-And-Add-Algorithmus Bei dem Double-And-Add-Algorithmus handelt es sich um einen Algorithmus, der dem Square-And-Multiply-Algorithmus 5 sehr ähnlich ist. Der Name ist nur ein anderer, da im Allgemeinen von einer Addition auf einer elliptischen Kurve gesprochen wird und nicht von einer Multiplikation. Die zu Grunde liegende Idee ist jedoch dieselbe. Algorithmus 10 : DoubleAndAdd Eingabe: P E, n in Binärdarstellung (n 0,..., n r 1 ) Ausgabe: np 1: Q = P 2: R = O 3: for i = 0 to r 1 do 4: if n i = 1 then 5: R = R + Q 6: end if 7: Q = 2Q 8: end for 9: return R Schreibe n als Binärzahl: n = n 0 + n n n r 2 r, mit n i {0, 1}. Wir nehmen zusätzlich an, dass n r 0 gilt. Innerhalb des Algorithmus werden unter anderem folgende Werte berechnet: Q 0 = P, Q 1 = 2Q 0,..., Q r = 2Q r 1 Es handelt sich dabei um die Quadrate und Folgequadrate von P. Am Ende hat der Algorithmus mit den Werten n und Q i den Wert np = n 0 Q 0 + n 1 Q n r Q r berechnet. Ein ausführliches Beispiel findet sich in [HPS08], Beispiel: Laufzeit: Es handelt sich um das gleiche Verfahren, wie bei Algorithmus 5. Hier jedoch auf Elliptischen Kurven. Es werden in jedem Fall log 2 (n) Verdopplungen eines Punktes durchgeführt, und im Worst-Case werden zusätzlich log 2 (n)-viele Punktadditionen durchgeführt. 38

45 3.3 Paarungen 3.3 Paarungen In diesem Abschnitt beschäftigen wir uns zunächst mit der Frage, wie wir Paarungen berechnen können. In dieser Arbeit werden die Weil- und die Tate-Paarung behandelt. Für diese Paarungen kann der Miller-Algorithmus verwendet werden, um eine Funktion f m,p mit dem Divisor div(f m,p ) = m[p ] [mp ] (m 1)[O] zu evaluieren. Diese Funktionen und der Algorithmus wurden das erste Mal von Victor Miller in einer unveröffentlichten Arbeit [Mil86] vorgestellt und können verwendet werden um die Paarungen zu berechnen. Der Grund, weshalb wir diesen Algorithmus behandeln, ist, dass er eine Möglichkeit bietet, die Paarungen schneller zu berechnen. Wir beginnen damit, diesen Algorithmus zu beschreiben und stellen im Anschluss daran vor, wie die Paarungen berechnet werden Miller Algorithmus Der Miller-Algorithmus hat, wie erwähnt, die Aufgabe, eine Funktion f m,p mit div(f m,p ) = m[p ] [mp ] (m 1)[O] an einem Punkt Q der Kurve zu evaluieren. Wir erinnern an die Definition der Weil-Paarunng 2.64: e m (P, Q) = f P (D Q ). Um f Q (D P ) e m (P, Q) zu berechnen müssen die Funktionen f P und f Q nicht konstruiert werden. Das Ziel ist es, eine Funktion f mit Divisor div(f) = n([p ] [O]) auszuwerten. Der Miller-Algorithmus macht genau dies induktiv. Der folgende Satz zeigt nun, wie die Funktion f m,p evaluiert wird. Satz 3.1. Sei E eine elliptische Kurve und P = (x P, y P ), sowie Q = (x Q, y Q ) zwei Punkte auf E, ungleich O. Weiterhin sei λ die Steigung der Geraden von P nach Q, bzw. die Steigung der Tangente am Punkt P, falls P = Q gilt. Definiere nun folgende Funktion: g P,Q = x x P y y P λ(x x P ) x+x P +x Q λ 2 if λ if λ = Dann gilt: div(g P,Q ) = [P ] + [Q] [P + Q] [O]. Beachte: In der Implementierung können auch hier die Negationen vernachlässigt werden. Der Miller-Algorithmus ist eine etwas abgewandelte Variante des Double-And-Add Algorithmus und berechnet f m,p (Q) mit div(f m,p ) = m[p ] [mp ] (m 1)[O], sowie T = mp. Beweis: Der Beweis zur Korrektheit des Miller-Algorithmus, ist in [HPS08], Th. 5.41, S. 321 zu finden. 39

46 3 Algorithmen Algorithmus 11 : Miller Eingabe: P, Q E, m in Binärdarstellung (m 0,..., m n 1 ) Ausgabe: f m,p (Q) wie oben 1: f = 1 2: T = P 3: for i = n 1 to 0 do 4: f = f 2 g T,T (Q) 5: T = 2T 6: if m i = 1 then 7: f = f g P,T (Q) 8: T = T + P 9: end if 10: end for 11: return f Der Algorithmus berechnet f m,p (Q) iterativ, indem er sich sukzessive von f 1,P (Q) annähert. Die Zeilen 4 und 7 sind dabei eventuell nicht sehr intuitiv. Ihr Sinn eröffnet sich jedoch, wenn betrachtet wird, wie die Funktion f 2i,P (Q) und f i+1,p (Q) konstruiert werden. Betrachten wir die Funktion f i,p (Q) mit div(f i,p ) = i[p ] [ip ] (i 1)[O]. Zu dem Zeitpunkt, an dem Zeile 4 ausgeführt wird, gilt T = ip. In dieser Zeile soll aus der Funktion f i,p (Q), die Funktion f 2i,P (Q) konstruiert werden: Zur Erinnerung: Nach Satz 3.1 gilt div(g P,Q ) = [P ] + [Q] [P + Q] [O]. div(f i,p )= i[p ] [ip ] (i 1)[O] div(fi,p 2 )= 2i[P ] 2[iP ] 2(i 1)[O] div(fi,p 2 ) div(g T,T ) = 2i[P ] 2[iP ] 2(i 1)[O] + [ip ] + [ip ] [2iP ] [O] = 2i[P ] [2iP ] (2i 1)[O] = div(f 2i,P ) Für die Konstruktion f i+1,p (Q) ist das Vorgehen dasselbe: Dabei gilt zu diesem Zeitpunkt: T = 2iP. div(f 2i,P )= 2i[P ] [2iP ] (2i 1)[O] div(f 2i,P ) div(g T,P ) = 2i[P ] [2iP ] (2i 1)[O] + [P ] + [2iP ] [P + 2iP ] [O] = (2i + 1)[P ] [(2i + 1)P ] 2i[O] = div(f 2i+1,P ) 40

47 3.3 Paarungen Laufzeit: Die Laufzeit des Miller-Algorithmus hängt von der Ordnung #E der elliptischen Kurve ab. Diese ist nach 2.52 maximal #E = q + 2q + 1. Der Double-And-Add Teil des Algorithmus führt somit im Worst-Case log 2 (#E)-viele Punktverdopplungen und Punktadditionen durch. Bei der Konstruktion der Funktion f m,p (Q) Zeit gespart werden, indem nicht f = f 2 g T,T (Q) bzw. f = f g P,T (Q) berechnet wird, sondern zwei Funktionen f 1, f 2 benutzt werden. Diese beiden Funktionen repräsentieren den Zähler und den Nenner von f. Dabei werden beide Funktionen gleich behandelt, jedoch wird bei f 1 nur der Zähler von g P,Q hinzu multipliziert und bei f 2 der Nenner von g P,Q. Nach der Durchführung wird f = f 1 f 2 berechnet. Durch dieses Vorgehen werden bei jeder Berechnung von f die Invertierung gespart die bei der Berechnung von g P,Q entstehen würde. Für die Laufzeit bedeutet dies: Zur Konstruktion von f 1 werden log 2 (#E) (3A und 1M) benötigt. Die Konstruktion von f 2 benötigt log 2 (#E) (3A und 1Q). Die Bestimmung von λ muss nicht berücksichtigt werden, da das λ der vorangegangenen Operation zur Punktaddition- /verdoppelung genutzt werden kann. Bei der Analyse des Worst-Case wurde der Fall, dass λ = gilt, nicht berücksichtigt, da es sich dabei nur um eine Addition handelt und dieser bei der Berechnung nicht eintreten muss. Die Gesamtlaufzeit des Miller-Algorithmus ist somit gegeben durch: log 2 (#E) (3A und 1M) + log 2 (#E) (3A und 1Q) zuzüglich log 2 (#E)-vielen Punktadditionen und Verdopplungen Berechnung der Weil-Paarung Um die Weil-Paarung zu berechnen, müssen Funktionen f P (D Q ) und f Q (D P ) berechnet werden. Eine Funktion f P (D Q ) kann wie folgt berechnet werden: f P (D Q ) = f P (Q+S) f P, wobei S ein Punkt der Kurve ist, mit S {O, Q}. Für die Berechnung (S) der Weil-Paarung muss ebenfalls S P Q gelten. Siehe dazu: [HPS08], S,319. Für die Berechnung der Weil-Paarung bedeutet das nach der Definition 2.64: Um e m (P, Q) zu berechnen müssen die Funktionen f P und f Q an jeweils 2 Stellen ausgewertet werden muss. Dieses Vorgehen ist nicht effizient. Victor Miller zeigte, dass sich die Weil-Paarung wie folgt berechnen lässt: Satz 3.2. Seien P, Q E[m] mit D P [P ] [O] und D Q [Q] [O] zwei Divisoren. Nach Satz 2.60 existieren zwei rationale Funktionen f P und f Q auf E, so dass gilt: div(f P ) = m[p ] m[o] und div(f Q ) = m[q] m[o]. Dann ist die Weil-Paarung gegeben durch: e m (P, Q) = ( 1) n f m,p (Q) f m,q (P ). 41

48 3 Algorithmen Beweis: (Siehe: [Mil04], Prop. 8) Somit reicht es aus, die Funktionen f m,p und f m,q an jeweils einem Punkt auszuwerten. Da wir uns in Charakteristik 2 befinden, reicht es außerdem aus, e m (P, Q) = f m,p (Q). f m,q (P ) zu berechnen Berechnung der Tate-Paarung Bei der Berechnung der Tate-Paarung richten wir uns nach der Definition der modifizierten Tate-Paarung Diese Berechnung benötigt 2 Aufrufe des Miller- Algorithmus. Es ist jedoch möglich, die Berechnung noch etwas zu beschleunigen. Satz 3.3. Sei P E(F q )[m] und Q E(F q m) zwei linear unabhängige Punkte. Dann gilt: t m (P, Q) = f m,p (Q) (qk 1)/m. Beweis:(Siehe: [BLS03], Th. 1, S.5) Um zu erreichen, dass P und Q linear unabhängig sind, kann auch hier eine Verzerrungsabbildung verwendet werden. 42

49 3.4 Zusammenfassung 3.4 Zusammenfassung In diesem Abschnitt des Algorithmenteils wird eine Auflistung aller vorgestellten Algorithmen in einer Tabelle zusammengefasst. Dabei geben wir zu Übersicht an, in welchem Abschnitt der Algorithmus behandelt wurde. Es bezeichnet dabei K den Bereich der Körperarithmetik, E den Bereich der elliptischen Kurven und P den Bereich der Paarungen. Ebenfalls bezeichnen wir den Begriff Bitoperationen mit BO und. Alg. Bereich Bezeichnung Laufzeit 1 K Addition m BO 2 K Reduktion 2m 2 1 BO 3 K Multiplikation 3m 1 A 4 K Quadrierung 2m 1 A 5 K Exponentation log 2 (n)(5m 2 + m 2)BO 6 K Invertierung 5m 3 + m 2 2mBO 8 E Addition Kurve(PA) 7A, 2M, 3Q (für x 1 = x 2 ) 8 E Addition Kurve 7A, 5M, 1Q, 1I (für x 1 x 2 ) 9 E Verdopplung(PV) 2A, 4Q 10 E Double-And-Add log 2 (n)(p A + P V ) 11 P Miller log 2 (#E)(6A + 1M + 1Q + 1P A + 1P V ) Für die Berechnung der Paarungen wurde kein Algorithmus angegeben. Es handelt sich wie in den jeweiligen Abschnitten erläutert, um zwei Aufrufe des Miller- Algorithmus bei der Weil-Paarung, sowie bei der Tate-Paarung um einen Aufruf des Miller-Algorithmus und eine Exponentantion. 43

50 3 Algorithmen 44

51 4 Implementierung In diesem Abschnitt wird der Blick auf die Implementierung gelegt. Wir beginnen damit die verwendeten Werkzeuge zu beschreiben, die für die Implementierung verwendet wurden. Im Anschluss daran wird die Implementierung wichtiger Klassen, und die dabei verwendeten Konzepte, genauer erläutert. Den Abschluss dieses Kapitels bildet die Beschreibung der Tests und wie Tests innerhalb der implementierten Bibliothek durchgeführt werden sollten. 4.1 Werkzeuge Die Implementierung baut auf einer existierenden Java-Bibliothek auf, die für allgemeine Körper arbeitet. Demnach ist auch in dieser Arbeit die verwendete Programmiersprache Java Entwicklungsumgebung Bei der Entwicklungsumgebung haben wir uns für Eclipse entschieden, da es im Vergleich zu anderen Umgebungen mehr Möglichkeiten bietet, um Erweiterungen einzubinden, die beim Testen und bei der Entwicklung selbst nützlich sind. Eclipse ist eine Open-Source-Gemeinschaft, die es sich zur Aufgabe gemacht hat, eine plattformunabhängige Entwicklungsumgebung mit einer Vielzahl verschiedener Ziele zu erschaffen. Eines dieser umgesetzten Ziele ist ein funktionsfähiges Plugin System, welches dem Nutzer ermöglichen soll, Erweiterungen für Eclipse zu benutzen, welche die Programmierung eigener Projekte erleichtern soll. In dieser Arbeit wurde Eclipse in der Version 3.6 (Projektname: Helios) verwendet. Mehr Informationen zu Eclipse ist auf der Webseite zu finden. Wir werden nun die verwendeten Erweiterungen vorstellen Erweiterung Subclibse Bei Subclipse handelt es sich um ein SVN Team Provider Plugin. Dieses Plugin ist Client/Serverbasiert und wurde in dieser Arbeit verwendet um verschiedene Versionen des Programmcodes an einer zentralen Stelle zu speichern. Dabei wird jedes Einspeichern ( commit ) des Codes mit einer Revisionsnummer versehen 45

52 4 Implementierung und kann bei Bedarf wiederhergestellt werden. Abbildung 4.1: Subclipse: Historien-Verwaltung Abbildung 4.1 zeigt einen Ausschnitt, der Historien-Verwaltung von Subclipse (eingebunden in Eclipse Helios). Über diese Ansicht ist es möglich, eine bestimmte Version wiederherzustellen, oder auch zwei Versionen zu vergleichen und sich die Unterschiede anzeigen zu lassen. Der Sinn dieses Plugins ist es, eine Möglichkeit zu schaffen, mit dem ein Team gemeinsam an einem Gesamtprojekt arbeiten kann und keinen großen Umweg machen muss, um den aktuellen Stand des Programmcodes an alle Teammitglieder zu verteilen. Subclipse ist das bekannteste Plugin dieser Art, und hat auch die meisten Nutzer zu verbuchen. Ein Weiteres mit nahezu der gleichen Funktionalität ist Subversive. Informationen zu diesen Plugins finden sich auf den jeweiligen Webseiten und Erweiterung JUnit JUnit wird zum Testen von Java-Programmen verwendet. Es handelt sich dabei um ein Framework, welches speziell für Unit-Tests (z.b. für Klassen oder Methoden) entwickelt wurde. JUnit Testfälle haben nur die zwei Ergebnisse: der Test ist gelungen, oder nicht. Im Fehlerfall kann diese mehrere Ursachen haben. Innerhalb der Testklassen, die von der JUnit-Testklasse T estcase erben, können Assertaion-Tests benutzt werden, um im Fehlerfall etwas mehr Aufschluss über den Fehler zu erhalten. 46

53 4.1 Werkzeuge Abbildung 4.2: JUnit-Test-Beispiel Abbildung 4.2 zeigt ein kleines Beispiel. In diesem Beispiel wird ein Körper mit acht Elementen durch das irreduzible Polynom x 3 + x konstruiert (Zeile 166). Nachdem der Körper erstellt wurde, wird ein Element erzeugt und diesem der Wert 1 zugewiesen (Zeile 167). Im Anschluss werden einige Tests auf dem Element ausgeführt. Die ersten beiden Tests(assertTrue und assertfalse) liefern dabei das richtige Ergebnis. Das JUnit-Framework bricht einen Test komplett ab, sobald einer der Tests nicht erfolgreich abgeschlossen wird. Dieser Fehler wird dann im Failure Trace (unten links auf dem Bild) angezeigt. Der dritte Test (Zeile 171) werwartet in diesem Beispiel 010 auf der rechten Seite des Tests. Das Ergebnis der rechten Seite war jedoch 100, was im Failure Trace auch angezeigt wird. Dies war nur ein kleines Beispiel. Das JUnit-Framework bietet jedoch noch sehr viele weitere Möglichkeiten, um ein Programm zu testen. Mehr Informationen zu dieser Erweiterung sind auf der Webseite zu finden Erweiterung EclEmma EclEmma ist ein Coverage-Tool. Ein solches Tool wird verwendet, um zu überprüfen, ob alle Instruktionen eines Programms durch einen Test abgedeckt sind oder nicht. Dieses Plugin merkt sich dabei, welche Code-Zeilen behandelt wurden, welche nur teilweise und welche überhaupt nicht ausgeführt wurden. Nach der Beendigung des Programms, egal ob korrekt oder erzwungen, werden die Codezeilen entsprechend gekennzeichnet (grün, gelb oder rot). 47

54 4 Implementierung Abbildung 4.3: EclEmma: Coverage-Beispiel Abbildung 4.3 stellt ein Beispiel für einen Coverage Fall dar. Links ist ein Ausschnitt des Miller-Algorithmus zu sehen, nachdem ein Test durchgeführt wurde, um die Bilinearität der Weil-Paarung zu testen. Der obere Teil des Codes ist dabei grün gekennzeichnet, was bedeutet, dass diese Programmzeilen vollständig ausgeführt wurden. Die Zeilen 84 und 85 sind in diesem Beispiel rot gekennzeichnet, was bedeutet, dass diese Zeilen während des Tests nicht ausgeführt wurden. Werden im Programmcode außerdem Instruktionen eingebaut, die nur im Fehlerfall ausgeführt werden, kann Coverage somit auch als schnelle Kontrolle für korrektes Verhalten des Codes benutzt werden. Wären z.b. die beiden unteren Zeilen des oberen Beispiels grün, würde dies bedeuten, dass bei der Berechnung ein Fehler aufgetreten ist. Informationen zu allen Möglichkeiten dieses Plugins können auch hier der zugehörigen Webseite entnommen werden Erweiterung TPTP Die letzte Erweiterung, die in diesem Teil noch kurz vorgestellt wird, ist das Plugin Eclipse Test and Performance Tools Platform, kurz TPTP. Bei dieser Erweiterung handelt es sich um ein Profiling Framework, welches sich, ähnlich wie EclEmma, die ausgeführten Instruktionen merkt. Dabei werden jedoch für jede Methode Informationen gespeichert, die Aussagen darüber zulassen, wie speicher- / zeitintensiv die jeweilige Methode ist. Diese Informationen sind sehr wichtig, wenn es darum geht, die Performance eines Programms zu verbessern. Die Abbildungen 4.4 und 4.5 sind Beispiele eines Tests, die zwei Möglichkeiten der Analyse darstellen. Bei diesem Test wurde die Bilinearität der Tate- und der Weil-Paarung getestet. Die dabei verwendete elliptische Kurve war E 0 Aus Abschnitt üfer dem Körper F

55 4.1 Werkzeuge Abbildung 4.4: TPTP-Ausführungsstatistik Abbildung 4.4 zeigt die Ansicht der Aufruf-Details der duplicate()-methode. Diese Methode wurde in diesem Test am häufigsten aufgerufen und hat die Aufgabe ein Element zu duplizieren. Demnach wäre nun eine Möglichkeit der Optimierung, die Anzahl der Aufrufe dieser Methode zu verringern. In dieser Ansicht ist zu sehen, wie oft, während des Tests, die duplicate()-methode, von einer anderen Methode aus, aufgerufen wurde. In diesem Fall wäre eine Möglichkeit, in der mul()-methode zu schauen, ob die Anzahl der Aufrufe verringert werden kann. Abbildung 4.5: TPTP-Aufruf-Baum Abbildung 4.5 zeigt weitere Ansicht, die es ermöglicht, abzuschätzen in welcher Methode sich eine Optimierung lohnen würde. Diese Ansicht zeigt, wie viel Zeit 49

a i x i, (1) Ein Teil der folgenden Betrachtungen gilt auch, wenn man den Körper durch einen Ring ersetzt.

a i x i, (1) Ein Teil der folgenden Betrachtungen gilt auch, wenn man den Körper durch einen Ring ersetzt. Polynome Definition 1. Ein Polynom f über einem Körper K mit der Unbestimmten x ist eine formale Summe f(x) = i 0 a i x i, (1) wobei nur endlich viele der Koeffizienten a i K von Null verschieden sind.

Mehr

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 4: Zahlentheorie

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 4: Zahlentheorie Prof. Dr. Sebastian Iwanowski DM4 Folie 1 Referenzen zum Nacharbeiten: Diskrete Mathematik Sebastian Iwanowski FH Wedel Kap. 4: Zahlentheorie Beutelspacher 5 Lang 7, Biggs 20, 22, 23 (jeweils teilweise,

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 23 Die Gradformel Satz 1. Seien K L und L M endliche Körperweiterungen. Dann ist auch K M eine endliche Körpererweiterung und

Mehr

31 Polynomringe Motivation Definition: Polynomringe

31 Polynomringe Motivation Definition: Polynomringe 31 Polynomringe 31.1 Motivation Polynome spielen eine wichtige Rolle in vielen Berechnungen, einerseits weil oftmals funktionale Zusammenhänge durch Polynome beschrieben werden, andererseits weil Polynome

Mehr

6. Lösungsblatt

6. Lösungsblatt TECHNISCHE UNIVERSITÄT DARMSTADT FACHGEBIET THEORETISCHE INFORMATIK PROF. JOHANNES BUCHMANN DR. JULIANE KRÄMER Einführung in die Kryptographie WS 205/ 206 6. Lösungsblatt 9..205 Ankündigung Es besteht

Mehr

1 Algebraische Strukturen

1 Algebraische Strukturen Prof. Dr. Rolf Socher, FB Technik 1 1 Algebraische Strukturen In der Mathematik beschäftigt man sich oft mit Mengen, auf denen bestimmte Operationen definiert sind. Es kommt oft vor, dass diese Operationen

Mehr

Algebra und Diskrete Mathematik, PS3. Sommersemester Prüfungsfragen

Algebra und Diskrete Mathematik, PS3. Sommersemester Prüfungsfragen Algebra und Diskrete Mathematik, PS3 Sommersemester 2016 Prüfungsfragen Erläutern Sie die Sätze über die Division mit Rest für ganze Zahlen und für Polynome (mit Koeffizienten in einem Körper). Wodurch

Mehr

Geometrie kubischer Kurven

Geometrie kubischer Kurven Geometrie kubischer Kurven Werner Hoffmann Wir wollen die Theorie nur soweit entwickeln, wie es zum Verständnis der Gruppenoperation auf einer irreduziblen kubischen Kurve nötig ist. Satz 1 In der affinen

Mehr

Galoiskörper GF(2 n ) (Teschl/Teschl 4)

Galoiskörper GF(2 n ) (Teschl/Teschl 4) Galoiskörper GF(2 n ) (Teschl/Teschl 4) auch Galois-Felder (englisch Galois elds), benannt nach Evariste Galois (18111832). Körper (in der Mathematik) allgemein: Zahlenbereich, in dem die vier Grundrechenarten

Mehr

Die inverse Diskrete Fourier Transformation

Die inverse Diskrete Fourier Transformation Die inverse Diskrete Fourier Transformation Konvertierung von der Point-value Form in Koeffizientenform. Dazu stellen wir die DFT als Matrix-Vektor Produkt dar 1 1 1... 1 1 ω n ωn 2... ωn n 1 a 0 y 0 1

Mehr

GF(2 2 ) Beispiel eines Erweiterungskörpers (1)

GF(2 2 ) Beispiel eines Erweiterungskörpers (1) GF(2 2 ) Beispiel eines Erweiterungskörpers (1) Im Kapitel 2.1 wurde bereits gezeigt, dass die endliche Zahlenmenge {0, 1, 2, 3} q = 4 nicht die Eigenschaften eines Galoisfeldes GF(4) erfüllt. Vielmehr

Mehr

$Id: korper.tex,v /05/10 12:25:27 hk Exp $

$Id: korper.tex,v /05/10 12:25:27 hk Exp $ $Id: korper.tex,v 1.17 2012/05/10 12:25:27 hk Exp $ 4 Körper In der letzten Sitzung hatten wir den Körperbegriff eingeführt und einige seiner elementaren Eigenschaften vorgeführt. Insbesondere hatten wir

Mehr

3. Diskrete Mathematik

3. Diskrete Mathematik Diophantos von Alexandria um 250 Georg Cantor 1845-1918 Pythagoras um 570 v. Chr Pierre de Fermat 1607/8-1665 Seite 1 Inhalt der Vorlesung Teil 3: Diskrete Mathematik 3.1 Zahlentheorie: Abzählbarkeit,

Mehr

Einführung in Algebra und Zahlentheorie Lösungsvorschläge zur Klausur vom Aufgabe 1 (6 Punkte)

Einführung in Algebra und Zahlentheorie Lösungsvorschläge zur Klausur vom Aufgabe 1 (6 Punkte) Aufgabe 1 (6 Punkte) Einführung in Algebra und Zahlentheorie svorschläge zur Klausur vom 23.09.2016 a) Bestimmen Sie das multiplikativ inverse Element zu 22 in Z/61Z. b) Finden Sie ein x Z mit folgenden

Mehr

Elemente der Algebra

Elemente der Algebra Prof. Dr. H. Brenner Osnabrück SS 2015 Elemente der Algebra Vorlesung 1 Der Gruppenbegriff Definition 1.1. Eine Verknüpfung auf einer Menge M ist eine Abbildung : M M M, (x,y) (x,y) = x y. Statt (x,y)

Mehr

Übungen zu Einführung in die Lineare Algebra und Geometrie

Übungen zu Einführung in die Lineare Algebra und Geometrie Übungen zu Einführung in die Lineare Algebra und Geometrie Andreas Cap Wintersemester 2014/15 Kapitel 1: Einleitung (1) Für a, b Z diskutiere analog zur Vorlesung das Lösungsverhalten der Gleichung ax

Mehr

Vorkurs: Mathematik für Informatiker

Vorkurs: Mathematik für Informatiker Vorkurs: Mathematik für Informatiker Teil 3 Wintersemester 2016/17 Steven Köhler mathe@stevenkoehler.de mathe.stevenkoehler.de 2 c 2016 Steven Köhler Wintersemester 2016/17 Inhaltsverzeichnis Teil 1 Teil

Mehr

für alle a, b, x, y R.

für alle a, b, x, y R. Algebra I 13. April 2008 c Rudolf Scharlau, 2002 2008 33 1.5 Ringe Definition 1.5.1 Ein Ring ist eine Menge R zusammen mit zwei Verknüpfungen + und, genannt Addition und Multiplikation, für die folgendes

Mehr

Grundlagen der Arithmetik und Zahlentheorie

Grundlagen der Arithmetik und Zahlentheorie Grundlagen der Arithmetik und Zahlentheorie 1.0 Teilbarkeit In diesem Abschnitt werden wir einerseits die ganzen Zahlen an sich studieren und dabei besonders wichtige Zahlen, die Primzahlen, entsprechend

Mehr

Endliche Körper Seminar: Diskrete Mathematik Leitung: Prof. Dr. Rainer Lang Von: Steffen Lohrke (ii5105) SS2005

Endliche Körper Seminar: Diskrete Mathematik Leitung: Prof. Dr. Rainer Lang Von: Steffen Lohrke (ii5105) SS2005 Endliche Körper Seminar: Diskrete Mathematik Leitung: Prof. Dr. Rainer Lang Von: Steffen Lohrke (ii5105) SS2005 Inhaltsverzeichnis Abelsche Gruppe 3 Kommutativer Ring 5 Körper 6 Endliche Körper 7 Endliche

Mehr

Zahlen und elementares Rechnen

Zahlen und elementares Rechnen und elementares Rechnen Christian Serpé Universität Münster 7. September 2011 Christian Serpé (Universität Münster) und elementares Rechnen 7. September 2011 1 / 51 Gliederung 1 2 Elementares Rechnen 3

Mehr

KAPITEL 1: ENDLICHE KÖRPER 1 ALLGEMEINES 2 GLEICHUNGEN ÜBER EINEM ENDLICHEN KÖRPER

KAPITEL 1: ENDLICHE KÖRPER 1 ALLGEMEINES 2 GLEICHUNGEN ÜBER EINEM ENDLICHEN KÖRPER RUPRECHT-KARLS-UNIVERSITÄT HEIDELBERG MATHEMATISCHES INSTITUT SEMINAR: QUADRATISCHE FORMEN ÜBER DEN RATIONALEN ZAHLEN SOMMERSEMESTER 2007 DOZENT: PROF. DR. KAY WINGBERG ASSISTENT: JOHANNES BARTELS KAPITEL

Mehr

Kongruenzen und Restklassenringe. 2. Kongruenzen und Restklassenringe

Kongruenzen und Restklassenringe. 2. Kongruenzen und Restklassenringe 2. Kongruenzen und Restklassenringe Kongruenzen Definition: Wir sagen a ist kongruent zu b modulo m schreiben a b mod m, wenn m die Differenz b-a te Beispiel: Es gilt 2 19 mod 21, 10 0 mod 2. Reflexivität:

Mehr

2 Polynome und rationale Funktionen

2 Polynome und rationale Funktionen Gleichungen spielen auch in der Ingenieurmathematik eine große Rolle. Sie beschreiben zum Beispiel Bedingungen, unter denen Vorgänge ablaufen, Gleichgewichtszustände, Punktmengen. Gleichungen für eine

Mehr

Übungen zu Einführung in die Lineare Algebra und Geometrie

Übungen zu Einführung in die Lineare Algebra und Geometrie Übungen zu Einführung in die Lineare Algebra und Geometrie Andreas Cap Sommersemester 2010 Kapitel 1: Einleitung (1) Für a, b Z diskutiere analog zur Vorlesung das Lösungsverhalten der Gleichung ax = b

Mehr

1. Gruppen. 1. Gruppen 7

1. Gruppen. 1. Gruppen 7 1. Gruppen 7 1. Gruppen Wie schon in der Einleitung erläutert wollen wir uns in dieser Vorlesung mit Mengen beschäftigen, auf denen algebraische Verknüpfungen mit gewissen Eigenschaften definiert sind.

Mehr

Ringe. Kapitel Einheiten

Ringe. Kapitel Einheiten Kapitel 8 Ringe Die zahlreichen Analogien zwischen Matrizenringen und Endomorphismenringen (beides sind zugleich auch Vektorräume) legen es nahe, allgemeinere ringtheoretische Grundlagen bereitzustellen,

Mehr

Lösung zur Klausur zu Krypographie Sommersemester 2005

Lösung zur Klausur zu Krypographie Sommersemester 2005 Lösung zur Klausur zu Krypographie Sommersemester 2005 1. Bestimmen Sie die zwei letzten Ziffern der Dezimaldarstellung von 12 34 Es gilt: 12 34 = 12 32+2 = 12 32 12 2 = 12 (25) 12 2 = ((((12 2 ) 2 ) 2

Mehr

Vorlesung Diskrete Strukturen Gruppe und Ring

Vorlesung Diskrete Strukturen Gruppe und Ring Vorlesung Diskrete Strukturen Gruppe und Ring Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2009/10 1 Bernhard Ganter, TU Dresden Modul Einführung in

Mehr

Algebraische Kurven. Holger Grzeschik

Algebraische Kurven. Holger Grzeschik Algebraische Kurven Holger Grzeschik 29.04.2004 Inhaltsübersicht 1.Einführung in die Theorie algebraischer Kurven 2.Mathematische Wiederholung Gruppen, Ringe, Körper 3.Allgemeine affine Kurven 4.Singuläre

Mehr

8. Polynome. Mathias Schacht Mathematik I für Informatiker WiSe 2016/17 8. Polynome / 1

8. Polynome. Mathias Schacht Mathematik I für Informatiker WiSe 2016/17 8. Polynome / 1 8. Polynome Mathias Schacht Mathematik I für Informatiker WiSe 2016/17 8. Polynome / 1 Polynome über Körpern Definition (Polynome) Sei K ein Körper und X ein Unbekannte/Variable. Ein Ausdruck der Form

Mehr

Lösungen - Serie 2 zu den Übungsaufgaben zur Vorlesung Algebraische Zahlentheorie

Lösungen - Serie 2 zu den Übungsaufgaben zur Vorlesung Algebraische Zahlentheorie Lösungen - Serie zu den Übungsaufgaben zur Vorlesung Algebraische Zahlentheorie Aufgabe : Berechnen Sie für die folgenden Elemente x in einer Körpererweiterung L K die Norm Nm L K (x) und die Spur T r

Mehr

Elliptische Kurven Einführendes Bsp.

Elliptische Kurven Einführendes Bsp. Elliptische Kurven Einführendes Bsp. Eine Menge von Kugeln wird als eine quadratische Pyramide angeordnet. Mit 1 Kugel oben, 4 weiteren darunter, dann 9 weiteren darunter usw. Wenn diese quadratische Kugelpyramide

Mehr

5 Grundlagen der Zahlentheorie

5 Grundlagen der Zahlentheorie 5 Grundlagen der Zahlentheorie 1 Primfaktorzerlegung Seienm, n N + := {k N k > 0} Man schreibt n n, gesprochen m teilt n oder m ist ein Teiler von n, wenn es eine positive natürliche Zahl k gibt mit mk

Mehr

Stefan Ruzika. 24. April 2016

Stefan Ruzika. 24. April 2016 Stefan Ruzika Mathematisches Institut Universität Koblenz-Landau Campus Koblenz 24. April 2016 Stefan Ruzika 2: Körper 24. April 2016 1 / 21 Gliederung 1 1 Schulstoff 2 Körper Definition eines Körpers

Mehr

Übungsblatt 12: Abschluss

Übungsblatt 12: Abschluss Übungsblatt 1: Abschluss 1. PRIMITIVE ELEMENTE V 1.1. (a) Sei E K eine endliche Galoiserweiterung. Zeigen Sie (mit Hilfe der Galoiskorrespondenz), dass für α E die beiden Aussagen äquivalent sind: (i)

Mehr

Prof. M. Eisermann Algebra SoSe 2010

Prof. M. Eisermann Algebra SoSe 2010 Übungsblatt 4: Teilbarkeitslehre Lassen Sie sich nicht durch die Menge der Aufgaben einschüchtern. Es gibt nur wenig schriftliche Aufgaben und wir halten die Menge der Votieraufgaben überschaubar. Alle

Mehr

Kapitel 3: Die Sätze von Euler, Fermat und Wilson. 8 Der Satz von Euler

Kapitel 3: Die Sätze von Euler, Fermat und Wilson. 8 Der Satz von Euler Kapitel 3: Die Sätze von Euler, Fermat und Wilson In diesem Kapitel wollen wir nun die eulersche -Funktion verwenden, um einen berühmten Satz von Euler zu formulieren, aus dem wir dann mehrere interessante

Mehr

Allgemeine Algebren. Bernhard Ganter. Institut für Algebra TU Dresden D Dresden

Allgemeine Algebren. Bernhard Ganter. Institut für Algebra TU Dresden D Dresden Allgemeine Algebren Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de Operationen Eine Operation auf einer Menge A ist eine Abbildung f : A n A. A n ist dabei

Mehr

Konstruktion der reellen Zahlen

Konstruktion der reellen Zahlen Konstruktion der reellen Zahlen Zur Wiederholung: Eine Menge K (mit mindestens zwei Elementen) heißt Körper, wenn für beliebige Elemente x, y K eindeutig eine Summe x+y K und ein Produkt x y K definiert

Mehr

Seminararbeit zur Zahlentheorie. Die Gaußschen Zahlen

Seminararbeit zur Zahlentheorie. Die Gaußschen Zahlen Universität Paderborn WS 2007/2008 Warburger Str. 100 33098 Paderborn Seminararbeit zur Zahlentheorie Die Gaußschen Zahlen Tatjana Linkin, Svetlana Krez 20. November 2007 INHALTSVERZEICHNIS 1 Inhaltsverzeichnis

Mehr

1.2 Eigenschaften der ganzen Zahlen

1.2 Eigenschaften der ganzen Zahlen Lineare Algebra I WS 2015/16 c Rudolf Scharlau 13 1.2 Eigenschaften der ganzen Zahlen Dieser Abschnitt handelt von den gewöhlichen ganzen Zahlen Z und ihren Verknüpfungen plus und mal. Man kann die natürlichen

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 2 Beispiele für Gruppen Aus der Vorlesung Mathematik I sind schon viele kommutative Gruppen bekannt. Zunächst gibt es die additiven

Mehr

1 Modulare Arithmetik

1 Modulare Arithmetik $Id: modul.tex,v 1.11 2012/04/16 19:15:39 hk Exp $ $Id: gruppen.tex,v 1.11 2012/04/17 10:30:56 hk Exp $ 1 Modulare Arithmetik 1.3 Restklassen Wir waren gerade damit beschäftigt eine Beispiele zum Rechnen

Mehr

Lineare Algebra und analytische Geometrie I

Lineare Algebra und analytische Geometrie I Prof. Dr. H. Brenner Osnabrück WS 2015/2016 Lineare Algebra und analytische Geometrie I Vorlesung 3 Gruppen In der linearen Algebra wird im Allgemeinen ein Grundkörper K zugrunde gelegt, über den sich

Mehr

Algebraische Kurven - Vorlesung 29. Projektion weg von einem Punkt

Algebraische Kurven - Vorlesung 29. Projektion weg von einem Punkt Algebraische Kurven - Vorlesung 29 Definition 1. Die Abbildung P n K Projektion weg von einem Punkt {(1, 0,..., 0)} Pn 1 K, (x 0, x 1...,x n ) (x 1,..., x n ), heißt die Projektion weg vom Punkt (1, 0,...,

Mehr

Axiomatische Beschreibung der ganzen Zahlen

Axiomatische Beschreibung der ganzen Zahlen Axiomatische Beschreibung der ganzen Zahlen Peter Feigl JKU Linz peter.feigl@students.jku.at 0055282 Claudia Hemmelmeir JKU Linz darja@gmx.at 0355147 Zusammenfassung Wir möchten in diesem Artikel die ganzen

Mehr

Konstruktion reeller Zahlen aus rationalen Zahlen

Konstruktion reeller Zahlen aus rationalen Zahlen Konstruktion reeller Zahlen aus rationalen Zahlen Wir nehmen an, daß der Körper der rationalen Zahlen bekannt ist. Genauer wollen wir annehmen: Gegeben ist eine Menge Q zusammen mit zwei Verknüpfungen

Mehr

30 Ringe und Körper Motivation Definition: Ring. Addition und eine. Häufig gibt es auf einer Menge zwei Verknüpfungen: eine

30 Ringe und Körper Motivation Definition: Ring. Addition und eine. Häufig gibt es auf einer Menge zwei Verknüpfungen: eine 30 Ringe und Körper 30.1 Motivation Häufig gibt es auf einer Menge zwei Verknüpfungen: eine Addition und eine Multiplikation. Beispiele: (Z, +, ) hier gibt es sogar noch eine Division mit Rest. (IR, +,

Mehr

4. ggt und kgv. Chr.Nelius: Zahlentheorie (SS 2007) 9

4. ggt und kgv. Chr.Nelius: Zahlentheorie (SS 2007) 9 Chr.Nelius: Zahlentheorie (SS 2007) 9 4. ggt und kgv (4.1) DEF: Eine ganze Zahl g heißt größter gemeinsamer Teiler (ggt) zweier ganzer Zahlen a und b, wenn gilt: GGT 0 ) g 0 GGT 1 ) g a und g b GGT 2 )

Mehr

3.5 Ringe und Körper. Diese Eigenschaften kann man nun auch. 1. (R, +) ist eine kommutative Gruppe. 2. Es gilt das Assoziativgesetz bezüglich.

3.5 Ringe und Körper. Diese Eigenschaften kann man nun auch. 1. (R, +) ist eine kommutative Gruppe. 2. Es gilt das Assoziativgesetz bezüglich. 3.5 Ringe und Körper Gehen wir noch mal zu den ganzen Zahlen zurück. Wir wissen: (Z, + ist eine Gruppe, es gibt aber als Verknüpfung noch die Multiplikation, es gibt ein neutrales Element bezüglich, es

Mehr

Formale Grundlagen 2008W. Vorlesung im 2008S Institut für Algebra Johannes Kepler Universität Linz

Formale Grundlagen 2008W. Vorlesung im 2008S  Institut für Algebra Johannes Kepler Universität Linz Formale Grundlagen Institut für Algebra Johannes Kepler Universität Linz Vorlesung im 2008S http://www.algebra.uni-linz.ac.at/students/win/fg Inhalt Definition Sei A eine Menge und ɛ A A A eine zweistellige

Mehr

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2015

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2015 und Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2015 4. April 2016 Zu der Vorlesung wird ein Skript erstellt, welches auf meiner Homepage veröffentlicht wird: http://www.math.uni-hamburg.de/home/geschke/lehre.html

Mehr

5. Äquivalenzrelationen

5. Äquivalenzrelationen 5. Äquivalenzrelationen 35 5. Äquivalenzrelationen Wenn man eine große und komplizierte Menge (bzw. Gruppe) untersuchen will, so kann es sinnvoll sein, zunächst kleinere, einfachere Mengen (bzw. Gruppen)

Mehr

1.3 Gruppen. Algebra I 9. April 2008 c Rudolf Scharlau,

1.3 Gruppen. Algebra I 9. April 2008 c Rudolf Scharlau, Algebra I 9. April 2008 c Rudolf Scharlau, 2002 2008 18 1.3 Gruppen Der Begriff der Gruppe ordnet sich in gewisser Weise dem allgemeineren Konzept der Verknüpfung (auf einer Menge) unter. So ist zum Beispiel

Mehr

3.3 Eigenwerte und Eigenräume, Diagonalisierung

3.3 Eigenwerte und Eigenräume, Diagonalisierung 3.3 Eigenwerte und Eigenräume, Diagonalisierung Definition und Lemma 3.3.1. Sei V ein K-Vektorraum, φ End K (V ), λ K. Wir defnieren den zu λ gehörigen Eigenraum von φ als Dies ist ein Unterraum von V.

Mehr

1 Der Ring der ganzen Zahlen

1 Der Ring der ganzen Zahlen 1 Der Ring der ganzen Zahlen Letztendlich wird die Addition und Multiplikation in endlichen Körpern auf die Addition und Multiplikation von ganzen Zahlen zurückgeführt. Deswegen müssen wir die an sich

Mehr

01. Gruppen, Ringe, Körper

01. Gruppen, Ringe, Körper 01. Gruppen, Ringe, Körper Gruppen, Ringe bzw. Körper sind wichtige abstrakte algebraische Strukturen. Sie entstehen dadurch, dass auf einer Menge M eine oder mehrere sogenannte Verknüpfungen definiert

Mehr

Geometrie von Flächen und Algebraischen Kurven Der Satz von Pascal

Geometrie von Flächen und Algebraischen Kurven Der Satz von Pascal Geometrie von Flächen und Algebraischen Kurven Der Satz von Pascal Laura Hinsch November 005 Inhaltsverzeichnis 1 Einleitung 1 Algebraische Kurven 1 3 Singularitäten 3 4 Der Satz von Pascal 5 i 1 Einleitung

Mehr

Lineare Algebra I. Christian Ebert & Fritz Hamm. Gruppen & Körper. Vektorraum, Basis & Dimension. Lineare Algebra I. 18.

Lineare Algebra I. Christian Ebert & Fritz Hamm. Gruppen & Körper. Vektorraum, Basis & Dimension. Lineare Algebra I. 18. 18. November 2011 Wozu das alles? Bedeutung von Termen Vektoren in R n Ähnlichkeiten zwischen Termbedeutungen Skalarprodukt/Norm/Metrik in R n Komposition von Termbedeutungen Operationen auf/abbildungen

Mehr

Zur Berechnung ganzer Punkte auf Mordellkurven über globalen Körpern

Zur Berechnung ganzer Punkte auf Mordellkurven über globalen Körpern Zur Berechnung ganzer Punkte auf Mordellkurven über globalen Körpern Michael E. Pohst Institut für Mathematik Technische Universität Berlin 4. Februar, 2015 Mordells Gleichung ist y 2 = x 3 + κ mit einer

Mehr

WURZEL Werkstatt Mathematik Polynome Grundlagen

WURZEL Werkstatt Mathematik Polynome Grundlagen Die WURZEL Werkstatt Mathematik Polynome Grundlagen Wer lange genug über hunderten von Problemen gebrütet hat, kann bei vielen bereits erraten, aus welchem Land sie kommen. So lieben die Briten etwa die

Mehr

Körper- und Galoistheorie

Körper- und Galoistheorie Prof. Dr. H. Brenner Osnabrück SS 2011 Körper- und Galoistheorie Vorlesung 17 Kummererweiterungen Ernst Eduard Kummer (1810-1893) Wir haben in der letzten Vorlesung gesehen, dass sich einige Eigenschaften

Mehr

5. Gruppen, Ringe, Körper

5. Gruppen, Ringe, Körper 5. Gruppen, Ringe, Körper 5.1. Gruppen Die Gruppentheorie, als mathematische Disziplin im 19. Jahrhundert entstanden, ist ein Wegbereiter der modernen Mathematik. Beispielsweise folgt die Gruppe, die aus

Mehr

UNTERLAGEN ZUR TEILBARKEIT IN KOMMUTATIVEN RINGEN

UNTERLAGEN ZUR TEILBARKEIT IN KOMMUTATIVEN RINGEN UNTERLAGEN ZUR TEILBARKEIT IN KOMMUTATIVEN RINGEN VORLESUNG KOMMUTATIVE ALGEBRA, SOMMERSEMESTER 2007 1. Definitionen Ein kommutativer Ring mit Eins R ist ein Integritätsbereich, wenn er zumindest zwei

Mehr

Vorkurs Mathematik 2016

Vorkurs Mathematik 2016 Vorkurs Mathematik 2016 Natürliche Zahlen Der grundlegende Zahlenbereich ist die Menge der natürlichen Zahlen N = {1, 2, 3,...}. In vielen Fällen ist es sinnvoll die Zahl 0 mit einzubeziehen: N 0 = N [

Mehr

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema 2x 4 + x 3 + x + 3 div x 2 + x 1 = 2x 2 x + 3 (2x 4 + 2x 3 2x 2 ) x 3 + 2x 2 + x + 3 ( x

Mehr

2. Teilbarkeit. Euklidischer Algorithmus

2. Teilbarkeit. Euklidischer Algorithmus O. Forster: Einführung in die Zahlentheorie 2. Teilbarkeit. Euklidischer Algorithmus 2.1. Wir benutzen die folgenden Bezeichnungen: Z = {0, ±1, ±2, ±3,...} Menge aller ganzen Zahlen N 0 = {0, 1, 2, 3,...}

Mehr

Technische Universität München Zentrum Mathematik. Übungsblatt 7

Technische Universität München Zentrum Mathematik. Übungsblatt 7 Technische Universität München Zentrum Mathematik Mathematik (Elektrotechnik) Prof. Dr. Anusch Taraz Dr. Michael Ritter Übungsblatt 7 Hausaufgaben Aufgabe 7. Für n N ist die Matrix-Exponentialfunktion

Mehr

Universität Zürich HS , Vorlesung #3

Universität Zürich HS , Vorlesung #3 Algebraic Number Theory P. Habegger Universität Zürich HS 2010 6.10.2010, Vorlesung #3 1.4 Diskriminante Die primitivste Invariante eines Zahlkörpers ist sein Grad. Die Diskriminante eines Zahlkörpers

Mehr

9. Geometrische Konstruktionen und Geometrische Zahlen.

9. Geometrische Konstruktionen und Geometrische Zahlen. 9. Geometrische Konstruktionen und Geometrische Zahlen. Die Dreiteilungsgleichnung. Das Problem der Dreiteilung des Winkels wurde von Descartes vollständig gelöst. Dies ist in der Geometrie von Descartes

Mehr

Quadrate und Wurzelziehen modulo p

Quadrate und Wurzelziehen modulo p Quadrate und Wurzelziehen modulo p Sei im Folgenden p eine Primzahl größer als. Wir möchten im Körper Z p Quadratwurzeln ziehen. Die Quadrierabbildung Q :Z p Z p ist aber nicht surjektiv, daher gibt es

Mehr

9. Primitivwurzeln. O. Forster: Einführung in die Zahlentheorie

9. Primitivwurzeln. O. Forster: Einführung in die Zahlentheorie 9. Primitivwurzeln 9.1. Satz. Sei G eine zyklische Gruppe der Ordnung m und g G ein erzeugendes Element. Das Element a := g k, k Z, ist genau dann ein erzeugendes Element von G, wenn k zu m teilerfremd

Mehr

Termumformungen. 2. Kapitel aus meinem Lehrgang ALGEBRA. Ronald Balestra CH St. Peter

Termumformungen. 2. Kapitel aus meinem Lehrgang ALGEBRA. Ronald Balestra CH St. Peter Termumformungen 2. Kapitel aus meinem Lehrgang ALGEBRA Ronald Balestra CH - 7028 St. Peter www.ronaldbalestra.ch e-mail: theorie@ronaldbalestra.ch 11. Oktober 2009 Überblick über die bisherigen ALGEBRA

Mehr

Partialbruchzerlegung für Biologen

Partialbruchzerlegung für Biologen Partialbruchzerlegung für Biologen Rationale Funktionen sind Quotienten zweier Polynome, und sie tauchen auch in der Biologie auf. Die Partialbruchzerlegung bedeutet, einen einfacheren Ausdruck für eine

Mehr

Lineare Schieberegisterfolgen

Lineare Schieberegisterfolgen Lineare Schieberegisterfolgen Sei K ein endlicher Körper. Man nehme zwei Vektoren x 0 a0 x n 1, a n 1 K n n 1 x n := a i x i und betrachte die lineare Abbildung : K n K n, die durch i=0, berechne x 0 x

Mehr

1 Der Ring der ganzen Zahlen

1 Der Ring der ganzen Zahlen 1 Der Ring der ganzen Zahlen Letztendlich wird die Addition und Multiplikation in endlichen Körpern auf die Addition und Multiplikation von ganzen Zahlen zurückgeführt. Deswegen müssen wir die an sich

Mehr

Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr.

Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr. Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr. Kurzweil Florian Franzmann André Diehl Kompiliert am 10. April 2006 um 18:33

Mehr

2 Restklassenringe und Polynomringe

2 Restklassenringe und Polynomringe 2 Restklassenringe und Polynomringe Sei m > 1 ganz und mz := {mx x Z}. Nach I. 5.3 gilt: Die verschiedenen Restklassen von Z modulo m sind mz, 1 + mz,..., (m 1) + mz. Für die Gesamtheit aller Restklassen

Mehr

Übungen zur Diskreten Mathematik I Blatt 6

Übungen zur Diskreten Mathematik I Blatt 6 1 Blatt 6 Aufgabe 19 Es sei M := {n N : n 2} und R := {(n, m) M M : n teilt m}. a) Zeigen Sie, dass R eine Ordnungsrelation auf M ist. b) Überprüfen Sie, ob R eine totale Ordnung auf M ist. c) Zeigen Sie,

Mehr

Wiederholungsblatt zur Gruppentheorie

Wiederholungsblatt zur Gruppentheorie Wiederholungsblatt zur Gruppentheorie von Christian Elsholtz, TU Clausthal, WS 1999/2000 Um Ihnen zu helfen, die Gruppentheorie zu wiederholen, stelle ich hier einige wichtige Beispiele und einige Lösungen

Mehr

1.4 Homomorphismen und Isomorphismen

1.4 Homomorphismen und Isomorphismen Algebra I 9. April 2008 c Rudolf Scharlau, 2002 2008 28 1.4 Homomorphismen und Isomorphismen Definition 1.4.1 Es seien (G, ) und (H, ) zwei Gruppen. Eine Abbildung ϕ : G H heißt (Gruppen-)Homomorphismus,

Mehr

= k 0+k 0 ( ). Wir addieren (0 k) zu den Seiten der Gleichung ( ): 0 = k 0.

= k 0+k 0 ( ). Wir addieren (0 k) zu den Seiten der Gleichung ( ): 0 = k 0. Def 4 Eine Menge K mit zwei Abbildungen + : K K K und : K K K (heißen Addition und Multiplikation; wir werden a b bzw a+b statt (a,b), +(a,b) schreiben) ist ein kommutativer Ring, falls: (R1) (K, +) ist

Mehr

3.4 Erweiterungen von Ringen und Körpern

3.4 Erweiterungen von Ringen und Körpern Algebra I c Rudolf Scharlau, 2002 2010 145 3.4 Erweiterungen von Ringen und Körpern In diesem Abschnitt werden Erweiterungen von Ringen (etwas vereinfacht gesagt: Oberringe), insbesondere Erweiterungen

Mehr

Kongruenz modulo g definiert auf K[x] eine Äquivalenzrelation g : h g f h f ist durch g teilbar, und [f] g ist die Äquivalenzklasse von f.

Kongruenz modulo g definiert auf K[x] eine Äquivalenzrelation g : h g f h f ist durch g teilbar, und [f] g ist die Äquivalenzklasse von f. 3 Kongruenz modulo g definiert auf K[x] eine Äquivalenzrelation g : h g f h f ist durch g teilbar, und [f] g ist die Äquivalenzklasse von f 4 Auf der Menge aller Restklassen [f] g kann man Addition und

Mehr

Kanonische Primfaktorzerlegung

Kanonische Primfaktorzerlegung Mathematik I für Informatiker Zahlen p. 1 Kanonische Primfaktorzerlegung Jede natürliche Zahl n kann auf eindeutige Weise in der Form n = p α 1 1 pα 2 2... pα k k geschrieben werden, wobei k N 0, α i N

Mehr

1 Zahlentheorie. 1.1 Kongruenzen

1 Zahlentheorie. 1.1 Kongruenzen 3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern

Mehr

Dezimaldarstellung ganzer Zahlen (Division mit Rest) 1 Division mit Rest in der Hochschule

Dezimaldarstellung ganzer Zahlen (Division mit Rest) 1 Division mit Rest in der Hochschule Berufsfeldbezogenes Fachseminar - Zahlentheorie Lisa Laudan Prof. Dr. Jürg Kramer Wintersemester 2014/2015 Dezimaldarstellung ganzer Zahlen (Division mit Rest) 1 Division mit Rest in der Hochschule 1.1

Mehr

Nullstellen von Polynomen und Erweiterungskörper Vortrag im Modul Kommunikation über Mathematik

Nullstellen von Polynomen und Erweiterungskörper Vortrag im Modul Kommunikation über Mathematik Nullstellen von Polynomen und Erweiterungskörper Vortrag im Modul Kommunikation über Mathematik Alexander Steen, a.steen@fu-berlin.de 1 Polynome und ihre Nullstellen Als erstes betrachten wir Nullstellen

Mehr

Mathematische Strukturen

Mathematische Strukturen Mathematische Strukturen Lineare Algebra I Kapitel 3 18. April 2012 Logistik Dozent: Olga Holtz, MA 378, Sprechstunden Freitag 14-16 Webseite: www.math.tu-berlin.de/ holtz Email: holtz@math.tu-berlin.de

Mehr

1 Potenzen und Polynome

1 Potenzen und Polynome 1 Potenzen und Polynome Für eine reelle Zahl x R und eine natürliche Zahl n N definieren wir x n := x x x... x }{{} n-mal Einschub über die bisher aufgetretenen mathematischen Symbole: Definition mittels

Mehr

Seminar. Der Ring O K der ganzen Zahlen über einem Zahlenkörper K. Armin Hecht, Sabine Naewe

Seminar. Der Ring O K der ganzen Zahlen über einem Zahlenkörper K. Armin Hecht, Sabine Naewe Universität Paderborn SS 2007 Warburger Str. 100 33098 Paderborn Seminar Der Ring O K der ganzen Zahlen über einem Zahlenkörper K Armin Hecht, Sabine Naewe 04.Dezember 2007 Inhaltsverzeichnis 7 Der Ring

Mehr

1 Axiomatische Charakterisierung der reellen. 3 Die natürlichen, die ganzen und die rationalen. 4 Das Vollständigkeitsaxiom und irrationale

1 Axiomatische Charakterisierung der reellen. 3 Die natürlichen, die ganzen und die rationalen. 4 Das Vollständigkeitsaxiom und irrationale Kapitel I Reelle Zahlen 1 Axiomatische Charakterisierung der reellen Zahlen R 2 Angeordnete Körper 3 Die natürlichen, die ganzen und die rationalen Zahlen 4 Das Vollständigkeitsaxiom und irrationale Zahlen

Mehr

$Id: ring.tex,v /05/03 15:13:26 hk Exp $

$Id: ring.tex,v /05/03 15:13:26 hk Exp $ $Id: ring.tex,v 1.13 2012/05/03 15:13:26 hk Exp $ 3 Ringe 3.1 Der Ring Z m In der letzten Sitzung hatten wir die sogenannten Ringe eingeführt, dies waren Mengen A versehen mit einer Addition + und einer

Mehr

Zahlen und metrische Räume

Zahlen und metrische Räume Zahlen und metrische Räume Natürliche Zahlen : Die natürlichen Zahlen sind die grundlegendste Zahlenmenge, da man diese Menge für das einfache Zählen verwendet. N = {1, 2, 3, 4,...} bzw. N 0 = {0, 1, 2,

Mehr

Primzahlen. Herbert Koch Mathematisches Institut Universität Bonn Die Primfaktorzerlegung. a = st

Primzahlen. Herbert Koch Mathematisches Institut Universität Bonn Die Primfaktorzerlegung. a = st Primzahlen Herbert Koch Mathematisches Institut Universität Bonn 12.08.2010 1 Die Primfaktorzerlegung Wir kennen die natürlichen Zahlen N = 1, 2,..., die ganzen Zahlen Z, die rationalen Zahlen (Brüche

Mehr

Division mit Rest - der heimliche Hauptsatz der Algebra

Division mit Rest - der heimliche Hauptsatz der Algebra Division mit Rest - der heimliche Hauptsatz der Algebra Franz Pauer Institut für Mathematik, Universität Innsbruck, Technikerstr. 25, A-6020 Innsbruck, Österreich. Franz.Pauer@uibk.ac.at 3. Juni 2004 Einleitung

Mehr

Vortrag 11: Der Satz von Mordell-Weil

Vortrag 11: Der Satz von Mordell-Weil Vortrag 11: Der Satz von Mordell-Weil Max Daniel 30. Januar 2013 Inhaltsverzeichnis 1 Höhenfunktionen auf elliptischen Kurven 2 2 Ausblick 7 Einleitung Sei E/K eine über einem Zahlkörper K definierte elliptische

Mehr

1 Angeordnete Körper. 1.1 Anordnungen und Positivbereiche

1 Angeordnete Körper. 1.1 Anordnungen und Positivbereiche 1 1 Angeordnete Körper 1.1 Anordnungen und Positivbereiche Definition 1.1. Eine zweistellige Relation auf einer Menge heißt partielle Ordnung, falls für alle Elemente a, b, c der Menge gilt: (i) a a (ii)

Mehr

Seminar zur Zahlentheorie Spezialfälle des Satzes von Fermat

Seminar zur Zahlentheorie Spezialfälle des Satzes von Fermat Seminar zur Zahlentheorie Spezialfälle des Satzes von Fermat Vortrag von Kristina Rupp und Benjamin Letschert am 29.01.2008 Inhaltsverzeichnis 13 Speziallfälle des Satzes von Fermat 1 13.1 Der Große Satz

Mehr