Brevet FR3076150A1 — publié le 20190628

I Procédé et module électronique de calcul d'une quantité cryptographique, procédé et dispositif électronique de traitement d'un message et programme d'ordinateur associés La présente invention concerne un procédé de calcul d'une quantité cryptographique relative à un message, le procédé étant mis en oeuvre par un module électronique de calcul. Le procédé de calcul comprend le calcul d'une quantité cryptographique relative au message via un algorithme cryptographique, l'algorithme cryptographique étant un algorithme à logarithme discret sur une courbe elliptique définie sur un groupe cyclique. La présente invention concerne également un procédé de traitement d'un message, le procédé étant mis en oeuvre par un dispositif électronique de traitement. Le procédé de traitement comprend l'acquisition du message ; le calcul d'une quantité cryptographique relative au message acquis via un tel procédé de calcul ; et la transmission, à destination d'un dispositif électronique récepteur, de la quantité cryptographique calculée. La présente invention concerne aussi un programme d'ordinateur comportant des instructions logicielles qui, lorsqu'elles sont exécutées par un ordinateur, mettent en oeuvre un tel procédé de calcul et/ou un tel procédé de traitement. La présente invention concerne également un module électronique de calcul d'une quantité cryptographique relative à un message et un dispositif électronique de traitement d'un message comprenant un tel module de calcul. La présente invention concerne le domaine de la cryptographie, notamment celui de la cryptographie asymétrique. La cryptographie asymétrique permet de réaliser des protocoles d'échange de clés ou de signature électronique. Le chiffrement RSA (nommé par les initiales de ses trois inventeurs Ronald RIVEST, Adi SHAMIR et Leonard ADLEMAN) est un algorithme de cryptographie asymétrique qui est lent et gourmand en temps de calcul. Notamment pour remédier à un tel inconvénient, les courbes elliptiques ont été développées pour les protocoles d'échange de données. De fait, les courbes elliptiques sont intéressantes pour la cryptographie par l'existence sur le groupe (E(Fp), +) d'une loi d'addition et de multiplication par un scalaire k. La loi de multiplication par un scalaire k définit le problème dit du logarithme discret sur courbes elliptiques, consistant à retrouver le scalaire k à partir de deux points P et [k]P de la courbe elliptique. Ce problème est 2 difficile d'un point de vue calculatoire, c'est-à-dire que sa résolution n'est pas polynomiale en la taille en bits des éléments. Pour assurer que le problème soit effectivement difficile, il convient que la courbe elliptique considérée vérifie un certain nombre de critères de sûreté. 5 Une courbe elliptique est considérée comme sûre si la courbe est insensible à une attaque générique du type rho de Pollard, à une attaque de type transfert, aux attaques utilisant des endomorphismes issus de la multiplication complexe, à une attaque sur la courbe associée par le phénomène de retournement (aussi désigné par le terme anglais de « twist »). Une courbe elliptique est considérée comme rigide, si sa génération est 10 complètement explicite et ne comporte aucune étape arbitraire. Toutefois, les courbes elliptiques sûres de l'état de la technique présentent un niveau de sécurité inférieur ou égal à 128 bits de sécurité. Le but de l'invention est alors de proposer un procédé et un module de calcul 15 d'une quantité cryptographique relative à un message, qui permettent d'améliorer le niveau de sécurité, tout en ayant un temps de calcul réduit. A cet effet, l'invention a pour objet un procédé de calcul d'une quantité cryptographique relative à un message, le procédé étant mis en oeuvre par un module électronique de calcul et comprenant : 20 - le calcul de la quantité cryptographique relative au message via un algorithme cryptographique, l'algorithme cryptographique étant un algorithme à logarithme discret sur une courbe elliptique définie sur un groupe cyclique, la courbe elliptique vérifiant l'équation suivante : y2 = x3 + A. x + B mod p le groupe cyclique étant une extension de corps E(F2) de degré 2 du corps Fp 25 avec p = 2255-19, et les coefficient A et B vérifiant respectivement A = (-30 +vi-2) et B = (56 - la courbe elliptique vérifiant alors l'équation suivante : E(Fp2): y2 x3 + (-30 + 11410. 1/2) + (56- 16-n° . V-2-) mod p. 30 Avec le procédé de calcul selon l'invention, l'algorithme cryptographique permet alors d'obtenir, de par la courbe elliptique telle que définie ci-dessus, un niveau de sécurité égal à 254 bits de sécurité, généralement assimilé à un niveau de sécurité de 256 bits, puissance de 2 (28) très proche de 254, tout en conservant le temps de calcul réduit associé à une courbe elliptique. 3 Suivant d'autres aspects avantageux de l'invention, le procédé de calcul comprend une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles : - l'extension E(F2) de degré 2 du corps Fp est définie par le polynôme 5 irréductible x2 - 2, chaque élément l'extension E(F2) s'écrivant sous la forme x + a. y, où a est une racine dudit polynôme ; - l'extension E(F2) de degré 2 du corps IFp a un cardinal égal à 4.N, où N est un facteur premier ; - la courbe elliptique possède des premier et deuxième endomorphismes distincts, 10 pour l'obtention d'une décomposition GLV en dimension 4 ; et - le premier endomorphisme vérifie l'équation suivante : = (X, y) 1--) (( x2 c2,2x(704/99))P Y2 ( 12 + C22(7041):9)) - L'invention a également pour objet un procédé de traitement d'un message, le procédé étant mis en oeuvre par un dispositif électronique de traitement et comprenant : 15 - l'acquisition du message ; - le calcul d'une quantité cryptographique relative au message acquis via un procédéde calcul tel que défini ci-dessus ; et - la transmission, à destination d'un dispositif électronique récepteur, de la quantité cryptographique calculée. 20 Suivant un aspect avantageux de l'invention, le procédé de traitement comprend la caractéristique suivante : - la quantité cryptographique calculée est une signature électronique du message ou le chiffré du message. L'invention a également pour objet un programme d'ordinateur comportant des 25 instructions logicielles qui, lorsqu'elles sont exécutées par un ordinateur, mettent en oeuvre un procédé de calcul tel que défini ci-dessus et/ou un procédé de traitement tel que défini ci-dessus. L'invention a également pour objet un module électronique de calcul d'une quantité cryptographique relative à un message, le module électronique de calcul étant 30 configuré pour calculer la quantité cryptographique relative au message via un algorithme cryptographique, l'algorithme cryptographique étant un algorithme à logarithme discret sur une courbe elliptique définie sur un groupe cyclique, la courbe elliptique vérifiant l'équation suivante : y2 = x3 + A. x + B mod p 4 le groupe cyclique étant une extension de corps E(F2) de degré 2 du corps IFp avec p = 2255-19, et les coefficient A et B étant respectivement égaux à A = (-30 + ii4-1.-,r2-) et B = (56 - ), 5 la courbe elliptique vérifiant alors l'équation suivante : E(F7,2): y2 =" X3 + (-30 + V2). x + (56 - W.-N/2) mod p. L'invention a également pour objet un dispositif électronique de traitement d'un message, le dispositif comprenant : - un module d'acquisition configuré pour acquérir un message ; 10 - un module de calcul configuré pour calculer une quantité cryptographique relative au message acquis, le module de calcul étant tel que défini ci-dessus ; et - un module de transmission configuré pour transmettre, à destination d'un dispositif électronique récepteur, la quantité cryptographique calculée. 15 Ces caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels : .\- - la figure 1 est une représentation schématique d'un dispositif électronique, selon l'invention, de traitement d'un message, le dispositif comprenant un module d'acquisition 20 d'un message, un module de calcul d'une quantité cryptographique relative au message acquis, et un module de transmission de la quantité cryptographique calculée à deepation d'un dispositif électronique récepteur ; et - la figure 2 est un organigramme d'un procédé, selon l'invention, de traitement du message, le procédé étant mis en oeuvre par le dispositif électronique de traitement de la 25 figure 1. Sur la figure 1, un dispositif électronique de traitement 10 est configuré pour traiter un message M, et comprend un module d'acquisition 12 configuré pour acquérir le message M, un module de calcul 14 configuré pour calculer une quantité cryptographique 30 S relative au message acquis M, et un module de transmission 16 configuré pour transmettre, à destination d'un dispositif électronique récepteur, non représenté, la quantité cryptographique calculée S. Dans l'exemple de la figure 1, le dispositif électronique de traitement 10 comprend une unité de traitement d'informations 20 formée par exemple d'une mémoire 22 et d'un 5 processeur 24 associé à la mémoire 22. Il comprend en outre dans cet exemple des moyens d'entrée/sortie 26 et éventuellement un écran d'affichage 28. Dans l'exemple de la figure 1, le module d'acquisition 12, le module de calcul 14 et le module de transmission 16 sont réalisés chacun sous forme d'un logiciel exécutable 5 par le processeur 24. La mémoire 22 de l'unité de traitement d'informations 20 est alors apte à stocker un logiciel d'acquisition configuré pour acquérir le message M, un logiciel de calcul configuré pour calculer la quantité cryptographique S relative au message acquis M et un logiciel de transmission configuré pour transmettre, à destination du dispositif électronique récepteur, la quantité cryptographique calculée S. Le processeur 24 10 de l'unité de traitement d'informations 20 est alors apte à exécuter le logiciel d'acquisition, le logiciel de calcul et le logiciel de transmission. En variante non représentée, le module d'acquisition, le module de calcul et le module de transmission sont réalisés chacun sous forme d'un composant logique programmable, tel qu'un FPGA (de l'anglais Field Programmable Gate Array), ou encore 15 sous forme d'un circuit intégré dédié, tel qu'un ASIC (de l'anglais Application Specific Integrated Circuit). Le module d'acquisition 12 est configuré pour acquérir le message M, et est par exemple configuré pour recevoir le message M de la part des moyens d'entrée/sortie 26. Les moyens d'entrée/sortie 26 comportent par exemple un clavier ou encore un lecteur de 20 support informatique. En variante, le module d'acquisition 12 est configuré pour acquérir le message M via un récepteur de données, apte à recevoir le message M de la part d'un autre équipement électronique, non représenté. Le module électronique de calcul 14 est configuré pour calculer la quantité cryptographique S relative au message M via un algorithme cryptographique, l'algorithme 25 cryptographique étant un algorithme à logarithme discret sur une courbe elliptique définie sur un groupe cyclique G. La quantité cryptographique S calculée est une signature électronique du message M ou bien le chiffré du message M. Le groupe cyclique G est une extension de corps E(F2) de degré 2 du corps Fp 30 avec p = 2255-19, et la courbe elliptique vérifie l'équation suivante : y2 = x3 + A. x + B mod p (1) 140 r- avec les coefficients A et B respectivement égaux à A = (-3°2) et B (56 _ si6io La courbe elliptique vérifie alors l'équation suivante : 35 E(Fp2): y2 =x3 mod p (2) 11 11 6 En complément facultatif, l'extension de degré 2 du corps est définie par le polynôme irréductible x2 - 2, chaque élément l'extension E(F2) s'écrivant sous la forme x + a. y, où a est une racine dudit polynôme. L'extension de degré 2 du corps a de préférence un cardinal égal à 4.N, où N est 5 un facteur premier. N est par exemple un facteur premier de 508 bits. En utilisant le groupe G d'ordre N, la sécurité obtenue est alors de 254 bits. Le cardinal de la forme 4.N permet aussi d'utiliser la courbe sous forme d'Edwards, ce qui permet d'obtenir une arithmétique plus efficace pour la loi de groupe de la courbe elliptique. 10 En complément facultatif, la courbe elliptique possède des premier ip et deuxième 111 endomorphismes distincts, pour l'obtention d'une décomposition GLV (pour Gallant, Lambert et Vanstone) en dimension 4. Le principe de la décomposition GLV est connu en soi, et est par exemple décrit dans l'article « Faster point multiplication on elliptic curves with efficient endormorphisms » de Gallant et al, présenté lors de la 21ème conférence 15 annuelle de cryptologie internationale à Santa Barbara en Californie en 2001. Le premier endomorphisme ip est par exemple l'endomorphisme [N,ÎÎ], et vérifie l'équation suivante : (x, y) 1-4 (( x c2,2))P ( y ( + C2,2))P) (3) Lorsque le premier endomorphisme ip est l'endomorphisme [V], le deuxième 20 endomorphisme 141 associé audit premier endomorphisme 1,/) pour l'obtention d'une décomposition GLV en dimension 4 est par exemple l'endomorphisme [V-11]. L'obtention du deuxième endomorphisme IF comprend, par exemple, les sous-étapes suivantes : - le calcul d'un premier facteur irréductible du polynôme de division P11 qui permet 25 de générer un sous-groupe d'ordre 11 du groupe de 11 torsion E[11] d'ordre 121 ; - la construction d'un isomorphisme g à partir des formules de Vélu permettant d'expliciter une isogénie de degré 11; et - la détermination de l'endomorphisme [V-11] en appliquant le Frobenius à l'isomorphisme g. 30 Le polynôme de division P11, les formules de Vélu et le Frobenius sont bien connus de l'homme du métier. En variante, le deuxième endomorphisme W est l'endomorphisme [V-22] qui est par exemple obtenu à partir des formules de Stark. 7 En complément, pour effectuer la multiplication d'un point P par un scalaire k, le module de calcul 14 est configuré en outre pour décomposer le scalaire k en quatre éléments k1, k2, k3, k4, via la multiplication du vecteur (k, 0, 0, 0) par une matrice Q de décomposition de scalaire. La matrice Q est par exemple une matrice obtenue via 5 l'algorithme LLL, connu en soi, pour décomposer les scalaires. Le module 14 est ensuite configuré pour décomposer le point P en quatre points : P1, P2, P3 et P4, P1 étant le point P, P2 étant le résultat de l'application du premier endomorphisme lp au point P, P3 étant le résultat de l'application du deuxième endomorphisme 111 au point P et P4 étant le résultat de l'application du premier 10 endomorphisme au point P3. Le module de calcul 14 est enfin configuré pour appliquer une fonction de quadruple exponentiation simultanée aux points P1, P2, P, P4 avec les coefficients k1, k2, k3, k4. La multiplication du point P par le scalaire k vérifie alors par exemple l'équation 15 suivante : kP = k1. P1 + k2. P2 + k3. P3 + k4. P4 (4) s'écrivant aussi sous la forme suivante : kP = k1. P + k2.11)(P) + k3. tP(P) + k4. 0 W(P) (5) Le module de transmission 16 est ensuite configuré pour transmettre la quantité 20 cryptographique calculée S à destination du dispositif électronique récepteur, non représenté. Le module de transmission 16 est par exemple relié à un émetteur, tel qu'un émetteur radioélectrique, aux fins de cette transmission. Le fonctionnement du dispositif électronique de traitement 10 selon l'invention va désormais être expliqué à l'aide de la figure 2 représentant un organigramme d'un 25 procédé, selon l'invention, de traitement du message M. Lors d'une étape initiale 100, le dispositif de traitement 10 acquiert, via son module d'acquisition 12, le message M, qui a été par exemple préalablement reçu via les moyens d'entrée/sortie 26. Le dispositif de traitement 10 calcule ensuite, lors de l'étape 110 et via son module 30 de calcul 14, la quantité cryptographique S relative au message acquis M. La quantité cryptographique calculée S est une signature électronique du message M ou bien le chiffré dudit message M. Le calcul de la quantité cryptographique S relative au message M est effectué via l'application de l'algorithme cryptographique qui est l'algorithme à logarithme discret sur la 35 courbe elliptique définie sur le groupe cyclique G, la courbe elliptique vérifiant l'équation (2) précédente. 8 Pour effectuer la multiplication du point P par le scalaire k, le module de calcul 14 commence, par exemple, par décomposer le scalaire k en quatre éléments (k1, k2, k3, k4) via la multiplication du vecteur (k, 0, 0, 0) par la matrice de décomposition scalaire Q, puis décompose ensuite le point P en quatre points P1, P2, P3, P4 obtenus en utilisant 5 les premier ip et deuxième 11/ endomorphismes distincts, tels que décrits précédemment et associés à la courbe elliptique. Le module de calcul 14 calcule ensuite le produit du point P par le scalaire k en faisant appel à la fonction de quadruple exponentiation simultanée, vérifiant par exemple l'équation (5) précédente. 10 Le dispositif de traitement 10 transmet enfin, lors de l'étape 120 et via son module de transmission 16, la quantité cryptographique S calculée lors de l'étape 110, au dispositif électronique récepteur, non représenté. L'homme du métier comprendra alors que la courbe elliptique utilisée par le module de calcul 14 pour le calcul de la quantité cryptographique S, vérifiant l'équation 15 (2), est particulièrement avantageuse. En effet, cette courbe elliptique utilise une quadruple exponentiation pour un niveau de sécurité de 254 bits, généralement assimilé à un niveau de sécurité de 256 bits, puissance de 2 (28) très proche de 254, tout en utilisant comme corps de base le corps F255 - 19, qui est apte à être implémenté de manière très efficace et bien connu pour la 20 cryptographie. L'application de la décomposition GLV en dimension 4 sur cette courbe elliptique permet en outre de réduire de manière significative le temps de calcul de la quantité cryptographique S. L'application de la décomposition GLV en dimension 4 permet en effet un gain de temps d'environ 55% par rapport à l'algorithme DAA (de l'anglais Double-And- 25 Add) et d'environ 24% par rapport à une décomposition GLV en dimension 2. En outre, cette courbe elliptique est utilisable en conjonction avec une implémentation de la courbe Ed255-19 en réutilisant l'arithmétique du corps de base, ladite courbe Ed255-19 vérifiant par exemple l'équation suivante : y2 = x3 + 486662. x2 + x (6) 30 Un avantage supplémentaire de cette courbe elliptique est qu'elle admet une représentation d'Edwards twisté, ce qui permet d'accélérer encore les calculs. On conçoit ainsi que le dispositif de traitement 10 selon l'invention et le procédé de traitement associé, permettent alors, de par le module de calcul 14 et le procédé associé de calcul de la quantité cryptographique S, d'améliorer le niveau de sécurité de la quantité 35 cryptographique S calculée, tout en ayant un temps de calcul réduit. 9 L'homme du métier comprendra également que l'invention est particulièrement utile dans le domaine des systèmes de communication sécurisés, tels que les systèmes de radio-transmission sécurisés, les systèmes de téléphonie sécurisés, REVENDICATIONS1. Procédé de calcul d'une quantité cryptographique (S) relative à un message (M), le procédé étant mis en oeuvre par un module électronique de calcul (14) et comprenant : - le calcul (110) de la quantité cryptographique (S) relative au message (M) via un algorithme cryptographique, l'algorithme cryptographique étant un algorithme à logarithme discret sur une courbe elliptique définie sur un groupe cyclique (G), la courbe elliptique vérifiant l'équation suivante : y2 = x3 + A. x + B mod p caractérisé en ce que le groupe cyclique (G) est une extension de corps (E(Fp2)) de degré 2 du corps (Fp) avec p = 2255-19, et en ce que les coefficient A et B vérifient respectivement A = (-30 + 1*().-\/i) et B = (56 - la courbe elliptique vérifiant alors l'équation suivante : E(Fp2): y2 = x3 + (_ 30 + 11410 mod p. 1,/ 2) . X ± (56 - - 11 \ri) 2. Procédé de calcul selon la revendication 1, dans lequel l'extension (E(Fp2)) de degré 2 du corps (Fr) est définie par le polynôme irréductible x2 - 2, chaque élément l'extension (E(Fp2)) s'écrivant sous la forme x + a. y, où a est une racine dudit polynôme. 3. Procédé de calcul selon la revendication 1 ou 2, dans lequel l'extension (E(Fp2)) de degré 2 du corps (Fa) a un cardinal égal à 4.N, où N est un facteur premier. 4. Procédé de calcul selon l'une quelconque des revendications précédentes, dans lequel la courbe elliptique possède des premier (p) et deuxième (T) endomorphismes distincts, pour l'obtention d'une décomposition GLV en dimension 4. 5. Procédé de calcul selon la revendication 4, dans lequel le premier endomorphisme (p) vérifie l'équation suivante : = : (x, y) 1-> (( x-4 \ C2,2 (70/99Y ( ( 1 + C2, (x-4)2 2(70/99))) ). 2 2 11 6. Procédé de traitement d'un message (M), le procédé étant mis en oeuvre par un dispositif électronique de traitement (10) et comprenant : - l'acquisition (100) du message (M) ; - le calcul (110) d'une quantité cryptographique (S) relative au message acquis (M) 5 via un procédé de calcul selon l'une quelconque des revendications précédentes ; et - la transmission (120), à destination d'un dispositif électronique récepteur, de la quantité cryptographique calculée (S). 7. Procédé de traitement selon la revendication 6, dans lequel la quantité 10 cryptographique (S) calculée est une signature électronique du message (M) ou le chiffré du message (M). 8. Programme d'ordinateur comportant des instructions logicielles qui, lorsqu'elles sont exécutées par un ordinateur, mettent en oeuvre un procédé selon l'une quelconque 15 des revendications précédentes. 9. Module électronique (14) de calcul d'une quantité cryptographique (S) relative à un message (M), le module électronique de calcul étant configuré pour calculer la quantité cryptographique (S) relative au message (M) via un algorithme cryptographique, 20 l'algorithme cryptographique étant un algorithme à logarithme discret sur une courbe elliptique définie sur un groupe cyclique (G), la courbe elliptique vérifiant l'équation suivante : y2 = x3 + A. x + B mod p caractérisé en ce que le groupe cyclique (G) est une extension de corps (E(Fp2)) de degré 2 du corps (Fp ) avec p = 2255-19, 25 et en ce que les coefficient A et B sont respectivement égaux à A = (-30 + 140 r- 560 \ -11.v2) et B = (56 - 'V)7, la courbe elliptique vérifiant alors l'équation suivante : E(Fp2): y2 11 mod p. 30 10. Dispositif électronique (10) de traitement d'un message (M), le dispositif (10) comprenant : - un module d'acquisition (12) configuré pour acquérir un message (M) ; - un module de calcul (14) configuré pour calculer une quantité cryptographique (S) relative au message acquis (M) ; 12 - un module de transmission (16) configuré pour transmettre, à destination d'un dispositif électronique récepteur, la quantité cryptographique calculée (S), caractérisé en ce que le module de calcul (14) est selon la revendication précédente.