[go: up one dir, main page]

DE10156708B4 - Method and apparatus for multiplying and method and apparatus for adding on an elliptic curve - Google Patents

Method and apparatus for multiplying and method and apparatus for adding on an elliptic curve Download PDF

Info

Publication number
DE10156708B4
DE10156708B4 DE2001156708 DE10156708A DE10156708B4 DE 10156708 B4 DE10156708 B4 DE 10156708B4 DE 2001156708 DE2001156708 DE 2001156708 DE 10156708 A DE10156708 A DE 10156708A DE 10156708 B4 DE10156708 B4 DE 10156708B4
Authority
DE
Germany
Prior art keywords
coordinate
point
projective
elliptic curve
parallel
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 - Fee Related
Application number
DE2001156708
Other languages
German (de)
Other versions
DE10156708A1 (en
Inventor
Wieland Dr./Dipl.-Math. Fischer
Jean Pierre Dr./Dipl.-Inf. Seifert
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies 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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE2001156708 priority Critical patent/DE10156708B4/en
Priority to AU2002342820A priority patent/AU2002342820A1/en
Priority to PCT/EP2002/011426 priority patent/WO2003044653A2/en
Priority to TW91123940A priority patent/TW580654B/en
Publication of DE10156708A1 publication Critical patent/DE10156708A1/en
Application granted granted Critical
Publication of DE10156708B4 publication Critical patent/DE10156708B4/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7261Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile

Landscapes

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

Abstract

Verfahren zum Addieren zweier Punkte auf einer elliptischen Kurve y2 = x3 + a·x + b innerhalb eines kryptographischen Algorithmus, wobei x und y Koordinaten von Punkten auf der elliptischen Kurve sind, und wobei die elliptische Kurve über einem Körper mit einer Charakteristik größer als 3 definiert ist, wobei ein erster Punkt der zwei Punkte eine erste projektive Koordinate XP und eine dritte projektive Koordinate ZP aufweist, wobei der zweite Punkt eine erste projektive Koordinate XQ und eine dritte projektive Koordinate ZQ aufweist, mit folgenden Schritten:
Berechnen (31) einer ersten projektiven Koordinate XP' eines Ergebnispunkts auf der elliptischen Kurve durch folgende Gleichung: XP' = 2(XPZQ + XQZP)(XPXQ + aZPZQ) + 4bZP 2ZQ 2 + xD(XPZQ – XQZP)2; undBerechnen (30) einer dritten projektiven Koordinate ZP' eines Ergebnispunkts auf der elliptischen Kurve durch folgende Gleichung: ZP' = (XPZQ – XQZP)2,wobei a und b Parameter der elliptischen Kurve sind, und wobei xD eine affine...
A method for adding two points on an elliptic curve y 2 = x 3 + a x + b within a cryptographic algorithm, where x and y are coordinates of points on the elliptic curve, and wherein the elliptic curve is over a body having a characteristic larger 3, wherein a first point of the two points has a first projective coordinate X P and a third projective coordinate Z P , the second point having a first projective coordinate X Q and a third projective coordinate Z Q , comprising the following steps:
Calculating (31) a first projective coordinate X P 'of a result point on the elliptic curve by the following equation: X P ' = 2 (X P Z Q + X Q Z P ) (X P X Q + aZ P Z Q ) + 4bZ P 2 Z Q 2 + x D (X P Z Q - X Q Z P ) 2 ; and Calculating (30) a third projective coordinate Z P 'of a result point on the elliptic curve by the following equation: Z P ' = (X P Z Q - X Q Z P ) 2 . where a and b are parameters of the elliptic curve, and where x D is an affine ...

Figure 00000001
Figure 00000001

Description

Die vorliegende Erfindung bezieht sich auf kryptographische Algorithmen und insbesondere auf die Elliptische-Kurven-Kryptographie.The The present invention relates to cryptographic algorithms and in particular elliptic curve cryptography.

Im Gegensatz zur klassischen Kryptographie, wie z. B. dem RSA-Verfahren, bei dem die modulare Exponentiation eine zentrale Rechenoperation ist, ist bei der Elliptische-Kurven-Kryptographie die Multiplikation eines Punktes P auf der elliptischen Kurve mit einem ganzzahligen Faktor die entsprechende wesentliche Operation.in the Contrary to classical cryptography, such as B. the RSA method, where the modular exponentiation is a central arithmetic operation In elliptic curve cryptography, the multiplication of a Point P on the elliptic curve with an integer factor the corresponding essential operation.

Beispielsweise kann der klassische DSA (DSA = Digital Signature Algorithm), wie er im „Handbook of Applied Cryptography", Menezes u. a., CRC Press, beschrieben ist, zum EC-DSA (EC-DSA = Elliptic Curve Digital Signature Algorithm) modifiziert werden, wie er im IEEE P 13.63 beschrieben ist.For example can the classic DSA (DSA = Digital Signature Algorithm), such as he in the "Handbook of Applied Cryptography ", Menezes u. a., CRC Press, to EC-DSA (EC-DSA = Elliptic Curve Digital Signature Algorithm) as modified in the IEEE P 13.63 is described.

Ein weiterer kryptographischer Algorithmus, der auch auf elliptische Kurven ausgedehnt werden kann, ist das sogenannte Diffie-Hellman-Key-Exchange-Verfahren, wie es im Handbook of Applied Cryptography beschrieben ist.One another cryptographic algorithm that also works on elliptical Curves can be extended is the so-called Diffie-Hellman Key Exchange method, as described in the Handbook of Applied Cryptography.

Wollen zwei Parteien A, B einen gemeinsamen geheimen Schlüssel über einen unsicheren Kanal austauschen, so können sie dabei wie folgt vorgehen.Want two parties A, B a shared secret key over one If you have an unsafe channel, you can proceed as follows.

Zunächst wählen beide Parteien eine elliptische Kurve sowie einen generierenden Punkt P dieser Kurve.First, choose both Parties an elliptic curve as well as a generating point P this curve.

Partei A wählt nun einen konstanten Faktor dA und berechnet das Produkt QA = dA P und sendet diesen Punkt QA über den unsicheren Kanal zu B.Party A now chooses a constant factor d A and calculates the product Q A = d A P and sends this point Q A over the unsafe channel to B.

Analog dazu wählt nun die Partei B einen konstanten Faktor dB und berechnet das Produkt QB = dB P und sendet diesen Punkt QB über den unsicheren Kanal zu A.Analogously, the party B now selects a constant factor d B and calculates the product Q B = d B P and sends this point Q B over the unsafe channel to A.

Hiernach besitzen beide Parteien einen geheimen Schlüssel, nämlich das Produkt dA dB P. Diesen geheimen Schlüssel können die beiden Parteien nunmehr grundsätzlich für ein symmetrisches Block-Verschlüsselungs-Verfahren verwenden.According to this, both parties have a secret key, namely the product d A d B P. The two parties can now basically use this secret key for a symmetric block encryption method.

Es ist nicht möglich, die konstanten Faktoren dA und dB aus der Kenntnis von QA, QB, P und der elliptischen Kurve effizienter als durch bloßes Ausprobieren zu berechnen. Dies bedeutet in anderen Worten, daß die konstanten Faktoren dA, dB vor Angriffen bei der Partei A bzw. der Partei B zu schützen sind.It is not possible to calculate the constant factors d A and d B from the knowledge of Q A , Q B , P and the elliptic curve more efficiently than by mere trial and error. In other words, this means that the constant factors d A , d B must be protected from attacks on party A or party B.

Im nachfolgenden wird auf 6 Bezug genommen, um den bekannten Double-&-Add-Algorithmus darzustellen, der auch für die Berechnung der Multiplikation eines Punkts auf der elliptischen Kurve mit einem konstanten Faktor eingesetzt werden kann. Im Gegensatz zur üblichen Arithmetik, unterscheiden sich bei der Elliptische-Kurven-Arithmetik die Formeln zum Addieren zweier Punkte auf der elliptischen Kurve bzw. die Formeln zum Multiplizieren eines Punkts auf der elliptischen Kurve mit dem Faktor 2. Diese Additionsformeln bzw. Multiplikationsformeln hängen von der jeweils gewählten elliptischen Kurve ab.The following is on 6 Reference is made to illustrate the known double-and-add algorithm that can also be used to calculate the multiplication of a point on the elliptic curve with a constant factor. In contrast to the usual arithmetic, in elliptic curve arithmetic the formulas for adding two points on the elliptic curve and the formulas for multiplying a point on the elliptic curve differ by a factor of 2. These addition formulas or multiplication formulas depend on the each selected elliptic curve.

Der Double-&-Add-Algorithmus berechnet allgemein als Ergebnis E die Multiplikation einer Ganzzahl d mit einem Punkt B auf der elliptischen Kurve, wie es in einem Block 100 in 6 dargestellt ist. Als Eingabe benötigt der Algorithmus die Länge n des Multiplikators d, eine Inkrementierungsgröße i sowie ein Register E, das zu Anfang des Algorithmus auf den Wert 0 initialisiert wird, wie es in einem Block 102 dargestellt ist. Zunächst wird untersucht, ob das betrachtete Bit i des Multiplikators 0 oder 1 ist (Block 104). Wird festgestellt, daß das gerade betrachtete Bit eine 1 ist, wird der rechte Zweig von 6 genommen. Wird dagegen festgestellt, daß das betrachtete Bit eine 0 ist, so wird der linke Zweig genommen. Der Double-&-Add-Algorithmus bedingt für den Fall, daß das gerade betrachtete Bit des Multiplikators 1 ist, daß der aktuelle Inhalt des Registers E verdoppelt wird (Block 106), und daß dann zu dem Wert E der Punkt B der elliptischen Kurve hinzuaddiert wird, um den neuen Wert E des Registers für das Ergebnis E zu erhalten (Block 108). Wird dagegen festgestellt, daß das aktuelle gerade betrachtete Bit di gleich 0 ist, so wird nur ein Verdopplungsschritt (Block 110) durchgeführt, und es findet kein Additionsschritt statt.The double-and-add algorithm generally calculates, as result E, the multiplication of an integer d by a point B on the elliptic curve, as in a block 100 in 6 is shown. As input, the algorithm requires the length n of the multiplier d, an increment size i, and a register E which is initialized to the value 0 at the beginning of the algorithm, as in a block 102 is shown. First, it is examined whether the considered bit i of the multiplier is 0 or 1 (block 104 ). If it is determined that the bit currently being considered is 1, the right branch of 6 taken. On the other hand, if it is determined that the bit under consideration is 0, the left branch is taken. The double & add algorithm, in the event that the bit of the multiplier under consideration is 1, causes the current contents of the register E to be doubled (block 106 ), and then adding to the value E the point B of the elliptic curve to obtain the new value E of the result E register (block 108 ). If, on the other hand, it is found that the current bit d i currently being considered is 0, only one doubling step (Block 110 ), and there is no addition step.

Nach der Beendigung der Schleife bzw. nach dem Berechnen von E wird die Laufvariable i um 1 inkrementiert (Block 112). Dann wird überprüft, ob i kleiner als n ist (Block 114). Ist i kleiner als n, so wird die Schleife (Blöcke 104, 106, 108, 110) erneut durchlaufen. Wird dagegen festgestellt, daß sämtliche Bits des ganzzahligen Multiplikators d abgearbeitet sind, so wird der aktuelle Wert des Registers E als das Ergebnis der Multiplikation des ganzzahligen Faktors d mit dem Punkt B auf der elliptischen Kurve ausgegeben (Block 116). Wie es bekannt ist, wird zunächst das höchstwertige Bit des Multiplikators d betrachtet, woraufhin im nächsten Durchlauf das zweithöchste Bit betrachtet wird etc. Die Bits des ganzzahligen Multiplikators werden daher von höchstwertigen Bits ausgehend zu niederwertigen Bits verarbeitet, bis das niederstwertige Bit erreicht wird, was in dem Block 114 festgestellt wird. Nach der Verarbeitung des niederstwertigen Bits kann das Ergebnis durch den Block 116 ausgegeben werden.After the termination of the loop or after the calculation of E, the run variable i is incremented by 1 (block 112 ). Then it is checked if i is smaller than n (block 114 ). If i is smaller than n, then the Loop (blocks 104 . 106 . 108 . 110 ) go through again. On the other hand, if it is determined that all the bits of the integer multiplier d have been processed, the current value of the register E is output as the result of multiplying the integer factor d by the point B on the elliptic curve (Block 116 ). As is known, the most significant bit of the multiplier d is considered first, whereupon the second highest bit is considered in the next pass, etc. The bits of the integer multiplier are therefore processed from most significant bits to least significant bits until the least significant bit is reached, which in the block 114 is detected. After processing the least significant bit, the result may be passed through the block 116 be issued.

Nachteilig an dem in 6 beschriebenen Double-&-Add-Algorithmus ist die Tatsache, daß die Berechnung in den beiden Zweigen hinsichtlich der Anzahl der Schritte unterschiedlich ist, je nach dem, ob das gerade aktuell betrachtete Bit di gleich 1 ist oder gleich 0 ist. Daher ist es für bestimmte Angriffe auf den kryptographischen Algorithmus möglich, anhand des Leistungsverbrauchs bzw. der Zeitdauer, die für die Berechnung einer Iteration benötigt wird, festzustellen, ob das gerade betrachtete Bit eine 1 oder eine 0 war. Wie es ausgeführt worden ist, ist der Skalar, der mit einem Punkt auf der elliptischen Kurve multipliziert wird, typischerweise die geheime Information bzw. der geheime Schlüssel einer Partei, der vor Angriffen zu schützen ist.A disadvantage of the in 6 The double-and-add algorithm described above is the fact that the calculation in the two branches is different in the number of steps, depending on whether the currently considered bit d i is equal to 1 or equal to 0. Therefore, for certain attacks on the cryptographic algorithm, it is possible to determine from the power consumption or the time required for the calculation of an iteration, whether the bit currently being considered was a 1 or a 0. As has been stated, the scalar that is multiplied by a point on the elliptic curve is typically the secret information or secret key of a party to be protected from attack.

Als Gegenmaßnahme gegen eine solche Attacke auf den kryptographischen Algorithmus könnte in dem Double-&-Add-Algorithmus im linken Zweig von 6 eine Dummy-Addition 118 eingefügt werden, deren Ergebnis nicht verwendet wird. Diese Dummy-Addition 118 stellt sicher, daß der Zeitaufwand und der Leistungsverbrauch des Kryptochips für beide Fälle, d. h. für di = 1 und di = 0, gleich sind, so daß Timing-Attacken oder einfache Power-Analysis-Attacken fehlschlagen werden.As a countermeasure against such an attack on the cryptographic algorithm could be in the double & add algorithm in the left branch of 6 a dummy addition 118 inserted, whose result is not used. This dummy addition 118 ensures that the time and power consumption of the crypto chip are the same for both cases, ie for d i = 1 and d i = 0, so that timing attacks or simple power analysis attacks will fail.

Rechenregeln zum Berechnen der Summe zweier Punkte auf einer elliptischen Kurve oder zum Berechnen der Multiplikation eines Punkts auf einer elliptischen Kurve mit dem Faktor 2 bzw. zum Multiplizieren eines Punkts auf der elliptischen Kurve mit einem konstanten Faktor sind für allgemeine elliptische Kurven der Form y2 = x3 + a·x + b in Carl Pomerance, „Prime Numbers", Springer-Verlag, 2001, Kapitel 7.2, beschrieben. Ferner wird in diesem Fachbuch ein Überblick über die verschiedenen Koordinaten gegeben. Hierbei werden affine Koordinaten, projektive Koordinaten, modifizierte projektive Koordinaten sowie X-, Z-Koordinaten, die auch als Montgomery-Koordinaten bezeichnet werden, beschrieben. Projektive Koordinaten [X, Y, Z] können in affine Koordinaten (x, y) folgendermaßen umgerechnet werden: x = X/Z und y = Y/Z. Calculation rules for calculating the sum of two points on an elliptic curve or for calculating the multiplication of a point on an elliptic curve by a factor of 2 or multiplying a point on the elliptic curve by a constant factor are for general elliptic curves of the form y 2 = x 3 + a · x + b in Carl Pomerance, "Prime Numbers", Springer-Verlag, 2001, Chapter 7.2.) This book also gives an overview of the various coordinates, in which affine coordinates, projective coordinates, are modified projective coordinates as well as X, Z coordinates, also referred to as Montgomery coordinates Projective coordinates [X, Y, Z] can be converted into affine coordinates (x, y) as follows: x = X / Z and y = Y / Z.

Ferner wird in demselben Fachbuch die sogenannte Lucas-Kette erläutert, die darin besteht, das Produkt k mal P mittels einer Additionskette zu berechnen, wobei immer dann, wenn zwei ungleiche Punkte P1, P2 miteinander addiert werden, die Differenz P1 – P2 bekannt ist. An Zwischenschritten liegt daher ein Paar [m] P, [m + 1] P vor. Aus diesem Paar wird entweder das Paar [2m] P, [2m + 1] P oder das Paar [2m + 1] P, [2m + 2] P gebildet, und zwar abhängig von den Bits des Skalars k. In jedem Fall wird eine Verdopplung und eine Addition durchgeführt. Für die Addition selbst ist bereits die Differenz der zwei addierten Punkte bekannt, nämlich P selbst.Furthermore, in the same textbook, the so-called Lucas chain is explained, which consists in calculating the product k times P by means of a addition chain, wherein whenever two unequal points P 1 , P 2 are added together, the difference P 1 - P 2 is known. Intermediate steps therefore involve a pair [m] P, [m + 1] P. From this pair, either the pair [2m] P, [2m + 1] P or the pair [2m + 1] P, [2m + 2] P is formed, depending on the bits of the scalar k. In any case, a doubling and an addition are performed. For the addition itself, the difference of the two points added is already known, namely P itself.

Die Lucas-Kette ermöglicht es, daß die x-Koordinate eines Ergebnispunkts auf der elliptischen Kurve unabhängig von der y-Koordinate dieses Punkts berechnet werden kann. So existieren beispielsweise Kryptographieverfahren, bei denen die y-Koordinate gar nicht benötigt wird, wie z. B. das EC-DSA-Verfahren, während wieder andere Kryptographieverfahren vorhanden sind, bei denen die y-Koordinate benötigt wird, wie z. B. das Diffie-Hellman-Verfahren.The Lucas chain allows it that the x-coordinate of a result point on the elliptic curve independent of the y-coordinate of this point can be calculated. For example, there exist Cryptographic methods that do not need the y-coordinate, such as The EC-DSA procedure, while Again, there are other cryptographic methods in which the y coordinate needed is, such. For example, the Diffie-Hellman method.

Nachteilig an dem klassischen Double-And-Add-Algorithmus ist jedoch, daß keine Parallelisierung möglich ist. So kann der Schritt 108 erst dann ausgeführt werden, wenn der Schritt 106 gerechnet ist. Der Double-&-Add-Algorithmus kann daher in seiner in 6 gezeigten Form nicht parallelisiert werden. Darüber hinaus werden durch den Dummy-Schritt 118 Rechenressourcen lediglich aus Sicherheitsgründen „verschwendet", ohne daß das Ergebnis, für dessen Erlangen die Rechenressourcen aufgewendet worden sind, verwendet werden würde.However, a disadvantage of the classic double-and-add algorithm is that no parallelization is possible. That is how the step can be 108 only be executed when the step 106 is calculated. The Double & Add algorithm can therefore be used in its in 6 not be parallelized form shown. In addition, through the dummy step 118 For reasons of security, computing resources are "wasted" without the result, for which the computational resources have been spent, being used.

Insbesondere bei Kryptographiealgorithmen auf Chipkarten, bei denen enge Rechenressourcen- und Speicherkapazitätsbeschränkungen bestehen, ist jedoch neben der Sicherheit des Algorithmus auch die Effizienz des Algorithmus von wesentlicher Bedeutung. So ist die Fläche eines Chips auf einer Chipkarte durch „äußere" Spezifikationen auf eine bestimmte Chipfläche begrenzt. Dem Entwickler steht es dann frei, diese zur Verfügung gestellte Gesamt-Chipfläche für seine Anwendungen als Speicher oder als Rechenwerk zu verwenden. Andererseits wird eine Akzeptanz von Chipkarten nur dann vorhanden sein, wenn digitale Unterschriften natürlich sicher aber auch schnell erzeugt werden, da ein Kunde nicht mehrere Minuten auf eine Authentifikation beispielsweise an einem Bankautomaten warten möchte.However, in particular, in cryptographic algorithms on smart cards, where there are tight computational resource and storage capacity constraints, the algorithm's security as well as the algorithm's efficiency are essential. For example, the area of a chip on a smart card is limited by "outer" specifications to a specific chip area, leaving the developer free to use this total available chip area for its applications as a memory or as an arithmetic unit the. On the other hand, an acceptance of smart cards will only be present if digital signatures are of course certainly generated but also fast, because a customer does not want to wait several minutes for authentication, for example, at a cash machine.

Die WO 00/25204 A1 offenbar ein kryptographisches Konzept, das gegen Leistungssignaturattacken resistent ist. Ein Mehrfaches eines Punktes auf einer elliptischen Kurve, die über einem Feld definiert ist, wird berechnet. Hierzu wird die Zahl, die das Mehrfache des Punktes bestimmt, als Binärvektor dargestellt, wobei ein geordnetes Paar von Punkten gebildet wird, wobei sich die Punkte voneinander unterscheiden, und wobei die Bits des Vektors in Sequenz gewählt werden. Ein neuer Satz von Punkten wird berechnet, indem ein erster Punkt verdoppelt wird und dann der verdoppelte Punkt mit dem zweiten Punkt addiert wird. Die Verdopplungen und Addierungen werden immer in der gleichen Reihenfolge für jedes Bit durchgeführt, wodurch Timing-Attacken abgewehrt werden.The WO 00/25204 A1 apparently a cryptographic concept, the against Performance signature attacks is resistant. A multiple of a point on an elliptic curve defined over a field, is being computed. For this, the number that is the multiple of the point determined, as a binary vector represented, wherein an ordered pair of points is formed, where the dots are different from each other and where the bits of the vector chosen in sequence become. A new set of points is calculated by adding a first point is doubled and then the doubled point with the second point is added. The doublings and additions are always in the same order for every bit performed, which avoids timing attacks.

Die WO 99/49386 A1 bezieht sich auf beschleunigte Operationen auf einer elliptischen Kurve. Zur Multiplikation eines Punktes auf einer elliptischen Kurve mit einem Wert k wird der Wert k als Vektor binärer Zahlen dargestellt. Ferner wird eine Sequenz von Punktpaaren gebildet. Die Berechnungen werden ohne Verwendung der y-Koordinate der Punkte durchgeführt. Die y-Koordinate wird dann am Ende der Berechnungen extrahiert, wodurch keine Invertierungs-Operationen nötig sind.The WO 99/49386 A1 relates to accelerated operations on one elliptic curve. To multiply a point on an elliptical Curve with a value k, the value k is represented as a vector of binary numbers. Furthermore, a sequence of pairs of points is formed. The calculations are performed without using the y-coordinate of the points. The y-coordinate is then extracted at the end of the calculations, thereby no inversion operations are necessary.

Das US-Patent Nr. 6,263,081 B1 offenbart eine schnelle Berechnung von Mehrfachen auf einer elliptischen Kurve. Eine Multiplikationsberechnungseinheit erzeugt Vorberechnungs-Tabellen für Mehrfache von Zahlen an Ein-Wort-Intervallen und für Mehrfache von Zahlen an Halb-Wort-Intervallen. Mehrfache von Punkten auf einer elliptischen Kurve werden unter Verwendung eines Verdopplungsprozesses berechnet, jedoch mit einer reduzierten Anzahl von Additionen.The US Pat. No. 6,263,081 B1 discloses a rapid calculation of Multiple on an elliptic curve. A multiplication calculation unit generates precalculation tables for multiple of numbers at one-word intervals and for multiples of numbers at half-word intervals. Multiple points on an elliptic curve are set Using a doubling process calculated, but with a reduced number of additions.

Die Fachveröffentlichung „A Small and Fast Software Implementation of Elliptic Curve Cryptosystems over GF (p) on a 16-Bit Microcomputer", T. Hasegawa u.a., IEICE Trans. Fundamentals, Vol. I82-A, Nr. 1, Januar 1999, Seiten 98–106, offenbart einen neuen Typ einer Prim-Charakteristik eines Basisfeldes, die für kleine und schnelle Implementierungen geeignet ist. Diese Prim-Charakteristik wird verwendet, um eine Galois-Feld-Multiplikation mit einem kleineren Code durchzuführen.The Specialist publication "A Small and Fast Software Implementation of Elliptic Curve Cryptosystems over GF (p) on a 16-Bit Microcomputer ", T. Hasegawa et al., IEICE Trans. Fundamentals, Vol. I82-A, No. 1, January 1999, pages 98-106 a new type of prim characteristic of a basic field, the for small and fast implementations is suitable. This prim characteristic is used to do a Galois field multiplication with a smaller one Code.

Die Aufgabe der vorliegenden Erfindung besteht darin, ein Konzept zum Multiplizieren einer Zahl mit einem Punkt auf einer elliptischen Kurve im Rahmen einer kryptographischen Berechnung zu schaffen, das einerseits effizient und andererseits sicher ist.The Object of the present invention is to provide a concept for Multiply a number by one point on an elliptical one To create a curve as part of a cryptographic calculation, that is both efficient and safe.

Diese Aufgabe wird durch ein Verfahren zum Addieren zweier Punkte gemäß Patentanspruch 1, ein Verfahren zum Multiplizieren gemäß Patentanspruch 2, eine Vorrichtung zum Addieren gemäß Patentanspruch 3, eine Vorrichtung zum Addieren gemäß Patentanspruch 5, eine Vorrichtung zum Multiplizieren gemäß Patentanspruch 6 oder ein Verfahren zum Addieren gemäß Patentanspruch 7 gelöst.These Problem is solved by a method for adding two points according to claim 1, a method for multiplying according to claim 2, a device for adding according to claim 3, an adding device according to claim 5, a device for multiplying according to claim 6 or a method for adding according to claim 7 solved.

Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, daß von dem Double-&-Add-Algorithmus weggegangen werden muß, und daß statt dessen die Multiplikation eines Skalars mit einem Punkt auf der elliptischen Kurve unter Verwendung zweier Hilfsgrößen berechnet werden muß, wobei eine Hilfsgröße immer gleich dem Doppelten des vorherigen Werts der Hilfsgröße ist, während die andere Hilfsgröße immer gleich der Summe der beiden vorherigen Hilfsgrößen ist. Je nach dem, ob das gerade betrachtete Bit des Skalars, d. h. des Multiplikators, eine 1 oder eine 0 ist, wird das Doppelte der einen Hilfsgröße berechnet, oder wird das Doppelte der anderen Hilfsgröße berechnet. Dies bedeutet, daß für beide Fälle, also für den Fall daß das Bits des Skalars gleich 0 oder daß das Bit des Skalars gleich 1 ist, immer eine Addition und eine Multiplikation mit 2 durchgeführt wird. Damit sind Timing-Attacken oder Power-Analysis-Attacken von vornherein nicht wirkungsvoll. Darüber hinaus können die beiden Hilfsgrößen unabhängig voneinander, also parallel berechnet werden, was zu einem Performancegewinn führt. Hierzu sind zwar zwei parallele Rechenwerke vonnöten. Wenn diese zwei parallelen Rechenwerke jedoch ohnehin im Kryptoprozessor beispielsweise auf der Smart Card aus anderen Gründen vorhanden sind, spielt dies keine Rolle. Zurück bleibt die Verdopplung des Durchsatzes gegenüber dem einfachen Double-&-Add-Algorithmus bei erhöhter Sicherheit.Of the The present invention is based on the finding that of the Double & Add algorithm gone away must become, and that instead its the multiplication of a scalar with a point on the elliptic curve calculated using two auxiliary quantities must become, where an auxiliary size is always the same is twice the previous value of the auxiliary size while the other auxiliary size is always is equal to the sum of the two previous auxiliary quantities. Depending on if that just considered bit of the scalar, d. H. of the multiplier, one 1 or a 0, twice the one auxiliary size is calculated, or is charged twice the other auxiliary size. This means, that for both Cases, So for the case that that Bits of the scalar equal 0 or that the scalar's bit is equal 1, always one addition and one multiplication by 2 is performed. Thus, timing attacks or power-analysis attacks are a priori not effective. About that can out the two auxiliary variables independently of each other, ie be calculated in parallel, which leads to a performance gain. For this Although two parallel arithmetic units are needed. If these two parallel However, arithmetic units anyway in the crypto processor, for example the smart card for other reasons are present, this does not matter. What remains is the doubling of the Throughput over the simple double & add algorithm at elevated Safety.

Das erfindungsgemäße Verfahren zum Multiplizieren einer Zahl mit einem Punkt bezieht sich auf eine elliptischen Kurve y2 = x3 + a·x + b, wobei x eine erste Koordinate der elliptischen Kurve ist, wobei y eine zweite Koordinate der elliptischen Kurve ist, und wobei die elliptischen Kurve über einem Körper mit einer Charakteristik p größer als 3 definiert ist. In diesem Zusammenhang bedeutet dies, daß sämtliche Koordinaten auf der elliptischen Kurve einer Modulo-Operation mit der Charakteristik p unterzogen werden. Es sei darauf hingewiesen, daß das erfindungsgemäße Verfahren nicht für elliptischen Kurven mit Charakteristika von 3 oder kleiner als 3 anwendbar ist.The inventive method for multiplying a number by a dot refers to a elliptic curve y 2 = x 3 + a x + b, where x is a first coordinate of the elliptic curve, where y is a second coordinate of the elliptic curve, and where the elliptic curve defines over a body with a characteristic p greater than 3 is. In this context, this means that all coordinates on the elliptic curve are subjected to a modulo operation with the characteristic p. It should be noted that the method according to the invention is not applicable to elliptic curves with characteristics of 3 or smaller than 3.

Ein Vorteil der vorliegenden Erfindung besteht darin, daß keine Timing-Attacken oder Leistungs-Attacken zielführend sind, da der Verarbeitungsaufwand für ein Bit des Multiplikators unabhängig davon ist, ob das Bit eine 0 oder eine 1 hat.One Advantage of the present invention is that no Timing attacks or performance attacks are expedient because of the processing overhead for a Bit of the multiplier independent that's whether the bit has a 0 or a 1.

Ein weiterer Vorteil der vorliegenden Erfindung besteht darin, daß der erste und der zweite Hilfspunkt auf der elliptischen Kurve in jedem Iterationsschritt parallel berechnet werden können, so daß ein Geschwindigkeitsgewinn mit einem Faktor in der Größenordnung von 1,9 (theoretisch 2) gegenüber dem Double-&-Add-Algorithmus mit Dummy-Addition erreichbar ist.One Another advantage of the present invention is that the first and the second auxiliary point on the elliptic curve in each iteration step can be calculated in parallel, so that one Speed gain with a factor of the order of magnitude of 1.9 (theoretically 2) opposite the double & add algorithm can be reached with dummy addition.

Darüber hinaus ist die Erfindung dahingehend vorteilhaft, daß explizite Additions-Formeln zum Berechnen des ersten und des zweiten Hilfspunkts angegeben werden können, die in sich selbst wiederum parallelisiert werden können, was insgesamt zu einem Leistungsgewinn mit einem Faktor in der Größenordnung von 2,6 resultiert.Furthermore the invention is advantageous in that explicit addition formulas to calculate the first and second auxiliary points can, which in turn can be parallelized, which Overall, a performance gain with a factor of the order of 2.6 results.

Darüber hinaus ist die Erfindung dahingehend vorteilhaft, daß ihre Anwendbarkeit für beliebige elliptische Kurven anwendbar ist, solange die Charakteristik des zugrundeliegenden Körpers der elliptischen Kurve größer als 3 ist.Furthermore the invention is advantageous in that its applicability to any elliptic curves is applicable as long as the characteristics of the underlying body the elliptic curve is larger than 3 is.

Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen detailliert erläutert. Es zeigen:preferred embodiments The present invention will be described below with reference to FIG the accompanying drawings explained in detail. Show it:

1 ein Blockdiagramm des erfindungsgemäßen Verfahrens zum Multiplizieren einer Zahl mit einem Punkt auf einer elliptischen Kurve; 1 a block diagram of the inventive method for multiplying a number with a point on an elliptic curve;

2 ein schematisches Blockschaltbild eines Addierers zum Addieren zweier Punkte auf der elliptischen Kurve, um den ersten Hilfspunkt zu erhalten; 2 a schematic block diagram of an adder for adding two points on the elliptic curve to obtain the first auxiliary point;

3 ein Prinzipblockschaltbild eines Multiplizierers zum Multiplizieren eines Punkts auf der elliptischen Kurve mit dem Faktor 2, um den zweiten Hilfspunkt zu erhalten; 3 a principle block diagram of a multiplier for multiplying a point on the elliptic curve by a factor of 2 to obtain the second auxiliary point;

4 ein Blockschaltbild eines Rechenwerks zum Addieren und Multiplizieren mit einem Faktor 2 und parallelisierter Funktionalität; 4 a block diagram of an arithmetic unit for adding and multiplying by a factor of 2 and parallelized functionality;

5 ein Übersichtsdiagramm der Funktionalität der Ablaufsteuerung von 4; und 5 an overview diagram of the functionality of the flow control of 4 ; and

6 ein Übersichtsdiagramm des Double-&-Add-Algorithmus ohne und mit Dummy-Addition. 6 an overview diagram of the double & add algorithm with and without dummy addition.

1 zeigt ein Übersichtsdiagramm über den erfindungsgemäßen Algorithmus zum Multiplizieren einer Zahl d mit einem Punkt B auf einer elliptischen Kurve der folgenden Form: y2 = x3 + a·x + b,wobei a und b für Konstanten stehen. Die elliptische Kurve ist für Charakteristika p größer als 3 definiert (Block 10). Darüber hinaus werden zwei unterschiedliche Punkte P und Q betrachtet, die beide ungleich 0 sind. Die affinen Koordinaten für den Punkt P lauten (xP, yP). Die projektiven Koordinaten des Punkts P lauten (XP : YP : ZP), wobei der Punkt P aus A2 = P2 – P1 ist. Für diese Koordinaten gibt es u. a. die Beziehungen XP = xP·ZP und YP = yP·ZP. 1 FIG. 4 shows an overview diagram of the algorithm according to the invention for multiplying a number d by a point B on an elliptic curve of the following form: y 2 = x 3 + a · x + b, where a and b are constants. The elliptic curve is defined for characteristics p greater than 3 (block 10 ). In addition, two different points P and Q are considered, both of which are not equal to zero. The affine coordinates for the point P are (x P , y P ). The projective coordinates of the point P are (X P : Y P : Z P ), where the point P is A 2 = P 2 -P 1 . For these coordinates, inter alia, there are the relations X P = x P * Z P and Y P = y P * Z P.

In einem Initialisierungsblock 12 wird zunächst die Länge in Bit n des Multiplikators d (d0, d1, d2, ..., dn) festgelegt, wobei d0 das höchstwertige Bit des Multiplikators ist. Ferner wird eine Laufvariable i auf 0 initialisiert. Darüber hinaus wird der erste Hilfspunkt P auf den Nullpunkt der elliptischen Kurve initialisiert, und wird der zweite Hilfspunkt Q auf B initialisiert. Hierauf wird in die Iteration von 1 eingetreten.In an initialization block 12 First, the length is set in bits n of the multiplier d (d 0 , d 1 , d 2 , ..., d n ), where d 0 is the most significant bit of the multiplier. Furthermore, a run variable i is initialized to zero. In addition, the first auxiliary point P is initialized to the zero point of the elliptic curve, and becomes the second auxiliary point Q initialized to B. This is followed in the iteration of 1 occurred.

Alternativ kann der erste Iterationsschritt des obigen Verfahrens bereits in die Initialisierung aufgenommen werden, da Bits oberhalb des höchstwertigen Bits im Multiplikatorregister gleich Null sind und das höchstwertige Bit des Multiplikators immer gleich Eins ist. In diesem Fall wird P auf B initialisiert, und wird Q auf 2B initialisiert.alternative the first iteration step of the above method may already be described in the initialization will be taken because bits are above the most significant one Bits in the multiplier register are zero and the most significant Bit of the multiplier is always equal to one. In this case will P is initialized to B, and Q is initialized to 2B.

In einem Block 14 wird zunächst überprüft, ob das aktuell betrachtete Bit des Multiplikators d gleich 0 ist oder nicht. Wird diese Frage mit Ja beantwortet, so wird in die rechte Schleife von 1 eingetreten. Wird diese Frage dagegen mit Nein beantwortet, so wird in die linke Schleife von 1 eingetreten.In a block 14 First, it is checked whether the currently considered bit of the multiplier d is equal to 0 or not. If this question is answered with Yes, then the right loop of 1 occurred. If, on the other hand, this question is answered with no, then the left loop of 1 occurred.

Ist das Bit di des Multiplikators gleich 0, so wird der neue Wert Pneu des ersten Hilfspunkts berechnet, indem die beiden aktuellen Hilfspunkte P und Q addiert werden (Block 16). Der zweite Hilfspunkt Qneu wird dadurch berechnet, daß der alte zweite Hilfspunkt Q mit dem Faktor 2 multipliziert wird (Block 18).If the bit d i of the multiplier equals 0, the new value P new of the first auxiliary point is calculated by adding the two current auxiliary points P and Q (block 16 ). The second auxiliary point Q new is calculated by multiplying the old second auxiliary point Q by a factor of 2 (block 18 ).

Wird dagegen im Block 14 bestimmt, daß das aktuelle Bit di des Multiplikators d gleich 1 ist, so wird der neue erste Hilfspunkt Pneu dadurch berechnet, daß der alte erste Hilfspunkt P mit dem Faktor 2 multipliziert wird (20). Der neue Wert des zweiten Hilfspunkts Qneu wird dadurch berechnet, daß der alte erste Hilfspunkt P und der alte zweite Hilfspunkt Q summiert werden (Block 22).Will against it in the block 14 determines that the current bit d i of the multiplier d is equal to 1, the new first auxiliary point P new is calculated by multiplying the old first auxiliary point P by a factor of 2 ( 20 ). The new value of the second auxiliary point Q new is calculated by summing the old first auxiliary point P and the old second auxiliary point Q (block 22 ).

Hierauf wird am Ausgang der Iterationsschleife die Zählvariable i um 1 inkrementiert (Block 24), um dann in einem Block 26 zu überprüfen, ob i kleiner als n ist. Wird diese Frage mit Ja beantwortet, wird, wie es in 1 gezeigt ist, zurückgesprungen, um das nächste Bit des Multiplikators d zu untersuchen. Wird die Frage von Block 26 dagegen mit Nein beantwortet, so wird als Ergebnis E der erste Hilfspunkt P in einem Block 28 ausgegeben.The count variable i is then incremented by 1 at the output of the iteration loop (block 24 ), then in a block 26 to check if i is less than n. If this question is answered in the affirmative, it will, as in 1 is returned to examine the next bit of the multiplier d. Will the question of block 26 on the other hand answered No, the result E results in the first auxiliary point P in a block 28 output.

Wie es bereits ausgeführt worden ist, wird für bestimmte kryptographische Algorithmen lediglich die x-Koordinate des Ergebnispunkts E auf der elliptischen Kurve benötigt. Die in den Blöcken 12, 16, 18, 20 und 22 dargestellten Berechnungen müssen in diesem Fall lediglich für die x-Koordinate durchgeführt werden, die aufgrund der Gesetze der Lucas-Kette unabhängig von den y-Koordinaten der Hilfspunkte P, Q berechnet werden können.As already stated, for certain cryptographic algorithms only the x-coordinate of the result point E on the elliptic curve is needed. The in the blocks 12 . 16 . 18 . 20 and 22 In this case, the calculations shown above only have to be performed for the x-coordinate, which can be calculated independently of the y-coordinates of the auxiliary points P, Q due to the laws of the Lucas chain.

Je nach dem, ob die y-Koordinate des Punkts E benötigt wird, kann diese auf effiziente Weise berechnet werden, wie es später ausgeführt wird.ever according to whether the y-coordinate of the point E is needed, this can be efficient Be calculated as it will be explained later.

Im nachfolgenden wird auf die Berechnung des „Double-&-Add"-Paars eingegangen. Der Vollständigkeit halber wird noch einmal darauf hingewiesen, daß eine elliptische Kurve über einem Körper der Charakteristik größer als 3 mit folgender Bestimmungsgleichung zugrunde gelegt wird. y2 = x3 + ax + b (1) For the sake of completeness, it is once again pointed out that an elliptic curve over a field of characteristic greater than 3 is based on the following equation of determination. y 2 = x 3 + ax + b (1)

Die beiden Hilfspunkte P' bzw. Pneu und Q' bzw. Qneu berechnen sich aus den alten Hilfspunkte P und Q im Falle eines Bits di folgendermaßen (rechter Zweig des Algorithmus von 1): (P',Q'):= (P + Q,2Q) (2) The two auxiliary points P 'or P new and Q' or Q new calculated from the old auxiliary points P and Q in the case of a bit d i as follows (right branch of the algorithm of 1 ): (P ', Q'): = (P + Q, 2Q) (2)

Es sei darauf hingewiesen, daß dieselbe Berechnung analog für den linken Iterationszweig von 1 durch Koordinatenaustausch durchgeführt werden kann.It should be noted that the same calculation is analogous to the left iteration branch of 1 can be performed by coordinate exchange.

Zusätzlich wird ein Wert D gleich der Differenz zwischen P und Q bzw. Q und P eingeführt, wobei darauf hingewiesen wird, daß das Vorzeichen der Differenz D nicht benötigt und daher im nachfolgenden nicht berücksichtigt wird. Ferner wird darauf hingewiesen, daß die Differenz in jedem Iterationsschritt gleich ist und ferner immer gleich B selbst ist, da im ersten Iterationsschritt die Differenz zwischen P und Q gleich B ist.In addition will introduced a value D equal to the difference between P and Q, and Q and P, respectively It should be noted that the Sign of the difference D not needed and therefore in the following not considered becomes. It should also be noted that the difference in each iteration step is the same and furthermore always B is itself, since in the first iteration step the difference between P and Q is equal to B.

Die affine x-Koordinate xP' des ersten Hilfspunkts auf der elliptischen Kurve berechnet sich folgendermaßen aus den affinen x-Koordinaten der alten Hilfspunkte P und Q:The affine x-coordinate x P 'of the first auxiliary point on the elliptic curve is calculated as follows from the affine x-coordinates of the old auxiliary points P and Q:

Figure 00150001
Figure 00150001

Die affine x-Koordinate xD der Differenz aus P und Q berechnet sich folgendermaßen:The affine x-coordinate x D of the difference between P and Q is calculated as follows:

Figure 00150002
Figure 00150002

Die affine x-Koordinate xQ' des zweiten Hilfspunkts Q' berechnet sich folgendermaßen:The affine x-coordinate x Q 'of the second auxiliary point Q' is calculated as follows:

Figure 00150003
Figure 00150003

Werden nun die Gleichungen 3 und 4 miteinander addiert und wird y 2 / P und y 2 / Q unter Verwendung der Gleichung (1) substituiert, wird folgender Ausdruck erhalten: (xP' + xD)(xP – xQ)2 = 2(xP + xQ)(xPxQ + a) + 4b (6) Now, when equations 3 and 4 are added together and y 2 / P and y 2 / Q are substituted using equation (1), the following expression is obtained: (x P ' + x D ) (X P - x Q ) 2 = 2 (x P + x Q ) (X P x Q + a) + 4b (6)

Schließlich wird y 2 / P mittels der Gleichung (1) substituiert, wodurch sich aus Gleichung (5) folgende Gleichung ergibt: 4xQ'(xQ 3 + axQ + b) = (xQ 2 – a)2 – 8bxQ (7) Finally, y 2 / P is substituted by equation (1), resulting in the following equation from equation (5): 4x Q ' (x Q 3 + ax Q + b) = (x Q 2 - a) 2 - 8bx Q (7)

Nunmehr wird XP/ZP für xP substituiert, und wird XQ/ZQ für xQ substituiert. Damit ergibt sich aus Gleichung (6) folgende Gleichung: XP'(XPZQ – XQZP)2 = ZP'(2(XPZQ + XQZP)(XPXQ + aZPZQ) + 4b2P Z2Q – xD(XPZQ – XQZP)2) (8) Now P X / Z P is substituted for x P, Q and X / Z Q Q substituted for x. Thus, equation (6) yields the following equation: X P ' (X P Z Q - X Q Z P ) 2 = Z P ' (2 (X P Z Q + X Q Z P ) (X P X Q + aZ P Z Q ) + 4b 2 P Z 2 Q - x D (X P Z Q - X Q Z P ) 2 ) (8th)

Mit denselben Substitutionen ergibt sich aus Gleichung (7) folgende Gleichung: XQ'4(XQZQ(X2Q + aZ2Q ) + bZ4Q ) = ZQ'((X2Q – aZ2Q )2 – 8bXQZ3Q (9) With the same substitutions, equation (7) yields the following equation: X Q ' 4 (X Q Z Q (X 2 Q + aZ 2 Q ) + bZ 4 Q ) = Z Q ' ((X 2 Q - aZ 2 Q ) 2 - 8bX Q Z 3 Q (9)

Damit ergeben sich folgende expliziten Formeln für die Addition, also für XP' und ZP', d. h. für die erste und die dritte projektive Koordinate des ersten Hilfspunktes: XP' = 2(XPZQ + XQZP)(XPXQ + aZPZQ) + 4bZP 2ZQ 2 – xD(XPZQ – XQZP)2 ZP' = (XPZQ – XQZP)2 (10a) This results in the following explicit formulas for the addition, ie for X P ' and Z P' , ie for the first and third projective coordinates of the first auxiliary point: X P ' = 2 (X P Z Q + X Q Z P ) (X P X Q + aZ P Z Q ) + 4bZ P 2 Z Q 2 - x D (X P Z Q - X Q Z P ) 2 Z P ' = (X P Z Q - X Q Z P ) 2 (10a)

Für die Double-Formel, also zur Berechnung des zweiten Hilfspunkts Q', ergeben sich folgende Gleichungen: XQ' = (XQ 2 – aZQ 2)2 – 8bXQZQ 3 ZQ' = 4(XQZQ(XQ 2 + aZQ 2) + bZQ 4) (10b) For the double formula, ie for the calculation of the second auxiliary point Q ', the following equations result: X Q ' = (X Q 2 - aZ Q 2 ) 2 - 8bX Q Z Q 3 Z Q ' = 4 (X Q Z Q (X Q 2 + aZ Q 2 ) + bZ Q 4 ) (10b)

Durch die Gleichungen (10a) und (10b) sind explizite Formeln gegeben, um die projektiven X-, Z-Koordinaten des ersten Hilfspunkts P und des zweiten Hilfspunkts Q zu berechnen. Diese Koordinaten hängen lediglich von bekannten Größen ab, nämlich von den entsprechenden Koordinaten der „alten" Hilfspunkte P, Q aus dem vorherigen Iterationsschritt, wenn 1 betrachtet wird.By equations (10a) and (10b), explicit formulas are given to calculate the projective X, Z coordinates of the first auxiliary point P and the second auxiliary point Q. These coordinates depend only on known quantities, namely the corresponding coordinates of the "old" auxiliary points P, Q from the previous iteration step, if 1 is looked at.

Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird nunmehr Bezug nehmend auf 2 ein Addierer gezeigt, um zwei Punkte P und Q auf einer elliptischen Kurve zu addieren, um einen aktuellen Hilfspunkt P' zu berechnen. Der Addierer benötigt, wie es in 1 gezeigt ist, eine Einrichtung zum Berechnen von XP' und ZP', wobei als Eingangsgrößen XP, ZP, XQ, ZQ und die Parameter a und b der elliptischen Kurve verwendet werden. Ferner wird darauf hingewiesen, daß auch der Wert xD, der bei der Berechnung von xP' verwendet wird, von den affinen Koordinaten xP, yP sowie xQ und yQ der beiden Punkte P und Q abhängt, wie es aus Gleichung (4) ersichtlich wird.In accordance with another aspect of the present invention, reference will now be made to FIGS 2 an adder is shown to add two points P and Q on an elliptic curve to calculate a current auxiliary point P '. The adder needs, as it is in 1 is shown means for calculating X P ' and Z P' using as inputs X P , Z P , X Q , Z Q and the parameters a and b of the elliptic curve. It should also be noted that also the value x D used in the computation of x P ' depends on the affine coordinates x P , y P as well as x Q and y Q of the two points P and Q, as shown in Equation (4) becomes apparent.

Der erfindungsgemäße Addierer umfaßt somit eine Einrichtung 30 zum Berechnen von ZP' und eine Einrichtung 31 zum Berechnen von XP', wobei die in 2 gezeigten expliziten Formeln entweder hardwaremäßig oder softwaremäßig ausgewertet werden.The adder according to the invention thus comprises a device 30 for calculating Z P ' and a device 31 for computing X P ' , where the in 2 shown explicit formulas either hardware be evaluated moderately or by software.

3 zeigt einen erfindungsgemäßen Multiplizierer zum Multiplizieren eines Punkts auf einer elliptischen Kurve mit dem Faktor 2. Der erfindungsgemäße Multiplizierer umfaßt eine Einrichtung zum Berechnen der projektiven X-Koordinate des Ergebnispunkts Q', die in 3 mit dem Bezugszeichen 32 bezeichnet ist sowie eine Einrichtung 34 zum Berechnen von ZQ', wobei die Einrichtungen 32 und 34 eine software- oder hardwaremäßige Ausgestaltung der in 3 gezeigten Formeln durchführen. 3 shows a multiplier according to the invention for multiplying a point on an elliptic curve by a factor of 2. The multiplier according to the invention comprises means for calculating the projective X-coordinate of the result point Q ', which in 3 with the reference number 32 is designated as well as a device 34 for calculating Z Q ', where the facilities 32 and 34 a software or hardware configuration of in 3 perform the formulas shown.

Wie es bereits ausgeführt worden ist, ist der in 1 gezeigte erfindungsgemäße Multiplikationsalgorithmus dahinge hend vorteilhaft, daß die beiden Hilfspunkte Pneu bzw. P' und Qneu bzw. Q' parallel berechnet werden können, da Q' nicht von P' abhängt und umgekehrt.As has already been stated, the in 1 The multiplication algorithm according to the invention has the advantage that the two auxiliary points P new and P 'and Q new or Q' can be calculated in parallel, since Q 'does not depend on P' and vice versa.

4 zeigt ein Rechenwerk hierzu. Das Rechenwerk umfaßt eine Parallel-ALU 40, die aus zwei SUB-ALUs besteht, wobei jede SUB-ALU eine Additionsfähigkeit, eine Subtraktionsfähigkeit und eine Multiplikationsfähigkeit hat. 4 shows an arithmetic unit for this purpose. The calculator includes a parallel ALU 40 consisting of two SUB ALUs, each SUB ALU having an adding ability, a subtraction ability and a multiplication ability.

Die Parallel-ALU 40 wird über einen Eingangsbus 41 mit Eingangsdaten versorgt und liefert ihre Ergebnisse auf einen Ausgangsbus 42. Der Eingangsbus 41 ist mit einem Register-Ausgangsbus 43 (RAUS) gekoppelt, während der Ausgangsbus 42 der ALU 40 mit einem Register-Eingangsbus 44 (REIN) gekoppelt ist. Der erfindungsgemäße Prozessor umfaßt ferner einen Registerblock 45 mit acht Registern R0, R1, R2, R3, R4, R5, R6 und R7. Der Prozessor umfaßt ferner eine Initialisierungseinrichtung 48 zum Laden der Register R0 bis R7 des Registerblocks 45 vor Beginn einer Addition und/oder einer Multiplikation mit dem Faktor 2 auf der elliptischen Kurve.The parallel ALU 40 is via an input bus 41 supplied with input data and delivers their results on an output bus 42 , The entrance bus 41 is with a register output bus 43 (RAUS) coupled while the output bus 42 the ALU 40 with a register input bus 44 (PURE) is coupled. The processor according to the invention further comprises a register block 45 with eight registers R0, R1, R2, R3, R4, R5, R6 and R7. The processor further includes an initializer 48 for loading the registers R0 to R7 of the register block 45 before the beginning of an addition and / or a multiplication by a factor of 2 on the elliptic curve.

Als zentrales Element umfaßt der Prozessor schließlich eine Ablaufsteuerung 46 zum Steuern der Parallel-ALU 40, des Register-Eingangsbusses 44, des Register-Ausgangsbusses 43 und der Initialisierungseinrichtung 45. Die Parallel-ALU 40 hat ferner Zugriff auf einen Registerspeicher 47 zum Speichern der Parameter a, b der elliptischen Kurve und ferner zum Speichern der affinen x-Koordinate xD der Differenz von P und Q gemäß Gleichung (4). Der Wert für xD kann entweder durch die Parallel-ALU 40 selbst berechnet werden, oder kann in jedem Iterationsschritt beispielsweise durch eine separate CPU berechnet werden, wenn der in 4 gezeigte Kryptoprozessor ein Coprozessor in einem Gesamtsystem ist.As a central element, the processor finally includes a flow control 46 for controlling the parallel ALU 40 , the register input bus 44 , the register output bus 43 and the initializer 45 , The parallel ALU 40 also has access to a register memory 47 for storing the parameters a, b of the elliptic curve and further for storing the affine x-coordinate x D of the difference of P and Q according to equation (4). The value for x D can be given either by the parallel ALU 40 can be calculated by itself, or can be calculated in each iteration step, for example by a separate CPU, if the in 4 shown cryptoprocessor is a coprocessor in an overall system.

Im nachfolgenden wird anhand von 5 auf eine bevorzugte Ausführungsform der Ablaufsteuerung 46 eingegangen, bei der die Berechnung der Koordinaten XP', ZP', XQ' und ZQ' unter Ver wendung der acht Register R0 bis R7 des Registerblocks 45 parallel durchgeführt wird. In 5 zeigt ein Block 50 zunächst einen Registerinitialisierungsschritt. Das Register R0 wird mit der aktuellen projektiven Koordinate XP des ersten Hilfspunkts P geladen. Das Register R1 wird mit der projektiven z-Koordinate ZP des ersten Hilfspunkts P geladen. Das Register R2 wird mit der projektiven x-Koordinate XQ des zweiten Hilfspunkts Q geladen. Schließlich wird das Register R3 mit der projektiven z-Koordinate ZQ des zweiten Hilfspunkts Q geladen. Die anderen Register R4 bis R7 können auf 0 initialisiert werden.The following is based on 5 to a preferred embodiment of the flow control 46 in which the calculation of the coordinates X P ' , Z P' , X Q ' and Z Q' using the eight registers R0 to R7 of the register block 45 is carried out in parallel. In 5 shows a block 50 first a register initialization step. The register R0 is loaded with the current projective coordinate X P of the first auxiliary point P. The register R1 is loaded with the projective z-coordinate Z P of the first auxiliary point P. The register R2 is loaded with the projective x-coordinate X Q of the second auxiliary point Q. Finally, the register R3 is loaded with the projective z-coordinate Z Q of the second auxiliary point Q. The other registers R4 to R7 can be initialized to 0.

In einem Block 51 von 5 sind die Rechenoperationen für die Parallel-ALU 40, die eine erste SUB-ALU 1 und eine zweite SUB-ALU 2 aufweist, gegeben. In der linken Hälfte des Blocks 51 sind nacheinander die von der SUB-ALU 1 abzuarbeitenden Schritte gegeben, während in der rechten Hälfte von Block 51 die für die SUB-ALU 2 abzuarbeitenden Schritte gegeben sind. Insbesondere werden die in 5 nebeneinander stehenden Schritte parallel von beiden ALUs abgearbeitet. Am Beispiel der ersten Zeile von 5 bedeutet dies, daß die SUB-ALU 1 den Inhalt der Register R1 und R2 multipliziert und in das Register R6 lädt. Parallel dazu multipliziert die SUB-ALU 2 den Inhalt des Registers R0 mit dem Inhalt des Registers R3 und lädt das Ergebnis in das Register R7. In einem nächsten Schritt lädt die SUB-ALU 1 dann die Summe des Inhalts des Registers R7 und des Registers R6 in das Register R4. Parallel dazu lädt die SUB-ALU 2 den Inhalt des Registers R7, von dem der Inhalt des Registers R6 subtrahiert ist, in das Register R5. Dieses Prozedere wird in der in Block 51 von 5 gegebenen Reihenfolge fortgesetzt, bis die SUB-ALU 1 in einem letzten Schritt die Differenz des Registers R6 und des Registers R0 in das Register R6 lädt, und die SUB-ALU 2 die Summe des Registers R7 und des Registers R1 in das Register R7 lädt. Dann, in einem Schritt 52, werden die Ergebnisse ausgegeben. Die projektive x-Koordinate XP' des aktualisierten ersten Hilfspunkts P' ist in dem Register R4 zu finden. Die projektive z-Koordinate ZP' des aktualisierten ersten Hilfspunkts ist im Register R5 zu finden. Die projektive x-Koordinate XQ' des aktualisierten zweiten Hilfspunkts ist in dem Register R6 zu finden, und die projektive z-Koordinate des aktualisierten zweiten Hilfspunkts, d. h. ZQ', ist im Register R7 zu finden.In a block 51 from 5 are the arithmetic operations for the parallel ALU 40 having a first SUB ALU 1 and a second SUB ALU 2 given. In the left half of the block 51 are consecutively given the steps to be processed by the SUB ALU 1, while in the right half of block 51 the steps to be taken for the SUB ALU 2 are given. In particular, the in 5 Processed next to each other parallel steps of both ALUs. The example of the first line of 5 this means that the SUB ALU 1 multiplies the contents of registers R1 and R2 and loads them into register R6. In parallel, the SUB ALU 2 multiplies the contents of the register R0 by the contents of the register R3 and loads the result into the register R7. In a next step, the SUB ALU 1 then loads the sum of the contents of the register R7 and the register R6 into the register R4. In parallel, the SUB ALU 2 loads the contents of the register R7, from which the content of the register R6 is subtracted, into the register R5. This procedure is described in the block 51 from 5 given order until the SUB ALU 1 loads in a last step the difference of the register R6 and the register R0 in the register R6, and the SUB ALU 2 loads the sum of the register R7 and the register R1 into the register R7. Then, in one step 52 , the results are output. The projective x-coordinate X P 'of the updated first auxiliary point P' can be found in the register R4. The projective z-coordinate Z P 'of the updated first auxiliary point can be found in register R5. The projective x-coordinate X Q 'of the updated second auxiliary point is found in register R6 and the projective z-coordinate of the updated second auxiliary point, ie Z Q' , can be found in register R7.

Selbstverständlich könnte die Folge von Schritten, die im Block 51 dargestellt ist, auch durch eine Seriell-ALU ausgeführt werden, wobei die Sequenz durch die jeweilige Ziffer in Klammern hinter einer Registeroperation gegeben ist. Eine Seriell-ALU könnte dann, falls keine Parallel-ALU verfügbar ist, die Schritte (1) bis (33) in der gegebenen Reihenfolge durchführen und würde zu denselben Ergebnissen, wie sie im Block 52 dargestellt sind, gelangen.Of course, the sequence of steps in the block 51 is represented, even by a Se riell ALU, the sequence being given by the respective number in parentheses after a register operation. A serial ALU could then, if no parallel ALU is available, follow the steps ( 1 ) to ( 33 ) in the given order and would produce the same results as in the block 52 are shown, arrive.

Der erfindungsgemäße Algorithmus benötigt zum Berechnen eines Iterationsschritts (entweder der linke Zweig oder der rechte Zweig in 1) lediglich acht Register R0 bis R7 und ist, wie es ausgeführt worden ist, für eine Parallel-ALU geeignet, die über den Register-Ausgangsbus 43 bzw. den Register-Eingangsbus 44 einen Zugriff auf alle Register hat.The algorithm of the invention requires to compute an iteration step (either the left branch or the right branch in FIG 1 ) has only eight registers R0 to R7 and, as has been stated, is suitable for a parallel ALU via the register output bus 43 or the register input bus 44 has access to all registers.

Der in 5 im Block 51 gezeigte Algorithmus, der 19 Multiplikationen und 14 Additionen umfaßt, benötigt, wenn er auf einer Parallel-ALU ausgeführt wird, d. h. mittels einer Parallelarchitektur implementiert wird, die Zeit von zehn Multiplikationen und acht Additionen. Wenn der in Block 51 gezeigte Algorithmus auf einer Seriell-ALU mit einem einzigen Rechenwerk ausgeführt wird, werden, wie es ausgeführt worden ist, die 33 Schritte durchgeführt, d. h. es wird eine Zeit von 19 Multiplikationen und 14 Additionen benötigt.The in 5 in the block 51 The algorithm shown, comprising 19 multiplications and 14 additions, when executed on a parallel ALU, ie implemented by means of a parallel architecture, requires the time of ten multiplications and eight additions. When in block 51 As shown, the algorithm shown is executed on a serial ALU with a single arithmetic unit, the 33 steps are performed, ie a time of 19 multiplies and 14 additions is needed.

Nach der skalaren Multiplikation k·P bzw. d·P, liegt die projektive X-Koordinate und die projektive Z-Koordinate des Punkts auf der elliptischen Kurve, der durch k·P gegeben ist, vor. Es gilt: k·P = (XkP : YkP : ZkP) After the scalar multiplication k · P or d · P, the projective X coordinate and the projective Z coordinate of the point are on the elliptic curve given by k · P. The following applies: k · P = (X kP : Y kP : Z kP )

Um die affinen Koordinaten von k·P zu erhalten, wird folgende Transformation verwendet: kP = (XkP,YkP,ZkP) ↦ kP = (XkP/ZkP,YkP/ZkP) = (xkP,ykP) To obtain the affine coordinates of k · P, the following transformation is used: kP = (X kP , Y kP , Z kP ) ↦ kP = (X kP / Z kP , Y kP / Z kP ) = (x kP , y kP )

Auf ähnliche Weise kann die affine x-Koordinate von (k + 1)·P erhalten werden: (k + 1)P = (X(k+1)P/Z(k+1)P,Y(k+1)P/Z(k+1)P) Similarly, the affine x-coordinate of (k + 1) · P can be obtained: (k + 1) P = (X (K + 1) P / Z (K + 1) P , Y (K + 1) P / Z (K + 1) P)

Um die affine y-Koordinate des Punkts k·P zu erhalten, wird folgende Gleichung verwendet, wenn ykP 2 und yP 2 mittels Gleichung (1) in Gleichung (3) substituiert werden, wobei die folgende Gleichung verwendet wird: (k + 1)P = kP + P In order to obtain the affine y-coordinate of the point k · P, the following equation is used when substituting y kP 2 and y P 2 for equation (1) in equation (3) using the following equation: (k + 1) P = kP + P

Die Bestimmungsgleichung für ykP lautet somit folgendermaßen: 2yPykP = –(xP – xkP)2x(k+1)P + (a + x2P )xkP + (a + xkP 2)xP + 2b (11) The equation of determination for y kP is thus as follows: 2y P y kP = - (x P - x kP ) 2 x (K + 1) P + (a + x 2 P ) x kP + (a + x kP 2 ) x P + 2b (11)

Wenn nunmehr xkP durch XkP/ZkP substituiert wird, und wenn ferner x(k+1)P durch X(k+1)P/Z(k+1)P substituiert wird, wird folgende Bestimmungsgleichung für ykP erhalten, wobei der Buchstabe P weggelassen worden ist:If it is now substituted x kP by X kP / Z kP, and further if x (k + 1) P by X (k + 1) P / Z (k + 1) P is substituted, the following equation for y kP is obtained, where the letter P has been omitted:

Figure 00220001
Figure 00220001

Wie es ausgeführt worden ist, wird die y-Koordinate nur bei manchen Algorithmen benötigt. Wenn die y-Koordinate benötigt wird, ist es wesentlich effizienter, die in 1 gezeigte Iteration lediglich für die x-Koordinate durchzuführen und dann die y-Koordinate des Ergebnis-Punkts auf der elliptischen Kurve mittels der Gleichungen (11) und (12) zu berechnen, d. h. unter Verwendung des Punkts (k + 1) P auf der elliptischen Kurve.As stated, the y coordinate is needed only with some algorithms. If the y coordinate is needed, it is much more efficient in the 1 to perform the iteration shown only for the x-coordinate and then to calculate the y-coordinate of the result point on the elliptic curve using equations (11) and (12), ie, using the point (k + 1) P on the elliptic Curve.

Die vorliegende Erfindung ist dahingehend vorteilhaft, daß die Zeit und das Stromprofil durch den in 1 gezeigten Algorithmus homogenisiert werden und daß ferner eine parallele Implementation möglich ist, ohne daß Dummy-Operationen benötigt werden. Im Vergleich zu der klassischen Standardmethode mit Dummy-Addition wird zudem ein effizienteres Verfahren erreicht, da erfindungsgemäß lediglich 19 Multiplikationen im Vergleich zu 26 Multiplikationen pro Bit des skalaren Multiplikators benötigt werden.The present invention is advantageous in that the time and current profile are given by the in 1 be homogenized and further that a parallel implementation is possible without dummy operations are needed. In comparison to the classical standard method with dummy addition, a more efficient method is also achieved since, according to the invention, only 19 multiplications are required in comparison to 26 multiplications per bit of the scalar multiplier.

Ferner ist, wie es ausgeführt worden ist, das erfindungsgemäße Konzept im Gegensatz zur Standardmethode, die in 6 beschrieben worden ist, parallelisierbar, so daß gegenüber der sicheren Standardmethode mit Dummy-Addition ein Performancegewinn von einem zusätzlichen Faktor von 1,9 erzielt wird, was insgesamt einen Faktor von 2,6 ergibt.Furthermore, as has been pointed out, the inventive concept is in contrast to the standard method, which in 6 parallelisierbar, so that compared to the safe standard method with dummy addition, a performance gain of an additional factor of 1.9 is achieved, which in Total results in a factor of 2.6.

Schließlich ist das erfindungsgemäße Konzept für beliebige elliptische Kurven anwendbar, so lange die Charakteristik der Kurve p größer als 3 ist.Finally is the inventive concept for any elliptic curves applicable as long as the characteristic of the curve p greater than 3 is.

Obwohl es im einzelnen nicht an jeder Stelle ausgeführt ist, sei darauf hingewiesen, daß sämtliche beschriebenen Berech nungen auf eine Restklasse bezüglich eines Moduls bezogen sind, wobei der Modul gleich der Charakteristik p der zugrunde gelegten elliptischen Kurve ist. Die modulare Reduktion kann nach jeder Addition, Multiplikation etc. durchgeführt werden, was vorteilhaft ist, da die Zwischenergebnisse keine großen Zahlen sind. Alternativ wäre es jedoch auch möglich, z. B. eine Addition oder auch die gesamte Multiplikation durchzuführen und erst am Ende mit dem gegebenen Modul zu reduzieren. Dies würde jedoch immens große Register für die Zwischenergebnisse erfordern, weshalb es bevorzugt wird, z. B. nach jedem der im Block 51 von 5 gezeigten Schritte mit dem Modul zu reduzieren. Eine modulare Reduktion am Ende jeder Iteration dient dazu, die Zwischenergebnisse und damit auch die Register zu deren Speicherung klein zu halten.Although it is not detailed at any point, it should be noted that all described calculations are related to a residual class with respect to a modulus, the modulus being equal to the characteristic p of the underlying elliptic curve. The modular reduction can be performed after each addition, multiplication, etc., which is advantageous because the intermediate results are not large numbers. Alternatively, it would also be possible, for. B. perform an addition or the entire multiplication and only at the end with the given module to reduce. However, this would require immense large registers for the intermediate results, which is why it is preferred, for. For example, after each of the block 51 from 5 shown steps with the module to reduce. A modular reduction at the end of each iteration serves to minimize the intermediate results and thus also the registers for their storage.

1010
Multiplikationsoperation auf der elliptischen Kurvemultiplication operation on the elliptic curve
1212
Initialisierungsschrittinitialization
1414
Untersuchungsschrittexamination step
1616
Berechnen des ersten Hilfspunkts, falls di gleich 0 istCalculate the first auxiliary point if d i equals 0
1818
Berechnen des zweiten Hilfspunkts, falls di gleich 0 istCalculate the second auxiliary point if d i is equal to 0
2020
Berechnen des ersten Hilfspunkts, falls di gleich 1 istCalculating the first auxiliary point if d i is equal to 1
2222
Berechnen des zweiten Hilfspunkts, falls di gleich 1 istCalculate the second auxiliary point if d i is equal to 1
2424
Inkrementieren der Zählvariableincrementing the count variable
2626
Abbruchkriteriumtermination criterion
2828
Ausgabeschrittoutput step
3030
Berechnen der projektiven z-Koordinate des erstenTo calculate the projective z-coordinate of the first
Hilfspunktsauxiliary point
3131
Berechnen der projektiven x-Koordinate des erstenTo calculate the projective x-coordinate of the first
Hilfspunktsauxiliary point
3232
Berechnen der projektiven x-Koordinate des zweitenTo calculate the projective x-coordinate of the second
Hilfspunktsauxiliary point
3434
Berechnen der projektiven z-Koordinate des zweitenTo calculate the projective z-coordinate of the second
Hilfspunktsauxiliary point
4040
Parallel-ALUParallel ALU
4141
ALU-EingangsbusALU input bus
4242
ALU-AusgangsbusALU output bus
4343
Register-AusgangsbusRegister output bus
4444
Register-EingangsbusRegister input bus
4545
Registerblockregister block
4646
Ablaufsteuerungflow control
4747
Register für a, b, xD Register for a, b, x D
4848
Initialisierungsblockinitialization
5050
Initialisierungsblock für Ablaufsteuerunginitialization for sequence control
5151
Arbeitssequenz der Ablaufsteuerungworking sequence the flow control
5252
Ausgabeschritt der Ablaufsteuerungoutput step the flow control
100100
Double-&-add-AlgorithmusDouble - & - add algorithm
102102
Initialisierungsschrittinitialization
104104
Multiplikator-UntersuchungMultiplier investigation
106106
Verdopplungsschritt falls di gleich 1 istDoubling step if d i is equal to 1
108108
Addierschritt, falls di gleich 1 istAdding step if d i is equal to 1
110110
Verdopplungsschritt, falls di gleich 0 istDoubling step, if d i is equal to 0
112112
Inkrementierungsschrittincrementing
114114
Abbruchkriteriumtermination criterion
116116
Ausgabeschrittoutput step
118118
Dummy-Additionsschritt, falls di gleich 0 istDummy addition step if d i is equal to 0

Claims (9)

Verfahren zum Addieren zweier Punkte auf einer elliptischen Kurve y2 = x3 + a·x + b innerhalb eines kryptographischen Algorithmus, wobei x und y Koordinaten von Punkten auf der elliptischen Kurve sind, und wobei die elliptische Kurve über einem Körper mit einer Charakteristik größer als 3 definiert ist, wobei ein erster Punkt der zwei Punkte eine erste projektive Koordinate XP und eine dritte projektive Koordinate ZP aufweist, wobei der zweite Punkt eine erste projektive Koordinate XQ und eine dritte projektive Koordinate ZQ aufweist, mit folgenden Schritten: Berechnen (31) einer ersten projektiven Koordinate XP' eines Ergebnispunkts auf der elliptischen Kurve durch folgende Gleichung: XP' = 2(XPZQ + XQZP)(XPXQ + aZPZQ) + 4bZP 2ZQ 2 + xD(XPZQ – XQZP)2; undBerechnen (30) einer dritten projektiven Koordinate ZP' eines Ergebnispunkts auf der elliptischen Kurve durch folgende Gleichung: ZP' = (XPZQ – XQZP)2,wobei a und b Parameter der elliptischen Kurve sind, und wobei xD eine affine Koordinate eines Punkts auf der elliptischen Kurve ist, der sich ergibt, wenn eine Differenz des ersten Punkts (P) und des zweiten Punkts (Q) berechnet wird.A method for adding two points on an elliptic curve y 2 = x 3 + a x + b within a cryptographic algorithm, where x and y are coordinates of points on the elliptic curve, and wherein the elliptic curve is over a body having a characteristic larger 3, wherein a first point of the two points has a first projective coordinate X P and a third projective coordinate Z P , the second point having a first projective coordinate X Q and a third projective coordinate Z Q , comprising the following steps: To calculate ( 31 ) of a first projective coordinate X P 'of a result point on the elliptic curve by the following equation: X P ' = 2 (X P Z Q + X Q Z P ) (X P X Q + aZ P Z Q ) + 4bZ P 2 Z Q 2 + x D (X P Z Q - X Q Z P ) 2 ; and To calculate ( 30 ) of a third projective coordinate Z P 'of a result point on the elliptic curve by the following equation: Z P ' = (X P Z Q - X Q Z P ) 2 . where a and b are parameters of the elliptic curve, and where x D is an affine coordinate of a point on the elliptic curve that results when a difference of the first point (P) and the second point (Q) is calculated. Verfahren zum Multiplizieren eines Punkts auf einer elliptischen Kurve y2 = x3 + a·x + b mit einem Faktor 2 inner halb eines kryptographischen Algorithmus, wobei x und y Koordinaten von Punkten auf der elliptischen Kurve sind, und wobei die elliptische Kurve über einem Körper mit einer Charakteristik größer als 3 definiert ist, wobei der Punkt eine erste projektive Koordinate XP und eine dritte projektive Koordinate ZP aufweist, mit folgenden Schritten: Berechnen (32) einer ersten projektiven Koordinate XQ' eines Ergebnispunkts durch folgende Gleichung: XQ' = (XQ 2 – aZQ 2)2 – 8bXQZQ 3; undBerechnen (34) einer dritten projektiven Koordinate ZQ' eines Ergebnispunkts (Q') durch folgende Gleichung: ZQ' = 4(XQZQ(XQ 2 + aZQ 2) + bZQ 4),wobei a und b Parameter der elliptischen Kurve sind.A method for multiplying a point on an elliptic curve y 2 = x 3 + a x + b by a factor of 2 within a cryptographic algorithm, where x and y are coordinates of points on the elliptic curve, and wherein the elliptic curve is above a Body having a characteristic greater than 3, the point having a first projective coordinate X P and a third projective coordinate Z P , comprising the following steps: calculating ( 32 ) of a first projective coordinate X Q 'of a result point by the following equation: X Q ' = (X Q 2 - aZ Q 2 ) 2 - 8bX Q Z Q 3 ; and To calculate ( 34 ) a third projective coordinate Z Q 'of a result point (Q') by the following equation: Z Q ' = 4 (X Q Z Q (X Q 2 + aZ Q 2 ) + bZ Q 4 ) where a and b are parameters of the elliptic curve. Vorrichtung zum Addieren zweier Punkte auf einer elliptischen Kurve y2 = x3 + a·x + b innerhalb eines kryptographischen Algorithmus, wobei x und y Koordinaten von Punkten auf der elliptischen Kurve sind, und wobei die elliptische Kurve über einem Körper mit einer Charakteristik größer als 3 definiert ist, wobei ein erster Punkt (P) durch eine projektive x-Koordinate XP und durch eine projektive z-Koordinate ZP gegeben ist, wobei der zweite Punkt durch eine projektive x-Koordinate XQ und eine projektive z-Koordinate ZQ gegeben ist, und zum Multiplizieren des zweiten Punkts (Q) mit einem Faktor von 2, um als Ergebnis der Addition einen ersten Ergebnispunkt (P') zu erhalten, der durch eine erste projektive x-Koordinate XP' und durch eine projektive z-Koordinate ZP' gegeben ist, und um als Ergebnis der Multiplikation einen zweiten Ergebnispunkt (Q') zu erhalten, der durch eine projektive x-Koordinate XQ' und durch eine projektive z-Koordinate ZQ' gegeben ist, mit folgenden Merkmalen: einem Rechenwerk (40) zum Multiplizieren, Addieren und Subtrahieren zweier Eingangswerte; einer Anzahl von acht Registern R0, R1, R2, R3, R4, R5, R6, R7; und einer Ablaufsteuerung (46) zum Steuern der Register und des Rechenwerks gemäß den folgenden Schritten: (0) Initialisieren des Registers R0 mit XP, des Registers R1 mit ZP, des Registers R2 mit XQ und des Registers R3 mit ZQ; (1) R6 ← R2·R1; (2) R7 ← R3·R0; (3) R4 ← R7 + R6; (4) R5 ← R7 – R6; (5) R5 ← R5·R5; (6) R7 ← R1·R3; (7) R1 ← a·R7; (8) R6 ← R7·R7; (9) R0 ← R0·R2; (10) R6 ← b·R6; (11) R0 ← R0 + R1; (12) R6 ← R6 + R6; (13) R0 ← R0·R4; (14) R1 ← xD·R5; (15) R4 ← R0 + R6; (16) R4 ← R4 + R4; (17) R6 ← R2 + R2; (18) R4 ← R4 – R1; (19) R7 ← R3 + R3; (20) R0 ← R6·R7; (21) R1 ← R3·R3; (22) R2 ← R2·R2; (23) R3 ← a·R1; (24) R6 ← R2 – R3; (25) R7 ← R2 + R3; (26) R1 ← R1 + R1; (27) R2 ← b·R1; (28) R7 ← R7·R0; (29) R1 ← R2·R1; (30) R0 ← R0·R2; (31) R6 ← R6·R6; (32) R6 ← R6 – R0; (33) R7 ← R7 + R1; (34) Ausgeben eines Inhalts von R4, um die projektive x-Koordinate XP' des Ergebnispunkts der Addition zu erhalten, Ausgeben des Inhalts von R5 um die projektive z-Koordinate ZP' der Addition zu erhalten, Ausgeben des Registers R6, um die projektive x-Koordinate XQ' des Ergebnispunkts der Multiplikation zu erhalten, und Ausgeben des Inhalts des Registers R7, um die projektive z-Koordinate ZQ' des Ergebnispunkts der Multiplikation zu erhalten, wobei das Symbol „·" eine Multiplikation darstellt, wobei das Symbol „+" eine Addition darstellt, wobei das Symbol „–" eine Subtraktion darstellt, wobei a, b Parameter der elliptischen Kurve sind, wobei xD eine affine x-Koordinate eines Punkts ist, der sich ergibt, wenn der erste Punkt P vom zweiten Punkt Q subtrahiert wird, und wobei das Symbol „←" bedeutet, daß das Register, auf das die Pfeilspitze gerichtet ist, mit einem Wert geladen wird, der sich aus der arithmetischen Operation ergibt, die an einem Fußpunkt des Pfeils steht.Apparatus for adding two points on an elliptic curve y 2 = x 3 + a x + b within a cryptographic algorithm, where x and y are coordinates of points on the elliptic curve, and wherein the elliptic curve is over a body having a characteristic larger is defined as 3, wherein a first point (P) is given by a projective x-coordinate X P and by a projective z-coordinate Z P , the second point being defined by a projective x-coordinate X Q and a projective z-coordinate Z Q , and multiplying the second point (Q) by a factor of 2 to obtain, as a result of the addition, a first result point (P ') defined by a first projective x coordinate X P' and a projective x z-coordinate Z P ' , and to obtain, as a result of the multiplication, a second result point (Q') given by a projective x-coordinate X Q ' and a projective z-coordinate Z Q' , with the following M to draw: a calculator ( 40 ) for multiplying, adding and subtracting two input values; a number of eight registers R0, R1, R2, R3, R4, R5, R6, R7; and a flow control ( 46 ) for controlling the registers and the arithmetic unit according to the following steps: (0) initializing the register R0 with X P , the register R1 with Z P , the register R2 with X Q and the register R3 with Z Q ; (1) R6 ← R2 · R1; (2) R7 ← R3 · R0; (3) R4 ← R7 + R6; (4) R5 ← R7 - R6; (5) R5 ← R5 * R5; (6) R7 ← R1 · R3; (7) R1 ← a · R7; (8) R6 ← R7 * R7; (9) R0 ← R0 * R2; (10) R6 ← b · R6; (11) R0 ← R0 + R1; (12) R6 ← R6 + R6; (13) R0 ← R0 * R4; (14) R1 ← x D · R5; (15) R4 ← R0 + R6; (16) R4 ← R4 + R4; (17) R6 ← R2 + R2; (18) R4 ← R4 - R1; (19) R7 ← R3 + R3; (20) R0 ← R6 * R7; (21) R1 ← R3 · R3; (22) R2 ← R2 · R2; (23) R3 ← a · R1; (24) R6 ← R2 - R3; (25) R7 ← R2 + R3; (26) R1 ← R1 + R1; (27) R2 ← b · R1; (28) R7 ← R7 * R0; (29) R1 ← R2 · R1; (30) R0 ← R0 * R2; (31) R6 ← R6 * R6; (32) R6 ← R6 - R0; (33) R7 ← R7 + R1; (34) outputting a content of R4 to obtain the projective x-coordinate X P 'of the result point of the addition, outputting the content of R5 to obtain the projective z-coordinate Z P' of the addition, outputting the register R6 to obtain the projective x-coordinate X Q ' of the multiplication result point and output the contents of the register R7 to obtain the projective z-coordinate Z Q' of the multiplication result point, where the symbol "·" represents a multiplication, where the symbol "+" represents an addition, where the symbol "-" represents a subtraction, where a, b are parameters of the elliptic curve, where x D is an affine x-coordinate of a point that results when the first point P is subtracted from the second point Q, and wherein the symbol "←" means that the register to which the arrowhead is directed is loaded with a value resulting from the arithmetic operation st at a foot point of the arrow eht. Vorrichtung nach Anspruch 3, die ferner ein weiteres Rechenwerk aufweist, und bei dem die Ablaufsteuerung (46) angeordnet ist, um das Rechenwerk (SUB-ALU 1) und das weitere Re chenwerk (SUB-ALU 2) zum parallelen Ausführen der folgenden Schritte zu veranlassen: – Schritt (1) parallel zu Schritt (2); – Schritt (3) parallel zu Schritt (4); – Schritt (5) parallel zu Schritt (6); – Schritt (7) parallel zu Schritt (8); – Schritt (9) parallel zu Schritt (10); – Schritt (11) parallel zu Schritt (12); – Schritt (13) parallel zu Schritt (14); – Schritt (16) parallel zu Schritt (17); – Schritt (18) parallel zu Schritt (19); – Schritt (20) parallel zu Schritt (21); – Schritt (22) parallel zu Schritt (23); – Schritt (24) parallel zu Schritt (25); – Schritt (27) parallel zu Schritt (28); – Schritt (29) parallel zu Schritt (30); und – Schritt (32) parallel zu Schritt (33).Apparatus according to claim 3, further comprising a further calculating unit, and wherein the sequence control ( 46 ) is arranged to cause the arithmetic unit (SUB-ALU 1) and the further computation unit (SUB-ALU 2) to carry out the following steps in parallel: 1 ) parallel to step ( 2 ); - step ( 3 ) parallel to step ( 4 ); - step ( 5 ) parallel to step ( 6 ); - step ( 7 ) parallel to step ( 8th ); - step ( 9 ) parallel to step ( 10 ); - step ( 11 ) parallel to step ( 12 ); - step ( 13 ) parallel to step ( 14 ); - step ( 16 ) parallel to step ( 17 ); - step ( 18 ) parallel to step ( 19 ); - step ( 20 ) parallel to step ( 21 ); - step ( 22 ) parallel to step ( 23 ); - step ( 24 ) parallel to step ( 25 ); - step ( 27 ) parallel to step ( 28 ); - step ( 29 ) parallel to step ( 30 ); and - step ( 32 ) parallel to step ( 33 ). Vorrichtung zum Addieren zweier Punkte auf einer elliptischen Kurve y2 = x3 + a·x + b innerhalb eines kryptographischen Algorithmus, wobei x und y Koordinaten von Punkten auf der elliptischen Kurve sind, und wobei die elliptische Kurve über einem Körper mit einer Charakteristik größer als 3 definiert ist, wobei ein erster Punkt der zwei Punkte eine erste projektive Koordinate XP und eine dritte projektive Koordinate ZP aufweist, wobei der zweite Punkt eine erste projektive Koordinate XQ und eine dritte projektive Koordinate ZQ aufweist, mit folgenden Merkmalen: einer Einrichtung zum Berechnen (31) einer ersten projektiven Koordinate XP' eines Ergebnispunkts auf der elliptischen Kurve durch folgende Gleichung: XP' = 2(XPZQ + XQZP)(XPXQ + aZPZQ) + 4bZP 2ZQ 2 – xD(XPZQ – XQZP)2; undeiner Einrichtung (30) zum Berechnen einer dritten projektiven Koordinate ZP' eines Ergebnispunkts auf der elliptischen Kurve durch folgende Gleichung: ZP' = (XPZQ – XQZP)2,wobei a und b Parameter der elliptischen Kurve sind, und wobei xD eine affine Koordinate eines Punkts auf der elliptischen Kurve ist, der sich ergibt, wenn eine Differenz des ersten Punkts (P) und des zweiten Punkts (Q) berechnet wird.Apparatus for adding two points on an elliptic curve y 2 = x 3 + a x + b within a cryptographic algorithm, where x and y are coordinates of points on the elliptic curve, and wherein the elliptic curve is over a body having a characteristic larger 3, wherein a first point of the two points has a first projective coordinate X P and a third projective coordinate Z P , the second point having a first projective coordinate X Q and a third projective coordinate Z Q , comprising: means for calculating ( 31 ) of a first projective coordinate X P 'of a result point on the elliptic curve by the following equation: X P ' = 2 (X P Z Q + X Q Z P ) (X P X Q + aZ P Z Q ) + 4bZ P 2 Z Q 2 - x D (X P Z Q - X Q Z P ) 2 ; and a facility ( 30 ) for calculating a third projective coordinate Z P 'of a result point on the elliptic curve by the following equation: Z P ' = (X P Z Q - X Q Z P ) 2 . where a and b are parameters of the elliptic curve, and where x D is an affine coordinate of a point on the elliptic curve that results when a difference of the first point (P) and the second point (Q) is calculated. Vorrichtung zum Multiplizieren eines Punkts auf einer elliptischen Kurve y2 = x3 + a·x + b mit einem Faktor 2 innerhalb eines kryptographischen Algorithmus, wobei x und y Koordinaten von Punkten auf der elliptischen Kurve sind, und wobei die elliptische Kurve über einem Körper mit einer Charakteristik größer als 3 definiert ist, wobei der Punkt eine erste projektive Koordinate XP und eine dritte projektive Koordinate ZP aufweist, mit folgenden Merkmalen: einer Einrichtung zum Berechnen (32) einer ersten projektiven Koordinate XQ' eines Ergebnispunkts durch folgende Gleichung: XQ' = (XQ 2 – aZQ 2)2 – 8bXQZQ 3; undeiner Einrichtung zum Berechnen (32) einer dritten projektiven Koordinate ZQ' eines Ergebnispunkts (Q') durch folgende Gleichung: ZQ' = 4(XQZQ(XQ 2 + aZQ 2) + bZQ 4),wobei a und b Parameter der elliptischen Kurve sind.Apparatus for multiplying a point on an elliptic curve y 2 = x 3 + a x + b by a factor of 2 within a cryptographic algorithm, where x and y are coordinates of points on the elliptic curve, and wherein the elliptic curve is over a body having a characteristic greater than 3, the point having a first projective coordinate X P and a third projective coordinate Z P , comprising: means for calculating ( 32 ) of a first projective coordinate X Q 'of a result point by the following equation: X Q ' = (X Q 2 - aZ Q 2 ) 2 - 8bX Q Z Q 3 ; and a means for calculating ( 32 ) a third projective coordinate Z Q 'of a result point (Q') by the following equation: Z Q ' = 4 (X Q Z Q (X Q 2 + aZ Q 2 ) + bZ Q 4 ) where a and b are parameters of the elliptic curve. Verfahren zum Addieren zweier Punkte auf einer elliptischen Kurve y2 = x3 + a·x + b innerhalb eines kryptographischen Algorithmus, wobei x und y Koordinaten von Punkten auf der elliptischen Kurve sind, und wobei die elliptische Kurve über einem Körper mit einer Charakteristik größer als 3 definiert ist, wobei ein erster Punkt (P) durch eine projektive x-Koordinate XP und durch eine projektive z-Koordinate ZP gegeben ist, wobei der zweite Punkt durch eine projektive x-Koordinate XQ und eine projektive z-Koordinate ZQ gegeben ist, und zum Multiplizieren des zweiten Punkts (Q) mit einem Faktor von 2, um als Ergebnis der Addition einen ersten Ergebnispunkt (P') zu erhalten, der durch eine erste projektive x-Koordinate XP' und durch eine projektive z-Koordinate ZP' gegeben ist, und um als Ergebnis der Multiplikation einen zweiten Ergebnispunkt (Q') zu erhalten, der durch eine projektive x-Koordinate XQ' und durch eine projektive z-Koordinate ZQ' gegeben ist, unter Verwendung von acht Registern R0, R1, R2, R3, R4, R5, R6 und R7, mit folgenden Schritten: (0) Initialisieren des Registers R0 mit XP, des Registers R1 mit ZP, des Registers R2 mit XQ und des Registers R3 mit ZQ; Durchführen der folgenden Registeroperationen: (1) R6 ← R2·R1 (2) R7 ← R3·R0 (3) R4 ← R7 + R6 (4) R5 ← R7 – R6 (5) R5 ← R5·R5 (6) R7 ← R1·R3 (7) R1 ← a·R7 (8) R6 ← R7·R7 (9) R0 ← R0·R2 (10) R6 ← b·R6 (11) R0 ← R0 + R1 (12) R6 ← R6 + R6 (13) R0 ← R0·R4 (14) R1 ← xD·R5 (15) R4 ← R0 + R6 (16) R4 ← R4 + R4 (17) R6 ← R2 + R2 (18) R4 ← R4 – R1 (19) R7 ← R3 + R3 (20) R0 ← R6·R7 (21) R1 ← R3·R3 (22) R2 ← R2·R2 (23) R3 ← a·R1 (24) R6 ← R2 – R3 (25) R7 ← R2 + R3 (26) R1 ← R1 + R1 (27) R2 ← b·R1 (28) R7 ← R7·R0 (29) R1 ← R2·R1 (30) R0 ← R0·R2 (31) R6 ← R6·R6 (32) R6 ← R6 – R0 (33) R7 ← R7 + R1; und (34) Ausgeben eines Inhalts von R4 um die projektive x-Koordinate des Ergebnispunkts der Addition zu erhalten, Ausgeben des Inhalts von R5 um die projektive z-Koordinate ZP' der Addition zu erhalten, Ausgeben des Registers R6, um die projektive x-Koordinate XQ' des Ergebnispunkts der Multiplikation zu erhalten, und Ausgeben des Inhalts des Registers R7, um die projektive z-Koordinate ZQ' des Ergebnispunkts der Multiplikation zu erhalten, wobei das Symbol „·" eine Multiplikation darstellt, wobei das Symbol „+" eine Addition darstellt, wobei das Symbol „–" eine Subtraktion darstellt, wobei a, b Parameter der elliptischen Kurve sind, wobei xD eine affine x-Koordinate eines Punkts ist, der sich ergibt, wenn der erste Punkt P vom zweiten Punkt Q subtrahiert wird, und wobei das Symbol „←" bedeutet, daß das Register, auf das die Pfeilspitze gerichtet ist, mit einem Wert geladen wird, der sich aus der arithmetischen Operation ergibt, die an einem Fußpunkt des Pfeils steht.A method for adding two points on an elliptic curve y 2 = x 3 + a x + b within a cryptographic algorithm, where x and y are coordinates of points on the elliptic curve, and wherein the elliptic curve is over a body having a characteristic larger is defined as 3, wherein a first point (P) is given by a projective x-coordinate X P and by a projective z-coordinate Z P , the second point being defined by a projective x-coordinate X Q and a projective z-coordinate Z Q , and multiplying the second point (Q) by a factor of 2 to obtain, as a result of the addition, a first result point (P ') defined by a first projective x coordinate X P' and a projective x z-coordinate Z P ' , and to obtain, as a result of the multiplication, a second result point (Q') given by a projective x-coordinate X Q ' and by a projective z-coordinate Z Q' , using of eight registers R0, R1, R2, R3, R4, R5, R6 and R7, comprising the following steps: (0) initializing the register R0 with X P , the register R1 with Z P , the register R2 with X Q and the register R3 with Z Q ; Performing the following register operations: (1) R6 ← R2 * R1 (2) R7 ← R3 * R0 (3) R4 ← R7 + R6 (4) R5 ← R7-R6 (5) R5 ← R5 * R5 (6) R7 ← R1 * R3 (7) R1 ← a * R7 (8) R6 ← R7 * R7 (9) R0 ← R0 * R2 (10) R6 ← b * R6 (11) R0 ← R0 + R1 (12) R6 ← R6 + R6 (13) R0 ← R0 * R4 (14) R1 ← x D * R5 (15) R4 ← R0 + R6 (16) R4 ← R4 + R4 (17) R6 ← R2 + R2 (18) R4 ← R4 - R1 (19) R7 ← R3 + R3 (20) R0 ← R6 * R7 (21) R1 ← R3 * R3 (22 ) R2 ← R2 · R2 (23) R3 ← a · R1 (24) R6 ← R2 - R3 (25) R7 ← R2 + R3 (26) R1 ← R1 + R1 (27) R2 ← b · R1 (28) R7 ← R7 · R0 (29) R1 ← R2 · R1 (30) R0 ← R0 · R2 (31) R6 ← R6 · R6 (32) R6 ← R6 - R0 (33) R7 ← R7 + R1; and (34) outputting a content of R4 to obtain the projective x-coordinate of the result point of the addition, outputting the content of R5 to obtain the projective z-coordinate Z P 'of the addition, outputting the register R6 to obtain the projective x Coordinate X Q 'of the result point of the multiplication, and outputting the content of the register R7 to obtain the projective z-coordinate Z Q' of the result point of the multiplication, where the symbol "·" represents a multiplication where the symbol " + "represents an addition, where the symbol" - "represents a subtraction, where a, b are parameters of the elliptic curve, where x D is an affine x-coordinate of a point that results when the first point P is from the second point Q is subtracted, and wherein the symbol "←" means that the register on which the arrowhead is directed is loaded with a value resulting from the arithmetic operation standing at a foot point of the arrow t. Verfahren nach Anspruch 7, bei dem folgende Schritte parallel ausgeführt werden: – Schritt (1) parallel zu Schritt (2) – Schritt (3) parallel zu Schritt (4) – Schritt (5) parallel zu Schritt (6) – Schritt (7) parallel zu Schritt (8) – Schritt (9) parallel zu Schritt (10) – Schritt (11) parallel zu Schritt (12) – Schritt (13) parallel zu Schritt (14) – Schritt (16) parallel zu Schritt (17) – Schritt (18) parallel zu Schritt (19) – Schritt (20) parallel zu Schritt (21) – Schritt (22) parallel zu Schritt (23) – Schritt (24) parallel zu Schritt (25) – Schritt (27) parallel zu Schritt (28) – Schritt (29) parallel zu Schritt (30) – Schritt (32) parallel zu Schritt (33).Method according to Claim 7, in which the following steps are carried out in parallel: 1 ) parallel to step ( 2 ) - step ( 3 ) parallel to step ( 4 ) - step ( 5 ) parallel to step ( 6 ) - step ( 7 ) parallel to step ( 8th ) - step ( 9 ) parallel to step ( 10 ) - step ( 11 ) parallel to step ( 12 ) - step ( 13 ) parallel to step ( 14 ) - step ( 16 ) parallel to step ( 17 ) - step ( 18 ) parallel to step ( 19 ) - step ( 20 ) parallel to step ( 21 ) - step ( 22 ) parallel to step ( 23 ) - step ( 24 ) parallel to step ( 25 ) - step ( 27 ) parallel to step ( 28 ) - step ( 29 ) parallel to step ( 30 ) - step ( 32 ) parallel to step ( 33 ). Verfahren nach Anspruch 7 oder 8, bei dem nach einer Addition, Multiplikation und/oder Subtraktion eine modulare Reduktion mit der Charakteristik der elliptischen Kurve als Modul durchgeführt wird.The method of claim 7 or 8, wherein after a Addition, multiplication and / or subtraction a modular reduction is performed with the characteristic of the elliptic curve as a module.
DE2001156708 2001-11-19 2001-11-19 Method and apparatus for multiplying and method and apparatus for adding on an elliptic curve Expired - Fee Related DE10156708B4 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE2001156708 DE10156708B4 (en) 2001-11-19 2001-11-19 Method and apparatus for multiplying and method and apparatus for adding on an elliptic curve
AU2002342820A AU2002342820A1 (en) 2001-11-19 2002-10-11 Method and device for multiplication and method and device for addition to an elliptical curve
PCT/EP2002/011426 WO2003044653A2 (en) 2001-11-19 2002-10-11 Method and device for multiplication and method and device for addition to an elliptical curve
TW91123940A TW580654B (en) 2001-11-19 2002-10-17 Method and device for multiplying and method and device for adding on an elliptic curve

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2001156708 DE10156708B4 (en) 2001-11-19 2001-11-19 Method and apparatus for multiplying and method and apparatus for adding on an elliptic curve

Publications (2)

Publication Number Publication Date
DE10156708A1 DE10156708A1 (en) 2003-06-12
DE10156708B4 true DE10156708B4 (en) 2005-09-29

Family

ID=7706220

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2001156708 Expired - Fee Related DE10156708B4 (en) 2001-11-19 2001-11-19 Method and apparatus for multiplying and method and apparatus for adding on an elliptic curve

Country Status (4)

Country Link
AU (1) AU2002342820A1 (en)
DE (1) DE10156708B4 (en)
TW (1) TW580654B (en)
WO (1) WO2003044653A2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006002891B4 (en) 2006-01-20 2009-06-04 Siemens Ag Method, apparatus and system for verifying points determined on an elliptic curve
DE102006014353B4 (en) * 2006-03-28 2007-11-22 Siemens Ag Method for the reliable determination of data
TWI406548B (en) * 2010-10-27 2013-08-21 Univ Southern Taiwan An elliptic curve cryptography operation circuit
CN113037479B (en) * 2021-03-25 2022-04-12 支付宝(杭州)信息技术有限公司 Data verification method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999049386A1 (en) * 1998-03-25 1999-09-30 Certicom Corp. Accelerated finite field operations on an elliptic curve
WO2000025204A1 (en) * 1998-10-28 2000-05-04 Certicom Corp. Power signature attack resistant cryptography
US6263081B1 (en) * 1997-07-17 2001-07-17 Matsushita Electric Industrial Co., Ltd. Elliptic curve calculation apparatus capable of calculating multiples at high speed

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263081B1 (en) * 1997-07-17 2001-07-17 Matsushita Electric Industrial Co., Ltd. Elliptic curve calculation apparatus capable of calculating multiples at high speed
WO1999049386A1 (en) * 1998-03-25 1999-09-30 Certicom Corp. Accelerated finite field operations on an elliptic curve
WO2000025204A1 (en) * 1998-10-28 2000-05-04 Certicom Corp. Power signature attack resistant cryptography

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HASEGAWA, T.: A Small and Fast Software Implemen- tation of Elliptic Curve Cryptosystems over GF(p) on a 16-Bit Microcomputer. In: IEICE Trans. Funda- mentals, Vol. E82-A, No. 1, Jan. 1999, S. 98-106
HASEGAWA, T.: A Small and Fast Software Implemen- tation of Elliptic Curve Cryptosystems over GF(p) on a 16-Bit Microcomputer. In: IEICE Trans. Funda-mentals, Vol. E82-A, No. 1, Jan. 1999, S. 98-106 *

Also Published As

Publication number Publication date
TW580654B (en) 2004-03-21
DE10156708A1 (en) 2003-06-12
WO2003044653A2 (en) 2003-05-30
AU2002342820A1 (en) 2003-06-10

Similar Documents

Publication Publication Date Title
EP1342154B1 (en) Cryptographic processor
EP1360579B1 (en) Method and device for conducting modular multiplication and arithmetic-logic unit for conducting modular multiplication
DE69828150T2 (en) Computationally efficient modular multiplication method and device
DE69818798T2 (en) High-speed Montgomery value calculation
DE102020102453A1 (en) Integrated circuit for the modular multiplication of two whole numbers for a cryptographic method and method for the cryptographic processing of data based on modular multiplication
DE102021120010B3 (en) CRYPTOGRAPHIC PROCESSING DEVICE AND METHOD FOR PERFORMING A GRID-BASED CRYPTOGRAPHY OPERATION
DE69837036T2 (en) METHOD AND DEVICE FOR CARRYING OUT A DECOMPOSITION THROUGH A STANDARDIZED MODULAR POTENTIATION FOR VERITING A TIME ATTACK
EP1370933B1 (en) Method and device for modular multiplication
EP1499954B1 (en) Device and method for calculating a result of a modular multiplication
EP1664979B1 (en) Transition between masked representations of a value during cryptographic calculations
DE102006025673A1 (en) Computer system for the modular reduction of input numbers using estimation processing of stored values for cryptography
DE10151129B4 (en) Method and device for calculating a result of an exponentiation in a cryptography circuit
DE10156708B4 (en) Method and apparatus for multiplying and method and apparatus for adding on an elliptic curve
DE102006025713B9 (en) Cryptographic device and cryptographic method for calculating a result of a modular multiplication
EP1478999B1 (en) Device and method for converting a term
EP1474741B1 (en) System and method for calculating a result from a division
DE102006025677B4 (en) Device and method for calculating a result of a sum with an arithmetic unit with a limited word length
EP1515226B1 (en) Modular mutliplication
DE102022131526A1 (en) PROCESSING CIRCUIT
EP1536320B1 (en) Montgomery multiplication with longer operand length
EP3504616B1 (en) Module and method for the secured computation of mathematical operations
DE102020134618A1 (en) SECURITY CONTROLLERS AND METHODS FOR PROCESSING DATA ELEMENTS OF A DATA FIELD
DE602004006126T2 (en) IMPROVED INVESTMENT CALCULATIONS
EP1518165B1 (en) Computation of a multiple of a group element for cryptographic purposes
DE10219164A1 (en) Device and method for calculating an integer quotient

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee