Der Vortrag, wie auch die Ausarbeitung, beschäftigt sich vornehmlich mit Methoden der Kryptographie und im besonderen mit dem Einsatz elliptischer Kurven. Er richtet sich an Studentinnen, Studenten und Professoren der Informatik. Aber natürlich auch an alle anderen Personen die sich für das Thema Kryptographie interessieren. Inhaltsverzeichnis
Dokument Übersicht
Ein Basiswissen über Mathematische und Kryptographische Verfahren wird allerdings vorausgestzt um relativ zügig zu den elliptischen Kurven überzugehen. Trotzdem sollen zunächst einige Grundbegriffe geklärt werden, damit Author und Leser in etwa das selbe Verständnis haben. Grundbegriffe zum ThemaAus seiner Kindheit mag der Leser den Begriff der Geheimschrift kennen, wo beispielsweise mit "Zaubertinte" auf weisses Papier geschrieben wurde. Ein mit Zaubertinte geschriebenes Schriftstück lies sich nur unter Anwedung einer bestimmten Technik lesen. Die Wissenschaft der Geheimschrift lässt sich in verschiedene Bereiche und Methoden einteilen, die im folgenden erläutert werden sollen. Es wird allerdings kein Anspruch auf Vollständigkeit erhoben, so dass nur wesentliche Dinge herausgestellt werden.
Auf Basis der Historie lassen sich sofort zwei Arten der Geheimschrift differenzieren. Das ist zum einen die Steganographie und zum anderen die Kryptographie. Beide Worte lassen sich aus dem griechischen ableiten, wobei "graphein" für schreiben steht. Der Unterschied ergibt sich also aus "steganos" (verborgen) und "kryptos" (versteckt). Nun klingen die beiden Übersetzungen ins Deutsche nicht besonders unterschiedlich und bedürfen daher einer kurzen Erklärung. Verborgen meint das eine Nachricht im Klartext geschrieben wird, diese dann aber für einen potenitellen Angreifer nicht sichtbar ist. Wie zum Beispiel bei der Zaubertinte, oder aber das Schreiben auf Holztafeln, die dann mit Wachs überzogen werden. Mit versteckt ist gemeint das der Sinn, und das ist ganz wesentlich, einer Nachricht versteckt wird. Das bedeutet die eigentliche Nachricht kann in Feindes Hand gelangen, ergibt aber zunächst keinen Sinn.
Ausprägungen der Kryptographie sind "Code" und "Cipher", welche durch Transposition, also vertauschen, oder Substitution (ersetzen) realisiert sein können. Ein kleines Beispiel soll betrachtet werden: Asymmetrische VerfahrenMitte der 70er Jahre wurde jedoch ein Durchbruch erzielt und das Problem des Schlüsselaustausches konnte mittels asymmetrischer Verfahren gelöst werden. Bevor auf den Einsatz von elliptischen Kurven eingegangen wird, soll zunächst das allgemeine Kommunikationszenario eines asymmetrischen Verfahrens vorgestellt werden. Daran anschliessend ein Beispiel zum sicheren Schlüsselaustausch nach Diffie-Hellman und eines zum RSA Algorithmus. Zur Beschreibng des Kryptographischen Modells bedienen wir uns der klassischen Akteure "Alice" und "Bob". In der Regel ist es das Ziel von Alice und Bob Nachrichten auszutauschen, ohne das diese von dritten mitgelesen werden können. Weitere Akteure können sein: "Eve", die einen passiven Angreifer darstellt und "Mallory" der ein aktiver Angreifer ist. Alice und Bob generieren jeweils ein Schlüsselpaar, bestehend aus einem öffentlichen und einem privaten Schlüssel. Die öffentlichen Schlüssel werden ausgetauscht und die privaten müssen geheim bleiben, um die Sicherheit des Systems zu gewährleisten. Beide führen vor und nach dem Schlüsselaustausch verschiedene Berechnungen durch. Abhängig vom Verfahren unterscheiden sich diese Berechnungen natürlich.
Somit haben wir über einen unsicheren Kanal einen Schlüssel ausgetauscht, der für ein symmetrisches Verfahren als geheimer Schlüssel genutzt werden kann. Die Kenntnis von a, p, Ya und Yb ist für Eve völlig nutzlos, da ohne zutun eines geheimen Schlüssels z. B. die Formel YaXb mod p nicht berechnet werden kann. Sie hat also das Problem der Bestimmung von Xb in YaXb. Darauf wird aber in einem folgenden Abschnitt noch näher eingegangen. Herauszustellen bleibt die Tatsache das auf die oben beschriebene Weise noch keine (!) Verschlüsselung durchgeführt wurde. Es ist lediglich ein Verfahren um einen symmetrischen Schlüssel über einen unsicheren Kanal auszutauschen. Zugleich war es aber auch Basis für das von Rivest, Shamir und Adleman implementierte RSA-Verfahren, welches zu den asymmetrischen gehört.
Die Verschlüsselung einer Nachricht m geschieht dann nach c = me mod n und die Entschlüsselung m = cd mod n. Verwendete Werte für p und q sollten so "zufällig wie möglich" gewählt sein und müssen geheim bleiben um die Sicherheit des Verfahrens zu gewährleisten. Zwischen Alice und Bob werden lediglich die öffentlichen Chiffrierschlüssel ausgetauscht.
Ein Zahlen-Beispiel (im Text):
Um die Betrachtung der asymmetrischen Verfahren abzuschliessen sollen noch kurz die verwendeten Probleme beschrieben werden, welche die Verfahren funktionsfähig machen. Wie im RSA-Beispiel gesehen wird dort das Problem des "Faktorisierens" (IF) angewendet. Wir haben eine gegebene Gleichung n = p * q, wobei p und q prim und/oder groß sind. Das Problem besteht nun in der Bestimmung von p und q, wenn nur n und ein Faktor bekannt sind. Bei Diffie-Hellman und auch bei RSA kommt desweiteren das Problem des "Diskreten Logarithmus" (DL) zum tragen. Gegeben ist die Gleichung y = gx, mit grossem x und einem allgemein bekannten g. Hier liegt nun das Problem in der Umkehrung der Exponentation, also dem Bestimmen von x. Elliptische Kurven Kryptographie (ECC)
Der Einsatz von elliptischen Kurven in der Public Key-Kryptographie wurde 1985 unabhängig voneinander von N. Koblitz und V. Miller angeregt. Das Interesse an elliptischen Kurven für kyptographische Zwecke, d. h. an ECC - Elliptic Curve Cryptography hat seitdem stark zugenommen. Mathematischer Hintergrund der elliptischen Kurven (ECC)
Bevor weiter auf die elliptischen Kurven eingegangen wird, soll noch ein kleiner mathematischer Hintergrund geschaffen werden.
erfüllt, wobei x, y, A, B Elemente von K sind. Zusammen mit einem speziellen Punkt 0, der "Punkt an Unendlich" genannt wird, bildet eine elliptische Kurve eine Gruppe. Man bezeichnet sie mit E(K) oder kurz mit E, falls der zugrunde liegende Körper bekannt ist. Die zugrundeliegende Operation dieser Gruppe ist die Addition und das Additionsgesetz für elliptische Kurven kann man graphisch folgendermaßen definieren: Seien P=(x1, y1) und Q=(x2, y2) zwei verschiedene Punkte auf der elliptischen Kurve E, dann ist die Summe P + Q graphisch definiert durch Additionsgesetz für elliptische Kurven d.h. man legt eine Gerade durch die Punkte P und Q, die die Kurve in genau einem weiteren Punkt R schneidet. Die Summe P + Q ist definiert durch -R d.h. durch die Spiegelung des Punktes R an der x-Achse. Es gibt drei Spezialfälle: 1.) Falls P = 0 der Punkt an Unendlich ist, dann sei -P wieder 0 und P + Q = Q. 2.) Falls P = -Q, dann bekommt man P + Q = 0. 3.) Falls P = Q, dann nimmt man als Gerade die Tangente an den Punkt P und verfährt wie oben. Außerdem ist 2 * P = P + P, so dass auch k * P für eine ganze Zahl k definiert ist. Bemerkung: Die Punktegruppe einer elliptischen Kurve ist eine additive Gruppe, in der sich aber alle Protokolle für die Schreibweise einer multiplikativen Gruppe übertragen lassen: was beim originalen DL-Problem die Bestimmung von x in gx bedeutet ist im Falle der Verwendung der elliptischen Kurven die Berechnung von k in k * P. Elliptische Kurven lassen sich über beliebigen Körpern definieren. Verwendung in der Kryptographie finden aber nur Kurven über endlichen Körpern. Erfüllt die elliptische Kurve und der zugrunde gelegete Körper geeignete Bedingungen, so lässt sich das Problem des diskreten Logarithmus (DL) in diesem Fall nicht effizient lösen. Sicherheit von ECC
Die Sicherheit von kryptographischen ECC Systemen basiert auf der Schwierigkeit des DL-Problems in Gruppen von Punkten auf einer elliptischen Kurve. Verhältnis der Schlüssellängen von RSA zu ECC Konstruktion geeigneter Kurven
Für die Festsellung, ob eine gegebene elliptische Kurve für den Einsatz innerhalb der Kryptographie geeignet ist, gibt es gewisse Kriterien. Das Wichtigste dabei ist die Anzahl der Punkte auf der Kurve. Diese muss hinreichend groß sein (in der Regel mehr als 2160, was eine Zahl mit fast 50 (!) Dezimalstellen ist) und sollte eine Primzahl sein oder einen entsprechend großen Primteiler enthalten.
Hier ist Ihre elliptische Kurve! Ein ausführliches Beispiel zu ECCAls Beispiel sei die ElGamal-Verschlüsselung mit elliptischen Kurven im Telegrammstil vorgestellt: Vorbereitung- Wähle eine sichere elliptische Kurve E über einem endlichen Körper Fq, n = #E(Fq) sei die Anzahl ihrer Punkte.- Fixiere einen Punkt P aus E(Fq). Schlüsselerzeugung- Alice wählt als privaten Schlüssel eine Zufallszahl a < n, Bobs privater Schlüssel ist eine Zufallszahl b < n.- Alice berechnet ihren öffentlichen Schlüssel A = a * P, Bobs öffentlicher Schlüssel ist B = b * P. Alice chiffriert einen Punkt N für Bob- Alice wählt eine Zufallszahl k < n.- Alice berechnet R = k * P und S = k * B + N und sendet R und S an Bob. Bob dechiffriert R und S- Bob berechnet -b * R + S und erhält den Punkt N.Die Sicherheit des Verfahrens beruht darauf, dass das ECDLP (Elliptic Curve Discrete Logarithm Problem) schwierig zu lösen ist. Das bedeutet: k * P (das k-fache des Punktes P) ist schnell berechenbar, wenn man k und P kennt. Hingegen ist es im Allgemeinen schwierig, k zu ermitteln, wenn nur P und das Ergebnis von k * P bekannt sind. Ist das ECDLP für einen Angreifer nicht lösbar, so kann er aus dem öffentlichen Schlüssel nicht den privaten Schlüssel berechnen. Alice und Bob können eine Nachricht N austauschen, weil sie ein gemeinsames geheimnis haben: k * b * P. Alice kennt k * B, und Bob kennt b * R. Alice addiert zur Nachricht N das gemeinsame Geheimnis hinzu und Bob zieht es zum entschlüsseln wieder ab. Ein Angreifer, der R und S abgefangen hat, kennt zwar k * P und b * P, aber da er das Problem des Diskreten Logarithmus für ECC (ECDLP) nicht lösen kann, gelangt er nicht an das gemeinsame Geheimnis k * b * P. Es bleibt zu klären, wie Alice eine beliebige Nachricht in einen Punkt N auf der elliptischen Kurve verwandelt. Die Nachricht ist ein Bit-Wort. An diesen genügend kurzen Klartext hängt Alice eine bestimmte Anzahl Bits an, zum Beispiel 10 Bits, mit dem Ziel, die x-Koordinate eines Punktes N zu erhalten. Bei jeder Wahl der 10 Bits hat sie dafür eine Fifty-fifty-Chance, weil die Hälfte aller Zahlen eines enlichen Körpers Quadratzahlen sind. Sobald Bob den Punkt N errechnet hat, streicht er von dessen x-Koordinate 10 Bits und erhält die Nachricht. Alice einigt sich mit Bob, ein Bit (statt zehn) an Nachrichten anzuhängen. Sie möchte die Nachricht "100" (das ist 4 dezimal) verschlüsseln. Im ersten Versuch hängt sie eine "0" an und erhält "1000" (8[dez]). Nun prüft sie, ob x = 8 eine mögliche x-Koordinate ist: y2 = 83 + 3 * 8 + 5 = 512 + 25 + 5 = 541 = 14 mod 17 Alice hat Pech. Es gibt keinen passenden y-Wert, die Quadratzahlen in F17 sind nämlich {0,1,4,9,16,8,2,15,13}. Nun versucht Alice eine "1" an die Nachricht anzuhängen und erhält "1001" (9[dez]). Sie setzt x = 9 in die Gleichung der elliptischen Kurve ein: y2 = 93 + 3 * 9 + 5 = 729 + 27 + 5 = 761 = 13 mod 17 Alice hat Glück. 13 ist eine Quadratzahl in F17, nämlich 13 = 92 mod 17. Es gibt noch die zweite Lösung 13 = (-9)2 = 82. Sie hat also die Wahl zwischen y = 8 und y = 9 und entscheidet sich für P = (x,y) = (9,8). Damit hat Alice die Nachricht "100" in den Punkt (9,8) verwandelt. Klassisch wurde als Gruppe zunächst die multiplikative Gruppe Fq* verwendet, wobei Fq ein endlicher Körper mit q Elementen ist. In dieser Gruppe ist das Berechnen diskreter Logarithmen schwierig, allerdings gibt es wie bei RSA immerhin subexponentielle Algorithmen, um das Problem zu lösen, etwa Index Calculus und Zahlkörpersieb. ECC F@cts
große Zahl für asymmetrische Schlüssel verwenden.
erfordert wesentlich mehr Rechenaufwand als etwa RSA.
sodass sich das Verfahren auch in PDAs oder auf Smartcards leicht einsetzen lässt. Motivation und Zusammenfassung
Warum ausgerechnet ein so wissenschaftliches Thema, wie elliptische Kurven? Natürlich steht hier ganz klar das persönliche Interesse an der Kryptographie im Allgemeinen im Vordergrund. Nicht zuletzt durch Bücher wie "The Code Book" (ISBN 1-85702-889-9) von Simon Singh wuchs meine Begeisterung für die Kryptographie. Singh schafft es in seinem Buch die Kryptographie in eine unglaublich spannende Verbindung mit der Weltgeschichte zu bringen. Kryptographie ist nicht nur reduziert auf die blose Implementierung von Algorithmen sondern hat auch in vielen Fällen das Schicksal einzelner Personen oder ganzer Völker bestimmt. Antriebsfeder für die Evolution von kryptographischen Systemen war stets der Kampf zwischen "Codemachern" und "Codebrechern". Ausserdem die erkenntnis das es bislang noch kein 100% sicheres Verfahren gibt. Derzeit stellen asymmetrische Verfahren mit elliptischen Kurven sozusagen die Evolutionäre Spitze da. Von daher ist das Interesse an elliptischen Kurven klar begründbar. Zusätzlicher Aspekt ist meine Arbeit bei Siemens VDO in Wetzlar. Als führender Hesteller von Navigations Systemen und Autoradios sieht man sich dort ständig der Gefährdung durch Software-Piraterie ausgesetzt. Die Implementierung eines Kryptosystems auf den Navigations Systemen (das sind emebedded systems) ist somit gefordert. Die vielen Performance Vorteile von ECC gegenüber RSA sprechen deutlich für eine ECC Implementierung in embedded systems. Korrekte Benutzung einer starken Cipher ist zum Vorteil von Sender und Empfänger, aber der Missbrauch einer schwachen Cipher kann einen sehr falschen Eindruck von Sicherheit vermitteln. Von daher sollte jeder erkannt haben das der Einsatz von starker Kryptographie lohnt. Nicht nur für Firmen und Unternehem sondern auch zum Einsatz im privaten Bereich. Dabei lösen asymmetrische Verfahren das klassische Problem der Schlüsselverteilung. Mit dem Einsatz von elliptischen Kurven lassen sich die Randbedingungen sehr elegant gestalten. Tortz kurzer Schlüssellängen und geringer Dauer für die Verschlüsselung ist die Sicherheit als sehr hoch (!) zu bewerten. |