DE10161137B4 - Verfahren und System zum kryptographischen Bearbeiten von Daten - Google Patents

Verfahren und System zum kryptographischen Bearbeiten von Daten Download PDF

Info

Publication number
DE10161137B4
DE10161137B4 DE2001161137 DE10161137A DE10161137B4 DE 10161137 B4 DE10161137 B4 DE 10161137B4 DE 2001161137 DE2001161137 DE 2001161137 DE 10161137 A DE10161137 A DE 10161137A DE 10161137 B4 DE10161137 B4 DE 10161137B4
Authority
DE
Germany
Prior art keywords
computer
coordinate
point
elliptic curve
digital signature
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
DE2001161137
Other languages
English (en)
Other versions
DE10161137A1 (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 DE2001161137 priority Critical patent/DE10161137B4/de
Publication of DE10161137A1 publication Critical patent/DE10161137A1/de
Application granted granted Critical
Publication of DE10161137B4 publication Critical patent/DE10161137B4/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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

Verfahren zum rechnergestützten Erzeugen und Verifizieren einer digitalen Signatur,
– bei dem von einem ersten Rechner folgende Verfahrensschritte durchgeführt werden:
– eine elliptische Kurve über einem Körper der Charakteristik 2 wird bereitgestellt,
– mindestens ein Punkt, der auf der elliptischen Kurve liegt, wird ausgewählt oder ermittelt,
– nur eine Koordinate des Punktes wird gespeichert,
– Daten werden gemäß einem vorgegebenen Verfahren zum Erzeugen einer digitalen Signatur kryptographisch bearbeitet, wobei bei dem gesamten kryptographischen Verfahren nur die eine Koordinate des Punktes verwendet wird,
– bei dem die kryptographisch bearbeiteten Daten von dem ersten Rechner zu einem zweiten Rechner übertragen werden, wobei von auf der elliptischen Kurve sich befindenden Punkten, welche von dem ersten Rechner zu dem zweiten Rechner übertragen werden, jeweils nur die eine Koordinate des jeweiligen Punktes übertragen wird, und – bei dem von dem zweiten Rechner zumindest folgende Verfahrensschritte durchgeführt werden:...

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 Polynome verwendet. Als Beispiele sind Signaturen nach ElGamal EC-DSA angegeben. Es ist anzumerken, dass in [9] Additionsformeln und Polynome 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 WO 99/49386 A1 beschreibt ein Signatur-Verifikationsverfahren, bei dem nur eine x-Koordinate eines Punktes einer elliptischen Kurve übermittelt wird und getestet wird, ob die beiden Punkte der elliptischen Kurve, die die x-Koordinate aufweisen können, eine Signaturbedingung erfüllen.
  • Somit liegt der Erfindung das Problem zu Grunde, ein Verfahren sowie ein System zur kryptographischen Bearbeitung von Daten anzubieten, bei dem gegenüber dem Stand der Technik eine weitere Reduktion an Rechenzeitbedarf für die Bearbeitung der Daten sowie eine Reduktion an benötigter Datenrate zur Übertragung von Daten von einem ersten Rechner zu einem zweiten Rechner erreicht wird.
  • Das Problem wird durch das Verfahren und das System zum kryptographischen Bearbeiten von Daten mit den Merkmalen gemäß den unabhängigen Patentansprüchen gelöst.
  • Bei dem Verfahren zum rechnergestützten kryptographischen Bearbeiten von Daten wird eine elliptische Kurve bereitgestellt und es wird mindestens ein Punkt, der auf der elliptischen Kurve liegt ausgewählt oder ermittelt. Für den jeweils ausgewählten oder ermittelten Punkt wird nur eine Koordinate, vorzugsweise die x-Koordinate gespeichert. Die Daten werden gemäß einem vorgegebenen kryptographischen Verfahren krpytographisch bearbeitet, wobei im Rahmen des gesamten kryptographischen Verfahrens, anders ausgedrückt während der gesamten kryptographischen Bearbeitung der Daten in dem ersten Rechner, nur jeweils die eine Koordinate, vorzugsweise somit nur die x-Koordinate des jeweiligen Punktes beziehungsweise der Punkte, die im Rahmen der kryptographischen Bearbeitung jeweils als Zwischenergebnisse oder als Ergebnisse berechnet werden, verwendet wird bzw. werden.
  • Die auf die oben beschriebene Weise bearbeiteten kryptographischen Daten werden von dem ersten Rechner zu einem zweiten Rechner, mit welchem der erste Rechner über ein Telekommunikationsnetz gekoppelt ist, übertragen.
  • Bei der Übertragung wird für alle übertragenen, sich auf der elliptischen Kurve befindenden Punkte jeweils nur die eine Koordinate des jeweiligen Punktes übertragen, vorzugsweise somit nur die x-Koordinate des jeweiligen Punktes.
  • Von dem zweiten Rechner werden die empfangenen, anders ausgedrückt die übertragenen kryptographisch bearbeiteten Daten gemäß einem weiteren vorgegebenen, vorzugsweise kryptographischen, Verfahren bearbeitet, allgemein werden die empfangen Daten zusätzlich erneut, vorzugsweise kryptographisch bearbeitet, wobei im Rahmen der gesamten empfangsseitigen Bearbeitung der empfangenen Daten wiederum nur die eine Koordinate eines jeweiligen Punktes auf der elliptischen Kurve verwendet wird, vorzugsweise somit nur die x-Koordinate des jeweiligen Punktes auf der elliptischen Kurve.
  • Ein System zur kryptographischen Bearbeitung von Daten, weist einen ersten Rechner und einen zweiten Rechner auf, welche über ein Telekommunikationsnetz miteinander gekoppelt sind. Die beiden Rechner weisen jeweils eine Prozessoreinheit auf die jeweils derart eingerichtet ist, dass sie die oben beschriebenen Verfahrensschritte in dem ersten Rechner beziehungsweise in dem zweiten Rechner durchführen können.
  • Anschaulich kann die Erfindung darin gesehen werden, dass durchgängig in der gesamten kryptographischen Bearbeitung von Daten senderseitig und empfängerseitig nur jeweils eine Koordinate eines Punktes auf der elliptischen Kurve verwendet wird, vorzugsweise nur die x-Koordinate.
  • Erfindungsgemäß wird somit eine erhebliche Reduktion im Rahmen des Rechenzeitbedarfs bei der kryptographischen Bearbeitung sowie auch bei der benötigten Datenrate im Rahmen der Übertragung von kryptographisch bearbeiteten Daten zwischen zwei miteinander gekoppelten Rechnern erreicht.
  • Anders ausgedrückt kann insbesondere auf die Speicherung, Übertragung und Bearbeitung von y-Koordinaten von Kurvenpunkten auf der elliptischen Kurve während der gesamten kryptographischen Bearbeitung der Daten und sogar der Übertragung der Daten verzichtet werden.
  • Es ist anzumerken, dass aus protokolltechnischer Sicht keine Einschränkungen für die jeweils einzusetzenden endlichen Körper, auf welchen die erfindungsgemäßen kryptographischen Verfahren basieren, existieren.
  • Bevorzugte Weiterbildung der Erfindungen ergeben sich aus den abhängigen Ansprüchen.
  • Das vorgegebene kryptographische Verfahren kann beispielsweise das Erzeugen digitaler Signaturen sein, in welchem Fall das weitere kryptographische Verfahren die Verifizierung einer erzeugten digitalen Signatur ist.
  • Alternativ kann das kryptographische Verfahren und das weitere, vorzugsweise kryptographische, Verfahren insgesamt ein Verfahren zum Schlüsselaustausch beziehungsweise zur Schlüsseleinigung zwischen zwei Teilnehmern einer Kommunikationsverbindung auf einen gemeinsamen Sitzungsschlüssel bilden, welcher zwischen dem ersten Rechner und dem zweiten Rechner im Rahmen einer nachfolgenden kryptographisch gesicherten Kommunikationsverbindung verwendet wird.
  • Gemäß einer anderen Ausgestaltung der Erfindung ist es vorgesehen, dass das kryptographische Verfahren ein Verfahren zum Verschlüsseln von Daten ist, und dass zur zusätzlichen kryptographischen Bearbeitung ein Verfahren zum Entschlüsseln von verschlüsselten Daten durchgeführt wird.
  • Gemäß einer anderen Ausgestaltung der Erfindung ist es vorgesehen, dass das kryptographische Verfahren und das zusätzliche kryptographische Verfahren insgesamt ein Verfahren zur Authentifikation des ersten Rechners bei dem zweiten Rechner bildet.
  • Ist das kryptographische Verfahren und das zusätzliche kryptographische Verfahren, d.h. die zusätzliche kryptographische Bearbeitung, insgesamt ein Verfahren zur Schlüsseleinigung auf einen kryptographischen Schlüssel, der von dem ersten Rechner und dem zweiten Rechner verwendet wird, so können die Verfahren auf einem Schlüsseleinigungsverfahren gemäß dem Prinzip gemäß Diffie-Hellman basieren.
  • Alternativ können die Verfahren auf einem sogenannten MTI-Protokoll basieren, insbesondere auf einem der folgenden MTI-Protokolle:
    • • dem MTI/A0-Protokoll,
    • • dem MTI/B0-Protokoll,
    • • dem MTI/C0-Protokoll, oder
    • • dem MTI/C1-Protokoll.
  • Gemäß der Ausgestaltung der Erfindung, bei dem die Verfahren ein Verfahren zum Verschlüsseln bzw. zum Entschlüsseln von Daten sind, ist gemäß einer Ausgestaltung der Erfindung vorgesehen, dass diese Verfahren auf dem Prinzip gemäß EC-ElGamal basieren.
  • Ist das kryptographische Verfahren ein Verfahren zum Erzeugen einer digitalen Signatur und das zusätzliche Verfahren ein Verfahren zum Überprüfen einer digitalen Signatur, so ist gemäß einer Ausgestaltung der Erfindung vorgesehen, dass die Signaturverfahren Verfahren sind, welche auf einem der folgenden Verfahren basieren:
    • • einem Verfahren zum Erzeugen und zum Prüfen von digitalen Signaturen gemäß EC-ElGamal,
    • • Verfahren zum Erzeugen und Prüfen von Signaturen gemäß EC-DSA, oder
    • • Verfahren zum Erzeugen von Signaturen und zum Prüfen von Signaturen gemäß EC-GDSA.
  • Gemäß einer anderen Weiterbildung der Erfindung ist es bei der Prüfung digitaler Signaturen auf Basis elliptischer Kurven vorgesehen einmal oder mehrmals ein oder mehrere Polynome auszuwerten, die nur von jeweils einer Koordinate eines Punktes oder der verwendeten Punkte abhängen.
  • Ausführungsbeispiele der Erfindung sind in den Figuren dargestellt und werden im Weiteren näher erläutert. Gleiche Elemente sind in den Ausführungsbeispielen teilweise mit gleichen Bezugszeichen versehen.
  • Auch wenn in den folgenden Ausführungsbeispielen jeweils bestimmte elliptische Kurven verwendet werden, ist die Erfindung jedoch nicht auf diese bestimmten elliptischen Kurven beschränkt, sondern sie kann für jede Art von elliptischer Kurve eingesetzt werden.
  • 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/A0-Protokolls unter Verwendung einer erfindungsgemäß ermittelten elliptischen Kurve dargestellt ist;
  • 4 ein Blockdiagramm, in dem eine erfindungsgemäße Variante des MTI/B0-Protokolls unter Verwendung einer erfindungsgemäß ermittelten elliptischen Kurve dargestellt ist;
  • 5 ein Blockdiagramm, in dem eine erfindungsgemäße Variante des MTI/C0-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, ..., nl)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 00180001
  • Gemäß dem oben dargelegten ersten Teil-Verfahren wird zunächst einem Initialisierungspunkt Q0 der Wert O 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-i 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 Doubleand-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 00210001
  • Unter der Differenz (x1, y1) – (x2, y2) der zwei Punkte:
    Figure 00210002
  • 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 00210003
  • Aus der Additionsformel für die x-Koordinate des Doppelten eines Punktes P auf einer elliptischen Kurve E folgt:
    Figure 00220001
  • 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 00220002
    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 00220003
    Z5 = X21 Z21 , (12)zur Verdoppelung eines Punktes P auf der elliptischen Kurve E, wobei
    Figure 00220004
    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 x4 = X4/Z4 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 Xi/Zi 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 00230001
    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 00230002
    Figure 00240001
  • Der resultierende Quotient A/B ist die x-Koordinate des Punktes n·P. Zum Schluss wird noch das multiplikative Inverse 1/B von B berechnet, um die x-Koordinate von n·P in affiner Darstellung bestimmen zu können. Zum Bestimmen des Inversen von 1/B wird der Fermatsche Satz verwendet. Details zum Bestimmen des Inversen von 1/B werden im Weiteren dargestellt.
  • Ein erheblicher Vorteil des zweiten Teil-Verfahrens besteht darin, dass keine Fallunterscheidungen zur Addition oder Verdoppelung des unendlich fernen Punktes O 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 O = (X, Z) mit X ≠ 0 und Z = 0.
  • Im Weiteren werden einige mögliche Sonderfälle dargestellt:
    • – Sonderfall Addition von (Xn, Zn) = (Xm, Zr): 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 , X2n Z2m ) = x(–P) (16)als das richtige Resultat.
    • – Sonderfall Addition von (Xn, Zn) = –(Xm, Zm): da Xn/Zn = Xm/Zm gilt und die Multiplikation nullteilerfrei ist, folgt Xn+m ≠ 0, Zn+m = 0 und (n + m)·P = O 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 00270001
    Wird der Term y2 gemäß der Kurvengleichung (2) ersetzt und anschließend nach y1 aufgelöst, so ergibt sich:
    Figure 00270002
    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 (0,
    Figure 00270003
    )der Ordnung 2.
  • Für eine Implementierung mit projektiver Koordinatendarstellung ergibt sich (im Fall x ≠ 0) gemäß der oben gewählten Notation mit x1 = X1/Z1 und x2 = X2/Z2 die Vorschrift:
    Figure 00270004
    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 00280001
    und der Differenz (x1, y1) – (x2, y2)
    Figure 00280002
  • Aus der Summe der Vorschriften (21) und (22) erhält man durch Substitution der Terme y21 und y22 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 y21 mittels Vorschrift (20) die folgende Vorschrift: 4x5(x31 + a4x1 + a6) = (x21 – a4)2 – 8a6x1. (24)
  • In projektiver Schreibweise mit xi = Xi/Zi 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 X1/Z1 und X2/Z2 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 00300001
    Figure 00310001
    Figure 00320001
    Figure 00330001
  • Gilt B = 0, so ist n·P = O 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 y21 und y2n durch die Kurvengleichung der elliptischen Kurve (20):
    Figure 00340001
  • In projektiver Schreibweise erhält man für die Ergebnisse des dritten Teil-Verfahrens die Gleichung
    Figure 00340002
    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 00340003
    Figure 00350001
  • 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, Zm) = –(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) ≠ 0, (Xm, Zm) ≠ 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 256Z16n (434 + 27a26 )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 00380001
    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:
    A ← RAND; /* A = X_0 */ /* Initialisierung */
    B ← 0; /* B = Z_0 */
    D ← RAND; /* D = Z_1 */
    C ← D * X1; /* C = X_1 * Z_1 */
  • 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 00410001
  • 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: α = (xZ21 Z2)(= (xB2D)-1 in der Registernotation). Dann gilt Z-11 = α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öglichen, 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. (36)
  • 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) = (a21 –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 El-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 Übertragung 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:
    • 1) z ← random ();
    • 2) x ← z·x0;
  • 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 1 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/A0-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 = kB 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-1A des geheimen Schlüssels pA des Benutzers des ersten Rechners 301 multipliziert (Schritt 401), womit der erste Zwischenwert tA gebildet wird. (Das Inverse p-1A 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 p-1B 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 p-1A , p-1B 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 p-1A 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 p -1 / B 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 kg 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 zB multipliziert, womit der Sitzungsschlüssel kB 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 ist, 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) ∊ 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(p-1A *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(p-1A *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: q(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 wahrend 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 = O 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 Polynome und Sonderfälle in Abhängigkeit von der Charakteristik des endlichen Körpers, über dem die elliptische Kurve definiert ist, beschrieben.
  • Für elliptische Kurvenen ü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: q(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 nichtsingulär ist.
  • Für elliptische Kurven über endlichen Körpern der Charakteristik 3 lautet die allgemeine Kurvengleichung: y2 = x3 + a2·x2 + a6, (52)wobei –a32 ·a6 die Diskriminate ist und es gilt daher für nicht-singuläre elliptische Kurven a32 ·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) = x23 (x1 – x2)2 + x3(x1x2(x1 + x2 – a2) – a6) + + x21 x22 – 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 a23 a6 = 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(4a34 + 27a26 ) die Diskriminate ist und es gilt daher für nicht-singuläre Kurven 4a34 + 27a26 ≠ 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 0 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 4a34 + 27a26 = 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 Polynome 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 Polynome 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 = O, 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 = 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 3 lautet die projektive Form von (53): x23 (x1z2 – x2z1)2 + x3z3(x1x2(x1x2 + x2z1 – a2z1z2) – a6z21 z22 ) + + z23 (x21 x22 – a6z1z2(a2z1z2 + x1z2 + x2z1)) = 0 (60)
  • Für den Fall P3 = O, d.h. z3 = 0, x3 ≠ 0 ergibt sich aus Vorschrift (60): x23 (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): x23 (x1z2 – x2Z1)2 + 2x3z3((a4z1z2 + x1x2)(x1z2 + x2z1) + 2a6z21 z22 ) + + z23 (x1x2 – a4z1z2)2 – 4a6z1z2z23 (x1z2 + x2z1) = 0 (62)
  • Für den Fall P3 = O, d.h. z3 ≠ 0, x3 ≠ 0 ergibt sich gemäß Vorschrift (62): x23 (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 (6)

  1. Verfahren zum rechnergestützten Erzeugen und Verifizieren einer digitalen Signatur, – bei dem von einem ersten Rechner folgende Verfahrensschritte durchgeführt werden: – eine elliptische Kurve über einem Körper der Charakteristik 2 wird bereitgestellt, – mindestens ein Punkt, der auf der elliptischen Kurve liegt, wird ausgewählt oder ermittelt, – nur eine Koordinate des Punktes wird gespeichert, – Daten werden gemäß einem vorgegebenen Verfahren zum Erzeugen einer digitalen Signatur kryptographisch bearbeitet, wobei bei dem gesamten kryptographischen Verfahren nur die eine Koordinate des Punktes verwendet wird, – bei dem die kryptographisch bearbeiteten Daten von dem ersten Rechner zu einem zweiten Rechner übertragen werden, wobei von auf der elliptischen Kurve sich befindenden Punkten, welche von dem ersten Rechner zu dem zweiten Rechner übertragen werden, jeweils nur die eine Koordinate des jeweiligen Punktes übertragen wird, und – bei dem von dem zweiten Rechner zumindest folgende Verfahrensschritte durchgeführt werden: – die übertragenen kryptographisch bearbeiteten Daten werden gemäß einem Verfahren zum Verifizieren einer digitalen Signatur zusätzlich bearbeitet, wobei bei der gesamten Verifizierung der digitalen Signatur nur die eine Koordinate eines jeweiligen Punktes auf der elliptischen Kurve verwendet wird, wobei überprüft wird, ob die jeweils einen Koordinaten dreier Punkte auf der elliptischen Kurve eine Polynomgleichung erfüllen.
  2. Verfahren nach Anspruch 1, bei dem als die eine Koordinate des jeweiligen Punktes auf der elliptischen Kurve die x-Koordinate des Punktes verwendet wird.
  3. Verfahren nach Anspruch 1, bei dem zum Erzeugen einer digitalen Signatur und zum Verifizieren einer digitalen Signatur jeweils eines der folgenden Verfahren eingesetzt wird: – ein Verfahren zum Erzeugen einer digitalen Signatur und ein Verfahren zum Prüfen einer digitalen Signatur, welches auf einem Verfahren gemäß ElGamal basiert, – ein Verfahren zum Erzeugen einer digitalen Signatur und ein Verfahren zum Prüfen einer digitalen Signatur, welches auf einem Verfahren gemaß EC-DSA basiert, – ein Verfahren zum Erzeugen einer digitalen Signatur und ein Verfahren zum Prüfen einer digitalen Signatur, welches auf einem Verfahren gemäß EC-GDSA basiert.
  4. System zum Erzeugen und Verifizieren einer digitalen Signatur mit einem ersten Rechner und einem zweiten Rechner, wobei der erste Rechner und der zweite Rechner über ein Telekommunikationsnetz miteinander gekoppelt sind, – bei dem der erste Rechner eine Prozessoreinheit aufweist, die derart eingerichtet ist, dass folgende Verfahrensschritte durchführbar sind: – es wird eine elliptische Kurve über einem Körper der Charakteristik 2 bereitgestellt, – es wird mindestens ein Punkt, der auf der elliptischen Kurve liegt, ausgewählt oder ermittelt, – es wird nur eine Koordinate des Punktes auf der elliptischen Kurve gespeichert, – Daten werden gemäß einem vorgegebenen Verfahren zum Erzeugen einer digitalen Signatur kryptographisch bearbeitet, wobei bei dem gesamten kryptographischen Verfahren nur die eine Koordinate des Punktes verwendet wird, – die kryptographisch bearbeiteten Daten werden von dem ersten Rechner an den zweiten Rechner über das Telekommunikationsnetz gesendet, wobei für auf der elliptischen Kurve sich befindende Punkte jeweils nur die eine Koordinate des jeweiligen Punktes übertragen wird, – bei dem der zweite Rechner eine Prozessoreinheit aufweist, die derart eingerichtet ist, dass folgende Verfahrensschritte durchführbar sind: – die von dem ersten Rechner gesendeten kryptographisch bearbeiteten Daten werden empfangen, – die empfangenen kryptographisch bearbeiteten Daten werden gemäß einem Verfahren zum Verifizieren einer digitalen Signatur zusätzlich bearbeitet, wobei bei der gesamten Verifizierung der digitalen Signatur nur die eine Koordinate des jeweiligen Punktes auf der elliptischen Kurve verwendet wird, wobei überprüft wird, ob die jeweils einen Koordinaten dreier Punkte auf der elliptischen Kurve eine Polynomgleichung erfüllen.
  5. Verfahren zum rechnergestützten Verifizieren einer digitalen Signatur, – bei dem kryptographisch bearbeitete Daten von einem Rechner empfangen werden, wobei von auf einer elliptischen Kurve über einem Körper der Charakteristik 2 sich befindenden Punkte, welche empfangen werden, jeweils nur die eine Koordinate des jeweiligen Punktes empfangen wird, und – bei dem von dem Rechner zumindest folgende Verfahrensschritte durchgeführt werden: – die empfangenen kryptographisch bearbeiteten Daten werden gemäß einem Verfahren zum Verifizieren einer digitalen Signatur bearbeitet, wobei bei der gesamten Verifizierung der digitalen Signatur nur die eine Koordinate eines jeweiligen Punktes auf der elliptischen Kurve verwendet wird, wobei überprüft wird, ob die jeweils einen Koordinaten dreier Punkte auf der elliptischen Kurve eine Polynomgleichung erfüllen.
  6. System zum Verifizieren einer digitalen Signatur mit einem Rechner, bei dem der Rechner eine Prozessoreinheit aufweist, die derart eingerichtet ist, dass folgende Verfahrensschritte durchführbar sind: – kryptographisch bearbeitet Daten werden empfangen, wobei von auf einer elliptischen Kurve über einem Körper der Charakteristik 2 sich befindenden Punkten, welche empfangen werden, jeweils nur die eine Koordinate des jeweiligen Punktes empfangen wird – die empfangenen kryptographisch bearbeiteten Daten werden gemäß einem Verfahren zum Verifizieren einer digitalen Signatur bearbeitet, wobei bei der gesamten Verifizierung der digitalen Signatur nur die eine Koordinate eines jeweiligen Punktes auf der elliptischen Kurve verwendet wird, wobei überprüft wird, ob die jeweils einen Koordinaten dreier Punkte auf der elliptischen Kurve eine Polynomgleichung erfüllen.
DE2001161137 2001-12-12 2001-12-12 Verfahren und System zum kryptographischen Bearbeiten von Daten Expired - Lifetime DE10161137B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2001161137 DE10161137B4 (de) 2001-12-12 2001-12-12 Verfahren und System zum kryptographischen Bearbeiten von Daten

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2001161137 DE10161137B4 (de) 2001-12-12 2001-12-12 Verfahren und System zum kryptographischen Bearbeiten von Daten

Publications (2)

Publication Number Publication Date
DE10161137A1 DE10161137A1 (de) 2003-10-02
DE10161137B4 true DE10161137B4 (de) 2008-02-14

Family

ID=27797510

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2001161137 Expired - Lifetime DE10161137B4 (de) 2001-12-12 2001-12-12 Verfahren und System zum kryptographischen Bearbeiten von Daten

Country Status (1)

Country Link
DE (1) DE10161137B4 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20220237287A1 (en) * 2019-05-23 2022-07-28 Thales Dis France Sas Method for Securing Against Fault Attacks a Verification Algorithm of a Digital Signature of a Message

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005034421A2 (en) * 2003-10-03 2005-04-14 Matsushita Electric Industrial Co., Ltd. Information transfer system, encryption device, and decryption device using elliptic curve
DE102006013515A1 (de) * 2006-03-23 2007-10-04 Siemens Ag Kryptographisches Verfahren mit elliptischen Kurven
DE102006060760A1 (de) 2006-09-29 2008-04-10 Siemens Ag Authentifikationsverfahren und Kommunikationssystem zur Authentifikation
US8850213B2 (en) 2013-01-29 2014-09-30 Infineon Technologies Ag Method for verifying an electronic signature and data processing device
CN104915179B (zh) * 2015-04-28 2018-07-17 南京邮电大学 一种人体生理数据隐私保护的方法
EP3376705A1 (de) * 2017-03-17 2018-09-19 Koninklijke Philips N.V. Vorrichtung zur elliptischen kurvenpunktmultiplikation und verfahren im white-box
EP4050839A1 (de) * 2021-02-24 2022-08-31 Siemens Aktiengesellschaft Verfahren zur vereinbarung eines gemeinsamen kryptographischen schlüssels und verfahren zur verschlüsselten kommunikation sowie computerprogrammprodukt und gerät

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805703A (en) * 1991-09-17 1998-09-08 Next Software, Inc. Method and apparatus for digital signature authentication
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
US5805703A (en) * 1991-09-17 1998-09-08 Next Software, Inc. Method and apparatus for digital signature authentication
US6141420A (en) * 1994-07-29 2000-10-31 Certicom Corp. Elliptic curve encryption systems
WO1999049386A1 (en) * 1998-03-25 1999-09-30 Certicom Corp. Accelerated finite field operations on an elliptic curve

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20220237287A1 (en) * 2019-05-23 2022-07-28 Thales Dis France Sas Method for Securing Against Fault Attacks a Verification Algorithm of a Digital Signature of a Message

Also Published As

Publication number Publication date
DE10161137A1 (de) 2003-10-02

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
US7961874B2 (en) XZ-elliptic curve cryptography with secret key embedding
US7961873B2 (en) Password protocols using XZ-elliptic curve cryptography
DE69935469T2 (de) Verfahren zur schnellen Ausführung einer Entschlüsselung oder einer Authentifizierung
Paar et al. Introduction to public-key cryptography
DE102010002241B4 (de) Vorrichtung und Verfahren zur effizienten einseitigen Authentifizierung
US7379546B2 (en) Method for XZ-elliptic curve cryptography
US7483533B2 (en) Elliptic polynomial cryptography with multi x-coordinates embedding
EP1922837B1 (de) Verfahren zum sicheren ver- oder entschlüsseln einer nachricht
DE69935455T2 (de) Kryptographisches verfahren unter verwendung eines öffentlichen und eines privaten schlüssels
CH694601A5 (de) Verfahren zur Verifizierung der Echtheit von ausgetauschten Nachrichten.
US7483534B2 (en) Elliptic polynomial cryptography with multi y-coordinates embedding
US6898284B2 (en) Cryptographic identification and digital signature method using efficient elliptic curve
EP1891512B1 (de) Bestimmung einer modularen inversen
DE10161137B4 (de) Verfahren und System zum kryptographischen Bearbeiten von Daten
US20080273695A1 (en) Method for elliptic curve scalar multiplication using parameterized projective coordinates
US7519644B2 (en) Finite field serial-serial multiplication/reduction structure and method
DE69924912T2 (de) Verschlüsselungsverfahren und Vorrichtung unter Verwendung einer elliptischen Kurve
Meshram A cryptosystem based on double generalized discrete logarithm problem
DE10161138B4 (de) Verfahren und Vorrichtung zum Ermitteln einer elliptischen Kurve, Verfahren und Vorrichtung zum Multiplizieren eines Punktes mit einem Skalar
Rabah Elliptic curve elgamal encryption and signature schemes
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)
DE10162496B4 (de) Verfahren und Vorrichtung zum Absichern einer Berechnung in einem kryptographischen Algorithmus

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