Elliptische Kurven und ihre Anwendung in der Verschlüsselung von Stefan Linke M. Serhat Cinar Ein Referat für das Fach Algorithmische Anwendungen bei Prof. Dr. H. Klocke WS 2003/04 Fachhochschule Köln Abteilung Gummersbach Elliptische Kurven und Verschlüsselungsverfahren Inhaltsverzeichnis 1 2 3 Überblick ..............................................................................................................................................4 Was ist eine elliptische Kurve? ..........................................................................................................4 Mathematische Grundlagen...............................................................................................................5 3.1 Gruppen ......................................................................................................................................5 3.1.1 G1 Assoziativität ..................................................................................................................7 3.1.2 G2 Kommutativität..............................................................................................................7 3.1.3 G3 Existenz eines neutralen Elementes............................................................................7 3.1.4 G4 Existenz eines Inversen für jedes Element der Menge ............................................8 3.1.5 G5 Abgeschlossenheit .........................................................................................................9 3.1.6 Beispiele für Nicht-Gruppen ...............................................................................................9 3.1.7 Addition auf einer elliptischen Kurve als Gruppe ..........................................................10 3.1.8 Skalare Multiplikation auf elliptischen Kurven als Gruppe...........................................13 3.2 Körper........................................................................................................................................14 3.2.1 K3 Gemischtes Distributivgesetz......................................................................................14 3.2.2 Der Körper der elliptischen Kurve über Fp .....................................................................15 3.2.3 Der Körper der elliptischen Kurve über F2m ...................................................................16 4 Das praktisch unlösbare Problem...................................................................................................16 4.1 Die Faktorisierung ...................................................................................................................16 4.2 Der diskrete Logarithmus .......................................................................................................17 4.3 Ist das Problem unlösbar?.......................................................................................................17 5 Anwendung des schwer lösbaren Problems für die Verschlüsselung .......................................18 5.1 Diffie-Hellman-Schlüsselaustausch .......................................................................................18 5.2 ElGamal-Verschlüsselung.......................................................................................................18 5.3 Verwendung von elliptischen Kurven ..................................................................................19 5.4 Stärke der Verschlüsselung .....................................................................................................19 6 Quellen................................................................................................................................................20 2/20 Elliptische Kurven und Verschlüsselungsverfahren Abbildungsverzeichnis Abbildung 1: a=1, b=0 => y2 = x3 + x.....................................................................................................4 Abbildung 2: a=-6, b=6 => y2 = x3 - 6x + 6. ..........................................................................................4 Abbildung 3: a=-4, b=0,67 => y2 = x3 - 4x + 0,67.................................................................................5 Abbildung 4: Moduloring und Addition von 3 und 5.............................................................................6 Abbildung 5: f(x)=x2+1.5 und inverses f-1(x)=-(x2)-1.5 ..........................................................................8 Abbildung 6: Vektor v = (1,2) und Gegenvektor v-1 = (-1,-2) ..............................................................9 Abbildung 7: Zwei Punkte auf einer elliptischen Kurve. .....................................................................10 Abbildung 8: Die Gerade PQ und der Punkt -R ...................................................................................11 Abbildung 9: Konstruktion des Punktes R = P+Q ..............................................................................11 Abbildung 10: Inverses Element zu P.....................................................................................................12 Abbildung 11: Die Punkte P(-2, -3.162) und Q(1, -1) und ihre doppelten 2P(4.9, 9.708) und 2Q(0.25, 2.125) auf der Kurve a= -6 und b=+6. ........................................................................14 Tabellenverzeichnis Tabelle 1: Vergleich verschiedener Verschlüsselungsverfahren. .........................................................19 3/20 Elliptische Kurven und Verschlüsselungsverfahren 1 Überblick Dieses Referat soll die Anwendung so genannter elliptischer Kurven in der Kryptologie verdeutlichen. Dazu ist es nötig, zu zeigen, was elliptische Kurven sind und wie man auf elliptischen Kurven rechnet. Hierfür werden die Gruppen und Körper Axiome als mathematische Grundlagen wiederholt. Schließlich wird gezeigt, wie anhand eines mathematisch aufwendig zu berechnenden Problems bei elliptischen Kurven eine Verschlüsselung aufgebaut wird. Inhaltlich orientiert sich das Referat besonders an zwei Arbeiten: Dem „Elliptic Curve Cryptosystem Tutorial“ von www.certicom.com und der Diplomarbeit „Krypto-Verfahren basierend auf elliptischen Kurven“ von Thomas Laubrock., aus denen auch einige der Beispiele und Grafiken stammen. 2 Was ist eine elliptische Kurve? Eine elliptische Kurve ist eine Punktemenge (im Prinzip wie eine Funktion), die der Gleichung y2 = x3 + ax + b genügt. An der quadratischen Form erkennt man, das diese Gleichung eine entfernte Verwandtschaft zur Kreisgleichung r2 = x2 + y2 hat. Tatsächlich ist die Gleichung für elliptische Kurven aus Problemen aus dem Umfeld der Berechnung von Ellipsen entstanden. Die Parameter a und b legen eine konkrete Kurve aus der Schar, die durch die Gleichung bestimmt ist, fest. Beispiele: Abbildung 1: a=1, b=0 => y2 = x3 + x. Abbildung 2: a=-6, b=6 => y2 = x3 - 6x + 6. 4/20 Elliptische Kurven und Verschlüsselungsverfahren Abbildung 3: a=-4, b=0,67 => y2 = x3 - 4x + 0,67. Um Verschlüsselung mit diesen Kurven zu betreiben, ist es nötig, „auf diesen Kurven zu rechnen“. Wir werden zeigen, dass man Rechenregeln definieren kann, so dass die Struktureigenschaften der Addition oder Multiplikation auch hier zutreffen. 3 Mathematische Grundlagen 3.1 Gruppen Ein Grossteil der Mathematik, speziell der Algebra und Analysis, bauen auf abstrakten strukturellen Eigenschaften von Mengen auf, die es teilweise überhaupt ermöglichen, mit diesen Mengen zu rechnen. Die meisten dieser Eigenschaften sind uns durch das Rechnen mit den reellen Zahlen bekannt. Als Grundbaustein für komplexere Strukturen dient die Grundstruktur der Gruppe. Eine Gruppe ist eine Menge M und eine Verknüpfung x, für die folgende Eigenschaften (Axiome = geforderte Eigenschaften) gelten: • • • • • G1 G2 G3 G4 G5 Assoziativgesetz Kommutativgesetz Existenz eines neutralen Elementes Existenz eines Inversen für jedes Element der Menge Abgeschlossenheit Was diese einzelnen Eigenschaften bedeuten, soll im Folgenden verdeutlicht werden. Anmerkung: Wir haben die Verknüpfung hier x genannt. Es spielt für eine Gruppe keine Rolle, ob mit der Verknüpfung eine uns bekannte Addition, Multiplikation oder irgend eine andere Form der Verknüpfung (z.B: f(x) o g(x) als Verkettung von Funktionen) gemeint ist. Entscheidend sind die fünf Gruppeneigenschaften. 5/20 Elliptische Kurven und Verschlüsselungsverfahren Im folgenden werden diese Eigenschaften für folgende Gruppen, also Mengen und Verknüpfungen gezeigt: Addition reeller Zahlen Multiplikation reeller Zahlen Addition von Polynomen 2. Grades f(x) = ax2 + bx + c g(x) = dx2 + ex + f f(x) + g(x) = (ax2 + bx + c) + (dx2 + ex + f) = (a+d) x2 + (b + e) x + (c+f) = h(x) Addition von komplexen Zahlen (a+bi) Addition von Vektoren (Äpfel und Birnen) • Da man mit Vektoren unabhängige Komponenten darstellen kann, kann der Vektor ⎛a⎞ ⎜⎜ ⎟⎟ mit a als die Anzahl Äpfel und b die Anzahl Birnen interpretiert werden. Dann ⎝b⎠ rechnen wir mit Äpfeln und Birnen, und das Zusammenlegen von Äpfeln und Birnen in einen Korb als Addition. Man nehme einen Korb mit einem Apfel und zwei Birnen sowie einen zweiten Korb mit sechs Äpfeln und drei Birnen. Legt man diese in einen dritten Korb zusammen, so ergibt sich folgende Vektoraddition: ⎛ 1⎞ ⎛ 6⎞ ⎛ 7⎞ ⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ ⎝ 2⎠ ⎝ 3⎠ ⎝ 5⎠ Addition Modulo p (Restklassen) Die Addition modulo p kann man sich als Addition von Winkeln in einem Kreis vorstellen. Dabei werden alle Zahlen auf ihre Restklassen abgebildet und Stellen einen von p Punkten auf dem Kreis dar. Die Abbildung 4 zeigt die beiden Zahlen 3 und 5 und auch alle p-fachen der beiden Zahlen. Denn es gilt: (3+13*2) mod p = (3+13*1) mod p = 3 (5+13*2) mod p = (5+13*1) mod p = 5 Die Addition (3+5) mod p entspricht auf dem Kreis der Summe der beiden Winkel 0 bis 3 und 0 bis 5. 0° Abbildung 4: Moduloring und Addition von 3 und 5 6/20 Elliptische Kurven und Verschlüsselungsverfahren 3.1.1 G1 Assoziativität Gruppierung der Verknüpfung mehrerer Elemente ist egal. Die Assoziativität der „normalen“ Addition in den reellen Zahlen ist recht trivial: x + (y + z) = (x + y) + z Das bedeutet, das es egal ist, wie man die drei Zahlen gruppiert (klammert), bevor man sie addiert. Die Assoziativität gilt aber genauso für die Multiplikation reeller Zahlen: x * (y * z) = (x * y) * z Auch bei der Addition der Polynome 2. Grades spielt die Reihenfolge der Addition keine Rolle: f(x) +(g(x) +h(x)) = (f(x) +g(x)) +h(x) Genauso gilt es für Additionen Modulo p. Hier am Beipiel p = 13: (2 + (4 + 5)) mod 13 = ((2 + 4) + 5) mod 13 = 11 Die Assoziativität gilt auch für die Addition mit komplexen Zahlen, mit Vektoren und mit Äpfeln und Birnen sowie der Multiplikation in der Menge der reellen Zahlen, der Skalarmultiplikation in den Vektoren und in der Menge der komplexen Zahlen. 3.1.2 G2 Kommutativität Dieses Axiom fordert, das die Verknüpfung zweier Elemente der Menge unabhängig von der Reihenfolge der beiden Elemente gültig ist. Dieses Axiom wurde vom norwegischen Mathematiker Niels Henrik Abel (1802-1829)1 aufgestellt, weshalb man auch von abelschen Gruppen spricht, wenn dieses Axiom erfüllt werden muss. Das Kommutativgesetz für die Addition von reellen Zahlen sieht folgendermaßen aus: a+b=b+a Dasselbe für die Multiplikation der reellen Zahlen: a*b=b*a Auch dieses Gesetz ist recht trivial. 3.1.3 G3 Existenz eines neutralen Elementes Das neutrale Element wird wie folgt definiert: ax 0=a (x ist hier die Verknüpfung, 0 das neutrale Element) Das bedeutet, das es für die Verknüpfung ein Element 0 gibt, das bei der Verknüpfung den Wert des anderen Elementes nicht beeinflusst. Man spricht daher auch von der Identität oder dem Null-Element. 1 http://www.net-lexikon.de/Niels-Henrik-Abel.html 7/20 Elliptische Kurven und Verschlüsselungsverfahren Vorsicht: Auch wenn das neutrale Element durch das Symbol „0“ symbolisiert und „null“ genannt wird, muss es sich dabei nicht um die Zahl 0 handeln, wie man an der Multiplikation der reellen Zahlen sehen kann. Neutrales Element für: • Addition reeller Zahlen 0, denn x + 0 = x • Multiplikation reeller Zahlen 1, denn x * 1 = x • Addition der Polynome 2. Grades 0(x) = 0, denn 0(x) + f(x) = f(x) • Addition modulo p 0 bzw. P bzw. alle Mehrfachen von p, denn (x + p) mod p = x mod p Bsp.: (3 +13) mod 13 = 3 mod 13 • Addition von Vektoren ⎛ 0⎞ ⎛ x ⎞ ⎛ x ⎞ ⎛ 0⎞ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ Nullvektor = ⎜ 0 ⎟ , denn ⎜ 0 ⎟ + ⎜ y ⎟ = ⎜ y ⎟ ⎜ 0⎟ ⎜ z ⎟ ⎜ z ⎟ ⎜ 0⎟ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ 3.1.4 G4 Existenz eines Inversen für jedes Element der Menge Das Inverse Element wird wie folgt definiert: a x –a = 0 (x ist hier die Verknüpfung, 0 das neutrale Element) Also ergibt die Verknüpfung eines Elementes mit seinem Inversen das neutrale Element. Es gibt auch hier mehrere Schreibweisen für das inverse Element zu a: -a, a-1, 1/a Inverse Elemente für: • Addition reeller Zahlen Jeweils dieselbe Zahl mit negativem Vorzeichen, denn 12 + -12 = 0 • Multiplikation reeller Zahlen Jeweils der Kehrbruch: denn a * 1/a = 1 • Addition Polynome 2. Grades Hier entspricht dem inversen Element von f(x) das Polynom –1*f(x), was einer Spiegelung an der x-Achse entspricht. Bsp: f(x) = x2+1.5 und inverses f-1(x)=-(x2)-1.5 f(x) + f-1(x) = 0 = 0(x) Abbildung 5: f(x)=x2+1.5 und inverses f-1(x)=(x2)-1.5 8/20 Elliptische Kurven und Verschlüsselungsverfahren • Addition modulo p p-x ist das inverse Element zu x, denn (x + (p - x)) mod p = p mod p = 0 Bsp.: (3 +(13 – 3)) mod 13 = 13 mod 13 = 0 • Addition von Vektoren Hier wird das inverse Element Gegenvektor genannt. ⎛ x ⎞ ⎛ − x ⎞ ⎛ 0⎞ ⎛− x⎞ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ − y ⎟ , denn ⎜ y ⎟ + ⎜ − y ⎟ = ⎜ 0 ⎟ ⎜ z ⎟ ⎜ − z ⎟ ⎜ 0⎟ ⎜− z⎟ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ Abbildung 6: Vektor v = (1,2) und Gegenvektor v-1 = (-1,-2) 3.1.5 G5 Abgeschlossenheit Die Eigenschaft der Abgeschlossenheit verlangt, das eine Verknüpfung zweier Elemente M x M als Resultat wieder ein Element der Menge M ist. Klar ist: rechnet man mit Äpfeln darf dabei nicht plötzlich eine Banane bei rauskommen. Abgeschlossenheit bei: • Addition reeller Zahlen Gegeben, denn die Summe zweier reeller Zahlen ist auch eine reelle Zahl. • Multiplikation reeller Zahlen Gegeben, denn das Produkt zweier reeller Zahlen ist auch eine reelle Zahl. • Addition Polynome 2. Grades Die Addition zweier Funktionen 2.Grades liefert erneut eine Funktion zweiten Grades. • Addition modulo p Alle Additionen liefern einen Wert zwischen 0 und p. • Addition von Vektoren Die Summe zweier Vektoren ist auch ein Vektor. 3.1.6 Beispiele für Nicht-Gruppen Ein Beispiel für eine „nicht“-Gruppe ist die Menge der natürlichen Zahlen (0, 1, 2,...) und die Verknüpfung der Addition. Während Assoziativität (G1), Kommutativität (G2) und ein neutrales Element (G3) gegeben sind, fehlt es an inversen Elementen (G4). 9/20 Elliptische Kurven und Verschlüsselungsverfahren Definiert man die Addition um, auf eine modulare Addition modulo p, so wird auch die Menge der natürlichen Zahlen zusammen mit der modularen Addition zu einer Gruppe. Tatsächlich wird der Modulo-Operator hauptsächlich dafür eingesetzt, aus einer Menge von natürlichen Zahlen zwischen 0 und p-1 eine Gruppe mit der Addition Modulo p zu erzeugen. Eine Multiplikation mit den Polynomen 2. Grades könnte auf der üblichen Multiplikation aufgebaut werden: f(x) = x2+3x+1, g(x) = x2 – x f(x) * g(x) = x4+3x3+x2-x3-3x2-x = x4+2x3-2x2-x Diese bilden jedoch keine Gruppe, da die Abgeschlossenheit (G5) nicht erfüllt ist. Das Produkt zweier Polynome 2. Grades kann ein Polynom 4. Grades sein. Diese Multiplikation ergibt jedoch eine Gruppe, wenn wir als Menge statt der Menge der Polynome 2. Grades die Menge aller Polynome nehmen. Denn in jedem Fall ist das Produkt zweier Polynome ebenfalls ein Polynom. (Und G1 – G4 sind ebenfalls erfüllt.) 3.1.7 Addition auf einer elliptischen Kurve als Gruppe Es kann eine Addition mit den Punkten einer elliptischen Kurve definiert werden, die ebenfalls eine Gruppe bildet. Wie wir bereits angemerkt haben, kann eine Menge jede beliebige Menge sein, also auch alle Punkte, welche die Gleichung y2 = x2 + ax + b erfüllen. Ein Verknüpfung, die wir hier gewohnheitshalber Addition nennen, kann ebenfalls jede beliebige Operation mit diesen Punkten sein. Wir betrachten nun einen grafischen Ansatz für eine Verknüpfung zweier Punkte auf einer elliptischen Kurve und nennen diese Addition. Punkte einer Kurve Wenn wir eine elliptische Kurve y2 = x3 - 6x + 6 haben, so liegen die Punkte P(-2, -3.162277660) und Q(1, 1) auf der Kurve. Dies kann einfach nachgewiesen werden, indem man die Gleichung für x = -2 und x = 1 ausrechnet. Q P Abbildung 7: Zwei Punkte auf einer elliptischen Kurve. 10/20 Elliptische Kurven und Verschlüsselungsverfahren Wir definieren die Addition von P und Q als das Spiegelbild an der X-Achse des dritten Schnittpunktes zwischen der elliptischen Kurve und der Geraden PQ. -R Grafisch ermitteln wir dazu zuerst die Gerade PQ und den dritten Schnittpunkt –R. Q P Abbildung 8: Die Gerade PQ und der Punkt -R Anschließend spiegeln wir den Punkt –R an der X-Achse und erhalten den Punkt R. Es gilt P+Q = -(-R) = R. Warum der Punkt –R ein negatives Vorzeichen hat, wird deutlich, wenn wir bezüglich der Addition die inversen Elemente definieren. -R Q P R Abbildung 9: Konstruktion des Punktes R = P+Q 11/20 Elliptische Kurven und Verschlüsselungsverfahren Das Inverses Element Wir legen fest, das bezüglich der Addition zweier Punkte der an der x-Achse gespiegelte Punkt das inverse Element ist. Dadurch erhält jeder Punkt der Kurve ein Inverses, denn die Kurve ist x-Achsen symmetrisch. An der Abbildung 10 kann man erkennen, das die Gerade zur Addition von P und –P vertikal verläuft, wodurch die Gerade keinen weiteren Schnittpunkt mit der Kurve hat. Nach dem Gruppenaxiom G4 muss für das inverse Element folgendes gelten: a+ (-a) = 0 Was ist hier das neutrale Element? Abbildung2 10: Inverses Element zu P Das neutrale Element Wir definieren hierfür das neutrale Element als einen Punkt im unendlichen und nennen ihn P0. Indem wir P0 in die Menge der Punkte der elliptischen Kurve aufnehmen, hat unsere Menge bezüglich der Addition nun auch ein neutrales Element. Diese Addition erscheint sehr „künstlich“, da sie nicht so sehr der Addition reeller Zahlen ähnelt. Auch erscheint die Wahl des neutralen Elementes sehr willkürlich. Aber entscheidend sind hier die Gruppenaxiome. Solche Mengen und Verknüpfungen, die den Anforderungen der Axiome entsprechend konstruiert werden, sind in der Mathematik häufig. Wir haben nun die inversen Elemente (G4) und das neutrale Element (G3). Auch ist die Abgeschlossenheit (G5) klar: Eine Addition zweier Punkte liefert einen neuen Punkt der Kurve. Das Kommutativgesetz (G2) ist hier auch recht intuitiv erfassbar: Ob wir die Gerade zur Ermittlung des Punktes –R als PQ oder QP interpretieren spielt keine Rolle. Das Assoziativgesetz (G1) ist hier (ohne zu zeigen) ebenfalls erfüllt. Damit haben wir eine Gruppe: Die Menge der Punkte einer elliptischen Kurve inklusive dem Element 0 und eine Verknüpfung, hier Addition genannt. Rechnerische Lösung Nun betrachten wir die Addition statt grafisch wieder mit Koordinatenpaaren. Sind P = (xp, yp) und Q = (xq, yq) zwei voneinander unterschiedliche Punkte, so wird die Summe P+Q = R wie folgt berechnet. 1.) s = (yp - yq) / (xp - xq) (Steigung der Geraden PQ) 2.) xr = s2 – xp –xq 3.) yr = -yp + s (xp – xr) 2 Von [CER] 12/20 Elliptische Kurven und Verschlüsselungsverfahren Nun können wir den Punkt R auch rechnerisch bestimmen: Elliptische Kurve: y2 = x3 - 6x + 6 Punkte: P(-2, -3.16227766), Q(1, 1) s = (-3.16227766 - 1) / (-2 - 1) = 1.054092553 xr = 1.054092553^2 - -2 – 1 = 2.11111111 yr = -(-3.16227766) + 1.054092553 * (-2 - 2.11111111) = -1.171213946 Woraus sich R(2.11111111, -1.171213946) ergibt. 3.1.8 Skalare Multiplikation auf elliptischen Kurven als Gruppe Skalare Multiplikationen als Verknüpfung sind bereits aus der Vektorrechnung oder der Matrixrechnung bekannt. Bei einer „normalen“ Multiplikation stammen beide Faktoren aus der gleichen Menge, so wie bei der Multiplikation zweier reeller Zahlen. Bei der Vektorrechnung möchte man statt v + v + v auch verkürzend 3 * v schreiben. Die 3 an sich gehört jedoch nicht zur Menge der Vektoren. Sie deutet lediglich eine wiederholte Addition an. Im Fall der Vektoren skaliert der Faktor 3 den Vektor v auf seine dreifache Länge. Daher wird diese Art der Multiplikation auch skalare Multiplikation genannt. Außer dem Umstand, dass der eine Faktor nicht aus der ursprünglichen Menge stammt, bildet aber auch die Menge der Vektoren mit der Verknüpfung skalare Multiplikation eine Gruppe, bei der man recht leicht zeigen kann, dass alle fünf Gruppenaxiome erfüllt werden. Vielleicht ist es weiter oben bei der Addition von Punkten einer elliptischen Kurve aufgefallen: der Fall P = Q und dementsprechend die Berechnung von P + P wurde nicht behandelt. Dies wollen wir jetzt nachholen, denn dieser Fall ist auch gleichzeitig die Grundlage für die skalare Multiplikation von Punkten auf der elliptischen Kurve. 13/20 Elliptische Kurven und Verschlüsselungsverfahren Soll ein Punkt zu sich selbst addiert werden, also P+P = R, dann entspricht – R dem Schnittpunkt der Kurve mit der Tangente durch P. Rechnerisch sieht das so aus: 2P = R 1.) s = (3*(xp2) + a) / (2*yp) (Steigung der Tangenten bei P) 2.) xr = s2 – 2*xp 3.) yr = -yp + s (xp – xr) 2P 2Q Q Beispiel für P(-2, -3.162): s = -0.948 xr = 4.9 yr = 9.708 Auf diese Weise lässt sich jedes vielfaches von P darstellen, z.B. 3P = 2P + P, 4P = 2(2P) etc... Die Ergebnisse der skalaren Multiplikation sind der Abgeschlossenheit (G5) entsprechend wieder Punkte auf der Kurve. P -2P Abbildung 11: Die Punkte P(-2, -3.162) und Q(1, -1) und ihre doppelten 2P(4.9, 9.708) und 2Q(0.25, 2.125) auf der Kurve a= -6 und b=+6. 3.2 Körper Nun können wir mit Punkten auf einer Kurve Additionen und skalare Multiplikationen durchführen. Eine Menge mit zwei Verknüpfungen, im folgenden Addition (K1) und Multiplikation (K2) genannt, die jeweils den Gruppenaxiomen genügen und das zusätzliche Axiom des gemischten Distributivgesetzes erfüllt, nennt man einen Körper. 3.2.1 K3 Gemischtes Distributivgesetz Das gemischte Distributivgesetz legt fest, wie die beiden Verknüpfungen untereinander hand zu haben sind. Es lautet x* (y+z) = x*y + x*z Dieses Gesetz ist uns wohl bekannt aus dem Körper, den die Menge der reellen Zahlen mit den beiden Verknüpfungen Addition und Multiplikation bilden: es ist das „Ausmultiplizieren einer Klammer“. Gleichermaßen wird dieses Gesetz aber auch von den beiden Verknüpfungen, die wir für die Punkte der elliptischen Kurve definiert haben, erfüllt. Die Bezeichnungen Addition und Multiplikation repräsentieren hier wieder Verknüpfungen, die nicht unbedingt etwas mit den uns bekannten Additionen und Subtraktionen aus der Menge der reellen Zahlen zu tun haben. 14/20 Elliptische Kurven und Verschlüsselungsverfahren 3.2.2 Der Körper der elliptischen Kurve über Fp Nun haben wir die nötige Grundlage dafür geschaffen, mit Punkten auf einer elliptischen Kurve zu rechnen. Wer die Beispiel Additonen nachrechnet, wird feststellen, dass die berechneten Punkte nicht exakt sind: Es wurden Rundungen während des Rechnens vorgenommen. Auch ist im Computer das Rechnen mit reellen Zahlen sehr ungenau und recht rechenaufwendig. Daher überträgt man die Arithmetik der elliptischen Kurven in eine endliche (=diskrete) Menge FP. P ist hier eine ganze Zahl. Die Gleichung der elliptischen Kurven wird so modifiziert, dass sie Werte aus dem Bereich 0 bis p-1 liefert. Und wie sollte es anders sein, als das man hierfür den Modulo-Operator benutzt. Daraus ergibt sich folgende neue elliptische Gleichung: (y2) mod p = (x3 + ax + b) mod p Als Vergleich hier noch einmal die unveränderte Gleichung für reelle Zahlen: y2 = x3 + ax + b Eine Abbildung von Z -> 0...p-1, p aus Z. Alle Elemente von FP sind aus den Zahlen 0 bis p-1 zusammengesetzt. Als Beispiel sei hier die Menge F23 der Kurve x3 + x mod 23 (a=1, b=0) aufgezeigt. Sie besteht aus den 23 Punkten: (0,0) (1,5) (1,18) (9,5) (9,18) (11,10) (11,13) (13,5) (13,18) (15,3) (15,20) (16,8) (16,15) (17,10) (17,13) (18,10) (18,13) (19,1) (19,22) (20,4) (20,19) (21,6) (21,17) Betrachtet man die Punkte der Menge F23, so kann man noch die Symmetrie bezüglich der X-Achse erkennen (um den Wert y = 11,5). Die gespiegelten Punkte sind auch hier die inversen Elemente bezüglich der Addition. Symmetrie Achse Die Addition und das Skalarprodukt werden ebenfalls durch den Modulo Operator so angepasst, dass sie Werte aus dem Bereich 0 bis p-1 liefern: 15/20 Elliptische Kurven und Verschlüsselungsverfahren P+Q=R s = ((yp – yq) / (xp - xq)) mod p xr = (s2 - xp – xq) mod p yr = (-yp + s * (xp – xr)) mod p 2P = R s = ((3 * xp2 + a) / (2 * yp) ) mod p xr = (s2 – 2 * xp) mod p yr = (-yp + s * (xp – xr)) mod p Nun haben wir die Punkte der elliptischen Kurven auf diskrete ganze Zahlen abgebildet und somit die Rechengenauigkeit und auch die Rechengeschwindigkeit erhöht. Der Preis dafür ist jedoch, das wir nun eine endliche Menge von Punkten haben. Wir werden später sehen, das eine Verschlüsselung durch das durchprobieren aller Punkte geknackt werden kann. Daher ist es sinnvoll Mengen der Größenordnung 2100 oder mehr zu erzeugen. 3.2.3 Der Körper der elliptischen Kurve über F2m Der Körper FP mit seinen beiden Verknüpfungen lässt sich aber noch weiter so optimieren, dass es im Computer effizienter verarbeitet werden kann. Hierzu werden in der tatsächlichen Anwendung in Computern Körper über m-Bit Strings gebildet. Damit ist jeder Punkt eine Kette von Nullen und Einsen. Die Addition wird ebenfalls der binären Arithmetik angepasst und durch die schnelle XOR Funktion definiert. 4 Das praktisch unlösbare Problem Aktuelle Verschlüsselungsverfahren basieren auf mathematischen Problemen, deren Lösung nur mit enormem (Rechen-) Aufwand möglich sind. 4.1 Die Faktorisierung Hierzu gehört z.B. das Faktorisierungsproblem, bei dem es gilt, eine gegebene Zahl in seine Primfaktoren zu zerlegen. Nach dem aktuellen Stand ist es zwar nicht nötig alle Faktoren durch zu probieren, aber dennoch zu viele. Man kann sich vorstellen, dass die Faktorisierung einer Zahl der Größenordnung 22000 auf einem durchschnittlichen PC (Stand Jahr 2000) mehr als eine Milliarde Jahre benötigen würde3. Das RSA - Verfahren basiert auf der Faktorisierung. 3 Aus [Selke00] 164 16/20 Elliptische Kurven und Verschlüsselungsverfahren 4.2 Der diskrete Logarithmus Ein weiteres ungelöstes Problem der Mathematik ist der sogenannte diskrete Logarithmus, kurz DLP. Dabei geht es um folgendes Problem: Angenommen wir betrachten die Gruppe der ganzen Zahlen mit der Verknüpfung der Addition und nehmen an, dass die Menge n Elemente besitzt. Dann gilt es die Gleichung h = gX bei gegebenem g, h und n nach x zu lösen. Anders formuliert muss die Gleichung g * x = h mod n gelöst werden. Im Fall der elliptischen Kurven über FP, in denen der Modulo-Operator bereits „integriert“ ist, gilt es dann die Gleichung P*k = Q zu lösen. Mit dem modifizierten euklidschen Algorithmus ist dies recht schnell lösbar. Benutzt man jedoch für die Gruppe eine andere Darstellung, wie die Arithmetik auf elliptischen Kurven, wird die Lösung sehr schwer.4 Das heißt, dass die Schwierigkeit des diskreten Logarithmus von der Komplexität der Arithmetik in der zu Grunde liegenden Gruppe abhängig ist. 4.3 Ist das Problem unlösbar? Die Faktorisierung ist das ältere der beiden Probleme und wurde auch intensiver erforscht. Man hat einige Kniffe herausgefunden, mit denen man nicht alle möglichen Faktoren durchprobieren muss. Dies führt dazu, dass die Laufzeit einer Faktorisierung auf O( n * p ) gekürzt wurde. Das Problem des diskreten Logarithmus hingegen wurde noch nicht zu genüge erforscht, wodurch sich immer noch eine Laufzeit von O(n*p) ergibt. Damit sind Verschlüsselungen, die auf dem DLP basieren per se stärker. Man kann sich vorstellen, falls ein schlauer Mathematiker über Nacht einen einfachen Algorithmus entdeckt, der eines dieser Probleme effizienter löst, dass dann diese Verschlüsselungsverfahren hinfällig werden. Nach der „State of the Art“ Ansicht heutiger Mathematiker wird dies aber wohl VORERST ausbleiben. Ein weiterer Ansatz solche Probleme schneller zu lösen, wäre der Quantencomputer. Dieser rechnet auf atomarer Ebene mit Quanten5 (statt mit Mikroschaltkreisen). Dabei ergeben sich folgende zwei Vorteile gegenüber den Mikrochips: 1. Quanten bewegen sich mit Lichtgeschwindigkeit. Die Information wird „reibungsfrei“ übermittelt. In Mikroschaltkreisen spielen Reibung der Elektronen, Trägheit der Schaltkreise an sich etc. eine wichtige Rolle. 2. Quantenbits haben statt einem binären Zustand (1 oder 0) mehrere Quantenzustände. Dadurch kann ein Quantenbit mehrere Rechnungen gleichzeitig durchführen (massiv parallel). 4 5 Siehe [Stoll 02] Seiten 47 ff. Quanten = kleinste Energieportion. Z.B. zählen Photonen (Lichtteilchen) zu den Quanten. 17/20 Elliptische Kurven und Verschlüsselungsverfahren Mit diesen Vorteilen und einem Algorithmus, der diese Vorteile ausspielen kann, wie z.B. Shors Faktorisierungsalgorithmus, könnte ein Quantencomputer eine Zahl, die heute zur Faktorisierung durch einen PC 1 Million Jahre benötigen würde, innerhalb weniger Stunden faktorisieren.6 Der Quantencomputer steckt jedoch noch in den Kinderschuhen. 5 Anwendung des Verschlüsselung schwer lösbaren Problems für die Es gibt mehrere Verschlüsselungsverfahren, die auf der Verwendung von Gruppen basieren. Darunter gehören das Diffie-Hellman und das ElGamal Verfahren. 5.1 Diffie-Hellman-Schlüsselaustausch7 „Hier möchten A(lice) und B(ob) über einen sogenannten unsicheren Kanal (d.h. z.B. eine abhörbare Leitung) Informationen austauschen, die am Ende zu einem gemeinsamen geheimen Schlüssel führen. Dieser kann dann zur Übermittlung einer längeren Nachricht mit einem effizienten symmetrischen Verschlüsselungsverfahren dienen. Das Vorgehen ist dabei wie folgt. 1. A wählt eine zufällige Zahl a aus Z und sendet ga an B. 2. B wählt eine zufällige Zahl b aus Z und sendet gb an A. 3. Beide können jetzt den gemeinsamen geheimen Schlüssel gab = (ga) b = (gb) a berechnen. Jemand, der die Leitung abhört und die Verschlüsselung knacken will, steht vor der Aufgabe, aus g, ga und gb das Element gab zu berechnen. Dies ist das sogenannte Diffie-Hellman-Problem, kurz DHP. Es ist klar, dass eine Lösung des Diskreten Logarithmus Problemes zu einer Lösung des DHP führt. Umgekehrt ist es sehr plausibel (und in manchen Fällen auch beweisbar, dass ein schneller Algorithmus für das DHP auch zu einem schnellen Algorithmus für das DLP führt. Man kann also beide als von vergleichbarer Schwierigkeit ansehen, so dass das angegebene Verfahren für Gruppen mit schwerem DLP sicher sein sollte.“ 5.2 ElGamal-Verschlüsselung8 „Hier geht es nun darum, dass A eine verschlüsselte Nachricht an B senden möchte. B hat als seinen privaten und geheimen Schlüssel eine zufällige Zahl b aus Z gewählt und den öffentlichen Schlüssel h = gb bekannt gemacht. Die Nachricht, die A an B schicken möchte, sei durch das Element m aus Z repräsentiert. 1. A wählt eine zufällige Zahl a aus Z. 2. A sendet das Paar (r; s) = (ga ; ha * m) an B. 3. B entschlüsselt die Nachricht als m = r -b * s. Dem liegt dieselbe Idee zu Grunde wie beim Diffie-Hellman-Verfahren, nur dass der zeitliche Ablauf etwas anders ist und der geheime gemeinsame Schlüssel sofort zur Übertragung der Nachricht m verwendet wird. Ein Unbefugter, der die Leitung abhört, hat wieder ein DHP zu lösen, um die Nachricht zu entschlüsseln.“ Aus [Zeit02] Aus [Stoll 02] Seiten 48. 8 Aus [Stoll 02] Seiten 48. 6 7 18/20 Elliptische Kurven und Verschlüsselungsverfahren 5.3 Verwendung von elliptischen Kurven9 „Es kommen nun verschiedene Arten von Gruppen G in Frage. Beispiele sind 1. die multiplikative Gruppe Zq; 2. die Gruppe E(FP) der rationalen Punkte einer elliptischen Kurve über FP. Die besprochenen Verfahren wurden ursprünglich für die Gruppe mit Zq vorgeschlagen. Der Vorteil einer solchen Gruppe [...] ist die Einfachheit und daher Effizienz des Rechnens in der Gruppe. Auf der anderen Seite sind aber inzwischen subexponentielle Algorithmen zur Lösung des DLP in solchen Gruppen bekannt (die Komplexität ist vergleichbar mit Faktorisierungsalgorithmen). Das bedeutet, dass man recht große Werte von q (1000, 2000 oder sogar 4000 Bit) verwenden muss, um ein sicheres System zu haben. Für elliptische Kurven ist demgegenüber kein schnelleres Verfahren für das DLP bekannt als die, die auf jede Gruppe anwendbar sind. (Ausnahmen sind spezielle elliptische Kurven, die man für kryptographische Zwecke nicht verwenden sollte.) Diese allgemeinen Verfahren haben eine Komplexität von O(pn). Das bedeutet, dass (nach gegenwärtigem Kenntnisstand) man p bei der Verwendung von G = E(FP) wesentlich kleiner wählen kann (200 bis 400 Bit), um ein vergleichbares Niveau an Sicherheit zu bekommen. Dies bedeutet auch eine nicht unerhebliche Speicherplatzersparnis, was für Implementierungenationen z.B. auf Chipkarten wichtig ist. Auf der anderen Seite ist das Rechnen in der Gruppe komplizierter als in Z und braucht daher mehr Zeit und eine aufwendigere Implementation.“ 5.4 Stärke der Verschlüsselung Aus „Kryptografie – Verfahren, Ziele, Einsatzmöglichkeiten“ liegt folgende Vergleichstabelle vor: Schlüssellänge in Bit Symmetrisches RSA oder ECC Verfahren ElGamal 64 512 175 80 768 190 112 1792 210 128 2304 235 Schlüssellänge in Dezimalziffern Symmetrisches RSA oder ECC Verfahren ElGamal 20 155 53 25 232 58 34 540 64 39 694 71 Tabelle 1: Vergleich verschiedener Verschlüsselungsverfahren.10 9 Aus [Stoll 02] Seiten 49. Aus [Selke00] Seite 164. 10 19/20 Elliptische Kurven und Verschlüsselungsverfahren 6 Quellen [Lau99] Thomas Laubrock: Krypto-Verfahren basierend auf elliptischen Kurven HTML-Tutorial mit JavaTM-Applet. Diplomarbeit im Studiengang Technische Informatik der Fachhochschule Dortmund, Oktober 1999. www.elliptische-kurven.de [CER] Elliptic Curve Cryptosystem Tutorial www.certicom.com [Stoll 00] Michael Stoll: Skript Elliptische Kurven I. Internationale Universität Bremen, 2000. www.faculty.iu-bremen.de/stoll/vorlesungen/Elliptische-Kurven-SS2000.pdf [Selke00] Gisbert W. Selke: Kryptographie – Verfahren, Ziele, Einsatzmöglichkeiten. O’Reilly Verlag, 2000. [Foster83] Otto Foster: Analysis 1. Vieweg Studium Grundkurs Mathematik, 1983. [Jänich98] Klaus Jänich: Lineare Algebra. Springer Verlag, 1998. [EJV83] Eckart, Jehle, Vogel: Analytische Geometrie. Bayerischer Schulbuch-Verlag, 1983. [Zeit02] Astrid Dähn: Teilchen im Irgendwo Die Zeit, 44/2002 www.zeit.de/2002/44/Wissen/200244_n-quantencompute.html [NL04] Net-Lexicon www.net-lexikon.de 20/20