FR2961921A1 - Procede de cryptographie a cle publique base sur une courbe elliptique definie sur un corps fini de caracteristique p > 3, produit programme d'ordinateur, moyen de stockage, dispositif correspondant. - Google Patents

Procede de cryptographie a cle publique base sur une courbe elliptique definie sur un corps fini de caracteristique p > 3, produit programme d'ordinateur, moyen de stockage, dispositif correspondant. Download PDF

Info

Publication number
FR2961921A1
FR2961921A1 FR1055062A FR1055062A FR2961921A1 FR 2961921 A1 FR2961921 A1 FR 2961921A1 FR 1055062 A FR1055062 A FR 1055062A FR 1055062 A FR1055062 A FR 1055062A FR 2961921 A1 FR2961921 A1 FR 2961921A1
Authority
FR
France
Prior art keywords
points
scalar
point
coordinates
coordinate
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.)
Withdrawn
Application number
FR1055062A
Other languages
English (en)
Inventor
Yannick Sierra
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 FR1055062A priority Critical patent/FR2961921A1/fr
Publication of FR2961921A1 publication Critical patent/FR2961921A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

Il est proposé un procédé de cryptographie comprenant une multiplication scalaire (100) d'un point P d'une courbe elliptique, définie sur un corps fini K = GF(p ), p étant un nombre premier, et n un nombre entier supérieur ou égal à 1, par un scalaire k et comprenant, pour au moins une itération de traitement liée à la représentation de k, au moins une opération d'addition et au moins une opération de doublement de points. Les points de la courbe sont représentés par des coordonnées projectives (X, Y, Z). Le procédé est remarquable en ce que p>3 et en ce qu'il comprend : - une étape d'initialisation (301), avant la première des itérations de traitement; et - une étape de correction (302), lors de chaque itération de traitement (102) de sorte que à l'issue de celle-ci des points partageant une même coordonnée X, Y ou Z sont obtenus.

Description

Procédé de cryptographie à clé publique basé sur une courbe elliptique définie sur un corps fini de caractéristique p > 3, produit programme d'ordinateur, moyen de stockage, dispositif correspondant. 1. DOMAINE DE L'INVENTION Le domaine de l'invention est celui de la cryptographie. Plus précisément, l'invention concerne une technique utilisée dans un procédé cryptographique mettant en oeuvre une multiplication scalaire d'un point sur des courbes elliptiques. L'invention peut-être appliquée dans de nombreux cryptosystèmes utilisant des courbes elliptiques, notamment mais non exclusivement dans des dispositifs tels que des cartes à puces, comprenant des microcontrôleurs. 2. ARRIÈRE-PLAN TECHNOLOGIQUE Les cryptosystèmes utilisant des courbes elliptiques ont l'avantage d'offrir à la fois une taille de clé plus petite (pour une sécurité équivalente) que celles qui sont utilisées dans des cryptosystèmes comme le RSA, le DSA, etc... ainsi que des performances, en vitesse d'exécution, intéressantes comparées aux systèmes classiques. Pour rappel, ces cryptosystèmes utilisent des opérations sur un groupe E(K), muni d'une loi additive, constitué de l'ensemble des points P = (x,y) appartenant à une courbe elliptique définie par l'équation de Weierstrass simplifiée suivante : y' = x3 + a.x + b, avec a, b appartenant au corps fini K. Un corps fini K est généralement isomorphe à GF(pn), avec p un nombre premier et n, un entier naturel supérieur ou égal à 1. Une opération récurrente dans les cryptosystèmes basés sur l'utilisation de courbes elliptiques est l'opération consistant à calculer une multiplication scalaire d'un point, Q = k.P = P+P+.... +P à partir d'un point de base P d'une courbe elliptique définie sur un corps fini K, et d'un scalaire k >2. En effet, le problème du logarithme discret (à savoir trouver le scalaire k à partir des points Q et P) défini sur les courbes elliptiques est particulièrement intéressant car aucun algorithme sous-exponentiel n'existe pour résoudre celui-ci. Afin de réaliser cette opération de multiplication scalaire d'un point, un algorithme bien connu consiste à parcourir chaque bit du scalaire k et à effectuer une opération dite de doublement ou une opération d'addition de points (remarquons que la complexité de l'opération de doublement est plus faible que celle d'addition). Plusieurs axes de recherches ont été proposés afin d'accélérer la réalisation d'une multiplication scalaire d'un point : - une première stratégie consiste à modifier la représentation du scalaire k (via l'utilisation d'un recodage NAF (« Non-Adjacent Form » en anglais, ou « forme non-adjacente ») qui est une représentation signée du scalaire k ; en effet, en remarquant que l'opposé d'un point sur une courbe elliptique est calculable facilement (en effet, si le point P = (x,y) appartient à une courbe elliptique E, alors le point -P = (x,-y) correspond à l'inverse du point P si le corps de base a une caractéristique p >3, et le point -P = (x, x+y) correspond à l'inverse du point P si le corps de base a pour caractéristique 2) et permet d'effectuer plus d'opérations de doublement que d'addition dans l'algorithme de multiplication scalaire d'un point ; - une deuxième stratégie consiste à trouver des optimisations des formules utilisées pour réaliser des opérations de doublement et d'addition (par exemple, en utilisant une représentation particulière des coordonnées des points, etc...). La complexité de ces solutions est mesurée en quantifiant le nombre d'opérations effectuées sur le corps fini parmi les opérations suivantes : inversion (notée I), multiplication (notée M), carré (notée C) et addition/soustraction (notée A).
Cependant, utiliser de telles méthodes dans des dispositifs pour lesquels il est possible de mettre en oeuvre des attaques par canaux cachés s'avère risqué, car un attaquant pourra, en analysant par exemple la consommation ou la durée des opérations effectuées au cours de l'exécution de l'algorithme de multiplication scalaire d'un point, reconstituer l'élément secret k.
Un thème de recherche récurrent consiste à chercher à améliorer la vitesse d'exécution d'algorithme de multiplication scalaire d'un point, tout en permettant d'éviter les attaques par canaux cachés. Le document Dl (correspondant à l'article «Fast and Secure Elliptic Curve Scalar Multiplication Over Prime Fields Using Special Addition Chains » de Meloni, publié en 2006) divulgue une technique consistant à utiliser des chaînes d'addition euclidiennes appliquées à la multiplication d'un point sur les courbes elliptiques permettant d'optimiser l'opération de multiplication de points sur des courbes elliptiques définies sur le corps fini GF(p), avec p un nombre premier strictement supérieur à 3. Ainsi l'algorithme de multiplication scalaire d'un point obtenu est intrinsèquement résistant aux attaques par canaux cachés car il n'utilise que des opérations d'additions de points (pour des points possédant la même coordonnée Z, lorsque les points sont représentés en coordonnées jacobiennes (pour rappel, l'utilisation des coordonnées projectives permet d'éviter de calculer des inversions modulaires, en considérant qu'un point P de la courbe représenté par un triplet (X, Y, Z) en coordonnées projectives correspond au point représenté en coordonnées affines (X/Zc, Y/Z"), où les paramètres c et d dépendent du système de coordonnées projectives choisi. Le cas des coordonnées jacobiennes correspond au cas où c=2 et d =3) L'addition en coordonnées jacobiennes des points PI = (XI, YI, ZI) et P2 = (X2, Y2, Z2) donne, en utilisant les formules classiques, un nouveau point P3 = PI + P2 dont les coordonnées (X3, Y3, Z3) sont définies par les équations suivantes : X3 = (Y2Z13 - YIZ23 )2 - (XIZ22 + X2212) (X2212 - XIZ22 )2 Y3= (Y2Z13 - YIZ23) (XIZ22 (X2Z12 - X1Z22 )2 - X3) - Y1Z23 (X2Z12 - X1Z22 )3 Z3 = ZIZ2(X2Z12 - XIZ22) L'opération d'addition de points a donc une complexité de 12 M + 4S + 10A Cependant, dans le document Dl, en supposant que les coordonnées Z1= Z2 = Z, il vient : X3=(Y2-YI/-XI(X2 -XI)2-X2(X2-XI)2 Y3=(Y2 -YI)(XI(X2 X3)-YI(X2 -X1)3 Z3 = Z(X2 - XI) Du fait de l'utilisation de certains calculs redondants (comme par exemple l'élément (X2 - XI), lors du calcul permettant d'obtenir les coordonnées (X3, Y3, Z3), il est possible de factoriser certaines opérations communes, pour cela il suffit de calculer les variables suivantes A = (X2 -X1)2, B = XIA, C = X3A, D = (Y2-Y1)2 puis on obtient les coordonnées du point P3 de la manière suivante : X3 = D-B-C Y3 = ((Y3-YI)(B-X3)-YI(C-B)), Z3 = Z(X2 - XI) 30 Remarquons qu'il n'est pas possible d'utiliser directement cette opération dans un algorithme de multiplication scalaire classique (comprenant les opérations dites de « doublement » et « d'addition ») car rien ne garantit qu'on puisse additionner le point résultant d'une addition, P3, avec le point de base PI. Cependant en remarquant que les points PI et PI' = (XI(X2 - X1)2, YI(X2 - X1)3, Z(X2 - XI)) sont équivalents (par équivalent, il faut entendre appartenant à la même classe de point projectif en coordonnées jacobiennes, i.e (X, Y, Z) = (22X, 23Y, 2Z) avec 2 appartenant à GF(p)*, et tout point appartenant à une même classe peut-être substituer, dans les calculs, par un autre point appartenant à la même classe) en n'utilisant que peu de nouveaux calculs pour obtenir le point PI', et que les points PI' et P3 partagent la même troisième coordonnée (Z3= Z1'), il suffit de remplacer le point PI par le point PI' pour pouvoir appliquer les formules d'addition précédentes et d'adapter l'algorithme de multiplication scalaire d'un point, de sorte que celui-ci ne fasse pas usage d'une opération de doublement (cf. §3 « Scalar point multiplication without doubling » du document Dl).
Cependant, il est possible d'utiliser l'opération de doublement en remplacant le point de base PI par le point PI '= (X1(2Y1)2, Y1(2Y1)3, 2Y1 Z1) (qui sont équivalents), ainsi les points PI' et 2.P1 partagent la même troisième coordonnée. L'opération d'addition de points décrite dans le document Dl a donc une complexité de 5M + 2S + 9A et l'algorithme de multiplication scalaire d'un point a une complexité de (5s-1)M + (2s+4)S + 7sA où s représente la longueur de la chaîne d'addition. Un désavantage de la solution du document Dl est que la recherche de chaînes d'additions d'un entier, et notamment la recherche d'une chaîne d'addition minimale (plus avantageuse d'un point de vue complexité) est une étape dont la complexité est trop importante pour pouvoir être utilisée dans des environnements dans lesquels les ressources (en mémoires et en temps) sont restreints, comme par exemple dans le domaine des cartes à microcontrôleurs. Remarquons que la technique proposée dans le document Dl a fait des émules. Notamment, le document D2 « New Composite Operations and Precomputation Scheme for Elliptic Curve Crvptosystems over Prime Fields » de Longa et al., publié en 2007, divulgue une technique permettant de calculer sur une courbe elliptique définie sur le corps fini GF(p), avec p un nombre premier strictement supérieur à 3, sous la forme de Weierstrass simplifiée E : y' = x3 + a.x + b, avec a, b appartenant GF(p), l'opération suivante : dP+Q = P+... +P+(P+Q) avec d, un petit entier supérieur ou égal à 2, et les points P = (XI, YI, ZI) (représenté en coordonnées jacobiennes), Q = (X2, Y2) (représenté en coordonnées affine) appartenant à la courbe elliptique E, en prenant en compte des formules bien connue de l'Homme du Métier (pour calculer P+Q qui est une opération d'addition « mixed Jacobian affine » dont le résultat est représenté en coordonnées jacobiennes) ainsi que les formule d'addition de Meloni présentées dans le document Dl (en effectuant des substitution de points dans la même classe, pour que la condition sur la troisième coordonnée soit réalisée, cf. §3.1 du document D2) pour calculer la suite de la somme afin d'obtenir d.P+Q. Notamment, lorsque d est égal à 2, ces nouvelles formules permettent d'unifier les opérations d'addition et de doublement pour calculer le point 2.P+Q. Ainsi, grâce à cette formule unifiée d'addition-doublement de complexité de (11M+7S), on obtient une variante des algorithmes de multiplication d'un point (par exemple, on utilisant cette formule dans l'algorithme 3 de l'article « Highly Regular m-ary Powering Ladders » de Joye, publié à la conférence SAC 2009). Cependant, cette technique ne peut pas, par exemple, être utilisée dans l'algorithme dit de « Montgomery Ladder » (décrit en détail par la suite).
Un autre cas d'utilisation des enseignements du document Dl se trouve dans le document D3 (correspondant à l'article intitulé «Elliptic Curve Based Security Processor for RFID », de Lee et al., publié en 2008 IEEE) qui divulgue une nouvelle architecture matérielle (« le processeur EC ») permettant de mettre en oeuvre l'algorithme dit de «Montgomery Ladder », en utilisant les coordonnées de Lopez- Dahab sur des courbes elliptiques définies sur GF(2n), et ce, en utilisant moins de registres que les solutions connues de l'état de la technique, à destination des « radio-étiquettes» (pour « RFID tag » ou « RFID transponder » en anglais). En effet, l'optimisation sur l'algorithme dit de « Montgomery Ladder », permet de n'utiliser que 6 registres (comparés aux 9 registres utilisés précédemment) en mettant en oeuvre une technique similaire à celle divulguée dans le document Dl (à savoir lorsque la coordonnée Z a la même valeur) mais pour une famille de courbes elliptiques différentes (définie sur GF(2n) et non sur GF(p)). Remarquons cependant que la problématique adressée est différente dans les documents Dl et D3. En effet, dans le document D3, la réduction du nombre de registres utilisés induit une augmentation de la complexité des calculs mis en oeuvre, alors que dans le document Dl, on cherche à réduire la complexité des opérations effectuées. Enfin, un autre cas d'application de la technique divulguée dans le document Dl se retrouve dans le document D4 (correspondant à la demande de brevet US 20100040225, intitulée «Fast Scalar Multiplication for Elliptic Curve Cryptosystems over Prime Fields » ) qui divulgue différentes techniques de multiplication de points sur des courbes elliptiques définies sur GF(p), en coordonnées jacobiennes, via une modification de l'algorithme dit de « Montgomery Ladder » en employant les formules d'addition de Meloni (telles que introduites dans le document Dl) et des variantes de celles-ci. Ces variantes n'utilisent pas d'opérations de doublement car les auteurs considèrent que l'adaptation de l'opération de doublement dans l'algorithme dit de «Montgomery Ladder» est trop coûteuse (cf. §0040: «Point doubling used with Meloni's addition formula in the generalized Montgomery ladder point scalar multiplication operation can be ineffcient. For example, for each bit in the scalar, k, a point doubling (e.g., Pk<--2.Pk) would need to be computed with the same z-coordinate as the previous point addition (e.g., Pk<--Po+P). The benefit of the use of the simplified Meloni's addition formula in the point multiplication would be lost. ») Ainsi, 5 modes de réalisations de l'algorithme dit de «Montgomery Ladder » modifié (i.e sans utilisation de l'opération de doublement) sont proposés ayant pour complexité (pour le calcul de la multiplication scalaire d'un point k.P avec P un point de base d'une courbe elliptique définie sur GF(p) et n, la taille de k en bit) : - n.(15M+10S+9A), pour la technique utilisant les formules d'addition (ayant une complexité de 12M+4S +5A) et de doublement (ayant une complexité de 3M+6S+ 4A) de points classique directement dans l'algorithme dit de « Montgomery Ladder »; - n. (14M+ 5S +18A + I), pour la technique utilisant une modification des formules d'addition du document Dl (ayant une complexité de 5M+2S+9) et une adaptation de l'algorithme dit de «Montgomery Ladder» (cf.§0041 du document D4), remarquons que l'opération d'inversion peut être effectué une seule fois, avant la boucle de parcourt des bits de k, ainsi, nous considérons la complexité, pour l'exécution de la boucle de n.(14M+ 5S +18A) (cf. §0045 du document D4) ; - n.(12M+6S+ 13A), pour la technique utilisant l'opération «NewAddSub » (en effet, il y a 13 opérations d'addition/soustraction dans l'opération «NewAddSub » décrite dans l'appendixe A du document D4) ; - n.(11M+5S+ 20A), pour la technique utilisant conjointement les opérations «NewAddSub » et «NewAdd » (en effet, il y a 13 opérations d'addition/soustraction dans l'opération «NewAddSub » et 7 opérations d'addition/soustraction dans l'opération « NewAdd ») ; - n.(10M+6S+ 13A), pour la technique utilisant exclusivement l'opération «LightAddSub » (en effet, il y a 13 opérations d'addition/soustraction dans l'opération «LightAddSub »); - n.(9M+5S+ 26A), pour la technique utilisant les opérations «LightAddSub » et «LightAdd » (en effet, il y a 13 opérations d'addition/soustraction dans les opérations « LightAddSub » et « LightAdd », et deux appels à ces fonctions. De plus cette technique nécessite l'usage de 14 registres de mémoires afin de stocker différentes variables intermédiaires (3 points a 2 coordonnées (x,y), la coordonnées z commune aux points, les registres Rl à R4 ainsi que la variable Psave(x,y,z) ) Cependant, il convient de noter que le coût des opérations d'addition/soustraction n'est pas négligeable par rapport à une multiplication. Dans l'état de la technique, on constate que le coût d'une addition (sans réduction modulaire) est équivalent à 0,18 fois le coût d'une multiplication, et le coût d'une addition modulaire (i.e une addition suivi d'une réduction modulaire) est équivalent à 0,36 fois le coût d'une multiplication modulaire. Ainsi la technique ayant une complexité de n.(9M+5S+ 26A), est, en réalité, proche de la complexité suivante : n.(18M+5S). Fort de ce constat, il convient, dès lors de trouver une autre technique de calcul possédant une complexité inférieure ou identique à ces techniques (tant d'un point de vue utilisation de registres que vis-à-vis de la complexité de calcul), permettant de garantir un niveau de sécurité équivalent sur des courbes elliptiques définies sur GF(pn), avec p un nombre premier strictement supérieur à 3, et n un entier supérieur ou égal à 1. 3. OBJECTIFS DE L'INVENTION L'invention, dans au moins un mode de réalisation, a notamment pour objectif de pallier ces différents inconvénients de l'état de la technique. Plus précisément, dans au moins un mode de réalisation de l'invention, un objectif est de fournir une technique permettant d'être aussi performante voire meilleure que les techniques existantes, tant d'un point de vue utilisation des ressources mémoires que de la complexité des opérations mis en oeuvre lors des calculs. 4. EXPOSÉ DE L'INVENTION Dans un mode de réalisation particulier de l'invention, il est proposé un procédé de cryptographie à clé publique basé sur une courbe elliptique définie sur un corps fini K = GF(pn), p étant un nombre premier, et n un nombre entier supérieur ou égal à 1, ledit procédé utilisant une représentation des points de ladite courbe elliptique en coordonnées projectives consistant à représenter un point de la courbe elliptique par des coordonnées (X, Y, Z), le procédé comprenant une multiplication scalaire d'un point P de la courbe elliptique par un scalaire k, ledit scalaire k étant représenté par une suite d'éléments, ladite multiplication scalaire comprenant, pour un ensemble d'au moins un élément de la représentation du scalaire k, une itération de traitement comprenant au moins une opération d'addition de points A et B, pour générer un point C, et au moins une opération de doublement d'un des points A et B, pour générer un point D, les points C et D générés au cours de ladite itération de traitement étant soit utilisés comme points A et B dans une itération de traitement suivante, soit utilisés comme des points intermédiaires pour des calculs suivants dans ladite itération de traitement à l'issue de laquelle un résultat des calculs est constitué de deux points F et H, lesdits points F et H étant utilisés comme points A et B dans une itération de traitement suivante. Le procédé est remarquable en ce que p est un nombre premier strictement supérieur à 3, et en ce qu'il comprend : - une étape d'initialisation (301), avant la première des itérations de traitement, des points A et B telle que les points A et B partagent une même valeur pour une des coordonnées X, Y et Z, dite coordonnée commune ; et - une étape de correction (302), lors de chaque itération de traitement (102), de sorte que les points C et D partagent une même valeur pour ladite coordonnée commune, et que lesdits points F et H, lorsqu'ils sont calculés, partagent une même valeur pour ladite coordonnée commune.
Ainsi, contrairement au solutions de l'état de la technique, cette technique propose d'effectuer conjointement au moins une opération de doublement et d'addition pour laquelle le résultat obtenu, à savoir les deux points calculés (provenant de l'addition et du doublement) , partagent la même coordonnée (la coordonnée X, You Z en fonction du résultat de l'étape d'initialisation).
Ainsi, cette technique fournit une contre-mesure, lorsqu'elle est mise en oeuvre dans un composant électronique, contre les attaques par canaux cachés qui est peu coûteuse à mettre en oeuvre. De façon avantageuse, un tel procédé est remarquable en ce que, avant l'étape d'initialisation, les points A et B sont tels que : A=P et B=2.P, en ce que la représentation du scalaire k comprend une pluralité d'ensembles d'au moins un élément de la représentation du scalaire k, et en ce que ladite multiplication scalaire comprend une itération de traitement pour chaque ensemble de ladite pluralité d'ensembles d'au moins un élément de la représentation du scalaire k. Ainsi, en traitant la pluralité d'ensembles d'au moins un élément de la représentation du scalaire k, on optimise la complexité de la multiplication scalaire d'un point. Remarquons que ce mode de réalisation permet d'obtenir des gains en temps (lors de l'exécution du procédé), comparé au mode de réalisation, où la présente invention n'est mise en oeuvre que pour un certain nombre d'itérations de traitement.
Dans un autre mode de réalisation, les ensembles peuvent comprendre un nombre d'éléments différent. Avantageusement, un tel procédé est remarquable en ce que le triplet (X Y, Z) représentant un point de la courbe elliptique correspond à des coordonnées projectives homogènes.
Ainsi, l'utilisation de coordonnées projectives homogènes permet d'adapter avantageusement l'opération de doublement et d'addition dans le cadre de l'exécution d'un algorithme de multiplication scalaire d'un point. Selon une caractéristique avantageuse, un tel procédé est remarquable en ce que dans l'étape d'initialisation, les points A et B partagent une même valeur pour la coordonnée Z et en ce que l'étape de correction comprend une étape de calcul des coordonnées des points C = (Xc, Yc, Zc) et D = (XD, YD, ZD) telle que Zc = ZD = Z', à partir des points A _ (XA, YA, Z) et B = (XB, YB, Z) en fonction des relations suivantes : Xc = V (2 (XA +XB) (XAXB + aZ2) +4bZ3-xE ZU) XD = U. (XB2 - aZ 2)2 - 8bXBZ 3 Z'=U.Z.V avec V = 4XB (XB2 + aZ 2) + 4bZ 3, U = (XA- XB)2 et xE un élément correspondant à une première coordonnée, en coordonnée affine, d'un point E = (XE , yE) tel que A - B = +- E.
Ainsi, en utilisant ces formules, l'opération de multiplication scalaire d'un point a une complexité réduite comparée à celles de l'état de la technique. Selon une caractéristique avantageuse, dans un autre mode de réalisation de l'invention, le procédé est remarquable en ce dans l'étape d'initialisation, les points A et B partagent une même valeur pour la coordonnée Z et en ce que l'étape de correction comprend une étape de calcul des coordonnées des points C = (Xc, Yc, Zc) et D = (XD, YD, ZD) telle que Zc = ZD = Z', à partir des points A = (XA, YA, Z) et B = (XB, YB, Z) en fonction des relations suivantes : Xc = V'. (N. (N2-M2+aZ2)+8bZ3-2.Z. U.xE) XD = U (((N-M)2 - 4aZZ)2 - 8. (N-M). 8bZZZ) Z' = 2.Z. U. V' avec : M = XA- XB N- XA+XB U=M2 V' = 4. ((N-M). ((N-M) 2+aZ2)+ 8bZ.Z 2) et XE un élément correspondant à une première coordonnée, en coordonnée affine, d'un point E = (XE , yE) tel que A - B = +- E. Selon une caractéristique avantageuse, dans un autre mode de réalisation de l'invention, le procédé est remarquable en ce dans l'étape d'initialisation, les points A et B partagent une même valeur pour la coordonnée X et en ce que l'étape de correction comprend une étape de calcul des coordonnées des points C = (Xc, Yc, Zc) et D = (XD, YD, ZD) telle que Xc = XD = X', à partir des points A = (X, YA, ZA) et B = (X, YB, ZB) en fonction des relations suivantes : X'=M.N Zc=N.0 ZD = M. (4. (X.ZB. ()Ir'+aZB2)) +4bZB2. ZB2) avec : M = 2. (X.ZB+X. ZA). (X2+a. ZB. ZA) +4b. (ZA.ZB/-XE. U N = (X2-a.ZB2)2-8b.X.ZB.ZB2 u= (X.ZB-X ZA)2 et XE un élément correspondant à une première coordonnée, en coordonnée affine, d'un point E = (xg , yE) tel que A - B = +- E. Selon une caractéristique avantageuse, dans un autre mode de réalisation de l'invention, le procédé est remarquable en ce que le triplet (X, Y, Z) représentant un point de la courbe elliptique correspond à des coordonnées jacobiennes. Selon une caractéristique avantageuse, dans un autre mode de réalisation de l'invention, le procédé est remarquable en ce que le triplet (X, Y, Z) représentant un point de la courbe elliptique correspond à des coordonnées de Lopez-Dahab. Selon une caractéristique avantageuse, dans un autre mode de réalisation de l'invention, le procédé est remarquable en ce que la suite d'éléments représentant le scalaire k est une suite de bits et en ce ledit ensemble d'au moins un élément de la représentation du scalaire k est constitué de un bit. Ainsi, dans ce mode de réalisation, on effectue, une itération de traitement, bit par bit, et ce soit pour une partie des bits du scalaire k soit pour l'ensemble des bits du scalaire k.
Selon une caractéristique avantageuse, dans un autre mode de réalisation de l'invention, le procédé est remarquable en ce que la suite d'éléments représentant le scalaire k est une suite de bits et en ce ledit ensemble d'au moins un élément de la représentation du scalaire k est constitué de deux bits.
Ainsi, dans ce mode de réalisation, on effectue, une itération de traitement, en traitant des ensembles comprenant deux bits. Ainsi, lorsque l'ensemble de bits est égal à 00 ou 11, les calculs suivants sont effectués : F := 2.A + B et H := 4.A. En remarquant que 4.A = 2. (2A) et 2.A+B = A + (A+B), on peut factoriser les opérations utilisées. Lorsque l'ensemble de bits est égal à 01 ou 10, les calculs suivants sont effectués : F := 2.A + B et H H. = 2.B. En remarquant à nouveau que 2.A +B = A + (A+B), on peut factoriser les opérations utilisées. Ainsi, cette technique fournit une contre-mesure, lorsqu'elle est mise en oeuvre dans un composant électronique, contre les attaques par canaux cachés tout en réduisant la complexité des calculs mis en oeuvre.
Dans un autre mode de réalisation, d'autres techniques de représentation du scalaire k, peuvent être utilisées. Notamment, une représentation possible consiste à utiliser une représentation sous forme NAF. Dans un autre mode de réalisation de l'invention, il est proposé un produit programme d'ordinateur qui comprend des instructions de code de programme pour la mise en oeuvre du procédé précité (dans l'un quelconque de ses différents modes de réalisation), lorsque ledit programme est exécuté sur un ordinateur. Dans un autre mode de réalisation de l'invention, il est proposé un moyen de stockage lisible par ordinateur, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur pour mettre en oeuvre le procédé précité (dans l'un quelconque de ses différents modes de réalisation). Dans un autre mode de réalisation de l'invention, il est proposé un dispositif permettant la mise en oeuvre d'un procédé de cryptographie à clé publique basé sur une courbe elliptique définie sur un corps fini K = GF(pn), p étant un nombre premier, et n un nombre entier supérieur ou égal à 1, des points de ladite courbe elliptique étant représentés via des coordonnées projectives (X, Y, Z), ledit dispositif permettant de réaliser une multiplication scalaire d'un point P de la courbe elliptique par un scalaire k, ledit scalaire k étant représenté par une suite d'éléments, ladite multiplication scalaire comprenant, pour un ensemble d'au moins un élément de la représentation du scalaire k, une itération de traitement utilisant des premiers moyens pour effectuer au moins une opération d'addition de points A et B, générant un point C, et des deuxièmes moyens pour effectuer au moins une opération de doublement d'un des points A et B, générant un point D, les points C et D générés au cours de ladite itération de traitement étant soit utilisés comme points A et B dans une itération de traitement suivante, soit utilisés comme des points intermédiaires pour des calculs suivants, effectués par des troisièmes moyens, dans ladite itération de traitement à l'issue de laquelle un résultat des calculs est constitué de deux points F et H, lesdits points F et H étant utilisés comme points A et B dans une itération de traitement suivante. Ce dispositif est remarquable en ce qu'il peut traiter des calculs utilisant un nombre premier p strictement supérieur à 3, et en ce qu'il comprend : - des moyens d'initialisation, utilisés avant la première des itérations de traitement, des points A et B de sorte que les points A et B partagent une même valeur pour une des coordonnées X, Y et Z, dite coordonnée commune ; et - des moyens de correction, utilisés lors de chaque itération de traitement, de sorte que les points C et D partagent une même valeur pour ladite coordonnée commune, et que lesdits points F et H, lorsqu'ils sont calculés, partagent une même valeur pour ladite coordonnée commune. Dans un mode de réalisation, un tel dispositif est remarquable en ce que, avant d'utiliser les moyens d'initialisation, des moyens d'instanciation des points A et B sont utilisés de sorte que A=P et B=2.P, en ce qu'il comprend des premiers moyens de représentation permettant de représenter le scalaire k sous la forme d'une pluralité d'ensembles d'au moins un élément de la représentation du scalaire k, et en ce qu'il comprend des moyens de calculs permettant la mise en oeuvre de ladite multiplication scalaire comprenant une itération de traitement pour chaque ensemble de ladite pluralité d'ensembles d'au moins un élément de la représentation du scalaire k. Dans un mode de réalisation, un tel dispositif comprend des moyens permettant de traiter le triplet (X, Y, Z) représentant un point de la courbe elliptique lorsque celui-ci correspond à des coordonnées projectives homogènes.
Dans un mode de réalisation, les moyens d'initialisation des points A et B d'un tel dispositif permettent d'obtenir des points A et B qui partagent une même valeur pour la coordonnée Z, et les moyens de correction d'un tel dispositif comprennent des moyens de calcul des coordonnées des points C = (Xc, Yc, Zc) et D = (XD, YD, ZD) telle que Zc = ZD = Z', à partir des points A = (XA, YA, Z) et B = (XB, YB, Z) en fonction des relations suivantes : Xc = V (2(XA+XB)(XAXB+aZ2)+4bZ3-xEZU) X~=U.(XB2-aZ2)2-8bXBZ3 Z'=U.Z.V avec V = 4XB (XB2 + aZ 2) + 4bZ 3 , u = (XA- XB)2 et XE un élément correspondant à une première coordonnée, en coordonnée affine, d'un point E = (XE , yE) tel que A - B = +- E. Dans un autre mode de réalisation, les moyens d'initialisation des points A et B d'un tel dispositif permettent d'obtenir des points A et B qui partagent une même valeur pour la coordonnée Z, et les moyens de correction d'un tel dispositif comprennent des moyens de calcul des coordonnées des points C = (Xc, Yc, Zc) et D = (XD, YD, ZD) telle que Zc = ZD = z' ,à partir des points A = (XA, YA, Z) et B = (XB, YB, Z) en fonction des relations suivantes : Xc = V'. (N. (N2-M2+aZ2)+8bZ3-2.Z. U.xE) XD = U. (((N-M)2 - 4aZZ)2 - 8. (N-M). 8bZZZ) Z' = 2.Z. U. V' avec : M = XA- XB N = XA+XB U=M2 V' = 4. ((N-M).((N-M) 2+aZ2)+ 8bZ.Z2) et XE un élément correspondant à une première coordonnée, en coordonnée affine, d'un point E = (XE, yE) tel que A -B = +- E. Dans un autre mode de réalisation, les moyens d'initialisation des points A et B d'un tel dispositif permettent d'obtenir des points A et B qui partagent une même valeur pour la coordonnée X, et les moyens de correction d'un tel dispositif comprennent des moyens de calcul des coordonnées des points C = (Xc Yc Zc) et D = (XD, YD, ZD) telle que Xc = XD = X', à partir des points A = (X, YA, ZA) et B = (X, YB, ZB) en fonction des relations suivantes : X'=M.N Zc =NU ZD = M. (4. (X.ZB. (X2+aZB2))+4bZB2.ZB2) avec : M = 2. (X.ZB+X. ZA). (X2+a. ZB. ZA) +4b. (ZA. ZB/-XE. U N = (X2-a.ZB2)2-8b.X.ZB.ZB2 U = (X.ZB-X ZA)2 et XE un élément correspondant à une première coordonnée, en coordonnée affine, d'un point E = (xg , yE) tel que A - B = +- E. Dans un autre mode de réalisation, le dispositif comprend des moyens permettant de traiter le triplet (X, Y, Z) représentant un point de la courbe elliptique lorsque celui-ci correspond à des coordonnées jacobiennes. Dans un autre mode de réalisation, le dispositif comprend des moyens permettant de traiter le triplet (X, Y, Z) représentant un point de la courbe elliptique lorsque celui-ci correspond à des coordonnées de Lopez-Dahab. Dans un autre mode de réalisation, le dispositif comprend des deuxièmes moyens de représentation de sorte que la suite d'éléments représentant le scalaire k est une suite de bits et en ce ledit ensemble d'au moins un élément de la représentation du scalaire k est constitué de un bit. Dans un autre mode de réalisation, le dispositif comprend des troisièmes moyens de représentation de sorte que la suite d'éléments représentant le scalaire k est une suite de bits et en ce ledit ensemble d'au moins un élément de la représentation du scalaire k est constitué de deux bits. 5. LISTE DES FIGURES D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante, donnée à titre d'exemple indicatif et non limitatif, et des dessins annexés, dans lesquels : - la figure 1 présente un organigramme montrant le traitement effectué lors de l'algorithme dit de « Montgomery Ladder » classique ; - la figure 2 présente un schéma-bloc d'un dispositif mettant en oeuvre la présente invention; - la figure 3 présente un organigramme montrant le traitement effectué lors de l'algorithme dit de « Montgomery Ladder » modifié selon un mode de réalisation particulier de l'invention. 6. DESCRIPTION DÉTAILLÉE L'algorithme dit de «Montgomery Ladder» classique (100) est décrit de la manière suivante (quelque soit la courbe elliptique choisie, définie sur n'importe quel type de corps fini GF(pn), avec p un nombre premier), en relation avec la figure 1 : Entrée : un entier k (comprenant t bits : kt_I ... ko) strictement supérieur à 2, un point P sur la courbe Ea,b,h Sortie : le point k.P étape l (101): PI : =Pet P2 := 2.P étape 2 : pour i de t-2 à 0 effectuer les traitements suivants (102) en fonction de la valeur du bit ki : si ki = 1 alors (PI, P2) := ADD-DBL(Pj, P2) i.e cela consiste à effectuer les opérations suivantes : PI := PI + P2 et P2 : = 2. P2 ; si ki = 0 alors (P2, PI) := ADD-DBL(P2, PI) i.e cela consiste à effectuer les opérations suivantes : P2 : = PI + P2 et PI := 2. PI ; (où l'opération (C,D) : = ADD-DBL(A, B) consiste à instancier des points C et D d'une courbe elliptique de la manière suivante, en effectuant une opération d'addition C : = A+B et une opération de doublement D := 2.B, où A et B sont des points d'une courbe) étape 3 (103): retourner PI (correspondant au point k.P) Ainsi, nous pouvons remarquer que le coeur de cet algorithme (étape 2) consiste à effectuer à la fois une addition ainsi qu'un doublement de points (via l'utilisation de la fonction ADD-DBL). Ainsi, l'utilisation de cet algorithme permet de se prémunir contre les attaques de type SPA (« Simple Power Analysis »). Il convient de remarquer que, lors de ce calcul, la différence des points P2 et PI est toujours égale au point P. Lorsque l'on utilise des coordonnées projectives pour représenter les points utilisés dans cet algorithme, il existe une optimisation bien connue de l'algorithme dit de «Montgomery Ladder » consistant à omettre l'utilisation de la coordonnée Y lors des calculs et à effectuer une opération particulière pour retrouver cet élément (car la clé publique dans certains cryptosystèmes tel le schéma de signature ECDSA est stockée en coordonnée affine). L'utilisation des coordonnées projectives permet d'éviter de calculer des inversions modulaires, en considérant qu'un point P de la courbe est représenté par un triplet (X, Y, Z) en coordonnées projectives correspond au point représenté en coordonnées affines (X/Zc, Y/Zd) , où les paramètres c et d dépendent du système de coordonnées projectives. Dans la suite de la description, nous nous plaçons dans le cadre de l'utilisation de coordonnées projective homogènes (à savoir lorsque les paramètres c et d vérifient les conditions suivantes : c=1 et d=1). À partir des points A = (XA, YA, ZA) et B = (XB, YB, ZB), une boucle de l'algorithme dit de « Montgomery Ladder » consiste à effectuer un appel à la fonction ADD-DBL qui, à partir des points A et B, détermine les points suivants : C = A + B et D = 2.B dont les coordonnées sont définies par les équations suivantes (en connaissant les coordonnées du point E telle que A - B = +- E dont les coordonnées affines sont (XB, yE). Dans le cadre de l'algorithme dit de «Montgomery Ladder », cette différence est connue car, le point E est toujours égal au point P ), référencées (1) par la suite : Xc=2(XAZB-XBZA)(XAXB+aZAZB)+4bZA2ZB2-XEZc Zc = (XA ZB XBZA)2 X~ = (XB2 - aZB 2)2 - 8bXBZB3 ZD = 4(XB ZB (XB2 + aZB 2)) +4b ZB4 Cette opération de doublement et d'addition a donc une complexité de 14M + 5S + l l A. Pour rappel, nous considérons que deux points PI = (XI, YI, ZI) et P2 = (X2, Y2, Z2) sont dits équivalents, lorsqu'ils appartiennent à la même classe de point projectif, (i.e dans le cas de l'utilisation de coordonnées projective homogène, cela correspond au cas où (XI, YI, ZI) = (2X2, 2Y2, 2Z2) avec 2 appartenant à GF(p)*), et tout point appartenant à (1) une même classe peut-être substituer, dans les calculs, par un autre point appartenant à la même classe. Dans un mode de réalisation de l'invention, il est proposé de considérer le cas où les points A et B partagent la même coordonnée Z (ou Y ou X). Notons que le mode de réalisation pour lequel la coordonnée Z est partagée permet d'obtenir une meilleure factorisation des opérations intermédiaires). Ceci est notamment possible en modifiant l'étape 1 (101) de l'algorithme (100), en introduisant une étape d'initialisation (301) : une fois que les points PI et P2 sont instanciés de la manière suivante : PI : = P et P2 := 2.P , on peut choisir de remplacer ces points par des points équivalents de sorte qu'ils partagent la même coordonnée Z (par exemple en prenant un élément 21 = Z2 et un élément 22 = ZI on substitue les points PI et P2 par les points PI '= (21X1, 21Y1, 21Z1) et P2' = (22 X2, 22 Y2, 22 Z2) i.e on obtient à la fin de l'étape 1 modifiée PI : =P1' et P2 : =Pz' ). Les nouvelles formules d'addition et de doublement nécessitent de connaître les coordonnées du point A - B = +- E ; le point E a pour coordonnées (en coordonnées affines) (XB, YE). À partir des points A = (XA, YA, ZA) et B = (XB, YB, ZB), une boucle de l'algorithme dit de «Montgomery Ladder », lorsque ZA = ZB= Z détermine les points suivants : C = A + B et D = 2.B dont les coordonnées sont définies par les équations suivantes (remarquons nous n'avons pas besoin de la coordonnée Y): Xc = Z (2 (XA +Xe) (XAXB + aZ2) +4bZ3-xE ZU) Zc=UZ2 X~=(XB2-aZ2)2-8bXBZ3 ZD= Z V avecV=4XB(XB2 +aZ2)+4bZ3etU=(XA-XB)2 Cependant, les points C et D ne partagent, a priori pas la même coordonnée Z. Il convient dès lors de modifier les formules précédentes afin d'obtenir de nouvelles formules permettant d'obtenir des points C et D qui partagent la même coordonnée Z. Pour ce faire, il convient de procéder de la sorte : - on multiplie par le scalaire V les coordonnées Xc et Zc, on obtient un point équivalent (i.e dans la même classe) du point C, de même on multiplie les coordonnées de XD et ZD par le scalaire U, on obtient un point équivalent du point D. - on multiplie les coordonnées du point C équivalent, Xc et Zc, par le scalaire (1/Z), ainsi les points obtenues possèdent les mêmes coordonnées Z et on peut faire appel à nouveau à l'opération de doublement et d'addition. On obtient dès lors les formules suivantes, qui peuvent être utilisées telles quelles pour chaque traitement lié à la valeur d'un bit du scalaire k (i.e ces formules correspondent à une modification de la fonction ADD-DBL (302)) : Xc = V (2 (XA+XB) (XAXB+aZ2) +4bZ3-xE ZU) XD = U. (XB2 - aZ 2)2 - 8bXBZ 3 Z ' = U.Z. V (pour itération suivante, on effectue l'initialisation suivante Z := Z') avec V=4XB(XB2 + aZ 2) + 4bZ 3 et U = (XA- XB)2 Le coût de cette opération de doublement et d'addition est donc de 12M+4S+12A. De plus, on économise un registre comparé à la solution classique (cette opération ne nécessite que 5 registres pour stocker des calculs intermédiaires et les registres comprenant les données suivantes : XA , XB , Z et XE. De manière similaire, on peut adapter les formules (1) en considérant, cette-foisci, queXA =XB=X : XC = 2 (X ZB - XBZA) (X2 + aZA ZB) + 4b ZA2ZB2 - XE Zc Z~ = (X ZB - XZA)2 X~=(X2-aZB2)2-8bXZB3 ZD =4(XZB(X2+aZB2))+4bZB4 et en corrigeant les formules de sorte que l'on obtient, suite aux opérations de doublement et d'addition de points qui vérifient la condition d'égalité de coordonnées, cette fois-ci, sur la coordonnée X. Il suffit pour cela de multiplier les coordonnées du point C par l'élément XD et de multiplier les coordonnées du point D par l'élément Xc. Ainsi, les formules suivantes peuvent être utilisées telles quelles pour chaque traitement lié à la valeur d'un bit du scalaire k (i.e ces formules correspondent à une modification de la fonction ADD-DBL (302)) : X'=M.N Zc=N.0 ZD = M. (4. (X.ZB. (X2+aZB2))+4bZB2.ZB2) avec M = 2. (XZB+X. ZA). (X2+a. ZB.ZA) +4b. (ZA. ZB)2-xE. U N = (X2-a.ZB2)2-8b.X.ZB.ZB2 U = (X.ZB-XZA)2 Ainsi, le principe général de l'invention consiste à adapter l'algorithme de «Montgomery Ladder» en supposant que les points partagent la même 3ème coordonnées Z et en utilisant le fait que l'on peut substituer deux points qui sont équivalents (deux points sont dits équivalents, lorsqu'ils appartiennent à la même classe de point projectif, (i.e dans le cas de l'utilisation de coordonnées homogène, cela correspond au cas où (X, Y, Z) = (2X, 2Y, 2Z) avec 2 appartenant à GF(pn)*), dans les calculs. Ainsi en choisissant des 2 particuliers, au final les deux points obtenus partagent de nouveau la 3ème coordonnée Z. Cette remarque s'adapte dans le cas où l'on choisit que cela soit la coordonnée X qui soit identique, et non la coordonnée Z, ou encore la coordonnée Y. Enfin, contrairement aux solutions de l'état de la technique, la présente technique, dans un mode de réalisation particulier, vise à corriger et factoriser conjointement les formules d'addition et de doublement et non uniquement les formules d'additions de points puis les formules de doublement de points. Dans un autre mode de réalisation de l'invention, on obtient d'autres formules permettant d'effectuer à partir des points A = (XA, YA, ZA) et B = (XB, YB, ZB), lorsque ZA = ZB= Z les opérations suivantes : C = A + B et D = 2.B qui sont définies par les équations suivantes (remarquons nous n'avons pas besoin de la coordonnées Y): M !VA- XB N = XA+XB U=M2 V' = 4. ((N-M).((N-M) 2+aZ2)+ 8bZ.Z2) Xc = V'. (N. (N2-M2+aZ2)+8bZ3-2.Z. U.xE) XD = U (((N-M)2 - 4aZZ)2 - 8. (N-M).8bZZZ) Z' = 2.Z. U. V' (l'élément Z 'correspond à la coordonnée partagée des points C et D). Le coût de cette opération de doublement et d'addition est donc de 11M+5S+16A. De plus, cette opération de doublement et d'addition ne nécessite que l'utilisation de 5 registres, comparé à la solution classique, pour stocker des calculs intermédiaires, et les registres comprenant les données suivantes : XA , XB , Z et XE. Ces formules correspondent à un mode de réalisation de la fonction ADD-DBL (302). De manière évidente, l'Homme du Métier peut adapter cette technique pour le cas des coordonnées jacobiennes (c=2 et d=3)) et des coordonnées de Lopez-Dahab (c=1 et d=2)), en tenant compte des facteurs d'exposants associés aux éléments 2 à choisir pour établir de nouvelles formules de doublement et d'addition. Notamment, pour le cas des coordonnées jacobiennes, on obtient, en partant des équations (1) que l'on corrige, les formules suivantes pour obtenir les coordonnées des points C et D (lorsque les points A et B partagent la même coordonnée Z) : Xc = 4V2. (2. U. (XA XB + aZ4) + 4b Z6 - xE (Z. U) 2) XD=V.U2.((XB2-aZ4)2-8bXB.Z6) Z'=2.Z.U.V U=XA+XB V = XB .(XB2+ aZ4) + bZ6 Cette opération de doublement et d'addition a donc une complexité de 13M + 7S + 16A. Le mode de réalisation de l'invention utilisant des coordonnées de Lopez-Dahab est similaire au mode de réalisation de l'invention utilisant des coordonnées projectives homogènes (précédemment décrit). Seule l'étape de reconstruction de la coordonnée Y diffère. Remarquons que l'Homme du Métier n'aurait pas été incité à procéder à de telles modifications car les enseignements du document D3 l'en auraient dissuadé : en effet, l'adaptation de l'algorithme dit de « Montgomery Ladder », pour des courbes définies en caractéristique 2, avec des coordonnées Lopez-Dahab, donne des formules plus complexes (mais utilisant moins de registres mémoires).
Remarquons aussi que l'Homme du Métier n'aurait pas été incité à procéder à de telles modifications car les enseignements du document D4 l'en auraient dissuadé comme mentionné dans la partie 2 de la présente demande de brevet. Enfin, il convient de noter que l'algorithme dit de «Montgomery Ladder» classique (100) peut aussi être décrit de la manière suivante: Entrée : un entier k (comprenant t bits : kt_I... ko) strictement supérieur à 2, un point P sur la courbe Ea,b,h Sortie : le point k.P étape 1 : (PI, P2) := MLrecursive(k, (P, 2.P), 0) ; étape 2 : retourner PI (correspondant au point k.P). La fonction MLrecursive utilisée lors de l'étape 1 de l'algorithme dit de « Montgomery Ladder » classique est une fonction définie de manière récursive : Entrée : un entier k (comprenant t bits : kt_I... ko) strictement supérieur à 2, un couple de points (PI, P2), chaque point appartenant à la courbe Ea,b,l, et un indice i Sortie : un couple de points (PI, P2) étape 1 : Si (i = floor(k) ) alors retourner (PI, P2), sinon (PI, P2) := MLrecursive(k, (PI,P2), i+l) ; étape 2 : si ki = 1 alors (PI, P2) := ADD-DBL(PI, P2) ; si ki = 0 alors (P2, PI) := ADD-DBL(P2, PI); étape 3 : Retourner (PI, P2). La fonctionfloor utilisée dans l'étape 1 de la fonction MLrecursive correspond à la fonction partie entière. Notons que les différents modes de réalisation de la fonction ADD-DBL décrient précédemment permettent d'implémenter la fonction MLrecursive.
La figure 2 présente un schéma-bloc d'un dispositif mettant en oeuvre la présente invention. Plus précisément, le dispositif 200, mettant en oeuvre un mode de réalisation de l'invention, comprend une mémoire vive 202 (ou RAM, pour « Random Access Memory » en anglais), qui fonctionne comme une mémoire principale d'une unité de calcul 201 (ou CPU, pour « Central Processing Unit » en anglais). La capacité de cette mémoire vive 202 peut être étendue par une mémoire vive optionnelle, connectée à un port d'expansion (non illustré sur la figure 2). Le dispositif 200 comprend également une mémoire morte 203 (ou ROM, pour « Read Only Memory » en anglais). Après la mise sous tension, l'unité de calcul 201 est capable d'exécuter des instructions contenues dans la mémoire vive 202 et relatives à un programme d'ordinateur, une fois ces instructions chargées à partir de la mémoire morte 203 ou d'une mémoire externe (non illustrée sur la présente figure). Un tel programme d'ordinateur, s'il est exécuté par l'unité de calcul 201, permet l'exécution d'une partie ou la totalité des étapes de l'algorithme de la figure 3, dans le cas où le dispositif 200 représente une carte à puce. Dans une variante de réalisation, une partie ou la totalité des étapes de l'algorithme de la figure 3, peuvent également être implémentées sous forme de matériel dans un composant programmable de type FPGA (« Field Programmable Gate Array » en anglais) ou de type ASIC (« Application-Specific Integrated Circuit » en anglais).

Claims (4)

  1. REVENDICATIONS1. Procédé de cryptographie à clé publique basé sur une courbe elliptique définie sur un corps fini K = GF(pn), p étant un nombre premier, et n un nombre entier supérieur ou égal à 1, ledit procédé utilisant une représentation des points de ladite courbe elliptique en coordonnées projectives consistant à représenter un point de la courbe elliptique par des coordonnées (X, Y, Z), le procédé comprenant une multiplication scalaire (100) d'un point P de la courbe elliptique par un scalaire k, ledit scalaire k étant représenté par une suite d'éléments, ladite multiplication scalaire comprenant, pour un ensemble d'au moins un élément de la représentation du scalaire k, une itération de traitement (102) comprenant au moins une opération d'addition de points A et B, pour générer un point C, et au moins une opération de doublement d'un des points A et B, pour générer un point D, les points C et D générés au cours de ladite itération de traitement étant soit utilisés comme points A et B dans une itération de traitement suivante, soit utilisés comme des points intermédiaires pour des calculs suivants dans ladite itération de traitement à l'issue de laquelle un résultat des calculs est constitué de deux points F et H, lesdits points F et H étant utilisés comme points A et B dans une itération de traitement suivante, ledit procédé étant caractérisé en ce que p est un nombre premier strictement supérieur à 3, et en ce qu'il comprend : - une étape d'initialisation (301), avant la première des itérations de traitement, des points A et B telle que les points A et B partagent une même valeur pour une des coordonnées X, Y et Z, dite coordonnée commune ; et - une étape de correction (302), lors de chaque itération de traitement (102), de sorte que les points C et D partagent une même valeur pour ladite coordonnée commune, et que lesdits points F et H, lorsqu'ils sont calculés, partagent une même valeur pour ladite coordonnée commune.
  2. 2. Procédé selon la revendication 1, caractérisé en ce que, avant l'étape d'initialisation, les points A et B sont tels que : A=P et B=2.P, en ce que la représentation du scalaire k comprend une pluralité d'ensembles d'au moins un élément de la représentation du scalaire k,et en ce que ladite multiplication scalaire comprend une itération de traitement pour chaque ensemble de ladite pluralité d'ensembles d'au moins un élément de la représentation du scalaire k.
  3. 3. Procédé selon l'une quelconque des revendications 1 et 2, caractérisé en ce que le triplet (X, Y, Z) représentant un point de la courbe elliptique correspond à des coordonnées projectives homogènes. 4 Procédé selon la revendication 3, caractérisé en ce que dans l'étape d'initialisation, les points A et B partagent une même valeur pour la coordonnée Z et en ce que l'étape de correction comprend une étape de calcul des coordonnées des points C = (Xc Yc Zc) et D = (XD, YD, ZD) telle que Zc = ZD = Z', à partir des points A = (XA, YA, Z) et B = (XB, YB, Z) en fonction des relations suivantes : Xc = V (2(XA+XB)(XAXB+aZ2)+4bZ3-xEZU) XDU.(XB2-aZ2)2-8bXBZ3 Z'=U.Z.V avec V = 4XB (XB2 + aZ 2) + 4bZ 3 , u = (XA- XB)2 et XE un élément correspondant à une première coordonnée, en coordonnée affine, d'un point E = (XE , yE) tel que A - B = +- E. 5 Procédé selon la revendication 3, caractérisé en ce dans l'étape d'initialisation, les points A et B partagent une même valeur pour la coordonnée Z et en ce que l'étape de correction comprend une étape de calcul des coordonnées des points C = (Xc Yc Zc) et D = (XD, YD, ZD) telle que Zc = ZD = Z', à partir des points A = (XA, YA, Z) et B = (XB, YB, Z) en fonction des relations suivantes : Xc = V'. (N. (N2-M2+aZ2)+8bZ3-2.Z. U.xE) XD = U. (((N-M)2 - 4aZZ)2 - 8. (N-M). 8bZZZ) Z' = 2.Z. U. V' avec : M = XA- XB N = XA+XB U=M2 30 V' =
  4. 4. ((N-M). ((N-M) 2+aZ2)+ 8bZ.Z 2) 20 25et XE un élément correspondant à une première coordonnée, en coordonnée affine, d'un point E = (XE , yE) tel que A - B = +- E. 6. Procédé selon la revendication 3, caractérisé en ce dans l'étape d'initialisation, les points A et B partagent une même valeur pour la coordonnée X et en ce que l'étape de correction comprend une étape de calcul des coordonnées des points C = (Xc Yc Zc) et D = (XD, YD, ZD) telle que Xc = XD = X', à partir des points A = (X, YA, ZA) et B = (X, YB, ZB) en fonction des relations suivantes : X'=M.N Zc =NU ZD = M (4. (X.ZB. ()Ir'+aZB2)) +4bZB2. ZA avec : M = 2. (XZB+X. ZA). (X2+a. ZB. ZA) +4b. (ZA.ZB/-XE. U N = (X2-a.ZB2)2-8b.X.ZB.ZB2 U = (X.ZB-XZA)2 et XE un élément correspondant à une première coordonnée, en coordonnée affine, d'un point E = (xg , yE) tel que A - B = +- E. 7. Procédé selon l'une quelconque des revendications 1 et 2, caractérisé en ce que le triplet (X, Y, Z) représentant un point de la courbe elliptique correspond à des coordonnées jacobiennes. 8. Procédé selon l'une quelconque des revendications 1 et 2, caractérisé en ce que le triplet (X, Y, Z) représentant un point de la courbe elliptique correspond à des coordonnées de Lopez-Dahab. 9. Procédé selon l'une quelconque des revendications 1 et 2, caractérisé en ce que la suite d'éléments représentant le scalaire k est une suite de bits et en ce ledit ensemble d'au moins un élément de la représentation du scalaire k est constitué de un bit. 10. Procédé selon l'une quelconque des revendications 1 et 2, caractérisé en ce que la suite d'éléments représentant le scalaire k est une suite de bits et en ce ledit ensemble d'au moins un élément de la représentation du scalaire k est constitué de deux bits. 11. Produit programme d'ordinateur, comprenant des instructions de code de programme pour la mise en oeuvre du procédé selon au moins une des revendications 1 à 10 lorsque ledit programme est exécuté sur un ordinateur.12. Moyen de stockage lisible par ordinateur, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur pour mettre en oeuvre le procédé selon au moins une des revendications 1 à 10. 13. Dispositif permettant la mise en oeuvre d'un procédé de cryptographie à clé publique basé sur une courbe elliptique définie sur un corps fini K = GF(pn), p étant un nombre premier, et n un nombre entier supérieur ou égal à 1, des points de ladite courbe elliptique étant représentés via des coordonnées projectives (X, Y, Z), ledit dispositif permettant de réaliser une multiplication scalaire d'un point P de la courbe elliptique par un scalaire k, ledit scalaire k étant représenté par une suite d'éléments, ladite multiplication scalaire comprenant, pour un ensemble d'au moins un élément de la représentation du scalaire k, une itération de traitement utilisant des premiers moyens pour effectuer au moins une opération d'addition de points A et B, générant un point C, et des deuxièmes moyens pour effectuer au moins une opération de doublement d'un des points A et B, générant un point D, les points C et D générés au cours de ladite itération de traitement étant soit utilisés comme points A et B dans une itération de traitement suivante, soit utilisés comme des points intermédiaires pour des calculs suivants, effectués par des troisièmes moyens, dans ladite itération de traitement à l'issue de laquelle un résultat des calculs est constitué de deux points F et H, lesdits points F et H étant utilisés comme points A et B dans une itération de traitement suivante, ledit dispositif étant caractérisé en ce qu'il peut traiter des calculs utilisant un nombre premier p strictement supérieur à 3, et en ce qu'il comprend : - des moyens d'initialisation, utilisés avant la première des itérations de traitement, des points A et B de sorte que les points A et B partagent une même valeur pour une des coordonnées X, Y et Z, dite coordonnée commune ; et - des moyens de correction, utilisés lors de chaque itération de traitement, de sorte que les points C et D partagent une même valeur pour ladite coordonnée commune, et que lesdits points F et H, lorsqu'ils sont calculés, partagent une même valeur pour ladite coordonnée commune. 14. Dispositif selon la revendication 13, caractérisé en ce que, avant d'utiliser les moyens d'initialisation, des moyens d'instanciation des points A et B sont utilisés de sorte que A =P et B=2.P,en ce qu'il comprend des premiers moyens de représentation permettant de représenter le scalaire k sous la forme d'une pluralité d'ensembles d'au moins un élément de la représentation du scalaire k, et en ce qu'il comprend des moyens de calculs permettant la mise en oeuvre de ladite multiplication scalaire comprenant une itération de traitement pour chaque ensemble de ladite pluralité d'ensembles d'au moins un élément de la représentation du scalaire k. 15. Dispositif selon l'une quelconque des revendications 13 et 14, caractérisé en ce qu'il comprend des moyens permettant de traiter le triplet (X, Y, Z) représentant un point de la courbe elliptique lorsque celui-ci correspond à des coordonnées projectives homogènes.
FR1055062A 2010-06-24 2010-06-24 Procede de cryptographie a cle publique base sur une courbe elliptique definie sur un corps fini de caracteristique p > 3, produit programme d'ordinateur, moyen de stockage, dispositif correspondant. Withdrawn FR2961921A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1055062A FR2961921A1 (fr) 2010-06-24 2010-06-24 Procede de cryptographie a cle publique base sur une courbe elliptique definie sur un corps fini de caracteristique p > 3, produit programme d'ordinateur, moyen de stockage, dispositif correspondant.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1055062A FR2961921A1 (fr) 2010-06-24 2010-06-24 Procede de cryptographie a cle publique base sur une courbe elliptique definie sur un corps fini de caracteristique p > 3, produit programme d'ordinateur, moyen de stockage, dispositif correspondant.

Publications (1)

Publication Number Publication Date
FR2961921A1 true FR2961921A1 (fr) 2011-12-30

Family

ID=43466607

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1055062A Withdrawn FR2961921A1 (fr) 2010-06-24 2010-06-24 Procede de cryptographie a cle publique base sur une courbe elliptique definie sur un corps fini de caracteristique p > 3, produit programme d'ordinateur, moyen de stockage, dispositif correspondant.

Country Status (1)

Country Link
FR (1) FR2961921A1 (fr)

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "Cryptology ePrint Archive: Report 2010/309 -Co-Z Addition Formulae and Binary Ladders on Elliptic Curves", XP002618782, Retrieved from the Internet <URL:http://eprint.iacr.org/2010/309> [retrieved on 20110126] *
DIGITAL-DETECTIVE. CO.UK: "WebDate - photo d'écran ŸWeb Last Modified Date and Time http://eprint.iacr.org/2010/309.pdf", WEBDATE, 26 January 2011 (2011-01-26), XP002618783 *
N. MELONI: "New Point Addition Formulae for ECC Applications", WAIFI 2007, LNCS, vol. 4547, 21 June 2007 (2007-06-21), Springer-Verlag, Berlin, Allemagne, pages 189 - 201, XP019095576, ISBN: 978-3-540-73073-6 *
R. GOUNDAR ET AL.: "Co-Z Addition Formulae and Binary Ladders on Elliptic Curves", 25 May 2010 (2010-05-25), XP002618780, Retrieved from the Internet <URL:http://eprint.iacr.org/2010/309.pdf> [retrieved on 20110126] *
YONG KI LEE ET AL: "Elliptic-Curve-Based Security Processor for RFID", IEEE TRANSACTIONS ON COMPUTERS, vol. 57, no. 11, November 2008 (2008-11-01), IEEE SERVICE CENTER, LOS ALAMITOS, CA, USA, pages 1514 - 1527, XP011233433, ISSN: 0018-9340, DOI: DOI:10.1109/TC.2008.148 *

Similar Documents

Publication Publication Date Title
EP2946284B1 (fr) Procédé de cryptographie comprenant une opération de multiplication par un scalaire ou une exponentiation
CA2614120C (fr) Multiplication de points d&#39;une courbe elliptique
EP1166494B1 (fr) Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique
EP3117555B1 (fr) Procédé de contremesure pour un composant électronique mettant en oeuvre un algorithme de cryptographie sur une courbe elliptique
EP2546737A1 (fr) Protection d&#39;un calcul d&#39;exponentiation modulaire par addition d&#39;une quantité aléatoire
FR2977952A1 (fr) Protection d&#39;un calcul d&#39;exponentiation modulaire par multiplication par une quantite aleatoire
EP1368747B1 (fr) Procede et dispositif pour reduire le temps de calcul d&#39;un produit, d&#39;une multiplication et d&#39;une exponentiation modulaire selon la methode de montgomery
EP1381936B1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme cryptographique du type a cle publique sur une courbe elliptique
FR2941798A1 (fr) Appareil pour calculer un resultat d&#39;une multiplication scalaire
CA2712178A1 (fr) Procede et dispositifs de contre-mesure pour cryptographie asymetrique
WO2000059157A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique
EP1804161B1 (fr) Détection de perturbation dans un calcul cryptographique
CA2712180A1 (fr) Procede et dispositifs de contre-mesure pour cryptographie asymetrique a schema de signature
EP1493078B1 (fr) Procédé cryptographique protégé contre les attaques de type à canal caché
EP2983083B1 (fr) Procede de cryptographie sur courbe elliptique comprenant une detection d&#39;erreur
WO2001028153A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa
EP1804160B1 (fr) Protection d&#39;un calcul cryptographique effectué par un circuit intégré
FR2961921A1 (fr) Procede de cryptographie a cle publique base sur une courbe elliptique definie sur un corps fini de caracteristique p &gt; 3, produit programme d&#39;ordinateur, moyen de stockage, dispositif correspondant.
WO2004111831A2 (fr) Procede de contre-mesure par masquage de l&#39;accumulateur
FR3010562A1 (fr) Procede de traitement de donnees et dispositif associe
EP1639450A1 (fr) Procede de contre-mesure dans un composant electronique
WO2002001343A1 (fr) Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique de koblitz
EP2275925B1 (fr) Procédé de traitement cryptographique de données et dispositif associé
Masson Algorithmic of curves in the context of bilinear and post-quantum cryptography
EP2544398B1 (fr) Procédé de calcul de fonctions d&#39;encodage dans une coubre elliptique et coprocesseur cryptographique correspondant

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

CD Change of name or company name

Owner name: IDEMIA FRANCE, FR

Effective date: 20181009

PLFP Fee payment

Year of fee payment: 10

CA Change of address

Effective date: 20200826

CJ Change in legal form

Effective date: 20200826

ST Notification of lapse

Effective date: 20210205