DE10161138B4 - Verfahren und Vorrichtung zum Ermitteln einer elliptischen Kurve, Verfahren und Vorrichtung zum Multiplizieren eines Punktes mit einem Skalar - Google Patents

Verfahren und Vorrichtung zum Ermitteln einer elliptischen Kurve, Verfahren und Vorrichtung zum Multiplizieren eines Punktes mit einem Skalar Download PDF

Info

Publication number
DE10161138B4
DE10161138B4 DE2001161138 DE10161138A DE10161138B4 DE 10161138 B4 DE10161138 B4 DE 10161138B4 DE 2001161138 DE2001161138 DE 2001161138 DE 10161138 A DE10161138 A DE 10161138A DE 10161138 B4 DE10161138 B4 DE 10161138B4
Authority
DE
Germany
Prior art keywords
elliptic curve
coordinate
point
tested
curve
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE2001161138
Other languages
English (en)
Other versions
DE10161138A1 (de
Inventor
Erwin Dr. Hess
Bernd Dr. Meyer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE2001161138 priority Critical patent/DE10161138B4/de
Publication of DE10161138A1 publication Critical patent/DE10161138A1/de
Application granted granted Critical
Publication of DE10161138B4 publication Critical patent/DE10161138B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves

Abstract

Verfahren zum rechnergestützten Ermitteln einer elliptischen Kurve,
• bei dem eine zu testende elliptische Kurve bereitgestellt wird,
• bei dem eine zu der zu testenden elliptischen Kurve getwistete zu testende elliptische Kurve gebildet wird,
• bei dem für die getwistete zu testende elliptische Kurve geprüft wird, ob für die getwistete zu testende elliptische Kurve ein vorgegebenes kryptographisches Gütekriterium erfüllt ist, und
• bei dem die zu testende elliptische Kurve dann als elliptische Kurve ausgewählt wird, wenn das kryptographische Gütekriterium für die getwistete zu testende elliptische Kurve erfüllt ist.

Description

  • Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum Ermitteln einer elliptischen Kurve sowie ein Verfahren und eine Vorrichtung zum Multiplizieren eines Punktes mit einem Skalar.
  • Kryptographische Verfahren auf Basis elliptischer Kurven, welche über endlichen Körpern definiert sind, werden immer häufiger im Rahmen sogenannter Public-Key-Verfahren (asymmetrischer Krypto-Verfahren) eingesetzt, d.h. im Rahmen kryptographischer Verfahren, welche zwei unterschiedliche Schlüssel, einen geheimen kryptographischen Schlüssel sowie einen öffentlichen nicht-geheimen Schlüssel verwenden.
  • Die Krypto-Verfahren auf Basis elliptischer Kurven sind sehr effizient, was insbesondere daran liegt, dass bei elliptischen Kurven im Gegensatz zu früheren Public-Key-Verfahren keine Angriffsmethoden mit subexponentieller Laufzeit bekannt sind.
  • Anders ausgedrückt bedeutet dies, dass der Sicherheitsgewinn pro Bit der verwendeten Sicherheitsparameter bei Verfahren auf Basis elliptischer Kurven höher ist und somit für praktische Anwendungen deutlich kürzere Schlüssellängen verwendet werden können.
  • Somit sind die kryptographischen Verfahren auf Basis elliptischer Kurven performanter und benötigen eine geringere Bandbreite zur Übertragung der Systemparameter als andere Public-Key-Verfahren bei vergleichbarem Grad an erreichbarer kryptographischer Sicherheit.
  • Eine elliptische Kurve E wird allgemein durch eine kubische Gleichung der folgenden Form beschrieben: y2 + a1·x·y + a3·y = x3 + a2·x2 + a4·x + a6, (1)wobei a1, a2, a3, a4, a6 fixe Elemente eines endlichen Körpers K sind, welche die elliptische Kurve E parametrisieren.
  • In diesem Zusammenhang ist anzumerken, dass in Abhängigkeit von der Charakteristik des Körpers K die Kurvengleichung der elliptischen Kurve E auf einfachere Kurvengleichungen transformiert werden kann.
  • Die Menge aller Paare (x, y) aus K2 welche die gegebene Kurvengleichung der elliptischen Kurve E erfüllen, werden im Weiteren als die Punkte P der elliptischen Kurve E bezeichnet. Auf der Menge der Punkte P einer elliptischen Kurve E kann eine abelsche Gruppenstruktur G definiert werden. Die Gruppenstruktur G induziert eine Skalarmultiplikation Z·G → G von Kurvenpunkten mit ganzen Zahlen, 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 = s·P das s-fache des Punktes P. Sind die Punkte P und Q gegeben, so bezeichnet man die Berechnung eines geeigneten Skalar s mit Q = s·P als das diskrete Logarithmus-Problem für elliptische Kurven. Bei geeigneter Wahl des endlichen Körpers K und der Parameter der elliptischen Kurve E ist es mit derzeitigen algorithmischen Mitteln nicht in akzeptabler Zeit möglich, das diskrete Logarithmusproblem zu lösen.
  • Wie oben erläutert wurde, ist ein Punkt P einer elliptischen Kurve E durch seine x-Koordinate und seine y-Koordinate gegeben. Aufgrund der Kurvengleichung der elliptischen Kurve E existieren zu einem x-Wert höchstens zwei unterschiedliche y-Werte y1 und y2, so dass die Punkte (x, y1) und (x, y2) Punkte auf der elliptischen Kurve E sind. Um somit einen Punkt auf der elliptischen Kurve E eindeutig festzulegen, ist außer der x-Koordinate nur noch ein Bit an zusätzlicher Information erforderlich.
  • In dem Fall einer elliptischen Kurve E über endlichen Primkörpern genügt beispielsweise das sogenannte Least Significant Bit (LSB) der y-Koordinate oder das Vorzeichen der y-Koordinate des jeweiligen Punktes als zusätzliche Information.
  • Um Kurvenpunkte, d.h. Punkte auf der elliptischen Kurve E kompakter zu speichern und effizienter übertragen zu können, ist es bekannt, sogenannte Punktkompressionsverfahren und Punktdekompressionsverfahren einzusetzen, bei denen die Y-Koordinate auf dieses zusätzliche Bit reduziert wird bzw. von dem reduzierten Bitwert der tatsächliche Wert der y-Koordinate des Punktes auf der elliptischen Kurve rekonstruiert wird.
  • Die bekannten kryptographischen Verfahren auf Basis elliptischer Kurven sind jedoch hinsichtlich sogenannter Seitenkanalangriffe verletzbar, wie z.B. der sog. Simple-Power-Analyse (vgl. [1]), der sogenannten Differential-Power-Analyse (vgl. [2]), der sogenannten Differential-Fault-Analyse (vgl. [3], [4]) sowie den sogenannten Timing-Angriffen (vgl. [5]).
  • Es ist erkannt worden, dass die konkrete Implementierungsweise von Krypto-Verfahren, welche auf elliptischen Kurven basieren, für den schlussendlich resultierenden Grad an erreichbarer Sicherheit der jeweiligen Applikationen von erheblicher Bedeutung ist (vgl. [6]).
  • Wie in [3] und in [4] beschrieben ist, wird bei der Differential-Fault-Analyse versucht, mittels Induzierens von Berechnungsfehlern oder mittels Stören der Eingangsdaten fehlerhafte Berechnungsergebnisse der kryptographischen Protokolle zu verursachen, um dann letztlich aus den fehlerhaften Ergebnissen auf geheime Parameter wie beispielsweise den verwendeten geheimen Schlüssel, d.h. den Private-Key, Rückschlüsse ziehen zu können, im günstigsten Fall diesen sogar vollständig zu ermitteln. Dabei versucht der Angreifer entweder, die von der Anwendung verwendete Punktgruppe der elliptischen Kurve zu verändern oder die Gruppenstruktur G vollständig zu zerstören. Diese Situation tritt hauptsächlich in den beiden folgenden Fällen auf:
    • • Punkte der elliptischen Kurve werden als Protokoll-Parameter von nicht vertrauenswürdigen Protokollpartnern übergeben, oder
    • • Punkte der elliptischen Kurve sind Ereignisse von möglicherweise gestörten Berechnungen der eigenen Anwendung.
  • Zur Abwehr der oben beschriebenen Seitenkanalangriffe ist es ferner bekannt, dass gegebene oder berechnete Punkte der elliptischen Kurve auf deren Korrektheit hin überprüft werden. Sind Punkte der elliptischen Kurve durch die jeweilige x-Koordinate und die y-Koordinate vollständig gegeben, so kann getestet werden, ob die Punkte 1. die Kurvengleichung der elliptischen Kurve E erfüllen, und 2. in der korrekten Untergruppe der elliptischen Kurve liegen, d.h., dass sie nicht in einer Untergruppe kleiner Ordnung enthalten sind.
  • Eine solche Überprüfung ist jedoch bei Punkten, welche gemäß einem Punktkompressionsverfahren bzw. einem Punktdekompressionsverfahren in komprimierter Form vorliegen, nicht unmittelbar durchführbar.
  • Ist zumindest einer der Koordinatenwerte des Punktes auf der elliptischen Kurve komprimiert, so ist zunächst aus der nicht-komprimierten, vorzugsweise der x-Koordinate und der jeweiligen Zusatzinformation die vollständige Koordinate des komprimierten Wertes, üblicher Weise die vollständige y-Koordinate zu errechnen. Diese Berechnung benötigt jedoch einen erheblichen zusätzlichen Rechenaufwand, da in diesem Zusammenhang eine quadratische Gleichung über einem endlichen Körper gelöst werden muss.
  • Ferner ist in [6] beschrieben, dass zur Abwehr eines auf einer Power-Analyse basierenden Seitenkanalangriffs die projektive Koordinatendarstellung einer elliptischen Kurve randomisiert wird.
  • Weiterhin ist in [7] ein Verfahren zur Transformation einer elliptischen Kurve beschrieben, welche über einem endlichen Körper der Charakteristik 2 definiert sind, wobei das Verfahren für diese spezielle elliptische Kurve es ermöglicht, ein skalares Vielfaches eines Punktes der jeweiligen elliptischen Kurve unter Verwendung der x-Koordinate zu berechnen.
  • Bei dieser Vorgehensweise, welche auch in [8] beschrieben ist, ist jedoch ein durchgängiger Verzicht auf die y-Koordinate nicht möglich. Bei diesem Verfahren muss nämlich die y-Koordinate eines Vielfachen des Basispunktes auf der elliptischen Kurve berechnet werden und nur der letzte Verifikationsschritt kommt ohne die jeweilige y-Koordinate aus.
  • Außerdem müssen bei diesen in [7] und in [8] beschriebenen Verfahren mehrere modulare Divisionen in Z/pZ durchgeführt werden.
  • Weiterhin ist in [9] ein Verfahren zum Erzeugen und zum Verifizieren von elektronischen Unterschriften auf Basis von diskreten Logarithmen in der Punktegruppe von elliptischen Kurven, welche über endlichen Körpern definiert sind, ohne Verwendung von y-Koordinaten ebenfalls für die in [7] beschriebenen Montgomery-Kurven, beschrieben.
  • Im Rahmen des Verifikationsverfahrens gemäß [9] werden quadratische Polgnome verwendet. Als Beispiele sind Signaturen nach ElGamal EC-DSA angegeben. Es ist anzumerken, dass in [9] Additionsformeln und Polgnome nur für die Montgomery-Kurven, wie sie in [7] beschrieben sind, zur Verifikation von digitalen Signaturen angegeben sind.
  • In [10] sind allgemeine Additionsformeln für elliptische Kurven über endlichen Körpern der Charakteristik größer als 3 angegeben, wobei diese aus der Exponentiationsmethode von Montgomery, wie sie in [7] beschrieben ist, abgeleitet wurden.
  • Das Dokument Müller, V. und Paulus, S.: "On the Generation of Cryptographically Strong Elliptic Curves" in: Internet: http//www.informatik.th-darmstadt.de/TI, November 1997, Seiten 1-11 offenbart ein Verfahren, bei dem eine elliptische Kurve gesucht wird, die ein bestimmtes Gütekriterium erfüllt. Wird eine bereitgestellte elliptische Kurve getestet und festgestellt, dass sie das Gütekriterium nicht erfüllt, so wird zu der elliptischen Kurve die getwistete elliptische Kurve bestimmt und überprüft, ob diese das Gütekriterium erfüllt. Erfüllt die getwistete elliptische Kurve das Gütekriterium, so wird die getwistete elliptische Kurve als die gesuchte elliptische Kurve verwendet. Die Überprüfung der getwisteten elliptischen Kurve nach Überprüfung der elliptischen Kurve hat den Vorteil, dass dies einfach durchzuführen ist, wenn die elliptische Kurve bereits überprüft wurde. Somit wird in dem offenbarten Verfahren die getwistete elliptische Kurve nur in dem Fall getestet, wenn schon feststeht, dass die elliptische Kurve selbst nicht geeignet ist und weiter nach einer geeigneten elliptischen Kurve gesucht werden soll.
  • Der Erfindung liegt das Problem zugrunde, elliptische Kurven zu ermitteln und diese im Rahmen kryptographischer Verfahren einzusetzen, welche gegenüber den bisherigen elliptischen Kurven eine erhöhte kryptographische Sicherheit aufweisen.
  • Das Problem wird durch das Verfahren und durch die Vorrichtung zum Ermitteln einer elliptischen Kurve sowie durch das Verfahren und die Vorrichtung zum Multiplizieren eines Punktes mit einem Skalar mit den Merkmalen gemäß den unabhängigen Patentansprüchen gelöst.
  • Bei einem Verfahren zum rechnergestützten Ermitteln einer elliptischen Kurve wird eine zu testende elliptische Kurve bereitgestellt, und eine zu der zu testenden elliptischen Kurve getwistete zu testende elliptische Kurve wird gebildet. Bei der getwisteten zu testenden elliptischen Kurve wird geprüft, ob für diese ein vorgegebenes kryptographisches Gütekriterium erfüllt ist und die zu testende elliptische Kurve wird dann als im Weiteren zu verwendende elliptische Kurve ausgewählt, wenn das kryptographische Gütekriterium für die getwistete zu testende elliptische Kurve erfüllt ist. Sonst wird die zu testende elliptische Kurve verworfen.
  • Eine Vorrichtung zum rechnergestützten Ermitteln einer elliptischen Kurve weist eine Prozessoreinheit auf, die derart eingerichtet ist, dass die oben beschriebenen Verfahrensschritte durchführbar sind.
  • Weiterhin ist ein computerlesbares Speichermedium vorgesehen, in welchem ein Computerprogramm gespeichert ist, welches bei Ausführung durch einen Prozessor die oben beschriebenen Verfahrensschritte aufweist. Ein Computerprogrammelement weist bei dessen Ausführung durch einen Prozessor die oben beschriebenen Verfahrensschritte auf.
  • Die Erfindung weist insbesondere die Vorteile auf, dass die kryptographischen Verfahren auf Basis elliptischer Kurven, welche gemäß dem oben beschriebenen Verfahren ermittelt worden sind, immun gegen die Differential-Fault-Analyse und Angriffe mittels Punkten kleiner Ordnung sind.
  • Anders ausgedrückt weist die ermittelte elliptische Kurve einen höheren Grad an kryptographischer Sicherheit auf als die elliptischen Kurven, welche gemäß dem Stand der Technik ermittelt werden.
  • Weiterhin kann ein auf einer auf die oben beschriebene Weise ermittelten elliptischen Kurve basierendes Verfahren zur Skalar-Multiplikation sehr einfach gegen die Simple-Power-Analyse, die Differential-Power-Analyse und Timing-Angriffe geschützt werden. Ein solches Verfahren ist in der in [6] beschriebenen Weise entsprechend anzupassen.
  • Weiterhin führen fehlerhafte übergebene Punkte oder gestörte Berechnungsergebnisse bei kryptographischen Verfahren auf Basis einer erfindungsgemäß ermittelten elliptischen Kurve nicht zu der Preisgabe geheimer Informationen. Der gestörte Punkt liegt entweder auf einer Kurve, die isomorph zu der gewünschten elliptischen Kurve oder isomorph zu der getwisteten elliptischen Kurve ist.
  • Insbesondere kann aus diesem Grund auf Tests, ob ein Punkt auf einer gegebenen elliptischen Kurve liegt, verzichtet werden, da es aus sicherheitstechnischer Sicht unerheblich ist, ob der Punkt auf der gewünschten elliptischen Kurve liegt oder auf der getwisteten elliptischen Kurve.
  • Ferner können erfindungsgemäß bei kryptographischen Verfahren auf Basis der erfindungsgemäß ermittelten elliptischen Kurven Protokolle realisiert werden, bei denen vollständig auf die Verwendung von y-Koordinaten der jeweiligen Punkte verzichtet wird.
  • Insbesondere kann somit die Skalar-Multiplikation eines Punktes mit einem Skalar, wobei der Punkt auf einer gemäß dem oben beschriebenen Verfahren ermittelten elliptischen Kurve liegt unter Verwendung nur einer Koordinate, vorzugsweise der x-Koordinate des Punktes auf der elliptischen Kurve, erfolgen.
  • Somit können insbesondere rechenaufwendige Implementierungen von Algorithmen zur Punktkompression und Punktdekompression vermieden werden. Es müssen auch keine y-Koordinaten von Punkten auf der elliptischen Kurve mehr übertragen oder gespeichert werden, was insbesondere für den Einsatz der erfindungsgemäß ermittelten elliptischen Kurve und der darauf basierenden kryptographischen Verfahren für Chipkartenanwendungen vorteilhaft ist.
  • Bevorzugte Weiterbildungen der Erfindung ergeben sich aus den abhängigen Ansprüchen. Die Ausgestaltungen der Erfindung betreffen sowohl das Verfahren, die Vorrichtung, das computerlesbare Speichermedium oder das Computerprogrammelement.
  • Für die zu testende elliptische Kurve kann zusätzlich ebenfalls überprüft werden, ob auch sie das vorgegebene kryptographische Gütekriterium erfüllt. Die zu testende elliptische Kurve wird dann als elliptische Kurve ausgewählt, wenn das kryptographische Gütekriterium sowohl für die getwistete zu testende elliptische Kurve als auch für die zu testende elliptische Kurve selbst erfüllt ist.
  • Durch diese Weiterbildung wird der Grad an erreichbarer kryptographischer Sicherheit weiter erhöht.
  • Als das kryptographische Gütekriterium kann die Anzahl der auf der getwisteten zu testenden elliptischen Kurve liegenden Punkte bzw. die Anzahl der auf der zu testenden elliptischen Kurve liegenden Punkte verwendet werden. In diesem Fall ist das kryptographische Gütekriterium dann erfüllt, wenn die Anzahl der auf der getwisteten zu testenden elliptischen Kurve bzw. die Anzahl der auf der zu testenden elliptischen Kurve liegenden Punkte ungleich der Anzahl der Körperelemente des Körpers ist, über dem die getwistete zu testende elliptische Kurve bzw. die zu testende elliptische Kurve definiert ist.
  • Als das kryptographische Gütekriterium kann das an sich bekannte Frey-Rück-Kriterium und/oder das Menezes-Okamoto-Vanstone-Kriterium verwendet werden.
  • Anschaulich werden erfindungsgemäß die elliptischen Kurven für eine darauf basierende kryptographische Anwendung verwendet,
    • • bei der für die elliptische Kurve selbst als auch für deren getwistete elliptische Kurve die Punktezahlen ord(E) der zu testenden elliptischen Kurve und die Punktezahlen ord(E') der getwisteten elliptischen Kurve E' jeweils einen großen Primteiler aufweisen, d.h. einen Primteiler, der größer ist als ein vorgegebener Schwellenwert,
    • • wobei beide elliptische Kurven, d.h. die zu testende elliptische Kurve und deren getwistete zu testende elliptische Kurve weder supersingulär noch anomal sind, und
    • • wobei beide Punktezahlen dem Frey-Rück-Kriterium und dem Menezes-Okamoto-Vanstone-Kriterium genügen.
  • Vorzugsweise wird unter Verwendung der ermittelten elliptischen Kurve ein kryptographisches Verfahren durchgeführt, vorzugsweise ein asymmetrisches kryptographisches Verfahren, welches auch als Public-Key-Verfahren bezeichnet wird.
  • So wird beispielsweise erfindungsgemäß unter Verwendung der ermittelten elliptischen Kurve ein asymmetrisches kryptographisches Schlüsselpaar generiert oder es werden Verfahren zum Austausch kryptographischer Schlüssel bzw. zum gemeinsamen Einigen zweier Parteien auf ein Schlüsselpaar, vorzugsweise ein Verfahren gemäß dem Diffie-Hellman-Schlüsseleinigungsprotokoll durchgeführt.
  • Die Erfindung wird vorzugsweise auch für Protokolle zur authentisierten Schlüsseleinigung eingesetzt, welche von Matsumoto, Takashima und Imai beschrieben wurden und als MTI-Protokolle zur authentisierten Schlüsseleinigung bezeichnet werden, in dieser Gruppe von Protokollen insbesondere im Rahmen des sogenannten MTI/A0-Protokolls, des MTI/B0-Protokolls, des MTI/C0-Protokolls, sowie des MTI/C1-Protokolls.
  • Ferner wird die Erfindung vorzugsweise im Rahmen der Verschlüsselung und Entschlüsselung von Daten, vorzugsweise digitaler Daten, eingesetzt, in diesem Zusammenhang insbesondere gemäß dem Verfahren nach ElGamal, eingesetzt.
  • Weitere kryptographische Verfahren, in denen die Erfindung bevorzugt eingesetzt wird, sind Authentisierungsverfahren mittels Public-Key-Verfahren, beispielsweise sogenannte Challenge-Response-Protokolle zur Nachrichtenauthentisierung, welche auf asymmetrischen Krypto-Verfahren beruhen.
  • Die Erfindung eignet sich ferner für den Einsatz digitaler Signaturen, wobei beispielsweise ElGamal-Signaturen erzeugt werden und diese auch geprüft werden. Insbesondere werden bevorzugt EC-DSA-Signaturen erzeugt und überprüft sowie EC-GDSA-Signaturen.
  • Im Rahmen der Multiplikation eines Punktes mit einem Skalar kann die Multiplikation durch eine dem Skalar entsprechende Anzahl von Additionen und Verdoppelungen des auf der elliptischen Kurve liegenden Punktes mit sich selbst erfolgen.
  • Durch diese Ausgestaltung der Erfindung wird eine vereinfachte und somit mit reduziertem Rechenaufwand implementierbare Multiplikation des Punktes mit einem Skalar ermöglicht.
  • Eine weitere Reduktion des erforderlichen Rechenaufwandes wird gemäß einer Ausgestaltung der Erfindung bei einer elliptischen Kurve, welche über einem endlichen Körper der Charakteristik 2 definiert ist, erreicht, indem Punkte verwendet werden, welche auf der elliptischen Kurve liegen und folgende Vorschrift erfüllen: y2 + x·y = x3 + a2x2 + a6 wobei mit
    • • x die x-Koordinate des jeweiligen Punktes,
    • • y die y-Koordinate des jeweiligen Punktes,
    • • a2, a6 Formparameter der elliptischen Kurve
    bezeichnet werden.
  • Der Wert der x-Koordinate x5 des Doppelten des auf der elliptischen Kurve liegenden zu verdoppelnden Punktes mit der x-Koordinate x1 wird gemäß dieser Ausgestaltung der Erfindung gemäß folgender Vorschrift gebildet:
    Figure 00130001
  • Der Wert x3 der x-Koordinaten der Summe und der Wert x4 der x-Koordinaten der Differenz der zu verknüpfenden Punkte mit den x-Koordinaten x1 und x2 hängen gemäß folgender Vorschrift voneinander ab: (x3 + x4)(x1 + x2)2 = x1x2
  • Für den Fall, dass eine elliptische Kurve, welche über einem endlichen Körper der Charakteristik größer als 3 definiert ist, verwendet wird, wird eine weitere Reduktion des erforderlichen Rechenbedarfs ermöglicht, indem Punkte verwendet werden, welche auf der elliptischen Kurve liegen und folgende Vorschrift erfüllen: y2 = x3 + a4x + a6 wobei mit
    • • x die x-Koordinate des jeweiligen Punktes,
    • • y die y-Koordinate des jeweiligen Punktes,
    • • a4, a6 Formparameter der elliptischen Kurve
    bezeichnet werden.
  • Der Wert x5 der x-Koordinate des Doppelten des auf der elliptischen Kurve liegenden zu verdoppelnden Punktes mit der x-Koordinate x1 wird gemäß dieser Ausgestaltung der Erfindung gemäß folgender Vorschrift gebildet:
    Figure 00140001
  • Der Wert x3 der x-Koordinaten der Summe und der Wert x4 der x-Koordinaten der Differenz der zu verknüpfenden Punkte mit den x-Koordinaten x1 und x2 hängen gemäß folgender Vorschrift voneinander ab: (x3 + x4)(x1 – x2)2 = 2(x1 + x2)(x1x2 + a4) + 4a6
  • Bei einer elliptischen Kurve, welche über einem endlichen Körper der Charakteristik 3 definiert ist, wird eine weitere Reduktion des Rechenzeitbedarfs erreicht, indem Punkte, welche auf der elliptischen Kurve liegen, verwendet werden, welche folgende Vorschrift erfüllen: y2 = x3 + a2·x2 + a6,wobei mit
    • • x die x-Koordinate des jeweiligen Punktes,
    • • y die y-Koordinate des jeweiligen Punktes,
    • • a2, a6 Formparameter der elliptischen Kurve
    bezeichnet werden.
  • Der Wert x5 der x-Koordinate des Doppelten des auf der elliptischen Kurve liegenden zu verdoppelnden Punktes mit der x-Koordinate x1 wird gemäß dieser Ausgestaltung der Erfindung gemäß folgender Vorschrift gebildet:
    Figure 00140002
  • Der Wert x3 der x-Koordinaten der Summe und der Wert x4 der x-Koordinaten der Differenz der zu verknüpfenden Punkte mit den x-Koordinaten x1 und x2 hängen gemäß folgender Vorschrift voneinander ab: (x3 + x4)(x1 – x2)2 = a6 + a2x1x2 – x1x2(x1 + x2).
  • Ausführungsbeispiele der Erfindung sind in den Figuren dargestellt und werden im Weiteren näher erläutert. In den Figuren werden für Gleiche oder ähnliche Elemente teilweise identische Bezugszeichen verwendet.
  • Es zeigen
  • 1 ein Ablaufdiagramm, in dem die einzelnen Schritte zum Ermitteln einer elliptischen Kurve gemäß einem Ausführungsbeispiel der Erfindung dargestellt sind;
  • 2 ein Blockdiagramm, in dem ein Verfahren zur Schlüsseleinigung gemäß einer Variante gemäß Diffie-Hellman unter Verwendung einer erfindungsgemäß ermittelten elliptischen Kurve dargestellt ist;
  • 3 ein Blockdiagramm, in dem eine erfindungsgemäße Variante des MTI/AO-Protokolls unter Verwendung einer erfindungsgemäß ermittelten elliptischen Kurve dargestellt ist;
  • 4 ein Blockdiagramm, in dem eine erfindungsgemäße Variante des MTI/BO-Protokolls unter Verwendung einer erfindungsgemäß ermittelten elliptischen Kurve dargestellt ist;
  • 5 ein Blockdiagramm, in dem eine erfindungsgemäße Variante des MTI/CO-Protokolls unter Verwendung einer erfindungsgemäß ermittelten elliptischen Kurve dargestellt ist;
  • 6 ein Blockdiagramm, in dem eine erfindungsgemäße Variante des MTI/C1-Protokolls unter Verwendung einer erfindungsgemäß ermittelten elliptischen Kurve dargestellt ist;
  • 7 ein Blockdiagramm, in dem die Verschlüsselung, Übertragung und Entschlüsselung von Nachrichten gemäß einer erfindungsgemäßen Variante gemäß ElGamal unter Verwendung einer erfindungsgemäß ermittelten elliptischen Kurve dargestellt ist;
  • 8 ein Blockdiagramm, in dem die Authentisierung mittels Public-Key-Verfahren unter Verwendung einer erfindungsgemäß ermittelten elliptischen Kurve dargestellt ist;
  • 9 ein Ablaufdiagramm, in dem eine erfindungsgemäße Variante des Erzeugens von ElGamal-Signaturen unter Verwendung einer erfindungsgemäß ermittelten elliptischen Kurve dargestellt ist;
  • 10 ein Ablaufdiagramm, in dem eine erfindungsgemäße Variante des Prüfens von ElGamal-Signaturen unter Verwendung einer erfindungsgemäß ermittelten elliptischen Kurve dargestellt ist;
  • 11 ein Ablaufdiagramm, in dem eine erfindungsgemäße Variante des Erzeugens von EC-DSA-Signaturen unter Verwendung einer erfindungsgemäß ermittelten elliptischen Kurve dargestellt ist;
  • 12 ein Ablaufdiagramm, in dem eine erfindungsgemäße Variante des Prüfens von EC-DSA-Signaturen unter Verwendung einer erfindungsgemäß ermittelten elliptischen Kurve dargestellt ist;
  • 13 ein Ablaufdiagramm, in dem eine erfindungsgemäße Variante des Erzeugens von EC-GDSA-Signaturen unter Verwendung einer erfindungsgemäß ermittelten elliptischen Kurve dargestellt ist; und
  • 14 ein Ablaufdiagramm, in dem eine erfindungsgemäße Variante des Prüfens von EC-GDSA-Signaturen unter Verwendung einer erfindungsgemäß ermittelten elliptischen Kurve dargestellt ist.
  • 1 zeigt in einem Ablaufdiagramm 100 die einzelnen Verfahrensschritte zum rechnergestützten Ermitteln einer elliptischen Kurve gemäß einem Ausführungsbeispiel der Erfindung.
  • Das Verfahren wird von einem nicht dargestellten Rechner mit einem Prozessor und einem Speicher, in dem das Programmelement zur Durchführung der einzelnen weiteren beschriebenen Verfahrensschritte gespeichert ist, durchgeführt.
  • Der Rechner weist ferner eine Kommunikations-Eingangs-/Ausgangsschnittstelle auf, über die der Rechner mit anderen Rechnern oder anderen Kommunikationseinheiten Daten austauschen kann. Der Speicher und der Prozessor sind über einen Computerbus miteinander gekoppelt.
  • Gemäß diesem Ausführungsbeispiel der Erfindung ist in dem Speicher des Rechners eine Vielzahl von elliptischen Kurven gespeichert, oder es wird von dem Rechner eine Vielzahl von elliptischen Kurven gebildet.
  • Im Weiteren wird das erfindungsgemäße Verfahren anhand nur einer elliptischen Kurve aus der Menge gespeicherter oder gebildeter elliptischer Kurven erläutert.
  • Erfindungsgemäß ist jedoch vorgesehen, das Verfahren beliebig oft für eine beliebige Anzahl der gespeicherten elliptischen Kurven durchzuführen und somit einen Teil oder alle der gespeicherten elliptischen Kurven dahingehend zu testen, ob sie einen ausreichenden Grad an kryptographischer Sicherheit bereitstellen, damit sie geeignet sind, für die im Weiteren beschriebenen kryptographischen Verfahren eingesetzt zu werden.
  • In einem ersten Schritt wird eine elliptische Kurve aus der Menge gespeicherter elliptischer Kurven als eine zu testende elliptische Kurve ausgewählt und somit bereitgestellt (Schritt 101).
  • Elliptische Kurven über endlichen Körpern treten in Paaren auf. Zu einer elliptischen Kurve E(a1, a2, a3, a4, a6), wobei mit a1, a2, a3, a4, a6 jeweils Formparameter der elliptischen Kurve E bezeichnet werden, gehören sogenannte getwistete elliptische Kurven E'(b1, b2, b3, b4, b6).
  • Die Punktezahlen der elliptischen Kurve E und der zu der elliptischen Kurve zugehörigen getwisteten elliptischen Kurve E' hängen voneinander ab und erfüllen folgende Gleichung: ord(E) + ord(E') = 2·|K| + 2. (1)
  • Zu der ausgewählten zu testenden elliptischen Kurve E wird somit in einem weiterem Schritt (Schritt 102) eine zu der elliptischen Kurve E zugehörige getwistete elliptische Kurve gebildet.
  • In einem weiteren Schritt (Schritt 103) wird für die ausgewählte elliptische Kurve E geprüft, ob diese einem vorgegebenen kryptographischen Gütekriterium genügt (Schritt 103), wobei gemäß diesem bevorzugten Ausführungsbeispiel das Gütekriterium dann erfüllt ist, wenn die Punktezahl ord(E) der elliptischen Kurve E einen Primteiler aufweist, der größer ist als ein vorgegebener Schwellenwert, die elliptische Kurve E weder supersingulär noch anomal ist und die Punktezahl ord(E) der elliptischen Kurve sowohl dem Frey-Rück-Kriterium als auch dem Menezes-Okamoto-Vanstone-Kriterium genügt.
  • Ist das Gütekriterium für die ausgewählte zu testende elliptische Kurve E nicht erfüllt, so wird in einem weiteren Schritt (Schritt 104) eine weitere zu testende elliptische Kurve aus der Menge der gespeicherten elliptischen Kurven ausgewählt und das Verfahren wird ab Schritt 102 wiederholt.
  • Ist jedoch das Gütekriterium für die zu testende elliptische Kurve erfüllt, so wird in einem zusätzlichen Schritt (Schritt 105) geprüft, ob auch die zu der elliptischen Kurve E zugehörige getwistete elliptische Kurve E' dem oben genannten kryptographischen Gütekriterium genügt.
  • Es ist in diesem Zusammenhang anzumerken, dass erfindungsgemäß beide Gütekriterien gleich sein können oder unterschiedliche Gütekriterien zur Bewertung der kryptographischen Güte der jeweiligen elliptischen Kurve bzw. getwisteten elliptischen Kurve verwendet werden können.
  • Anders ausgedrückt bedeutet dies, dass gemäß diesem Ausführungsbeispiel auch für die getwistete elliptische Kurve E' geprüft wird, ob die Punktezahl ord(E') der getwisteten elliptischen Kurve E' einen Primteiler besitzt, der größer ist als ein vorgegebener Schwellenwert, wobei der Schwellenwert gleich oder unterschiedlich zu dem Schwellenwert im Rahmen der Bewertung der zu testenden elliptischen Kurve sein kann. Weiterhin wird geprüft, ob die getwistete elliptische Kurve weder supersingulär noch anormal ist und ob die Punktezahl ord(E') dem Frey-Rück-Kriterium und dem Menezes-Okamoto-Vanstone-Kriterium genügt.
  • Ist für die getwistete elliptische Kurve gemäß dem Prüfungsschritt 105 ermittelt worden, dass das kryptographische Gütekriterium nicht erfüllt ist, so wird in den zuvor beschriebenen Schritt 104 verzweigt und es wird eine neue elliptische Kurve als zu testende elliptische Kurve aus der Menge gespeicherter elliptischer Kurven ausgewählt und das Verfahren wird in Schritt 102 wieder neu begonnen.
  • Die in den Schritten 103 bzw. 105 getestete elliptische Kurve E wird verworfen und in dem weiter beschriebenen kryptographischen Verfahren nicht eingesetzt.
  • Genügt jedoch auch die getwistete elliptische Kurve gemäß dem Prüfungsschritt 105 dem kryptographische Gütekriterium, so wird in einem weiterem Verfahrensschritt (Schritt 106) die zu testende elliptische Kurve als im Weiteren verwendete elliptische Kurve ausgewählt und für ein in einem Weiteren Verfahrensschritt (Schritt 107) durchgeführtes kryptographisches Verfahren bereitgestellt.
  • Im Weiteren wird im Rahmen eines kryptographischen Verfahrens (Schritt 107) für die ermittelte elliptische Kurve beschrieben, wie ein skalares Vielfaches eines Punktes, der auf der ausgewählten elliptischen Kurve liegt, unter ausschließlicher Verwendung der x-Koordinate des Punktes hierzu berechnet wird.
  • Es ist in diesem Zusammenhang anzumerken, dass erfindungsgemäß die elliptische Kurve in jedem anderen kryptographischen Verfahren auch unter Verwendung der jeweiligen y-Koordinate eines auf der elliptischen Kurve sich befindlichen Punktes bei Transformationen oder bei Ermittlung eines skalaren Vielfaches des jeweiligen Punktes auf der elliptischen Kurve eingesetzt werden kann.
  • Es ist ferner anzumerken, dass die Reihenfolge, ob die elliptische Kurve E oder die zu der zu testenden elliptischen Kurve getwistete elliptische Kurve das kryptographische Gütekriterium erfüllt, unerheblich ist. Es kommt gemäß diesem Ausführungsbeispiel lediglich darauf an, dass sowohl die elliptische Kurve selbst als auch deren getwistete elliptische Kurve hinsichtlich der Erfüllung des kryptographischen Gütekriteriums untersucht werden.
  • Im Weiteren wird zur vereinfachten Darstellung des Ausführungsbeispiels jedoch lediglich das erfindungsgemäße Verfahren zur Multiplikation eines sich auf einer elliptischen Kurve befindenden Punktes unter ausschließlicher Verwendung der x-Koordinaten beschrieben.
  • Anders ausgedrückt wird gemäß dem im Weiteren beschriebenen Verfahren ein Vielfaches n·P eines Punktes P, der sich auf einer elliptischen Kurve befindet, berechnet.
  • Der Skalar n = (n1, ..., n1)2, gegeben in Binärdarstellung, wird bitweise (beginnend beim sogenannten Most Significant Bit (MSB) n1) abgearbeitet, d.h. bitweise mit dem Punkt P multipliziert.
  • Als Zwischenergebnisse werden in der jeweiligen i-ten Runde (i-ten Iteration) die Punkte Qi = m·P und Ri = (m + 1)·P berechnet mit n = (n1,..., nλ)2 gemäß folgender Vorschriften, welche in einem Pseudocode dargestellt sind:
    Figure 00210001
    Figure 00220001
  • Gemäß dem oben dargelegten ersten Teil-Verfahren wird zunächst einem Initialisierungspunkt Q0 der Wert 0 zugeordnet, was einer Initialisierung dieser Variable entspricht.
  • Einer zusätzlichen Variable R wird in einem zusätzlichen Initialisierungsschritt als Initialisierungsvariable R0 der Wert des Punktes P zugeordnet.
  • In einem zusätzlichen Schritt wird in der eigentlichen Berechnungsschleife in jeder Iteration für den jeweils berücksichtigten Skalarwert ni für den Fall, dass der Skalarwert ni den Wert 1 aufweist, dem Wert einer ersten Zwischenvariable Q zu der Iteration i (bezeichnet als Qi) die Summe des Wertes der ersten Zwischenvariable Qi-1 zu der vorangegangen Iteration i-1 und dem Wert der zweiten Zwischenvariable Ri-1 zu der vorangegangen Iteration i-1 zugeordnet. Dem Wert der zweiten Zwischenvariable Ri in der Iteration i wird der zweifache Wert der zweiten Zwischenvariable zu der vorangegangen Iteration i-1 zugeordnet.
  • Ist der Wert des Skalar ni nicht gleich 1, so wird der zweiten Zwischenvariable Ri in der Iteration i die Summe der Werte der Summe der ersten Zwischenvariable R in vorangegangen Iteration i-1 und dem Wert ersten Zwischenvariable Q in der vorangegangen Iteration i-1 zugeordnet.
  • Der ersten Zwischenvariable Qi zu der Iteration i wird der zweifache, d.h. der verdoppelte Wert der ersten Zwischenvariable Q zu der vorangegangenen Iteration i-1 zugeordnet.
  • Sind alle Skalarwerte ni des Skalars n abgearbeitet, so wird der sich ergebende Wert der ersten Zwischenvariable Qλ in der letzten Iteration λ, als Ergebniswert dieser Operation ausgegeben.
  • Wird das oben beschriebene Verfahren mit den üblichen Formeln zur Addition und Verdoppelung von Punkten auf einer elliptischen Kurve implementiert, so ist dieses üblicherweise langsamer als das ebenfalls bekannte und einsetzbare Double-and-Add-Verfahren, weil unabhängig von dem jeweils aktuellen Bit des Skalars in jeder Runde, d.h. in jeder Iteration, sowohl addiert als auch verdoppelt werden muss.
  • Es ist aber ausreichend, wenn in jeder Runde nur die x-Koordinate der ersten Zwischenvariable Qi und der zweiten Zwischenvariable Ri in einer jeweiligen Iteration i verwendet und neu berechnet werden.
  • Die dazu erforderlichen Additionsformeln werden im Weiteren hergeleitet und näher erläutert.
  • Auf diese Weise erhält man ein Verfahren zur Skalar-Multiplikation, welches erheblich schneller ist als die durchschnittliche Laufzeit des an sich bekannten Double-and-Add-Verfahrens. Zudem ist der Ablauf der Punkt-Multiplikation unabhängig von dem Wert des Skalars vollkommen gleichförmig. Es werden in der Fallunterscheidung lediglich die erste Zwischenvariable Qi und die zweite Zwischenvariable Ri in Abhängigkeit von dem jeweils nächsten Bit des Skalars vertauscht. Daher ist der resultierende Algorithmus sicher gegen die Simple-Power-Analyse und die Timing-Angriffe.
  • Im Weiteren wird das Verfahren zum Berechnen der Skalar-Multiplikation in der Punktegruppe der ermittelten elliptischen Kurve über dem endlichen Körper für die üblicherweise verwendeten endlichen Körper GF(2m), d.h. einem Galois-Feld GF(2m) und Z/p·Z realisiert wird.
  • Punktdarstellung und Additionsformeln für endliche Körper der Charakteristik 2
  • Im Weiteren werden alle Punktdarstellungen und Additionsformeln für endliche Körper K der Charakteristik 2 beschrieben.
  • Anders ausgedrückt wird im Weiteren eine Transformationskurvengleichung einer elliptischen Kurve über einem Körper der Charakteristik k beschrieben.
  • Die Punkte nicht-supersingulärer Kurven über Körpern der Charakteristik 2 erfüllen die Gleichung: y2 + x·y + x3 + a2·x2 + a6 = 0. (2)
  • Mit den in [8] beschriebenen affinen Additionsformeln ergeben sich folgende Gleichung für die X-Koordinaten der Summe (x1, y1) + (x2, y2) zweier Punkte, einem ersten Punkt (x1, y1) und einem zweiten Punkt (x2, y2):
    Figure 00240001
  • Unter der Differenz (x1, y1) – (x2, y2) der zwei Punkte:
    Figure 00240002
  • Aus (3) erhält man: x3 (x1 + x2)2 = y21 + y22 + (y1 + y2)(x1 + x2) + + (x1 + x2 + a2)(x1 + x2)2 (5)
  • Analog folgt aus (4): x4(x1 + x2)2 = y21 + y22 + x2 + (y1 + y2 + x2)(x1 + x2) + +(x1 + x2 + a2)(x1 + x2)2 (6)
  • Aus (5) und (6) ergibt sich:
    Figure 00250001
  • Aus der Additionsformel für die x-Koordinate des Doppelten eines Punktes P auf einer elliptischen Kurve E folgt:
    Figure 00250002
  • Die resultierenden Gleichungen (7) und (8) hängen nur noch von den x-Koordinaten der Punkte (x1, y1) und (x2, y2) ab. Damit kann das oben beschriebene Verfahren für Punkte in verschiedener Darstellung implementiert werden.
  • Um die relativ rechenaufwendige Inversion von Elementen des endlichen Körpers K einzusparen, wird erfindungsgemäß die sogenannte projektive Punktdarstellung verwendet.
  • In projektiver Schreibweise mit
    Figure 00250003
    für 1 ≤ i ≤ 5 ergeben sich aus (6) die Gleichungen: X3 = X4(X1Z2 + X2Z1)2 + Z4X1Z2X2Z1, (9) Z3 = Z4 (X1Z2 + X2Z1)2, (10) zur Addition zweier Punkte und aus Vorschrift (8) die Gleichungen
    Figure 00260001
    Z5 =X21 Z21 , (12)zur Verdoppelung eines Punktes P auf der elliptischen Kurve E, wobei
    Figure 00260002
    die (eindeutige) Quadratwurzel des Koeffizienten a6 der elliptischen Kurvengleichung ist.
  • In dem oben beschriebenen Verfahren ist der Differenzpunkt (Ri – Qi) zu einer Iteration i stets der Startpunkt P.
  • Anders ausgedrückt bedeutet dies, dass in den Formeln der Quotient
    Figure 00260003
    immer die x-Koordinate des Startpunktes P auf der elliptischen Kurve ist.
  • Weil der Startpunkt P affin gegeben ist, gilt Z4 = 1 und die Gleichungen (9), (10) vereinfachen sich weiter zu X3 = X4(X1Z2 + X2Z1)2 + X1Z2X2Z1, (13) Z3 = (X1Z2 + X2Z1)2. (14)
  • Mit den oben dargestellten Additions- und Verdoppelungsformeln sind nach dem beschriebenen Verfahren zur Berechnung des n-fachen eines Punktes noch 10(⎿log n⏌ + 1) Körpermultiplikationen und 3(⎿log n⏌ + 1) Körperadditionen notwendig.
  • Im Weiteren wird folgende Notation verwendet: der Quotient
    Figure 00260004
    ist die x-Koordinate des i-fachen des Startpunktes P auf der elliptischen Kurve E. Insbesondere ist X1 die x-Koordinate des Basispunktes in affiner Darstellung mit Z1 = 1. Sei
    Figure 00270001
    die eindeutig bestimmte Quadratwurzel des Koeffizienten a6 der Kurvengleichung der elliptischen Kurve E.
  • Gemäß folgendem zweiten Teil-Verfahren wird die x-Koordinate des n-fachen des Basispunktes in projektiver Darstellung berechnet. Sei n = (n1, ..., , nλ)2 in Binärdarstellung mit n1 als Most Significant Bit gegeben:
    Figure 00270002
    Figure 00280001
  • Der resultierende Quotient – ist
    Figure 00280002
    die x-Koordinate des Punktes n·P. Zum Schluss wird noch das multiplikative Inverse
    Figure 00280003
    von B berechnet, um die x-Koordinate von n·P in affiner Darstellung bestimmen zu können. Zum Bestimmen des Inversen von
    Figure 00280004
    wird der Fermatsche Satz verwendet. Details zum Bestimmen des Inversen von
    Figure 00280005
    werden im Weiteren dargestellt.
  • Ein erheblicher Vorteil des zweiten Teil-Verfahrens besteht darin, dass keine Fallunterscheidungen zur Addition oder Verdoppelung des unendlich fernen Punktes 0 oder des Punktes der Ordnung 2 erforderlich sind.
  • Die Additionsformeln (13), (14) und (11), (12) bleiben auch für alle Sonderfälle dieser Art gültig.
  • Der Punkt P ist gleich (X1, Z1) der Basispunkt. In der obigen Punktdarstellung hat der unendlich ferne Punkt 0 die Darstellung 0 = (X, Z) mit X ≠ 0 und Z = 0.
  • Im Weiteren werden einige mögliche Sonderfälle dargestellt:
    • • Sonderfall Addition von (Xn, Zn) = (Xm, Zm): d.h. (n + 1)·P = n·P, wodurch folgt: P = O. Dieser Fall kann nicht auftreten, weil in jeder Runde, d.h. in jeder Iteration gilt: Qi + P = Ri.
    • • Sonderfall Addition von (Xn, Zn) = O, (Xm, Zm) ≠ O: aus (13), (14) ergibt sich: (Xn+m, Zn+m) = (X1X2m Z2n , X2m Z2n ) = x(P) (15)als das richtige Resultat.
    • • Sonderfall Addition von (Xn, Zn) = , (Xm, Zm) ≠ O: aus (13), (14) ergibt sich: (Xn+m, Zn+m) = (X1X2n Z2m , X2 n Z2 m ) = x(– P) (16)als das richtige Resultat.
    • • Sonderfall Addition von (Xn, Zn) = –(Xm, Zm): da
      Figure 00290001
      gilt und die Multiplikation nullteilerfrei ist, folgt Xn+m ≠ 0, Zn+m = 0 und (n + m)·P = 0 als das richtige Resultat.
    • • Sonderfall Addition von (Xn, Zn) ≠ O, (Xm, Zm) ≠ O mit 2(Xn, Zn) = 2(Xm, Zm) = O: Das heißt 2nP = 2(n + 1)P = O, womit 2·P = O folgt. Daher gilt entweder (Xn, Zn) = O oder (Xm, Zm) = O, und der Fall kann nicht auftreten.
    • • Sonderfall Verdoppelung von (Xn, Zn) = O: aus (11), (12) und der Nullteilerfreiheit der Multiplikation folgt X2n ≠ 0 und Z2n = 0 und damit (X2n, Z2n) = O.
    • • Sonderfall Verdoppelung von (Xn, Zn) mit 2(Xn, Zn) = O, d.h. Xn = 0 und Zn ≠ 0: aus (11), (12) und der Nullteilerfreiheit der Multiplikation folgt X2n ≠ 0 und Z2n = 0 und daher (X2n, Z2n) = 0.
  • Damit kann dieses zweite Teil-Verfahren zur Skalar-Multiplikation auch dann angewendet werden, wenn der Skalar n größer als die Ordnung des Basispunktes P ist.
  • In der oben beschriebenen Form werden gemäß dem zweiten Teil-Verfahren nur die x-Koordinaten der Punkte n·P und (n + 1)·P berechnet. Falls der vollständige Ergebnispunkt einschließlich der y-Koordinaten berechnet werden soll, so ist es möglich, aus den berechneten x-Koordinaten und der Gleichung der elliptischen Kurve die y-Koordinate von n·P zu berechnen.
  • Seien im Folgendem x1 die x-Koordinate des Ergebnispunktes n·P, x2 die x-Koordinate des Ergebnispunktes (n + 1)·P, (x, y) die Koordinaten des Startpunktes P und y1 die gesuchte y-Koordinate des Ergebnispunktes n·P (alle affin gegeben).
  • Dann folgt gemäß Vorschrift (3):
    Figure 00300001
  • Wird der Term y2 gemäß der Kurvengleichung (2) ersetzt und anschließend nach y1 aufgelöst, so ergibt sich:
    Figure 00310001
    für die gesuchte y-Koordinate, falls gilt: x ≠ 0.
  • Für den Fall x = 0 ist das Ergebnis n·P entweder der unendlich weit entfernte Punkt O oder der (eindeutig bestimmte) Punkt
    Figure 00310002
    der Ordnung 2.
  • Für eine Implementierung mit projektiver Koordinatendarstellung ergibt sich (im Fall x ≠ 0) gemäß der oben gewählten Notation mit
    Figure 00310003
    und
    Figure 00310004
    die Vorschrift:
    Figure 00310005
    für die y-Koordinate des Punktes n·P in projektiver Koordinatendarstellung.
  • Punktdarstellung und Additionsformeln für endliche Körper mit Charakteristik größer als 3.
  • Im Weiteren werden Punktdarstellung und Additionsformeln für endliche Körper mit Charakteristik größer als 3 erläutert.
  • Die Punkte nicht-supersingulärer Kurven über endlichen Körpern der Charakteristik größer als 3 erfüllen die Gleichung y2 = x3 + a4·x + a6. (20)
  • Aus den Additionsformeln für Punkte auf einer elliptischen Kurve, wie sie beispielsweise in [8] beschrieben sind, ergeben sich folgende Gleichungen für die x-Koordinaten der Summe (x1, y1) + (x2, y2) zweier Punkte, einem ersten Punkt (x1, y1) und einem zweiten Punkt (x2, y2) auf einer elliptischen Kurve
    Figure 00320001
    und der Differenz (x1, y1) – (x2' y2)
    Figure 00320002
  • Aus der Summe der Vorschriften (21) und (22) erhält man durch Substitution der Terme y 2 / 1 und y 2 / 2 mittels Vorschrift (20) die folgende Vorschrift: (x3 + x4)(x1 – x2)2 = 2(x1 + x2)(x1x2 + a4) + 4a6 (23)für die Punktaddition.
  • Analog folgt aus der Additionsformel für die x-Koordinate des Doppelten eines Punktes (x1, y1) durch Substitution des Terms y 2 / 1 mittels Vorschrift (20) die folgende Vorschrift: 4x5 (x31 + a4x1 + a6) = (x21 – a4)2 – 8a6x1. (24)
  • In projektiver Schreibweise mit
    Figure 00320003
    für 1 ≤ i ≤ 5 und Z4 = 1 erhält man aus Vorschrift (23) die folgenden Vorschriften: X3 = 2(X1Z2 + X2Z1)(X1X2 + a4Z1Z2) + 4a6Z21 Z22 – X4(X1Z2 – X2Z1)2 (25) Z3 = (X1Z2 – X2Z1)2, (26) zur Addition zweier Punkte und aus Vorschrift (24) die Vorschriften X5 = (X21 – a4Z21 ) – 8a6X1Z31 , (27) Z5 = 4X1Z1(X21 + a4Z21 ) + 4a6Z41 , (28)zur Verdoppelung eines Punktes auf der elliptischen Kurve.
  • Die Vorschriften (25), (26) können mit 10 Multiplikationen und 7 Additionen und Subtraktionen ausgewertet werden. Die Vorschriften (27), (28) können mit 9 Multiplikationen und 8 Additionen und Subtraktionen ausgewertet werden.
  • Mit diesen Additionsvorschriften und Verdoppelungsvorschriften, wie sie oben beschrieben wurden, sind gemäß dem in [7] beschriebenen Verfahren zur Berechnung des n-fachen eines Punktes 19(⌊log n⌋ + 1) Körpermultiplikationen und 15(⌊log n⌋ + 1) Körperadditionen und Körpersubtraktionen erforderlich (zuzüglich einmalig 15 Multiplikationen, 7 Additionen und Subtraktionen und einer Inversion zur Berechnung des Ergebnispunktes in affiner Koordinatendarstellung)
  • Im Weiteren wird das Teil-Verfahren zur Berechnung des skalaren Vielfachen eines affinen gegebenen Punktes P = (x, y) beschrieben.
  • Die x-Koordinate des Punktes P bildet dabei den Wert X4 in den Vorschriften (25) und (26). Es ist in diesem Zusammenhang anzumerken, dass auch die Vereinfachung Z4 = 1 möglich ist, weil der Punkt P stets affin gegeben ist. Damit sind
    Figure 00330001
    und
    Figure 00340001
    die x-Koordinaten von zwei Punkten, die sich um den Punkt P unterscheiden.
  • Im Folgenden wird mit (Xm, Zm) die projektiv gegebene x-Koordinate des Punktes m·P bezeichnet. Sei X1 die x-Koordinate des Basispunktes P in affiner Darstellung (d.h. Z1 = 1), und sei n = (n1, ..., nλ)2 die Binärdarstellung des Skalars n mit n1 als Most Significant Bit.
  • Gemäß dem im Weiteren in einem Pseudo-Code dargestellten dritten Teil-Verfahren wird die x-Koordinate des n-fachen des Basispunktes P in projektiver Darstellung berechnet:
    Figure 00340002
    Figure 00350001
    Figure 00360001
    Figure 00370001
  • Gilt B = 0, so ist n·P = 0 der unendlich ferne Punkt, wobei anzumerken ist, dass der unendlich ferne Punkt O die Darstellung (X, Z) hat mit X ≠ 0 und Z = 0. Ist B ≠ 0, so ist A/B mod p die x-Koordinate des Ergebnispunktes n·P. Soll auch die y-Koordinate von n·P bestimmt werden, so wird folgender Zusammenhang benutzt: Seien (x1, y1) der Basispunkt P, xn = A/B die x-Koordinate von n·P und xn+1 = C/D die x-Koordinate von (n+1)·P. Aus der Additions-Vorschrift (21) ergibt sich mittels Substitution der Terme y 2 / 1 und y 2 / n durch die Kurvengleichung der elliptischen Kurve (20):
    Figure 00370002
  • In projektiver Schreibweise erhält man für die Ergebnisse des dritten Teil-Verfahrens die Gleichung
    Figure 00370003
  • Gemäß dem im Weiteren beschriebenen und in einem Pseudo-Code erläuterten vierten Teil-Verfahren wird der Punkt n·P = (x1, y1) in affiner Darstellung aus den bereits berechneten Werten A, B, C und D berechnet:
    Figure 00370004
    Figure 00380001
  • Das affine Ergebnis n·P = (xn, yn) steht in den im Weiteren beschriebenen Registern (A, B), welche die Werte A und B speichern. Insbesondere ist insgesamt nur eine modulare Inversion zur Berechnung der affinen x-Koordinate und y-Koordinate des Ergebnispunktes erforderlich.
  • Solange der unendlich ferne Punkt O nicht als Zwischenergebnis der Hauptschleife in dem oben beschriebenen vierten Teil-Verfahren auftritt (d.h. solange gilt B ≠ 0 und D ≠ 0), solange ist der Ablauf des vierten Teil-Verfahrens vollkommen gleichförmig und von konkreten Werten des Skalars n unabhängig.
  • Bei der Bearbeitung der einzelnen Bits ni des Skalars n werden in jedem Durchlauf (d.h. in jeder Iteration) die gleiche Anzahl von Körperoperationen in der gleichen Reihenfolge durchgeführt. Es werden lediglich in Abhängigkeit von dem Wert des aktuellen Bits ni des Skalars n Zugriffe auf das Registerpaar (A, B), welches die Werte A bzw. B gespeichert hat, mit Zugriffen auf das Registerpaar (C, D), welches die zuvor ermittelten Werte C und D gespeichert hat, vertauscht. Das vierte Teil-Verfahren ist daher vor Timing-Angriffen geschützt.
  • Falls nicht ausgeschlossen werden kann, dass während der Berechnung der Fall B = 0 oder D = 0 eintritt, so sollten in die entsprechenden Fallunterscheidungen der oben beschriebenen Routine-„Add"-Dummy-Befehle vorgesehen werden, um den gleichförmigen Ablauf der Skalar-Multiplikation nicht zu gefährden.
  • Das gleiche gilt auch für die Fallunterscheidungen bei der abschließenden Berechnung der affinen Darstellung des Ergebnispunktes, d.h. für die Fälle, bei denen das Ergebnis der unendlich ferne Punkt O oder der Wert „- P" ist.
  • Die oben erläuterten Additions-Vorschriften (25), (26) und (27), (28) für die Skalar-Multiplikation bleiben für alle Sonderfälle gültig, bis auf den Fall der Addition des unendlich fernen Punktes O.
  • Sei P = (X1, Z1) der Basispunkt:
    • • Addition von (Xn, Zn) = (Xm, Zm): Das heißt (n + 1)·P = n·P, womit P = O folgt. Dieser Fall kann nicht auftreten.
    • • Addition von (Xm, Zr) = –(Xm, Zm) ≠ O: Da Xn/Zn = Xm/Zm gilt, folgt Zn+m = 0. Damit auch Xn+m = 0 gilt, muss (Xn, Zn) gemäß Vorschrift (27), (28) die x-Koordinate eines Punktes der Ordnung 2 sein. Dann folgt aber aus den Voraussetzungen n·P + P = – n·P. dass Zn = 0 ist. Dieser Fall kann also ebenfalls nicht auftreten und es gilt stets Xn+m ≠ 0.
    • • Addition von (Xn, Zn) ≠ O, (Xm, Zr) ≠ O mit 2(Xn, Zn) = 2(Xm, Zm) = O: Das heißt 2nP = 2(n +1)P = O, womit 2P = O folgt. Daher gilt entweder (Xn, Zn) = O oder (Xm, Zm) = O und der Fall kann ebenfalls nicht auftreten.
    • • Verdoppelung von (Xn, Zn) = O: aus den Vorschriften (27), (28) und der Nullteilerfreiheit der Multiplikation folgt X2n ≠ 0 und Z2n = 0 und damit (X2n, Z2n) = O.
    • • Verdoppelung von (Xn, Zn) mit 2(Xn, Zn) = O: Aus den Vorschriften (27), (28) folgt direkt, dass Z2n = 0 gilt. Wird das Ergebnis der Resultante aus den Gleichungen für X2n, Z2n berechnet, so ergibt sich 256Z 16 / n(4 3 / 4 + 27a 2 / 6)2. Weil die elliptische Kurve keine singulären Punkte aufweist, folgt daraus (X2n, Z2n) = O.
  • Punktdarstellung und Additionsformeln für endliche Körper der Charakteristik 3
  • Im Weiteren werden eine Punktdarstellung und Additionsformeln für endliche Körper K der Charakteristik 3 beschrieben.
  • Analog zu der in den obigen Abschnitten hinsichtlich der Punktdarstellung und Additionsformeln für endliche Körper der Charakteristik 2 und größer als 3 beschriebenen Vorgehensweisen können entsprechende Vorgehensweisen gemäß diesem Ausführungsbeispiel auch für den Fall eines endlichen Körpers der Charakteristik 3 mit entsprechenden Formeln zur Addition und Verdoppelung von Punkten für elliptische Kurven über einem endlichen Körper verwendet werden, welche im Folgenden hergeleitet und näher erläutert werden.
  • Die Punkte nicht-supersingulärer Kurven über endlichen Körpern der Charakteristik 3 erfüllen die Gleichung y2 = x3 + a2·x2 + a6. (31)
  • Aus den oben beschriebenen affinen Additionsformeln ergeben sich mit einer analogen Herleitungsweise wie oben beschrieben und unter Verwendung analoger Notation die Formeln (x3 + x4)(x1 – x2)2 = a6 + a2x1x2 – x1x2(x1 + x2), (32)zur Addition und
    Figure 00410001
    für die x-Koordinate des Doppelten eines Punktes auf der elliptischen Kurve.
  • Die algorithmische Umsetzung der Vorschriften (32) und (33) in einem Verfahren zur Skalar-Multiplikation erfolgt vollkommen analog zu den oben beschriebenen Teil-Verfahren.
  • Wie in [6] beschrieben ist, ermöglicht die Punktdarstellung mit projektiven Koordinaten eine einfache Methode zum Schutz gegen die Differential-Power-Analyse. Hierzu wird während der Initialisierung der oben beschriebenen Teil-Verfahren die Variable A nicht auf den Wert 1, sondern auf einen zufälligen, von dem Wert „0" verschiedenen Wert gesetzt, die Variable D auf einen weiteren zufälligen, von „0" verschiedenen Wert gesetzt und die Variable C mit dem Wert von D multipliziert.
  • Es ergibt sich somit:
    Figure 00420001
  • Die Funktion RAND wird gemäß diesem Ausführungsbeispiel folgendermaßen implementiert:
    Zunächst wird mittels eines Zufallszahlen-Generators eine Zufallszahl generiert und anschließend wird das Least Significant Bit auf den Wert „1" gesetzt, um zu gewährleisten, dass der Wert von dem Wert „0" verschieden ist.
  • Mit dieser Maßnahme werden die projektiven Darstellungen der Startwerte und aller Zwischenergebnisse mit für jede Anwendung der Skalar-Multiplikation neugewählten zufälligen Werten erweitert. Dadurch werden Korrelationen zwischen Eingabewerten, dem geheimen Skalar und den berechneten Zwischenergebnissen, die ein Angreifer für eine statistische Analyse des Stromverbrauchprofils verwenden könnte, verhindert.
  • Differential-Power-Analyse, wie sie in [5] beschrieben ist, ist in diesem Fall nicht mehr möglich.
  • Gerade für kontaktlose Chip-Karten sind Angriffe, die fehlerhafte Ergebnisse von kryptographischen Algorithmen ausnutzen, eine besondere Bedrohung, da die relativ instabile Energieversorgung von kontaktlosen Karten leicht zu Fehlfunktionen aller Art führen kann.
  • Um solche Differential-Fault-Angriffe abwehren zu können, werden üblicherweise redundante Relationen auf den Berechnungsergebnissen eingeführt, die am Ende der Berechnung einen einfachen Korrektheitstest der Ergebnisse ermöglichen. Bei elliptischen Kurven ist beispielsweise der Test, ob der Ergebnispunkt einer Skalar-Multiplikation immer noch die Kurvengleichung der elliptischen Kurve erfüllt, eine solche Gegenmaßnahme.
  • Bei der erfindungsgemäß gewählten Punktdarstellung ist es aber aufwendig, die y-Koordinate zu bestimmen und damit diesen Test durchzuführen.
  • Stattdessen wird erfindungsgemäß eine andere Abwehrmaßnahme gegen einen Differential-Fault-Angriff vorgesehen: Bei allen in den oben beschriebenen Teil-Verfahren erfindungsgemäß verwendeten Additionsformeln werden die Parameter der Kurvengleichung der ermittelten elliptischen Kurve in einer Art und Weise verwendet, die mögliche Gruppenstrukturen von fehlerhaften Punkten und Kurvengleichungen weitestgehend festlegt.
  • Ein fehlerhaftes Ergebnis kann nur auf einer elliptischen Kurve liegen, deren Gruppenstruktur entweder isomorph zur gewünschten elliptischen Kurve oder zu der zugehörigen getwisteten elliptischen Kurve ist.
  • Erfindungsgemäß werden daher nur elliptische Kurven verwendet, bei denen sowohl die Gruppenstruktur der gegebenen elliptischen Kurve, d.h. der ermittelten elliptischen Kurve, als auch die der ermittelten elliptischen Kurve zugehörigen getwisteten Kurve kryptographisch stark ist. Dadurch kann vollständig auf Plausibilitätstests für Berechnungsergebnisse verzichtet werden.
  • Ein Angreifer kann durch fehlerhafte Ergebnisse prinzipiell nur wenige Bits des geheimen Skalars ermitteln. Es ist in diesem Zusammenhang anzumerken, dass bei optimal gewählten Kurvenparametern für Körper der Charakteristik 2 es genau 2 Bits sind und für Körper der Charakteristik größer als 3 kann ein Angreifer bei optimaler Wahl der Parameter mit diesen Angriffen keine Bits des geheimen Skalars erfahren.
  • Nach Durchführung der oben beschriebenen Teil-Verfahren für die Skalar-Multiplikation wird erfindungsgemäß noch die projektiv gegebene x-Koordinate, welche in den Registern A und B gespeichert ist, des Ergebnispunktes in eine affine Darstellung gebracht.
  • Dazu ist eine Division bzw. eine Inversion notwendig. Erfindungsgemäß wird im Falle eines Körpers GF(2m) der Charakteristik 2 folgender Algorithmus zur Inversion eingesetzt, wobei der kleine Fermatsche Satz verwendet wird.
  • Der Wert, welcher in dem Register B gespeichert ist, soll invertiert werden. Dabei dient Register C zur Speicherung der Zwischenergebnisse.
  • Das Ergebnis der Inversion ist am Ende des Teil-Verfahrens in dem Register C gespeichert.
  • Figure 00440001
  • Nach der Durchführung beider Algorithmen, d.h. der Algorithmen der Teil-Verfahren zur Skalar-Multiplikation und anschließend des Teil-Verfahrens zur Inversion des Wertes von B, kann die affine x-Koordinate des Ergebnispunktes mit dem folgenden Befehl berechnet werden:
    A ← A·C.
  • Die affine x-Koordinate des Ergebnispunktes ist am Ende des Teil-Verfahrens in dem Register A gespeichert.
  • Wenn der vollständige affine Ergebnispunkt der Skalar-Multiplikation, d.h. sowohl die x-Koordinate als auch die y-Koordinate des Ergebnispunktes berechnet werden sollen, so ist dafür erfindungsgemäß nur eine Ausführung des Inversions-Algorithmus erforderlich.
  • Wie bereits oben aufgeführt wurde, sind mehrere Fälle zu unterscheiden:
    • 1. Gilt nach der Skalar-Multiplikation Register B = 0, dann ist der Ergebnispunkt der unendlich ferne Punkt O.
    • 2. Gilt nach erfolgter Skalar-Multiplikation Register D = 0, dann ist der Ergebnispunkt der inverse Startpunkt. Das heißt, falls der Startpunkt die Koordinaten (x, y) hat, dann hat der Ergebnispunkt die Koordinaten (x, y + x).
    • 3. In allen anderen Fällen gilt x ≠ 0, B ≠ 0 und D ≠ 0. Es wird mittels des oben beschriebenen Verfahrens zur Inversion des Körperelements berechnet: α = (xZ 2 / 1Z2)–1 (= (xB2D)–1 in der Registernotation). Dann gilt Z1 –1 = αZ1Z2 und die Koordinaten des Ergebnispunktes können mit Vorschrift (19) für die y- Koordinate in affiner Darstellung berechnet. Insbesondere ist erfindungsgemäß nur eine Inversion notwendig, um beide Koordinaten zu berechnen.
  • Für Körper der Charakteristik 3 und größer als 3 können der oben beschriebene Algorithmus zur Inversion von Körperelementen und die Fallunterscheidungen zur Berechnung der vollständigen Ergebnispunktes entsprechend angepasst werden.
  • Im folgenden wird ein Beispiel für eine geeignete elliptische Kurve gegeben, welche auf die oben beschriebene Weise ermittelt worden ist.
  • Die Parameter
    a4 = 1607598635723853726101764646534862480777000685949
    a6 = 2664670612432461868348120722396724944406695831907
    definieren eine elliptische Kurve über dem endlichen Körper
    Z/5846006848301083051854307689248681887734956450399
  • Die von der elliptischen Kurve erzeugte Punktegruppe hat die Ordnung
    5846006848301083051854312524952084000434031723889,
    die von der getwisteten elliptischen Kurve erzeugte Punktegruppe hat die Ordnung
    5846006848301083051854302853545279775035881176911.
  • Beide Ordnungen sind Primzahlen.
  • Der Punkt
    x = 4895927185759989738799640847700019479312599167010,
    y = 4456609205960786928902978222286069176394833826606
    liegt auf der elliptischen Kurve und erzeugt die volle Punktegruppe.
  • Zusammengefasst wurden oben Verfahren zur Transformation einer elliptischen Kurve beschrieben, welche es ermöglicht, ein skalares Vielfaches eines Punktes unter ausschließlicher Verwendung der x-Koordinate zu berechnen. Damit sind die erfindungsgemäßen Verfahren zur Skalar-Multiplikation gegen Timing-Angriffe geschützt.
  • Zusammengefasst ergeben sich für zwei Kurvenpunkte P1 und P2 einer elliptischen Kurve mit den jeweiligen x-Koordinaten x1, x2, die x-Koordinate x3 des Punktes P3 = P1 + P2, die x-Koordinate x4 des Punktes P4 = P1 – P2 und die x-Koordinate x5 des Punktes P5 = 2·P1. In Abhängigkeit von der Charakteristik des Körpers ergeben sich zusammenfassend folgende Gleichungen:
    • 1. Fall: Charakteristik des endlichen Körpers K = 2: Die kurze Weierstraß-Gleichung einer nicht-supersingulären elliptischen Kurve hat die Form y2 + x·y = x3 + a2·x2 + a6. (34) Dann gilt: (x3 + x4)(x1 + x2)2 = x1·x2. (35)und x5·x21 = x41 + a6. (35)
    • 2. Fall: Charakteristik des endlichen Körpers K ist 3: Die kurze Weierstraß-Gleichung einer nicht-supersingulären elliptischen Kurve hat die Form y2 = x3 + a2·x2 + a6. (37)Dann gilt: (x3 + x4)(x1 – x2)2 = a6 + a2·x1·x2 – x1·x2· (x1 + x2), (38)und x5 (x31 + a2·x21 + a6) = x41 + a6·x1 – a2·a6. (39)
    • 3. Fall: Charakteristik des endlichen Körpers K größer als 3: Die kurze Weierstraß-Gleichung einer nicht-supersingulären elliptischen Kurve hat die Form y2= x3 + a4·x + a6. (40)Dann gilt: (x3 + x4)(x1 – x2)2 = 2·(x1 + x2)·(x1·x2 + a4) + 4·a6, (41)und 4·x5·(x31 + a4·x1 + a6) = (x21 – a4)2 – 8·a6·x1. (42)
  • Die auf die oben beschriebene Weise ermittelte elliptische Kurve und die daraus resultierende und darauf durchgeführten, wie oben erläuterten, Gruppenoperationen wie Addition und skalare Multiplikation werden erfindungsgemäß in kryptographischen Verfahren eingesetzt, wie im Weiteren näher erläutert.
  • Gemäß den Ausführungsbeispielen werden im Rahmen der kryptographischen Verfahren lediglich die x-Koordinaten von Kurvenpunkten der ermittelten und verwendeten elliptischen Kurve übertragen, gespeichert und verarbeitet.
  • Jeder zu übertragende Kurvenpunkt einer elliptischen Kurve verringert zwar die Entropie des Schlüsselraumes von kryptographischen Schlüsseln um maximal ein Bit, bei allen derzeit praktisch relevanten kryptographischen Verfahren ist jedoch ein solcher Sicherheitsverlust vernachlässigbar und kann ohne nennenswerte Leistungsverluste durch eine Erhöhung der Schlüssellänge ausgeglichen werden.
  • Gemäß den dargelegten Ausführungsbeispielen werden Varianten von an sich bekannten, in der Literatur beschriebenen Kryptoverfahren erläutert, insbesondere des Diffie-Hellman-Verfahrens zur Schlüsseleinigung, des ElGamal-Public-Key-Verschlüsselungsverfahrens, des E1-Gamal-Signaturverfahrens, des EC-DSA-Signaturverfahrens, des EC-GDSA-Signaturverfahrens, welche die gleiche Funktionalität wie die klassischen Verfahren bieten, aber ohne die Verwendung von y-Koordinaten der Kurvenpunkte der jeweiligen elliptischen Kurve auskommen.
  • Es ist darauf hinzuweisen, dass die Erfindung auch für alle anderen, vorzugsweise asymmetrischen Krypto-Verfahren ohne weiteres eingesetzt werden kann.
  • Ferner werden gemäß den folgenden Ausführungsbeispielen auf der Auswertung von Polynomen kleinen Grades beruhende Verifikationsverfahren für digitale Signaturen beschrieben, die ebenfalls vollständig auf die Verwendung der y-Koordinaten von Kurvenpunkten, welche auf der ausgewählten elliptischen Kurve liegen, verzichten. Diese werden für die verschiedenen Quellen der Charakteristiken der Grundkörper ausgeführt.
  • Anschaulich kann somit erfindungsgemäß bei Krypto-Verfahren auf Basis elliptischer Kurven über einem endlichen Körper vollständig auf die Speicherung, die Üertragung und Verarbeitung von y-Koordinaten von Kurvenpunkten, d.h. anders ausgedrückt, von Punkten auf der jeweils verwendeten ermittelten elliptischen Kurve, verzichtet werden.
  • Es werden für die Erzeugung und Verifizierung digitale Signaturen, für den Schlüsseltransport, Schlüsselaustausch, den Transport kryptographischer Schlüssel beim Austausch kryptographischer Schlüssel, asymmetrische Verschlüsslung und im Bereich der strengen Authentifikation Protokolle angegeben, welche ausschließlich die x-Koordinaten von Punkten elliptischer Kurven verwenden.
  • Es ist zu bemerken, dass aus protokolltechnischer Sicht keine Einschränkungen für die einzusetzenden Körper existieren.
  • Ferner werden Techniken zur Verifikation digitaler Signaturen auf Basis elliptischer Kurven beschrieben. Diese Techniken lassen sich auch in anderen kryptographischen Verfahren einsetzen.
  • Bei den im Weiteren beschriebenen kryptographischen Verfahren werden die oben beschriebenen Teil-Verfahren zum Berechnen der Multiplikation eines Punktes einer elliptischen Kurve mit einem Skalar als Unterroutine bzw. als Teil-Verfahren im Rahmen des jeweiligen Algorithmus verwendet.
  • Bei den unterschiedlichen im Weiteren beschriebenen Protokollen werden hauptsächlich 2 Aspekte berücksichtigt:
    • • die kryptographische Problemstellung wird so weit wie möglich durch ein Protokoll gelöst, das lediglich die Körperarithmetik zur Implementierung der Skalar-Multiplikation der elliptischen Kurven verwendet.
    • • es werden Varianten von Protokollen betrachtet, die nur die x-Koordinaten von Kurvenpunkten von elliptischen Kurven benötigen und berechnen müssen.
  • Die erfindungsgemäßen Verfahren gelten für beliebige, nicht-singuläre elliptische Kurven über endlichen Körpern beliebiger Charakteristik.
  • Zur einfacheren Darstellung der Ausführungsbeispiele werden die Verfahren am Beispiel von elliptischen Kurven über endlichen Körpern der Charakteristik 2 beschrieben. Selbstverständlich können alle im Weiteren beschriebenen Verfahren ohne weiteres auf ähnliche Körper anderer Charakteristiken übertragen werden, wie das weiter unten noch näher erläutert wird.
  • In einem kryptographischen Protokoll unter Verwendung elliptischer Kurven haben y-Koordinaten von Punkten einer elliptischen Kurve hauptsächlich folgende Funktionen:
    • • Testen, ob ein Punkt auf einer elliptischen Kurve liegt: Soll getestet werden ob ein Punkt (x, y) die Kurvengleichung einer elliptischen Kurve erfüllt oder ob ein gegebener Wert x die x-Koordinate eines gültigen Kurvenpunktes einer elliptischen Kurve sein kann, dann ist der Test leicht und effizient durchführbar, wenn die y-Koordinate gegeben ist. In diesem Fall müssen die beiden Koordinaten nur in die Kurvengleichung der elliptischen Kurve eingesetzt und die Gültigkeit der Gleichung überprüft werden. Falls die y-Koordinate nicht gegeben ist, müssen aufwendige Techniken zur Punktdekompression gemäß dem Stand der Technik verwendet werden. Die erfindungsgemäß verwendeten elliptischen Kurven und Additionsformeln haben die Eigenschaft, dass ein beliebiges Körperelement stets x-Koordinate eines Punktes auf einer elliptischen Kurve ist, deren Gruppenstruktur entweder isomorph zur gewünschten elliptischen Kurve oder zu einer zugehörigen getwisteten elliptischen Kurve ist. Erfindungsgemäß werden daher nur elliptische Kurven verwendet, bei denen sowohl die Gruppenstruktur der gegebenen elliptischen Kurve als auch die der zugehörigen getwisteten elliptischen Kurve kryptographisch stark ist. Dadurch kann in den im Weiteren beschriebenen Protokollen auf Tests, ob ein Punkt tatsächlich auf einer elliptischen Kurve liegt, verzichtet werden, ohne die geheimen Schlüssel der Protokollteilnehmer zu kompromittieren. Aus diesem Grund werden erfindungsgemäß auch keine y-Koordinaten für solche Tests benötigt.
  • Kontrolle der Ordnung von Punkten:
  • Um mit den beispielsweise in [8] beschriebenen Additionsformeln sicherzustellen, dass ein von einem anderen Protokollteilnehmer übertragener Kurvenpunkt keine kleine Ordnung hat, sondern in der kryptographisch sicheren Untergruppe großer Ordnung liegt, ist die Kenntnis der y-Koordinate erforderlich.
    • • y-Koordinate als Teil einer übertragenen Nachricht: Die y-Koordinate ist erforderlich, um einen Punkt auf einer elliptischen Kurve eindeutig beschreiben zu können und kann daher relevante Information über eine Nachricht kodieren. Allerdings ist der Informationsgehalt der y-Koordinate auf ein Bit beschränkt und üblicherweise werden Verfahren zur Punktkompression eingesetzt, damit nicht eine lange Zahl als y-Koordinate übertragen werden muss. Verfahren zur Dekompression von Punkten, die auf der x- Koordinate eines Kurvenpunktes einer elliptischen Kurve und dem Bit einer komprimierten y-Koordinate wieder den vollständigen Punkt berechnen, sind sehr rechenaufwendig und benötigen in etwa so viel Rechenzeit wie eine Skalar-Multiplikation eines Kurvenpunktes einer elliptischen Kurve. Die erfindungsgemäß dargelegten Protokolle verwenden jedoch keine y-Koordinaten. Dadurch ergeben sich Vereinfachungen der Protokolle und der zu übertragenen Nachrichten sowie ein Leistungsgewinn durch Vermeidung von Dekompressionsverfahren.
  • Alle im Weiteren beschriebenen kryptographischen Verfahren, insbesondere die im Weiteren beschriebenen asymmetrischen, das heißt Public-Key-Krypto-Verfahren, beruhen auf dem diskreten Logarithmus-Problem in der Punktgruppe einer elliptischen Kurve über einem endlichen Körper.
  • Ein Vorteil eines solchen Public-Key-Verfahrens liegt insbesondere darin, dass es einfach und effizient möglich ist, Schlüsselpaare mit einem geheimen Schlüssel und einem dem geheimen Schlüssel zugeordneten öffentlichen Schlüssel zu erzeugen.
  • Um ein Protokoll zur Schlüsselgenerierung zu implementieren, sind lediglich die Arithmetik des Grundkörpers und ein kryptographisch guter Zufallszahlen-Generator erforderlich.
  • Sei im Folgenden x0 die x-Koordinate eines Kurvenpunktes P, der eine Untergruppe mit großer primer Ordnung d erzeugt.
  • Zur Schlüsselerzeugung wählt der Teilnehmer, das heißt der den Kurvenpunkt p erzeugende Prozessor eine Zufallszahl 0 < z < d und berechnet die x-Koordinate des Punktes z P. Die Zufallszahl z ist der geheime Schlüssel des Schlüsselpaares, und die berechnete x-Koordinate des Punktes z·P ist der öffentliche Schlüssel des Schlüsselpaares.
  • Diese Vorgehensweise ist im Folgenden in Form eines Pseudocodes anschaulich dargestellt:
    Figure 00540001
  • Für alle nachfolgend beschriebenen Protokolle ist es ausreichend, wenn nur die x-Koordinate des öffentlichen Schlüssels des jeweiligen verwendeten Schlüsselpaares bekannt ist.
  • Bei manchen im Weiteren beschriebenen Protokollen kann es erforderlich sein, dass der öffentliche Schlüssel nicht mittels z·x0, sondern mittels z–1·x0 aus dem geheimen Schlüssel z berechnet wird. Der Wert z wird erfindungsgemäß dann modulo d invertiert, wozu eine weitere modulare Arithmetik erforderlich ist.
  • 2 zeigt ein Blockdiagramm, in dem eine erfindungsgemäße Variante des Diffie-Hellmann-Schlüsseleinigungsprotokolls dargestellt ist. Um das an sich bekannte Diffie-Hellmann-Schlüsseleinigungsprotokoll erfindungsgemäß zu implementieren, sind lediglich die Arithmetik des Grundkörpers und ein kryptographisch guter Zufallszahlen-Generator erforderlich. Außerdem werden von den übertragenen und berechneten Punkten der elliptischen Kurven, die auf die oben beschriebene Weise ermittelt worden sind, nur die x-Koordinaten verwendet.
  • 2 zeigt in einem Blockdiagramm 200 einen ersten Rechner 201 sowie einen zweiten Rechner 202, welche über ein Telekommunikationsnetz 203 miteinander gekoppelt sind.
  • Im Folgenden wird angenommen, dass E eine auf oben dargestellte Weise ermittelte elliptische Kurve ist derart, dass sowohl die Punktegruppe der elliptischen Kurve E als auch die Punktegruppe der zugehörigen getwisteten elliptischen Kurve kryptographisch geeignet sind.
  • Ferner sei x0 die x-Koordinate eines Kurvenpunktes P ∊ E, der eine Untergruppe mit großer primer Ordnung d erzeugt und sei klein e das kleinste gemeinsame Vielfache der Kofaktoren von d, d.h. des großen Primteilers der Ordnung der elliptischen Kurve und d', das heißt des großen Primteilers der Ordnung der getwisteten elliptischen Kurve.
  • In einem ersten Schritt 204 wird von dem ersten Rechner 201 eine Zufallszahl zA generiert.
  • Eine erste x-Koordinate xA wird gebildet, indem die x-Koordinate x0 des Kurvenpunkts P skalar multipliziert wird mit der gewählten Zufallszahl zA (Schritt 205).
  • Entsprechend wird von dem zweiten Rechner 202 ebenfalls eine zweite Zufallszahl zB erzeugt (Schritt 206).
  • Eine zweite x-Koordinate wird gebildet durch skalare Multiplikation der Zufallszahl mit der x-Koordinate x0 eines Kurvenpunktes P (Schritt 207).
  • Die erste x-Koordinate xA wird in einer ersten Nachricht 208 von dem ersten Rechner 201 zu dem zweiten Rechner 202 übertragen.
  • Die zweite x-Koordinate xB wird in einer zweiten Nachricht 209 von dem zweiten Rechner 202 zu dem ersten Rechner 201 übertragen.
  • Die von dem ersten Rechner 201 empfangene zweite x-Koordinate xB – im Weiteren als empfangene zweite x-Koordinate yA bezeichnet – wird in einem weiteren Schritt (Schritt 210) skalar gemäß dem oben beschriebenen Verfahren mit dem kleinsten gemeinsamen Vielfachen der Kofaktoren von d und d', das heißt mit e, skalar multipliziert und für den Fall, dass yA ungleich dem unendlich fernen Punkt O ist, wird die sich ergebende Koordinate anschließend mit der ersten Zufallszahl zA multipliziert (Schritt 211), womit von dem ersten Rechner 201 der Sitzungsschlüssel gebildet worden ist.
  • Die empfangene erste x-Koordinate xA- im Weiteren als empfangene erste x-Koordinate yB bezeichnet – wird von dem zweiten Rechner 202 in einem weiteren Schritt (Schritt 212) mit dem kleinsten gemeinsamen Vielfachen e der Kofaktoren von d und d' multipliziert und für den Fall, dass das Ergebnis ungleich dem unendlich fernen Punkt O ist, wird das Ergebnis weiterhin mit der zweiten Zufallszahl zB multipliziert (Schritt 213), womit von dem zweiten Rechner 202 der Sitzungsschlüssel gebildet worden ist.
  • Durch die Schritte 210 und 212 wird verhindert, dass ein Teilnehmer bzw. ein Rechner 201, 202 oder ein externer Angreifer die ausgetauschten Kurvenpunkte durch Punkte mit kleiner Ordnung ersetzt. Auf diese Weise kann sichergestellt werden, dass der erzeugte Sitzungsschlüssel nicht kryptographisch schwach ist. Dieser Test verhindert aber nicht einen sogenannten „man-in-the-middle"-Angriff. Um einen solchen Angriff zu verhindern, sind erfindungsgemäß weitere Maßnahmen oder ein anderes Protokoll zur authentisierten Schlüsseleinigung vorgesehen, wie sie im Weiteren beschrieben sind.
  • Die sogenannten MTI-Protokolle (Matsumoto, Takashima, Imai-Protokolle) beschreiben eine Klasse von Protokollen zur authentisierten Schlüsseleinigung, die als Derivate des Diffie-Hellman-Protokolls ohne digitale Signaturen auskommen und damit unter Verwendung eines kryptographisch guten Zufallszahlen-Generators und des Charakteristik-2-Rechenwerks implementiert werden können.
  • Im Folgenden werden Varianten der ursprünglichen bekannten MTI-Protokolle auf Basis elliptischer Kurven beschrieben, wobei von übertragenen und berechneten Punkten wiederum nur die x-Koordinaten verwendet werden.
  • MTI/AO-Protokoll
  • Im Folgenden wird das erfindungsgemäß angepasste MTI/A0-Protokoll beschrieben, welches eine auf die oben beschriebene Weise ermittelte elliptische Kurve verwendet.
  • Anders ausgedrückt wird gemäß diesem Ausführungsbeispiel vorausgesetzt, dass die elliptische Kurve E eine elliptische Kurve ist, so dass sowohl die Punktegruppe der elliptischen Kurve als auch die Punktegruppe der zugehörigen getwisteten elliptischen Kurve kryptographisch geeignet sind, das heißt die oben beschriebenen kryptographischen Gütekriterien erfüllen.
  • Wiederum sei x0 die x-Koordinate eines Kurvenpunktes P ∊ E, der einer Untergruppe mit großer primer Ordnung d erzeugt, sei e das kleinste gemeinsame Vielfache der Kofaktoren von d, das heißt des großen Primteilers der Ordnung der elliptischen Kurve, und d', das heißt des großen Primteilers der Ordnung der zugehörigen getwisteten elliptischen Kurve, und sei pA der geheime Schlüssel und QA = x(pA·P) der öffentliche Schlüssel des Benutzers des ersten Rechners 301 bzw. pB der geheime Schlüssel und QB = x(pB·B) der öffentliche Schlüssel des Benutzers des zweiten Rechners 302 (vergleiche Blockdiagramm 300 in 3).
  • Der erste Rechner 301 und ein zweiter Rechner 302 sind wiederum über ein Kommunikationsnetz 303 vorzugsweise das Internet, miteinander gekoppelt.
  • In einem ersten Schritt (Schritt 304) wird von dem ersten Rechner 301 das Zertifikat des öffentlichen Schlüssels QB des Benutzers des zweiten Rechners 302 überprüft und für den Fall, das dass Zertifikat ungültig ist, wird eine Fehlermeldung ausgegeben. Ist das Zertifikat des öffentlichen Schlüssels QB des Benutzers des zweiten Rechners 302 gültig, so wird in einem weiteren Schritt (Schritt 305) eine erste Zufallszahl zA > 0 erzeugt. Eine erste x-Koordinate xA wird in einem weiteren Schritt (Schritt 306) ermittelt, indem die x-Koordinate x0 des Kurvenpunktes P skalar multipliziert wird mit der ersten Zufallszahl zA.
  • Von dem zweiten Rechner 302 wird seinerseits das Zertifikat des öffentlichen Schlüssels QA des Benutzers des ersten Rechners 301 überprüft und bei dessen Ungültigkeit wird eine Fehlermeldung ausgegeben (Schritt 307).
  • Ist das Zertifikat des öffentlichen Schlüssels QA des Benutzers des ersten Rechners 301 gültig, so wird von dem zweiten Rechner 302 unter Verwendung des Zufallszahlen-Generators eine zweite Zufallszahl zB erzeugt (Schritt 308) und es wird eine zweite x-Koordinate xB ermittelt (Schritt 309), indem die x-Koordinate x0 des Kurvenpunktes P skalar multipliziert wird mit der zweiten Zufallszahl zB.
  • Die erste x-Koordinate xA wird in einer ersten digitalen Nachricht 310 von dem ersten Rechner 301 zu dem zweiten Rechner 302 übertragen.
  • Die zweite x-Koordinate xB wird in einer zweiten digitalen Nachricht 311 von dem zweiten Rechner 302 zu dem ersten Rechner 301 übertragen.
  • Die in der zweiten Nachricht 311 von dem ersten Rechner 301 empfangene erste x-Koordinate xB, im Weiteren als yA bezeichnet, wird von dem ersten Rechner 301 mit dem kleinsten gemeinsamen Vielfachen e der Kofaktoren von d und d' multipliziert und für den Fall, dass der sich ergebende Wert gleich dem unendlich fernen Punkt O ist, wird eine Fehlermeldung ausgegeben (Schritt 312).
  • Ist der sich ergebende Wert ungleich dem unendlich fernen Punkt O, so wird der empfangene Wert yA multipliziert mit dem geheimen Schlüssel pA des Benutzers des ersten Rechners 301, womit sich ein erster Zwischenwert tA ergibt (Schritt 313).
  • Ferner wird von dem ersten Rechner 301 der öffentliche Schlüssel QB des Benutzers des zweiten Rechners 302 mit der ersten Zufallszahl zA multipliziert, womit ein zweiter Zwischenwert sA gebildet wird (Schritt 314).
  • Ferner verknüpft der erste Rechner 301 den ersten Zwischenwert tA mit dem zweiten Zwischenwert sA kommutativ, womit der Sitzungsschlüssel kA von dem ersten Rechner 301 gebildet wird (Schritt 315).
  • Der zweite Rechner 302 multipliziert die in der ersten Nachricht 309 enthaltene und empfangene erste x-Koordinate xA, im Weiteren bezeichnet als yB, mit dem kleinsten gemeinsamen Vielfachen e der Kofaktoren von d und d' und erzeugt für den Fall, dass das Ergebnis der Multiplikation gleich dem unendlich entfernten Punkt O ist, ein Fehlersignal (Schritt 316).
  • Ist das Ergebnis ungleich dem unendlich fernen Punkt O, so wird von dem zweiten Rechner 302 die erste x-Koordinate yB multipliziert mit dem geheimen Schlüssel pB des Benutzers des zweiten Rechner 302, womit ein dritter Zwischenwert tB gebildet wird (Schritt 317).
  • Ferner wird der öffentliche Schlüssel QA des Benutzers des ersten Rechners 301 mit der zweiten Zufallszahl zB, welche lediglich dem zweiten Rechner 302 bekannt ist, skalar multipliziert, womit ein vierter Zwischenwert sB berechnet wird (Schritt 318).
  • In einem weiteren Schritt (Schritt 319) wird unter Verwendung der gleichen kommutativen Verknüpfung, welche in dem ersten Rechner 301 durchgeführt wird, eine kommutative Verknüpfung gebildet zwischen dem dritten Zwischenwert tB und dem vierten Zwischenwert sB, womit von dem zweiten Rechner 302 der Sitzungsschlüssel kg gebildet wird, welcher gleich ist dem von dem ersten Rechner 301 gebildeten Sitzungsschlüssel kA.
  • Nach Ausführung des in 3 dargestellten Protokolls besitzen sowohl der erste Rechner 301 als auch der zweite Rechner 302 den Sitzungsschlüssel zA·pB ° zB·pA. Als kommutative Verknüpfung können beispielsweise die normale Addition oder Multiplikation im Grundkörper als Operation verwendet werden.
  • Durch die Schritte 312 und 316 wird verhindert, dass ein Teilnehmer, das heißt der erste Rechner 301, der zweite Rechner 302 oder auch ein externer Angreifer die ausgetauschten Kurvenpunkte der elliptischen Kurven durch Punkte mit kleiner Ordnung ersetzt. Auf diese Weise kann sichergestellt werden, dass der generierte Sitzungsschlüssel nicht kryptographisch schwach ist.
  • Zur weiteren Erhöhung der kryptographischen Sicherheit ist es vorgesehen, nicht den auf oben beschriebene Weise unmittelbar berechneten Schlüssel kA = kg als Sitzungsschlüssel zu verwenden, sondern ein mittels einer Schlüssel-Ableitungsfunktion f (Key-Derivation Function) berechneten Wert f(kA) = f(kB).
  • Die Schlüssel-Ableitungsfunktion f sollte eine Funktion sein, welche die algebraische Funktion des endlichen Körpers zerstört.
  • 4 zeigt in einem Blockdiagramm 400 die einzelnen Schritte gemäß dem MTI/B0-Protokoll unter Verwendung einer erfindungsgemäß ermittelten elliptischen Kurve.
  • Die Verfahrensschritte bis zum Austausch der x-Koordinaten zwischen dem ersten Rechner 301 und dem zweiten Rechner 302 sind gleich der Vorgehensweise wie gemäß dem MTI/A0-Protikoll und werden aus diesem Grund nicht erneut erläutert.
  • Gemäß diesem Ausführungsbeispiel werden jedoch die jeweils empfangenen x-Koordinaten yA, yB in anderer Weise weiterverarbeitet.
  • Gemäß diesem Ausführungsbeispiel wird von dem ersten Rechner 302 die zweite x-Koordinate yA mit dem multiplikativen Inversen p des geheimen Schlüssels pA des Benutzers des ersten Rechners 301 multipliziert (Schritt 401), womit der erste Zwischenwert tA gebildet wird. (Das Inverse pA –1 wird in Z/dZ berechnet).
  • Ferner wird von dem ersten Rechner 301 ein zweiter Zwischenwert sA berechnet mittels Multiplikation der x-Koordinate x0 des Kurvenpunktes P mit der ersten Zufallszahl zA (Schritt 402).
  • Der Sitzungsschlüssel kA wird in einem weiteren Schritt (Schritt 403) von dem ersten Rechner 301 durch kommutative Verknüpfung des ersten Zwischenwertes tA mit dem zweiten Zwischenwert sA gebildet.
  • Von dem zweiten Rechner 302 wird ein dritter Zwischenwert tB gebildet mittels Multiplikation der empfangenen ersten x-Koordinate yB mit dem multiplikativen Inversen pB –1 des geheimen Schlüssels pB des Benutzers des zweiten Rechners 302 (Schritt 404).
  • Ein vierter Zwischenwert sB wird gebildet mittels Multiplikation der x-Koordinate x0 des Kurvenpunktes P mit der zweiten Zufallszahl zB (Schritt 405).
  • Der Sitzungsschlüssel kB wird von dem zweiten Rechner 302 mittels kommutativer Verknüpfung des dritten Zwischenwertes tB mit dem vierten Zwischenwert sB gebildet (Schritt 406).
  • Nach Durchführung des MTI/B0-Protokolls besitzen beide Rechner 301, 302 den Sitzungsschlüssel zA·x0 ° zB·x0.
  • Auch in diesem Fall kann wiederum unter Verwendung einer Schlüssel-Ableitungsfunktion f der eigentlich zu verwendende Sitzungsschlüssel gebildet werden.
  • Die multiplikativen Inversen pA –1, pB –1 der geheimen Schlüssel der Benutzer des ersten Rechners 301 und des zweiten Rechners 302 können bereits bei der Generierung der Schlüssel beziehungsweise der Zertifikate vorberechnet und in dem jeweiligen Rechner 301, 302 gespeichert sein.
  • 5 zeigt in einem Blockdiagramm 500 eine erfindungsgemäße Realisierung einer Variante des MTI/C0-Protokolls.
  • Wiederum sind die Verfahrensschritte bis zum Austausch der x-Koordinaten xA, xB mit dem Vorgehen im Rahmen des MTI/A0-Protokolls identisch und werden aus diesem Grunde nicht erneut erläutert.
  • Der erste Rechner 301 multipliziert die empfangene zweite x-Koordinate yA mit dem multiplikativen Inversen pA –1 des geheimen Schlüssels pA des Benutzers des ersten Rechners 301 (Schritt 501) und multipliziert das Ergebnis mit der ersten Zufallszahl zA (Schritt 502), womit der Sitzungsschlüssel kA gebildet wird.
  • Der zweite Rechner 302 multipliziert die empfangene erste x-Koordinate yB mit dem multiplikativen Inversen pB –1 des geheimen Schlüssels pB des Benutzers des zweiten Rechners 302 (Schritt 503) und multipliziert anschließend das Ergebnis mit der zweiten Zufallszahl zB (Schritt 504), womit von dem zweiten Rechner 302 der Sitzungsschlüssel kB gebildet wird.
  • Nach Ausführung des MTI/C0-Protokolls besitzen beide Rechner 301, 302 den Sitzungsschlüssel zA·zB·x0. Wiederum gelten sinngemäß die gleichen Anmerkungen wie bezüglich dem Ausführungsbeispiel betreffend das MTI/A0-Protokoll. Wiederum können die multiplikativen Inversen der jeweiligen geheimen Schlüssel bereits bei der Generierung der geheimen Schlüssel beziehungsweise der Zertifikate vorberechnet und gespeichert werden.
  • 6 zeigt in einem Blockdiagramm 600 die erfindungsgemäße Implementierung einer Variante des sogenannten MTI/C1-Protokolls, bei dem lediglich x-Koordinaten verwendet werden.
  • Die Schritte 304, 305, 306, welche von dem ersten Rechner 301 ausgeführt werden und sowie die Schritte 307, 308, 309, welche von dem zweiten Rechner 302 ausgeführt werden, sind mit dem Ausführungsbeispiel gemäß dem MTI/A0-Protokoll identisch und werden aus diesem Grund nicht erneut erläutert.
  • Im Unterschied zu den oben beschriebenen Protokollen wird gemäß diesem Ausführungsbeispiel die erste x-Koordinate xA noch mit dem geheimen Schlüssel pA des Benutzers des ersten Rechners 301 multipliziert (Schritt 601) und erst anschließend wird das Produkt in einer ersten digitalen Nachricht 602 zu dem zweiten Rechner 302 übertragen.
  • In entsprechender Weise wird von dem zweiten Rechner 302 die zweite x-Koordinate xB mit dem geheimen Schlüssel pB des Benutzers des zweiten Rechners 302 multipliziert (Schritt 603) und nur das Ergebnis wird in einer zweiten digitalen Nachricht 604 von dem zweiten Rechner 302 zu dem ersten Rechner 301 übertragen.
  • Ist das Produkt des von dem ersten Rechner 301 empfangenen Wertes – im Weiteren als yA bezeichnet – in der zweiten Nachricht 604 mit dem kleinsten gemeinsamen Vielfachen e gleich dem unendlich fernen Punkt O, dann erzeugt der erste Rechner 301 eine Fehlermeldung (Schritt 605), sonst wird der empfangene Wert mit der ersten Zufallszahl zA multipliziert (Schritt 606), womit der Sitzungsschlüssel kA von dem ersten Rechner 301 erzeugt wird.
  • In entsprechender Weise wird von dem zweiten Rechner 302 dessen in der ersten Nachricht 602 enthaltener und von dem zweiten Rechner 302 empfangener Wert – im Weiteren bezeichnet mit yB – mit dem kleinsten gemeinsamen Vielfachen e multipliziert und es wird geprüft, ob das Produkt gleich ist dem fernen Punkt O.
  • Ist dies der Fall, so wird eine Fehlernachricht erzeugt (Schritt 607), sonst wird der empfangene Wert mit der zweiten Zufallszahl z3 multipliziert, womit der Sitzungsschlüssel kg von dem zweiten Rechner 302 ermittelt wird (Schritt 608).
  • Nach Ausführung dieses Protokolls besitzen der erste Rechner 301 und der zweite Rechner 302 beide den Sitzungsschlüssel zA·zB·pA·pB·x0. Es gelten wiederum die gleichen obigen Anmerkungen zu Ausgestaltungen dieses Protokolls.
  • 7 zeigt an einem Blockdiagramm 700 die erfindungsgemäße Implementierung einer Verschlüsselung beziehungsweise Entschlüsselung von digitalen Daten gemäß einer erfindungsgemäßen Ausgestaltung des Verfahrens gemäß ElGamal.
  • Hierzu sind erfindungsgemäß zum Verschlüsseln die Arithmetik des Grundkörpers und ein kryptographisch guter Zufallszahlen-Generator in einem ersten Rechner 701 und zum Entschlüsseln lediglich die Arithmetik des Grundkörpers in einem zweiten Rechner 702 erforderlich. Der erste Rechner 701 und der zweite Rechner 702 sind über ein Telekommunikationsnetz 703 miteinander gekoppelt.
  • Außerdem werden von den übertragenen und berechneten Punkten der elliptischen Kurve wiederum nur die x-Koordinaten verwendet.
  • Sei im Folgendem x0 die x-Koordinate eines Kurvenpunkts P, der eine Untergruppe mit großer primer Ordnung d erzeugt, seien pB der geheime Schlüssel und QB = x(pB·P) der öffentliche Schlüssel des Benutzers des zweiten Rechners 702, seien pA der geheime Schlüssel und QA = x(pA·P) der öffentliche Schlüssel des Benutzers des ersten Rechners 701.
  • Damit der erste Rechner 701 eine Nachricht 0 ≤ m ≤ d für den zweiten Rechner 702 verschlüsseln kann, werden folgende Verfahrensschritte durchgeführt.
  • In einem ersten Schritt wird eine erste Zufallszahl zA erzeugt (Schritt 704). Anschließend wird die x-Koordinate x0 des Kurvenpunktes P mit der ersten Zufallszahl zA multipliziert (Schritt 705) und es wird der öffentliche Schlüssel QB des Benutzers des zweiten Rechners 702 ebenfalls mit der ersten Zufallszahl zA multipliziert, womit ein erster Zwischenwert yA gebildet wird (Schritt 706).
  • Eine verschlüsselte Nachricht 708 wird gebildet (Schritt 707) unter Verwendung des in Schritt 705 gebildeten ersten Zwischenwerts yA, der beispielsweise der jeweiligen Nachricht hinzuaddiert wird und unter Verwendung der ersten x- Koordinate xA, welche in Schritt 705 erzeugt wurde als für die Verschlüsselung verwendeter Schlüssel.
  • Die verschlüsselte Nachricht 708 wird von dem zweiten Rechner 702 nach dessen Empfang entschlüsselt, indem der empfangene Wert xB multipliziert wird mit dem geheimen Schlüssel pB des Benutzers des zweiten Rechners 702 (Schritt 709), und es erfolgt beispielsweise das Bilden der Differenz aus dem in Schritt 709 ermittelten Wert und dem mitübertragenen Wert yB (Schritt 710).
  • Sämtliche arithmetischen Schritte werden im Grundkörper ausgeführt.
  • Üblicherweise sollte der Benutzer des zweiten Rechners 702 noch ein Zertifikat seines öffentlichen Schlüssels QB besitzen, welches der erste Rechner 701 vor der Verwendung des öffentlichen Schlüssels QB des Benutzers des zweiten Rechners 702 prüfen sollte.
  • Eine solche Prüfung eines Zertifikates kann beispielsweise mittels der im Weiteren beschriebenen Verfahren zur Überprüfung digitaler Signaturen erfolgen.
  • Falls in einer Anwendung die zu verschlüsselnde Nachricht m ein Element eines endlichen Körpers kann es vorteilhaft sein, wenn nicht die x-Koordinate des Punktes yA, sondern ein von yA abgeleiteter Wert f(yA) zum Verschlüsseln der zu verschlüsselnden Nachricht m verwendet wird.
  • Es sollte f eine Funktion sein, welche die algebraische Struktur des endlichen Körpers zerstört, vorzugsweise eine Schlüssel-Ableitungsfunktion oder eine Hash-Funktion.
  • Auf diese Weise kann einerseits Angriffen auf die zu verschlüsselnde Nachricht m selbst, welche die algebraische Struktur ausnutzen vorgebeugt werden, andererseits können statistische Schwächen der einzelnen Bits von yA ausgeglichen werden.
  • Eine Vorgehensweise zur Konstruktion von Authentisierungsprotokollen mittels Public-Key-Verfahren besteht darin, die Verschlüsselungsverfahren wie oben beschrieben mit symmetrischen Verschlüsselungsverfahren zu kombinieren.
  • Auf diese Weise erhält man ein 2-Runden-Challenge-Response-Protokoll zur Nachrichtenauthentisierung, das auf asymmetrischen Krypto-Verfahren beruht.
  • Um ein solches Authentisierungsverfahren zu implementieren, sind für den zweiten, die Authentisierung durchführenden, Rechner 802 die Arithmetik des Grundkörpers, ein kryptographisch guter Zufallszahlen-Generator und das verwendete symmetrische Verschlüsselungsverfahren notwendig.
  • Ein erster Rechner 801, welcher zu authentisieren ist, benötigt hingegen die Arithmetik des Grundkörpers und das verwendete symmetrische Verschlüsselungsverfahren.
  • Der erste Rechner 801 und der zweite Rechner 802 sind über ein Telekommunikationsnetzwerk 803 miteinander gekoppelt.
  • Außerdem ist anzumerken, dass von den übertragenen berechneten Punkten der elliptischen Kurven wiederum nur die x-Koordinaten erfindungsgemäß verwendet werden.
  • Sei im Folgendem x0 die x-Koordinate eines Kurvenpunktes P. der eine Untergruppe mit großer primer Ordnung d erzeugt, seien pP der geheime Schlüssel des Benutzers des ersten Rechners 801 und QP = x(pP·P) der öffentliche Schlüssel des Benutzers des ersten Rechners 801. Sei MAC(k, m) ein (symmetrisches) Verfahren zur Erzeugung eines Message Authentication Codes (MACs) der Nachricht m unter Verwendung des Schlüssels k.
  • Der Protokollablauf des Authentisierungsverfahrens gemäß diesem Ausgangsbeispiel der Erfindung ist in dem Blockdiagramm 800 in 8 dargestellt.
  • Der zweite Rechner 802 prüft das Zertifikat des öffentlichen Schlüssel QP des ersten Rechners 801 und gibt eine Fehlermeldung aus, wenn das Zertifikat ungültig ist (Schritt 804).
  • In einem weiteren Schritt (Schritt 805) erzeugt der zweite Rechner 802 eine erste Zufallszahl z1 und anschließend erzeugt der zweite Rechner 802 in einem weiteren Schritt (Schritt 806) eine zweite Zufallszahl z2.
  • Es wird ein erster Zwischenwert xV mittels Multiplikation der x-Koordinate x0 des Kurvenpunktes P mit der ersten Zufallszahl z1 ermittelt (Schritt 807) sowie eine zweiter Zwischenwert yV mittels Multiplikation des öffentlichen Schlüssels QP des ersten Rechners 801 mit der ersten Zufallszahl z1 (Schritt 808).
  • In einer ersten digitalen Nachricht 809 werden der ersten Zwischenwert xV sowie die Summe des zweiten Zwischenwertes yV und der zweiten Zufallszahl z2 zu dem ersten Rechner 801 übertragen.
  • Die von dem ersten Rechner 801 empfangenen zwei Werte (xv, yv + z2) – im Weiteren bezeichnet als Wertetupel (xP, yP) werden von dem ersten Rechner 801 derart bearbeitet, dass der erste empfangene Wert xP, welcher gleich ist dem ersten Zwischenwert xV, multipliziert wird mit dem geheimen Schlüssel pP des Benutzers des ersten Rechners 801, womit ein dritter Zwischenwert gebildet wird (Schritt 810).
  • Ferner wird ein MAC über die Nachricht m unter Verwendung der Differenz des ersten empfangenen Werts xP und des zweiten empfangenen Werts yP als Schlüssel ermittelt, womit ein Authentisierungswert r bestimmt wird (Schritt 811), der in einer zweiten digitalen Nachricht 812 zu dem zweiten Rechner 802 übermittelt wird.
  • Der zweite Rechner 802 bildet einen MAC über die zu authentisierende Nachricht m unter Verwendung der zweiten Zufallszahl z2 als kryptographischen Schlüssel (Schritt 813), womit ein vierter Zwischenwert t gebildet wird.
  • Das Ergebnis wird mit dem empfangenen Authentisierungswert r verglichen und bei Übereinstimmung der beiden Werte wird die Authentisierung als erfolgreich angesehen (Schritt 814).
  • Bei der Implementierung von Verfahren zur Erzeugung digitaler Signaturen ist zu berücksichtigen, dass alle gebräuchlichen Verfahren zur digitalen Signatur zusätzlich zur Arithmetik des Grundkörpers und den darauf basierenden elliptischen Kurven auch modulare Berechnungen, zumindest Berechnungen über Z, benötigen.
  • Im Gegensatz dazu ist zur Implementierung der gebräuchlichen Verfahren zur Überprüfung digitaler Signaturen auf Basis elliptischer Kurven (ElGamal, EC-DAS, EC-GDSA) bereits die Arithmetik des Grundkörpers ausreichend.
  • In den nachfolgenden Beschreibungen der Ausführungsbeispiele zum Erstellen und Überprüfen digitaler Signaturen wird ein Signaturwert r einer Signatur (r, s) in verschiedenen mathematischen Zusammenhängen verwendet, ohne dass dieses durch die Notation explizit angegeben wird.
  • Der Wert n wird entweder als Körperelement des endlichen Körpers GF( 2m ) bzw. in diesem Kontext auch als die x-Koordinate eines Punktes auf einer elliptischen Kurve, oder als natürliche Zahl (bei Berechnungen modulo der Ordnung des Basispunktes oder als Skalar bei Skalar-Multiplikationen) interpretiert.
  • Es wird jeweils eindeutig aus dem Kontext der arithmetischen Operationen deutlich, wie der Wert r jeweils zu interpretieren ist.
  • Um EC-ElGamal-Signaturen zu erzeugen, sind die Arithmetik des Grundkörpers, ein kryptographisch guter Zufallszahlen-Generator und eine Arithmetik zum Rechnen in Z/dZ, wobei d die Ordnung der Punktegruppe der elliptischen Kurve ist, erforderlich.
  • Bei der im Folgenden beschriebenen Protokoll-Variante werden von den berechneten Punkten der elliptischen Kurve wiederum nur die x-Koordinaten verwendet.
  • Sei im Folgenden E eine elliptische Kurve, so dass die Punktegruppe der Kurve kryptographisch geeignet ist, sei x0 die x-Koordinate eines Kurvenpunkts P, der eine Untergruppe mit großer primer Ordnung d erzeugt und seien pA der geheime Schlüssel und QA = x(pA·P) der öffentliche Schlüssel des Benutzers des ersten Rechners.
  • Damit der erste Rechner den Hash-Wert 0 ≤ h(m) < d einer Nachricht m signieren kann, sind folgende, in dem Ablauf-Diagramm 900 in 9 dargestellten Verfahrensschritte notwendig.
  • In einem ersten Schritt wird eine Zufallszahl z erzeugt, wobei gilt: 0 < z < d (Schritt 901). Die x-Koordinate x0 des Kurvenpunktes P einer elliptischen Kurve E wird mit der Zufallszahl z multipliziert, womit ein erster Zwischenwert r gebildet wird (Schritt 902).
  • Ferner wird die multiplikative Inverse der Zufallszahl z–1 modulo d gebildet und als zweiter Zwischenwert z ermittelt (Schritt 903). Anschließend wird das Ergebnis multipliziert mit der Differenz des Hash-Werts h(m) und dem Produkt des ersten Zwischenwerts r mit dem geheimen Schlüssel pA, des Benutzers des ersten Rechners, wobei das Produkt modulo d berechnet wird (Schritt 904), womit ein dritter Zwischenwert s gebildet wird.
  • Es ist anzumerken, dass die Schritte 903 und 904 in dem Körper Z/dZ berechnet werden.
  • Ist der dritte Zwischenwert s = 0, dann wird das Verfahren erneut durchgeführt für eine neue Zufallszahl beginnend in Schritt 901.
  • Sonst werden der erste Zwischenwert r und der dritte Zwischenwert s als Ergebnis ausgegeben. Das Ergebnis, d.h. das Zahlenpaar (r, s) stellt eine gültige Signatur des Hash-Werts h(m) der Nachricht m dar.
  • 10 zeigt ein Verfahren zur Verifikation von ElGamal-Signaturen, wobei wiederum nur die x-Koordinaten verwendet werden.
  • Um das Protokoll zur Verifikation von EC-ElGamal-Signaturen zu implementieren, ist lediglich die Arithmetik des Grundkörpers notwendig.
  • Sei im Folgenden E eine elliptische Kurve über GF(2m) mit der Kurvengleichung y2 + x·y = x3 + a2·x2 + a6, (43) so dass die Punktegruppe der elliptischen Kurve kryptographisch geeignet ist, sei x0 die x-Koordinate eines Kurvenpunktes P. der eine Untergruppe mit großer primer Ordnung d erzeugt und sei QA = x(pA·P) der öffentliche Schlüssel des Benutzers des ersten Rechners.
  • Damit der zweite Rechner eine Signatur (r, s) einer Nachricht m mit Hash-Wert 0 < h(m) < d verifizieren kann, werden folgende, in dem Ablauf-Diagramm 1000 in 10 dargestellten Verfahrensschritte von dem zweiten Rechner durchgeführt.
  • Zunächst wird das Zertifikat des öffentlichen Schlüssels QA des Benutzers des ersten Rechners überprüft und bei Ungültigkeit des Zertifikats wird eine Fehlermeldung ausgegeben (Schritt 1001).
  • Anschließend wird geprüft, ob der Wert r der Signatur (r, s) E GF(2m) ist, ob der Wert r ≠ 0 ist, sowie ob der Wert s größer als 0 und kleiner als d ist.
  • Ist eine der Bedingungen nicht erfüllt, so wird wiederum eine Fehlermeldung ausgegeben (Schritt 1002).
  • Sonst wird der öffentliche Schlüssel QA des Benutzers des ersten Rechners mit dem ersten Wert r der Signatur (r, s) multipliziert, womit ein vierter Zwischenwert x gebildet wird (Schritt 1003).
  • In einem weiteren Schritt (Schritt 1004) wird ein fünfter Zwischenwert y mittels Multiplikation des ersten Werts r mit dem zweiten Wert s der Signatur (r, s) gebildet.
  • Ein sechster Zwischenwert z wird gebildet mittels Multiplikation des Hash-Werts h(m) mit der x-Koordinate x0 des Punktes P (Schritt 1005).
  • Wenn ein quadratisches Polynom über dem vierten Zwischenwert x, dem fünften Zwischenwert y, sowie dem sechsten Zwischenwert z gleich 0 ist, dann gilt die Signatur als verifiziert (Schritt 1006).
  • Die Schritte 1003, 1004, 1005 sind Skalar-Multiplikationen mit Punkten der elliptischen Kurve E. In dem Schritt 1006 wird anschaulich ein quadratisches Polynom über dem endlichen Körper GF(2m) ausgewertet. Das heißt, dass zur Berechnung des Werts q(x, y, z) lediglich die Arithmetik des Körpers GF(2m) notwendig ist.
  • Dabei hat das Polynom q (x1, x2, x3) die Form: q(x1, x2, x3) = x23 (x1 + x2)2 + x3x1x2 + x21 x22 + a6, (44)wobei a6 der entsprechende Parameter der elliptischen Kurve E ist.
  • Um EC-DSA-Signaturen erzeugen zu können, sind die Arithmetik des Grundkörpers, ein kryptographisch guter Zufallszahlen-Generator und eine Arithmetik zum Rechnen in Z/dZ, wobei d die Ordnung der Punktegruppe der elliptischen Kurve E ist, erforderlich.
  • Bei der im Folgenden beschriebenen Protokollvariante werden wiederum von den berechneten Punkten der elliptischen Kurve E nur die x-Koordinaten verwendet.
  • Sei im folgenden E eine elliptische Kurve, so dass die Punktegruppe der elliptischen Kurve kryptographisch geeignet ist, sei x0 die x-Koordinate eines Kurvenpunktes P, der eine Untergruppe mit großer primer Ordnung d erzeugt und sei PA = x(pA·P) der öffentliche Schlüssel des Benutzers des ersten Rechners.
  • Damit der erste Rechner den Hash-Wert 0 < h(m) < d einer Nachricht m signieren kann, sind folgende Schritte vorgesehen, welche in dem Ablaufdiagramm 1100 in 11 dargestellt sind und von dem ersten Rechner durchgeführt werden.
  • Zunächst wird eine Zufallszahl z gebildet, für die gilt 0 < z < d (Schritt 1101).
  • Anschließend wird die x-Koordinate x0 des Kurvenpunktes P mit der Zufallszahl z multipliziert, womit ein erster Zwischenwert r gebildet wird (Schritt 1102).
  • Anschließend wird ein zweiter Zwischenwert gebildet, indem die multiplikative Inverse der Zufallszahl z modulo d gebildet wird (Schritt 1103).
  • Ein dritter Zwischenwert s wird gebildet durch Multiplikation modulo d des zweiten Zwischenwerts mit der Summe des Hash-Werts h(m) und dem Produkt des ersten Zwischenwerts r mit dem geheimen Schlüssel pA des Benutzers des ersten Rechners (Schritt 1104).
  • Ist der dritte Zwischenwert gleich dem Wert 0, dann wird das Verfahren mit Schritt 1101 von vorne begonnen.
  • Sonst wird das Zahlenpaar mit dem ersten Zwischenwert und dem dritten Zwischenwert ausgegeben, wobei das Zahlenpaar (r, s) eine gültige Signatur des Hash-Wertes h(m) der Nachricht m darstellt.
  • Es ist anzumerken, dass die Verfahrensschritte 1103 und 1104 jeweils in dem Körper Z/dZ berechnet werden.
  • Der Algorithmus zur Verifikation von EC-DSA-Signaturen unterscheidet sich wiederum von den bekannten Verfahren, da erfindungsgemäß nur die x-Koordinaten verwendet werden.
  • Um das Protokoll zur Verifikation von EC-DSA-Signaturen zu implementieren, ist erfindungsgemäß lediglich die Arithmetik des Grundkörpers erforderlich.
  • Sei im Folgendem E eine elliptische Kurve über GF(2m) mit der Kurvengleichung y2 + x·y = x3 + a2·x2 + a6, (45)so dass die Punktegruppe der elliptischen Kurve kryptographisch geeignet ist, sei x0 die x-Koordinate eines Kurvenpunkts P, der eine Untergruppe mit großer primer Ordnung d erzeugt und sei QA = x(pA·P) der öffentliche Schlüssel des Benutzers des ersten Rechners.
  • Damit der zweite Rechner eine Signatur (r, s) einer Nachricht m mit dem Hash-Wert 0 < h(m) < d verifizieren kann, sind folgende, in dem Ablaufdiagramm 1200 in 12 dargestellten Verfahrensschritte vorgesehen.
  • Zunächst wird das Zertifikat des öffentlichen Schlüssels QA des Benutzers des ersten Rechners überprüft und bei Ungültigkeit des Zertifikats wird von dem zweiten Rechner eine Fehlermeldung ausgegeben (Schritt 1201).
  • Ferner wird geprüft, ob der erste Wert der Signatur r Element des Körpers GF(2m) ist und ob der erste Wert r ungleich 0 ist sowie ob der zweite Wert der Signatur s größer als 0 und kleiner als d ist. Ist eine der Bedingungen nicht erfüllt, so wird von dem zweiten Rechner eine Fehlermeldung generiert und ausgegeben (Schritt 1202).
  • Ein vierter Zwischenwert x wird in einem weiteren Schritt gebildet mittels Multiplikation des ersten Werts r der Signatur mit dem öffentlichen Schlüssel QA des Benutzers des ersten Rechners (Schritt 1203).
  • Ferner wird ein fünfter Zwischenwert y gebildet mittels Multiplikation des zweiten Werts s der Signatur (r, s) mit dem ersten Wert r der Signatur (Schritt 1204).
  • Ein sechster Zwischenwert z wird gebildet mittels Multiplikation des Hash-Wertes h(m) mit der x-Koordinate x0 des Kurvenpunkts P (Schritt 1205).
  • Die EC-DSA-Signatur wird als gültig akzeptiert, wenn das quadratische Polynom q über dem endlichen Körper GF(2m) über den vierten Zwischenwert x, den fünften Zwischenwert y sowie den sechsten Zwischenwert z gleich 0 ist (Schritt 1206).
  • Es ist anzumerken, dass die Verfahrensschritte 1203, 1204 und 1205 Skalar-Multiplikationen mit Punkten der elliptischen Kurve sind. Zur Berechnung des Werts des quadratischen Polynoms q(x, y, z) ist lediglich die Arithmetik des Grundkörpers erforderlich.
  • Das Polynom q(x1, x2, x3) hat die Form: q(x1, x2, x3) = x23 (x1 + x2)2 + x3x1x2 + x21 x22 + a6, (46)wobei a6 der entsprechende Parameter der elliptischen Kurve E ist.
  • Um EC-GDSA-Signaturen erzeugen zu können, sind die Arithmetik des Grundkörpers, ein kryptographisch guter Zufallszahlen-Generator und eine Arithmetik zum Rechnen in Z/dZ, wobei d die Ordnung der Punktegruppe der elliptischen Kurve E ist, vorgesehen.
  • Bei der im Weiteren beschriebenen Protokollvariante werden von den berechneten Punkten der elliptischen Kurve wiederum nur die x-Koordinaten verwendet.
  • Sei im folgendem E eine elliptische Kurve, so dass die Punktegruppe kryptographisch geeignet ist, sei x0 die x-Koordinate eines Kurvenpunktes P, der eine Untergruppe mit großer primer Ordnung d erzeugt und sei pA der geheime Schlüssel und QA = x(pA –1·P) der öffentliche Schlüssel des ersten Rechners.
  • Damit der erste Rechner den Hash-Wert 0 < h(m) < d einer Nachricht m signieren kann, sind folgende, in einem Ablaufdiagramm 1300 in 13 dargestellten Verfahrensschritte vorgesehen, welche von dem ersten Rechner durchgeführt werden.
  • In einem ersten Schritt (Schritt 1301) wird eine Zufallszahl z erzeugt, wobei gilt: 0 < z < d.
  • In einem weiteren Schritt (Schritt 1302) wird ein erster Zwischenwert r gebildet mittels skalarer Multiplikation der Zufallszahl z mit der x-Koordinate x0 des Kurvenpunktes P.
  • Ein zweiter Zwischenwert s wird gebildet mittels Multiplikation modulo d des geheimen Schlüssels pA des Benutzers des ersten Rechners mit der Differenz des Produkts der Zufallszahl z mit dem ersten Zwischenwert r und dem Hash-Wert h(m) (Schritt 1303).
  • Ist der zweite Zwischenwert s gleich dem Wert 0, so wird das Verfahren mit Schritt 1301 erneut durchgeführt.
  • Ist der zweite Zwischenwert s ungleich 0, so werden der erste Zwischenwert r und der zweite Zwischenwert s als Zahlentupel ausgegeben, wobei das Zahlentupel (r, s) eine gültige Signatur des Hash-Werts h(m) der Nachricht m darstellt.
  • Es ist anzumerken, dass die Schritte 1302 und 1303 in dem Körper Z/dZ berechnet werden.
  • Bei dem Verfahren zur Verifikation von EC-GDSA-Signaturen werden erfindungsgemäß wiederum lediglich die x-Koordinaten der Punkte auf den elliptischen Kurven verwendet. Um das Protokoll zur Verifikation von EC-GDSA-Signaturen zu implementieren ist lediglich die Arithmetik des Grundkörpers erforderlich.
  • Sei im Folgenden E eine elliptische Kurve mit der Kurvengleichung y2 + x·y = x3 + a2·x2 + a6, (47)so dass die Punktegruppe der elliptischen Kurve kryptographisch geeignet ist, sei x0 die x-Koordinate eines Kurvenpunktes P, der eine Untergruppe mit großer primer Ordnung d erzeugt und sei QA = x(pA –1·P) der öffentliche Schlüssel des Benutzers des ersten Rechners.
  • Damit der zweite Rechner eine Signatur (r, s) eine Nachricht m mit dem Hashwert 0 < h(m) < d verifizieren kann, werden folgende Verfahrensschritte, welche in einem Ablaufdiagramm 1400 in 14 dargestellt sind, von dem zweiten Rechner durchgeführt.
  • Zunächst wird in einem ersten Schritt (Schritt 1401) das Zertifikat des öffentlichen Schlüssels QA des Benutzers des ersten Rechners überprüft und bei Ungültigkeit des Zertifikats wird von dem zweiten Rechner eine Fehlermeldung ausgegeben.
  • Ferner wird geprüft, ob der erste Zwischenwert r der Signatur Element des Körpers GF(2m) ist, sowie ob der erste Zwischenwert r ungleich 0 ist und ob der zweite Zwischenwert s größer als 0 und kleiner als d ist.
  • Ist eine der Bedingungen nicht erfüllt, wird ein Fehlersignal ausgegeben (Schritt 1402).
  • In einem weiteren Schritt (Schritt 1403) wird ein vierter Zwischenwert x gebildet mittels Multiplikation des öffentlichen Schlüssels QA des Benutzers des ersten Rechners mit dem zweiten Zwischenwert s.
  • Ferner wird ein fünfter Zwischenwert y gebildet mittels Multiplikation des ersten Zwischenwertes r mit sich selbst (Schritt 1404).
  • Ein sechster Zwischenwert z wird gebildet mittels Skalar-Multiplikation des Hash-Werts h(m) mit der x-Koordinate x0 des Punktes P auf der elliptischen Kurve (Schritt 1405).
  • Anschließend wird ein quadratisches Polynom q über dem endlichen Körper GF(2m ) über den ersten Zwischenwert x, den zweiten Zwischenwert y und den dritten Zwischenwert z ermittelt und es wird überprüft, ob das quadratische Polynom gleich 0 ist.
  • Ist dies der Fall, dann wird die digitale Signatur als gültig angesehen (Schritt 1406).
  • Das heißt, dass zur Berechnung des Wertes q(x, y, z) lediglich die Arithmetik des Grundkörpers notwendig ist.
  • Das quadratische Polynom q(x1, x2, x3) hat die Form: g(x1,x2,x3) = x23 (x1 + x2)2 + x3x1x2 + x21 x22 + a6, (48) wobei a6 der entsprechende Parameter der elliptischen Kurve E ist.
  • Es ist anzumerken, dass die Verfahrensschritte 1403, 1404, 1405 Skalar-Multiplikationen mit Punkten der elliptischen Kurve sind.
  • Bei der Implementierung der Signaturüberprüfung müssen die Ergebnispunkte der drei Skalarmultiplikationen nicht in die affine Koordinatendarstellung transformiert werden.
  • Das Polynom q(x, y, z) zum Testen des Ergebnisses kann auf einfache Weise für Punkte in projektiver Darstellung verallgemeinert werden.
  • Auf diese Weise ist das oben beschriebene Verfahren zur Verifikation effizienter und das Polynom kann auch auf die Fälle verallgemeinert werden, bei denen eines oder mehrere Ergebnisse der Skalar-Multiplikationen der unendlich ferne Punkt O ist.
  • Bei allen Verfahren zur Signaturüberprüfung kann auch eine Variante verwendet werden, bei der durch den Wert s dividiert wird und auf diese Weise lediglich zwei Skalar-Multiplikationen anfallen.
  • Im Weiteren wird beschrieben, wie die oben beschriebene Verfahrensüberprüfung elektronischer Unterschriften mittels Verfahren, bei denen vollständig auf die Berechnung und Verwendung von y-Koordinaten verzichtet wird, sowohl auf ähnliche Körper anderer Charakteristiken als auch auf projektive Koordinatendarstellungen von Kurvenpunkten verallgemeinert werden kann.
  • Dabei wird lediglich folgender Teilaspekt beschrieben: Bei allen im vorliegenden Dokument betrachteten Verfahren zur Erzeugung elektronischer Signaturen ist es während der Überprüfung einer Signatur vorgesehen, zu testen, ob drei berechnete Punkte P, Q und R gemäß der Gruppenverknüpfung der elliptischen Kurve in der Beziehung P + Q = R stehen.
  • Sind von P, Q und R nur die x-Koordinaten bekannt, kann dieser Test nicht mehr durchgeführt werden. Es ist aber möglich, zu testen, ob die Punkte einer einfachen Polynom-Gleichung genügen. Dabei liefert das Polynom genau dann den Wert 0, wenn ±P ±Q ±R = 0 gilt (in der affinen Version unter der Voraussetzung, dass alle drei Punkte verschieden von dem unendlich fernen Punkt O sind). Der auftretende Sicherheitsverlust stellt für die praktische Anwendung der Signaturverfahren keine Einschränkung dar.
  • Im Folgenden werden die entsprechenden Polgnome und Sonderfälle in Abhängigkeit von der Charakteristik des endlichen Körpers, über dem die elliptische Kurve definiert ist, beschrieben.
  • Für elliptische Kurven über endlichen Körpern der Charakteristik 2 lautet die allgemeine Kurvengleichung: y2 +x·y = x3 + a2x2 + a6, (49)wobei a6 die Diskriminate ist und es gilt daher für nicht-singuläre Kurven a6 ungleich 0.
  • Aus der Additionsformel ergibt sich, dass für die Punkte P = (x1, y1), Q = (x2, y2), R = (x3, y3) mit P + Q = R und P, Q, R ≠ O das Polynom: g(x1, x2, x3) = x23 (x1 + x2)2 + x3x1x2 + x21 x22 + a6, (50)den Wert 0 hat.
  • Gilt P = Q und x1 = x2 ≠ 0, so folgt aus der Formel zur Verdoppelung von Punkten die folgende Vorschrift: x3·x21 + x41 + a6 = 0, (51)die in Gleichung (50) als Spezialfall bereits enthalten ist.
  • Gilt P = Q und 2P = O (d.h. x1 = x2 = 0), dann folgt aus Gleichung (51), dass a6 = 0 ist. Dies ist aber nicht möglich, weil vorausgesetzt wurde, dass die elliptische Kurve nicht-singulär ist.
  • Für elliptische Kurven über endlichen Körpern der Charakteristik 3 lautet die allgemeine Kurvengleichung: y2 = x3 + a2·x2 + a6, (52)wobei – a 3 / 2·a6 die Diskriminate ist und es gilt daher für nicht-singuläre elliptische Kurven a 3 / 2·a6 ≠ 0.
  • Aus der Additionsformel ergibt sich, dass für Punkte P = (x1, y1), Q = (x2, y2) und R = (x3, y3) mit P + Q = R und P, Q, R ≠ O das Polynom q(x1, x2, x3) = x2 3 (x1 – x2)2 + x3 (x1x2(x1 + x2 – a2) – a6) + +x21 x2 2 – a6(x1 + x2 + a2) (53)den Wert 0 hat.
  • Gilt P = Q und y1 = Y2 ≠ 0, so folgt aus der Formel zur Verdoppelung von Punkten die Gleichung x3(x31 + a2x21 + a6) = x41 + a6(x1 – a2), (54) die in Vorschrift (55) als Spezialfall bereits enthalten ist.
  • Gilt P = Q und 2P = O (d.h. y1 = y2 = 0), dann folgt aus der Resultante von Gleichung (54) und der Kurvengleichung die Bedingung a 2 / 3a6 = 0. Dies ist aber nicht möglich, weil vorausgesetzt wurde, dass die elliptische Kurve nicht-singulär ist.
  • Für elliptische Kurven über endlichen Körpern der Charakteristik größer als 3 lautet die allgemeine Kurvengleichung: y2 = x3 + a4x + a6, (55)wobei – 16(4a 3 / 4 + 27a 2 / 6) die Diskriminate ist und es gilt daher für nicht-singuläre Kurven 4a 3 / 4 + 27a 2 / 6 ≠ 0.
  • Aus der Additionsformel ergibt sich, dass für Punkte P = (x1, y1), Q = (x2, y2) und R = (x3, y3) mit P + Q = R und P, Q, R ungleich O das Polynom q(x1, x2, x3) = x23 (x1 – x2)2 + 2x3 ((a4 + x1x2)(x1 + x2) + 2a6) + + (x1x2 – a4)2 – 4a6(x1 + x2) (56)den Wert 0 hat.
  • Gilt P = Q und y1 = y2 ≠ 0, so folgt aus der Formel zur Verdoppelung von Punkten die Gleichung –4x3(x31 + a4x1 + a6) + (x21 – a4)2 – 8a6x1 = 0, (57)die in Vorschrift (56) als Spezialfall bereits enthalten ist.
  • Gilt P = Q und 2P = O (d.h. y1 = y2 = 0), dann folgt aus der Resultanten von Vorschrift (57) und der Kurvengleichung die Bedingung 4a 3 / 4 + 27a 2 / 6 = 0. Dies ist aber nicht möglich, weil vorausgesetzt wurde, dass die Kurve nicht-singulär ist.
  • Werden von den Polynomen (50, 53, 56) entsprechende Polgnome für projektive Koordinatendarstellungen verwendet, können die Inversionen im Grundkörper am Ende der Skalar-Multiplikationen eingespart werden, was einen weiteren Performance-Vorteil bei der Signaturüberprüfung mit sich bringt.
  • Außerdem bleiben die entsprechenden Polgnome für projektive Koordinatendarstellungen auch für Sonderfälle wichtig, bei denen einer oder mehrere der Punkte P, Q und R der unendlich ferne Punkt O ist.
  • Dieses wird im Folgenden näher erläutert.
  • Seien xi/zi die projektiv dargestellten x-Koordinaten der Punkte Pi für 1 ≤ i ≤ 3. Der unendlich ferne Punkt O besitzt dabei die projektive Darstellung (x, z) mit x ≠ 0 und z = 0.
  • Für elliptische Kurven über endlichen Körpern der Charakteristik 2 lautet die projektive Form von (50): x23 (x1z2 + x2z1)2 + x3x1x2z3z1z2 + x21 x22 x23 + a6z21 z22 z23 = 0. (58)
  • Für den Fall P3 = 0, d.h. z3 = 0, x3 ≠ 0 ergibt sich aus Vorschrift (58): x23 (x1z2 + x2z1)2 = 0. (59)
  • Das ist genau dann der Fall, wenn x(P1) = x(P2) oder P1 = P2 = 0 gilt. Damit wird dieser Fall korrekt behandelt.
  • Der Fall P1 = 0 ist symmetrisch zum vorhergehenden Fall.
  • Der Fall P2 = 0 ist ebenfalls symmetrisch zum vorhergehenden Fall.
  • Für elliptische Kurven über endlichen Körpern der Charakteristik 3 lautet die projektive Form von (53): x23 (x1z2 – x2z1)2 + x3z3(x1x2(x1z2 + x2z1 – a2z1z2) – a6z21 z22 ) + + z23 (x21 x2 2 – a6z1z2(a2z1z2 + x1z2 + x2z1)) = 0 (60)
  • Für den Fall P3 = 0, d.h. z3 = 0, x3 ≠ 0 ergibt sich aus Vorschrift (60): x23 2(x1z2 – x2z1)2 = 0. (61)
  • Das ist genau dann der Fall, wenn x(P1), x(P2) oder P1 = P2 = O gilt. Damit wird dieser Fall korrekt behandelt.
  • Der Fall P1 = O ist symmetrisch zum vorhergehenden Fall.
  • Der Fall P2 = O ist ebenfalls symmetrisch zum vorhergehenden Fall.
  • Für elliptische Kurven über endlichen Körpern der Charakteristik größer als 3 lautet die projektive Form von Vorschrift (56): x3(x1z2 – x2z1)2 + 2x3z3((a4z1z2 + x1x2)(x1z2 + x2z1) + 2a6z21 2z22 2) + + z23 2(x1x2 – a4z1z2)2 – 4a6z1z2z23 2(x1z2 + x2z1) = 0 (62)
  • Für den Fall P3 = 0, d.h. z3 = 0, x3 ≠ 0 ergibt sich gemäß Vorschrift (62): x23 2 (x1z2 – x2z1)2 = 0. (63)
  • Das ist genau dann der Fall, wenn x(P1) = x(P2) oder P1 = P2 = O gilt. Damit wird dieser Fall korrekt behandelt.
  • Der Fall P1 = O ist symmetrisch zum vorhergehenden Fall.
  • Der Fall P2 = O ist ebenfalls symmetrisch zum vorhergehenden Fall.
  • In diesem Dokument sind folgende Veröffentlichungen zitiert:
    • [1] T.S. Messerges et al, Power analysis attacks of modular exponentiation in smartcards, Proceedings of CHES'99, LNCS 1717, Springer, Seiten 144–154, 1999
    • [2] P. Kocher et al, Differential power analysis, Proceedings of CRYPTO'99, LNCS 1666, Springer, Seiten 388–397, 1999
    • [3] I. Biehl et al, Differential fault attacks on elliptic curve cryptosystems, Proceedings of CRYPTO'00, LNCS 1880, Springer, Seiten 131–146, 2000
    • [4] D. Boneh et al, On the importance of checking cryptographic protocols for faults, Proceedings of EUROCRYPT'97, LNCS 1233, Springer, Seiten 37–51, 1997
    • [5] P. Kocher, Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems, Proceedings of CRYPTO'96, LNCS 1109, Springer Verlag, Seiten 104–113, 1996
    • [6] J.-S. Coron, Resistance against differential power analysis for elliptic curve cryptosystems, Proceedings of CHES'99, LNCS 1717, Springer Verlag, Seiten 292–302, 1999
    • [7] P.L. Montgomery, Speeding up the pollard and elliptic curve methods of factorization, mathematics of computation, Vol. 48, Nr. 177, Seiten 243–264, 1987
    • [8] A.J. Menezes, Elliptic curve public-key cryptosystems, Kluwer Academic Publishers, Seiten 209–224, 1993
    • [9] K. Ohgishi et al, Elliptic curve signature scheme with no y coordinate, The 1999 Symposium on cryptography and information security, SCIS'99, The Institute of Electronics, Information and Communication Engineers, 1999
    • [10] Izu Tetsuya, Elliptic curve exponentiation without y-coordinate, Technical Report IT-98-33, ISEC 98-86, SST 98-129, IEICE The Institute of Electronics, Information and Communication Engineers, März 1999

Claims (13)

  1. Verfahren zum rechnergestützten Ermitteln einer elliptischen Kurve, • bei dem eine zu testende elliptische Kurve bereitgestellt wird, • bei dem eine zu der zu testenden elliptischen Kurve getwistete zu testende elliptische Kurve gebildet wird, • bei dem für die getwistete zu testende elliptische Kurve geprüft wird, ob für die getwistete zu testende elliptische Kurve ein vorgegebenes kryptographisches Gütekriterium erfüllt ist, und • bei dem die zu testende elliptische Kurve dann als elliptische Kurve ausgewählt wird, wenn das kryptographische Gütekriterium für die getwistete zu testende elliptische Kurve erfüllt ist.
  2. Verfahren gemäß Anspruch 1, • bei dem für die zu testende elliptische Kurve geprüft wird, ob für die zu testende elliptische Kurve das vorgegebene kryptographische Gütekriterium erfüllt ist, und • bei dem die zu testende elliptische Kurve dann als elliptische Kurve ausgewählt wird, wenn das kryptographische Gütekriterium auch für die zu testende elliptische Kurve erfüllt ist.
  3. Verfahren gemäß Anspruch 1 oder 2, • bei dem als das kryptographische Gütekriterium die Anzahl der auf der getwisteten zu testenden elliptischen Kurve liegenden Punkte bzw. die Anzahl der auf der zu testenden elliptischen Kurve liegenden Punkte verwendet wird, und • bei dem das kryptographische Gütekriterium dann erfüllt ist, wenn die Anzahl der auf der getwisteten zu testenden elliptischen Kurve liegenden Punkte bzw. die Anzahl der auf der zu testenden elliptischen Kurve liegenden Punkte ungleich der Anzahl der Körperelemente des Körpers ist, über dem die getwistete zu testende elliptische Kurve bzw. die zu testende elliptische Kurve definiert ist.
  4. Verfahren gemäß Anspruch 1 oder 2, bei dem als das kryptographische Gütekriterium das Frey-Rück-Kriterium und/oder das Menezes-Okamoto-Vanstone-Kriterium verwendet wird.
  5. Verfahren gemäß Anspruch 1 oder 2, bei dem als das kryptographische Gütekriterium verwendet wird, dass die Punktezahl der Kurve von einer hinreichend großen Primzahl geteilt wird.
  6. Verfahren gemäß einem der Ansprüche 1 bis 5, bei dem unter Verwendung der ermittelten elliptischen Kurve ein kryptographisches Verfahren durchgeführt wird.
  7. Verfahren zum rechnergestützten Multiplizieren eines Punktes mit einem Skalar, – bei dem eine zu testende elliptische Kurve bereitgestellt wird, – bei dem eine zu der zu testenden elliptischen Kurve getwistete zu testende elliptische Kurve gebildet wird, – bei dem für die getwistete zu testende elliptische Kurve geprüft wird, ob für die getwistete zu testende elliptische Kurve ein vorgegebenes kryptographisches Gütekriterium erfüllt ist, – bei dem die zu testende elliptische Kurve dann als elliptische Kurve ausgewählt wird, wenn das kryptographische Gütekriterium für die getwistete zu testende elliptische Kurve erfüllt ist, wobei der Punkt auf der ausgewählten elliptischen Kurve liegt, wobei die Multiplikation unter Verwendung nur einer örtlichen Koordinate des Punktes auf der elliptischen Kurve erfolgt.
  8. Verfahren gemäß Anspruch 7, bei dem die Multiplikation unter Verwendung nur einer x-Koordinate des Punktes auf der elliptischen Kurve erfolgt.
  9. Verfahren gemäß Anspruch 8, bei dem die Multiplikation durch eine dem Skalar entsprechende Anzahl von Additionen und Verdoppelungen des 1 auf der elliptischen Kurve liegenden Punktes mit sich selbst erfolgt.
  10. Verfahren gemäß Anspruch 9, • bei dem eine elliptische Kurve über einem endlichen Körper der Charakteristik 2 definiert ist, • bei dem die auf der elliptischen Kurve liegenden Punkte folgende Vorschrift erfüllen: y2 + x·y = x3 + a2x2 + a6,wobei mit – x die x-Koordinate des jeweiligen Punktes, – y die y-Koordinate des jeweiligen Punktes, – a2, a6 Formparameter der elliptischen Kurve, bezeichnet werden, • bei dem der doppelte Wert x5 des auf der elliptischen Kurve liegenden zu verdoppelnden Punktes x1 gemäß folgender Vorschrift gebildet wird:
    Figure 00910001
    • wobei der Wert x3 der x-Koordinate der Summe und der Wert x4 der x-Koordinate der Differenz der zu verknüpfenden Punkte mit den x-Koordinaten x1 und x2 gemäß folgender Vorschrift zusammenhängen: (x3 + x4)(x1 + x2)2 = x1x2.
  11. Verfahren gemäß Anspruch 9, • bei dem eine elliptische Kurve über einem endlichen Körper der Charakteristik größer als 3 definiert ist, • bei dem die auf der elliptischen Kurve liegenden Punkte folgende Vorschrift erfüllen: y2 = x3 + a4x + a6,wobei mit – x die x-Koordinate des jeweiligen Punktes, – y die y-Koordinate des jeweiligen Punktes, – a4, a6 Formparameter der elliptischen Kurve, bezeichnet werden, und • bei dem der doppelte Wert x5 des auf der elliptischen Kurve liegenden zu verdoppelnden Punktes x1 gemäß folgender Vorschrift gebildet wird:
    Figure 00920001
    • wobei der Wert x3 der x-Koordinate der Summe und der Wert x4 der x-Koordinate der Differenz der zu verknüpfenden Punkte mit den x-Koordinaten x1 und x2 gemäß folgender Vorschrift voneinander abhängen: (x3 + x4)(x1 – x2)2 = 2(x1 + x2)(x1x2 + a4) + 4a6 .
  12. Verfahren gemäß Anspruch 9, • bei dem eine elliptische Kurve über einem endlichen Körper der Charakteristik gleich 3 definiert ist, • bei dem die auf der elliptischen Kurve liegenden Punkte folgende Vorschrift erfüllen: y2 = x3 + a2·x2 + a6,wobei mit – x die x-Koordinate des jeweiligen Punktes, – y die y-Koordinate des jeweiligen Punktes, – a4, a6 Formparameter der elliptischen Kurve, bezeichnet werden, • bei dem der doppelte Wert x5 des auf der elliptischen Kurve liegenden zu verdoppelnden Punktes x1 gemäß folgender Vorschrift gebildet wird:
    Figure 00920002
    • wobei der Wert x3 der x-Koordinate der Summe und der Wert x4 der x-Koordinate der Differenz der zu verknüpfenden Punkte mit den x-Koordinaten x1 und x2 gemäß folgender Vorschrift voneinander abhängen: (x3 + x4)(x1 – x2)2 = a6 + a2x1x2 – x1x2(x1 + x2)
  13. Rechner zum Ermitteln einer elliptischen Kurve mit einem Prozessor, der eingerichtet ist zum Durchführen der Schritte des Verfahrens gemäß einem der Ansprüche 1 bis 12.
DE2001161138 2001-12-12 2001-12-12 Verfahren und Vorrichtung zum Ermitteln einer elliptischen Kurve, Verfahren und Vorrichtung zum Multiplizieren eines Punktes mit einem Skalar Expired - Lifetime DE10161138B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2001161138 DE10161138B4 (de) 2001-12-12 2001-12-12 Verfahren und Vorrichtung zum Ermitteln einer elliptischen Kurve, Verfahren und Vorrichtung zum Multiplizieren eines Punktes mit einem Skalar

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2001161138 DE10161138B4 (de) 2001-12-12 2001-12-12 Verfahren und Vorrichtung zum Ermitteln einer elliptischen Kurve, Verfahren und Vorrichtung zum Multiplizieren eines Punktes mit einem Skalar

Publications (2)

Publication Number Publication Date
DE10161138A1 DE10161138A1 (de) 2003-07-03
DE10161138B4 true DE10161138B4 (de) 2008-02-14

Family

ID=7708998

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2001161138 Expired - Lifetime DE10161138B4 (de) 2001-12-12 2001-12-12 Verfahren und Vorrichtung zum Ermitteln einer elliptischen Kurve, Verfahren und Vorrichtung zum Multiplizieren eines Punktes mit einem Skalar

Country Status (1)

Country Link
DE (1) DE10161138B4 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101410792B (zh) * 2006-03-23 2013-03-06 西门子公司 利用椭圆曲线的密码方法
US8621212B2 (en) 2009-12-22 2013-12-31 Infineon Technologies Ag Systems and methods for cryptographically enhanced automatic blacklist management and enforcement
US8630411B2 (en) 2011-02-17 2014-01-14 Infineon Technologies Ag Systems and methods for device and data authentication

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006060760A1 (de) * 2006-09-29 2008-04-10 Siemens Ag Authentifikationsverfahren und Kommunikationssystem zur Authentifikation
DE102007001070B3 (de) * 2006-09-29 2008-04-30 Siemens Ag Verfahren zum verschlüsselten Datenausgleich eines Systems mit mindestens einem Datenträger und einem Lesegerät
WO2009118224A1 (de) * 2008-03-25 2009-10-01 Siemens Aktiengesellschaft Verfahren zum rechnergestützten ermitteln einer elliptischen kurve für kryptographische anwendungen
EP2124382A1 (de) 2008-05-20 2009-11-25 Siemens Aktiengesellschaft Verfahren zum verschlüsselten Datenaustausch und Kommunikationssystem
DE102008061483A1 (de) 2008-12-10 2010-06-24 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Verarbeiten von Daten

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737424A (en) * 1996-06-04 1998-04-07 Software Security, Inc. Method and system for secure distribution of protected data using elliptic curve systems
WO1999049386A1 (en) * 1998-03-25 1999-09-30 Certicom Corp. Accelerated finite field operations on an elliptic curve
US6141420A (en) * 1994-07-29 2000-10-31 Certicom Corp. Elliptic curve encryption systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141420A (en) * 1994-07-29 2000-10-31 Certicom Corp. Elliptic curve encryption systems
US5737424A (en) * 1996-06-04 1998-04-07 Software Security, Inc. Method and system for secure distribution of protected data using elliptic curve systems
WO1999049386A1 (en) * 1998-03-25 1999-09-30 Certicom Corp. Accelerated finite field operations on an elliptic curve

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LERCIER, R.: Finding Good Random Elliptic Curves for Cryptosystems Defined over If2n. In: LNCS, Bd. 1233, Springer, 1997, S. 379-392 *
MÜLLER, V. u. PAULUS, S.: On the Generation Of Cryptographically Strong Elliptic Curves. In: Internet: http://www.informatik.th-darmstadt.de/TI Nov. 1997, S. 1-11 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101410792B (zh) * 2006-03-23 2013-03-06 西门子公司 利用椭圆曲线的密码方法
US8621212B2 (en) 2009-12-22 2013-12-31 Infineon Technologies Ag Systems and methods for cryptographically enhanced automatic blacklist management and enforcement
US8630411B2 (en) 2011-02-17 2014-01-14 Infineon Technologies Ag Systems and methods for device and data authentication
US9407618B2 (en) 2011-02-17 2016-08-02 Infineon Technologies Ag Systems and methods for device and data authentication
US9450933B2 (en) 2011-02-17 2016-09-20 Infineon Technologies Ag Systems and methods for device and data authentication

Also Published As

Publication number Publication date
DE10161138A1 (de) 2003-07-03

Similar Documents

Publication Publication Date Title
DE69829967T2 (de) Verfahren und vorrichtung zur schnellen elliptischen verschlüsselung mit unmittelbarer einbettung
DE69938624T2 (de) Robuste und effiziente verteilte erzeugung eines rsa-schlüssels
US7961873B2 (en) Password protocols using XZ-elliptic curve cryptography
US7961874B2 (en) XZ-elliptic curve cryptography with secret key embedding
US7379546B2 (en) Method for XZ-elliptic curve cryptography
DE102010002241B4 (de) Vorrichtung und Verfahren zur effizienten einseitigen Authentifizierung
US7483533B2 (en) Elliptic polynomial cryptography with multi x-coordinates embedding
EP1922837B1 (de) Verfahren zum sicheren ver- oder entschlüsseln einer nachricht
US20080273695A1 (en) Method for elliptic curve scalar multiplication using parameterized projective coordinates
DE69924912T2 (de) Verschlüsselungsverfahren und Vorrichtung unter Verwendung einer elliptischen Kurve
DE10161137B4 (de) Verfahren und System zum kryptographischen Bearbeiten von Daten
DE102005024609A1 (de) Bestimmung einer modularen Inversen
DE10161138B4 (de) Verfahren und Vorrichtung zum Ermitteln einer elliptischen Kurve, Verfahren und Vorrichtung zum Multiplizieren eines Punktes mit einem Skalar
Meshram A cryptosystem based on double generalized discrete logarithm problem
US20050267926A1 (en) Finite field serial-serial multiplication/reduction structure and method
DE69735290T2 (de) Verfahren zur unsymmetrischen kryptographischen kommunikation und zugehöriger tragbarer gegenstand
Semmouni et al. Bitcoin security with a twisted Edwards curve
Paar et al. Introduction to public-key cryptography
JP4423900B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム
WO2003034649A2 (de) Verfahren und vorrichtung zum absichern einer berechnung in einem kryptographischen algorithmus
EP1454260A2 (de) Verfahren und vorrichtung zum absichern einer exponentiations-berechnung mittels dem chinesischen restsatz (crt)
JP2003255831A (ja) 楕円曲線スカラー倍計算方法及び装置
Sakai et al. Algorithms for efficient simultaneous elliptic scalar multiplication with reduced joint Hamming weight representation of scalars
Hartmann et al. Nice-new ideal coset encryption
DE102012210354B3 (de) Verfahren und Recheneinheit zur Erzeugung kryptographischer Daten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R071 Expiry of right