-
Die
Erfindung betrifft ein Verfahren und eine Vorrichtung zum rechnergestützten Ermitteln
einer elliptischen Kurve für
kryptographische Anwendungen, so dass eine effiziente Speicherung
kryptographischer Parameter ermöglicht
wird. Weiterhin ein Verfahren zur Rekonstruktion einer durch ein
derartiges Verfahren ermittelten elliptischen Kurve und ein Verfahren
zum rechnergestützten
Multiplizieren eines Punktes mit einem Skalar auf Basis einer derartig ermittelten
bzw. rekonstruierten elliptischen Kurve.
-
Kryptographische
Anwendungen auf Basis elliptischer Kurven über endlichen Körpern stellen
die derzeit effizientesten asymmetrischen Kryptographieverfahren
dar. Dies liegt daran, dass bei elliptischen Kurven im Gegensatz
zu den asymmetrischen Kryptographieverfahren der ersten Generation
keine Angriffsmethoden mit subexponentieller Laufzeit bekannt sind.
Demzufolge ist der Sicherheitsgewinn pro Bit der verwendeten Sicherheitsparameter
höher,
so dass für
praktische Anwendungen deutlich kürzere Schlüssellängen verwendet werden können. Die
resultierenden Verfahren sind performanter und benötigen eine
geringere Bandbreite zur Übertragung
der Systemparameter als andere asymmetrische Kryptographieverfahren
bei vergleichbarer Sicherheit.
-
Zum
Betrieb derartiger Verfahren müssen verschiedene
Daten gespeichert werden. Diese umfassen einerseits das Schlüsselmaterial,
welches jedem Teilnehmer des Systems individuell zugeordnet ist,
als auch die allgemeinen Systemparameter. Diese Systemparameter
sind öffentlich
bekannt, und alle Benutzer der kryptographischen Verfahren verwenden
die gleichen Systemparameter. Teile der Systemparameter sind allen
Teilnehmern implizit durch die verwendeten kryptographischen Verfahren
oder durch ihre Implementierung bekannt, andere Werte müssen von
jedem Teilnehmer dauerhaft gespeichert werden, zum Beispiel in einem
nichtflüchtigen
Speicher (PROM, EEPROM, Flash, andere Datenträger usw.).
-
Bei
kryptographischen Verfahren auf Basis der Punktegruppe einer elliptischen
Kurve über
einem endlichen Körper
bestehen diese allgemeinen Systemparameter zumindest aus Daten zur
Definition des verwendeten endlichen Körpers (Primzahl, Primzahlpotenz
und/oder irreduzibles Polynom) und den Kurvenparametern zur Festlegung
der verwendeten elliptischen Kurve. Gegebenenfalls kommen weitere
Daten zur Festlegung der Koordinaten eines Basispunktes oder die
Ordnung der Punktegruppe und/oder einer Untergruppe hinzu.
-
Bei
geringpreisigen kryptographischen Produkten für Massenanwendungen, wie beispielsweise RFIDs
oder speziellen ICs zum Schutz vor Plagiaten, besteht stets die
Anforderung, die Stückpreiskosten soweit
wie möglich
zu senken. Die Herstellungskosten solcher Halbleiterprodukte werden
in erster Linie von der benötigten
Chipfläche
bestimmt, welche wiederum auch von der benötigten Kapazität für nichtflüchtige Speicher
abhängt.
Insofern existiert ein Bedarf, den erforderlichen Speicherplatz
für dauerhaft zu
speichernde Systemparameter in solchen Verfahren weiter zu senken.
-
Die
Aufgabe der vorliegenden Erfindung ist es daher, ein asymmetrisches
Kryptographieverfahren anzugeben, mit dem der erforderliche Speicherplatz
für dauerhaft
zu speichernde Systemparameter des asymmetrischen Kryptographieverfahrens
verringert wird.
-
Diese
Aufgabe wird gelöst
durch Verfahren mit den Merkmalen der Ansprüche 1, 8 und 9, sowie durch
eine Vorrichtung mit den Merkmalen des Anspruchs 12. Vorteilhafte
Ausgestaltungen der vorliegenden Erfindung sind in den abhängigen Ansprüchen angegeben.
-
In
dem erfindungsgemäßen Verfahren
zum rechnergestützten
Ermitteln einer elliptischen Kurve für kryptographische Anwendungen
werden Systemparameter der elliptischen Kurve (E) er mittelt. Eine Speicherzelle
zur Speicherung von Informationen der Systemparameter weist hierbei
eine vorgebbare Bitlänge
w auf. Die Systemparameter sind jeweils als Bitfolge mit einer Bitlänge n darstellbar,
so dass ein Systemparameter bei Speicherung in d = n/w Speicherzellen
jeweils eine Restbitfolge e = n modulo w = n – d·w aufweist.
-
Die
Systemparameter der elliptischen Kurve (E) werden nun derart ermittelt,
dass die Restbitfolge e ein vorgebbares konstantes Muster aufweist.
-
In
dem erfindungsgemäßen Verfahren
zur Rekonstruktion einer wie oben ermittelten elliptischen Kurve
(E) wird jeweils die in den d Speicherzellen gespeicherte Bitfolge
der Bitlänge
n-e = d·w ausgelesen.
Der jeweilige Systemparameter wird durch Ergänzung der vorgegebenen Restbitlänge e mit dem
vorgebbaren konstanten Muster rekonstruiert.
-
In
dem erfindungsgemäßen Verfahren
zum rechnergestützten
Multiplizieren eines Punktes mit einem Skalar wird eine elliptische
Kurve (E) wie oben ermittelt bzw. rekonstruiert.
-
Der
Punkt liegt dabei auf der ermittelten elliptischen Kurve. Die Multiplikation
erfolgt dann unter Verwendung nur einer örtlichen Koordinate des Punktes
auf der ermittelten elliptischen Kurve (E).
-
Die
erfindungsgemäße Vorrichtung
zum Ermitteln einer elliptischen Kurve weist eine Recheneinheit
auf, die zum Durchführen
der oben gezeigten Verfahrensschritte eingerichtet ist.
-
Die
Erfindung wird nachfolgend mit Ausführungsbeispielen anhand der
Figuren näher
erläutert. Es
zeigen:
-
1a,
b, c eine schematische Darstellung einer Bitfolge eines Systemparameters
mit einer Aufteilung in d Speicherzellen und einer Restbitfolge
e gemäß der Erfindung,
-
2a,
b, c eine schematische Darstellung eines konstanten Musters einer
Restbitfolge gemäß der Erfindung.
-
Auf
der Menge der Punkte einer elliptischen Kurve kann eine abelsche
Gruppenstruktur G definiert werden. Diese Gruppenstruktur induziert
eine Skalarmultiplikation Z × G → G von ganzen
Zahlen mit Kurvenpunkten, die die Grundlage aller kryptographischen
Verfahren auf Basis elliptischer Kurven bildet. Sei s eine ganze
Zahl, P ein Punkt der elliptischen Kurve E und Q = sP das s-fache
des Punktes P. Sind die Punkte P und Q gegeben, so bezeichnet man
die Berechnung eines geeigneten Skalars s mit Q = sP als das diskrete
Logarithmus-Problem für
elliptische Kurven. Bei geeigneter Wahl des Körpers K und der Parameter der
elliptischen Kurve E ist es mit den heute zur Verfügung stehenden
algorithmischen Mitteln unmöglich,
das diskrete Logarithmus-Problem in vertretbarer Zeit zu lösen. Auf
dieser Schwierigkeit beruht die Sicherheit bei kryptographischen
Anwendungen elliptischer Kurven. Eine elliptische Kurve E wird also
allgemein durch eine kubische Gleichung der Form y2 +
a1xy + a3y = x3 + a2x2 +
a4x + a6 beschrieben,
wobei a1, a2, a3, a4, a6 Elemente
eines endlichen Körpers
K sind, die die Kurve E parametrisieren und folglich als Systemparameter
bezeichnet werden. Die Menge aller Paare (x, y) aus K2,
die die gegebene Kurvengleichung E erfüllen, heißen die Punkte der elliptischen
Kurve E.
-
Mit
Hilfe des diskreten Logarithmus-Problems lassen sich nun asymmetrische
Kryptographieverfahren zur Verschlüsselung, zur Erzeugung elektronischer
Signaturen und für
andere Anwendungen bilden. Dazu wählt ein Anwender des asymmetrischen
Kryptographieverfahrens einen Punkt P einer elliptischen Kurve E,
den so genannten Basispunkt, und einen Skalar s. Der Skalar s bildet
den geheimen Schlüssel
und der Punkt Q = sP den öffentlichen Schlüssel des
asymmetrischen Kryptographieverfahrens.
-
Für kryptographische
Anwendungen wird ein endlicher Körper
K verwendet. Dadurch bildet auch die abelsche Gruppe G eine endliche
Gruppe. Folglich ist die Anzahl der Punkte endlich, die die Kurvengleichung
E erfüllen.
Damit eine elliptische Kurve E (a1, a2, a3, a4,
a6) für
kryptographische Anwendungen geeignet ist, müssen die Parameter a1, a2, a3,
a4, a6 aus K geeignet
gewählt
werden. Die aus den Parametern resultierende Kurve E und die Punktegruppe G
müssen
bestimmte Eigenschaften erfüllen,
die in der Fachliteratur beschrieben sind.
-
Diese
können
beispielsweise aus dem Anforderungskatalog des Bundesamtes für Sicherheit
in der Informationstechnik entnommen werden, in dem geeignete kryptographische
Verfahren für
Signaturanwendungen gemäß deutschem
Signaturgesetz spezifiziert sind.
-
Die
Sicherheit eines kryptographischen Verfahrens auf Basis elliptischer
Kurven hängt
also im Wesentlichen von den kryptographischen Eigenschaften der
ausgewählten
elliptischen Kurve ab.
-
Im
Folgenden betrachten wir nun elliptische Kurven über einem endlichen Körper GF(2n) der Charakteristik 2. Bei einem solchen
endlichen Körper werden
die Elemente typischerweise als Bitstrings der Länge n repräsentiert. Die einzelnen Bits
stellen dabei die Koeffizienten des Elements bezüglich einer polynomiellen Basis
oder einer Normalbasis dar. Diese Darstellung ist sehr kompakt und
speichereffizient.
-
Aus
Gründen
der kryptographischen Sicherheit der verwendeten elliptischen Kurven
kann der Erweiterungsgrad n des endlichen Körpers GF(2n), welcher
die Länge
der Bitstrings zur Repräsentation der
Körperelemente
festlegt, keine zusammengesetzte Zahl sein. Insbesondere sind Zweierpotenzen als
Erweiterungsgrade für
praktisch relevante Implementierungen verboten. Andererseits verwenden
alle gebräuchlichen
Speichersysteme – flüchtige und nichtflüchtige Speicher – als kleinste
speicherbare Dateneinheit eine Folge von Bits, wobei die Anzahl der Bits
an die Busbreiten der zugehörigen
Computersysteme angepasst ist. Typischerweise treten als Busbreiten
Zweierpotenzen auf (zum Beispiel 8 Bit, 16 Bit, 32 Bit, 64 Bit usw.)
Deshalb können
bei der Speicherung von Systemparametern einer kryptographisch starken
elliptischen Kurve über
einem endlichen Körper
GF(2n) der Charakteristik 2 nicht alle verwendeten
Speicherzellen optimal ausgenutzt werden. Es treten immer Speicherzellen
auf, welche nur teilweise mit Informationen über die Systemparameter belegt
sind. Dieses Problem tritt auch dann auf, wenn die verwendeten Größen der
Speichereinheiten keine Zweierpotenzen sind. Der Erweiterungsgrad
n des endlichen Körpers
muss prim sein und besitzt daher keine nichttrivialen Teiler.
-
Werden
nun Standardkomponenten zur Realisierung der flüchtigen und nichtflüchtigen
Speicher verwendet, so basieren diese Bausteine traditionell auf
Datengrößen, welche
an die Busbreiten von Computersystemen angepasst sind. Bei der Ablage von
beispielsweise Systemparametern haben Teile des auf diese Weise
realisierten Speichers keine Funktion und die für diesen zusätzlichen
Speicher benötigte
Chipfläche
ist verschwendet. Wird umgekehrt der Speicher an die exakte Länge der
zu speichernden Parameter angepasst, so sind dazu häufig Spezialentwicklungen
von Speichern notwendig und es können
keine verfügbaren
Standardkomponenten eingesetzt werden. Außerdem wächst bei vielen Implementierungen
die zur Realisierung der breiten Busse benötigte Chipfläche stark
an.
-
Dieses
Problem tritt insbesondere bei nichtflüchtigen Speichern basierend
auf EEPROM- oder Flash-Technologie auf. Aus technischen Gründen können die
einzelnen Bits eines solchen Speichers nicht direkt gelesen oder
geschrieben werden. Stattdessen wird der gesamte Speicher in kleinere
Bänke eingeteilt
und es ist immer nur möglich,
auf alle Bits einer Bank gleichzeitig zuzugreifen. Die Breite dieser Bänke ist üblicherweise
ebenfalls eine Zweierpotenz.
-
Die
vorliegende Erfindung schafft nun ein Verfahren zum Kodieren und
Dekodieren kryptographischer Parameter einer elliptischen Kurve über einem
endlichen Körper
der Charakteristik 2, so dass der zum Speichern der Parameter benötigte Speicherplatz
keine teilweise belegten Speicherzellen aufweist.
-
Seien
im Folgenden ein endlicher Körper GF(2n) mit primem Erweiterungsgrad n sowie die Breite
w der Speicherzellen (des flüchtigen
oder nichtflüchtigen)
Speichers gegeben. Sei d der ganzzahlige Anteil der Division von
n durch w und sei e der Rest der Division.
-
Dieser
Zusammenhang ist noch einmal anschaulich in 1a, b,
c dargestellt. 1a zeigt eine Bitfolge eines
Systemparameters mit n Bitelementen. Mit einer Breite w einer Speicherzelle
sind die einzelnen Speicherzellen jeweils nur dann vollständig mit
der Bitfolge belegbar, wenn die Division d = n/w restlos durchführbar ist.
-
Die 1b und 1c zeigen
die Belegung der Speicherzellen mit der Bitfolge des Systemparameters.
Hierbei sind d = n/w Speicherzellen vollständig belegt, während eine
Speicherzelle nur mit e = n modulo w Bitelementen belegt ist.
-
Demzufolge
werden um ein Element a des Körpers
GF(2n) im Speicher abzulegen mindestens
d + 1 Speicherzellen benötigt.
Von diesen Speicherzellen sind d Speicherzellen vollständig mit
Informationen belegt. Die verbleibende Speicherzelle enthält lediglich
e Bit an Information und ist daher nur zum Teil belegt.
-
Die
vorliegende Erfindung schafft nun ein Verfahren zur Kodierung und
Dekodierung der kryptographischen Systemparameter einer elliptischen Kurve,
so dass die zu speichernden Parameter, welche Elemente des endlichen
Körpers
GF(2n) sind, in d Speicherzellen gespeichert
werden können.
Das heißt,
zur Speicherung eines solchen Elements werden statt n Bits nur d·w = n-e
Bits benötigt.
-
Um
eine Darstellung der Parameter in n-e Bits zu erhalten, werden e
Bits der Repräsentation
eines Elements des endlichen Körpers
GF(2n) auf einen konstanten Wert gesetzt.
Diese Konstante ist implizit bekannt und muss daher nicht abgespeichert werden.
Der Algorithmus zur Implementierung des kryptographischen Verfahrens
liest zur Rekonstruktion des Systemparameters die in den d Speicherzellen
gespeicherten d·w
Bits aus und setzt nun implizit die verbleibenden e Bits auf ihre
konstanten Werte.
-
Die 2a, 2b und 2c zeigen
jeweils Beispiele für
ein konstantes Muster der Restbitfolge mit e Bitelementen. Die jeweils
ersten n-e Bitelemente in den Bitfolgen aus 2a, b,
c geben die Werte des entsprechenden Systemparameters an diesen
Stellen an. Die jeweils folgenden e Bitelemente zeigen die konstanten
Bitmuster. So weist 2a das Bitmuster (1, 1, 1, 1,
...) auf, 2b das Bitmuster (1, 0, 1, 0,
1, ...) und 2c das Bitmuster (1, 1, 0, 1,
1, 0, ...). Diese Bitmuster sind selbstverständlich nur beispielhafte Ausführungsformen.
Die Verwendung weiterer geeigneter konstanter Bitmuster, wie beispielsweise
(0, 0, 0, 0, 0, 0, ...), liegt im Ermessen des Fachmannes.
-
Auf
diese Weise wird zwar die Auswahl und Anzahl der zur Verfügung stehenden
Systemparameter eingeschränkt,
weil nicht bei allen möglichen
Systemparametern die e Bits den vorgegebenen konstanten Wert haben.
Wenn die Anzahl e der konstanten Bits nicht zu groß ist, ist
es aber in der Praxis relativ einfach, geeignete Systemparameter
einer kryptographisch starken elliptischen Kurve über dem
endlichen Körper
GF(2n) zu finden, so dass das Kriterium für diese
e Bits erfüllt
ist. Das heißt,
dass die Werte der e Bits den vorgegebenen Konstanten entsprechen.
-
Somit
werden erfindungsgemäß Systemparameter
elliptischer Kurven über
einem endlichen Körper
GF(2n) der Charakteristik 2 mit einem primen Erweiterungsgrad
n unter optimaler Ausnutzung eines Speichers mit einer Busbreite
w gespeichert, indem e Bits der Systemparameter auf einen konstanten
Wert gesetzt werden und daher implizit bekannt sind und nicht gespeichert
werden müssen.
Dabei ist e der Rest bei der Division von n durch w.
-
Kryptographische
Systeme auf Basis elliptischer Kurven, welche solche kompakt repräsentierten
Systemparameter besitzen, erreichen bei geeigneter Ermittlung der
Systemparameter das gleiche Sicherheitsniveau, das normal repräsentierte
elliptische Kurven haben.
-
Insbesondere
ist bei der beschriebenen Kodierung der Systemparameter die Rekonstruktion des
vollständigen
Elements des endlichen Körpers effizient
möglich.
-
Eine
Methode, um geeignete Systemparameter einer starken elliptischen
Kurve mit der oben beschriebenen kompakten Repräsentation in d Speicherzellen
zu finden, besteht darin, bei der Suche nach Systemparametern als
zusätzliches
Gütekriterium
zu berücksichtigen,
dass die ausgewählten
e Bits der Repräsentation
der Systemparameter ein vorgegebenes konstantes Muster besitzen.
-
In
einer anderen Variante kann eine bereits vorhandene elliptische
Kurve durch eine birationale Transformation der Kurvengleichung
oder durch Transformation des irreduziblen Polynoms, welches den
zu Grunde liegenden endlichen Körper
definiert, in die Form gebracht werden, so dass die ausgewählten e
Bits der Repräsentation
der Systemparameter ein vorgegebenes konstantes Muster besitzen.
-
Beispiele
für prime
Erweiterungsgrade n, welche für
das beschriebene Verfahren geeignet sind, sind 131, 163 und 257.
Wenn die verwendete Busbreite des Speichers einer der gebräuchlichen Werte
8 Bit, 16 Bit oder 32 Bit beträgt,
müssen bei diesen
Erweiterungsgraden lediglich 3, 3 oder 1 Bit auf einen konstanten
Wert, beispielsweise 0, gesetzt werden.