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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7261—Uniform 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:
Calculating (31) a first projective coordinate X P 'of a result point on the elliptic curve by the following equation:
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
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
Nach
der Beendigung der Schleife bzw. nach dem Berechnen von E wird die
Laufvariable i um 1 inkrementiert (Block
Nachteilig
an dem in
Als
Gegenmaßnahme
gegen eine solche Attacke auf den kryptographischen Algorithmus
könnte
in dem Double-&-Add-Algorithmus im linken
Zweig von
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:
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
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:
In
einem Initialisierungsblock
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
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
Wird
dagegen im Block
Hierauf
wird am Ausgang der Iterationsschleife die Zählvariable i um 1 inkrementiert
(Block
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
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.
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
Es
sei darauf hingewiesen, daß dieselbe
Berechnung analog für
den linken Iterationszweig von
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:
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:
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:
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:
Schließlich wird
y 2 / P mittels der Gleichung (1) substituiert, wodurch sich aus Gleichung
(5) folgende Gleichung ergibt:
Nunmehr
wird XP/ZP für xP substituiert, und wird XQ/ZQ für
xQ substituiert. Damit ergibt sich aus Gleichung
(6) folgende Gleichung:
Mit
denselben Substitutionen ergibt sich aus Gleichung (7) folgende
Gleichung:
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:
Für die Double-Formel,
also zur Berechnung des zweiten Hilfspunkts Q', ergeben sich folgende Gleichungen:
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
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung wird nunmehr Bezug nehmend
auf
Der
erfindungsgemäße Addierer
umfaßt
somit eine Einrichtung 30 zum Berechnen von ZP' und eine Einrichtung
Wie
es bereits ausgeführt
worden ist, ist der in
Die
Parallel-ALU
Als
zentrales Element umfaßt
der Prozessor schließlich
eine Ablaufsteuerung
Im
nachfolgenden wird anhand von
In
einem Block
Selbstverständlich könnte die
Folge von Schritten, die im Block
Der
erfindungsgemäße Algorithmus
benötigt
zum Berechnen eines Iterationsschritts (entweder der linke Zweig
oder der rechte Zweig in
Der
in
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:
Um
die affinen Koordinaten von k·P
zu erhalten, wird folgende Transformation verwendet:
Auf ähnliche
Weise kann die affine x-Koordinate von (k + 1)·P erhalten werden:
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:
Die
Bestimmungsgleichung für
ykP lautet somit folgendermaßen:
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:
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
Die
vorliegende Erfindung ist dahingehend vorteilhaft, daß die Zeit
und das Stromprofil durch den in
Ferner
ist, wie es ausgeführt
worden ist, das erfindungsgemäße Konzept
im Gegensatz zur Standardmethode, die in
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
- 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)
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)
| 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)
| 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 |
-
2001
- 2001-11-19 DE DE2001156708 patent/DE10156708B4/en not_active Expired - Fee Related
-
2002
- 2002-10-11 AU AU2002342820A patent/AU2002342820A1/en not_active Abandoned
- 2002-10-11 WO PCT/EP2002/011426 patent/WO2003044653A2/en not_active Ceased
- 2002-10-17 TW TW91123940A patent/TW580654B/en active
Patent Citations (3)
| 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)
| 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 |