EP1920323A1 - Method for scalarly multiplying points on an elliptic curve - Google Patents
Method for scalarly multiplying points on an elliptic curveInfo
- Publication number
- EP1920323A1 EP1920323A1 EP06777699A EP06777699A EP1920323A1 EP 1920323 A1 EP1920323 A1 EP 1920323A1 EP 06777699 A EP06777699 A EP 06777699A EP 06777699 A EP06777699 A EP 06777699A EP 1920323 A1 EP1920323 A1 EP 1920323A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- characteristic
- multiplication
- degree
- scalar multiplication
- elliptic curve
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/7214—Calculation via prime subfield, i.e. the subfield being GF(p) with p an integer prime > 3; e.g. GF(p**k) via GF(p)
Definitions
- the invention relates to a method for scalar multiplication of points on an elliptic curve, in particular of elliptic curves over a finite extension body K of a primary body F p with a characteristic p> 3.
- Symmetric methods use only one secret key, both for encryption and decryption. The key must be distributed to both communication parties via a secure channel.
- Asymmetric procedures use two keys, one public and one private. The public key can be distributed to all subscribers without jeopardizing the security of the data exchange. Key exchange is therefore less problematic in asymmetric methods than in symmetric methods.
- a disadvantage of the asymmetric methods is that they are about one hundred to one thousand times slower than comparable symmetrical methods.
- Elliptic curves have been used since 1985 in asymmetric cryptography techniques.
- the main advantage of elliptic curve-based cryptography is that, compared to other methods, such as RSA, smaller keys can be used and still the same
- a key length of 160 bits has the same security against attacks as a 1,024 bit key in the RSA method.
- elliptic curve cryptography provides the highest security of all currently known methods. Elliptic curve cryptography is therefore particularly suitable for channels with a very limited bandwidth.
- the disadvantage, however, is that the encryption and decryption are calculated more complicated than other methods. For use in cryptographic methods, it is therefore important to make an optimal selection of the parameters of the cryptographic system.
- K be a finite field of the characteristic p> 3 and a, be K.
- Elliptic curves are under Inclusion of the infinite distant point as a neutral element additive groups.
- G c E be a subgroup with a prime order.
- every non-trivial point P e G is a generator of P.
- every point Q e G is the result of a scalar multiplication
- Q sP, with se ⁇ 0, ..., ord (P) -l ⁇ . If the scalar s is a positive integer, the scalar multiplication corresponds to the s-repeated addition of a point P to itself.
- Scalar multiplication is currently a one-way mathematical function for curves with specific properties. It can be calculated in polynomial time, but in the current state of the art reversed only in exponential time.
- the inverse of scalar multiplication on elliptic curves is also referred to as discrete logarithm problem (ECDLP) and is the mathematical basis for elliptic curve based cryptosystems.
- ECDLP discrete logarithm problem
- the currently known methods for calculating discrete logarithms on cryptographically suitable elliptic curves have the complexity O (2 ° ' 5n ), where n is the binary length of the order of G c E. In order to meet the current safety requirements, it is recommended to select at least one bit length of n> 160.
- the scalar multiplication of a point P is usually implemented by adding and doubling points of the elliptic curve.
- the calculation rule for addition and doubling consists of elementary operations on elements of the body K.
- scalar multiplication requires optimized arithmetic in the body K.
- K The most important factor in choosing the underlying body K is the architecture of the available hardware platform. If a long-range arithmetic is available on the hardware platform and if coprocessors are integrated in the body K for the purpose of accelerating the arithmetic, K primers can be used for the body. Chip cards with coprocessor and long-number arithmetic z. B. elliptic curves with primes with bit lengths of 160 to 600 bits very effectively.
- expansion bodies of a primer F p can be selected for the body K.
- the body elements of an expansion body are polynomials whose coefficients also originate from the body F p , ie are polynomials. In this way, despite the smaller primes p can achieve a high effective number of bits, which then a sufficiently high security possible.
- the required polynomial arithmetic can thus be adapted to the bus width of the respective processor, so that the arithmetic operations provided in the respective processor can be used optimally and no long-number arithmetic is required.
- n 2 multiplies are required in polynomial arithmetic.
- the advantage of polynomial arithmetic is that the use of special algorithms reduces the total number of operations much more.
- the polynomial In order to get back into the body when multiplying two polynomials, whose result is a polynomial of maximum degree 2d - 2, the polynomial must be reduced.
- the coefficients of the polynomial are modulo p reduced in the finite field F p
- the polynomial itself modulo irreducible polynomial is reduced.
- Optimum expansion bodies (OEF) via prime bodies F p with a characteristic p> 3 and a polynomial representation with maximum degrees d - 1 are characterized by two essential properties:
- the optimal expansion bodies can be further type 1 or
- Type 2 be:
- a multiplication with a power of 2 is achieved by pushing to the left, so that in this case a total of 5 times shift operations and 5 additions are required.
- the number 63 can also be represented as 2 6 - 1. It has a Hamming weight of only 2 in this representation, so that a multiplication by 63 with a link shift by 6 bit positions and a subtraction can take place.
- the irreducible polynomial X d - 2 has an optimal shape with respect to the reduction. It contains only two terms, X d and a constant, additive factor. This factor, 2, is also optimally chosen, since the coefficient has to be reduced by just shifting one bit to multiply it by 2.
- the prime in the representation p 2 n + 1 is also optimal in terms of the reduction, since only one additive term to 2 n is present. Unfortunately, both types can not be combined, so choosing the expansion body always requires a balance of effort.
- the coefficients a and b of an elliptic curve defined via an expansion body are generally polynomials.
- a and b are in the body and are polynomials of degree zero.
- the exponentiation of a point on the curve with p maps it back to the same curve due to the Frobenius homomorphism in the finite field. If a and b are polynomials, the point is mapped to another curve.
- Endomorphism on the elliptic curve is in the endophormic ring, which means that in Koblitz curves one can represent all scalars with respect to the Frobenius endomorphism and thus obtain a very fast scalar multiplication algorithm.
- the object of the present invention is therefore to specify an efficient realization of the scalar multiplication of points of an elliptic curve over a finite extension element with the characteristic p> 3 in software on a standard processor without additional coprocessors.
- the characteristic p has a Hamming weight of 3. For a Hamming weight less than 3 you will get an optimal expansion body of type 1. However, since an optimal expansion body of type 2 has already been chosen, this is not possible. If the Hamming weight is 4 or greater, additional summands are obtained that affect the efficiency of the scalar multiplication algorithm.
- the degree d of the irreducible polynomial is a prime number. If d were an even number, then there would be a binomial formula with which the irreducible polynomial could be reduced. If the degree d is a prime number, known attacks can be prevented, which are possible if the degree d is not a prime number.
- y 2 x 3 + ax + b with 4a 3 + 27b 2 ⁇ 0.
- the elliptic curve is a Koblitz curve.
- Koblitz curves allow a fast scalar multiplication by Frobenius endomorphism over the body F p .
- the scalar multiplication can then be implemented as a sum of shorter scalar multiplications.
- the powers of the power series are previously calculated and stored.
- the efficiency of the scalar multiplication algorithm can thereby be further increased.
- the bit length of the characteristic p and the degree d are adapted to the processor on which scalar multiplication is carried out.
- the prime p 5 to 6 bits allowing a representation of primes up to 31.
- the degree d of the irreducible polynomial must be set higher than with a prime number with a larger bit length.
- a degree of d 23 or 29 is required.
- the characteristic p and the degree d are chosen so that the arithmetic operations provided for the bus width of the processor can be used directly for scalar multiplication. This saves saving intermediate results
- parts of the arithmetic operations of scalar multiplication are executed in parallel by means of a streaming single instruction multiple data (SIMD) extension instruction set (SSE).
- SIMD streaming single instruction multiple data
- SSE streaming single instruction multiple data extension instruction set
- the methods described above are used in an asymmetric cryptography application. These applications may enable key exchange, digital signatures, etc., with the computing time and hardware requirement being at a level acceptable to the user.
- an elliptic curve over an optimal extension field and field arithmetic must be optimized according to the existing hardware platform. This is achieved by an optimization in terms of the computational effort that is required if the optimal expansion body does not satisfy one of the conditions of type 1 or type 2. It turns out that if an optimal type 2 extender is chosen, the resulting non-optimal shape can be sufficiently compensated for Type 1 by a clever choice of the prime number p. If, on the other hand, the irreducible polynomial F (X) is not optimal, this means more computation effort, since this polynomial has a greater effect on the calculation and correspondingly has many coefficients depending on the degree d.
- a number with a very small Hamming weight in binary representation is therefore chosen as the prime number p.
- the additional summand 2 m has less serious effects on the computational time than a non-optimal reduction polynomial.
- the prime number p is further selected so that as many intermediate results as possible can be kept in registers without having to reduce p with respect to the prime number. You can then allow the additive constant without major disadvantages in terms of the computational time, since only at the end must be reduced.
- the target platform used is a 32-bit Pentium 4 processor with an SSE2 unit.
- the bit length of the prime number p is selected between 20 and 30 bits. Compared to the recommended bit length of 160 bits, this represents a reduction by a factor of five to eight.
- Intel's SSE2 Streaming SIMD Extension 2 Assembler instruction set allows parts of the body arithmetic to be parallelized across the body F p on a Pentium 4 processor.
- SIMD Single Instruction Multiple Data
- the Single Instruction Multiple Data (SIMD) concept and the 128-bit registers allow the simultaneous calculation of two partial products, as shown in the following program segment.
- the coefficients a and b were determined randomly and are of degree 0, so that exponentiation of a point with p represents this again on the same curve. In this way it is possible to use the Frobenius endomorphism for a very fast scalar multiplication algorithm. For further acceleration, the required powers of the number 2 are calculated in advance and stored in tables.
- the optimal expansion bodies can be similarly selected for hardware platforms with different bus widths.
- the prime number p is chosen such that on the one hand there is an optimal reduction polynomial of type 2, ie X d - 2, and on the other hand the prime number p has a minimal Hamming weight, so that as few summands as possible in the binary Representation are present.
- the prime number p has a bit length of 11 or 13 bits.
- the method for scalar multiplication can be scaled by an appropriate choice of the bit length of the primes and can thus be adapted to different processor bus widths, it can also be used on a wide variety of hardware platforms. In particular, in hardware platforms without Langressarithmetik or coprocessor asymmetric methods based on elliptic curves can be used with low processing times.
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)
- Complex Calculations (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
The invention relates to a method for scalarly multiplying points on an elliptic curve by a finite expandable field K of a first field Fp of a p>3 characteristic, wherein said characteristic p has low Hamming weight and the expandable field has a polynom F(X) = Xd-2 of order d in the polynomial representation thereof.
Description
Beschreibungdescription
Verfahren zur Skalarmultiplikation von Punkten auf einer elliptischen KurveMethod for scalar multiplication of points on an elliptic curve
Die Erfindung betrifft ein Verfahren zur Skalarmultiplikation von Punkten auf einer elliptischen Kurve, insbesondere von elliptischen Kurven über einen endlichen Erweiterungskörper K eines Primkörpers Fp mit einer Charakteristik p > 3.The invention relates to a method for scalar multiplication of points on an elliptic curve, in particular of elliptic curves over a finite extension body K of a primary body F p with a characteristic p> 3.
In der Kryptographie wird zwischen symmetrischen und asymmetrischen Verfahren unterschieden. Symmetrische Verfahren benutzen nur einen, geheimen Schlüssel, sowohl zum Ver- als auch zum Entschlüsseln. Der Schlüssel muss an beide Kommuni- kationsteilnehmer über einen sicheren Kanal verteilt werden. Bei den asymmetrischen Verfahren werden zwei Schlüssel eingesetzt, ein öffentlicher und ein privater. Der öffentliche Schlüssel kann an alle Teilnehmer verteilt werden, ohne die Sicherheit des Datenaustauschs zu gefährden. Der Schlüssel- austausch ist daher bei asymmetrischen Verfahren unproblematischer als bei den symmetrischen Verfahren. Nachteilig bei den asymmetrischen Verfahren ist, dass sie etwa hundert- bis tausendmal langsamer als vergleichbare symmetrische Verfahren sind.Cryptography distinguishes between symmetric and asymmetric methods. Symmetric methods use only one secret key, both for encryption and decryption. The key must be distributed to both communication parties via a secure channel. Asymmetric procedures use two keys, one public and one private. The public key can be distributed to all subscribers without jeopardizing the security of the data exchange. Key exchange is therefore less problematic in asymmetric methods than in symmetric methods. A disadvantage of the asymmetric methods is that they are about one hundred to one thousand times slower than comparable symmetrical methods.
Elliptische Kurven werden seit 1985 in asymmetrischen Kryptographie-Verfahren eingesetzt. Der Hauptvorteil von auf elliptischen Kurven basierender Kryptographie ist, dass im Vergleich zu anderen Verfahren, wie zum Beispiel RSA, kleinere Schlüssel eingesetzt werden können und dennoch das gleicheElliptic curves have been used since 1985 in asymmetric cryptography techniques. The main advantage of elliptic curve-based cryptography is that, compared to other methods, such as RSA, smaller keys can be used and still the same
Sicherheitsniveau erreicht wird. Eine Schlüssellänge von 160 Bit weist die gleiche Sicherheit gegenüber Angriffen auf wie ein Schlüssel von 1.024 Bit bei dem RSA-Verfahren. Pro Bit des Schlüssels liefert die elliptische Kurven-Kryptographie die höchste Sicherheit von allen derzeit bekannten Verfahren. Die elliptische Kurven-Kryptographie ist daher besonders für Kanäle mit stark begrenzter Bandbreite geeignet. Nachteilig ist jedoch, dass die Ver- und Entschlüsselung rechnerisch
aufwendiger als bei anderen Verfahren ist. Für die Anwendung in kryptographischen Verfahren ist es daher wichtig, eine optimale Auswahl der Parameter des kryptographischen Systems zu treffen.Security level is achieved. A key length of 160 bits has the same security against attacks as a 1,024 bit key in the RSA method. For each bit of key, elliptic curve cryptography provides the highest security of all currently known methods. Elliptic curve cryptography is therefore particularly suitable for channels with a very limited bandwidth. The disadvantage, however, is that the encryption and decryption are calculated more complicated than other methods. For use in cryptographic methods, it is therefore important to make an optimal selection of the parameters of the cryptographic system.
Sei K ein endlicher Körper der Charakteristik p > 3 und a, b e K. Eine elliptische Kurve über dem Körper K ist die Nullstellenmenge der Gleichung y2 = x3 + ax + b mit 4a3 + 27b2 ≠ 0. Elliptische Kurven sind unter Einbeziehung des unendlich fernen Punktes als neutrales Element additive Gruppen. Sei G c E eine Untergruppe mit primer Ordnung. Dann ist jeder nicht-triviale Punkt P e G ein Generator von P. Folglich ist jeder Punkt Q e G das Ergebnis einer Skalarmultiplikation Q = sP, mit s e {0, ..., ord(P)-l}. Wenn der Skalar s eine po- sitive Ganzzahl ist, entspricht der Skalarmultiplikation die s-fach wiederholte Addition eines Punktes P zu sich selber.Let K be a finite field of the characteristic p> 3 and a, be K. An elliptic curve over the field K is the set of zeros of the equation y 2 = x 3 + ax + b with 4a 3 + 27b 2 ≠ 0. Elliptic curves are under Inclusion of the infinite distant point as a neutral element additive groups. Let G c E be a subgroup with a prime order. Then every non-trivial point P e G is a generator of P. Thus, every point Q e G is the result of a scalar multiplication Q = sP, with se {0, ..., ord (P) -l}. If the scalar s is a positive integer, the scalar multiplication corresponds to the s-repeated addition of a point P to itself.
Die Skalarmultiplikation ist derzeit für Kurven mit bestimmten Eigenschaften eine mathematische Einwegfunktion. Sie kann in polynomieller Zeit berechnet werden, allerdings nach dem heutigen Stand der Technik nur in exponentieller Zeit umgekehrt werden. Die Umkehrung der Skalarmultiplikation auf elliptischen Kurven wird auch als diskretes Logarithmus-Problem (ECDLP) bezeichnet und ist die mathematische Grundlage für auf elliptischen Kurven basierende Kryptosysteme . Die derzeit bekannten Verfahren zur Berechnung diskreter Logarithmen auf kryptographisch geeigneten elliptischen Kurven besitzen die Komplexität O(2°'5n), wobei n die binäre Länge der Ordnung von G c E ist. Um den aktuellen Sicherheitsanforderungen zu ge- nügen, wird empfohlen mindestens eine Bitlänge von n > 160 zu wählen.Scalar multiplication is currently a one-way mathematical function for curves with specific properties. It can be calculated in polynomial time, but in the current state of the art reversed only in exponential time. The inverse of scalar multiplication on elliptic curves is also referred to as discrete logarithm problem (ECDLP) and is the mathematical basis for elliptic curve based cryptosystems. The currently known methods for calculating discrete logarithms on cryptographically suitable elliptic curves have the complexity O (2 ° ' 5n ), where n is the binary length of the order of G c E. In order to meet the current safety requirements, it is recommended to select at least one bit length of n> 160.
Die Skalarmultiplikation eines Punktes P wird üblicherweise durch Addition und Verdopplung von Punkten der elliptischen Kurve implementiert. Die Rechenvorschrift für die Addition und die Verdopplung besteht aus Elementaroperationen auf Elementen aus dem Körper K. Für eine effektive Implementierung
der Skalarmultiplikation ist eine optimierte Arithmetik im Körper K erforderlich.The scalar multiplication of a point P is usually implemented by adding and doubling points of the elliptic curve. The calculation rule for addition and doubling consists of elementary operations on elements of the body K. For an effective implementation scalar multiplication requires optimized arithmetic in the body K.
Der wichtigste Faktor bei der Wahl des zugrunde liegenden Körpers K ist die Architektur der zur Verfügung stehenden Hardware-Plattform. Steht auf der Hardware-Plattform eine Langzahlarithmetik zur Verfügung und sind Koprozessoren zur Beschleunigung der Arithmetik im Körper K integriert, so können für den Körper K Primkörper eingesetzt werden. Chipkarten mit Koprozessor und Langzahlarithmetik können z. B. elliptische Kurven mit Primzahlen mit Bitlängen von 160 bis 600 Bit sehr effektiv verarbeiten.The most important factor in choosing the underlying body K is the architecture of the available hardware platform. If a long-range arithmetic is available on the hardware platform and if coprocessors are integrated in the body K for the purpose of accelerating the arithmetic, K primers can be used for the body. Chip cards with coprocessor and long-number arithmetic z. B. elliptic curves with primes with bit lengths of 160 to 600 bits very effectively.
In Hardware-Umgebungen dagegen, die keine speziellen Rechen- werke aufweisen, wie zum Beispiel Embedded Systems, mit Busbreiten von nur 8 oder 16 Bit und ohne Koprozessor, muss die Langzahlarithmetik erst durch entsprechende Software-Befehle implementiert werden. Die kryptographischen Verfahren müssen somit vollständig in Software realisiert werden und sind nur schwierig beziehungsweise nur mit sehr viel Erfahrung optimierbar.On the other hand, in hardware environments that do not have specialized comput- ers, such as embedded systems, with bus widths of only 8 or 16 bits and no coprocessor, long-range arithmetic must first be implemented using appropriate software commands. The cryptographic methods must thus be completely realized in software and are only difficult or can only be optimized with a great deal of experience.
Die Leistungsfähigkeit von derartigen Software-Lösungen zur Skalarmultiplikation kann wesentlich gesteigert werden, wenn die von der Hardware zur Verfügung gestellten Optimierungsmöglichkeiten, wie zum Beispiel die SSE2-Einheit eines Pentium 4-Prozessors oder das gleichzeitige Addieren und Multiplizieren eines Signalprozessors, ausgenutzt werden können.The performance of such software solutions for scalar multiplication can be significantly increased if the hardware-provided optimization options, such as the SSE2 unit of a Pentium 4 processor or the simultaneous addition and multiplication of a signal processor, can be exploited.
Alternativ zur Wahl eines Primkörpers können für den Körper K Erweiterungskörper eines Primkörpers Fp gewählt werden. Mithilfe von kleineren Primzahlen p mit binären Längen von nur 20 bis 30 Bit und eines irreduziblen Polynoms vom Grad d kann man einen kleineren Körper Fp konstruieren. Die Körperelemen- te eines Erweiterungskörpers sind dabei Polynome, deren Koeffizienten auch aus dem Körper Fp stammen, d. h. Polynome sind. Auf diese Weise lässt sich trotz der kleineren Primzahlen p eine hohe effektive Bitzahl erreichen, die dann eine
ausreichend hohe Sicherheit ermöglicht. Die erforderliche Polynomarithmetik kann damit an die Busbreite des jeweiligen Prozessors angepasst werden, sodass die im jeweiligen Prozessor bereitgestellten Arithmetikoperationen optimal verwendet werden können und keine Langzahlarithmetik erforderlich ist. Bei der Polynomarithmetik sind wie bei der Multiplikation von zwei n-Bit Zahlen n2 Multiplikationen erforderlich. Von Vorteil ist bei der Polynomarithmetik jedoch, dass sich durch Einsatz spezieller Algorithmen die Gesamtzahl der Operationen viel stärker reduzieren lässt.As an alternative to the choice of a priming body, expansion bodies of a primer F p can be selected for the body K. Using smaller primes p with binary lengths of only 20-30 bits and an irreducible polynomial of degree d, one can construct a smaller body F p . The body elements of an expansion body are polynomials whose coefficients also originate from the body F p , ie are polynomials. In this way, despite the smaller primes p can achieve a high effective number of bits, which then a sufficiently high security possible. The required polynomial arithmetic can thus be adapted to the bus width of the respective processor, so that the arithmetic operations provided in the respective processor can be used optimally and no long-number arithmetic is required. In polynomial arithmetic, as in the multiplication of two n-bit numbers, n 2 multiplies are required. The advantage of polynomial arithmetic, however, is that the use of special algorithms reduces the total number of operations much more.
Um bei der Multiplikation von zwei Polynomen, deren Ergebnis ein Polynom mit maximalem Grad 2d - 2 ist, wieder in den Körper zurückzukommen, muss das Polynom reduziert werden. Zum Einen werden die Koeffizienten des Polynoms modulo p im endlichen Körper Fp reduziert, zum Anderen wird das Polynom selber modulo irreduzibles Polynom reduziert.In order to get back into the body when multiplying two polynomials, whose result is a polynomial of maximum degree 2d - 2, the polynomial must be reduced. On the one hand, the coefficients of the polynomial are modulo p reduced in the finite field F p , on the other hand, the polynomial itself modulo irreducible polynomial is reduced.
Durch geschickte Wahl des Erweiterungskörpers Fp lässt sich der Aufwand für beide Arten von Reduzierung minimieren. Optimale Erweiterungskörper (OEF) über Primkörper Fp mit einer Charakteristik p > 3 und einer polynomiellen Darstellung mit maximalem Grad d - 1 sind dabei durch zwei wesentliche Eigenschaften gekennzeichnet:By skillful choice of the expansion body F p can minimize the cost of both types of reduction. Optimum expansion bodies (OEF) via prime bodies F p with a characteristic p> 3 and a polynomial representation with maximum degrees d - 1 are characterized by two essential properties:
1. Die Primzahl p ist eine Pseudo-Mersenne Primzahl in der Form p = 2n + c, wobei log(c) < n/2. Diese Eigenschaft ermöglicht eine schnelle Reduktion im Körper Fp.1. The prime p is a pseudo-Mersenne prime in the form p = 2 n + c, where log (c) <n / 2. This property allows a rapid reduction in the body F p .
2. Es existiert ein irreduzibles Polynom F(X) = Xd - w e2. There exists an irreducible polynomial F (X) = X d - we
FP[X]. Diese Eigenschaft ermöglicht eine schnelle Reduktion im Polynomring FP[X], da die zu reduzierenden Koeffizienten durch eine Multiplikation und eine Addition in Fp reduziert werden können.F P [X]. This property enables a fast reduction in the polynomial ring F P [X], since the coefficients to be reduced can be reduced by multiplication and addition in F p .
Die optimalen Erweiterungskörper können weiter vom Typ 1 oderThe optimal expansion bodies can be further type 1 or
Typ 2 sein:Type 2 be:
Typ 1: Für die Primzahl p gilt p = 2n + 1, das heißt c = 1.
Typ 2: Für das irreduzible Polynom F(X) gilt F(X) = Xd - 2, das heißt w = 2.Type 1: For the prime number p we have p = 2 n + 1, ie c = 1. Type 2: For the irreducible polynomial F (X) we have F (X) = X d - 2, ie w = 2.
Es kann mathematisch bewiesen werden, dass ein optimaler Er- Weiterungskörper entweder vom Typ 1 oder vom Typ 2 ist, aber nicht beide Eigenschaften gleichzeitig besitzen kann. Der Typ 1 optimale Erweiterungskörper ermöglicht eine effiziente A- rithmetik im Primkörper Fp, während der Typ 2 optimale Erweiterungskörper eine effiziente Reduktion im Polynomring FP[X] ermöglicht. In beiden Fällen ist es nicht auszuschließen, dass während der Reduktion in Fp oder im Polynomring FP[X] Multiplikation mit Elementen des Primkörpers Fp ausgeführt werden müssen.It can be mathematically proved that an optimal extension body is either type 1 or type 2, but can not have both properties at the same time. The type 1 optimal extension body allows efficient arithmetic in the prime field F p , while the type 2 optimal expansion field allows efficient reduction in the polynomial ring F P [X]. In both cases, it can not be ruled out that during the reduction in F p or in the polynomial ring F P [X] multiplication with elements of the prime field F p must be carried out.
Falls der Körper K ein Primkörper Fp ist, kann die Reduktion von Produkten aus Elementen des Primkörpers Fp durch die Wahl von speziellen Primzahlen p beschleunigt werden. Die Zahl der benötigten Operationen für eine Multiplikation hängt nicht allein von der Anzahl der Stellen der beiden Faktoren, son- dern vielmehr von den Hamming-Gewichten ihrer Darstellung ab. Unter dem Hamming-Gewicht einer Zahl Z versteht man die Anzahl der gesetzten Bits von Z. Das Hamming-Gewicht von 11101 ist beispielsweise vier. Durch eine geschickte Darstellung von Zahlen kann man bei einer Multiplikation von zwei Zahlen Rechenoperationen einsparen: Die Zahl 63 besitzt in binärer Form die Darstellung 111111 mit dem Hamming-Gewicht 6. Eine Multiplikation mit einer Potenz von 2 wird durch Linksschieben erreicht, sodass in diesem Fall insgesamt 5-mal Schiebeoperationen und 5 Additionen erforderlich sind. Die Zahl 63 lässt sich jedoch auch als 26 - 1 darstellen. Sie hat in dieser Darstellung ein Hamming-Gewicht von nur 2, sodass eine Multiplikation mit 63 mit einem Linkschieben um 6 Bitpositionen und einer Subtraktion erfolgen kann. Im Gegensatz dazu werden bei einer Multiplikation mit der Zahl 10 trotz der ge- ringeren Anzahl von Stellen zwei Schiebeoperationen und eine Addition benötigt. Der Aufwand einer Multiplikation hängt folglich stark von ihrem Hamming-Gewicht ab. In einer Liste empfohlener elliptischer Kurven über Primkörper des National
Institute of Standards and Technology (NIST, USA) wird darauf geachtet, dass die Primzahl eine Darstellung in der Form p = 2n + 2m + 1 mit dem Hamming-Gewicht 3 hat und somit eine effiziente Reduktion ermöglicht.If the body K is a prime particle F p , the reduction of products from elements of the prime particle F p can be accelerated by the choice of special prime numbers p. The number of operations required for a multiplication depends not only on the number of digits of the two factors, but rather on the Hamming weights of their representation. The Hamming weight of a number Z is understood as the number of set bits of Z. For example, the Hamming weight of 11101 is four. By a clever representation of numbers one can save arithmetic operations with a multiplication of two numbers: The number 63 has in binary form the representation 111111 with the Hamming weight 6. A multiplication with a power of 2 is achieved by pushing to the left, so that in this case a total of 5 times shift operations and 5 additions are required. However, the number 63 can also be represented as 2 6 - 1. It has a Hamming weight of only 2 in this representation, so that a multiplication by 63 with a link shift by 6 bit positions and a subtraction can take place. In contrast, multiplication by the number 10 requires two shift operations and one addition, despite the smaller number of digits. The cost of multiplication thus depends heavily on their Hamming weight. In a list of recommended elliptic curves about Primitives of the National It is ensured that the prime number has a representation in the form p = 2 n + 2 m + 1 with the Hamming weight of 3, thus enabling an efficient reduction.
Das irreduzible Polynom Xd - 2 besitzt bezüglich der Reduktion eine optimale Form. Es beinhaltet nur zwei Terme, Xd und einen konstanten, additiven Faktor. Dieser Faktor, 2, ist auch optimal gewählt, da der Koeffizient der zu reduzieren ist, nur um ein Bit verschoben werden muss, um ihn mit 2 zu multiplizieren. Die Primzahl in der Darstellung p = 2n + 1 ist ebenfalls bezüglich der Reduktion optimal, da nur ein additives Glied zu 2n vorhanden ist. Unglücklicherweise können beide Typen nicht miteinander kombiniert werden, sodass bei der Wahl des Erweiterungskörpers immer eine Abwägung bezüglich des Aufwands erforderlich ist.The irreducible polynomial X d - 2 has an optimal shape with respect to the reduction. It contains only two terms, X d and a constant, additive factor. This factor, 2, is also optimally chosen, since the coefficient has to be reduced by just shifting one bit to multiply it by 2. The prime in the representation p = 2 n + 1 is also optimal in terms of the reduction, since only one additive term to 2 n is present. Unfortunately, both types can not be combined, so choosing the expansion body always requires a balance of effort.
Die Koeffizienten a und b einer über einen Erweiterungskörper definierten elliptischen Kurve sind im Allgemeinen Polynome. Bei einer Koblitz-Kurve liegen a und b im Grundkörper und sind Polynome vom Grad Null. Die Potenzierung eines auf der Kurve liegenden Punktes mit p bildet diesen aufgrund des Fro- benius Homomorphismus im endlichen Körper wieder auf die gleiche Kurve ab. Falls a und b dagegen Polynome sind, wird der Punkt auf einer anderen Kurve abgebildet. Der FrobeniusThe coefficients a and b of an elliptic curve defined via an expansion body are generally polynomials. For a Koblitz curve, a and b are in the body and are polynomials of degree zero. The exponentiation of a point on the curve with p maps it back to the same curve due to the Frobenius homomorphism in the finite field. If a and b are polynomials, the point is mapped to another curve. The Frobenius
Endomorphismus auf der elliptischen Kurve ist im Endophormis- musring, das heißt, man kann bei Koblitz-Kurven sämtliche Skalare bezüglich des Frobenius Endomorphismus darstellen und erhält dadurch einen sehr schnellen skalaren Multiplikations- algorithmus .Endomorphism on the elliptic curve is in the endophormic ring, which means that in Koblitz curves one can represent all scalars with respect to the Frobenius endomorphism and thus obtain a very fast scalar multiplication algorithm.
Aufgabe der vorliegenden Erfindung ist es daher, eine effiziente Realisierung der Skalarmultiplikation von Punkten einer elliptischen Kurve über einem endlichen Erweiterungskör- per mit der Charakteristik p > 3 in Software auf einem Standardprozessor ohne zusätzliche Koprozessoren anzugeben.
Die Aufgabe wird durch ein Verfahren zur Skalarmultiplikation von Punkten auf einer elliptischen Kurve über einen endlichen Erweiterungskörper K eines Primkörpers Fp mit einer Charakteristik p > 3 gelöst, wobei die Skalarmultiplikation innerhalb eines kryptographischen Algorithmus für eine Verschlüsselung einer Nachricht, eine Entschlüsselung einer Nachricht, eine Signaturerzeugung aus einer Nachricht oder eine Signatur- Verifikationsberechnung aus einer Nachricht ausgeführt wird, und wobei die Charakteristik p ein Hamming-Gewicht ≤ 4 auf- weist und der Erweiterungskörper K in polynomieller Darstellung ein irreduzibles Polynom F(X) = Xd - 2 vom Grad d besitzt. Der optimale Erweiterungskörper ist somit vom Typ 2 und weist bezüglich der Reduktion im Polynomring FP[X] optimale Reduktionseigenschaften auf. Da sich optimale Erweite- rungskörper vom Typ 1 und Typ 2 gegenseitig ausschließen ist eine Darstellung der Primärzahl in der Form p = 2n + 1 nicht möglich. Um dennoch eine effiziente Arithmetik im Primkörper Fp zu ermöglichen, wird gefordert dass die Primzahl p ein geringes Hamming-Gewicht aufweist. Durch das geringe Hamming- Gewicht in der binären Darstellung wird die Anzahl der Rechenoperationen stark reduziert und die Berechnung der Skalarmultiplikation beschleunigt.The object of the present invention is therefore to specify an efficient realization of the scalar multiplication of points of an elliptic curve over a finite extension element with the characteristic p> 3 in software on a standard processor without additional coprocessors. The object is achieved by a method for scalar multiplication of points on an elliptic curve over a finite extension field K of a prime field F p with a characteristic p> 3, the scalar multiplication within a cryptographic algorithm for an encryption of a message, a decryption of a message Signature generation is carried out from a message or a signature verification calculation from a message, and wherein the characteristic p has a Hamming weight ≤ 4 and the expansion body K in polynomial representation an irreducible polynomial F (X) = X d - 2 degree d owns. The optimum expansion body is thus of type 2 and has optimal reduction properties with respect to the reduction in the polynomial ring F P [X]. Since optimal expansion bodies of type 1 and type 2 are mutually exclusive, a representation of the primary number in the form p = 2 n + 1 is not possible. In order nevertheless to enable efficient arithmetic in the prime field F p , it is required that the prime number p has a low Hamming weight. Due to the low Hamming weight in the binary representation, the number of arithmetic operations is greatly reduced and the calculation of scalar multiplication accelerated.
Gemäß einer vorteilhaften Ausgestaltung weist die Charakte- ristik p ein Hamming-Gewicht von 3 auf. Für ein Hamming- Gewicht kleiner als 3 erhält man einen optimalen Erweiterungskörper vom Typ 1. Da bereits jedoch ein optimaler Erweiterungskörper vom Typ 2 gewählt wurde, ist dies nicht möglich. Ist das Hamming-Gewicht 4 oder größer so erhält man zu- sätzliche Summanden die sich auf die Effizienz des Algorithmus für die Skalarmultiplikation auswirken.According to an advantageous embodiment, the characteristic p has a Hamming weight of 3. For a Hamming weight less than 3 you will get an optimal expansion body of type 1. However, since an optimal expansion body of type 2 has already been chosen, this is not possible. If the Hamming weight is 4 or greater, additional summands are obtained that affect the efficiency of the scalar multiplication algorithm.
Gemäß einer vorteilhaften Ausgestaltung wird die Charakteristik so gewählt, dass p = 2n + 2m + 1 gilt, wobei n und m na- türliche Zahlen sind. Wird die Charakteristik in dieser Form gewählt besitzt sie automatisch ein Hamming-Gewicht von 3. Sämtliche Operationen lassen sich durch Verschieben der Bit-
Positionen und Addition beziehungsweise Subtraktion effizient realisieren .According to an advantageous embodiment, the characteristic is chosen such that p = 2 n + 2 m + 1, where n and m are natural numbers. If the characteristic is selected in this form, it automatically has a Hamming weight of 3. All operations can be performed by moving the bit Realize positions and addition or subtraction efficiently.
Gemäß einer vorteilhaften Ausgestaltung ist der Grad d des irreduziblen Polynoms eine Primzahl. Wäre d eine gerade Zahl, so gäbe es eine binomische Formel mit der das irreduzible Polynom reduziert werden könnte. Ist der Grad d eine Primzahl, so lassen sich bekannte Angriffe verhindern, die möglich sind wenn der Grad d keine Primzahl ist.According to an advantageous embodiment, the degree d of the irreducible polynomial is a prime number. If d were an even number, then there would be a binomial formula with which the irreducible polynomial could be reduced. If the degree d is a prime number, known attacks can be prevented, which are possible if the degree d is not a prime number.
Gemäß einer vorteilhaften Ausgestaltung ist die elliptische Kurve durch y2 = x3 + ax + b mit 4a3 + 27b2 ≠ 0 gegeben. Dies stellt keine Einschränkung, das Verfahren ist auch auf andere Kurven anwendbar. Die Bedingung für die Koeffizienten a und b muss gelten, damit die elliptische Kurve keine singulärenAccording to an advantageous embodiment, the elliptic curve is given by y 2 = x 3 + ax + b with 4a 3 + 27b 2 ≠ 0. This is not limiting, the method is also applicable to other curves. The condition for the coefficients a and b must apply, so that the elliptic curve is not singular
Punkte besitzt, da sie sonst für Kryptographieanwendungen untauglich wäre.Points, otherwise it would be unsuitable for cryptography applications.
Gemäß einer vorteilhaften Ausgestaltung ist die elliptische Kurve eine Koblitz-Kurve . Koblitz-Kurven erlauben eine schnelle Skalarmultiplikation mittels des Frobenius Endo- morphismus über dem Körper Fp.According to an advantageous embodiment, the elliptic curve is a Koblitz curve. Koblitz curves allow a fast scalar multiplication by Frobenius endomorphism over the body F p .
Gemäß einer vorteilhaften Ausgestaltung wird die Skalarmul- tiplikation mittels eines Frobenius Endomorphismus in einerAccording to an advantageous embodiment, the scalar multiplication by means of a Frobenius endomorphism in a
Potenzreihendarstellung des Skalars durchgeführt. Die Skalarmultiplikation kann dann als eine Summe von kürzeren Skalar- multiplikationen implementiert werden.Power series representation of the scalar performed. The scalar multiplication can then be implemented as a sum of shorter scalar multiplications.
Gemäß einer vorteilhaften Ausgestaltung werden die Potenzen der Potenzreihe zuvor berechnet und abgespeichert. Die Effizienz des Skalarmultiplikationsalgorithmus kann dadurch weiter gesteigert werden.According to an advantageous embodiment, the powers of the power series are previously calculated and stored. The efficiency of the scalar multiplication algorithm can thereby be further increased.
Gemäß einer vorteilhaften Ausgestaltung wird die Bitlänge der Charakteristik p und der Grad d an den Prozessor, auf dem die Skalarmultiplikation ausgeführt wird, angepasst. Bei einem Prozessor mit einer Wortbreite von 8 Bit kann die Primzahl p
5 bis 6 Bit umfassen, was eine Darstellung von Primzahlen bis 31 ermöglicht. Um eine ausreichende Sicherheit zu ermöglichen muss der Grad d des irreduziblen Polynoms dabei höher gewählt werden, als bei einer Primzahl mit einer größeren Bitlänge. Um einen Körper mit mindestens 160 Bit zu realisieren ist ein Grad von d = 23 oder 29 erforderlich. Bei einem Prozessor mit 16 Bit Wortbreite können Charakteristiken p mit Bitlängen von 12 bis 13 Bit verwendet werden, der Grad des irreduziblen Polynoms kann dann geringer sein, z. B. d = 11.According to an advantageous embodiment, the bit length of the characteristic p and the degree d are adapted to the processor on which scalar multiplication is carried out. For a processor with a word width of 8 bits, the prime p 5 to 6 bits, allowing a representation of primes up to 31. In order to provide sufficient security, the degree d of the irreducible polynomial must be set higher than with a prime number with a larger bit length. To realize a body of at least 160 bits, a degree of d = 23 or 29 is required. For a 16 bit word width processor, characteristics p with bit lengths of 12 to 13 bits may be used, the degree of the irreducible polynomial may then be lower, e.g. B. d = 11.
Gemäß einer vorteilhaften Ausgestaltung wird die Charakteristik p und der Grad d so gewählt, dass die für die Busbreite des Prozessors bereitgestellten Arithmetikoperationen direkt für die Skalarmultiplikation verwendet werden können. Auf diese Weise ist das Speichern von Zwischenergebnissen beiAccording to an advantageous embodiment, the characteristic p and the degree d are chosen so that the arithmetic operations provided for the bus width of the processor can be used directly for scalar multiplication. This saves saving intermediate results
Multiplikationen möglich, ohne dass eine Reduzierung bezüglich der Charakteristik p erforderlich ist. Weiter ist keine Implementierung für eine Langzahlenarithmetik notwendig.Multiplication possible without a reduction in the characteristic p is required. Furthermore, no implementation for a long-number arithmetic is necessary.
Gemäß einer vorteilhaften Ausgestaltung werden Teile der Rechenoperationen der Skalarmultiplikation mittels eines Streaming Single Instruction Multiple Data (SIMD) Extension- Befehlsatzes (SSE) parallel ausgeführt. Durch die Paralleli- sierung und dem Ausnutzen von weiteren, auf der Hardware- Plattform zur Verfügung stehenden Optimierungsmöglichkeiten, lässt sich die erforderliche Rechenzeit auch ohne Koprozesso- ren dramatisch reduzieren.According to an advantageous embodiment, parts of the arithmetic operations of scalar multiplication are executed in parallel by means of a streaming single instruction multiple data (SIMD) extension instruction set (SSE). By parallelizing and exploiting further optimization options available on the hardware platform, the required computation time can be dramatically reduced even without coprocessors.
Erfindungsgemäß werden die oben beschriebenen Verfahren in einer asymmetrischen Kryptographieanwendung eingesetzt. Diese Anwendungen können den Schlüsselaustausch, digitale Signaturen, etc. ermöglichen, wobei die Rechenzeit und die Anforderung an die Hardware auf einem für den Benutzer akzeptablen Niveau liegen.According to the invention, the methods described above are used in an asymmetric cryptography application. These applications may enable key exchange, digital signatures, etc., with the computing time and hardware requirement being at a level acceptable to the user.
Die Erfindung wird nachfolgend an Hand von Ausführungsbeispielen näher erläutert.
Um die Berechnung der Skalarmultiplikation zu beschleunigen, muss eine elliptische Kurve über einem optimalen Erweiterungsfeld und die Feldarithmetik entsprechend der vorhandenen Hardware-Plattform optimiert werden. Dies gelingt durch eine Optimierung bezüglich des Rechenaufwands, der erforderlich ist, wenn der optimale Erweiterungskörper eine der Bedingungen vom Typ 1 bzw. vom Typ 2 nicht erfüllt. Es zeigt sich, dass wenn ein optimaler Erweiterungskörper vom Typ 2 gewählt wird, die daraus folgende nicht-optimale Form bezüglich Typ 1 durch eine geschickte Wahl der Primzahl p ausreichend kompensiert werden kann. Ist dagegen das irreduzible Polynom F(X) nicht optimal, so bedeutet das mehr Rechenaufwand, da sich dieses Polynom bei der Berechnung öfters auswirkt und je nach dem Grad d entsprechend viele Koeffizienten besitzt.The invention will be explained in more detail with reference to exemplary embodiments. To speed up the calculation of scalar multiplication, an elliptic curve over an optimal extension field and field arithmetic must be optimized according to the existing hardware platform. This is achieved by an optimization in terms of the computational effort that is required if the optimal expansion body does not satisfy one of the conditions of type 1 or type 2. It turns out that if an optimal type 2 extender is chosen, the resulting non-optimal shape can be sufficiently compensated for Type 1 by a clever choice of the prime number p. If, on the other hand, the irreducible polynomial F (X) is not optimal, this means more computation effort, since this polynomial has a greater effect on the calculation and correspondingly has many coefficients depending on the degree d.
Um die nicht-optimale Form der Primzahl bezüglich Typ 1 zu kompensieren, wird als Primzahl p daher eine Zahl gewählt, die in binärer Darstellung ein sehr kleines Hamming-Gewicht aufweist. Das kleinste mögliche Hamming-Gewicht, nämlich 3, besitzen Primzahlen der Form p = 2n + 2m + 1. Der zusätzliche Summand 2m wirkt sich weniger schwerwiegend auf die Rechenzeit aus als ein nicht optimales Reduktionspolynom.In order to compensate for the non-optimal form of the prime number with respect to type 1, a number with a very small Hamming weight in binary representation is therefore chosen as the prime number p. The smallest possible Hamming weight, namely 3, has prime numbers of the form p = 2 n + 2 m + 1. The additional summand 2 m has less serious effects on the computational time than a non-optimal reduction polynomial.
Die Primzahl p wird weiter so gewählt, dass möglichst viele Zwischenergebnisse in Registern gehalten werden können, ohne dass man bezüglich der Primzahl p reduzieren muss. Man kann dann ohne große Nachteile bezüglich der Rechenzeit die additive Konstante zulassen, da nur einmal zum Schluss reduziert werden muss.The prime number p is further selected so that as many intermediate results as possible can be kept in registers without having to reduce p with respect to the prime number. You can then allow the additive constant without major disadvantages in terms of the computational time, since only at the end must be reduced.
In den Ausführungsbeispielen wird als Zielplattform ein 32 Bit Pentium 4-Prozessor mit einer SSE2-Einheit benutzt. Damit man ohne Langzahlarithmetik oder Koprozessor auskommt, wird die Bitlänge der Primzahl p zwischen 20 und 30 Bit gewählt. Im Vergleich zur empfohlenen Bitlänge von 160 Bit stellt dies eine Reduzierung um den Faktor fünf bis acht dar.
Das Reduktionspolynom wird zu F(X) = Xd - w gewählt, mit d = 11 und w = 2. Die Primzahl wird zu p = 229 - 29 + 1 mit n = 29, m = 9 und c = 511 gewählt. Die Primzahl p weist somit eine Bitlänge von nur 29 Bit auf.In the embodiments, the target platform used is a 32-bit Pentium 4 processor with an SSE2 unit. In order to do without long-number arithmetic or coprocessor, the bit length of the prime number p is selected between 20 and 30 bits. Compared to the recommended bit length of 160 bits, this represents a reduction by a factor of five to eight. The reduction polynomial is chosen to be F (X) = X d - w, where d = 11 and w = 2. The prime number is chosen to be p = 2 29 - 2 9 + 1 where n = 29, m = 9 and c = 511 , The prime number p thus has a bit length of only 29 bits.
Die in der Definition des optimalen Erweiterungskörpers zur Reduktion notwendiger Multiplikation mit c = 511 kann dann aufgrund des Hamming-Gewichts von 3 sehr effektiv mit den schnellen Operationen bitweise Schieben, Addition und Sub- traktion realisiert werden.The multiplication with c = 511 necessary for the reduction in the definition of the optimal expansion body can then be realized very effectively with the fast operations of bitwise shifting, addition and subtraction because of the Hamming weight of 3.
Durch die Erfindung ist es nun möglich, optimale Erweiterungskörper zu finden, die die Vorteile von Typ 1 und Typ 2 optimalen Erweiterungskörpern vereinen. Die Reduktion von Produktion von Elementen des Primkörpers Fp als auch die Reduktion von Produkten im Polynomring über Fp kann ohne Verwendung von Multiplikationsbefehlen des Prozessors durchgeführt werden. Die Multiplikation mit der additiven Konstante c = + 2m + 1 lässt sich aufgrund des kleinen Hamming-Gewichts durch eine Schiebeoperation und einer Subtraktion bzw. Addition realisieren. Eine Reduktion modulo p lässt sich durch nur vier Schiebeoperationen, zwei Subtraktionen und zwei Additionen realisieren. Weiter lassen sich alle Zwischensummen von Teilprodukten der Koeffizienten der Operanten in einem 64-Bit-Register ohne Überlauf speichern. Die Reduktion modulo p erfolgt ein einziges Mal am Ende der Berechnung der Koeffizienten des Produkts.By means of the invention it is now possible to find optimal expansion bodies which combine the advantages of Type 1 and Type 2 optimal expansion bodies. The reduction of production of elements of the prime F p as well as the reduction of products in the polynomial ring over F p can be performed without the use of multiplication commands from the processor. The multiplication by the additive constant c = + 2 m + 1 can be realized due to the small Hamming weight by a shift operation and a subtraction or addition. A reduction modulo p can be realized by only four shift operations, two subtractions and two additions. Furthermore, all subtotals of partial products of the coefficients of the operands can be stored in a 64-bit register without overflow. The reduction modulo p occurs once at the end of the calculation of the coefficients of the product.
Mithilfe des SSE2 (Streaming SIMD Extension 2) -Assembler- Befehlsatzes von Intel können bei einem Pentium 4-Prozessor Teile der Körperarithmetik über den Körper Fp parallelisiert werden. Das Single Instruction Multiple Data (SIMD) -Konzept und die 128 Bit Register erlauben die gleichzeitige Berechnung von zwei partiellen Produkten, wie in dem folgendem Pro- grammsegment dargestellt ist.Intel's SSE2 (Streaming SIMD Extension 2) Assembler instruction set allows parts of the body arithmetic to be parallelized across the body F p on a Pentium 4 processor. The Single Instruction Multiple Data (SIMD) concept and the 128-bit registers allow the simultaneous calculation of two partial products, as shown in the following program segment.
movd xmmO, [edi] ; load Operand a punpcklqdq xmmO, xmmO ; dublicate Operand a
movdqu xmmβ, [esi] ; load operands b and c pmuludq xmmβ, xmmO ; compute a*b and a*c paddq xmml, xmmβ ; add a*b and a*c to previous resultsmovd xmmO, [edi]; load operand a punpcklqdq xmmO, xmmO; duplicate operand a movdqu xmmβ, [esi]; load operands b and c pmuludq xmmβ, xmmO; compute a * b and a * c paddq xmml, xmmβ; add a * b and a * c to previous results
Das folgende Programmsegment nutzt die geschickte Darstellung von p = 229 - 29 + 1 mit geringem Hamming-Gewicht aus, um gleichzeitig zwei Zwischenergebnisse zu reduzieren:The following program segment uses the clever representation of p = 2 29 - 2 9 + 1 with a low Hamming weight in order to simultaneously reduce two intermediate results:
movdqa xmm7, xmml ; mask both lower 29-bit parts pand xmml, [mask] psrlq xmm7, 29 ; shift upper parts 29-bits right psubq xmml, xmm7 ; subtract psllq xmm7, 9 ; shift upper parts 9-bits left paddq xmml , xmm7 ; addmovdqa xmm7, xmml; mask both lower 29-bit parts pmm xmml, [mask] psrlq xmm7, 29; shift upper parts 29-bits right psubq xmml, xmm7; subtract psllq xmm7, 9; shift upper parts 9-bits left paddq xmml, xmm7; add
movdqa xmmβ, xmml ; repeat the reduction step pand xmml, [mask] psrlq xmmβ, 29 psubq xmml, xmmβ psllq xmmβ, 9 paddq xmml, xmmβmovdqa xmmβ, xmml; repeat reduction step pand xmml, [mask] psrlq xmmb, 29 psubq xmml, xmmb psllq xmmb, 9 paddq xmml, xmmb
mask dd Oxlfffffff, 0x00000000, Oxlfffffff, 0x00000000mask dd Oxlfffffff, 0x00000000, Oxlfffffff, 0x00000000
Mithilfe von SSE2-Befehlen, die auf 4 double words angewandt werden, ist es sogar möglich, bei der Addition und Subtraktion in Fp gleichzeitig 4 Koeffizienten zu berechnen und zu reduzieren .Using SSE2 commands applied to 4 double words, it is even possible to calculate and reduce 4 coefficients simultaneously in addition and subtraction in F p .
Als elliptische Kurve wird eine Koblitz-Kurve mit y2 = x3 + ax + b modulus p mit den Parametern a = 468383287 und b = 63579974 gewählt. Die Koeffizienten a und b wurden zufällig ermittelt und sind vom Grad 0, sodass eine Potenzierung eines Punktes mit p diesen wieder auf der gleichen Kurve abbildet. Auf diese Weise ist es möglich, den Frobenius Endomorphismus für einen sehr schnellen skalaren Multiplikationsalgorithmus einzusetzen. Zur weiteren Beschleunigung werden die dazu er-
forderlichen Potenzen der Zahl 2 vorab berechnet und in Tabellen abgelegt.As an elliptic curve, a Koblitz curve with y 2 = x 3 + ax + b modulus p with the parameters a = 468383287 and b = 63579974 is chosen. The coefficients a and b were determined randomly and are of degree 0, so that exponentiation of a point with p represents this again on the same curve. In this way it is possible to use the Frobenius endomorphism for a very fast scalar multiplication algorithm. For further acceleration, the required powers of the number 2 are calculated in advance and stored in tables.
Die optimalen Erweiterungskörper lassen sich in ähnlicher Weise auch für Hardware-Plattformen mit anderen Busbreiten wählen. Die Primzahl p wird so gewählt, dass man auf der einen Seite ein optimales Reduktionspolynom vom Typ 2, das heißt Xd - 2 , hat und auf der anderen Seite die Primzahl p ein minimales Hamming-Gewicht besitzt, sodass möglichst wenig Summanden in der binären Darstellung vorhanden sind. Für einen 16-Bit-Prozessor weist die Primzahl p zum Beispiel eine Bitlänge von 11 oder 13 Bit auf.The optimal expansion bodies can be similarly selected for hardware platforms with different bus widths. The prime number p is chosen such that on the one hand there is an optimal reduction polynomial of type 2, ie X d - 2, and on the other hand the prime number p has a minimal Hamming weight, so that as few summands as possible in the binary Representation are present. For a 16-bit processor, for example, the prime number p has a bit length of 11 or 13 bits.
Durch den Einsatz der oben dargestellten optimalen Erweite- rungskörper und die geschickte Wahl der Primzahl p wird die Rechenzeit für die Skalarmultiplikation von Punkten auf elliptischen Kurven reduziert, sodass kryptographische Verfahren, die elliptische Kurven über optimale Erweiterungskörpern einsetzen, schneller ausgeführt werden können. Da sich zudem das Verfahren zur Skalarmultiplikation durch eine entsprechende Wahl der Bitlänge der Primzahlen skalierbar ist und somit an unterschiedliche Prozessor-Busbreiten angepasst werden kann, lässt es sich auch auf den unterschiedlichsten Hardware-Plattformen einsetzen. Insbesondere bei Hardware- Plattformen ohne Langzahlarithmetik oder Koprozessor können somit asymmetrische Verfahren auf Basis elliptischer Kurven mit geringen Rechenzeiten eingesetzt werden.
Using the optimal expansion bodies shown above and the skillful choice of the prime number p reduces the computation time for scalar multiplication of points on elliptic curves, so that cryptographic procedures that use elliptic curves over optimal expander bodies can be performed more quickly. In addition, since the method for scalar multiplication can be scaled by an appropriate choice of the bit length of the primes and can thus be adapted to different processor bus widths, it can also be used on a wide variety of hardware platforms. In particular, in hardware platforms without Langzahlarithmetik or coprocessor asymmetric methods based on elliptic curves can be used with low processing times.
Claims
1. Verfahren zur Skalarmultiplikation von Punkten auf einer elliptischen Kurve über einen endlichen Erweiterungskörper K eines Primkörpers Fp mit einer Charakteristik p > 3, wobei die Skalarmultiplikation innerhalb eines kryptographischen Algorithmus für eine Verschlüsselung einer Nachricht, eine Entschlüsselung einer Nachricht, eine Signaturerzeugung aus einer Nachricht oder eine Signatur-Verifikationsberechnung aus einer Nachricht ausgeführt wird, dadurch gekennzeichnet, dass1. A method for scalar multiplication of points on an elliptic curve over a finite extension body K of a prime body F p with a characteristic p> 3, wherein the Skalarultiplikation within a cryptographic algorithm for encryption of a message, a decryption of a message, a signature generation from a message or a signature verification calculation is performed from a message, characterized in that
- die Charakteristik p ein Hamming-Gewicht ≤ 4 aufweist, undthe characteristic p has a Hamming weight ≤ 4, and
- der Erweiterungskörper K in polynomieller Darstellung ein irreduzibles Polynom F(X) = Xd - 2 vom Grad d besitzt.- The extension body K in polynomial representation has an irreducible polynomial F (X) = X d - 2 of degree d.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Charakteristik p ein Hamming-Gewicht von 3 aufweist.2. The method according to claim 1, characterized in that the characteristic p has a Hamming weight of 3.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass die Charakteristik p = 2n + 2m + 1 gewählt wird, wobei n und m natürliche Zahlen sind.3. The method according to claim 2, characterized in that the characteristic p = 2 n + 2 m + 1 is selected, where n and m are natural numbers.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass der Grad d des irreduziblen Polynoms eine Primzahl ist.4. The method according to any one of claims 1 to 3, characterized in that the degree d of the irreducible polynomial is a prime number.
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die elliptische Kurve durch y2 = x3 + ax + b mit 4a3 + 27b2 ≠ 0 gegeben ist.5. The method according to any one of claims 1 to 4, characterized in that the elliptic curve is given by y 2 = x 3 + ax + b with 4a 3 + 27b 2 ≠ 0.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die elliptische Kurve eine Koblitz Kurve ist. 6. The method according to claim 5, characterized in that the elliptic curve is a Koblitz curve.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass die Skalarmultiplikation mittels eines Frobenius Endomorphis- mus in einer Potenzreihendarstellung des Skalars durchgeführt wird.7. The method according to claim 6, characterized in that the scalar multiplication is performed by means of a Frobenius endomorphism in a power series representation of the scalar.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass die Potenzen der Potenzreihe zuvor berechnet und abgespei- chert werden.8. The method according to claim 7, characterized in that the powers of the power series are previously calculated and stored.
9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die Bitlänge der Charakteristik p und der Grad d an den Pro- zessor, auf dem die Skalarmultiplikation ausgeführt wird, an- gepasst ist.9. Method according to one of claims 1 to 8, characterized in that the bit length of the characteristic p and the degree d are adapted to the processor on which the scalar multiplication is carried out.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass die Charakteristik p und der Grad d so gewählt wird, dass die für die Busbreite des Prozessors bereitgestellten Arithmetikoperationen direkt für die Skalarmultiplikation verwendet werden können.10. The method according to claim 9, characterized in that the characteristic p and the degree d is selected such that the arithmetic operations provided for the bus width of the processor can be used directly for scalar multiplication.
11. Verfahren nach Anspruch 9 oder 10, dadurch gekennzeichnet, dass die Charakteristik p und der Grad d so gewählt wird, dass alle Koeffizienten von Zwischenprodukte einer modularen Multiplikation über den Erweiterungskörper ohne Überlauf in einem der Register des Prozessors gespeichert werden können.A method according to claim 9 or 10, characterized in that the characteristic p and the degree d are chosen such that all coefficients of intermediate multiplication products of the modular multiplication can be stored in one of the registers of the processor via the extension body without overflow.
12. Verfahren nach einem der vorigen Ansprüche, dadurch gekennzeichnet, dass12. The method according to any one of the preceding claims, characterized in that
Teile der Rechenoperationen der Skalarmultiplikation mittels eines Streaming Single Instruction Multiple Data Extention Befehlssatzes parallel ausgeführt werden. Parts of the arithmetic operations of the scalar multiplication are carried out in parallel by means of a streaming single instruction multiple data extention instruction set.
13. Verwendung des Verfahren gemäß einem der vorigen Ansprüche in einer asymmetrischen Kryptographieanwendung. 13. Use of the method according to one of the preceding claims in an asymmetric cryptography application.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102005041102A DE102005041102A1 (en) | 2005-08-30 | 2005-08-30 | Method for scalar multiplication of points on an elliptic curve |
PCT/EP2006/064099 WO2007025796A1 (en) | 2005-08-30 | 2006-07-11 | Method for scalarly multiplying points on an elliptic curve |
Publications (1)
Publication Number | Publication Date |
---|---|
EP1920323A1 true EP1920323A1 (en) | 2008-05-14 |
Family
ID=37087755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP06777699A Ceased EP1920323A1 (en) | 2005-08-30 | 2006-07-11 | Method for scalarly multiplying points on an elliptic curve |
Country Status (5)
Country | Link |
---|---|
US (1) | US20090136025A1 (en) |
EP (1) | EP1920323A1 (en) |
CN (1) | CN101253473A (en) |
DE (1) | DE102005041102A1 (en) |
WO (1) | WO2007025796A1 (en) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101527867B1 (en) * | 2007-07-11 | 2015-06-10 | 삼성전자주식회사 | Method of countering side-channel attacks in elliptic curve cryptosystem |
US7991162B2 (en) | 2007-09-14 | 2011-08-02 | University Of Ottawa | Accelerating scalar multiplication on elliptic curve cryptosystems over prime fields |
EP2090978A1 (en) * | 2008-02-15 | 2009-08-19 | Thomson Licensing | An apparatus and a method for calculating a multiple of a point on an elliptic curve |
CN102308326B (en) * | 2008-08-29 | 2014-08-13 | 国立大学法人冈山大学 | Pairing calculation device and pairing calculation method |
DE102008046291B4 (en) * | 2008-09-08 | 2012-02-23 | Siemens Aktiengesellschaft | Efficient storage of cryptographic parameters |
US8139765B2 (en) * | 2008-12-29 | 2012-03-20 | King Fahd University Of Petroleum & Minerals | Elliptical polynomial-based message authentication code |
US10270598B2 (en) | 2016-08-26 | 2019-04-23 | Intel Corporation | Secure elliptic curve cryptography instructions |
EP3573041A4 (en) * | 2017-01-18 | 2020-06-03 | Nippon Telegraph And Telephone Corporation | Secure computation method, secure computation system, secure computation device, and program |
US11075763B2 (en) | 2019-02-15 | 2021-07-27 | International Business Machines Corporation | Compute digital signature authentication sign with encrypted key instruction |
US11303456B2 (en) | 2019-02-15 | 2022-04-12 | International Business Machines Corporation | Compute digital signature authentication sign instruction |
US11108567B2 (en) | 2019-02-15 | 2021-08-31 | International Business Machines Corporation | Compute digital signature authentication verify instruction |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7069287B2 (en) * | 2000-09-19 | 2006-06-27 | Worcester Polytechnic Institute | Method for efficient computation of odd characteristic extension fields |
GB2389678A (en) * | 2002-06-14 | 2003-12-17 | Univ Sheffield | Finite field processor reconfigurable for varying sizes of field. |
US7680268B2 (en) * | 2005-03-15 | 2010-03-16 | Microsoft Corporation | Elliptic curve point octupling using single instruction multiple data processing |
-
2005
- 2005-08-30 DE DE102005041102A patent/DE102005041102A1/en not_active Withdrawn
-
2006
- 2006-07-11 WO PCT/EP2006/064099 patent/WO2007025796A1/en active Application Filing
- 2006-07-11 CN CNA2006800318338A patent/CN101253473A/en active Pending
- 2006-07-11 US US11/991,181 patent/US20090136025A1/en not_active Abandoned
- 2006-07-11 EP EP06777699A patent/EP1920323A1/en not_active Ceased
Non-Patent Citations (1)
Title |
---|
See references of WO2007025796A1 * |
Also Published As
Publication number | Publication date |
---|---|
WO2007025796A1 (en) | 2007-03-08 |
US20090136025A1 (en) | 2009-05-28 |
DE102005041102A1 (en) | 2007-03-15 |
CN101253473A (en) | 2008-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1920323A1 (en) | Method for scalarly multiplying points on an elliptic curve | |
DE102012202015B4 (en) | Apparatus and method for protecting a reference number against differential power analysis attacks and template attacks | |
DE69917592T2 (en) | AGAINST ELECTRICAL CONSUMER STOCK RESISTANT CRYPTOGRAPHY | |
DE69903854T2 (en) | METHOD FOR ACCELERATING CRYPTOGRAPHIC OPERATIONS ON ELLIPTIC CURVES | |
DE102006022960B4 (en) | Method for encrypting input data, cryptographic system and computer program product | |
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 | |
EP1360579B1 (en) | Method and device for conducting modular multiplication and arithmetic-logic unit for conducting modular multiplication | |
DE112007001319T5 (en) | Multiply two numbers | |
DE102010001289B4 (en) | Device for calculating a result of a scalar multiplication | |
DE60204955T2 (en) | MEASURES IN AN ELECTRONIC BUILDING PIECE TO PERFORM A CYPRUS ALGORITHM WITH ELLIPTIC CURVES-BASED PUBLIC KEY | |
EP2771782A1 (en) | Efficient prime-number check | |
DE102005024609A1 (en) | Determination of a modular inverse | |
DE102008051447B9 (en) | Method and apparatus for protecting an RSA calculation on an output using the Chinese Remainder Theorem | |
DE69735290T2 (en) | METHOD OF UNSYMMETRIC CRYPTOGRAPHIC COMMUNICATION AND RELATED ARTICLE | |
EP1499954A2 (en) | Device and method for calculating a result of a modular multiplication | |
DE10151129B4 (en) | Method and device for calculating a result of an exponentiation in a cryptography circuit | |
DE102006025677B4 (en) | Device and method for calculating a result of a sum with an arithmetic unit with a limited word length | |
WO2012065730A1 (en) | Method for long-number division or modular reduction | |
DE102006013989A1 (en) | Method of reducing a polynomial in a binary finite field | |
DE102008050800B4 (en) | Apparatus and method for determining a modular multiplicative inverse | |
EP1506473B1 (en) | Modular inversion that is protected against espionage | |
DE102012210354B3 (en) | Method for computer-aided generation of cryptographic data by e.g. smart card based on elliptic curve, involves transforming projective representations of x-coordinate of point of curve to other representations by preset equations | |
DE10156708B4 (en) | Method and apparatus for multiplying and method and apparatus for adding on an elliptic curve | |
EP1518165B1 (en) | Computation of a multiple of a group element for cryptographic purposes | |
WO2003093970A2 (en) | Device and method for calculating an integer quotient |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20071126 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR |
|
17Q | First examination report despatched |
Effective date: 20090714 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED |
|
18R | Application refused |
Effective date: 20100608 |