Elliptische Kurven und ihre Anwendung in der

Werbung
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
Herunterladen