Traitement en cours

Veuillez attendre...

Paramétrages

Paramétrages

Aller à Demande

1. WO2007107450 - PROCEDE CRYPTOGRAPHIQUE À COURBES ELLIPTIQUES

Note: Texte fondé sur des processus automatiques de reconnaissance optique de caractères. Seule la version PDF a une valeur juridique

[ DE ]

Beschreibung

Kryptographisches Verfahren mit elliptischen Kurven

Die vorliegende Erfindung betrifft ein Verfahren zum Ermitteln von elliptischen Kurven, insbesondere von elliptischen Kurven welche für kryptographische Datenverarbeitung geeignet sind. Ferner betrifft die vorliegende Erfindung ein kryptographisches Verfahren und eine Vorrichtung, die auf den zu-vor ausgewählten elliptischen Kurven basieren.

Kryptographische Verfahren werden unter anderem zum Verschlüsseln von Botschaften, Signieren von Dokumenten und Authentifizieren von Personen oder Objekten verwendet. Hierfür eignen sich insbesondere so genannte asymmetrische Verschlüsselungsverfahren, die für einen Teilnehmer sowohl einen privaten und geheim gehaltenen Schlüssel als auch einen öffentlichen Schlüssel vorsehen.

Beim Verschlüsseln einer Botschaft besorgt sich der Absender den öffentlichen Schlüssel des gewünschten Adressaten und verschlüsselt damit die Botschaft. Nur der Adressat ist danach in der Lage, die Botschaft mit dem nur ihm bekannten privaten Schlüssel wieder zu entschlüsseln.

Beim Signieren eines Dokuments berechnet ein Unterzeichnender aus einem Dokument mit seinem privaten Schlüssel eine elektronische Unterschrift. Andere Personen können ohne weiteres die Unterschrift mit Hilfe des öffentlichen Schlüssels des Unterzeichnenden verifizieren. Es lassen sich jedoch nur Unterschriften mit dem öffentlichen Schlüssel verifizieren, die mit dem zugehörigen privaten Schlüssel signiert werden. Durch diese eindeutige Zuordnung und die Annahme, dass der private Schlüssel von dem Unterzeichnenden geheim gehalten wird, er-gibt sich eine eindeutige Zuordnung der Signatur zu dem Unterzeichnenden und dem Dokument.

Beim Authentisieren mittels eines Challenge-Response-(Anfrage-Antwort ) Protokolls übermittelt eine Prüfstelle eine Anfrage an eine Person und fordert diese auf, zu dieser Anfrage mit dem privaten Schlüssel der Person eine Antwort zu berechnen und rückzusenden. Eine positive Authentifizierung erfolgt in dem Fall, dass die Prüfstelle die zurückgesandte Antwort mit dem öffentlichen Schlüssel der zu prüfenden Person verifizieren kann.

Die asymmetrischen Kryptographieverfahren basieren, wie oben ausgeführt, auf einem privaten und einem öffentlichen Schlüssel. Dabei wird der öffentliche Schlüssel aus dem privaten Schlüssel mittels eines vorbestimmten Algorithmus generiert. Wesentlich für die kryptographischen Verfahren ist, dass eine Umkehrung, d. h. eine Bestimmung des privaten Schlüssels aus dem öffentlichen Schlüssel in endlicher Zeit mit den zur Verfügung stehenden Rechenkapazitäten nicht bewältigbar ist. Letzteres ist gewährt, wenn die Schlüssellänge des privaten Schlüssels eine Mindestlänge erreicht. Die Mindestlänge des Schlüssels ist von den verwendeten Algorithmen für die Verschlüsselung und der Bestimmung des öffentlichen Schlüssels abhängig.

Die Operationen mit den öffentlichen oder den privaten
Schlüsseln erfordern einen gewissen Rechenaufwand. Dieser ist abhängig von den verwendeten Algorithmen und auch von der Länge der verwendeten Schlüssel. Hierbei erweist es sich als vorteilhaft, Verschlüsselungsalgorithmen basierend auf elliptischen Kurven zu verwenden, da diese eine hohe Sicherheit bei kurzen Schlüssellängen gewähren. Bisher ist für Kryptographieverfahren basierend auf elliptischen Kurven im Gegensatz zu anderen Verfahren keine Bestimmung des privaten Schlüssels aus dem öffentlichen Schlüssel bekannt, deren Rechenaufwand langsamer als mit exponentiellen Anstieg mit zu-nehmender Schlüssellänge ansteigt. In anderen Worten der Sicherheitsgewinn pro zusätzliche Bitlänge des verwendeten Schlüssels ist höher als bei anderen Verfahren. Für prakti- sehe Anwendungen können daher deutlich kürzere Schlüssellängen verwendet werden.

Eine elliptische Kurve E ist allgemein durch eine Weierstraß-Gleichung definiert, welche sich als folgende kubische Gleichung schreibt:


Dabei sind die ai a∑ a3
aβ fest ausgewählte Elemente eines

Körpers K und die Paare (x, y) heißen Punkte der elliptischen Kurve E und erfüllen die Weierstraß-Gleichung. Für die kryp-tographischen Verfahren wird ein endlicher Körper K ausgewählt. Entsprechend ist auch die Anzahl der Punkte der ellip-tischen Kurve E endlich und wird nachfolgend als Ordnung ord(E) der Kurve E bezeichnet. Zusätzlich wird ein formaler Punkt im Unendlichen eingeführt.

Auf der Menge der Punkte der elliptischen Kurve kann eine abelsche Gruppenstruktur G definiert werden. Die Operation der abelschen Gruppenstruktur wird nachfolgend als Addition bezeichnet und additiv geschrieben. Die Addition zweier beliebiger Punkte der elliptischen Kurve ergibt eindeutig einen dritten Punkt dieser elliptischen Kurve. Ferner kann auf die-se Weise eine Skalarmultiplikation definiert werden, welche als mehrfache Addition eines Punktes mit sich selbst definiert ist. P sei ein Punkt der elliptischen Kurve E, s eine ganze Zahl und Q=sP das s-fache des Punktes P. Q ist ebenfalls ein Punkt der elliptischen Kurve. Die Bestimmung des Skalars s bei gegebenen Punkten P und Q wird als diskretes Logarithmus-Problem für elliptische Kurven bezeichnet. Bei einer geeigneten Wahl des Körpers K und der Parameter der elliptischen Kurve E ist es mit den heute zur Verfügung stehenden Rechnereinrichtungen unmöglich, das diskrete Logarithmus-Problem in vertretbarer Zeit zu lösen. Auf dieser Schwierigkeit beruht die Sicherheit von kryptographischen Verfahren mittels elliptischer Kurven.

Ein Kommunikationsteilnehmer wählt einen Skalar s als seinen privaten Schlüssel und hält diesen geheim. Ferner generiert er aus einem Startpunkt P den öffentlichen Schlüssel Q als das skalare Vielfache des Startpunktes. Hinsichtlich des Startpunktes P besteht Einigkeit zwischen den Kommunikationsteilnehmern. Eine Bestimmung des privaten Schlüssels s aus dem öffentlichen Schlüssel Q ist aufgrund des hohen rechnerischen Aufwandes des diskreten Logarithmus-Problems nicht möglich und gewährt somit die Sicherheit von kryptographischen Verfahren mit elliptischen Kurven. Eine weitere Forderung an die elliptischen Kurven ist, dass ihre Ordnung eine große Primzahl oder das Produkt einer großen Primzahl mit einer kleinen Zahl ist.

Die kryptographischen Verfahren stellen einen Kompromiss zwischen einer zu erwartenden Sicherheit und dem rechnerischen Aufwand beim Verschlüsseln von Daten dar. In der DE 101 61 138 Al ist gezeigt, dass eine Bestimmung des skalaren Vielfachen eines Punktes allein anhand der x-Koordinaten ohne Hin-zuziehen der y-Koordinaten möglich ist. Entsprechende Rechenvorschriften sind für beliebige Körper in der DE 101 61 138 Al beschrieben. Hierdurch lassen sich wesentlich effizientere Implementierungen der Punktarithmetik, z. B. einer Montgomery Leiter für die Skalarmultiplikation, eine geringere Anzahl an Körpermultiplikationen pro Punktaddition und eine geringere Anzahl von Registern für die Punktdarstellung und der Zwischenergebnisse erreichen. Allerdings wird bei diesem Verfahren nicht geprüft, ob ein Punkt wirklich Element der elliptischen Kurve ist.

Hieraus ergibt sich die Möglichkeit, einen Seitenkanalangriff durchzuführen. An eine Verschlüsselungseinrichtung kann dabei eine x-Koordinate eines Punktes übermittelt werden, wobei der Punkt nicht auf der elliptischen Kurve liegt. Hierzu wird in der DE 10161138 Al beschrieben, dass hierdurch eine teilweise Rekonstruktion des privaten Schlüssels der Verschlüsselungseinrichtung möglich ist. Die DE 10161138 Al verwendet zum Verhindern eines solchen Seitenkanalangriffs speziell ausge- wählte elliptische Kurven. Als Kriterium dienen hierbei die zu den elliptischen Kurven zugehörigen getwisteten elliptischen Kurven. Die zugehörige getwistete elliptische Kurve ist wie folgt definiert:

y2 + vaixy + a3y = x3 + va2X2 + v2a4xv3aε,

wobei die Parameter ai, a2, a3, a4, a6 die Parameter der elliptischen Kurven sind. Die Parameter v sind alle Nicht-Quadrate des Körpers K, falls die Charakteristik des Körpers K ungerade ist oder ein Element des Körpers K mit Spur 1. Alle diese getwisteten elliptischen Kurven sollen nach der DE 10161138 Al ebenfalls eine Ordnung haben, die eine große Primzahl oder das Produkt einer großen Primzahl mit einer kleinen Zahl ist.

Die Autoren Daniel R. L. Brown und Robert P. Gallant beschreiben in ihrem Artikel "The Static Diffie-Hellman Problem" eine weitere Möglichkeit für einen Seitenkanalangriff, um einen privaten Schlüssel vollständig oder teilweise auszuspähen .

Vor diesem Hintergrund liegt der Erfindung die Aufgabe zugrunde, ein Verfahren bereitzustellen, welches elliptische Kurven auswählt, die bei Seitenkanalangriffen keinen Rück-schluss auf den privaten Schlüssel ermöglichen.

Erfindungsgemäß wird diese Aufgabe durch das Verfahren mit den Merkmalen des Patentanspruchs 1 gelöst. Ein Verfahren zur kryptographischen Verarbeitung von Daten mit den Merkmalen des Patentanspruchs 4 und eine Vorrichtung zur Identitätsbestätigung einer Person oder eines Objekts mit den Merkmalen des Patentanspruchs 6 verhindern ebenfalls eine Bestimmung des privaten Schlüssels oder eine Teilbestimmung des privaten Schlüssels durch Seitenkanalangriffe .

Demgemäß ist vorgesehen:

Verfahren zum Ermitteln einer elliptischen Kurve, die für kryptographische Verfahren geeignet ist, mit den folgenden Schritten :

(a) Bereitstellen einer zu testenden elliptischen Kurve;

(b) Bestimmen der Ordnung einer getwisteten elliptischen Kurve, die der zu testenden elliptischen Kurve zugeordnet ist;

(c) automatisches Prüfen, ob die Ordnung der getwisteten elliptischen Kurve eine starke Primzahl ist; und

(d) Auswählen der zu testenden elliptischen Kurve als eine elliptische Kurve, die für kryptographische Verfahren geeignet ist, wenn die Ordnung der getwisteten elliptischen Kurve eine starke Primzahl ist.

Verfahren zum kryptographischen Verarbeiten von Daten mit den folgenden Schritten:
Bereitstellen einer elliptischen Kurve, die mit einem der Verfahren nach den Ansprüchen 1 bis 3 ermittelt wird;
Bereitstellen nur einer x-Koordinate eines Punktes;
Bereitstellen eines privaten Schlüssels;
automatisches Anwenden eines kryptographischen Verschlüsselungsverfahrens auf die x-Koordinate unter Verwendung der bereitgestellten elliptischen Kurve und des privaten Schlüssels zum Bestimmen einer verschlüsselten x-Koordinate; und Ausgeben eines Wertes basierend auf der verschlüsselten x-Koordinate.

Vorrichtung zur Identitätsbestätigung einer Person oder eines Objekts mit
einer Empfangseinrichtung, die zum Empfangen einer Koor- dinate dient,
einer Speichereinrichtung, die einen privaten Schlüssel der Person oder des Objekts vorhält, einer Verarbeitungseinrichtung, die zum Verarbeiten der empfangenen Koordinate mit dem privaten Schlüssel dient, wobei das Verarbeiten auf einer elliptischen Kurve basiert, welche nach einem der Verfahren 1 bis 3 ausge- wählt ist, und
einer Ausgabeeinrichtung, die zum Ausgeben der verarbeiteten Koordinate eingerichtet ist.

Die der vorliegenden Erfindung zugrunde liegende Idee besteht darin, eine elliptische Kurve nur dann für kryptographische

Verfahren zu verwenden, wenn die zu dieser elliptischen Kurve getwisteten elliptischen Kurven eine Ordnung aufweisen, die eine starke Primzahl ist. Eine starke Primzahl P ist durch nachfolgende Gleichung beschrieben:

P = I + r-q,

wobei r eine kleine Zahl, typischerweise im Bereich bis zu 255, und q eine große Primzahl ist. Idealerweise ist die starke Primzahl eine so genannte Sophie-Germain-Primzahl, d.h. r ist 2. Die elliptischen Kurven und die zugehörigen getwisteten elliptischen Kurven entsprechen den zuvor angegebenen Definitionen. Die vorliegende Erfindung verhindert Sei-tenkanalangriffe, die auf fehlerhaft übermittelten x-Koordinaten oder böswillig falsch übermittelten x-Koordinaten basieren, wobei diese x-Koordinaten keinem Punkt der ausgewählten elliptischen Kurve entsprechen. Das erfindungsgemäße Verfahren ist dahingehend robust, dass auch bei solchen x-Koordinaten keine Ausspähung oder teilweise Bestimmung des privaten Schlüssels durch eine externe Einrichtung möglich ist.

Vorteilhafte Weiterbildungen und Ausgestaltungen sind Gegenstand der weiteren Unteransprüche oder ergeben sich aus der Beschreibung in Zusammenschau mit der Zeichnung.

Gemäß einer Ausgestaltung wird die Ordnung der getwisteten elliptischen Kurve durch Zählen einer Anzahl von Punkten be- stimmt, die auf der getwisteten elliptischen Kurve liegen. Alternativ kann die Ordnung der getwisteten elliptischen Kurve auch basierend auf einer Bestimmung der Ordnung der elliptischen Kurve und der Charakteristik des Körpers erfolgen. Hierzu können eindeutige mathematische Relationen zwischen den unterschiedlichen Ordnungen herangezogen werden. Das Zählen der Punkte erfolgt mit dem Fachmann allgemein bekannten Verfahren .

In einer Ausgestaltung wird automatisch geprüft, ob die Ordnung der zu testenden elliptischen Kurve eine starke Primzahl ist, und die zu testende elliptische Kurve wird nur dann für kryptographische Verfahren ausgewählt, wenn die Ordnung der zu testenden elliptischen Kurve eine starke Primzahl ist.

Die vorliegende Erfindung wird nachfolgend anhand der in den schematischen Figuren der Zeichnung angegebenen Ausführungsbeispiele erläutert. Dabei zeigen

Fig. 1 ein Flussdiagramm einer Ausführungsform des erfindungsgemäßen Verfahrens;

Fig. 2 ein Blockdiagramm einer Ausführungsform der erfindungsgemäßen Vorrichtung; und

Fig. 3 ein Flussdiagramm einer Ausführungsform des erfindungsgemäßen Verfahrens, das durch die Vorrichtungen aus Fig. 2 ausgeführt wird.

In Fig. 1 ist ein Flussdiagramm zur Illustration einer Ausführungsform des erfindungsgemäßen Verfahrens dargestellt. In einem ersten Schritt wird ein Pool mit elliptischen Kurven E bereitgestellt (Sl) . Die elliptischen Kurven E werden über einem endlichen Körper K definiert. Somit enthält die Kurve E eine endliche Anzahl an Punkten P. Die elliptische Kurve ist, wie bereits beschrieben, durch die Weierstraß-Gleichung und die Parameter ai, a2, a3, a4, a6 festgelegt. Durch entsprechende Einschränkungen oder Änderungen der Parametrisierung können einzelne Parameter null sein. Die Parameter sind so ausgewählt, dass die elliptischen Kurven nicht singulär sind.

Nachfolgend wird die Ordnung der elliptischen Kurve bestimmt (S2) . Unter der Ordnung der elliptischen Kurve wird die Anzahl der Punkte über einem Körper K verstanden, die die Wei-erstraß-Gleichung erfüllen. In einer geometrischen Deutung sind dies alle Punkte P, die auf der elliptischen Kurve E liegen .

Die Ordnung der elliptischen Kurve, abgekürzt ord(E), soll eine Primzahl sein. Ergibt eine Überprüfung, dass diese keine Primzahl ist, wird eine andere Kurve E aus dem Pool ausgewählt (S8) . Wird die Ordnung der elliptischen Kurve E als Primzahl bestätigt, erfolgt eine Prüfung, ob die Ordnung der elliptischen Kurve eine starke Primzahl ist (S3) . Die Definition einer starken Primzahl ist oben angegeben.

In einem nächsten Schritt werden die zu der elliptischen Kur-ve E getwisteten elliptischen Kurven E übergeprüft (S4) . Die Definition für die getwisteten Kurven E' ist bereits oben angegeben. Die Überprüfung erfolgt für sämtliche getwistete Kurven E', d.h. für alle möglichen Parameter v, die entsprechend kein Quadrat oder ein Element mit Spur 1 sind. Im Ein-zelnen wird die Ordnung der getwisteten Kurve E' bestimmt

(S5) . Die Ordnung der getwisteten Kurve E' soll ebenfalls wie die elliptische Kurve eine Primzahl sein. Falls dies nicht erfüllt ist, wird eine andere elliptische Kurve E ausgewählt.

Zusätzlich wird geprüft, ob die Ordnung der elliptischen Kurve E' eine starke Primzahl ist (E6) .

Sind alle vier Bedingungen der Schritte S2, S3, S5 und S6 erfüllt, wird die elliptische Kurve E für ein kryptographisches Verfahren ausgewählt.

Die Ordnung einer elliptischen Kurve kann anhand eines bekannten Abzählverfahrens bestimmt werden. Alternativ ist es möglich, die Ordnung über die Beziehung

ord(E) + ord(E') = 2-|κ| + 2

zu bestimmen, wobei κ| die Charakteristik des Körpers K ist.

In Fig. 2 ist ein Blockdiagramm eines Testobjekts A und einer Prüfeinrichtung B dargestellt. Das Testobjekt kann z.B. eine Smart-Card oder ein RFID-Chip sein. Die Prüfeinrichtung B ist die entsprechende Leseeinrichtung. Das Testobjekt A weist eine Speichereinrichtung 1 auf, in der ein privater Schlüssel KP vorgehalten wird. Dieser private Schlüssel KP wird geheim gehalten und ist in keiner Weise durch eine externe Einrichtung auslesbar. In einer weiteren Speichereinrichtung 2 werden die zur Parametrisierung einer elliptischen Kurve E benötigten Parameter gespeichert . Eine Datenverarbeitungseinrichtung 3 führt einen Verschlüsselungsalgorithmus basierend auf dem privaten Schlüssel und einer elliptischen Kurve aus, die durch die Parameter festgelegt wird, welche in der Speichereinrichtung 2 abgelegt sind. Die Parameter bzw. die elliptische Kurve sind anhand des erfindungsgemäßen Verfahrens, z.B. durch das in Fig. 1 gezeigte Ausführungsbeispiel be-stimmt. Ferner weist das Testobjekt eine Empfangseinrichtung 4 auf, welche eine x-Koordinate eines Punktes empfangen kann. Diese x-Koordinate wird der Datenverarbeitungseinrichtung 3 zugeführt, welche darauf das zuvor festgelegte Verfahren ausführt. Besonders an diesem Verfahren ist, dass dieses nur auf die x-Koordinate angewandt wird und auch nur die x-Koordinate eines Punktes benötigt. Die verarbeitete oder verschlüsselte x-Koordinate wird durch eine Sendeeinrichtung 5 ausgegeben. Das Testobjekt A prüft nicht, ob die übermittelte x-Koordinate eine gültige x-Koordinate sein kann. Das Testob-jekt A prüft nicht, ob diese x-Koordinate einem Punkt P der elliptischen Kurve zugeordnet ist. Die ausgewählten elliptischen Kurven, welche in der Speichereinrichtung 2 hinterlegt sind, stellen jedoch sicher, dass durch eine solche x- Koordinate kein Ausspähen oder teilweises Ausspähen des privaten Schlüssels möglich ist.

Die Prüfeinrichtung B weist einen Zufallsgenerator 10 auf, der einen beliebigen Punkt PO aus der elliptischen Kurve auswählt. Dieser wird mittels einer Sendeeinrichtung 11 an das Testobjekt A übermittelt. Ferner weist die Prüfeinrichtung B eine Empfangseinrichtung zum Empfangen der verarbeiteten x-Koordinate Q(x) auf. Eine Datenverarbeitungseinrichtung 13 prüft die verarbeitete x-Koordinate anhand eines öffentlichen Schlüssels des Testobjekts A. Der öffentliche Schlüssel kann entweder in der Prüfeinrichtung B hinterlegt sein oder von einer externen Quelle bezogen werden. Entspricht der entschlüsselte Wert der zuvor zufällig generierten x-Koordinate, wird an einer Schnittstelle 14 ausgegeben, dass die Identität des Testobjekts A bestätigt ist.

In Fig. 3 ist hierzu in einem Flussdiagramm noch einmal schematisch der Ablauf einer Identifikation eines Testobjektes A dargestellt. In einem ersten Schritt SlO generiert ein Zufallsgenerator einen Punkt PO auf der elliptischen Kurve E und übermittelt dessen x-Koordinate als Anfrage an das Testobjekt A. Dieses berechnet aus der x-Koordinate mit seinem privaten Schlüssel KP eine Antwort (Sil) . Nachfolgend über-mittelt das Testobjekt die Antwort Q (x) und gegebenenfalls auch seinen öffentlichen Schlüssel KO. Die Antwort wird durch die Prüfstelle B mittels des öffentlichen Schlüssels KO geprüft (S12) . Bei einer Bestätigung der Antwort wird ein Signal ausgegeben, dass die Person A authentifiziert oder iden-tifiziert ist (S13, S14) .

Nachfolgend sei beispielhaft eine geeignete elliptische Kurve angegeben. Der verwendete endliche Körper K habe die Form Z/pZ, und die Gleichung der elliptischen Kurve E sei durch y2 = x3 + ax + b gegeben. Die entsprechenden Parameter der elliptischen Kurve E sind:

p = 517847993827160675843549642866661055787617496734405781471 a = 38341706974568098172697905376562415410863420236739650958 b = 395393382584534989047698356330422317897630021672687214876

Die Ordnung der elliptischen Kurve ord(E) =
517847993827160675843549642866661055787617496734522943517 und die zur elliptischen Kurve E getwistete elliptische Kurve E' hat ebenfalls eine prime Ordnung ord(E') =
517847993827160675843549642866661055787617496734288619427. Der Basispunkt P = (x,y) ist durch die Koordinaten

x = 81094469663915015430255024705469171085831504304496796756 y = 482060190644397986573077501327725919378173632606557848976

gegeben, liegt auf der elliptischen Kurve E und erzeugt in diesem Fall sogar eine vollständige Punktgruppe. D.h., jeder Punkt der elliptischen Kurve E lässt sich als ein skalares Vielfaches des Basispunktes P darstellen. Ferner haben die Ordnungen der Kurven E und der getwisteten Kurven E' folgenden Wert :

Ord(E) = 1 + 4 • 129461998456790168960887410716665263946904

374183630735879
Ord(E') = 1 + 2 • 258923996913580337921774821433330527893808

748367144309713

Damit sind alle geforderten Eigenschaften für die elliptische Kurve für ein kryptographisches Verfahren erfüllt.