FR 3010562 A1 20150313 FR 1358712 A 20130910 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é. 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. 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). 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. 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. 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. 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. 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. 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 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. 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. 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. 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. 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. 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 . 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. 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. 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. 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. 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) ». 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. 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. 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 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. 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. 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 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. 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. 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. 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. 4. Entité électronique selon l'une des revendications 1 à 3, dans lequel le second point est le produit du premier point par un entier. 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. 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. 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 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 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 -* 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. 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.15