Brevet FR2843506A1 — publié le 20040213

PROCEDE DE CALCUL UNIVERSEL APPLIQUE A DES POINTS D'UNE COURBE ELLIPTIQUE DEFINIE PAR UNE QUARTIQUE, PROCEDE CRYPTOGRAPHIQUE ET COMPOSANT ELECTRONIQUE ASSOCIES La présente invention concerne un procédé de calcul universel appliqué à des points d'une courbe elliptique, et un composant électronique comprenant des moyens de mise en #uvre d'un tel procédé. L'invention est notamment applicable pour la mise en #uvre d'algorithmes cryptographiques du type à clé publique, par exemple dans des cartes à puce. Les algorithmes à clé publique sur courbe elliptique permettent des applications cryptographiques de type chiffrement, signature numérique, authentification... Ils sont notamment très utilisés dans des applications de type carte à puce, parce qu'ils permettent d'utiliser des clés de faible longueur, autorisant des temps de traitement assez courts, et qu'ils peuvent ne pas nécessiter l'utilisation de cryptoprocesseurs pour leur implémentation, ce qui diminue le prix de revient des composants électroniques dans lesquels ils sont implémentés. Avant d'aller plus loin, il convient tout d'abord de faire quelques rappels sur les courbes elliptiques. Les points d'une courbe elliptique sont définis sur un corps x et forment un groupe abélien '(1 Pour un corps fini, le cardinal de '(1 O = m.P= P + P + ... + P, m fois et tel que pour tout entier k Certaines courbes ont des propriétés particulières. Par exemple, une courbe elliptique ayant un point d'ordre 2 a un cardinal divisible par 2. Ou bien, une courbe elliptique ayant un point d'ordre trois est une courbe telle que le cardinal du groupe E(K) est divisible par 3. Les courbes ayant une même propriété particulière sont regroupées dans une même famille. Un point d'une courbe elliptique peut être représenté par plusieurs types de coordonnées, par exemple par des coordonnées affines ou des coordonnées projectives de Jacobi. Il existe différents modèles pour définir une courbe elliptique applicable en cryptographie. Un modèle couramment utilisé est le modèle dit de Weierstrass. Le modèle de Weierstrass est très général puisque toute courbe elliptique peut se ramener sous ce modèle. Chaque modèle peut être utilisé à l'aide des différents types de coordonnées. Par exemple, en coordonnées affines et dans le cas où la caractéristique p du corps K est différente de 2 et 3, le modèle de Weierstrass est défini de la manière suivante : le point neutre 0 (le point à l'infini dans le modèle de Weierstrass) et l'ensemble des points (X, Y) e K#K vérifiant l'équation : E/9(: y2 = X3 + a*X + b (Fl) avec a, b E X tels que 4a3 + 27b2 * 0, forment le groupe des points rationnels d'une courbe elliptique E(K). Le point P peut aussi être représenté par des coordonnées projectives de Jacobi de la forme générale (U V ,W). (X, Y) et (U ,V ,W) sont liées par les relations suivantes : X = U/W et Y = V/W2 (F2) Avec ces coordonnées projectives de Jacobi, l'équation de Weierstrass d'une courbe elliptique devient : E/9( : V2 = U3 + a*UW4 + b*W6 (F3) Les coordonnées projectives sont notamment intéressantes dans les calculs d'exponentiation appliqués à des points d'une courbe elliptique, car ils ne comportent pas de calculs d'inversion dans le corps. Comme le montrent la formule F2, un même point a plusieurs représentations possibles en coordonnées projectives de Jacobi. Aussi, on définit sur \ {(0, 0, 0)}, la relation d'équivalence suivante : deux éléments, de coordonnées (U ,V , W) et (U', V', W') sont dits équivalents et appartiennent à une même classe d'équivalence si et seulement si il existe un élément non nul de K tel que (U', V, W, %1,U, %12V, W) (F4) Les coordonnées d'un l'élément de cette classe sont notées (U : V : W). Selon le modèle qui définit la courbe elliptique et selon les coordonnées avec lesquelles on travaille, différentes formules d'addition, de soustraction et de doublement de points sont applicables. Dans le cas du modèle de Weierstrass, de telles formules sont connues et données par la règle bien connue de la sécante et de la tangente. Dans l'exemple d'une courbe elliptique E donnée par un modèle de Weierstrass en coordonnées affines sur un corps de caractéristique différente de 2 et 3, les formules d'addition, de soustraction et de doublement de points les plus simples sont les suivantes. L'inverse d'un point P1 = (X1, Yl) de la courbe E est le point - P1 = (Xi, Y1) avec Yl = - Yl (F5) L'opération d'addition des points P1 de coordonnées (X1, Yl) et P2 de coordonnées (X2, Y2) de cette courbe, avec P1 # - P2, donne le point P3 = P1 + P2 dont les coordonnées (X3, Y3) sont telles que : X3 = X 2 - XI - X2 (F6) Y3 = ')."X(X1-X3) - Yl, (F7) avec # = (Y1-Y2)/(X1-X2), si P1 # P2 (F8) # = (3xX12+a) / (2XY1), si P1 = P2 (F9) La formule F8 est utilisée pour additionner deux points distincts (P3 = P1 + P2) tandis que la formule F9 est utilisée pour une opération de doublement de point (P3 = 2XP1) . Les formules F6 à F9 ne sont pas valables lorsque P1 et ou P2 est égal au point neutre 0. Le plus souvent, en pratique, on ne réalise pas d'opération de type P3 = P1 + 0. Plus simplement, avant la réalisation d'une opération d'addition de type P3 = P1 + P2, il est testé si l'un au moins des points est égal au neutre 0. On réalise alors l'opération P3 = P1 si P1 = 0 ou P3 = P2 si P2 = O. Les opérations d'addition ou soustraction, de doublement d'un point et l'opération d'addition du neutre sont les opérations de base utilisées dans les algorithmes de multiplication scalaire sur les courbes elliptiques : étant donné un point P1 appartenant à une courbe elliptique E et d un nombre prédéterminé (un entier), le résultat de la multiplication scalaire du point P1 par le nombre d est un point P2 de la courbe E tel que P2 = dXP1 = Pi + Pi +... + Pl, d fois. A noter que si P1 est d'ordre n , alors nxP1 = O, (n+l)xPl = P1+ O = P1 etc., O étant le point neutre. Les algorithmes cryptographiques à clé publique sur courbe elliptique sont basés sur la multiplication scalaire d'un point P1 sélectionné sur la courbe, par un nombre prédéterminé d, une clé secrète. Le résultat de cette multiplication scalaire dxpl est un point P2 de la courbe elliptique. Dans un exemple d'application au chiffrement selon le procédé de El Gamal, le point P2 obtenu est la clé publique qui sert au chiffrement d'un message. Le calcul de la multiplication scalaire P2 = dxpl peut être réalisé par différents algorithmes. On peut en citer quelques-uns, comme l'algorithme de doublement et d'addition ("double and add" dans la littérature anglosaxonne) basé sur la représentation binaire du multiplieur d, l'algorithme dit "d'additionsoustraction" basé sur la représentation binaire signée du multiplieur d, l'algorithme avec fenêtre... Tous ces algorithmes utilisent les formules d'addition, de soustraction, de doublement et d'addition du neutre définies sur les courbes elliptiques. Cependant, ces algorithmes se révèlent sensibles aux attaques visant à découvrir notamment la valeur de la clé secrète d. On peut citer notamment les attaques à canaux cachés, simples ou différentielles. On entend par attaque à canal caché simple ou différentielle, une attaque basée sur une grandeur physique mesurable de l'extérieur du dispositif, et dont l'analyse directe (attaque simple) ou l'analyse selon une méthode statistique (attaque différentielle) permet de découvrir des informations contenues et manipulées dans des traitements dans le dispositif. Ces attaques peuvent ainsi permettre de découvrir des informations confidentielles. Ces attaques ont notamment été dévoilées dans Dl (Paul Kocher, Joshua JAFFE et Benjamin JUN. Differential Power Analysis. Advances in Cryptology CRYPTO'99, vol. 1666 of Lecture Notes in Computer Science, pp.388-397. Springer-Verlag, 1999). Parmi les grandeurs physiques qui peuvent être exploitées à ces fins, on peut citer le temps d'exécution, la consommation en courant, le champ électromagnétique rayonné par la partie du composant utilisée pour exécuter le calcul, etc. Ces attaques sont basées sur le fait que la manipulation d'un bit, c'est à dire son traitement par une instruction particulière, a une empreinte particulière sur la grandeur physique considérée selon la valeur de ce bit et/ou selon l'instruction. Dans les systèmes cryptographiques basés sur des courbes elliptiques, ces attaques visent à identifier une opération (par exemple une addition de points de type P3 = P1 + P2, une addition de type P3 = P1 + 0, une multiplication scalaire de type P3 = d*Pl) dans un ensemble d'opérations réalisées successivement. Si on prend l'exemple d'un algorithme de multiplication scalaire sur courbes elliptiques avec le modèle de Weierstrass, cet algorithme peut être sensible aux attaques à canaux cachés de type simple, car les opérations de base de doublement de points, d'addition de points ou d'addition du point neutre sont sensiblement différentes comme le montre le calcul du lambda dans les formules F8 et F9 supra. Il est donc nécessaire de prévoir des procédés de contre-mesure permettant d'empêcher les différentes attaques de prospérer. En d'autres termes, il est nécessaire de sécuriser les algorithmes de multiplication scalaire. Pour cela, de D2 (Eric Brier et Marc Joye. Weierstrass elliptic curves and side-channel attacks. In D. Naccache, editor, Public Key Cryptography, volume 2274 of Lecture Notes in Computer Science, pages 335-345. Springer-verlag, 2002), il est connu une formulation unique pour une opération de doublement de points et une opération d'addition de points. Ainsi, les deux opérations ne peuvent plus être différenciées par une attaque à canal caché. Cette formulation cependant présente l'inconvénient de ne pas être valable pour réaliser une opération d'addition du point neutre. De D3 (Pierre-Yvan Liardet et Nigel P. Smart. Preventing SPA/DPA in ECC systems using the Jacobi form. In C.K.Koç, D. Naccache, and C. Paar, editors, Cryptographie Hardware and embedded Systems - CHES 2001, volume 2162 of Lecture Notes in Computer Science, pages 391-401. Springer-Verlag, 2001), il est également connu une formulation unique pour une opération d'addition et une opération de doublement de points. Cette formulation cependant n'est applicable que dans le cadre d'une courbe elliptique ayant trois points d'ordre 2. De plus, la formulation proposée dans D3 demande un espace mémoire considérable pour être mise en #uvre car les points sont mémorisés avec quatre coordonnées. Ceci est difficilement compatible avec une application de type carte à puce. De D4 (Marc Joye et Jean-Jacques Quisquater. Hessian elliptic curves and side-channel attacks. In C. K.Koç, D. Naccache, and C. Paar, editors, Cryptographic Hardware and embedded Systems - CHES 2001, volume 2162 of Lecture Notes in Computer Science, pages 402-410. Springer-Verlag, 2001), il est encore connu une formulation unique pour une opération d'addition et une opération de doublement de points. Cependant, cette formulation est applicable uniquement aux courbes elliptiques ayant un point d'ordre trois. D3 et D4 n'évoquent pas le problème de l'addition du neutre. Un but de l'invention est de proposer une solution de protection contre les attaques à canaux cachés, notamment les attaques SPA, plus efficace que les solutions déjà connues. Un autre but de l'invention est de proposer une solution qui peut être mise en #uvre dans un circuit disposant de peu d'espace mémoire, en vue par exemple d'une application de type carte à puce. Ces objectifs sont atteints dans l'invention par une formulation unique permettant de réaliser une addition de deux points distincts, un doublement de points, et une opération d'addition du neutre. La dite formulation selon l'invention est de plus minimale : on limite ainsi le nombre d'opérations à effectuer et l'espace mémoire nécessaire pour sa mise en #uvre. Ainsi, l'invention concerne un procédé de calcul universel sur des points d'une courbe elliptique. Selon l'invention, la courbe elliptique est définie par une équation quartique et des moyens de calcul programmés identiques sont utilisés pour réaliser une opération d'addition de points, une opération de doublement de points, et une opération d'addition d'un point neutre, les moyens de calcul comprenant notamment une unité centrale associée à une mémoire. En d'autres termes, selon l'invention, l'utilisation d'un modèle de la courbe elliptique sous forme de quartique (c'est-à-dire d'un polynôme du 4ème degré) permet d'utiliser une formulation unique pour réaliser des opérations d'addition de points, de doublement de point et de d'addition du point neutre de la courbe. Il devient alors impossible de distinguer l'une de ces opérations des autres par une attaque telle qu'une attaque à canal caché. Par ailleurs, l'utilisation d'un modèle de la courbe sous forme de quartique permet de représenter un point à l'aide de seulement 3 coordonnées projectives, ce qui limite l'espace mémoire nécessaire pour mémoriser les coordonnées d'un point et diminue les temps de calcul lors d'opérations sur des points. Enfin, comme on le verra mieux dans des exemples, la formulation unique obtenue selon l'invention pour réaliser trois types d'addition (addition de deux points distincts, doublement de points et addition du neutre) utilise un nombre limité d'opérations élémentaires de type multiplication, ce qui limite encore les temps de calcul et l'espace mémoire nécessaire. L'invention concerne également l'utilisation d'un procédé de calcul universel tel que décrit ci-dessus, dans un procédé de calcul de multiplication scalaire appliqué à des points d'une courbe elliptique, et / ou dans un procédé cryptographique. L'invention concerne encore un composant électronique comprenant des moyens de calcul programmés pour mettre en #uvre un procédé de calcul universel tel que décrit ci-dessus ou un procédé cryptographique utilisant le procédé de calcul universel ci-dessus. Les moyens de calcul comprennent notamment une unité centrale associée à une mémoire. Enfin, l'invention concerne également une carte à puce comprenant le composant électronique ci-dessus. L'invention et les avantages qui en découlent apparaîtront plus clairement à la lecture de la description qui suit d'exemples particuliers de réalisation de l'invention, donnés à titre purement indicatif et en référence à la figure unique en annexe. Celle-ci représente sous forme de schéma bloc un dispositif 1 électronique apte à réaliser des calculs cryptographiques. Dans les exemples suivants, le dispositif 1 est une carte à puce destinée à exécuter un programme cryptographique. A cette fin, le dispositif 1 réunit dans une puce des moyens de calcul programmés, composés d'une unité centrale 2 reliée fonctionnellement à un ensemble de mémoires dont : - une mémoire 4 accessible en lecture seulement, dans l'exemple du type ROM masque, aussi connue sous l'appellation anglaise "mask read-only memory (mask ROM)", - une mémoire 6 re-programmable électriquement, dans l'exemple du type EEPROM (de l'anglais "electrically erasable programmable ROM"), et - une mémoire de travail 8 accessible en lecture et en écriture, dans l'exemple du type RAM (de l'anglais "random access memory"). Cette mémoire comprend notamment des registres de calcul utilisés par le dispositif 1. Le code exécutable correspondant à l'algorithme de multiplication scalaire est contenu en mémoire programme. Ce code peut en pratique être contenu en mémoire 4, accessible en lecture seulement, et/ou en mémoire 6, réinscriptible. L'unité centrale 2 est reliée à une interface de communication 10 qui assure l'échange de signaux vis-àvis de l'extérieur et l'alimentation de la puce. Cette interface peut comprendre des plots sur la carte pour une connexion dite "à contact" avec un lecteur, et/ou une antenne dans le cas d'une carte dite "sans contact". L'une des fonctions du dispositif 1 est de chiffrer ou déchiffrer un message m confidentiel respectivement transmis vers, ou reçu de, l'extérieur. Ce message peut concerner par exemple des codes personnels, des informations médicales, une comptabilité sur des transactions bancaires ou commerciales, des autorisations d'accès à certains services restreints, etc. Une autre fonction est de calculer ou de vérifier une signature numérique. Pour réaliser ces fonctions, l'unité centrale 2 exécute un algorithme cryptographique sur des données de programmation qui sont stockées dans les parties ROM masque 4 et/ou EEPROM 6. L'algorithme utilisé ici est un algorithme à clé publique sur courbe elliptique dans le cadre d'un modèle sous forme d'une quartique. On s'intéressera plus précisément ici à une partie de cet algorithme, qui permet de réaliser des opérations de base, c'est-à-dire des opérations d'addition : addition de deux points distincts, de deux points identiques (c'est-à-dire une opération de doublement d'un point), de un point quelconque et du point neutre. On rappelle que, selon l'invention, ces trois opérations sont réalisées à partir de la même formulation et sont donc non distinguables l'une de l'autre depuis l'extérieur pour une attaque à canal caché simple. Dans le cadre de l'invention, on s'intéresse aux modèles de courbes elliptiques définies par une équation quartique au lieu de l'équation cubique de Weierstrass habituellement utilisée. La forme générale d'une quartique, en coordonnées affines, est donnée par la relation : Y2 = aO.X4 + al.X3+ a2.X2 + a3. X + a4 (F10) ou, en coordonnées projectives de Jacobi par la relation : V2 = aO.U4 + al.U3W + a2.U2W2 + a3.UW3 + a4.W4 (F11) sachant que les coordonnées affines et les coordonnées projective de Jacobi d'un même point sont liées par la relation : (X , Y) = (U/W , V/W2) (F12) Dans un premier exemple de mise en #uvre de l'invention, on considère une courbe elliptique quelconque, et on réalise une opération de type P3 = P1+P2, avec P1, P2, deux points quelconques de la courbe elliptique. P2 peut être différent de P1, égal à P1 et/ ou égal au neutre 0 de la courbe. L'opération d'addition est réalisée en coordonnées projectives de Jacobi. On montre que toute courbe d'équation Y1 = X3 + a. X + b (équation de Weierstrass) est birationnellement équivalente à une courbe d'équation Y2 = b.X4 + a.X3 + X (F13) L'équation F13 est finalement un cas particulier de l'équation F10, avec aO=b, al=a, a2=0, a3=1, a4=0. En utilisant les relations d'équivalence F12, on montre que l'équation F13 peut également s'écrire, en coordonnées projectives de Jacobi : V2 = b.U4 + a.U3W + UW3 (F14) Lorsque le dispositif de calcul de multiplication scalaire est sollicité pour réaliser une opération d'addition, l'unité centrale 2 mémorise tout d'abord dans des registres de calcul les coordonnées (Ul : V1 : Wl) et (U2 : V2 : W2) des points P1, P2 de la courbe elliptique, à additionner. L'unité centrale 2 calcule ensuite les coordonnées du point P3 selon les relations : U3 = 2.b.U12.U22 + (aUl. U2 + W1.W2).(U1.W2+W1.U2) + 2V1.V2 (F15) V3 = (U12.V2+U22.V1)* (4b.(U1.W2+U2.W1).W1.W2 - 8b2.(U1.U2)2 + a.[(2W1.W2)2 - (aUl.U2+Wl.W2)2] +(W12.V2+W22.V1)* [ (aUl.U2+Wl.W2)2-(2aUl.U2)2+4bUl.U2. (Wl .U2+U1.W2) -4bU1.U2.(U1.W1.V2+U2.W2.V1)(aUl.U2-W1.W2) (F16) W3 = (aUl.U2-Wl.W2)2-4bUl.U2 (U1.W2+U2.W1) (F17) Les coordonnées (U3 : V3 : W3) du point P3 sont finalement mémorisées dans des registres de la mémoire de travail 8, pour être utilisées par ailleurs, par exemple pour la suite de l'algorithme de chiffrement. On vérifie que les formules F15 à F17 sont valides, même dans le cas où P1 = P2 (doublement de point) ou dans le cas où P2 = 0(0 : 0 : 1) (addition du neutre) . Dans un deuxième exemple de mise en #uvre de l'invention, on considère une courbe elliptique ayant un seul point d'ordre deux, de coordonnées affines (#, 0), et on réalise une opération de type P3 = P1+P2, avec P1, P2, deux points quelconques de la courbe elliptique. P2 peut être différent de P1, égal à P1 et / ou égal au neutre 0 de la courbe. L'opération d'addition est donnée en coordonnées projectives de Jacobi. Le point d'ordre deux vérifiant l'équation de Weierstrass définissant la courbe elliptique, # est défini par la relation : 63 + a.6 + b = 0 On montre alors que toute courbe d'équation Y2 = X3 + a. X + b (équation de Weierstrass) et ayant un unique point (#, 0) d'ordre deux est birationnellement équivalente à une courbe d'équation Y2 = E.X4 - 28.X2 + 1 (F18) avec : e = - (a+302/4) /4 et 8 = 30/4 (F19) L'équation F18 est finalement un cas particulier de l'équation F10, avec aO=e, a1=0, a2= -25, a3=0, a4=1. En utilisant les relations d'équivalence F12, on montre que l'équation F18 peut également s'écrire, en coordonnées projectives de Jacobi : V2 = e.x4 - 23.U2X2 + W4 (F20) Le passage du modèle cubique Y2 = X3 + aX + b au modèle quartique Y2 = #.X4 - 28. X 2 + 1 se fait par les transformations suivantes : modèle de modèle Weierstrass quartique (#, 0) # (0 : -1 : 1) (X, Y) (2 (X-8) . (2X+A) (X-6) 2-Y2 . Y) O # (0 : 1 : 1) modèle modèle de quartique Weierstrass (0 : 1 : 1) # O (0 : -1 : 1) # (#, 0) (U : V : W) (2 (V+W2) /U2 - 6/2, W(4V+4W2-36U2)U3) On définit pour ce modèle quartique le point neutre O (0 : 1 : 1) et le point inverse du point P(U : V : W) par le point-P (-U : V : W). Lorsque le dispositif de calcul d'exponentiation est sollicité pour réaliser une opération d'addition, l'unité centrale 2 mémorise tout d'abord dans des registres de calcul les coordonnées (Ul : Vl : Wl) et (U2 : V2 : W2) des points P1, P2 de la courbe elliptique, à additionner. L'unité centrale 2 calcule ensuite les coordonnées du point P3 selon les relations : U3 = U1.W1.V2 + V1.U2.W2 (F21) V3 = [(W1.W2)2 + #(U1.U2)2] *[Vl.V2-25Ul.U2.Wl.W2]+2z.Ul.U2.Wl.W2(Ul2W22+Wl2U22) (F22) W3 = (W1.W2)2 - #(U1.U2)2 (F23) Les coordonnées (U3 : V3 : W3) du point P3 sont finalement mémorisées dans des registres de la mémoire de travail 8, pour être utilisées par ailleurs, par exemple pour la suite de l'algorithme de chiffrement. On vérifie là encore que les formules F21 à F23 sont valides, même dans le cas où P1 = P2 (doublement de point) ou dans le cas où P2 = 0 (addition du neutre) . Dans un troisième exemple de mise en #uvre de l'invention, on considère un cas particulier du deuxième exemple, dans lequel la courbe elliptique a trois points d'ordre deux et est telle que e = 1. Egalement, on réalise une opération de type P3 = P1+P2, avec P1, P2, deux points quelconques de la courbe elliptique. P2 peut être différent de P1, égal à P1 et/ ou égal au neutre 0 de la courbe. L'opération d'addition est donnée en coordonnées projectives de Jacobi pour le modèle U4 - 28.U2.W2 + W4 correspondant au modèle affine y2 = X4 + 28.X2 + 1. L'équation F24 est finalement un cas particulier de l'équation F10 la plus générale, avec aO = 1, al = 0, a2 = -2#, a3 = 0, a4 = 1. Lorsque le dispositif de calcul d'exponentiation est sollicité pour réaliser une opération d'addition, l'unité centrale 2 mémorise tout d'abord dans des registres de calcul les coordonnées (Ul : V1 : Wl) et (U2 : V2 : W2) des points P1, P2 de la courbe elliptique, à additionner. L'unité centrale 2 calcule ensuite les coordonnées du point P3 selon les relations : U3 = U1.W1.V2 + Vl.U2.W2 (F27) V3 = [(W1.W2)2 + (U1.U2)2] *[V1.V2-28U1.U2.W1.W2]+2U1.U2.W1.W2(U12W22+W12U22) (F28) W3 = (W1.W2)2 - (U1.U2)2 (F29) Les coordonnées (U3 : V3 : W3) du point P3 sont finalement mémorisées dans des registres de la mémoire de travail 8, pour être utilisées par ailleurs, par exemple pour la suite de l'algorithme de chiffrement. On vérifie là encore que les formules F27 à F29 sont efficaces, même dans le cas où Pl = P2 (doublement de point) ou dans le cas où P2 = 0 (addition du neutre). D'un point de vue réalisation pratique, les formules F27 à F29 peuvent être réalisées de la manière suivante : r1 # ul.u2 r2 # wl.w2 r3 # rl.r2 r4 # vl.v2 r5 r6 # u2.w2 + v2 u3 Ainsi, selon ce mode de réalisation, les coordonnées du point P3 sont obtenues en un temps égal approximativement à 13 fois le temps de réalisation d'une multiplication du contenu de deux registres + une fois le temps de réalisation d'une multiplication du contenu d'un registre par une constante. Le temps de calcul des coordonnées de P3 à l'aide de la formulation selon l'invention est ainsi bien inférieur au temps de calcul des coordonnées de P3 à l'aide d'une formulation telle que celles de l'art antérieur. A noter que cette approximation est tout à fait réaliste car le temps de réalisation d'une multiplication du contenu d'un registre par une constante ou d'une multiplication du contenu de deux registres est en pratique très supérieur au temps de réalisation d'une addition du contenu de deux registres. Ceci est également vrai dans le cas de la mise en #uvre des formules F15-F17 ou F21-F23. Dans un quatrième exemple de mise en #uvre de l'invention, on considère une courbe elliptique ayant un seul point d'ordre deux, de coordonnées affines (0, 0), et on réalise une opération de type P3 = P1+P2, avec P1, P2, deux points quelconques de la courbe elliptique. P2 peut être différent de P1, égal à P1 et/ ou égal au neutre 0 de la courbe. Comme on l'a vu dans le deuxième exemple : #3 + a.# + b = 0 La courbe d'équation de Weierstrass Y2 = X3 + a.X + b et ayant un unique point (0, 0) d'ordre deux est birationnellement équivalente à une courbe d'équation Y2 = E.X4 - 28.X2 + 1 (F18) avec : # = - (a+302/4) /4 et 8 = 3#/4 (F19) L'opération d'addition est données dans cet exemple en coordonnées affines. Lorsque le dispositif de calcul d'exponentiation est sollicité pour réaliser une opération d'addition, l'unité centrale 2 mémorise tout d'abord dans des registres de calcul les coordonnées (Xl, Y1) et (X2, Y2) des points P1, P2 de la courbe elliptique, à additionner. L'unité centrale 2 calcule ensuite les coordonnées du point P3 selon les relations : X3 = (X1.Y2 + Y1.X2) / [1 - s(X1.X2)2] (F30) Y3 = {[1+s(X1.X2)2].[Y1.Y2 - 25.X1 .X2 ] +28.X1 .X2 . (X12+X22) / [1 - E(X1.X2)2] (F31) Les coordonnées (X3, Y3) du point P3 sont finalement mémorisées dans des registres de la mémoire de travail 8, pour être utilisées par ailleurs, par exemple pour la suite de l'algorithme de chiffrement. On vérifie là encore que les formules F30 à F31 sont valides, même dans le cas où Pl = P2 (doublement de point) ou dans le cas où P2 = 0 (addition du neutre) . REVENDICATIONS 1. Procédé de calcul universel sur des points d'une courbe elliptique, caractérisé en ce que la courbe elliptique est définie par une équation quartique et en ce que des moyens de calcul programmés identiques sont utilisés pour réaliser une opération d'addition de points, une opération de doublement de points, et une opération d'addition d'un point neutre, les moyens de calcul comprenant notamment une unité centrale (2) associée à une mémoire (4, 6, 8). 2. Procédé selon la revendication 1, caractérisé en ce que la courbe elliptique est définie par une équation quartique de type : V2 = b . U4 + a . U3 . W + U . W3 , (U : V : W) étant des coordonnées projectives de Jacobi d'un point P de la courbe elliptique, et a, b étant des paramètres de la courbe elliptique, un point de coordonnées (0 : 0 : 1) étant un point neutre O de la courbe elliptique, un point de coordonnées (U : -V : W) étant un point inverse (-P) du point P de coordonnées (U : V : W) . 3. Procédé selon la revendication 2, dans lequel le point P est également défini en coordonnées affines (X, Y), les coordonnées affines (X, Y) et les coordonnées projectives de Jacobi (U : V : W) du point P étant liées par les relations : (X, Y) = (U/W , V/W2). 4. Procédé selon la revendication 2 ou 3, dans lequel, pour réaliser l'addition d'un premier point P1 défini par des premières coordonnées projectives de Jacobi (Ul : Vl : Wl) et d'un deuxième point P2 défini par des deuxièmes coordonnées projectives de Jacobi (U2 : V2 : W2), les coordonnées du premier point P1 et celles du deuxième point P2 étant mémorisées dans des premiers et deuxièmes registres de la mémoire (4,6, 8), le premier point et le deuxième point appartenant à la courbe elliptique, les moyens de calcul programmés calculent des troisièmes coordonnées projectives de Jacobi (U3 : V3 : W3) définissant un troisième point P3, résultat de l'addition, par les relations suivantes : U3 = 2.b.U12.U22 + (aUl.U2 + W1.W2).(U1.W2+W1.U2) + 2V1.V2 V3 = (U12.V2+U22.V1)* (4b.(U1.W2+U2.W1).W1.W2 - 8b2.(U1.U2)2 + a.[(2W1.W2)2 - (aUl.U2+W1.W2)2] +(W12.V2+W22.V1)* [ (aUl.U2+Wl.W2)2- (2aUl.U2)2+4bUl.U2. (Wl .U2+U1 .W2) -4bU1.U2.(U1.W1.V2+U2.W2.V1)(aUl.U2-W1.W2) W3 = (aUl.U2-W1.W2)2-4bU1.U2(U1.W2+U2.W1) puis mémorisent les troisièmes coordonnées projectives (U3, V3, W3) dans des troisièmes registres de la mémoire (6, 8). 5. Procédé selon la revendication 1, dans lequel la courbe elliptique est une courbe comprenant un seul point d'ordre deux et est définie par une équation quartique de type : V2 = E . U4 -2 cS . U2 . W2 + W4, (U : V : W) étant des coordonnées projectives de Jacobi d'un point P de la courbe elliptique, et #, 8 étant des paramètres de la courbe elliptique, le point de coordonnées (0 : 1 : 1) étant le point neutre O de la courbe elliptique, le point de coordonnées (-U : +V : W) étant le point inverse (-P) du point P(U : V : W). 6. Procédé selon la revendication 5, dans lequel, pour réaliser l'addition du premier point P1 défini par des premières coordonnées projectives de Jacobi (Ul : V1 : Wl) et du deuxième point P2 défini par des deuxièmes coordonnées projectives de Jacobi (U2 : V2 : W2), les coordonnées du premier point P1 et celles du deuxième point P2 étant mémorisées dans des premiers et deuxièmes registres de la mémoire (4,6, 8), le premier point et le deuxième point appartenant à la courbe elliptique, les moyens de calcul programmés calculent des troisièmes coordonnées projectives de Jacobi (U3 : V3 : W3) définissant un troisième point P3, résultat de l'addition, par les relations suivantes : U3 = U1.W1.V2 + Vl.U2.W2 V3 = [(wl.W2)2 + e(Ul.U2)2] *(vl.v2-28U1.U2.w1.w2]+2s.U1.U2.w1.w2(U12W22+W12U22) W3 = (W1.W2)2 - e(Ul.U2)2 puis mémorisent les troisièmes coordonnées projectives (U3, V3, W3) dans les troisièmes registres de la mémoire (6, 8). 7. Procédé selon l'une des revendications 5 à 6, dans lequel la courbe elliptique est définie en coordonnées affines par une équation du type : Y2 = #.X4 -2b.X2 + 1 (X, Y) étant des coordonnées affines d'un point P de la courbe elliptique. 8. Procédé selon la revendication 7, dans lequel, pour réaliser l'addition du premier point P1 défini par des premières coordonnées affines (X1, Yl) et du deuxième point P2 défini par des deuxièmes coordonnées affines (X2, Y2), les coordonnées du premier point P1 et celles du deuxième point P2 étant mémorisées dans des premiers et deuxièmes registres de la mémoire (4,6, 8), le premier point P1 et le deuxième point P2 appartenant à la courbe elliptique, les moyens de calcul programmés calculent des troisièmes coordonnées affines (X3, Y3) définissant un troisième point P3, résultat de l'addition, par les relations suivantes : X3 = (X1.Y2 + Y1.X2) / [1 - e(Xl.X2)2] Y3 = {[1+(X1.X2)2].[Y1.Y2 - 2Ô.X1 .X2] +2e.Xl .X2 . (X12+X22) / [1 - #(X1.X2)2] puis mémorisent les troisièmes coordonnées affines (X3, Y3) dans les troisièmes registres de la mémoire (6, 8) . 9. Procédé selon l'une des revendications 5 à 8, dans lequel la courbe elliptique est une courbe comprenant trois points d'ordre deux et a pour paramètre # = 1. 10. Utilisation d'un procédé de calcul selon l'une des revendications 1 à 9 dans un procédé de calcul de multiplication scalaire appliqué à des points d'une courbe elliptique. 11. Utilisation d'un procédé de calcul selon l'une des revendications 1 à 9 dans un procédé cryptographique. 12. Composant électronique comprenant des moyens de calcul programmés pour mettre en #uvre un procédé selon l'une des revendications 1 à 9, les moyens de calcul comprenant notamment une unité centrale (2) associée à une mémoire (4,6, 8). 13. Composant électronique comprenant des moyens de mise en #uvre d'un algorithme cryptographique utilisant un procédé selon l'une des revendications 1 à 9. 14. Carte à puce comprenant un composant électronique selon la revendication 12 ou 13.