FR3105490A1 - Procede de traitement cryptographique de donnees et entite electronique associes - Google Patents

Procede de traitement cryptographique de donnees et entite electronique associes Download PDF

Info

Publication number
FR3105490A1
FR3105490A1 FR1915421A FR1915421A FR3105490A1 FR 3105490 A1 FR3105490 A1 FR 3105490A1 FR 1915421 A FR1915421 A FR 1915421A FR 1915421 A FR1915421 A FR 1915421A FR 3105490 A1 FR3105490 A1 FR 3105490A1
Authority
FR
France
Prior art keywords
point
elements
sequence
operations
addition
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.)
Granted
Application number
FR1915421A
Other languages
English (en)
Other versions
FR3105490B1 (fr
Inventor
Franck Rondepierre
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
Idemia France SAS
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 Idemia France SAS filed Critical Idemia France SAS
Priority to FR1915421A priority Critical patent/FR3105490B1/fr
Publication of FR3105490A1 publication Critical patent/FR3105490A1/fr
Application granted granted Critical
Publication of FR3105490B1 publication Critical patent/FR3105490B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)

Abstract

L’invention concerne un procédé de traitement cryptographique de données impliquant au moins un premier point d’une courbe elliptique représenté par au moins trois premiers éléments d’un corps fini, le procédé comprenant des étapes de : - détermination d’une valeur (U1, U2, U3, U4, U5) à partir d’au moins un élément parmi les trois premiers éléments, - mémorisation de la valeur (U1, U2, U3, U4, U5) déterminée dans une mémoire d’une entité électronique, et - mise en œuvre au sein de l’entité électronique d’au moins une opération d’addition sur la courbe elliptique ayant un opérande dépendant du premier point, l’opération d’addition étant effectuée par une première séquence d’opérations successives incluant au moins une multiplication dans le corps fini et une addition dans le corps fini, et utilisant ladite valeur mémorisée, ladite valeur mémorisée étant déterminée par addition ou soustraction de deux éléments parmi les trois premiers éléments du corps fini. L’invention concerne également une entité électronique associée. Figure pour l’abrégé : Fig. 3

Description

Procédé de traitement cryptographique de données et entité électronique associée
La présente invention concerne le domaine technique de la cryptographie.
Elle concerne plus particulièrement un procédé de traitement cryptographique de données mis en œuvre au sein d’une entité électronique et une entité électronique apte à mettre en œuvre un traitement cryptographique de données.
On connaît le traitement cryptographique de données sur courbe elliptique par exemple pour la construction d’un secret partagé ou la signature d’un message. Les propriétés des courbes elliptiques sur les corps finis sont notamment utilisées lors des calculs impliqués dans le traitement des données, par exemple pour la signature d’un message.
Certains calculs impliqués dans le traitement de données sur courbe elliptique utilisent une pluralité d’opérations d’addition répétées ayant chacune comme opérandes un point de la courbe elliptique. C’est notamment le cas en particulier de la multiplication d’un point de la courbe elliptique par un scalaire (généralement de valeur secrète). En effet, cette opération repose sur la combinaison de deux opérations: une addition de points de la courbe elliptique et un doublement sur la courbe elliptique. Ces deux opérations sont elles-mêmes réalisées par la mise en œuvre d’opérations (additions, soustractions et multiplications) dans le corps fini sur les coordonnées du ou des points concernés.
Afin de se protéger des attaques par canal auxiliaire (ou «Side Channel Attacks» selon l’appellation d’origine anglo-saxonne couramment utilisée) telles que l’observation de la consommation énergétique (de l’entité électronique dans laquelle sont mises en œuvre les opérations) pour tenter de déterminer les opérations qui y sont mises en œuvre, il a été proposé, par exemple dans le document FR3010562, de réaliser les opérations susmentionnées dans le corps fini parmi un ensemble plus large d’opérations, dont certaines sont factices.
Cependant, les opérations factices requièrent un temps d’exécution non négligeable qui affecte la performance de traitement des données. En outre, une personne qui réalise une attaque ciblant une opération factice détecterait que cette attaque n’a pas impacté le résultat final. Cette personne pourrait alors en déduire que l’instruction attaquée est factice et par exemple distinguer une séquence d’opérations d’addition de celle d’une opération de doublement. La sécurité du traitement des données serait donc affectée.
Afin de remédier à l’inconvénient précité de l’état de la technique, la présente invention propose d’améliorer la mise en œuvre du traitement des données sur courbe elliptique en réduisant le nombre d’opérations nécessaires pour le traitement de données sans remettre en cause une protection efficace contre les attaques par canal auxiliaire.
Plus particulièrement, on propose selon l’invention un procédé de traitement cryptographique de données impliquant au moins un premier point d’une courbe elliptique représenté par au moins trois premiers éléments d’un corps fini, le procédé comprenant des étapes de:
- détermination d’une valeur à partir d’au moins un élément parmi les trois premiers éléments,
- mémorisation de la valeur déterminée dans une mémoire d’une entité électronique, et
- mise en œuvre au sein de l’entité électronique d’au moins une opération d’addition sur la courbe elliptique ayant un opérande dépendant du premier point, l’opération d’addition étant effectuée par une première séquence d’opérations successives incluant au moins une multiplication dans le corps fini et une addition dans le corps fini, et utilisant ladite valeur mémorisée, ladite valeur mémorisée étant déterminée par addition ou soustraction de deux éléments parmi les trois premiers éléments du corps fini.
Ainsi, selon l’invention, en amont de la mise en œuvre des opérations d’addition, une valeur est déterminée et mémorisée. Cette valeur est ensuite utilisée lors de chaque opération d’addition (en sus des coordonnées du premier point), permettant alors d’éviter certains calculs à chaque nouvelle opération d’addition. Sa mémorisation permet donc de réduire le nombre d’opérations nécessaires pour le traitement de données. En outre, la détermination de la valeur précitée étant effectuée en amont, elle est inutilisable par un attaquant pour tenter de comprendre le fonctionnement de l’entité électronique lors de la répétition des opérations d’addition. Enfin, l’utilisation d’une valeur supplémentaire permet de réduire voire même supprimer les opérations factices dans le traitement des données.
Bien entendu, les différentes caractéristiques, variantes et formes de réalisation de l'invention peuvent être associées les unes avec les autres selon diverses combinaisons dans la mesure où elles ne sont pas incompatibles ou exclusives les unes des autres.
De plus, diverses autres caractéristiques de l'invention ressortent de la description annexée effectuée en référence aux dessins qui illustrent des formes, non limitatives, de réalisation de l'invention et où:
- en considérant au moins un scalaire formé d’une pluralité d’éléments numériques, ladite opération d’addition est effectuée respectivement pour des éléments numériques, parmi la pluralité d’éléments numériques, ayant une valeur prédéfinie, de sorte à réaliser au moins une multiplication d’un quatrième point, noté P dans la description qui suit, par ledit scalaire, ledit premier point étant un multiple du quatrième point ou le quatrième point lui-même;
- il est prévu une étape de mise en œuvre d’au moins une opération de doublement, ladite opération de doublement étant réalisée par l’exécution d’une seconde séquence d’opérations successives incluant au moins une multiplication dans le corps fini et une addition dans le corps fini;
- la première séquence d’opérations utilise une première succession de types d’opérations et la seconde séquence d’opérations utilise une deuxième succession de types d’opérations, la première succession de type d’opérations étant identique à la deuxième succession de type d’opérations;
- ladite opération de doublement est appliquée à un résultat de ladite opération d’addition;
- les trois premiers éléments sont des coordonnées projectives homogènes du premier point;
- il est prévu une étape de lecture de la valeur mémorisée dans la mémoire de l’entité électronique lors de l’opération d’addition;
- le premier point étant représenté par lesdits au moins trois premiers éléments Xq, Yq, Zq, Tq et la valeur mémorisée étant égale à Xq+Yq et notée U1, la première séquence d’opérations successives dans le cas d’une opération d’addition du premier point et d’un deuxième point de la courbe elliptique représenté par des deuxièmes éléments X, Y, Z, T du corps fini est, le résultat de l’opération d’addition du premier point et du deuxième point étant représenté par les éléments X, Y, Z du corps fini à l’issue de la première séquence d’opérations:
R1←X.Xq
R2←Y.Yq
R3←R1+R2
R4←X-Y
X←R4.U1
Y←X+R2
R2←Y-R1
X←T.Zq
Y←Z.Tq
R1←X+Y
R4←X-Y
X←R1.R2
Y←R3.R4
Z←R2.R3,
et la seconde séquence d’opérations successives dans le cas d’une opération de doublement d’un troisième point de la courbe elliptique représenté par des troisièmes éléments X1, Y1, Z1 du corps fini est, le résultat de l’opération de doublement du troisième point étant représenté par les éléments X1, Y1, Z1, T1 du corps fini à l’issue de la seconde séquence d’opérations successives:
R1←X1.X1
R2←Y1.Y1
R3←X1+Y1
R4←R1-R2
X1←R3.R3
R3←R1+R2
R1←X1-R3
T1←R4.R1
Y1←Z1.Z1
X1←Y1+Y1
R2←R3-X1
X1←R1.R2
Y1←R3.R4
Z1←R2.R3,
où R1, R2, R3 et R4 sont des résultats intermédiaires;
- le premier point étant représenté par lesdits au moins trois premiers éléments Xq, Yq, Zq, Tq et la valeur mémorisée étant égale à Xq-Yq et notée U2, la première séquence d’opérations successives dans le cas d’une opération d’addition du premier point et d’un deuxième point de la courbe elliptique représenté par des deuxièmes éléments X, Y, Z, T du corps fini est, le résultat de l’opération d’addition du premier point et du deuxième point étant représenté par les éléments X, Y, Z du corps fini à l’issue de la première séquence d’opérations:
R1←X.Xq
R2←Y.Yq
R3←R2-R1
R4←X+Y
X←Z.Tq
Y←T.Zq
R1←X+Y
R2←R4.U2
R4←R2+R3
R2←X-Y
X←R1.R4
Y←R3.R2
Z←R4.R3,
et la seconde séquence d’opérations successives dans le cas d’une opération de doublement d’un troisième point de la courbe elliptique représenté par des troisièmes éléments X1, Y1, Z1 du corps fini est, le résultat de l’opération de doublement du troisième point étant représenté par les éléments X1, Y1, Z1, T1 du corps fini à l’issue de la seconde séquence d’opérations successives:
R1←X1.X1
R2←Y1.Y1
R3←R2-R1
R4←R1+R2
R1←X1.Y1
X1←Z1.Z1
R2←R1+R1
T1←R4.R2
Y1←X1+X1
R1←Y1-R3
X1←R2.R1
Y1←R3.R4
Z1←R1.R3,
où R1, R2, R3 et R4 sont des résultats intermédiaires;
- le premier point étant représenté par lesdits au moins trois premiers éléments Xq, Yq, Zq, Tq et la valeur mémorisée étant égale à Yq-Xq et notée U3, d’autres valeurs Yq+Xq notée U4 et 2Tq notée U5 étant également déterminées et mémorisées dans la mémoire de l’entité électronique, la première séquence d’opérations successives dans le cas d’une opération d’addition du premier point et d’un deuxième point de la courbe elliptique représenté par des deuxièmes éléments X, Y, Z, E, H du corps fini est, le résultat de l’opération d’addition du premier point et du deuxième point étant représenté par les éléments X, Y, Z du corps fini à l’issue de la première séquence d’opérations :
R2←E.H
R1←X+Y
R3←Z.U5
R4←Y-X
X←R4.U4
Y←R1.U3
R1←R2+R2
R4←R1+R3
R2←R1-R3
R1←Y+X
R3←Y-X
X←R4.R3
Y←R1.R2
Z←R3.R1,
et la seconde séquence d’opérations successives dans le cas d’une opération de doublement d’un troisième point de la courbe elliptique représenté par des troisièmes éléments X1, Y1, Z1 du corps fini est, le résultat de l’opération de doublement du troisième point étant représenté par les éléments X1, Y1, Z1, E1, H1 du corps fini à l’issue de la seconde séquence d’opérations successives:
R1←X1.X1
R2←X1+Y1
X1←Y1.Y1
R3←X1-R1
Y1←R2.R2
R4←Z1.Z1
Z1←R4+R4
H1←R1+X1
R2←Z1-R3
Z1←R1+X1
E1←Y1-Z1
X1←E1.R2
Y1←R3.H1
Z1←R2.R3,
où R1, R2, R3 et R4 sont des résultats intermédiaires.
L’invention concerne également une entité électronique apte à mettre en œuvre un traitement cryptographique de données impliquant un premier point d’une courbe elliptique représenté par au moins trois premiers éléments d’un corps fini, l’entité électronique comprenant un bloc de mise en œuvre d’au moins une opération d’addition sur la courbe elliptique ayant un opérande dépendant du premier point, caractérisée parune mémoire conçue pour mémoriser une valeur déterminée à partir d’au moins un élément parmi les trois premiers éléments, dans laquelle le bloc de mise en œuvre est conçu pour effectuer ladite opération d’addition par une première séquence d’opérations successives incluant au moins une multiplication dans le corps fini et une addition dans le corps fini, et utilisant ladite valeur mémorisée, ladite valeur mémorisée étant déterminée par addition ou soustraction de deux éléments parmi les trois premiers éléments du corps fini
représente schématiquement les éléments principaux d’une entité électronique au sein de laquelle est mise en œuvre l’invention;
représente, sous forme de logigramme, un exemple de procédé préliminaire conforme à l’invention, et
représente, sous forme de logigramme, un exemple de procédé de traitement cryptographique de données conforme à l’invention.
Le procédé de traitement cryptographique de données décrit ci-après est mis en œuvre dans une entité électronique 100.
La figure 1 représente schématiquement les éléments principaux de l’entité électronique 100 au sein de laquelle est mise en œuvre l’invention. Cette entité électronique 1 est par exemple une carte à microcircuit, par exemple une carte à circuit intégré universelle (ou UICC pour "Universal Integrated Circuit Card"). En variante, il pourrait s’agir d’un élément sécurisé (ou SE pour "Secure Element") – par exemple un microcontrôleur sécurisé, d’un dispositif électronique portatif (ou "hand-held electronic device" selon l’appellation anglo-saxonne couramment utilisée) – par exemple un terminal de communication ou un passeport électronique, ou d’un ordinateur.
L’entité électronique 100 comprend un processeur 200 (ici un microprocesseur), une mémoire vive 400 et une mémoire non-volatile réinscriptible 600 (par exemple de type EEPROM pour "Electrically Erasable and Programmable Read-Only Memory"). L’entité électronique 100 pourrait éventuellement comprendre en outre une mémoire morte. La mémoire vive 400 et la mémoire non-volatile réinscriptible 600 (ainsi que le cas échéant la mémoire morte) sont chacune liées au processeur 200 de sorte que le processeur 200 peut lire ou écrire des données dans chacune de ces mémoires.
Une de ces mémoires, par exemple la mémoire non-volatile réinscriptible 600, mémorise des instructions de programme d’ordinateur qui permettent la mise en œuvre de l’un au moins des procédés décrits ci-dessous lorsque ces instructions sont exécutées par le processeur 200.
Les mémoires 400, 600 stockent également des données représentatives de valeurs utilisées lors de la mise en œuvre des procédés décrits ci-dessous. Par exemple, la mémoire non-volatile réinscriptible 600 mémorise au moins une valeur U1; U2; U3, U4, U5.
La mémoire vive 400 mémorise par ailleurs, par exemple au sein de variables, des données traitées au cours des procédés décrits ci-dessous.
L’entitéélectronique 100 peut être par ailleurs décrite de manière fonctionnelle par un ensemble de blocs (non représentés), par exemple un bloc de mise en œuvre d’opérations. Ces blocs peuvent en pratique être réalisés par une combinaison d’éléments matériels et d’éléments logiciels. Chaque bloc possède une fonctionnalité décrite dans les procédés conformes à l’invention et exposés ci-après. Ainsi, pour chaque bloc, l’entité électronique 100 mémorise par exemple des instructions de logiciel exécutables par le processeur 200 de l’entité électronique 100 afin d’utiliser un élément matériel (par exemple une interface de communication ou une mémoire) et de mettre ainsi en œuvre la fonctionnalité offerte par le bloc.
L’entité électronique 100 est configurée pour mettre en œuvre des opérations sur une courbe elliptique.
Une courbe elliptique peut être définie par une équation de type y²=x3+ax+b, avec x, y appartenant à un corps fini. Les courbes d’Edwards tordues (ou «Twisted Edwards curves» selon l’appellation d’origine anglo-saxonne couramment utilisée) sont des modèles plans de courbes elliptiques et sont définies par une équation du type ax²+y²=1+dx²y², avec a et d des éléments distincts non nuls du corps fini.
Dans le contexte de cette invention, on se placera dans le cadre des courbes d’Edwards tordues avec l’élément a égal à 1 ou -1 car, pour de nombreuses courbes elliptiques aléatoires, il est possible de se ramener, par l’intermédiaire d’un changement de variable, à une courbe d’Edwards tordue pour laquelle l’élément a est égal à 1 ou -1.
L’équation projective associée à une courbe d’Edwards tordue s’écrit sous la forme aX²Z²+Y²Z²=Z4+dX²Y². On rappelle qu’un point P de coordonnées affines a pour coordonnées projectives homogènes (X, Y, Z)=(x: y: 1). Dans toute la suite, les coordonnées projectives homogènes seront utilisées.
Pour une courbe d’Edwards tordue, la représentation de coordonnées d’un point usuellement utilisée est (X, Y, Z, T) avec X.Y=Z.T. De plus, un point de représentation affine (x, y) pourra être représenté de manière équivalente par (X, Y, Z, T) et (-X, -Y, -Z, -T).
Le procédé de traitement cryptographique s’applique de manière avantageuse pour les solutions impliquant l’addition d’un point variable et d’un point fixe d’une courbe elliptique et le doublement d’un point de cette courbe elliptique.
Le procédé de traitement cryptographique selon l’invention trouve une application particulière dans le cas de multiplication d’un point P de la courbe elliptique par un scalaire k. Il peut également être utilisé dans le cas d’une opération de double multiplication sur une courbe elliptique, c’est-à-dire dans le cas d’une opération de type k1P1+k2P2, avec k1et k2deux scalaires et P1et P2deux points de la courbe elliptique.
Dans la suite, on s’intéressera plus particulièrement au cas de multiplication d’un point P de la courbe elliptique par un scalaire k.
De manière avantageuse, l’ensemble des étapes du procédé est ici mis en œuvre dans l’entité électronique 100. En variante, certaines étapes, par exemple les étapes E2 à E8 présentées dans la suite, pourraient être mises en œuvre dans une autre entité électronique et leur résultat serait transmis ensuite à l’entité électronique 100. L’autre entité électronique est par exemple un dispositif de personnalisation qui mémorise des données dans l’entité électronique avant son utilisation.
Préalablement à l’exécution du procédé de traitement cryptographique dans le cas d’une multiplication du point P de la courbe elliptique par un scalaire k, un procédé préliminaire est mis en œuvre. La figure 2 représente un exemple de procédé préliminaire mis en œuvre au sein de l’entité électronique 100. En variante, il pourrait être mis en œuvre dans une autre entité électronique, par exemple le dispositif de personnalisation.
Comme le montre cette figure, le procédé débute à l’étape E2. Lors de cette étape, le processeur 200 reçoit le point P, de coordonnées (X, Y, Z, T). Le point P est par exemple mémorisé dans l’une des mémoires comprises dans l’entité électronique 100 pour la mise en œuvre de la suite du procédé.
Le procédé préliminaire se poursuit à l’étape E4 lors de laquelle le processeur 200 détermine un ensemble de multiplets u comprenant chacun w éléments numériques avec w un entier compris entre 1 et l (l étant également un entier supérieur à 0 et l étant le nombre d’éléments binaires ou bits du scalaire k mentionnés ci-dessous). Chaque élément numérique est dans un ensemble de N valeurs positives ou négatives, N étant par exemple une valeur égale à 2 ou 3 (si N=2, chaque élément numérique peut être un élément binaire). Ici, chaque élément numérique est un élément numérique à un chiffre. Le processeur 200 détermine donc Nw-1 multiplets u. Chaque multiplet u s’écrit sous la forme u=(u( w-1 )u( w-2 )…u1u0) où u( w-1 ), u( w-2 ), …u1et u0sont les w éléments numériques du multiplet u concerné.
A l’étape E6, pour chacun des multiplets u comprenant w éléments numériques, il est déterminé un point Qude la courbe elliptique associé au multiplet u concerné.
Chaque point Quest déterminé à partir du point P de la courbe elliptique par la formule suivante:
avec uiles éléments numériques du multiplet u concerné et d un entier vérifiant l’égalité suivante d=[l/w] (où la notation [e] correspond à la partie entière du nombre e).
A l’issue de cette étape E6, les coordonnées (Xu, Yu, Zu, Tu) de chaque point Qusont déterminées. Le processeur 200 détermine donc Nw-1 points Qu(et leurs coordonnées associées). En variante, des coordonnées étendues (Xu, Yu, Zu, Eu, Hu), avec Tu=Eu.Hu, pour le point Qupeuvent être déterminées lors de cette étape E6.
Chaque point Quet ses coordonnées associées (Xu, Yu, Zu, Tu) sont mémorisées dans une des mémoires de l’entité électronique 100, par exemple dans la mémoire non-volatile réinscriptible 600.
Comme le montre la figure 2, ce procédé préliminaire se poursuit à l’étape E8. Lors de cette étape, le processeur 200 de l’entité électronique détermine au moins une valeur U1; U2; U3, U4, U5 à partir d’au moins une coordonnée Xu, Yu, Zu, Tude chaque point Qu. En pratique, l’au moins une valeur U1; U2; U3, U4 est par exemple obtenue par addition ou soustraction de deux coordonnées parmi trois coordonnées Xu, Yu, Zudu point Qu. Par exemple, La valeur U1 est égale à U1= Xu+Yu. La valeur U2 est égale à U2= Xu-Yu. La valeur U3 est égale à U3= Yu-Xu. La valeur U4 est égale à U4= Xu+Yu. Selon un autre exemple, la valeur U5 est un multiple de l’une des coordonnées du point Qu. Par exemple, la valeur U5 est égale à U5=2Tu.
En variante, l’au moins une valeur U1; U2; U3, U4, U5 pourrait être déterminée dans une autre entité électronique et transmise à l’entité électronique 100. Par exemple, l’au moins une valeur U1; U2; U3, U4, U5 pourrait être déterminée dans le dispositif de personnalisation. A l’étape E8, le dispositif de personnalisation transmettrait alors l’au moins une valeur U1; U2; U3, U4, U5 au processeur 200 de l’entité électronique 100, ainsi qu’une consigne de mémorisation de cette au moins une valeur U1; U2; U3, U4, U5 dans l’une des mémoires 400, 600 de l’entité électronique 100.
Enfin, à l’étape E10, l’au moins une valeur U1; U2; U3, U4, U5 est mémorisée dans une mémoire de l’entité électronique 100, par exemple dans la mémoire non-volatile réinscriptible 600 de l’entité électronique 100.
Ce procédé préliminaire est mis en œuvre préalablement à l’exécution du procédé de traitement cryptographique des données décrit à présent en référence à la figure 3.
La figure 3 représente un exemple de procédé de traitement cryptographique des données selon l’invention.
Comme le montre la figure 3, le procédé débute à l’étape E20. Lors de cette étape, le processeur 200 de l’entité électronique 100 reçoit le scalaire k. On rappelle par ailleurs que les multiplets u, les coordonnées des points Qudéterminés pour chaque multiplet u et l’au moins une valeur U1; U2; U3, U4, U5 sont à ce stade connus, toutes ces grandeurs ayant été déterminées lors de l’exécution du procédé préliminaire précédemment décrit et mémorisées dans l’une des mémoires de l’entité électronique 100.
Le scalaire k comporte l éléments binaires : k=(kl-1kl-2… k1k0) où kl-1, kl-2, k1et k0sont des éléments binaires. Les éléments kl-1, kl-2, k1et k0sont ordonnés du poids le plus fort au poids le plus faible (les poids sont donc croissants avec l’indice i dans les éléments binaires ki). Ainsi, kl-1est l’élément binaire de poids le plus fort et k0l’élément binaire de poids le plus faible. En pratique, le scalaire k est supérieur à 1.
Selon une autre représentation, k comporte l éléments numériques: k=(k’l-1k’l-2… k’1k’0) où k’l-1k’l-2… k’1et k’0sont des éléments numériques dans un ensemble de N valeurs positives ou négatives, par exemple dans un ensemble {-1,0,1} avec N une valeur égale à 3. Les éléments numériques k’l-1, k’l-2, k’1et k’0sont ordonnés du poids le plus fort au poids le plus faible (les poids sont donc croissants avec l’indice i dans les éléments numériques k’i). Ainsi, k’l-1est l’élément numérique de poids le plus fort et k’0l’élément numérique de poids le plus faible. En pratique, le scalaire k est supérieur à 1.
Le procédé se poursuit à l’étape E22 lors de laquelle le scalaire k est décomposé, colonne par colonne, en d multiplets vn, avec d un entier vérifiant l’égalité suivante d=[l/w] (où la notation [e] correspond à la partie entière du nombre e) et n un indice, un entier, pouvant varier entre 0 et d-1 inclus. Cette décomposition est effectuée colonne par colonne en commençant par la colonne contenant l’élément numérique de poids le plus fort, c’est-à-dire contenant k’w d-1. Le scalaire k s’écrit alors sous la forme: k=(k’wd-1.2(w-1 )d…k’d-1.20).2d-1+(k’wd-2.2( w -1 )d…k’d -2.20).2d -2+…+(k’wd—d).2( w -1 )d…k’0).20).20. Plus explicitement, le multiplet v0de rang 0 s’écrit v0=(k’wd-1…k’d-1) et le multiplet vnde rang n s’écrit vn=(k’wd-(n+1)…k’d-(n+1)). En variante, le scalaire k pourrait être décomposé selon une décomposition classique en puissance de 2.
L’étape E24 correspond à une étape d’initialisation. Lors de cette étape, le processeur 200 lit dans la mémoire de l’entité électronique 100 les coordonnées du point Qucorrespondant au multiplet v0servant pour l’initialisation (c’est-à-dire le point Qutel que u=v0pour cette étape E24). Le processeur 200 initialise alors un point A à partir du point Qv0. En pratique, ce sont les coordonnées (X1, Y1, Z1, T1) du point A qui sont initialisées à partir des coordonnées (Xv0, Yv0, Zv0, Tv0) du point Qv0.
Le processeur 200 initialise ensuite, à l’étape E26, à la valeur 1 un indice n. Cet indice n désigne le tour courant. Les tours portent sur les valeurs vnsuccessives des multiplets de la décomposition en colonne du scalaire k.
Comme le montre la figure 3, le procédé se poursuit à l’étape E28. Lors de cette étape, une opération de doublement de point A initialisé à l’étape E24 est mise en œuvre. Cette opération de doublement est réalisée par l’exécution d’une séquence d’opérations successives incluant au moins une opération de multiplication dans le corps fini et une addition dans le corps fini.
Selon un premier exemple de procédé de traitement cryptographique conforme à l’invention, la séquence d’opérations successives est donnée par:
R1←X1.X1
R2←Y1.Y1
R3←X1+Y1
R4←R1-R2
X1←R3.R3
R3←R1+R2
R1←X1-R3
T1←R4.R1
Y1←Z1.Z1
X1←Y1+Y1
R2←R3-X1
X1←R1.R2
Y1←R3.R4
Z1←R2.R3,
où R1, R2, R3 et R4 sont des résultats intermédiaires.
Ce premier exemple de procédé correspond au cas d’une courbe d’Edwards tordue avec a = 1.
De manière avantageuse ici, la quatrième coordonnée T1 n’est pas utilisée dans cette opération de doublement.
Les coordonnées (X1, Y1, Z1, T1) du point A sont donc actualisées à l’issue de cette opération de doublement (et donc à l’issue de l’étape E28).
Comme le montre la figure 3, le procédé se poursuit à l’étape E30. Lors de cette étape, le processeur 200 lit la valeur du multiplet vnconcerné par le tour courant et scanne les éléments numériques k’wd-(n+1), …, k’d-(n+1)de ce multiplet vnafin de déterminer si l’un au moins de ces éléments numériques k’wd-(n+1), …, k’d-(n+1)est non nul.
Si tous les éléments numériques k’wd-(n+1), …, k’d-(n+1)du multiplet vndu tour courant sont nuls, le procédé se poursuit à l’étape E40. Le processeur 200 détermine alors, à l’étape E40, si l’indice n a atteint la valeur d-1.
Dans la négative, l’indice n est incrémenté à l’étape E42 et le procédé boucle à l’étape E28 pour effectuer le tour suivant de l’algorithme cryptographique.
Dans l’affirmative à l’étape E40, le procédé se poursuit à l’étape E50 dans laquelle le processeur 200 donne la valeur du point A. Par construction, la valeur retournée du point A correspond alors au résultat de la multiplication par le scalaire k du point P.
En revanche, si l’un des éléments numériques k’wd-(n+1), …, k’d-(n+1)du multiplet vndu tour courant est non nul à l’étape E30, le procédé se poursuit à l’étape E38.
Lors de cette étape, une opération d’addition est mise en œuvre. Cette opération d’addition est réalisée par l’exécution d’une autre séquence d’opérations successives incluant au moins une opération de multiplication dans le corps fini et une addition dans le corps fini.
Cette opération d’addition comprend comme opérandes le point A de coordonnées (X1, Y1, Z1, T1) et le point Qvnassocié au multiplet vndu tour courant. Lors de l’exécution de cette opération d’addition, le processeur 200 lit, dans l’une des mémoires de l’entité électronique 100, le point Qvn, (c’est-à-dire le point Qutel que u=vn) et ses coordonnées (Xv n, Yv n, Zv n, Tv n), associé au multiplet vnconcerné par le tour courant. Le processeur 200 lit également l’au moins une valeur U1; U2; U3, U4, U5 déterminée lors de l’exécution du procédé préliminaire et également associée au point Qvnpour ce tour courant.
Selon le premier exemple de procédé de traitement cryptographique conforme à l’invention, l’autre séquence d’opérations successives est donnée par:
R1←X1.Xvn
R2←Y1.Yvn
R3←R1+R2
R4←X1-Y1
X1←R4.U1
Y1←X1+R2
R2←Y1-R1
X1←T1.Zvn
Y1←Z1.Tvn
R1←X1+Y1
R4←X1-Y1
X1←R1.R2
Y1←R3.R4
Z1←R2.R3,
où R1, R2, R3 et R4 sont des résultats intermédiaires.
Selon ce premier exemple, cette opération d’addition fait donc intervenir la valeur U1 qui a été déterminée lors de l’exécution du procédé préliminaire et mémorisée dans l’entité électronique 100. Cette valeur U1 concerne uniquement les coordonnées (Xvn, Yvn, Zvn, Tvn) du point Qvn.
De plus, l’opération d’addition utilise la coordonnée T1 du point A et Tvndu point Qvnmais ne fournit pas la coordonnée T1 du point A en résultat.
De plus, de manière avantageuse selon l’invention, la succession d’opérations successives de la séquence d’opérations liée à l’opération de doublement (étape E28) est identique à la succession d’opérations successives de l’autre séquence d’opérations liée à l’opération d’addition (étape E38). Cela est particulièrement avantageux car il n’est alors pas possible de distinguer l’opération de doublement de l’opération d’addition.
A l’issue de l’opération d’addition (donc de l’étape E38), les coordonnées (X1, Y1, Z1) du point A sont donc actualisées.
Le processeur 200 détermine ensuite, à l’étape E40, si l’indice n a atteint la valeur d-1.
Dans la négative, l’indice n est incrémenté à l’étape E42 et le procédé boucle à l’étape E28 pour effectuer le tour suivant de l’algorithme cryptographique. Une opération de doublement sera donc appliquée au résultat de l’opération d’addition.
Dans l’affirmative à l’étape E40, le procédé se poursuit à l’étape E50 dans laquelle le processeur 200 donne la valeur du point A. Les différentes opérations de doublement et d’addition effectuées correspondent à l’opération de multiplication par le scalaire k. Par construction, la valeur retournée du point A correspond alors au résultat de la multiplication par le scalaire k du point P. Plus de détails à ce sujet sont disponibles dans l’article «Revisiting Atomic Patterns for Scalar Multiplications on Elliptic Curves» de F. Rondepierre, A. Francillon and P. Rohatgi, editors, Smart Card Research and Advanced Applications, 9th International Conference, CARDIS2013, LNCS. Springer, 2013.
En variante, selon un deuxième exemple du procédé de traitement cryptographique de données conforme à l’invention, la séquence d’opérations successives de l’opération de doublement, à l’étape E28, peut être donnée par:
R1←X1.X1
R2←Y1.Y1
R3←R2-R1
R4←R1+R2
R1←X1.Y1
X1←Z1.Z1
R2←R1+R1
T1←R4.R2
Y1←X1+X1
R1←Y1-R3
X1←R2.R1
Y1←R3.R4
Z1←R1.R3,
où R1, R2, R3 et R4 sont des résultats intermédiaires.
Ce deuxième exemple de procédé correspond au cas d’une courbe d’Edwards tordue avec a = -1.
L’autre séquence d’opérations successives de l’opération d’addition (étape E38), associée à ce deuxième exemple de procédé, est, quant à elle, donnée par:
R1←X1.Xvn
R2←Y1.Yvn
R3←R2-R1
R4←X1+Y1
X1←Z1.Tvn
Y1←T1.Zvn
R1←X1+Y1
R2←R4.U2
R4←R2+R3
R2←X1-Y1
X1←R1.R4
Y1←R3.R2
Z1←R4.R3,
où R1, R2, R3 et R4 sont des résultats intermédiaires.
Dans le cadre de ce deuxième exemple de procédé de traitement cryptographique, l’opération d’addition fait donc intervenir la valeur U2 qui a été déterminée lors de l’exécution préliminaire et mémorisée dans l’entité électronique 100. Cette dernière lit donc la valeur U2 dans la mémoire lors de l’exécution de l’opération d’addition. Cette valeur U2 concerne uniquement les coordonnées (Xvn, Yvn, Zvn, Tvn) du point Qvn. Dans ce cas également, la succession d’opérations successives de la séquence d’opérations liée à l’opération de doublement (étape E28) est identique à la succession d’opérations successives de l’autre séquence d’opérations liée à l’opération d’addition (étape E38), présentant alors ici aussi l’avantage de ne pas pouvoir distinguer l’opération de doublement de l’opération d’addition.
En variante encore, selon un troisième exemple du procédé de traitement cryptographique de données conforme à l’invention, et en considérant les coordonnées étendues (X1, Y1, Z1, E1, H1), avec T1=E1.H1, pour le point A sont obtenues à l’étape E28, la séquence d’opérations successives de l’opération de doublement (étape E28) peut être donnée par:
R1←X1.X1
R2←X1+Y1
X1←Y1.Y1
R3←X1-R1
Y1←R2.R2
R4←Z1.Z1
Z1←R4+R4
H1←R1+X1
R2←Z1-R3
Z1←R1+X1
E1←Y1-Z1
X1←E1.R2
Y1←R3.H1
Z1←R2.R3,
où R1, R2, R3 et R4 sont des résultats intermédiaires.
Ce troisième exemple de procédé correspond au cas d’une courbe d’Edwards tordue avec a = -1 et Zvn=1 (Zvnétant l’une des coordonnées du point Qvntelle que décrite ci-avant pour la figure 3).
L’utilisation ici des coordonnées étendues E1 et H1 à la place de la coordonnée T1 permet de conférer plus de souplesse pour la réalisation des opérations d’additions dans la séquence d’opérations successives grâce à l’utilisation des deux coordonnées E1 et H1 à la place d’une seule coordonnée T1 et donc d’obtenir plus facilement des séquences d’opérations similaires pour la multiplication et pour l’addition.
Pour ce troisième exemple, aucune coordonnée étendue du point Qvnn’est utilisée pour l’opération d’addition (étape E38).
Selon ce troisième exemple, l’autre séquence d’opérations successives de l’opération d’addition (étape E38) est, quant à elle, donnée par:
R2←E1.H1
R1←X1+Y1
R3←Z1.U5
R4←Y1-X1
X1←R4.U4
Y1←R1.U3
R1←R2+R2
R4←R1+R3
R2←R1-R3
R1←Y1+X1
R3←Y1-X1
X1←R4.R3
Y1←R1.R2
Z1←R3.R1,
où R1, R2, R3 et R4 sont des résultats intermédiaires.
Dans le cadre de ce troisième exemple de procédé de traitement cryptographique selon l’invention, l’opération d’addition fait donc intervenir les valeurs U3, U4 et U5 qui ont été déterminées lors de l’exécution du procédé préliminaire et mémorisées dans l’entité électronique 100. Cette dernière lit donc les valeurs U3, U4 et U5 dans la mémoire lors de l’exécution de l’opération d’addition.
Dans ce cas également, la succession d’opérations successives de la séquence d’opérations liée à l’opération de doublement (étape E28) est identique à la succession d’opérations successives de l’autre séquence d’opérations liée à l’opération d’addition (étape E38), présentant alors ici aussi l’avantage de ne pas pouvoir distinguer l’opération de doublement de l’opération d’addition.

Claims (11)

  1. Procédé de traitement cryptographique de données impliquant au moins un premier point d’une courbe elliptique représenté par au moins trois premiers éléments d’un corps fini, le procédé comprenant des étapes de:
    - détermination (E8) d’une valeur (U1, U2, U3, U4, U5) à partir d’au moins un élément parmi les trois premiers éléments,
    - mémorisation (E10) de la valeur (U1, U2, U3, U4, U5) déterminée dans une mémoire (400, 600) d’une entité électronique (100), et
    - mise en œuvre au sein de l’entité électronique d’au moins une opération d’addition sur la courbe elliptique ayant un opérande dépendant du premier point, l’opération d’addition étant effectuée par une première séquence d’opérations successives incluant au moins une multiplication dans le corps fini et une addition dans le corps fini, et utilisant ladite valeur (U1, U2, U3, U4, U5) mémorisée, ladite valeur (U1, U2, U3, U4, U5) mémorisée étant déterminée par addition ou soustraction de deux éléments parmi les trois premiers éléments du corps fini.
  2. Procédé selon la revendication 1, impliquant en outre au moins un scalaire (k) formé d’une pluralité d’éléments numériques et dans lequel ladite opération d’addition est effectuée respectivement pour des éléments numériques, parmi la pluralité d’éléments numériques, ayant une valeur prédéfinie.
  3. Procédé selon la revendication 1 ou 2, comprenant une étape (E28) de mise en œuvre d’au moins une opération de doublement, ladite opération de doublement étant réalisée par l’exécution d’une seconde séquence d’opérations successives incluant au moins une multiplication dans le corps fini et une addition dans le corps fini.
  4. Procédé selon la revendication 3, dans lequel la première séquence d’opérations utilise une première succession de types d’opérations et la seconde séquence d’opérations utilise une deuxième succession de types d’opérations, la première succession de type d’opérations étant identique à la deuxième succession de type d’opérations.
  5. Procédé selon la revendication 3 ou 4, dans lequel ladite opération de doublement est appliquée à un résultat de ladite opération d’addition.
  6. Procédé selon l’une quelconque des revendications 1 à 5, dans lequel les trois premiers éléments sont des coordonnées projectives homogènes du premier point.
  7. Procédé selon l’une quelconque des revendications 1 à 6, comprenant une étape (E38) de lecture de la valeur (U1, U2, U3, U4, U5) mémorisée dans la mémoire (400, 600) de l’entité électronique (100) lors de l’opération d’addition.
  8. Procédé selon l’une quelconque des revendications 3 à 7 prises dans la dépendance de la revendication 3, dans lequel, le premier point étant représenté par lesdits au moins trois premiers éléments Xq, Yq, Zq, Tq et la valeur mémorisée étant égale à Xq+Yq et notée U1, la première séquence d’opérations successives dans le cas d’une opération d’addition du premier point et d’un deuxième point de la courbe elliptique représenté par des deuxièmes éléments X, Y, Z, T du corps fini est, le résultat de l’opération d’addition du premier point et du deuxième point étant représenté par les éléments X, Y, Z du corps fini à l’issue de la première séquence d’opérations:
    R1←X.Xq
    R2←Y.Yq
    R3←R1+R2
    R4←X-Y
    X←R4.U1
    Y←X+R2
    R2←Y-R1
    X←T.Zq
    Y←Z.Tq
    R1←X+Y
    R4←X-Y
    X←R1.R2
    Y←R3.R4
    Z←R2.R3,
    et la seconde séquence d’opérations successives dans le cas d’une opération de doublement d’un troisième point de la courbe elliptique représenté par des troisièmes éléments X1, Y1, Z1 du corps fini est, le résultat de l’opération de doublement du troisième point étant représenté par les éléments X1, Y1, Z1, T1 du corps fini à l’issue de la seconde séquence d’opérations successives:
    R1←X1.X1
    R2←Y1.Y1
    R3←X1+Y1
    R4←R1-R2
    X1←R3.R3
    R3←R1+R2
    R1←X1-R3
    T1←R4.R1
    Y1←Z1.Z1
    X1←Y1+Y1
    R2←R3-X1
    X1←R1.R2
    Y1←R3.R4
    Z1←R2.R3,
    où R1, R2, R3 et R4 sont des résultats intermédiaires.
  9. Procédé selon l’une quelconque des revendications 3 à 7 prises dans la dépendance de la revendication 3, dans lequel, le premier point étant représenté par lesdits au moins trois premiers éléments Xq, Yq, Zq, Tq et la valeur mémorisée étant égale à Xq-Yq et notée U2, la première séquence d’opérations successives dans le cas d’une opération d’addition du premier point et d’un deuxième point de la courbe elliptique représenté par des deuxièmes éléments X, Y, Z, T du corps fini est, le résultat de l’opération d’addition du premier point et du deuxième point étant représenté par les éléments X, Y, Z du corps fini à l’issue de la première séquence d’opérations:
    R1←X.Xq
    R2←Y.Yq
    R3←R2-R1
    R4←X+Y
    X←Z.Tq
    Y←T.Zq
    R1←X+Y
    R2←R4.U2
    R4←R2+R3
    R2←X-Y
    X←R1.R4
    Y←R3.R2
    Z←R4.R3,
    et la seconde séquence d’opérations successives dans le cas d’une opération de doublement d’un troisième point de la courbe elliptique représenté par des troisièmes éléments X1, Y1, Z1 du corps fini est, le résultat de l’opération de doublement du troisième point étant représenté par les éléments X1, Y1, Z1, T1 du corps fini à l’issue de la seconde séquence d’opérations successives:
    R1←X1.X1
    R2←Y1.Y1
    R3←R2-R1
    R4←R1+R2
    R1←X1.Y1
    X1←Z1.Z1
    R2←R1+R1
    T1←R4.R2
    Y1←X1+X1
    R1←Y1-R3
    X1←R2.R1
    Y1←R3.R4
    Z1←R1.R3,
    où R1, R2, R3 et R4 sont des résultats intermédiaires.
  10. Procédé selon l’une quelconque des revendications 3 à 7 prises dans la dépendance de la revendication 3, dans lequel, le premier point étant représenté par lesdits au moins trois premiers éléments Xq, Yq, Zq, Tq et la valeur mémorisée étant égale à Yq-Xq et notée U3, d’autres valeurs Yq+Xq notée U4 et 2Tq notée U5 étant également déterminées et mémorisées dans la mémoire de l’entité électronique, la première séquence d’opérations successives dans le cas d’une opération d’addition du premier point et d’un deuxième point de la courbe elliptique représenté par des deuxièmes éléments X, Y, Z, E, H du corps fini est, le résultat de l’opération d’addition du premier point et du deuxième point étant représenté par les éléments X, Y, Z du corps fini à l’issue de la première séquence d’opérations :
    R2←E.H
    R1←X+Y
    R3←Z.U5
    R4←Y-X
    X←R4.U4
    Y←R1.U3
    R1←R2+R2
    R4←R1+R3
    R2←R1-R3
    R1←Y+X
    R3←Y-X
    X←R4.R3
    Y←R1.R2
    Z←R3.R1,
    et la seconde séquence d’opérations successives dans le cas d’une opération de doublement d’un troisième point de la courbe elliptique représenté par des troisièmes éléments X1, Y1, Z1 du corps fini est, le résultat de l’opération de doublement du troisième point étant représenté par les éléments X1, Y1, Z1, E1, H1 du corps fini à l’issue de la seconde séquence d’opérations successives:
    R1←X1.X1
    R2←X1+Y1
    X1←Y1.Y1
    R3←X1-R1
    Y1←R2.R2
    R4←Z1.Z1
    Z1←R4+R4
    H1←R1+X1
    R2←Z1-R3
    Z1←R1+X1
    E1←Y1-Z1
    X1←E1.R2
    Y1←R3.H1
    Z1←R2.R3,
    où R1, R2, R3 et R4 sont des résultats intermédiaires.
  11. Entité électronique (100) apte à mettre en œuvre un traitement cryptographique de données impliquant un premier point d’une courbe elliptique représenté par au moins trois premiers éléments d’un corps fini, l’entité électronique (100) comprenant un bloc de mise en œuvre d’au moins une opération d’addition sur la courbe elliptique ayant un opérande dépendant du premier point, caractérisée parune mémoire (400, 600) conçue pour mémoriser une valeur (U1, U2, U3, U4, U5) déterminée à partir d’au moins un élément parmi les trois premiers éléments, dans laquelle le bloc de mise en œuvre est conçu pour effectuer ladite opération d’addition par une première séquence d’opérations successives incluant au moins une multiplication dans le corps fini et une addition dans le corps fini, et utilisant ladite valeur (U1, U2, U3, U4, U5) mémorisée, ladite valeur (U1, U2, U3, U4, U5) mémorisée étant déterminée par addition ou soustraction de deux éléments parmi les trois premiers éléments du corps fini.
FR1915421A 2019-12-23 2019-12-23 Procede de traitement cryptographique de donnees et entite electronique associes Active FR3105490B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1915421A FR3105490B1 (fr) 2019-12-23 2019-12-23 Procede de traitement cryptographique de donnees et entite electronique associes

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1915421 2019-12-23
FR1915421A FR3105490B1 (fr) 2019-12-23 2019-12-23 Procede de traitement cryptographique de donnees et entite electronique associes

Publications (2)

Publication Number Publication Date
FR3105490A1 true FR3105490A1 (fr) 2021-06-25
FR3105490B1 FR3105490B1 (fr) 2023-01-06

Family

ID=70978030

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1915421A Active FR3105490B1 (fr) 2019-12-23 2019-12-23 Procede de traitement cryptographique de donnees et entite electronique associes

Country Status (1)

Country Link
FR (1) FR3105490B1 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3010562A1 (fr) 2013-09-10 2015-03-13 Oberthur Technologies Procede de traitement de donnees et dispositif associe

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3010562A1 (fr) 2013-09-10 2015-03-13 Oberthur Technologies Procede de traitement de donnees et dispositif associe

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Smart Card Research and Advanced Applications, 9th International Conférence, CARDIS2013", 2013, LNCS, article "Revisiting Atomic Patterns for Scalar Multiplications on Elliptic Curves"
ARMANDO FAZ-HERNÃ NDEZ ET AL: "High-performance Implementation of Elliptic Curve Cryptography Using Vector Instructions", ACM TRANSACTIONS ON MATHEMATICAL SOFTWARE, ACM, NEW YORK, NY, US, vol. 45, no. 3, 30 July 2019 (2019-07-30), pages 1 - 35, XP058439508, ISSN: 0098-3500, DOI: 10.1145/3309759 *
JOPPE W. BOS ET AL: "Selecting elliptic curves for cryptography: an efficiency and security analysis", JOURNAL OF CRYPTOGRAPHIC ENGINEERING, vol. 6, no. 4, 1 November 2016 (2016-11-01), Berlin/Heidelberg, pages 259 - 286, XP055713904, ISSN: 2190-8508, DOI: 10.1007/s13389-015-0097-y *

Also Published As

Publication number Publication date
FR3105490B1 (fr) 2023-01-06

Similar Documents

Publication Publication Date Title
EP0443679B1 (fr) Procédé de calcul d'une opération du type A.X modulo N, dans un procédé de codage selon une méthode de type RSA
WO2009092903A2 (fr) Procede et dispositifs de protection d'un microcircuit contre des attaques visant a decouvrir une donnee secrete
EP3300292B1 (fr) Procédé de chiffrement ou de déchiffrement protégé contre des attaques par canaux cachés
EP1421473B1 (fr) Procédé de calcul universel appliqué à des points d'une courbe elliptique
EP2038798B1 (fr) Protection d'un programme interprete par une machine virtuelle
FR3105490A1 (fr) Procede de traitement cryptographique de donnees et entite electronique associes
WO2003042812A2 (fr) Securisation d'un generateur pseudo-aleatoire
EP2530867B1 (fr) Procédé de traitement cryptographique de données
EP3306465B1 (fr) Procédé de traitement cryptographique comprenant une multiplication d'un point d'une courbe elliptique par un scalaire
EP1387519A2 (fr) Procédé de sécurisation d'un ensemble électronique contre des attaques par introduction d'erreurs
EP3482524B1 (fr) Procédé de génération des paramètres caractérisant un protocole cryptographique
FR2818765A1 (fr) Multiplicateur modulaire et processeur de cryptage/decryptage utilisant le multiplicateur modulaire
EP4270855A1 (fr) Protection contre les attaques par canal auxiliaire a l aide d'un masquage carre
FR2810178A1 (fr) Procede de calcul cryptographique comportant une routine d'exponentiation modulaire
EP1399807A1 (fr) Brouillage d'un calcul mettant en oeuvre une fonction modulaire
FR2843506A1 (fr) Procede de calcul universel applique a des points d'une courbe elliptique definie par une quartique, procede cryptographique et composant electronique associes
FR3010562A1 (fr) Procede de traitement de donnees et dispositif associe
EP1891769B1 (fr) Protection d'un calcul d'exponentiation modulaire effectue par un circuit integre
FR3082333A1 (fr) Procede de determination d’inverse modulaire et dispositif de traitement cryptographique associe
EP1695204A2 (fr) Procede d'exponentiation modulaire protege contre les attaques du type dpa
WO2012085214A1 (fr) Procede de reconstruction d'une mesure de reference d'une donnee confidentielle a partir d'une mesure bruitee de cette donnee
EP3929726A1 (fr) Procede de traitement cryptographique,dispositif electronique et programme d'ordinateur associes
FR3094522A1 (fr) Protection d’un calcul itératif
EP3614617A1 (fr) Procédé et dispositif de génération de paramètre(s) d'un protocole cryptographique asymétrique à partir d'une blockchain, procédé et appareil de cryptage ou de décryptage et programme d'ordinateur associés
FR3045253A1 (fr) Procede et dispositif de traitement cryptographique

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20210625

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5