Brevet FR3045253A1 — publié le 20170616

DOMAINE TECHNIQUE AUQUEL SE RAPPORTE L'INVENTION La présente invention concerne le domaine de la cryptographique. Elle concerne plus particulièrement un procédé et un dispositif de traitement cryptographique. L'invention s'applique particulièrement avantageusement dans le cas où l'on souhaite mettre en oeuvre un algorithme de signature numérique sur courbe elliptique. ARRIERE-PLAN TECHNOLOGIQUE On utilise, par exemple dans le cadre d'un algorithme de signature numérique sur courbe elliptique de type SM2, un procédé de traitement cryptographique produisant, à partir d'une clé secrète d (clé privée dans l'algorithme SM2), une paire d'éléments comprenant un premier élément r d'un corps fini (Fg, +, *) et un second élément s du corps fini, comprenant les étapes suivantes : - obtention d'un nombre aléatoire k; - détermination d'une première valeur en combinant, au moyen de la première loi de composition du corps fini (également dénommée addition dans la suite), la clé secrète et une valeur prédéterminée ; - inversion de la première valeur dans le corps fini ; - détermination d'une seconde valeur au moyen de l'application de la première loi de composition (addition) au nombre aléatoire k; - combinaison de la première valeur inversée et de la seconde valeur au 25 moyen de la seconde loi de composition du corps fini (également dénommée multiplication dans la suite). En effet, selon la spécification de l'algorithme de signature numérique SM2, le second élément s de la signature vaut s = (1+d)-1*(k-r*d) et on utilise donc alors un procédé tel défini ci-dessus dans lequel la première valeur vaut 1+d et la 30 seconde valeur vaut k-r*d. Il est toutefois nécessaire dans ce cas de protéger la détermination du produit r*d contre d'éventuelles attaques par canal auxiliaire, comme expliqué par exemple dans l'introduction du document EP 2 378 707. En effet, la multiplication concernée implique la clé secrète d et le premier élément r de la signature, 3045253 2 communiqué à l'extérieur, de sorte qu'une observation de la mise en oeuvre de cette multiplication lors d'exécutions successives de l'algorithme pourrait permettre à un attaquant d'avoir accès à la clé secrète d, en l'absence de contremesures spécifiques. 5 OBJET DE L'INVENTION Dans ce contexte, la présente invention propose un procédé de traitement cryptographique du type décrit ci-dessus, caractérisé en ce que la seconde valeur est déterminée en combinant le nombre aléatoire k et le premier élément r au moyen de la première loi de combinaison, et en ce que le second 10 élément s est déterminé en combinant le résultat de la combinaison susmentionnée (multiplication) et le premier élément par une opération utilisant la première loi de combinaison. On profite ici du fait que la clé secrète apparaisse dans l'expression de la première valeur (à inverser et à multiplier par la seconde valeur) pour faire 15 disparaître (en utilisant les règles de calcul dans le corps fini) le produit r*d dans le calcul de la seconde valeur. Grâce aux règles de calcul précitées, le terme correspondant au produit r*d est remplacé : - par l'ajout du seul premier élément r au nombre aléatoire k pour le 20 calcul de la seconde valeur (qui vaut donc k+r) ; - par une opération supplémentaire utilisant la première loi de combinaison, dans laquelle le résultat de ladite combinaison (ou multiplication) est combiné au premier élément r. Dans l'exemple décrit plus loin, cette opération supplémentaire est la soustraction du premier élément au résultat de la combinaison. Selon d'autres caractéristiques envisageables de manière optionnelle : - la paire d'éléments est une signature numérique (par exemple de type SM2) ; - le procédé comprend une étape d'émission de la paire d'éléments (par exemple à destination d'un dispositif électronique extérieur) ; - la clé secrète est une clé privée (correspondant à une clé publique dans une infrastructure à clé publique) ; - le procédé comprend une étape de détermination du premier élément qui inclut la détermination d'un point d'une courbe elliptique (sur le corps fini) égal 3045253 3 au produit d'un point prédéterminé de la courbe elliptique par un scalaire égal au nombre aléatoire ; - le procédé comprend une étape de réception d'un message ; - le premier élément est déterminé en fonction du message ; 5 - l'étape de détermination du premier élément comprend une addition (dans le corps fini) de l'abscisse du point déterminé et d'un nombre obtenu à partir du message (par exemple par application d'une fonction de hachage) ; - le nombre aléatoire est obtenu par tirage aléatoire ; - la valeur prédéterminée est l'élément neutre pour la seconde loi de 10 composition (multiplication dans le corps fini) ; - la première valeur vaut d+1 et la seconde valeur vaut k+r, où comme déjà indiqué d est la clé secrète, k le nombre aléatoire, r le premier élément et + représente la première loi de combinaison. L'invention propose également un dispositif de traitement 15 cryptographique conçu pour produire, à partir d'une clé secrète, une paire d'éléments comprenant un premier élément d'un corps fini et un second élément du corps fini, et comprenant : - un module d'obtention d'un nombre aléatoire ; - un module de détermination d'une première valeur en combinant, au 20 moyen de la première loi de composition du corps fini, la clé secrète et une valeur prédéterminée; - un module d'inversion de la première valeur dans le corps fini ; - un module de détermination d'une seconde valeur au moyen de l'application de la première loi de composition au nombre aléatoire ; 25 - un module de combinaison de la première valeur inversée et de la seconde valeur au moyen de la seconde loi de composition du corps fini ; caractérisé en ce que le module de détermination de la seconde valeur est conçu pour déterminer la seconde valeur en combinant le nombre aléatoire et le premier élément au moyen de la première loi de combinaison, et en ce qu'un 30 module de détermination du second élément est conçu pour déterminer le second élément en combinant le résultat généré par le module de combinaison et le premier élément par une opération utilisant la première loi de combinaison. Un tel dispositif de traitement cryptographique est par exemple un dispositif électronique comprenant un processeur (par exemple de 3045253 4 microprocesseur) et au moins une mémoire. Dans ce cas, chacun des modules mentionnés ci-dessus est par exemple mis en oeuvre par des instructions de programme d'ordinateur mémorisées dans cette mémoire et conçues pour réaliser la fonction du module 5 concerné lorsque ces instructions sont exécutées par le processeur. DESCRIPTION DETAILLEE D'UN EXEMPLE DE REALISATION La description qui va suivre en regard des dessins annexés, donnés à titre d'exemples non limitatifs, fera bien comprendre en quoi consiste l'invention et comment elle peut être réalisée. 10 Sur les dessins annexés : - la figure 1 représente schématiquement les éléments principaux d'une entité électronique 1 au sein de laquelle est mise en oeuvre l'invention ; et - la figure 2 représente sous forme de logigramme, un exemple de procédé conforme aux enseignements de l'invention. 15 La figure 1 représente schématiquement les éléments principaux d'une entité électronique 1 au sein de laquelle est mise en oeuvre l'invention. Cette entité électronique est par exemple une carte à microcircuit. En variante, il pourrait s'agir d'un élément sécurisé (ou SE pour "Secure Elemenf') - par exemple un microcontrôleur sécurisé, d'un dispositif électronique portatif (ou "hand-held 20 electronic device" selon l'appellation anglo-saxonne) - par exemple un terminal de communication ou un passeport électronique, ou d'un ordinateur. L'entité électronique 1 comprend un microprocesseur 2, une mémoire vive 4 et une mémoire non-volatile réinscriptible 6 (par exemple de type EEPROM pour "Electrically Erasable and Programmable Read-Only Memory"). L'entité 25 électronique 1 pourrait éventuellement comprendre en outre une mémoire morte. La mémoire vive 4 et la mémoire non-volatile réinscriptible 6 (ainsi que le cas échéant la mémoire morte) sont chacune liées au microprocesseur 2 de sorte que le microprocesseur 2 peut lire ou écrire des données dans chacune de ces mémoires. 30 Une de ces mémoires, par exemple la mémoire non-volatile réinscriptible 6, mémorise des instructions de programme d'ordinateur qui permettent la mise en oeuvre du procédé décrit ci-dessous en référence à la figure 2 lorsque ces instructions sont exécutées par le microprocesseur 2. Les mémoires 4, 6 stockent également des données représentatives de 3045253 5 valeurs utilisées lors de la mise en oeuvre du procédé décrit ci-dessous. Par exemple, la mémoire non-volatile réinscriptible 6 mémorise une clé secrète (ici une clé privée) d et des données représentatives de paramètres d'une courbe elliptique, notamment un générateur G d'ordre q; la mémoire vive 4 mémorise, 5 par exemple au sein de variables, des données traitées au cours des procédés décrits ci-dessous, notamment, comme expliqué plus bas, un message M et une variable k mémorisant un nombre aléatoire. L'entité électronique 1 comprend en outre une interface de communication 8 avec des dispositifs électroniques externes. Dans le cas décrit ici 10 où l'entité électronique 1 est une carte à microcircuit, l'interface de communication 8 comprend par exemple des contacts affleurant sur une face de la carte à microcircuit. En variante, l'interface de communication 8 pourrait être réalisée par un module de communication sans contact. De manière générale, l'interface de communication 8 peut être un module de communication (filaire ou sans fil) avec 15 une autre entité électronique. Le microprocesseur 2 peut ainsi recevoir des données (par exemple un message M) de l'autre entité électronique via l'interface de communication 8 et émettre des données, par exemple une signature (r,$), à l'autre entité électronique via l'interface de communication 8. 20 La figure 2 représente, sous forme de logigramme, un exemple de procédé conforme aux enseignements de l'invention, dans lequel l'entité électronique 1 génère une signature électronique (r,$) d'un message reçu M selon un algorithme de signature, par exemple un algorithme de signature basé sur le problème du logarithme discret, ici un algorithme de signature numérique sur 25 courbe elliptique de type SM2. On utilise pour ce faire un groupe (E,+) formé de points d'une courbe elliptique sur un corps fini Fp à p éléments et ayant un générateur G d'ordre q (avec p différent de q), c'est-à-dire tel que [q].G=OE (le symbole "." désignant le produit par un scalaire et OE étant l'élément neutre du groupe E). L'ordre q s'écrit 30 sur n bits, c'est-à-dire que les valeurs q et n vérifient : 2n-1 q REVENDICATIONS1. Procédé de traitement cryptographique produisant, à partir d'une clé secrète (d), une paire d'éléments (r, s) comprenant un premier élément (r) d'un corps fini et un second élément (s) du corps fini, comprenant les étapes suivantes : - obtention (E12) d'un nombre aléatoire (k) ; - détermination d'une première valeur (1+d) en combinant, au moyen de la première loi de composition (+) du corps fini, la clé secrète (d) et une valeur prédéterminée; - inversion de la première valeur (1 +d) dans le corps fini ; - détermination d'une seconde valeur au moyen de l'application de la première loi de composition (+) au nombre aléatoire (k) ; - combinaison de la première valeur inversée ((1+d)-1) et de la seconde valeur (k+r) au moyen de la seconde loi de composition (*) du corps fini ; caractérisé en ce que la seconde valeur (k+r) est déterminée en combinant le nombre aléatoire (k) et le premier élément (r) au moyen de la première loi de combinaison (+), et en ce que le second élément (s) est déterminé en combinant le résultat de ladite combinaison ((1+d)-1*(k+r)) et le premier élément (r) par une opération (-) utilisant la première loi de combinaison (+). 2. Procédé de traitement cryptographique selon la revendication 1, dans lequel la paire d'éléments (r, s) est une signature numérique. 3. Procédé de traitement cryptographique selon la revendication 1 ou 2, comprenant une étape d'émission (E26) de la paire d'éléments (r, s). 4. Procédé de traitement cryptographique selon l'une des revendications 1 à 3, dans lequel la clé secrète (d) est une clé privée. 5. Procédé de traitement cryptographique selon l'une des revendications 1 à 4, comprenant une étape de détermination du premier élément (r) qui inclut la détermination d'un point ([k].G) d'une courbe elliptique égal au produit d'un point prédéterminé (G) de la courbe elliptique par un scalaire égal au nombre aléatoire (k). 6. Procédé de traitement cryptographique selon l'une des revendications 1 à 5, comprenant une étape de réception (E10) d'un message (M), dans lequel le premier élément (r) est déterminé en fonction du message (M). 7. Procédé de traitement cryptographique selon la revendication 6 prise 3045253 10 dans la dépendance de la revendication 5, dans lequel l'étape de détermination du premier élément comprend une addition (+) de l'abscisse (x([k].G)) du point ([k].G) déterminé et d'un nombre obtenu en fonction du message (m). 8. Procédé de traitement cryptographique selon l'une des revendications 5 1 à 7, dans lequel le nombre aléatoire (k) est obtenu par tirage aléatoire. 9. Procédé de traitement cryptographique selon l'une des revendications 1 à 8, dans lequel la valeur prédéterminée est l'élément neutre pour la seconde loi de composition (*). 10. Procédé de traitement cryptographique selon l'une des 10 revendications 1 à 9, dans lequel la première valeur vaut d+1 et la seconde valeur vaut k+r, où d est la clé secrète, k le nombre aléatoire, r le premier élément et + représente la première loi de combinaison. 11. Dispositif de traitement cryptographique (1) conçu pour produire, à partir d'une clé secrète (d), une paire d'éléments (r, s) comprenant un premier 15 élément (r) d'un corps fini et un second élément (s) du corps fini, et comprenant : - un module d'obtention d'un nombre aléatoire (k) ; - un module de détermination d'une première valeur (1+d) en combinant, au moyen de la première loi de composition (+) du corps fini, la clé secrète (d) et une valeur prédéterminée ; 20 - un module d'inversion de la première valeur (1 +d) dans le corps fini ; - un module de détermination d'une seconde valeur (k+r) au moyen de l'application de la première loi de composition (+) au nombre aléatoire (k) ; - un module de combinaison de la première valeur inversée ((1+d)-1) et de la seconde valeur (k+r) au moyen de la seconde loi de composition (*) du corps 25 fini ; caractérisé en ce que le module de détermination de la seconde valeur (k+r) est conçu pour déterminer la seconde valeur (k+r) en combinant le nombre aléatoire (k) et le premier élément (r) au moyen de la première loi de combinaison (+), et en ce qu'un module de détermination du second élément (s) est conçu pour 30 déterminer la second élément (s) en combinant le résultat ((1+d)-1*(k+r)) généré par le module de combinaison et le premier élément (r) par une opération (-) utilisant la première loi de combinaison (+).