FR3010562A1 - DATA PROCESSING METHOD AND ASSOCIATED DEVICE - Google Patents

DATA PROCESSING METHOD AND ASSOCIATED DEVICE Download PDF

Info

Publication number
FR3010562A1
FR3010562A1 FR1358712A FR1358712A FR3010562A1 FR 3010562 A1 FR3010562 A1 FR 3010562A1 FR 1358712 A FR1358712 A FR 1358712A FR 1358712 A FR1358712 A FR 1358712A FR 3010562 A1 FR3010562 A1 FR 3010562A1
Authority
FR
France
Prior art keywords
point
operations
doubling
elliptic curve
galois
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.)
Granted
Application number
FR1358712A
Other languages
French (fr)
Other versions
FR3010562B1 (en
Inventor
Franck Rondepierre
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Idemia France SAS
Original Assignee
Oberthur Technologies SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oberthur Technologies SA filed Critical Oberthur Technologies SA
Priority to FR1358712A priority Critical patent/FR3010562B1/en
Publication of FR3010562A1 publication Critical patent/FR3010562A1/en
Application granted granted Critical
Publication of FR3010562B1 publication Critical patent/FR3010562B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Abstract

L'invention concerne un procédé de traitement, de préférence cryptographique, de données, par exemple mis en œuvre au sein d'une entité électronique, et un dispositif associé. Il est proposé l'utilisation d'un bloc atomique unique permettant l'exécution d'une addition ou d'un doublement sans répétition du bloc. Ce bloc servant à la multiplication d'un point d'une courbe elliptique par un scalaire et préférentiellement à l'addition de deux multiplications d'un point par un scalaire. Ainsi, une implémentation sécurisée et particulièrement efficace de ces opérations est obtenue.The invention relates to a method of processing, preferably cryptographic, data, for example implemented within an electronic entity, and an associated device. It is proposed the use of a single atomic block allowing the execution of an addition or a doubling without repetition of the block. This block serves to multiply a point of an elliptic curve by a scalar and preferably to the addition of two multiplications of a point by a scalar. Thus, a secure and particularly efficient implementation of these operations is obtained.

Description

L'invention concerne un procédé de traitement, de préférence cryptographique, de données, par exemple mis en oeuvre au sein d'une entité électronique, et un dispositif associé (par exemple cette entité électronique). Beaucoup de systèmes cryptographiques ont été bâtis sur la difficulté de résoudre le problème du logarithme discret dans de grands groupes ou sous-groupes associés à une courbe elliptique. Cette solution est maintenant largement adoptée par les gouvernements et les standards. Dans ces systèmes, la clé secrète est un scalaire choisi aléatoirement tandis que la clé publique correspondante est un multiple d'un point donné par ce scalaire. Une attention particulière est donc portée sur l'implémentation de la multiplication d'un point de la courbe par un scalaire, tant du point de vue de l'efficacité que de celui de la sécurité.The invention relates to a method of processing, preferably cryptographic, data, for example implemented within an electronic entity, and an associated device (for example this electronic entity). Many cryptographic systems have been built on the difficulty of solving the discrete logarithm problem in large groups or subgroups associated with an elliptic curve. This solution is now widely adopted by governments and standards. In these systems, the secret key is a randomly chosen scalar while the corresponding public key is a multiple of a given point by this scalar. Special attention is therefore paid to the implementation of the multiplication of a point of the curve by a scalar, both from the point of view of efficiency and that of security.

Ces calculs sont utilisés, entre autres, pour le chiffrement et le déchiffrement de messages, la signature d'un message, la mise en accord de clé, la mise en accord de clés à base de mots de passe. Pour mettre en pratique ces traitements, de manière générale dans une entité électronique, on utilise une représentation particulière des points de la courbe elliptique au moyen par exemple d'une pluralité d'éléments d'un corps de Galois (formant les coordonnées du point), telle que par exemple la représentation projective jacobienne (représentation par un triplet de points du corps de Galois Fp) ou une représentation projective jacobienne modifiée (au moyen de quatre éléments ou coordonnées du corps de Galois Fp), comme décrit par exemple dans l'article "Efficient elliptic curve exponentiation using mixed coordinate" de H. Cohen, T. Ono, and A. Miyaji, in K. Ohta and P.These calculations are used, among other things, for message encryption and decryption, message signing, key matching, password-based key matching. To put these treatments into practice, generally in an electronic entity, a particular representation of the points of the elliptic curve is used, for example by means of a plurality of elements of a Galois body (forming the coordinates of the point). , such as for example the jacobian projective representation (representation by a triplet of points of the Galois body Fp) or a modified jacobian projective representation (by means of four elements or coordinates of the Galois body Fp), as described for example in the "Coefficient elliptic curve exponentiation using mixed coordinate" from H. Cohen, T. Ono, and A. Miyaji, in K. Ohta and P.

Dinggyi, editors, Advances in Cryptology - ASIACRYPT '98, volume 1514 of Lecture Notes in Computer Science, pages 51-65. Springer, 1998. Les opérations sur la courbe elliptique se ramènent alors en effet à des opérations dans le corps de Galois IFp. Ainsi par exemple une addition ou un doublement sur la courbe elliptique (opérations qui permettent par composition de réaliser la multiplication par un scalaire sur la courbe elliptique comme décrit par exemple dans l'article précité) sont réalisés par la mise en oeuvre d'opérations dans le corps de Galois IFp sur les coordonnées du ou des points concernés (ces opérations dans le corps de Galois devant typiquement résulter en des additions, des soustractions, des multiplications et des élévations à une puissance 2, 3 ou 4). Afin de se protéger des attaques par canal auxiliaire (en anglais "Side Channel Attacks") telles que l'observation de la consommation énergétique de l'entité électronique afin de tenter de déterminer les opérations qui y sont mises en oeuvre, il a été proposé de réaliser les opérations susmentionnées dans le corps de Galois parmi un ensemble plus large d'opérations, dont certaines sont par conséquent factices, de telle sorte que la suite des types d'opérations successives forme une répétition périodique d'un nombre de types prédéterminé, et ce, quelle que soit l'opération sur la courbe elliptique concernée. Cette technique est décrite de manière générale dans la demande de brevet FR 2 838 210 et dans son application aux courbes elliptiques dans l'article "Low-cost Solutions for Preventing Simple Side- Channel Analysis : Side-Channel Atomicity' de B. Chevallier-Mames, M. Ciet, and M. Joye, IEEE Transactions on Computers, 53(6) : 760-768, 2004 (voir également "Aspects of Fast and Secure Arithmetics for Elliptic Curve Cryptography' de M. Ciet, thèse de doctorat, Université catholique de Louvain, juin 2003).Dinggyi, editors, Advances in Cryptology - ASIACRYPT '98, volume 1514 of Lecture Notes in Computer Science, pages 51-65. Springer, 1998. Operations on the elliptic curve are then reduced to operations in Galois IFp's body. Thus, for example, an addition or a doubling of the elliptic curve (operations which make it possible, by composition, to perform the multiplication by a scalar on the elliptic curve as described for example in the aforementioned article) are carried out by carrying out operations in the Galois body IFp on the coordinates of the point or points concerned (these operations in the Galois body must typically result in additions, subtractions, multiplications and elevations to a power 2, 3 or 4). In order to protect against Side Channel Attacks such as observing the energy consumption of the electronic entity in order to try to determine the operations that are implemented there, it has been proposed performing the aforementioned operations in the Galois body among a larger set of operations, some of which are therefore dummy, such that the sequence of successive operation types forms a periodic repetition of a predetermined number of types, and this, whatever the operation on the elliptic curve concerned. This technique is generally described in the patent application FR 2 838 210 and in its application to elliptic curves in the article "Low-cost Solutions for Preventing Single Side Channel Analysis: Side-Channel Atomicity" by B. Chevallier- Mames, M. Ciet, and M. Joye, IEEE Transactions on Computers, 53 (6): 760-768, 2004 (see also "Aspects of Fast and Secure Arithmetics for Elliptic Curve Cryptography" by M. Ciet, Ph.D. thesis, Catholic University of Louvain, June 2003).

Dans cet article, on propose ainsi de mettre en oeuvre la répétition d'un bloc élémentaire d'instructions destinées à un processeur (dit bloc atomique) formé par la succession d'une multiplication, d'une addition, d'une opposition et d'une nouvelle addition (toutes ces opérations étant considérées dans le corps de Galois IFp). Comme déjà indiqué, quelle que soit l'opération (doublement ou addition) réalisée sur la courbe elliptique, cette opération est mise en oeuvre pratiquement dans l'entité électronique par la répétition de blocs élémentaires du même type (10 blocs dans le cas du doublement et 16 blocs dans le cas de l'addition), les données manipulées variant par contre d'un bloc élémentaire à l'autre.In this article, we propose to implement the repetition of an elementary block of instructions for a processor (called atomic block) formed by the succession of a multiplication, addition, opposition and a new addition (all these operations being considered in the IFp Galois body). As already indicated, whatever the operation (doubling or addition) performed on the elliptic curve, this operation is practically implemented in the electronic entity by the repetition of elementary blocks of the same type (10 blocks in the case of doubling and 16 blocks in the case of addition), the manipulated data varying from one elementary block to another.

Cette solution implique l'utilisation d'opérations factices au sein des blocs atomiques. La multiplication dans le corps de Galois, appelée multiplication modulaire, a typiquement une durée d'exécution nettement supérieure à celle de l'addition ou de la négation dans ce même corps. Les opérations factices peuvent être limitées à des additions et à des négations dont le temps d'exécution est considéré comme négligeable au regard de la multiplication. Cette solution est également basée sur le fait que lors d'une multiplication d'un point de la courbe par un scalaire un plus grand nombre de doublements de points est effectué que d'additions de points. L'implémentation du doublement est donc privilégiée par rapport à celui de l'addition. Ces suppositions s'avèrent avoir un impact non négligeable sur l'efficacité de cette solution. La présente invention a pour but de résoudre les inconvénients précités. Elle propose l'utilisation d'un bloc atomique unique permettant l'exécution d'une addition ou d'un doublement sans répétition du bloc. L'invention concerne une entité électronique de traitement cryptographique de données comprenant des moyens de traitement aptes à déterminer, à partir d'au moins un premier point sur une courbe elliptique représenté au moyen d'au moins trois premiers éléments d'un corps de Galois, un second point sur la courbe elliptique représenté au moyen d'au moins trois seconds éléments du corps de Galois, chacun des seconds éléments étant obtenus à partir des premiers éléments au moyen d'un ensemble d'opérations dans le corps de Galois, lesdits moyens de traitement comprenant : au moins une opération d'addition de deux points de la courbe elliptique réalisée par l'exécution d'une premiere séquence d'opérations successives dans le corps de Galois; au moins une opération de doublement d'un point de la courbe elliptique réalisée par l'exécution d'une seconde séquence d'opérations successives dans le corps de Galois; les opérations dans le corps de Galois ayant chacune un type, la premiere séquence d'opérations successives et la seconde séquence d'opérations successives sont constitués d'un même nombre d'opérations, deux opérations de même rang dans la séquence ont le même type dans les deux séquences.This solution involves the use of dummy operations within the atomic blocks. The multiplication in the Galois body, called modular multiplication, typically has a duration of execution much greater than that of the addition or the negation in this same body. The dummy operations can be limited to additions and negations whose execution time is considered negligible with regard to multiplication. This solution is also based on the fact that during a multiplication of a point of the curve by a scalar a greater number of doublings of points is made than additions of points. The implementation of the doubling is therefore preferred over that of the addition. These assumptions appear to have a significant impact on the effectiveness of this solution. The present invention aims to solve the aforementioned drawbacks. It proposes the use of a single atomic block allowing the execution of an addition or a doubling without repetition of the block. The invention relates to an electronic cryptographic data processing entity comprising processing means able to determine, from at least a first point on an elliptic curve represented by means of at least three first elements of a Galois body. a second point on the elliptic curve represented by means of at least three second elements of the Galois body, each of the second elements being obtained from the first elements by means of a set of operations in the Galois body, said processing means comprising: at least one addition operation of two points of the elliptical curve performed by executing a first sequence of successive operations in the Galois body; at least one operation of doubling a point of the elliptic curve realized by the execution of a second sequence of successive operations in the Galois body; the operations in the Galois field each having a type, the first sequence of successive operations and the second sequence of successive operations consist of the same number of operations, two operations of the same rank in the sequence have the same type in both sequences.

Ainsi le surcoût lié à l'appel des blocs atomiques est minimisé du fait qu'un seul bloc atomique est appelé pour réaliser une addition où un doublement. Un bon niveau de performance est également offert du fait qu'il nécessite beaucoup moins d'opérations factices qu'un mode de réalisation basé sur l'appel successif de petits blocs atomiques.Thus the extra cost related to the call of the atomic blocks is minimized because only one atomic block is called to perform an addition where a doubling. A good level of performance is also offered because it requires far fewer dummy operations than an embodiment based on the successive call of small atomic blocks.

Selon un mode de réalisation particulier, lesdits trois premiers éléments sont des coordonnées jacobiennes du premier point. Selon un mode de réalisation particulier, lesdits trois seconds éléments 25 sont des coordonnées jacobiennes du second point. Selon un mode de réalisation particulier, le second point est le produit du premier point par un entier. 30 Selon un mode de réalisation particulier, la courbe elliptique a pour équation projective jacobienne de Weierstrass Y2 = X3 + aXZ4 + bZ6, où a et b sont des éléments du corps de Galois et (4a3 + 27b2) # O.According to a particular embodiment, said first three elements are Jacobian coordinates of the first point. According to a particular embodiment, said three second elements 25 are Jacobian coordinates of the second point. According to a particular embodiment, the second point is the product of the first point by an integer. According to a particular embodiment, the elliptic curve has the Jacobian projective equation of Weierstrass Y2 = X3 + aXZ4 + bZ6, where a and b are elements of the Galois body and (4a3 + 27b2) # O.

Selon un mode de réalisation particulier, une opération d'addition de deux points de la courbe elliptique intervenant toujours après une opération de doublement d'un point de la courbe elliptique, au moins une opération dans le corps de Galois servant au calcul de l'opération d'addition de deux points de la courbe elliptique est intégrée au sein de la seconde séquence d'opérations successives dans le corps de Galois servant à réaliser l'opération de doublement d'un point de la courbe elliptique.According to a particular embodiment, an operation of adding two points of the elliptic curve always taking place after a doubling operation of a point of the elliptic curve, at least one operation in the Galois body serving to calculate the elliptic curve. The two-point addition operation of the elliptic curve is integrated within the second sequence of successive operations in the Galois body used to perform the doubling operation of a point of the elliptic curve.

Ainsi, le nombre d'opérations nécessaire est minimisé. Selon un mode de réalisation particulier, l'addition d'un point P = (X :Y : Z) et d'un point Q = (Xq : Yq :1) donne le point P + Q = (X3 : Y3 : Z3) ; le doublement d'un point P = (X :Y : Z) donne le point 2 - P = (X3 : Y3 : Z3) ; les premier et second séquences d'opérations successives dans le corps de Galois sont les suivants : 25 30 Addition Ro <- Z2 * <- * + * R1 <- (-Xq) - Ro R1 <- X + Ri R3 <- (-Yq) - Ro R2 <- Ri Ro <- Z3 - R3 R3 <- Z3 - R1 Z3 <- R1 - R2 R1 <- X - R2 R2 <- R1 + R1 Ro <- Ro + Y3 * <- * + * X3 -RO R2 <- R2 Z3 X3 -X3 R2 R1 <- R1 - X3 R2 <- Y - Z3 Y3 <- Ro - R1 173 <_ 173 _ R2 _Z3 <- R3 Doublement Ro <- Z2 R1 <- Y + Y R2 <- R1 - Y Y2 <- R2 + R2 R3 <- R1 - Z Z2 -X2 R1 <- Y2 - R2 R2 <- Y2 - X X2 <- a - Ro Y2 <- X2 - RO Ro <- Z2 + Z2 X2 <- Ro + Z2 Ro <- X2 + Y2 X2 <- Rî) X2 <- X2 - R2 X2 <- X2 - R2 Z2 <- R2 - X2 * <- * - * Y2 <- RO - Z2 Y2 <- Y2 R1 -Z2 <- R3 Selon un mode de réalisation particulier, l'addition d'un point P = (X :Y :Z : Z2 : Z3) et d'un point Q = (Xq : Yq : 1) donne le point P + Q = (X3 :Y3 :Z3 :4); le doublement d'un point P = (X :Y :Z : Z2 ) donne le point 2 - P = (X2 :Y2 : Z2: 4: ZD; les premier et second séquences d'opérations successives dans le corps de Galois sont les suivants : 15 Addition Doublement -R1 <- Xq - Z2 Ro <- I - Z2 R1 <- R1 - X R1 <- X - Ro * <- * + * R2 <- Y + Y R2 <- R1 - R1 4 <- Y - R2 * <- * + * Y2<-Z2+ZZ R3 <- X - R2 R3 <- R2 - Z Ro <- Yq - Z3 R2 <- Y2 - X * <- * + * X2 <- X2 + Ro Z3 <- R1 - R2 Ro <- R1 - X2 R2 <- Z - R1 R1 <- Z - Y2 X3 <- R3 + R3 X2 <- Ro + Ro X3 <- Z3 + X3 Ro <- Ro + X2 4 <- Rj X2 <- 4 Ro <- Ro - Y X2 <- X2 - R2 R1 <- 4 - Rî X3 <- R1 X3 X2 <- X2 - R2 R1 <- R3 X3 R2 <- R2 X2 R3 <- R1 - Ro 4 <- 4 - R3 Ro <- Y3 - Z3 Y2 <- Ro - R2 Y3 <- R3 - Ro Y2 <- Y2 R1 _Z3 <- R2 -Z2 <- R3 Selon un mode de réalisation particulier, la valeur du paramètre a de l'équation projective jacobienne de Weierstrass étant nulle : l'addition d'un point P = (X :Y : Z : Z2 : Z3) et d'un point Q = (Xq : Yq : 1) donne le point P + Q = (X3 :Y3 :Z3 ); le doublement d'un point P = (X :Y : Z ) donne le point 2 - P = (X2 :Y2 :Z2:Zj:Z2); les premier et second séquences d'opérations successives dans le corps de Galois sont les suivants :15 Addition -* <- * + * Ro <- (-Xq) - Z2 R1 <- X + Ro R2 <- Ri Ro <- X - R2 R3 <- Z - R1 X3 <- (-Yq) - Z3 Z3 <- R2 - R1 R1 <- Ro + Ro R2 <- Y + X3 X3 <- Rj R1 <- R1 - Z3 X3 <- X3 R1 Ro <- Ro - X3 R1 <- Y - Z3 Y3 <- Ro - R2 173 <_ 173 _ R1 _Z3 <- R3 Doublement -Ro <- Y + Y R1 <- Ro - Y Y2 <- Ri + Ri R2 <- X2 R3 <- Ro - Z Z2 <- Y2 - X Ro <- Ri - Y2 Zj <- R3 - R3 R1 <- R2 + R2 R1 <- R1 + R2 X2 <- Ri X2 <- X2 Z2 X2 <- X2 Z2 Z2 <- Z2 X2 4 <- 4 - R3 Y2 <- R1 - Z2 Y2 <- Y2 RO _Z2 <- R3 L'invention concerne également un procédé de traitement cryptographique de données mis en oeuvre au sein d'une entité électronique, dans lequel on détermine, à partir d'un premier point sur une courbe elliptique représenté au moyen d'au moins trois premiers éléments d'un corps de Galois, un second point sur la courbe elliptique représenté au moyen d'au moins trois seconds éléments du corps de Galois, chacun des seconds éléments étant obtenus à partir des premiers éléments au moyen d'un ensemble d'opérations dans le corps de Galois, ledit procédé comprenant : au moins une opération d'addition de deux points de la courbe elliptique réalisée par l'exécution d'une premiere séquence d'opérations successives dans le corps de Galois; au moins une opération de doublement d'un point de la courbe elliptique réalisée par l'exécution d'une seconde séquence d'opérations successives dans le corps de Galois; caractérisé en ce que : les opérations dans le corps de Galois ayant chacune un type, la premiere séquence d'opérations successives et la seconde séquence d'opérations successives sont constitués d'un même nombre d'opérations, deux opérations de même rang dans la séquence ont le même type dans les deux séquences. Selon un mode de réalisation particulier du procédé, une opération d'addition de deux points de la courbe elliptique intervenant toujours après une opération de doublement d'un point de la courbe elliptique, au moins une opération dans le corps de Galois servant au calcul de l'opération d'addition de deux points de la courbe elliptique est intégrée au sein de la seconde séquence d'opérations successives dans le corps de Galois servant à réaliser l'opération de doublement d'un point de la courbe elliptique.Thus, the necessary number of operations is minimized. According to a particular embodiment, the addition of a point P = (X: Y: Z) and a point Q = (Xq: Yq: 1) gives the point P + Q = (X3: Y3: Z3 ); doubling a point P = (X: Y: Z) gives the point 2 - P = (X3: Y3: Z3); the first and second sequences of successive operations in the Galois body are the following: Addition Ro <- Z2 * <- * + * R1 <- (-Xq) - Ro R1 <- X + Ri R3 <- ( -Yq) - Ro R2 <- Ri Ro <- Z3 - R3 R3 <- Z3 - R1 Z3 <- R1 - R2 R1 <- X - R2 R2 <- R1 + R1 Ro <- Ro + Y3 * <- * + ## STR2 ## R3 <X3 R2 <R1 <X3 R2 <- Y3 Z3 Y3 <- Ro - R1 173 <_ 173 _ R2 _Z3 <- R3 Doubling Ro <- Z2 R1 <- Y + Y R2 <- R1 - Y Y2 <- R2 + R2 R3 <- R1 - Z Z2 -X2 R1 <- Y2 - R2 R2 <- Y2 - X X2 <- a - Ro Y2 <- X2 - RO Ro <- Z2 + Z2 X2 <- Ro + Z2 Ro <- X2 + Y2 X2 <- R1) X2 <- X2 - R2 X2 <- X2 - R2 Z2 <- R2 - X2 * <- * - * Y2 <- RO - Z2 Y2 <- Y2 R1 -Z2 <- R3 According to a particular embodiment, the addition of a point P = (X: Y: Z: Z2: Z3) and a point Q = (Xq: Yq: 1 ) gives the point P + Q = (X3: Y3: Z3: 4); the doubling of a point P = (X: Y: Z: Z2) gives the point 2 - P = (X2: Y2: Z2: 4: ZD, the first and second sequences of successive operations in the Galois body are the following: Addition Doubling -R1 <- Xq - Z2 Ro <- I - Z2 R1 <- R1 - X R1 <- X - Ro * <- * + * R2 <- Y + Y R2 <- R1 - R1 4 <- Y - R2 * <- * + * Y2 <-Z2 + ZZ R3 <- X - R2 R3 <- R2 - Z Ro <- Yq - Z3 R2 <- Y2 - X * <- * + * X2 <- X2 + Ro Z3 <- R1 - R2 Ro <- R1 - X2 R2 <- Z - R1 R1 <- Z - Y2 X3 <- R3 + R3 X2 <- Ro + Ro X3 <- Z3 + X3 Ro <- Ro + X2 <- R1 X2 <- 4 Ro <- Ro - Y X2 <- X2 - R2 R1 <- 4 - R1 X3 <- R1 X3 X2 <- X2 - R2 R1 <- R3 X3 R2 <- R2 X2 R3 < - R1 - Ro 4 <- 4 - R3 Ro <- Y3 - Z3 Y2 <- Ro - R2 Y3 <- R3 - Ro Y2 <- Y2 R1 _Z3 <- R2 -Z2 <- R3 According to one particular embodiment, the value of the parameter a of the Jacobian projective equation of Weierstrass being zero: the addition of a point P = (X: Y: Z: Z2: Z3) and a point Q = (Xq: Yq: 1) gives the point P + Q = (X3: Y3: Z3); the doubling from a point P = (X: Y: Z) gives the point 2 - P = (X2: Y2: Z2: Zj: Z2); the first and second sequences of successive operations in the Galois body are the following: Addition - * <- * + * Ro <- (-Xq) - Z2 R1 <- X + Ro R2 <- Ri Ro <- X - R2 R3 <- Z - R1 X3 <- (-Yq) - Z3 Z3 <- R2 - R1 R1 <- Ro + Ro R2 <- Y + X3 X3 <- R1 R1 <- R1 - Z3 X3 <- X3 R1 ## STR2 ## R1 <Z3 <- R3 Doubling -Ro <- Y + Y R1 <- Ro - Y Y2 <- Ri + Ri R2 < - X2 R3 <- Ro - Z Z2 <- Y2 - X Ro <- R1 - Y2 Z1 <- R3 - R3 R1 <- R2 + R2 R1 <- R1 + R2 X2 <- R1 X2 <- X2 Z2 X2 <- X2 Z2 Z2 <- Z2 X2 4 <- 4 - R3 Y2 <- R1 - Z2 Y2 <- Y2 RO _Z2 <- R3 The invention also relates to a method for the cryptographic processing of data implemented within an electronic entity wherein a first point on the elliptic curve represented by at least three seconds is determined from a first point on an elliptical curve represented by at least three first elements of a Galois body. Ga's body elements laws, each of the second elements being obtained from the first elements by means of a set of operations in the Galois body, said method comprising: at least one operation of adding two points of the elliptical curve produced by the execution of a first sequence of successive operations in the Galois body; at least one operation of doubling a point of the elliptic curve realized by the execution of a second sequence of successive operations in the Galois body; characterized in that: the operations in the Galois field each having a type, the first sequence of successive operations and the second sequence of successive operations consist of the same number of operations, two operations of the same rank in the sequences have the same type in both sequences. According to a particular embodiment of the method, a two-point addition operation of the elliptic curve always taking place after a doubling operation of a point of the elliptic curve, at least one operation in the Galois body serving for the calculation of the operation of adding two points of the elliptic curve is integrated within the second sequence of successive operations in the Galois body used to perform the operation of doubling a point of the elliptic curve.

D'autres particularités et avantages de l'invention apparaîtront encore dans la description ci-après, illustrée par les dessins ci-joints, dans lesquels : - la figure 1 représente schématiquement les éléments principaux d'une forme de réalisation possible pour une carte à microcircuit ; - la figure 2 représente l'allure physique générale de la carte à microcircuit de la figure 1 ; - la figure 3 illustre l'algorithme de gauche à droite du calcul de la multiplication d'un point de la courbe par un scalaire ; - la figure 4 illustre l'algorithme de calcul de l'addition de deux multiplication de point par des scalaire selon l'astuce de Shamir ; - la figure 5 illustre un premier exemple de bloc atomique selon l'invention ; - la figure 6 illustre un second exemple de bloc atomique selon l'invention ; - la figure 7 illustre un troisième exemple de bloc atomique selon l'invention.Other features and advantages of the invention will become apparent in the following description, illustrated by the accompanying drawings, in which: - Figure 1 shows schematically the main elements of a possible embodiment for a card to microcircuit; FIG. 2 represents the general physical appearance of the microcircuit card of FIG. 1; FIG. 3 illustrates the left-to-right algorithm for calculating the multiplication of a point of the curve by a scalar; FIG. 4 illustrates the algorithm for calculating the addition of two point multiplications by scalars according to Shamir's trick; FIG. 5 illustrates a first example of an atomic block according to the invention; FIG. 6 illustrates a second example of an atomic block according to the invention; FIG. 7 illustrates a third example of an atomic block according to the invention.

La figure 1 représente schématiquement un dispositif de traitement de données 40 dans lequel la présente invention est mise en oeuvre. Ce dispositif 40 comprend un microprocesseur 10, auquel est associée d'une part une mémoire vive 60, par exemple au moyen d'un bus 70, et d'autre part une mémoire non volatile 20 (par exemple du type EEPROM), par exemple à travers un bus 50.Figure 1 schematically shows a data processing device 40 in which the present invention is implemented. This device 40 comprises a microprocessor 10, to which is associated on the one hand a random access memory 60, for example by means of a bus 70, and on the other hand a non-volatile memory 20 (for example of the EEPROM type), for example through a bus 50.

Le dispositif de traitement de données 40, et précisément le microprocesseur 10 qu'il incorpore, peuvent échanger des données avec des dispositifs extérieurs au moyen d'une interface de communication 30. On a schématiquement représenté sur la figure 1 la transmission d'une donnée d'entrée X reçue d'un dispositif extérieur (non représenté) et transmise de l'interface de communication 30 au microprocesseur 10. De manière similaire, on a représenté la transmission d'une donnée de sortie Y du microprocesseur 10 vers l'interface de communication 30 à destination d'un dispositif extérieur. Cette donnée de sortie Y est issue d'un traitement de données par le microprocesseur 10, généralement sur la donnée d'entrée X à l'aide d'une donnée secrète 80 interne au système, par exemple une clé privée. Bien que, pour l'illustration, les données d'entrée et les données de sortie figurent sur deux flèches différentes, les moyens physiques qui permettent la communication entre le microprocesseur 10 et l'interface 30 pourront être réalisés par des moyens uniques, par exemple un port de communication série ou un bus. Le microprocesseur 10 est apte à exécuter un logiciel (ou programme d'ordinateur) qui permet au dispositif de traitement de données 40 d'exécuter un procédé conforme à l'invention dont des exemples sont donnés dans la suite. Le logiciel est composé d'une série d'instructions de commande du microprocesseur 10 qui sont par exemple stockées dans la mémoire 20. En variante, l'ensemble microprocesseur 10 - mémoire non-volatile 20 - mémoire vive 60 peut être remplacé par un circuit à application spécifique qui comprend alors des moyens de mise en oeuvre des différentes étapes du procédé de traitement de données. La figure 2 représente une carte à microcircuit qui constitue un exemple de dispositif de traitement de données conforme à l'invention tel que représenté à la figure 1. L'interface de communication 30 est dans ce cas réalisée au moyen des contacts de la carte à microcircuit. La carte à microcircuit incorpore un microprocesseur 10, une mémoire vive 60 et une mémoire non volatile 20 comme cela est représenté sur la figure 1.The data processing device 40, and precisely the microprocessor 10 that it incorporates, can exchange data with external devices by means of a communication interface 30. FIG. 1 schematically shows the transmission of data input X received from an external device (not shown) and transmitted from the communication interface 30 to the microprocessor 10. Similarly, there is shown the transmission of an output data Y of the microprocessor 10 to the interface communication device 30 to an external device. This output data Y is derived from a data processing by the microprocessor 10, generally on the input data X using a secret datum 80 internal to the system, for example a private key. Although, for the illustration, the input data and the output data appear on two different arrows, the physical means which allow the communication between the microprocessor 10 and the interface 30 may be made by unique means, for example a serial communication port or a bus. The microprocessor 10 is capable of executing software (or computer program) which enables the data processing device 40 to execute a method according to the invention, examples of which are given hereinafter. The software consists of a series of instructions for controlling the microprocessor 10 which are for example stored in the memory 20. In a variant, the microprocessor assembly 10 - non-volatile memory 20 - random access memory 60 may be replaced by a circuit specific application which then comprises means for implementing the various steps of the data processing method. FIG. 2 represents a microcircuit card which constitutes an example of a data processing device according to the invention as represented in FIG. 1. The communication interface 30 is in this case realized by means of the contacts of the card to microcircuit. The microcircuit card incorporates a microprocessor 10, a random access memory 60 and a non-volatile memory 20 as shown in FIG.

Cette carte à microcircuit est par exemple conforme à la norme ISO 7816 et munie d'un microcontrôleur sécurisé qui regroupe le microprocesseur (ou CPU) 20 et la mémoire vive 60.This microcircuit card is for example compliant with the ISO 7816 standard and provided with a secure microcontroller which groups together the microprocessor (or CPU) 20 and the random access memory 60.

En variante, le dispositif de traitement de données peut être une clef USB, un document ou un support d'informations papier comportant dans l'une de ses feuilles un microcircuit associé à des moyens de communication sans contact. Il s'agit de manière préférée d'une entité électronique portable ou de poche. Il peut également s'agir d'un circuit dédié à la sécurité (secure element en anglais) pouvant être intégré directement au sein d'un appareil, par exemple soudé dans un téléphone mobile. Le présent mode de réalisation est basé sur une courbe elliptique E définie sur un corps de Galois IFp, pour un grand nombre premier p > 3 définie par l'équation de Weierstrass courte : y2 = x3 + ax + b (1) avec x, y, a, b E IFp et (4a3 + 27b2) # 0. Du point de vue de l'implémentation, la meilleure représentation des courbes de Weierstrass est la projection jacobienne d'équation : Y2 = X3 + aXZ4 + bZ6 (2) ayant pour point neutre 0 = (1: 1: 0). Dans cette représentation le double d'un point P = (X: Y: Z) est le point 2.P = (X2: Y2: Z2) tel que : {X2 = A2 - 2C A = 3X2 + aZ4 Z2 = 2YZ C = 2B X Y2 = A(C - X2) - D avec B = 2Y2 D = 2B2 (3) Plusieurs opérations dans le corps de Galois IFp sont nécessaires pour évaluer cette formule. Il s'agit de mises au carré (dénotées S), de multiplications (dénotées M), d'additions et de soustractions (dénotées A). L'évaluation d'un tel doublement requiert typiquement 4S + 6M + 9A ou 6S + 4M + 11A, selon les modes de calcul.Alternatively, the data processing device may be a USB key, a document or a paper information carrier having in one of its sheets a microcircuit associated with contactless communication means. This is preferably a portable or pocket electronic entity. It can also be a circuit dedicated to security (secure element in English) can be integrated directly within a device, for example welded in a mobile phone. The present embodiment is based on an elliptic curve E defined on a Galois field IFp, for a large prime number p> 3 defined by the short Weierstrass equation: y2 = x3 + ax + b (1) with x, y, a, b E IFp and (4a3 + 27b2) # 0. From the point of view of implementation, the best representation of the Weierstrass curves is the Jacobian equation projection: Y2 = X3 + aXZ4 + bZ6 (2) having neutral point 0 = (1: 1: 0). In this representation the double of a point P = (X: Y: Z) is the point 2.P = (X2: Y2: Z2) such that: {X2 = A2 - 2C A = 3X2 + aZ4 Z2 = 2YZ C = 2B X Y2 = A (C - X2) - D with B = 2Y2 D = 2B2 (3) Several operations in the Galois IFp body are necessary to evaluate this formula. These are squares (denoted S), multiplications (denoted M), additions and subtractions (denoted A). The evaluation of such a doubling typically requires 4S + 6M + 9A or 6S + 4M + 11A, depending on the methods of calculation.

L'addition d'un premier point P = (Xp:Yp:Zp) et d'un second point Q = (Xq: Yq:Zq) est le point P + Q = (Xp+q:17p-Eq. Zp+q) tel que : {A = XpZ,? Xp+q = F2 - E3 - 2AE2 B = X Z2 Zp+q = ZpZe D = a Y Z3 Yp-Fq = F (AE2 - Xp+q) - C E3 avec C = YPZil E = B - A F = D - C a P P 2 (4) Cette formule d'addition n'est valable que sous les hypothèses suivantes : P # Q; P # 0; Q # 0 .The addition of a first point P = (Xp: Yp: Zp) and a second point Q = (Xq: Yq: Zq) is the point P + Q = (Xp + q: 17p-Eq.Zp + q) such that: {A = XpZ,? Xp + q = F2 - E3 - 2AE2 B = X Z2 Zp + q = ZpZe D = a Y Z3 Yp - Fq = F (AE2 - Xp + q) - C E3 with C = YPZil E = B - AF = D - C a PP 2 (4) This addition formula is valid only under the following assumptions: P # Q; P # 0; Q # 0.

Beaucoup de systèmes cryptographiques sont basés sur la difficulté de résoudre le problème logarithme discret dans de grands groupes ou sous-groupes associés à une courbe elliptique. Des exemples de ces systèmes sont décrits dans les références suivantes : "IEEE P1363 Draft 13: IEEE Standard Specifications for Public Key Cryptography. IEEE Computer Society (Nov 1999)" ; "ANSI X9.62-2005: Public Key Cryptography for The Financial Service Industry : The Elliptic Curve Digital Signature Algorithm (ECDSA). American National Standards Institute (Nov 2005)" et "ANSI X9.63-2001: Public Key Cryptography for The Financial Service Industry : Key Agreement and Key Transport Using Elliptic Curve Cryptography. American National Standards Institute (Nov 2001)". Dans de tels systèmes, la clé secrète est un scalaire choisi aléatoirement tandis que la clé publique correspondante est un multiple d'un point particulier public et de ce scalaire. Une attention particulière est apportée à l'implémentation de la multiplication scalaire d'un scalaire k et d'un point P dénotée k. P = P +P + --- + P. En effet, cette opération est la plus couteuse du k fois point de vue du temps d'exécution et il est donc important de l'optimiser du point de vue du nombre d'opérations requises pour son calcul. De plus, la valeur scalaire k étant typiquement secrète, ce calcul doit être protégé contre d'éventuelles attaques visant à la découvrir. La multiplication scalaire est typiquement implémentée à l'aide d'un algorithme efficace appelé « doublement et addition » (en anglais double and add) tel que décrit par exemple dans « Knuth, D.: The Art of Computer Programming, vol. 2. Addison Wesley, third edn. (1988) ». Cet algorithme est basé sur le parcours de la représentation binaire de la valeur scalaire k. Une opération de doublement est effectuée pour chaque bit de k, tandis qu'une addition est requise lorsque la valeur du bit est différente de zéro. Cet algorithme est disponible en deux variantes selon l'ordre de parcours de la représentation binaire de k. Dans une première variante, dite de droite à gauche, cette représentation est parcourue en démarrant par les bits les moins significatifs. Dans une seconde variante, dite de gauche à droite, cette représentation est parcourue en démarrant par les bits les plus significatifs. L'algorithme de gauche à droite est illustré Figure 3.Many cryptographic systems are based on the difficulty of solving the discrete logarithm problem in large groups or subgroups associated with an elliptic curve. Examples of such systems are described in the following references: "IEEE P1363 Draft 13: IEEE Standard Specifications for Public Key Cryptography." IEEE Computer Society (Nov. 1999) "; "ANSI X9.62-2005: Public Key Cryptography for the Financial Service Industry: The Elliptic Curve Digital Signature Algorithm (ECDSA)." American National Standards Institute (Nov 2005) "and" ANSI X9.63-2001: Public Key Cryptography for The Financial Service Industry: Key Agreement and Key Transport Using Elliptic Curve Cryptography, American National Standards Institute (Nov 2001) ". In such systems, the secret key is a randomly chosen scalar while the corresponding public key is a multiple of a particular public point and that scalar. Particular attention is given to the implementation of the scalar multiplication of a scalar k and a point P denoted by k. P = P + P + --- + P. In fact, this operation is the most expensive in terms of execution time and it is therefore important to optimize it from the point of view of the number of operations. required for its calculation. Moreover, since the scalar value k is typically secret, this calculation must be protected against possible attacks aimed at discovering it. Scalar multiplication is typically implemented using an efficient algorithm called "doubling and adding" as described for example in "Knuth, D .: The Art of Computer Programming, vol. 2. Addison Wesley, third edn. (1988) ". This algorithm is based on the path of the binary representation of the scalar value k. A doubling operation is performed for each bit of k, while an addition is required when the bit value is other than zero. This algorithm is available in two variants according to the order of the binary representation of k. In a first variant, called from right to left, this representation is traversed by starting with the least significant bits. In a second variant, called from left to right, this representation is traversed by starting with the most significant bits. The algorithm from left to right is shown in Figure 3.

La multiplication scalaire consiste en une succession de doublements et d'additions. En fonction du rapport entre le nombre de doublements et le nombre d'additions à effectuer, il sera intéressant d'optimiser l'une ou l'autre de ces opérations de façon à avoir le temps d'exécution global le plus court. Plusieurs astuces ont été proposées pour réduire le coût opérationnel de ces opérations. Dans l'algorithme de la Figure 3, les points m-P sont des constantes. Chudnovsky a proposé de pré calculer et de sauvegarder dans des registres les valeurs Zm2.p et ZI.p ce qui permet d'économiser une élévation au carré et une multiplication dans l'équation (4). De plus, au coût d'une inversion, il est possible de choisir le représentant de m - P pour lequel Zm.p est égal à 1. Cela permet de d'économiser une élévation au carré et quatre multiplications dans l'équation (4). De plus, une élévation au carré et une multiplication peuvent encore être économisées dans l'équation (4) de l'addition dans le cas où les valeurs a et n ont été calculée dans l'équation (3) du doublement précédente. En effet, l'opération d'addition intervient toujours à la suite d'une opération de doublement du fait que le doublement est toujours effectué tandis que l'addition ne l'est que pour certaines valeurs du bit considéré dans la représentation binaire du scalaire. La formule du doublement peut encore être améliorée par l'utilisation d'une coordonnée supplémentaire W ajoutée à la représentation jacobienne de P. W est initialisé à la valeur aZ4, la valeur de W pour le point doublé est donnée par 2DW. Cela permet d'économiser deux élévations au carré pour une addition.Scalar multiplication consists of a succession of doublings and additions. Depending on the ratio between the number of doublings and the number of additions to be made, it will be interesting to optimize one or the other of these operations so as to have the shortest overall execution time. Several tips have been proposed to reduce the operational cost of these operations. In the algorithm of Figure 3, the points m-P are constants. Chudnovsky proposed to pre-compute and save the Zm2.p and ZI.p values in registers, which saves squaring and multiplication in equation (4). Moreover, at the cost of an inversion, it is possible to choose the representative of m - P for which Zm.p is equal to 1. This saves a squared elevation and four multiplications in the equation (4 ). In addition, squaring and multiplication can be further saved in equation (4) of the addition in the case where the values a and n have been calculated in equation (3) of the previous doubling. In fact, the addition operation always intervenes following a doubling operation because the doubling is always performed while the addition is only done for certain values of the bit considered in the binary representation of the scalar . The doubling formula can be further improved by the use of an additional coordinate W added to the Jacobian representation of P. W is initialized to the value aZ4, the value of W for the doubled point is given by 2DW. This saves two squares for an addition.

Shamir a proposé une astuce permettant le calcul simple et très efficace d'une somme de deux multiplications par un scalaire de la forme : u-P+v-Q (5) Une implémentation naïve consistant à effectuer les deux multiplications scalaire et en ajoutant les résultats coûte approximativement 21 doublements et / additions. L'astuce proposée par Shamir et donnée dans l'algorithme de la Figure 4 permet d'obtenir le résultat avec seulement approximativement / doublement et 0.751 additions. Nous rappelons que / représente la longueur de la représentation binaire de u et y.Shamir proposed a trick allowing the simple and very efficient computation of a sum of two multiplications by a scalar of the form: u-P + vQ (5) A naive implementation of performing the two scalar multiplications and adding the results costs approximately 21 doublings and / additions. The trick proposed by Shamir and given in the algorithm of Figure 4 allows to obtain the result with only approximately / doubling and 0.751 additions. We recall that / represents the length of the binary representation of u and y.

Cette astuce de Shamir peut être utilisée pour le calcul de la multiplication scalaire en décomposant le scalaire k de longueur 1 en deux scalaires /cc) et k1 de longueur 1/2 de la façon suivante : k - P = ko - P + - (À - P) (6) Ce qui est intéressant si ko, k1 et Q = À - P sont disponibles à un coût raisonnable. C'est généralement le cas, avec a, = 21/2 pour les algorithmes cryptographiques. Lorsque la longueur 1 n'est pas paire, il est toujours possible de s'y ramener, par exemple en introduisant un 0 supplémentaire à gauche. L'astuce de Shamir n'est utilisable qu'avec le parcours de gauche à droite de la représentation du scalaire.This Shamir trick can be used to compute scalar multiplication by decomposing scalar k of length 1 into two scalars / cc) and k1 of length 1/2 as follows: k - P = ko - P + - ( À - P) (6) What is interesting if ko, k1 and Q = À - P are available at a reasonable cost. This is usually the case with a = 21/2 for cryptographic algorithms. When the length 1 is not even, it is always possible to reduce it, for example by introducing an additional 0 on the left. Shamir's trick can only be used with the course from left to right of the scalar representation.

Il est également possible de réduire le nombre d'additions en utilisant d'autres représentations numériques du scalaire k utilisant typiquement une base supérieure à 2. Des exemples peuvent être trouvés dans les documents « Arno, S., Wheeler, F.: Signed digit representations of minimal Hamming weight. IEEE Transactions on Computers 42(8), 1007-1009 (1993) », « Solinas, J.: Low-Weight Binary Representations for Pairs of Integers. Tech. rep. (2001), http://cacr.uwaterloo.ca/techreports/2001/corr2001-41.ps » et « Muir, J.A.: Efficient Integer Representation for Cryptographic Operations. Ph.D. thesis, University of Waterloo (2004) ».It is also possible to reduce the number of additions by using other numerical representations of the scalar k typically using a base greater than 2. Examples can be found in the documents "Arno, S., Wheeler, F .: Signed digit representations of minimal Hamming weight. IEEE Transactions on Computers 42 (8), 1007-1009 (1993) "," Solinas, J .: Low-Weight Binary Representations for Pairs of Integers. Tech. rep. (2001), http://cacr.uwaterloo.ca/techreports/2001/corr2001-41.ps "and" Muir, J.A .: Efficient Integer Representation for Cryptographic Operations. Ph.D. thesis, University of Waterloo (2004).

Comme indiqué précédemment ces méthodes de calcul sont sensibles à des attaques par canal auxiliaire (en anglais Side Channel Attacks) telles que l'observation de la consommation énergétique de l'entité de calcul. Comme nous l'avons vu, la protection du calcul basé sur l'utilisation de blocs atomiques appelés de manière répétée permet de se protéger de ces attaques en rendant le flux opératoire indépendant des données au prix de l'exécution d'opérations factices. Bien que ces opérations factices se réduisent typiquement à des additions et à des négations dont le coût unitaire est faible, leur grand nombre conduit à un coût supplémentaire non négligeable.As previously indicated, these calculation methods are sensitive to Side Channel Attacks such as observing the energy consumption of the computing entity. As we have seen, the protection of the calculation based on the use of atomic blocks called repeatedly protects against these attacks by making the flow of data independent operation at the cost of performing dummy operations. Although these dummy operations are typically reduced to additions and negations with a low unit cost, their large number leads to a significant additional cost.

Dans une implémentation typique les blocs atomiques sont réalisés par un coprocesseur cryptographique tandis que l'accès à la représentation binaire du scalaire déterminant les blocs atomiques devant être appelés est réalisé sur le processeur principal. Il est alors possible en comptant les opérations séparant deux accès successifs à la représentation binaire de déterminer si une addition a été effectuée en plus du doublement et donc d'obtenir une information sur la valeur binaire du scalaire. Pour se protéger de cela, il est avantageux de réaliser le même traitement d'accès au scalaire avant chaque appel à un bloc atomique, que ce traitement soit nécessaire ou pas.In a typical implementation the atomic blocks are made by a cryptographic coprocessor while access to the binary representation of the scalar determining the atomic blocks to be called is performed on the main processor. It is then possible, by counting the operations separating two successive accesses to the binary representation, to determine whether an addition has been made in addition to the doubling and thus to obtain information on the binary value of the scalar. To protect itself from this, it is advantageous to perform the same scalar access processing before each call to an atomic block, whether this processing is necessary or not.

Cette protection introduit un coût supplémentaire lié à chaque bloc atomique. Les implémentations connues basées sur l'utilisation de blocs atomiques ont cherché à optimiser le calcul du doublement qui est effectué pour chaque bit de la représentation numérique du scalaire alors que l'addition n'est effectuée que pour les valeurs non nulles de ces bits. Dans le cadre de l'utilisation de la somme de deux multiplications par un scalaire le taux d'additions par rapport aux doublements n'est plus aussi favorable. De plus, l'optimisation du doublement par rapport à l'addition implique un surcoût en addition modulaires factices dans le calcul des additions. Alors que le surcoût de ces additions modulaires supplémentaires peut être négligé dans une implémentation logicielle ou pour de grande valeur du nombre premier p, ceci n'est plus le cas dans le cadre des cartes à puce embarquant du matériel dédié et pour les valeurs couramment utilisées aujourd'hui pour la taille du nombre premier. Il faut noter que nous appelons multiplication modulaire et addition modulaire, la multiplication et l'addition dans le corps de Galois IFp. Ces opérations sont les opérations de base utilisées dans l'implémentation des additions et doublements sur les points de la courbe elliptique. Dans un premier mode de réalisation de l'invention, il est proposé un bloc atomique unifié permettant l'exécution d'une addition ou d'un doublement par un unique appel à ce bloc atomique unifié. Ainsi le coût de l'addition et du doublement sont rendues égales. Le flux d'opérations étant strictement le même pour les opérations d'additions et de doublement, celles-ci sont absolument non distinguables par des attaques par canal auxiliaire. Un type peut être défini pour chaque opération. Ce type correspond typiquement à l'addition, la soustraction, la multiplication et la mise au carré. Les opérations ne sont pas strictement identiques pour une addition de deux points ou un doublement de points car les opérations ne sont pas réalisées sur les mêmes opérandes. Par contre, l'addition et le doublement sont défini par deux séquences d'opérations. Ces deux séquences d'opérations ont le même nombre d'opérations et deux opérations de même rang dans la séquence ont le même type dans les deux séquences. Ce mode de réalisation minimise également le surcoût lié à l'appel des blocs atomiques du fait qu'un seul bloc atomique est appelé pour réaliser une addition où un doublement. Il offre également un bon niveau de performance du fait qu'il nécessite beaucoup moins d'opérations factices qu'un mode de réalisation basé sur l'appel successif de petits blocs atomiques. Un exemple de réalisation est illustré par la Figure 5. Cette figure représente le calcul d'une addition et celui d'un doublement à l'aide d'un unique bloc atomique. Il faut noter que le symbole <- représente le remplacement de la donnée, généralement le registre, précédant le symbole <- par le résultat de l'opération indiquée après le symbole -.This protection introduces an additional cost related to each atomic block. Known implementations based on the use of atomic blocks have sought to optimize the computation of the doubling which is carried out for each bit of the digital representation of the scalar while the addition is performed only for the non-zero values of these bits. In the context of the use of the sum of two multiplications by a scalar the rate of additions compared to doubles is not so favorable. In addition, the optimization of the doubling with respect to the addition implies an additional cost in factual modular additions in the calculation of the additions. While the additional cost of these additional modular additions may be neglected in a software implementation or for a large value of the prime number p, this is no longer the case in the context of smart cards carrying dedicated hardware and for commonly used values. today for the size of the prime number. It should be noted that we call modular multiplication and modular addition, multiplication and addition in the Galois IFp body. These operations are the basic operations used in the implementation of additions and doublings on the points of the elliptic curve. In a first embodiment of the invention, there is provided a unified atomic block for performing an addition or a doubling by a single call to this unified atomic block. Thus the cost of addition and doubling are made equal. The flow of operations being strictly the same for the additions and doubling operations, they are absolutely indistinguishable by auxiliary channel attacks. A type can be defined for each operation. This type typically corresponds to addition, subtraction, multiplication and squaring. The operations are not strictly identical for an addition of two points or a doubling of points because the operations are not performed on the same operands. On the other hand, addition and doubling are defined by two sequences of operations. These two sequences of operations have the same number of operations and two operations of the same rank in the sequence have the same type in both sequences. This embodiment also minimizes the overhead associated with the call of the atomic blocks because only one atomic block is called to perform an addition where a doubling. It also offers a good level of performance because it requires far fewer dummy operations than an embodiment based on the successive call of small atomic blocks. An exemplary embodiment is illustrated in FIG. 5. This figure represents the calculation of an addition and that of a doubling with the aid of a single atomic block. It should be noted that the symbol <- represents the replacement of the data, usually the register, preceding the symbol <- by the result of the operation indicated after the symbol -.

Il est facile de vérifier que les flux de données de l'addition et celui du doublement sont identiques du point de vue des opérations élémentaires effectuées. Les opérations notées avec des étoiles sont des opérations factices pouvant être effectuées sur des registres non utilisés par le calcul effectif. Il est à noter que le calcul de l'addition n'intègre que deux additions factices, tandis que celui du doublement intègre une seule multiplication factice. Cet exemple est basé sur les équations (3) et (4) et fonctionne donc avec toutes les courbes elliptiques sans restriction. Il illustre l'addition d'un point P = (X :Y :Z) et d'un point Q = (Xq : Yq : 1) pour donner le point P + Q = (X3 : Y3 : Z3). Le doublement illustre celui d'un point P = (X :Y : Z) pour donner le point 2 - P = (X2 : Y2 : Z2). Il faut donc noter que le coût de l'addition est réduit par l'utilisation de la représentation affine de Q, c'est-à-dire que Zq = 1. Son coût d'exécution est de 11 multiplications modulaires ou mises au carré et de 9 additions ou soustractions. Ce mode de réalisation est particulièrement avantageux dans le cadre de la somme de deux multiplications par un scalaire de l'astuce de Shamir. En effet, dans ce cas le taux d'addition par rapport aux doublements est plus élevé que dans le cadre du calcul direct d'une multiplication scalaire. Il est donc particulièrement intéressant d'avoir une opération d'addition de points qui n'est pas plus coûteuse que le doublement d'un point. Il s'avère que les blocs atomiques proposés se révèlent également généralement plus efficaces que les méthodes classiques même dans le cadre d'une multiplication scalaire classique.It is easy to verify that the data flows of the addition and the doubling are identical from the point of view of the elementary operations performed. Operations marked with stars are dummy operations that can be performed on registers not used by the actual calculation. It should be noted that the calculation of the addition integrates only two dummy additions, while that of the doubling integrates a single dummy multiplication. This example is based on equations (3) and (4) and thus works with all unrestricted elliptic curves. It illustrates the addition of a point P = (X: Y: Z) and a point Q = (Xq: Yq: 1) to give the point P + Q = (X3: Y3: Z3). The doubling illustrates that of a point P = (X: Y: Z) to give the point 2 - P = (X2: Y2: Z2). It should be noted that the cost of the addition is reduced by the use of the affine representation of Q, that is, Zq = 1. Its execution cost is 11 modular multiplications or squared and 9 additions or subtractions. This embodiment is particularly advantageous in the context of the sum of two multiplications by a scalar of Shamir's trick. Indeed, in this case the rate of addition with respect to the doublings is higher than in the direct calculation of a scalar multiplication. It is therefore particularly interesting to have a dot addition operation that is not more expensive than doubling a point. It turns out that the atomic blocks proposed also prove to be generally more efficient than conventional methods even in the context of a classical scalar multiplication.

Ce procédé peut encore être amélioré. En effet, il faut noter que dans le cadre d'une multiplication scalaire, qu'elle soit simple ou double, l'opération de doublement est systématiquement appelée à chaque itération sur la représentation numérique de la valeur scalaire, alors que l'opération d'addition n'est appelée que conditionnellement après cette opération de doublement. Il est possible de tirer parti du fait que l'addition intervient toujours après un doublement pour intégrer dans le bloc atomique lié au doublement une ou plusieurs opérations liées au calcul de l'addition. Ainsi, lorsque l'opération d'addition n'est pas effectuée, ces opérations ont alors été effectuées pour rien. Ce sont donc alors des opérations factices. Par contre, lorsqu'une addition est effectuée suite à un doublement, elle peut utiliser le résultat de ces opérations qui viennent d'être effectuées dans le cadre du doublement. L'utilisation de cette astuce permet de définir un bloc atomique unique pouvant être utilisé tant pour l'addition que pour le doublement, un seul appel du bloc étant nécessaire. Cette solution est donc toujours dans le cadre du premier mode de réalisation.This process can be further improved. Indeed, it should be noted that in the context of a scalar multiplication, whether simple or double, the doubling operation is systematically called at each iteration on the numerical representation of the scalar value, whereas the operation of addition is only conditionally called after this doubling operation. It is possible to take advantage of the fact that the addition always occurs after a doubling to integrate in the doubling atomic block one or more operations related to the calculation of the addition. Thus, when the addition operation is not performed, these operations were then performed for nothing. These are then dummy operations. On the other hand, when an addition is made following a doubling, it can use the result of these operations that have just been performed as part of the doubling. The use of this trick allows to define a single atomic block that can be used for both the addition and the doubling, a single call of the block being necessary. This solution is therefore always in the context of the first embodiment.

La Figure 6 illustre un exemple d'un tel bloc atomique. Elle illustre l'utilisation du même bloc atomique pour une addition, une soustraction et un doublement. Elle est également basée sur la représentation affine de Q. Il est également assumé que les valeurs Z?, et 4 sont pré calculées. Ce sont ces valeurs qui sont utilisées dans l'addition, mais qui sont calculées dans le doublement. Il faut noter que la valeur 4 est utilisée dans les deux opérations tandis que la valeur 4 n'est, quant à elle, utilisée que dans l'addition. Si cette seule astuce était utilisée, l'addition aurait alors un coût de 2 élévations au carré, 7 multiplications et 7 additions. Le doublement s'effectuerait en 5 élévations au carré, 7 multiplications et 9 additions. Pour arriver au bloc atomique illustré par la Figure 6, le coût du doublement est encore réduit, en utilisant une nouvelle valeur pré calculée nommée I = V-a3-1. Pour une valeur quelconque de a, I n'existe qu'avec une probabilité de 0,5. Il s'avère que les courbes elliptiques les plus utilisées (NIST, twisted Brainpool, ANSSI) sont caractérisées par une valeur de a = 3, ce qui donne I = 1. Certaines courbes ont une valeur de a = 0, ce qui donne I = O. D'autres courbes encore ont une valeur de I pouvant être calculée car -a3-1 est un résidu quadratique. Seule la courbe appelée GOST possède une valeur de a ne pouvant pas permettre le calcul de I. En utilisant cette valeur I, il est possible de calculer 3X2 + aZ4 = 3(X - IZ2)(X + IZ2) à l'aide de seulement deux multiplications si Z2 est connu. In fine, l'addition peut être calculée à l'aide de 3 élévations au carré, 7 multiplications et 7 additions, tandis que le doublement peut l'être en deux élévations au carré, 8 multiplications et 10 additions. En remplaçant une élévation au carré par une multiplication et en ajoutant 3 additions factices dans l'addition, il est possible de réaliser un bloc atomique unifié permettant l'exécution tant de l'addition que du doublement tel qu'illustré Figure 6. Il est possible de repérer dans le flux d'opérations du doublement l'instruction Z3 <- Z2 - R3 qui ne sert que dans l'addition et qui est inutile du point de vue du doublement. Les flux d'opérations de la Figure 6, utilisant un même bloc atomique 15 sont basés sur les formules suivantes. La somme d'un point P = (X :Y :Z :Z2 :Z3) et d'un point Q = (Xq:Yq: 1) est le point P + Q = (X3 :Y3 :Z3 :4) tel que : A = X (7) X3 = F2 - E2 - 2AE2 B = XqZ2 Y3=F(AE2-X3)-CE3 avec C = Y Z3 = ZE {z = (Z3)2 D = Y Z3 a E = B - A F = D - C La soustraction P - Q est obtenue en remplaçant F par F' = D + 20 2C - C et donc Y3 = F'(X3 - AE2) - CE3. Le double d'un point P = (X :Y :Z : Z2) est le point 2 - P = (X2 : Y2 :Z2:4:4) tel que : {:2 = A - 2C Y2 = A (C - X2) - D A = 3(X - IZ2)(X + IZ2) Z2 = 2XY avec B =2172 Zj = (Z2)2 C = 2BX D = 2B2 Z = (Z2)3 Dans le cas particulier où a = 0, une multiplication par zéro est effectuée dans l'opération de doublement. Or, dans certains cas, il est possible de détecter une telle multiplication par zéro. De plus, cette multiplication par zéro n'intervient pas dans l'addition. Il devient donc alors possible de distinguer le déroulement d'une addition de celui du doublement. Un bloc atomique alternatif permettant l'addition et le doublement sans multiplication par zéro est proposé Figure 7 pour le cas spécifique où a vaut zéro. L'astuce consiste à sauvegarder en mémoire l'opposé des coordonnées de Q :(-xq,-yq). Le bloc atomique proposé contient 2 mises au carré, 7 multiplications et 8 additions. Cela représente un gain de plus de 10% sur le bloc atomique de la Figure 6. La somme d'un point P = (X:Y :Z:Z2 :Z3) et d'un point Q = (Xq:Yq: 1) est le point P + Q = (X3 :Y3 : Z3 ) tel que : A = X X3 = F2 - (2AE2 - E'2) B' = (-Xq)Z2 1 = Y3 = Fi(AE12 - X3) - CE'3 avec C D, Y = (_yq)z3 Z3 = ZE' E' = B' + A F' = D' + C Le double d'un point P = (X :Y : Z) est le point 2 - P = (X2: Y2 : Z2: Z: ZD tel que : {:2 = A2 - 2C Z2 = 2XY Zj = (Z2)2 Y2 - A (C X2) D A = 3X2 2 -2 3 - (Z )3 avec B = 2Y2 D = 2B2 C = 2BX Les blocs atomiques proposés permettent une implémentation efficace et sécurisée des multiplications par un scalaire et plus particulièrement de la somme de deux multiplications par un scalaire de points appartenant à une courbe elliptique. Ils permettent donc une génération de clés très rapide dans les systèmes cryptographiques basés sur les courbes elliptiques. Naturellement, pour satisfaire des besoins spécifiques, une personne compétente dans le domaine de l'invention pourra appliquer des modifications dans la description précédente.Figure 6 illustrates an example of such an atomic block. It illustrates the use of the same atomic block for addition, subtraction and doubling. It is also based on the affine representation of Q. It is also assumed that the values Z ?, and 4 are pre-calculated. It is these values which are used in the addition, but which are calculated in the doubling. It should be noted that the value 4 is used in the two operations while the value 4 is, for its part, used only in the addition. If this single trick was used, the addition would then have a cost of 2 squares, 7 multiplications and 7 additions. The doubling would take place in 5 squared elevations, 7 multiplications and 9 additions. To arrive at the atomic block shown in Figure 6, the cost of doubling is further reduced, using a new pre-calculated value named I = V-a3-1. For any value of a, I exists only with a probability of 0.5. It turns out that the most used elliptic curves (NIST, twisted Brainpool, ANSSI) are characterized by a value of a = 3, which gives I = 1. Some curves have a value of a = 0, which gives I = 0. Still other curves have a value of I that can be calculated because -a3-1 is a quadratic residue. Only the curve called GOST has a value of a that can not allow the calculation of I. Using this value I, it is possible to calculate 3X2 + aZ4 = 3 (X - IZ2) (X + IZ2) using only two multiplications if Z2 is known. Finally, the addition can be calculated using 3 squares, 7 multiplications and 7 additions, while the doubling can be done in two squares, 8 multiplications and 10 additions. By replacing a squaring by multiplication and adding 3 dummy additions in the addition, it is possible to realize a unified atomic block allowing the execution of both the addition and the doubling as shown in Figure 6. It is it is possible to identify in the doubling operation flow the instruction Z3 <- Z2 - R3 which serves only in the addition and which is useless from the point of view of doubling. The flow of operations of Figure 6, using the same atomic block 15 are based on the following formulas. The sum of a point P = (X: Y: Z: Z2: Z3) and a point Q = (Xq: Yq: 1) is the point P + Q = (X3: Y3: Z3: 4) tel that: A = X (7) X3 = F2 - E2 - 2AE2 B = XqZ2 Y3 = F (AE2-X3) -CE3 with C = Y Z3 = ZE {z = (Z3) 2 D = Y Z3 a E = B - AF = D - C The subtraction P - Q is obtained by replacing F by F '= D + 20 2C - C and thus Y3 = F' (X3 - AE2) - CE3. The double of a point P = (X: Y: Z: Z2) is the point 2 - P = (X2: Y2: Z2: 4: 4) such that: {: 2 = A - 2C Y2 = A (C - X2) - DA = 3 (X - IZ2) (X + IZ2) Z2 = 2XY with B = 2172 Zj = (Z2) 2 C = 2BX D = 2B2 Z = (Z2) 3 In the particular case where a = 0 , a multiplication by zero is performed in the doubling operation. However, in some cases, it is possible to detect such multiplication by zero. Moreover, this multiplication by zero does not intervene in the addition. It then becomes possible to distinguish the progress of an addition from that of the doubling. An alternative atomic block allowing the addition and the doubling without multiplication by zero is proposed Figure 7 for the specific case where a is worth zero. The trick is to save in memory the opposite of the coordinates of Q: (- xq, -yq). The proposed atomic block contains 2 squares, 7 multiplications and 8 additions. This represents a gain of more than 10% over the atomic block of Figure 6. The sum of a point P = (X: Y: Z: Z2: Z3) and a point Q = (Xq: Yq: 1 ) is the point P + Q = (X3: Y3: Z3) such that: A = X X3 = F2 - (2AE2 - E'2) B '= (-Xq) Z2 1 = Y3 = Fi (AE12 - X3) - CE'3 with CD, Y = (_yq) z3 Z3 = ZE 'E' = B '+ AF' = D '+ C The double of a point P = (X: Y: Z) is the point 2 - P = (X2: Y2: Z2: Z: ZD such that: {: 2 = A2 - 2C Z2 = 2XY Z1 = (Z2) 2 Y2 - A (CX2) DA = 3X2 2 -2 3 - (Z) 3 with B = 2Y2 D = 2B2 C = 2BX The atomic blocks proposed allow an efficient and secure implementation of multiplications by a scalar and more particularly by the sum of two multiplications by a scalar of points belonging to an elliptic curve. Very fast keys in cryptographic systems based on elliptic curves Naturally, to satisfy specific needs, a person skilled in the field of the invention we will apply changes in the previous description.

Bien que la présente invention ait été décrite ci-dessus en référence à des modes de réalisation spécifiques, la présente invention n'est pas limitée aux modes de réalisation spécifiques, et les modifications qui se trouvent dans le champ d'application de la présente invention seront évidentes pour une personne versée dans l'art.Although the present invention has been described above with reference to specific embodiments, the present invention is not limited to specific embodiments, and modifications that are within the scope of the present invention will be obvious to someone skilled in the art.

Claims (11)

REVENDICATIONS1. Entité électronique de traitement cryptographique de données comprenant des moyens de traitement aptes à déterminer, à partir d'au moins un premier point sur une courbe elliptique représenté au moyen d'au moins trois premiers éléments d'un corps de Galois, un second point sur la courbe elliptique représenté au moyen d'au moins trois seconds éléments du corps de Galois, chacun des seconds éléments étant obtenus à partir des premiers éléments au moyen d'un ensemble d'opérations dans le corps de Galois, lesdits moyens de traitement comprenant : au moins une opération d'addition de deux points de la courbe elliptique réalisée par l'exécution d'une premiere séquence d'opérations successives dans le corps de Galois; au moins une opération de doublement d'un point de la courbe elliptique réalisée par l'exécution d'une seconde séquence d'opérations successives dans le corps de Galois; caractérisé en ce que : les opérations dans le corps de Galois ayant chacune un type, la premiere séquence d'opérations successives et la seconde séquence d'opérations successives sont constitués d'un même nombre d'opérations, deux opérations de même rang dans la séquence ont le même type dans les deux séquences.REVENDICATIONS1. An electronic cryptographic data processing entity comprising processing means adapted to determine, from at least a first point on an elliptic curve represented by means of at least three first elements of a Galois body, a second point on the elliptic curve represented by means of at least three second elements of the Galois body, each of the second elements being obtained from the first elements by means of a set of operations in the Galois body, said processing means comprising: at least one addition operation of two points of the elliptical curve performed by the execution of a first sequence of successive operations in the Galois body; at least one operation of doubling a point of the elliptic curve realized by the execution of a second sequence of successive operations in the Galois body; characterized in that: the operations in the Galois field each having a type, the first sequence of successive operations and the second sequence of successive operations consist of the same number of operations, two operations of the same rank in the sequences have the same type in both sequences. 2. Entité électronique selon la revendication 1, caractérisé en ce que lesdits trois premiers éléments sont des coordonnées jacobiennes du premier point.2. Electronic entity according to claim 1, characterized in that said first three elements are Jacobian coordinates of the first point. 3. Entité électronique selon la revendication 1 ou 2, caractérisé en ce que lesdits trois seconds éléments sont des coordonnées jacobiennes du second point.3. Electronic entity according to claim 1 or 2, characterized in that said three second elements are Jacobian coordinates of the second point. 4. Entité électronique selon l'une des revendications 1 à 3, dans lequel le second point est le produit du premier point par un entier.4. Electronic entity according to one of claims 1 to 3, wherein the second point is the product of the first point by an integer. 5. Entité électronique selon l'une des revendications 1 à 4, caractérisé en ce que la courbe elliptique a pour équation projective jacobienne de Weierstrass Y2 = X3 + aX Z4 + bZ6 , où a et b sont des éléments du corps de Galois et (4a3 + 27b2) # O.5. Electronic entity according to one of claims 1 to 4, characterized in that the elliptic curve has a Jacobian projective equation of Weierstrass Y2 = X3 + aX Z4 + bZ6, where a and b are elements of the Galois body and 4a3 + 27b2) # O. 6. Entité électronique selon l'une des revendications 1 à 5, caractérisé en ce que, une opération d'addition de deux points de la courbe elliptique intervenant toujours après une opération de doublement d'un point de la courbe elliptique, au moins une opération dans le corps de Galois servant au calcul de l'opération d'addition de deux points de la courbe elliptique est intégrée au sein de la seconde séquence d'opérations successives dans le corps de Galois servant à réaliser l'opération de doublement d'un point de la courbe elliptique.6. Electronic entity according to one of claims 1 to 5, characterized in that a two-point addition operation of the elliptical curve always occurring after a doubling operation of a point of the elliptical curve, at least one operation in the Galois body for calculating the operation of adding two points of the elliptic curve is integrated within the second sequence of successive operations in the Galois body used to perform the doubling operation of a point of the elliptic curve. 7. Entité électronique selon la revendication 1, caractérisé en ce que : l'addition d'un point P = (X :Y : Z) et d'un point Q = (Xq : Yq : 1) donne le point P + Q = (X3 :Y3 : Z3) ; le doublement d'un point P = (X :Y : Z) donne le point 2 - P = (X3 :Y3 : Z3) ; les premier et second séquences d'opérations successives dans le corps de Galois sont les suivants : 30Addition Ro <- Z2 * <- * + * R1 <- (-Xq) - Ro R1 <- X + Ri R3 <- (-Yq) - Ro R2 <- Ri2_ Ro <- Z3 - R3 R3 <- Z3 - R1 Z3 <- R1 - R2 R1 <- X - R2 R2 <- R1 + R1 Ro <- Ro + Y3 * <- * + * X3 -RO R2 <- R2 Z3 X3 -X3 R2 R1 <- R1 - X3 R2 <- Y - Z3 Y3 <- Ro - R1 173 <_ 173 _ R2 _Z3 <- R3 Doublement Ro <- Z2 R1 <- Y + Y R2 <- R1 - Y Y2 <- R2 + R2 R3 <- R1 - Z Z2 -X2 R1 <- Y2 - R2 R2 <- Y2 - X X2 <- a - Ro Y2 <- X2 - RO Ro <- Z2 + Z2 X2 <- Ro + Z2 Ro <- X2 + Y2 X2 <- Rî) X2 <- X2 - R2 X2 <- X2 - R2 Z2 <- R2 - X2 * <- * - * Y2 <- RO - Z2 Y2 <- Y2 R1 -Z2 <- R37. Electronic entity according to claim 1, characterized in that: adding a point P = (X: Y: Z) and a point Q = (Xq: Yq: 1) gives the point P + Q = (X3: Y3: Z3); doubling a point P = (X: Y: Z) gives the point 2 - P = (X3: Y3: Z3); the first and second sequences of successive operations in the Galois body are the following: 30Addition Ro <- Z2 * <- * + * R1 <- (-Xq) - Ro R1 <- X + Ri R3 <- (-Yq R 1 R 2 R 2 R 3 R 3 R 3 R 3 R 3 R 1 R 3 R 1 R 1 R 2 R 1 R 1 R 1 R 1 R 1 R 1 R 3 -RO R2 <- R2 Z3 X3 -X3 R2 R1 <- R1 - X3 R2 <- Y - Z3 Y3 <- Ro - R1 173 <_ 173 _ R2 _Z3 <- R3 Doubling Ro <- Z2 R1 <- Y + Y R2 <- R1 - Y Y2 <- R2 + R2 R3 <- R1 - Z Z2 -X2 R1 <- Y2 - R2 R2 <- Y2 - X X2 <- a - Ro Y2 <- X2 - RO Ro <- Z2 + Z2 X2 <- Ro + Z2 Ro <- X2 + Y2 X2 <- R1) X2 <- X2 - R2 X2 <- X2 - R2 Z2 <- R2 - X2 * <- * - * Y2 <- RO - Z2 Y2 < - Y2 R1 -Z2 <- R3 8. Entité électronique selon la revendication 6, caractérisé en ce que : l'addition d'un point P = (X :Y : Z : Z2 : Z3) et d'un point Q = (Xq :Yq : 1) donne le point P + Q = (X3 :Y3 : Z3 : 4); le doublement d'un point P = (X :Y : Z : Z2) donne le point 2 - P = (X2 :Y2 : Z2: 4: 4); les premier et second séquences d'opérations successives dans le corps de Galois sont les suivants : 15Addition Doublement -R1 <- Xq - Z2 R1 <- R1 - X * <- * + * R2 <- R1 - R1 * <- * + * R3 <- X - R2 Ro <- Yq - Z3 * <- * + * Z3 <- R1 ' R2 R2 <- Z - R1 X3 <- R3 + R3 X3 <- Z3 + X3 4 <- Rj Ro <- Ro - Y R1 <- TM X3 <- R1 X3 R1 <- R3 X3 R3 <- R1 - RO Ro <- Y3 - Z3 Y3 <- R3 Ro _z3 <_ R2 Ro <- I - Z2 R1 <- X - Ro R2 <- Y + Y 4 <- Y - R2 Y2 <- Zj + Zj R3 <- R2 - Z R2 <- Y2 - X X2 <- X2 + Ro Ro <- R1 - X2 R1 <- Z - Y2 X2 <- Ro + Ro Ro <- Ro + X2 X2- 4 X2 <- X2 R2 - Rî X2 <- X2 - R2 R2 <- R2 - X2 4 <- 4 - R3 Y2 <- RO - R2 Y2 <- Y2 R1 -Z2 <- R38. Electronic entity according to claim 6, characterized in that: adding a point P = (X: Y: Z: Z2: Z3) and a point Q = (Xq: Yq: 1) gives the point P + Q = (X3: Y3: Z3: 4); doubling a point P = (X: Y: Z: Z2) gives the point 2 - P = (X2: Y2: Z2: 4: 4); the first and second sequences of successive operations in the Galois body are as follows: 15Addition Doubling -R1 <- Xq - Z2 R1 <- R1 - X * <- * + * R2 <- R1 - R1 * <- * + R3 <- X - R2 Ro <- Yq - Z3 * <- * + * Z3 <- R1 'R2 R2 <- Z - R1 X3 <- R3 + R3 X3 <- Z3 + X3 4 <- Rj Ro <- Ro - Y R1 <- TM X3 <- R1 X3 R1 <- R3 X3 R3 <- R1 - RO Ro <- Y3 - Z3 Y3 <- R3 Ro _z3 <_ R2 Ro <- I - Z2 R1 <- X - Ro R2 <- Y + Y 4 <- Y - R2 Y2 <- Z1 + Z1 R3 <- R2 - Z R2 <- Y2 - X X2 <- X2 + Ro Ro <- R1 - X2 R1 <- Z - Y2 X2 < - Ro + Ro Ro <- Ro + X2 X2 - 4 X2 <- X2 R2 - R1 X2 <- X2 - R2 R2 <- R2 - X2 4 <- 4 - R3 Y2 <- RO - R2 Y2 <- Y2 R1 - Z2 <- R3 9. Entité électronique selon la revendication 5, caractérisé en ce que, la valeur du paramètre a de l'équation projective jacobienne de Weierstrass étant nulle : l'addition d'un point P = (X :Y : Z : Z2 : Z3) et d'un point Q = (Xq :Yq : 1) donne le point P + Q = (X3 :Y3 : Z3 ); le doublement d'un point P = (X :Y : Z ) donne le point 2 - P = (X2 :Y2 : Z2: Z: ZD; les premier et second séquences d'opérations successives dans le corps de Galois sont les suivants :15Addition -* <- * + * Ro <- (-Xq) - Z2 R1 <- X + Ro R2 <- Ri Ro <- X - R2 R3 <- Z - R1 X3 <- (-Yq) - Z3 Z3 <- R2 - R1 R1 <- Ro + Ro R2 <- Y + X3 X3 <- lq R1 <- R1- Z3 X3 <- X3 R1 Ro <- Ro - X3 R1 <- Y - Z3 Y3<- Ro - R2 Y3 <_ 173 _ R1 _Z3 <- R3 Doublement -Ro <- Y + Y R1 <- Ro - Y Y2 <- Ri + Ri R2 <- X2 R3 <- Ro - Z Z2 <- Y2 ' X Ro <- Ri - Y2 Zj <- R3 - R3 R1 <- R2 + R2 R1 <- R1 + R2 X2 <- Ri X2 <- X2 Z2 X2 <- X2 Z2 Z2 <- Z2 X2 4 <- 4 - R3 Y2 <- R1 - Z2 Y2 <- Y2 RO _Z2 <- R39. Electronic entity according to claim 5, characterized in that, the value of the parameter a of the Jacobian projective equation of Weierstrass being zero: the addition of a point P = (X: Y: Z: Z2: Z3) and from a point Q = (Xq: Yq: 1) gives the point P + Q = (X3: Y3: Z3); the doubling of a point P = (X: Y: Z) gives the point 2 - P = (X2: Y2: Z2: Z: ZD, the first and second sequences of successive operations in the Galois body are as follows : 15Addition - * <- * + * Ro <- (-Xq) - Z2 R1 <- X + Ro R2 <- Ri Ro <- X - R2 R3 <- Z - R1 X3 <- (-Yq) - Z3 Z3 R1 R1 R1 R1 R3 R3 R3 R3 R3 R3 R1 R3 R3 R1 R3 R3 R1 R1 R3 R3 R1 R1 R3 Y3 <_ 173 _ R1 _Z3 <- R3 Doubling -Ro <- Y + Y R1 <- Ro - Y Y2 <- Ri + Ri R2 <- X2 R3 <- Ro - Z Z2 <- Y2 'X Ro <- Ri Y2 Zj <- R3 - R3 R1 <- R2 + R2 R1 <- R1 + R2 X2 <- R1 X2 <- X2 Z2 X2 <- X2 Z2 Z2 <- Z2 X2 4 <- 4 - R3 Y2 <- R1 - Z2 Y2 <- Y2 RO _Z2 <- R3 10. Procédé de traitement cryptographique de données mis en oeuvre au sein d'une entité électronique, dans lequel on détermine, à partir d'un premier point sur une courbe elliptique représenté au moyen d'au moins trois premiers éléments d'un corps de Galois, un second point sur la courbe elliptique représenté au moyen d'au moins trois seconds éléments du corps de Galois, chacun des seconds éléments étant obtenus à partir des premiers éléments au moyen d'un ensemble d'opérations dans le corps de Galois, ledit procédé comprenant : au moins une opération d'addition de deux points de la courbe elliptique réalisée par l'exécution d'une premiere séquence d'opérations successives dans le corps de Galois; au moins une opération de doublement d'un point de la courbe elliptique réalisée par l'exécution d'une seconde séquence d'opérations successives dans le corps de Galois; caractérisé en ce que : - les opérations dans le corps de Galois ayant chacune un type, la premiere séquence d'opérations successives et la secondeséquence d'opérations successives sont constitués d'un même nombre d'opérations, deux opérations de même rang dans la séquence ont le même type dans les deux séquences.A method of cryptographic processing of data implemented within an electronic entity, wherein from a first point on an elliptic curve represented by at least three first elements of a body Galois, a second point on the elliptic curve represented by means of at least three second elements of the Galois body, each of the second elements being obtained from the first elements by means of a set of operations in the Galois body, said method comprising: at least one operation of adding two points of the elliptical curve performed by executing a first sequence of successive operations in the Galois body; at least one operation of doubling a point of the elliptic curve realized by the execution of a second sequence of successive operations in the Galois body; characterized in that: - the operations in the Galois body each having a type, the first sequence of successive operations and the second sequence of successive operations consist of the same number of operations, two operations of the same rank in the sequences have the same type in both sequences. 11. Procédé selon la revendication 10, caractérisé en ce que, une opération d'addition de deux points de la courbe elliptique intervenant toujours après une opération de doublement d'un point de la courbe elliptique, au moins une opération dans le corps de Galois servant au calcul de l'opération d'addition de deux points de la courbe elliptique est intégrée au sein de la seconde séquence d'opérations successives dans le corps de Galois servant à réaliser l'opération de doublement d'un point de la courbe elliptique.1511. The method of claim 10, characterized in that, an operation of adding two points of the elliptic curve always occurring after a doubling operation of a point of the elliptical curve, at least one operation in the body of Galois used for calculating the two-point addition operation of the elliptic curve is integrated within the second sequence of successive operations in the Galois body used to perform the operation of doubling a point of the elliptic curve .15
FR1358712A 2013-09-10 2013-09-10 DATA PROCESSING METHOD AND ASSOCIATED DEVICE Active FR3010562B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1358712A FR3010562B1 (en) 2013-09-10 2013-09-10 DATA PROCESSING METHOD AND ASSOCIATED DEVICE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1358712A FR3010562B1 (en) 2013-09-10 2013-09-10 DATA PROCESSING METHOD AND ASSOCIATED DEVICE

Publications (2)

Publication Number Publication Date
FR3010562A1 true FR3010562A1 (en) 2015-03-13
FR3010562B1 FR3010562B1 (en) 2017-05-12

Family

ID=50097781

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1358712A Active FR3010562B1 (en) 2013-09-10 2013-09-10 DATA PROCESSING METHOD AND ASSOCIATED DEVICE

Country Status (1)

Country Link
FR (1) FR3010562B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3105490A1 (en) 2019-12-23 2021-06-25 Idemia France CRYPTOGRAPHIC DATA PROCESSING PROCESS AND ASSOCIATED ELECTRONIC ENTITY

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Public Key Cryptography", vol. 2274, 1 January 2002, SPRINGER BERLIN HEIDELBERG, Berlin, Heidelberg, ISBN: 978-3-54-043168-8, article ÉRIC BRIER ET AL: "Weierstraß Elliptic Curves and Side-Channel Attacks", pages: 335 - 345, XP055121429, DOI: 10.1007/3-540-45664-3_24 *
CHEVALLIER-MAMES B ET AL: "Low-Cost Solutions for Preventing Simple Side-Channel Analysis: Side-Channel Atomicity", IEEE TRANSACTIONS ON COMPUTERS, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US, vol. 53, no. 6, 1 June 2004 (2004-06-01), pages 760 - 768, XP011111508, ISSN: 0018-9340, DOI: 10.1109/TC.2004.13 *
OLIVIER BILLET ET AL: "The Jacobi Model of an Elliptic Curve and Side-Channel Analysis", INTERNATIONAL ASSOCIATION FOR CRYPTOLOGIC RESEARCH,, vol. 20020822:135641, 22 August 2002 (2002-08-22), pages 1 - 9, XP061000339 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3105490A1 (en) 2019-12-23 2021-06-25 Idemia France CRYPTOGRAPHIC DATA PROCESSING PROCESS AND ASSOCIATED ELECTRONIC ENTITY

Also Published As

Publication number Publication date
FR3010562B1 (en) 2017-05-12

Similar Documents

Publication Publication Date Title
EP2946284B1 (en) Cryptography method comprising an operation of multiplication by a scalar or an exponentiation
EP1166494B1 (en) Countermeasure procedures in an electronic component implementing an elliptical curve type public key encryption algorithm
EP2296086B1 (en) Protection of prime number generation against side-channel attacks
EP3287891B1 (en) Protection of a modular calculation
EP1381936B1 (en) Countermeasure method in an electronic component using a public key cryptographic algorithm on an elliptic curve
FR2809893A1 (en) COUNTER-MEASUREMENT METHOD IN AN ELECTRONIC COMPONENT USING A PUBLIC KEY CRYPTOGRAPHY ALGORITHM ON AN ELLIPTICAL CURVE
FR3015080A1 (en) INTEGRITY VERIFICATION OF PAIR OF CRYPTOGRAPHIC KEYS
EP1166495A1 (en) Countermeasure method in an electric component implementing an elliptical curve type public key cryptography algorithm
WO2015121324A1 (en) Countermeasure method for an electronic component implementing an elliptic curve cryptography algorithm
FR2888690A1 (en) CRYPTOGRAPHIC PROCESS FOR THE SECURE IMPLEMENTATION OF AN EXPONENTIATION AND ASSOCIATED COMPONENT
EP2983083B1 (en) Elliptic curve encryption method comprising an error detection
EP1224765B1 (en) Countermeasure method in an electronic component which uses an rsa-type public key cryptographic algorithm
WO2006070092A1 (en) Data processing method and related device
EP1804160B1 (en) Protection of a cryptographic calculation performed by an integrated circuit
FR3010562A1 (en) DATA PROCESSING METHOD AND ASSOCIATED DEVICE
EP2274869B1 (en) White-box protection of cryptographical algorithms comprising a calculation in quadratic form
FR2818846A1 (en) Method for protecting electronic component executing cryptographic algorithm against current measurement attack, comprises factorization of exponential in algorithm and permutation of the factors
EP3100403B1 (en) Imbalanced montgomery ladder for resisting side-channel attacks
WO2004111833A1 (en) Method for countermeasuring in an electronic component
FR3018372A1 (en) MESSAGE GENERATION FOR CRYPTOGRAPHIC KEY GENERATION TEST
FR3013476A1 (en) SECURING METHOD OF CRYPTOGRAPHY ON ELLIPTICAL CURVES
EP2275925B1 (en) Method and apparatus for cryptographic data processing
FR2818473A1 (en) COUNTERMEASURE METHODS IN AN ELECTRONIC COMPONENT USING AN RSA-TYPE KEY CRYPTOGRAPHY ALGORITHM
FR3082333A1 (en) METHOD FOR DETERMINING MODULAR REVERSE AND ASSOCIATED CRYPTOGRAPHIC PROCESSING DEVICE
FR3045253A1 (en) METHOD AND DEVICE FOR CRYPTOGRAPHIC PROCESSING

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

CA Change of address

Effective date: 20200218

CD Change of name or company name

Owner name: IDEMIA FRANCE, FR

Effective date: 20200218

CJ Change in legal form

Effective date: 20200218

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11