EP1994465A1 - Procede de securisation d'un calcul d'une exponentiation ou d'une multiplication par un scalaire dans un dispositif electronique - Google Patents

Procede de securisation d'un calcul d'une exponentiation ou d'une multiplication par un scalaire dans un dispositif electronique

Info

Publication number
EP1994465A1
EP1994465A1 EP07726722A EP07726722A EP1994465A1 EP 1994465 A1 EP1994465 A1 EP 1994465A1 EP 07726722 A EP07726722 A EP 07726722A EP 07726722 A EP07726722 A EP 07726722A EP 1994465 A1 EP1994465 A1 EP 1994465A1
Authority
EP
European Patent Office
Prior art keywords
value
register
initial
component
calculation
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
EP07726722A
Other languages
German (de)
English (en)
Inventor
Marc Joye
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.)
Thales DIS France SA
Original Assignee
Gemplus 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 Gemplus SA filed Critical Gemplus SA
Publication of EP1994465A1 publication Critical patent/EP1994465A1/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/723Modular exponentiation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7261Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile
    • 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

Definitions

  • the present invention relates to a method of calculating an exponentiation or a multiplication by a scalar, with particular application in the field of cryptology.
  • the invention applies in particular to cryptographic algorithms implemented in electronic devices such as smart cards.
  • y x r
  • x an element of a set multiplicatively noted
  • r a predetermined number, which encode a value y.
  • the value y may correspond, for example, to an encrypted text or to a signed or verified data item.
  • the SAM algorithm can be written in the following way:
  • the method generally used is to remove conditional branching at the value of the number r (the secret key), so that an algorithm can be obtained. constant code.
  • the secure binary method thus becomes the "square and multiply always" method, or SMA algorithm, that is to say a method in which a multiplication and a squared elevation are systematically performed.
  • a first object of the invention is to provide a scalar multiplication calculation method which is relatively protected against single-channel hidden attacks and "safe-error" type attacks.
  • Another object of the invention is to provide a method of calculating the multiplication by a scalar that is unconditional.
  • Another object of the invention is to provide a scalar multiplication calculation method that is relatively efficient in terms of the number of operations.
  • Another object of the invention is to provide a scalar multiplication calculation method that is relatively efficient in terms of the types of operations to be implemented.
  • Another object of the invention is to provide a scalar multiplication calculation method that is relatively efficient in terms of used memory space.
  • Another object of the invention is to perform a multiplication calculation by a scalar by performing only type 2A + B doubling and adding operations.
  • the invention which firstly relates to a method for calculating a multiplication of an element of a group that is additionally denoted by a scalar, said scalar being decomposed into a representation comprising a plurality of components, each of said components taking a component value from at least a first component value and a second component value, said method being intended to be implemented in an electronic device, said electronic device comprising at least one memory comprising at least a first register and a second register, said first register storing a first register value, said second register storing a second register value characterized in that said method comprises the steps of:
  • the register value corresponding to the current value of the register at each iteration, is modified for example according to a formula of the type Rb ⁇ - 2.Rb + Rkj if kj is the binary value of the component of the representation during the iteration, b being 1 -kj.
  • the operations performed at each step on registers Ro and Ri are therefore of the type 2.R 0 + Ri or 2.Ri + R 0 at each iteration.
  • said memory may comprise a third register, said third register storing a third register value
  • the aforementioned method may comprise the steps of: assigning to said third registering a third initial register value as a third register value, said second initial register value depending on said first initial register value and said second initial register value; said iteration comprising steps of: when said component is equal to said first component value, Calculating a first calculation value equal to said first register value added to said third register value;
  • a third register R2 is introduced, and the calculation at each iteration of the value 2.Ro + Ri (respectively 2.R1 + R 0 ) is performed by an intermediate calculation of the type Ro + R2 (respectively Ri + R 2 ), the register R 2 keeping as third register value, the value R 0 + Ri equal to the first register value added to the second register value.
  • This embodiment may be advantageous if only the addition operation is implemented in the electronic device on which the method according to the invention is implemented.
  • said representation comprises an initial component taking an initial component value from a first initial component value and a second component value.
  • initial component and the aforementioned method may comprise, following said iteration, steps of:
  • said group comprises a neutral element
  • said first initial register value may be equal to said neutral element and said second initial register value may be equal to said element.
  • said first initial register value may be equal to said element and said second initial register value may be equal to said element, and said third initial register value may be twice that of said element.
  • the invention also relates to a cryptographic device for calculating a multiplication of an element of a group noted additionally by a scalar, said scalar being decomposed into a representation comprising a plurality of components each of said components taking a component value from at least a first component value and a second component value, wherein said device comprises calculating means and at least one memory, said memory comprising at least : a first register; a second register; and wherein said calculating means is adapted to perform the aforementioned process steps.
  • said memory may comprise a third register and said calculation means may be able to carry out the aforementioned method steps, especially when a third register is used.
  • the invention also relates to a smart card comprising a device as described above.
  • It also relates to a cryptographic system based on a cryptographic algorithm involving at least one calculation of a multiplication of an element of a group noted additionally by a scalar said calculation being performed by a device as described above.
  • FIG. 1 is a flowchart of the main elements of an electronic device, for example a smart card, to implement the invention
  • FIG. 2 represents a diagram of the method implemented in the calculation of a multiplication by a scalar according to a first embodiment of the invention
  • FIG. 3 represents a diagram of the method implemented in the calculation of a multiplication by a scalar according to a second embodiment of the invention.
  • FIG. 4 represents a general diagram of the method implemented in the present invention.
  • FIG. 1 represents, in block diagram form, an electronic device capable of performing multiplication calculations by a scalar.
  • this device is a smart card for executing a cryptographic program.
  • the device 1 combines in a chip programmed computing means, composed of a central unit 2 operatively connected to a set of memories including: - a memory 4 accessible in read only, in the example of the type ROM mask also known as "mask Read-Only Memory” or “mask ROM”,
  • an electrically reprogrammable memory 6 in the example of the EEPROM type (of the English “Electrically Erasable Programmable ROM”), and
  • This memory 8 comprises in particular the registers used by the device 1.
  • the executable code corresponding to the multiplication algorithm is contained in program memory. This code can in practice be stored in memory 4, read-only, and / or memory 6, rewritable.
  • the central unit 2 is connected to a communication interface 10 which ensures the exchange of signals vis-à-vis the outside and the supply of the chip.
  • This interface may include pads on the card for a so-called “contact” connection with a reader, and / or an antenna in the case of a so-called “contactless” card.
  • One of the functions of the device is to encrypt and decrypt confidential data respectively transmitted to and received from outside. These data may concern, for example, personal codes, medical information, accounting on banking or commercial transactions, or access authorizations to certain restricted services. Another function is the calculation of a digital signature or its verification.
  • the central unit 2 executes a cryptographic algorithm from programming data stored in the ROM mask 4 and / or EEPROM 6 portions.
  • the number y thus obtained is a piece of data encrypted, decrypted, signed or verified.
  • the number r (the key) is stored in a portion of memory writable 6, EEPROM type in the example.
  • the central unit stores the number x, transmitted by the communication interface 10, to working memory 8, in a calculation register.
  • the central unit will read the key r contained in rewritable memory 6, for the temporary storage, the exponentiation calculation time, in a calculation register of the working memory. The central unit then launches the exponentiation or multiplication algorithm with a scalar according to the invention.
  • the multiplication algorithm with a scalar is implemented as follows in pseudo language:
  • the method according to the invention thus comprises a step of initialization of two registers Ro and Ri, an iteration step on the components ki of the scalar k, in which if ki is 0, calculates 2.Ri + R 0 and we replace Ri by this value and if ki is 1, we calculate 2.R 0 + Ri and we replace Ro by this value.
  • the value of the register Ro is then returned.
  • the + sign is used to denote the addition in a group noted additionally or to designate the addition between two scalars;
  • the sign - is used to designate the subtraction in a group noted additionally or to designate the subtraction between two scalars;
  • the notation A ⁇ -a denotes the operation of assigning to the variable A the value a. It also refers to the operation of assigning to the register A, the value a.
  • an algorithm is provided that still only performs operations of type 2.A + B, but using only additions, and avoiding the use of computation of a doubling.
  • FIG. 3 The steps of this algorithm ALGORITHM 2 are illustrated schematically FIG. 3.
  • first registers Ro, Ri and R2 are initialized respectively with the values P, P and 2.P.
  • An iteration is then performed on the binary decomposition of k for k ranging from 1 to t-1.
  • the values of the binary decomposition, 0 or 1 are stored for example in a temporary variable b equal to 1 -ki for each component ki of the scalar k. If b is 0, then calculate the value 2. R 0 + Ri and replace Ro with this value. If b is 1, then calculate the value 2.R1 + Ro and replace Ri by this value. This calculation is performed via the register R2 to which a value equal to Ro + Ri is assigned.
  • the register Ro always contains odd multiples of P.
  • the register R2 always contains a multiple of P by a power of 2 for j strictly less than 1-1.
  • Rb is always different from R2 for j between 1 and I-2.

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

L'invention concerne un procédé pour le calcul d'une multiplication d'un élément (P) d'un groupe (G) noté additivement par un scalaire (k). Selon un mode de réalisation de l'invention, on réalise une étape d'initialisation de deux registres R<SUB>0</SUB> et R<SUB>1</SUB>, une étape d'itération sur les composantes k<SUB>i</SUB> du scalaire k, dans laquelle si k<SUB>i</SUB> vaut 0, on calcule 2. R<SUB>1</SUB>+ R<SUB>0</SUB> et on remplace R<SUB>1</SUB> par cette valeur et si k<SUB>i</SUB> vaut 1, on calcule 2. R<SUB>0</SUB>+ R<SUB>1</SUB> et on remplace R<SUB>0</SUB> par cette valeur. En fin d'algorithme, on rend alors la valeur du registre R<SUB>0</SUB>. Ce procédé possède l'avantage de réaliser un calcul de multiplication par un scalaire en ne réalisant que des opérations de doublement et d'addition de type 2.A + B.

Description

PROCÉDÉ DE SÉCURISATION D'UN CALCU L D'UNE
EXPONENTIATION OU D'UN E MULTIPLICATION PAR UN
SCALAIRE DANS U N DISPOSITIF ÉLECTRONIQUE
La présente invention concerne un procédé de calcul d'une exponentiation ou d'une multiplication par un scalaire, avec application notamment dans le domaine de la cryptologie.
L'invention s'applique en particulier à des algorithmes cryptographiques mis en œuvre dans des dispositifs électroniques tels que des cartes à puce.
De nombreux algorithmes cryptographiques sont basés sur des calculs d'exponentiation du type y = xr, où x est un élément d'un ensemble noté de façon multiplicative et r un nombre prédéterminé, qui codent une valeur y. Ceci est notamment le cas avec l'algorithme du type RSA (Rivest, Shamir et Adleman). La valeur y peut correspondre par exemple à un texte chiffré ou à une donnée signée ou vérifiée.
II existe différents types d'algorithmes d'exponentiation . On connaît notamment là méthode binaire de type "élévation au carré et multiplication", plus habituellement connue sous la terminologie anglo-saxonne "square and multiply" (acronyme anglais SAM), la méthode de Yacobi, dite MM3 ou la méthode des fenêtres glissantes.
Ces algorithmes doivent inclure des contre-mesures adaptées contre des attaques visant à découvrir des informations contenues et manipulées dans des traitements effectués par le dispositif de calcul . Notamment, des contre-mesures sont prévues contre les attaques dites à canaux cachés, simples ou différentielles. On entend par attaque à canal caché simple ou différentielle, une attaque basée sur une grandeur physique mesurable de l'extérieur du dispositif, et dont l'analyse directe (attaque simple) ou l'analyse selon une méthode statistique (attaque différentielle) permet de découvrir des informations contenues et manipulées dans des traitements réalisés dans le dispositif. Ces attaques peuvent ainsi permettre de découvrir des informations confidentielles. Ces attaques ont notamment été divulguées par Paul Kocher (Advances in Cryptology - CRYPTO '99, vol . 1666 of Lecture Notes in Computer Science, pp. 388-397. Springer-Verlag, 1999). Parmi les grandeurs physiques qui peuvent être exploitées à ces fins, on peut citer la consommation en courant, le champ électromagnétique... Ces attaques sont basées sur le fait que la manipulation d'un bit, c'est- à-dire son traitement par une instruction particulière a une empreinte particulière sur la grandeur physique considérée selon sa valeur.
Les algorithmes d'exponentiation précités ont dû inclure des contre- mesures pour empêcher de telles attaques de prospérer.
Une parade efficace aux attaques de type différentiel est de rendre aléatoire les entrées et/ou les sorties de l'algorithme d'exponentiation utilisé pour calculer y=xr. En d'autres termes, il s'agit de rendre aléatoires l'opérande x et/ou l'exposant r.
En ce qui concerne les attaques de type simple, on sait sécuriser ces algorithmes en supprimant tous les branchements conditionnels à la valeur de la donnée traitée ou les branchements par lesquels une opération différente est exécutée. Si on prend l'exemple de la méthode la plus couramment utilisée dans les systèmes cryptographiques à clé publique, la méthode binaire, aussi désignée par méthode SAM (pour "square and multiply"), deux variantes de mise en œuvre existent, selon que les bits du nombre r sont balayés de la droite vers la gauche ou de la gauche vers la droite.
Dans le premier cas, pour un balayage de la droite vers la gauche, l'algorithme SAM peut s'écrire de la façon suivante:
Entrées de l'algorithme: x, r=(rm.1; rm.2,..., r0) en base 2. Sortie de l'algorithme: y=xr. Registres temporaires utilisés: Ro, Ri- Initialisation: Ro<- 1 (élément neutre de la multiplication); R1 <-x. Pour i=0 à m-1 , faire:
Si r,= 1 , alors Ro<- Ro-Ri Ri <-(R i)2 Fin pour Retourner Ro.
Dans le deuxième cas pour un balayage de la gauche vers la droite, l'algorithme SAM peut s'écrire de la façon suivante:
Entrées de l'algorithme: x, r=(rm-i, rm.2, ..., r.2) en base 2. Sortie de l'algorithme: y=xr.
Registres temporaires utilisés: Ro-
Initialisation: Ro<- 1 (élément neutre de la multiplication);
Pour i=m-1 à 0, faire:
Ro<-(Ro)2 Si n= 1, alors Ro<- Ro.x
Fin pour
Retourner R0. Ces algorithmes possèdent toutefois l'inconvénient de mettre en œuvre une condition sur la valeur des bits r,, ce qui les rendent sensibles à des attaques à canaux cachés.
Pour sécuriser ces algorithmes vis-à-vis des attaques à canaux cachés de type simple, la méthode généralement utilisée est de supprimer les branchements conditionnels à la valeur du nombre r (la clé secrète), de sorte que l'on obtienne un algorithme à code constant. La méthode binaire sécurisée, devient ainsi la méthode dite " square and multiply always", ou algorithme SMA, c'est-à-dire une méthode dans laquelle une multiplication et une élévation au carré sont systématiquement réalisées.
Dans le cas d'un balayage gauche vers droite, l'algorithme SMA sécurisé peut s'écrire comme suit:
Entrées de l'algorithme: x, r=(rm.1; rm.2, ..., r0) en base 2. Sortie de l'algorithme: y=xr. Registres temporaires utilisés : Ro, Ri Variable utilisée : b
Initialisation: Ro<- 1 (élément neutre de la multiplication); Pour i=m-1 à 0, faire:
Ro<-(Ro)2 b = 1-r, ;
Rb<- R0. x Fin pour Retourner Ro.
Dans cet algorithme, une multiplication inutile est réalisée, lorsque le bit n du nombre r vaut 0. Les performances de l'algorithme sécurisé résultant en termes de nombre de multiplications à effectuer sont donc réduites.
D'une manière générale, la sécurisation des algorithmes d'exponentiation par ajout d'opérations factices vis-à-vis des attaques de type simple affecte les performances de ces algorithmes de manière non négligeable.
Par ailleurs, les algorithmes incluant des opérations factices sont sensibles aux attaques de type safe-error. En effet, en injectant une faute à un instant précis lors des calculs, il est possible de détecter si une opération est factice ou non, et de la sorte déduire un secret. Ce type d'attaque de type « safe-error » a par exemple été décrit dans la publication de MM Yen et Joye « Checking before output may not be enough against fault based cryptanalysis » dans le journal I EEE « Transcations on Computers », 49(9) :967-970, 2000.
Enfin, il doit être entendu aux fins de la demande que les calculs d'exponentiation dans des groupes multiplicatifs sont équivalents à des multiplications par un scalaire dans des groupes notés additivement. Dans la suite de la présente demande, et sauf indication du contraire, on utilisera une notation additive, telle qu'utilisée par exemple dans les courbes elliptiques. Cette notation ne doit en aucun être considérée comme une limitation à l'invention .
L'invention a notamment pour objectif de pallier les inconvénients de l'art antérieur dans le calcul d'une multiplication par un scalaire lors de calculs cryptographiques, notamment lors d'un calcul de clés cryptographiques. En particulier, un premier but de l'invention est de fournir une méthode de calcul de la multiplication par un scalaire qui soit relativement protégée contre les attaques à canaux cachés, simples et les attaques de type « safe-error » .
Un autre but de l'invention est de fournir une méthode de calcul de la multiplication par un scalaire qui soit non conditionnelle.
Un autre but de l'invention est de fournir une méthode de calcul de la multiplication par un scalaire qui soit relativement performante en terme de nombre d'opérations.
Un autre but de l'invention est de fournir une méthode de calcul de la multiplication par un scalaire qui soit relativement performante en terme de types d'opérations à implémenter.
Un autre but de l'invention est de fournir une méthode de calcul de la multiplication par un scalaire qui soit relativement performante en termes d'espace mémoire utilisé.
Un autre but de l'invention est de réaliser un calcul de multiplication par un scalaire en ne réalisant que des opérations de doublement et d'addition de type 2.A + B.
Au moins un de ces buts est atteint par l'invention qui a d'abord pour objet un procédé pour le calcul d'une multiplication d'un élément d'un groupe noté additivement par un scalaire, ledit scalaire étant décomposé en une représentation comprenant une pluralité de composantes, chacune desdites composantes prenant une valeur de composante parmi au moins une première valeur de composante et une deuxième valeur de composante, ledit procédé étant destiné à être mis en œuvre dans un dispositif électronique, ledit dispositif électronique comprenant au moins une mémoire comprenant au moins un premier registre et un deuxième registre, ledit premier registre stockant une première valeur de registre, ledit deuxième registre stockant une deuxième valeur de registre caractérisé en ce que ledit procédé comprend des étapes consistant à :
- affecter audit premier registre une première valeur de registre initiale en tant que première valeur de registre, ladite première valeur de reg istre initiale dépendant dudit élément ; - affecter audit deuxième registre une deuxième valeur de registre initiale en tant que deuxième valeur de registre, ladite deuxième valeur de registre initiale dépendant dudit élément ;
- réaliser une itération sur ladite pluralité de composantes de ladite représentation , ladite itération comprenant des étapes consistant à , pour chacune des composantes de ladite représentation : o lorsque ladite composante est égale à ladite première valeur de composante, • calculer une première valeur de calcul égale au double de ladite première valeur de registre additionné à ladite deuxième valeur de registre ;
• affecter ladite première valeur de calcul audit premier registre en tant que première valeur de registre; o lorsque ladite composante est égale à ladite deuxième valeur de composante,
• calculer une deuxième valeur de calcul égale au double de ladite deuxième valeur de registre additionné à ladite première valeur de registre ; • affecter ladite deuxième valeur de calcul audit deuxième registre en tant que deuxième valeur de registre;
- suite à ladite itération, retourner au moins une valeur de registre parmi ladite première valeur de registre et ladite deuxième valeur de registre.
De la sorte, à chaque itération sur les composantes de la représentation du scalaire, seul un des deux registres est modifié. Pour ce registre modifié, la valeur de registre, correspondant à la valeur courante du registre à chaque itération, est modifiée par exemple selon une formule du type Rb <- 2.Rb + Rkj si kj est la valeur binaire de la composante de la représentation lors de l'itération, b valant 1 -kj. Les opérations effectuées à chaque étape sur des registres Ro et Ri sont donc du type 2.R0 + Ri ou 2.Ri + R0 à chaque itération . Ainsi, on calcule une multiplication en n'utilisant que des opérations de doublement et d'addition à chaque itération .
Selon un mode particulier de réalisation permettant de ne réaliser que des additions à chaque itération, ladite mémoire peut comprendre un troisième registre, ledit troisième registre stockant une troisième valeur de registre, et le procédé susmentionné peut comprendre des étapes consistant à : - affecter audit troisième registre une troisième valeur de registre initiale en tant que troisième valeur de registre, ladite deuxième valeur de registre initiale dépendant de ladite première valeur de registre initiale et de ladite deuxième valeur de registre initiale; - ladite itération comprenant des étapes consistant à : o lorsque ladite composante est égale à ladite première valeur de composante, • calculer une première valeur de calcul égale à ladite première valeur de registre additionné à ladite troisième valeur de registre ;
• affecter ladite première valeur de calcul audit premier registre en tant que première valeur de registre; o lorsque ladite composante est égale à ladite deuxième valeur de composante,
• calculer une deuxième valeur de calcul égale à ladite deuxième valeur de registre additionné à ladite troisième valeur de registre ;
• affecter ladite deuxième valeur de calcul audit deuxième registre en tant que deuxième valeur de registre; o calculer une troisième valeur de calcul égale à ladite première valeur de registre additionnée à ladite deuxième valeur de registre ; o affecter ladite troisième valeur de calcul audit troisième registre en tant que troisième valeur de registre.
Selon ce mode de réalisation, on introduit un troisième registre R2, et le calcul à chaque itération de la valeur 2.Ro + Ri (respectivement 2.R1 + R0) est réalisé par un calcul intermédiaire du type Ro + R2 (respectivement Ri + R2), le registre R2 gardant comme troisième valeur de registre, la valeur R0 + Ri égale à la première valeur de registre additionnée à la deuxième valeur de registre. On évite ainsi un calcul de doublement lors de l'itération . Ce mode de réalisation peut être avantageux si seule l'opération d'addition est implémentée dans le dispositif électronique sur lequel est mis en œuvre le procédé selon l'invention . Toujours dans ce mode de réalisation , afin de tenir compte de la parité du scalaire par lequel on multiplie l'élément du groupe, ladite représentation comprend une composante initiale prenant une valeur de composante initiale parmi une première valeur de composante initiale et une deuxième valeur de composante initiale, et le procédé susmentionné peut comprendre, suite à ladite itération , des étapes consistant à :
- lorsque ladite composante initiale a une valeur de composante initiale égale à ladite première valeur de composante initiale ; o calculer une quatrième valeur de calcul égale à ladite première valeur de registre soustraite d'une valeur finale dépendant dudit élément ; o affecter ladite quatrième valeur de calcul audit premier registre en tant que première valeur de registre.
Selon l'invention , il est possible d'ajuster les valeurs initiales des registres permettant de réaliser la multiplication . Ainsi , selon un mode de réalisation , ledit groupe comprend un élément neutre, et ladite première valeur de registre initiale peut être égale audit élément neutre et ladite deuxième valeur de registre initiale peut être égale audit élément.
Selon un autre mode de réalisation de l'invention , ladite première valeur de registre initiale peut être égale audit élément et ladite deuxième valeur de registre initiale peut être égale audit élément, et ladite troisième valeur de registre initiale peut être égale au double dudit élément.
L'invention concerne également un dispositif cryptographique pour le calcul d'une multiplication d'un élément d'un groupe noté additivement, par un scalaire, ledit scalaire étant décomposé en une représentation comprenant une pluralité de composantes chacune desdites composantes prenant une valeur de composante parmi au moins une première valeur de composante et une deuxième valeur de composante, dans lequel ledit dispositif comprend des moyens de calcul et au moins une mémoire, ladite mémoire comprenant au moins: un premier registre; un deuxième registre; et dans lequel lesdits moyens de calculs sont aptes à réaliser les étapes de procédé susmentionné.
Selon un mode de réalisation, ladite mémoire peut comprendre un troisième registre et lesdits moyens de calculs peuvent être aptes à réaliser les étapes de procédé susmentionné, notamment lorsqu'un troisième registre est utilisé.
L'invention concerne également une carte à puce comprenant un dispositif tel que décrit précédemment.
Elle concerne également un système cryptographique basé sur un algorithme cryptographique faisant intervenir au moins un calcul d'une multiplication d'un élément d'un groupe noté additivement, par un scalaire ledit calcul étant réalisé par un dispositif tel que décrit précédemment.
L'invention et les avantages qui en découlent apparaîtront plus clairement à la lecture de la description qui suit et des exemples de réalisation donnés à titre purement indicatif, par référence aux figures annexées où :
- la figure 1 est un organigramme des éléments principaux d'un dispositif électronique, par exemple une carte à puce, permettant de mettre en œuvre l'invention ;
- la figure 2 représente un schéma du procédé mis en œuvre dans le calcul d'une multiplication par un scalaire selon un premier mode de réalisation de l'invention ; - la figure 3 représente un schéma du procédé mis en œuvre dans le calcul d'une multiplication par un scalaire selon un second mode de réalisation de l'invention .
- la figure 4 représente un schéma général du procédé mis en œuvre dans la présente invention .
La figure 1 représente sous forme de schéma bloc un dispositif électronique apte à réaliser des calculs de multiplication par un scalaire. Dans l'exemple, ce dispositif est une carte à puce destinée à exécuter un programme cryptographique.
A cette fin, le dispositif 1 réunit dans une puce des moyens de calcul programmés, composés d'une unité centrale 2 reliée fonctionnellement à un ensemble de mémoires dont: - une mémoire 4 accessible en lecture seulement, dans l'exemple du type ROM masque, aussi connue sous l'appellation anglaise « mask Read-Only Memory » ou « mask ROM »,
- une mémoire 6 reprogrammable électriquement, dans l'exemple du type EEPROM (de l'anglais "Electrically Erasable Programmable ROM"), et
- une mémoire de travail 8 accessible en lecture et en écriture, dans l'exemple du type RAM (de l'anglais "random access memory"). Cette mémoire 8 comprend notamment les registres utilisés par le dispositif 1 .
Le code exécutable correspondant à l'algorithme de multiplication est contenu en mémoire programme. Ce code peut en pratique être contenu en mémoire 4, accessible en lecture seulement, et/ou en mémoire 6, réinscriptible.
L'unité centrale 2 est reliée à une interface de communication 10 qui assure l'échange de signaux vis-à-vis de l'extérieur et l'alimentation de la puce.
Cette interface peut comprendre des plots sur la carte pour une connexion dite "à contact" avec un lecteur, et/ou une antenne dans le cas d'une carte dite "sans contact".
L'une des fonctions du dispositif est de crypter et décrypter des données confidentielles respectivement transmises vers, et reçues de, l'extérieur. Ces donnés peuvent concerner par exemple des codes personnels, des informations médicales, une comptabilité sur des transactions bancaires ou commerciales, ou des autorisations d'accès à certains services restreints. Une autre fonction consiste dans le calcul d'une signature numérique ou dans sa vérification .
A cette fin, l'unité centrale 2 exécute un algorithme cryptographique à partir de données de programmation qui sont stockées dans les parties ROM masque 4 et/ou EEPROM 6.
L'algorithme cryptographique peut être basé par exemple sur un algorithme RSA (Rivest, Shamir et Adleman), ce qui implique un calcul d'exponentiation modulaire du type y = xr, où x est une valeur prédéterminée et r, un nombre entier qui constitue une clé. Le nombre y ainsi obtenu constitue une donnée chiffrée, déchiffrée, signée ou vérifiée.
Le nombre r (la clé) est stocké dans une portion de mémoire ré- inscriptible 6, de type EEPROM dans l'exemple.
Lorsque le dispositif 1 de calcul d'exponentiation est sollicité pour un calcul d'exponentiation de type y=xr, l'unité centrale mémorise le nombre x, transmis par I' interface de communication 10, en mémoire de travail 8, dans un registre de calcul.
Dans un mode de réalisation courante, l'unité centrale va lire la clé r contenue en mémoire ré-inscriptible 6, pour la mémoriser temporairement, le temps du calcul d'exponentiation, dans un registre de calcul de la mémoire de travail. L'unité centrale lance alors l'algorithme d'exponentiation ou de multiplication par un scalaire selon l'invention .
On décrit maintenant un premier mode de réalisation d'un procédé de calcul d'une multiplication par un scalaire selon l'invention en référence à la figure 2.
Selon ce mode de réalisation, l'algorithme de multiplication par un scalaire est réalisé comme suit en pseudo langage :
ALGORITHME 1 .
Entrées de l'algorithme: P, k=(kt-i, kt-2,..., ko) 2.
Sortie de l'algorithme: Q=k.P Registres temporaires utilisés : Ro, Ri
Initialisation: R0<-0 Ri<-P;
Pour j=0 à t-1, faire: b = 1-kj ; Rb<- 2.Rb+ Rkj
Fin pour Retourner Ro.
De la sorte, à chaque itération sur les kj, on ne calcu le qu'une 5
opération de doublement et une addition, sans nécessiter de condition, contrairement aux algorithmes de type « square and multiply » ou « add and double » de l'art antérieur et sans réaliser d'opérations factices.
En effet, selon cet algorithme, lors de l'itération, on calcule seulement soit 2.R0 + Ri , soit 2.Ri + R0, et si kj vaut 1 , on remplace la valeur de Ro par 2.R0 + Ri , et, si kj vaut 0, on remplace la valeur de Ri par 2.Ri + R0.
Les étapes de cet algorithme ALGORITHME 1 sont illustrées schématiquement figure 2. Comme illustré sur cette figure, on initialise d'abord les registres Ro et Ri respectivement avec les valeurs 0 et P. On réalise ensuite une itération sur la décomposition binaire de k. Les valeurs de la décomposition binaire, 0 ou 1 , sont stockées par exemple dans une variable temporaire b égale à 1 -ki pour chaque composante ki du scalaire k. Si b vaut 0, on calcule alors la valeur 2. Ro + Ri et on remplace Ro par cette valeur. Si b vaut 1 , on calcule alors la valeur 2. Ri + Ro et on remplace Ri par cette valeur.
Comme illustré figure 4 de façon plus générale, le procédé selon l'invention comprend donc une étape d'initialisation de deux registres Ro et Ri , une étape d'itération sur les composantes ki du scalaire k, dans laquelle si ki vaut 0, on calcule 2.Ri + R0 et on remplace Ri par cette valeur et si ki vaut 1 , on calcule 2.R0 + Ri et on remplace Ro par cette valeur. En fin d'algorithme, on rend alors la valeur du registre Ro.
On démontre maintenant que l'algorithme proposé ci-dessus permet bien de réaliser une multiplication d'un élément P d'un groupe par un nombre k. Pour ce faire, on utilisera la notation additive. Dans les calculs ci- dessous, nous utiliserons les opérations mathématiques suivantes :
- SU M(Ai, 0, n) désigne la somme pour i allant de 0 à n des A,, soit n en notation courante : SU M (A1, 0, n) = χ^Λ-t ;
*=o
- le signe + est utilisé pour désigner l'addition dans un groupe noté additivement ou pour désigner l'addition entre deux scalaires;
le signe - est utilisé pour désigner la soustraction dans un groupe noté additivement ou pour désigner la soustraction entre deux scalaires;
- le signe * est utilisé pour désigner une multiplication entre deux scalaires ;
le signe . est utilisé pour désigner la multiplication par un scalaire dans un groupe noté additivement. La notation k. P désigne donc la somme P + P + ... + P k fois ;
- La notation k=(kt-i , .. , ko)2 désigne la décomposition d'un scalaire k en binaire en notation vectorielle. Cette notation est équivalente à la notation sous la forme d'une somme k=SU M(kj * 2J, 0, t-1 ) ;
la notation A<-a désigne l'opération consistant à affecter à la variable A, la valeur a . Elle désigne également l'opération consistant à affecter au registre A, la valeur a .
Soit donc G un groupe abélien additif d'élément neutre 0. Soit P 7
dans G, et k, un entier codé sur t bits en binaire. On cherche donc à calculer, dans cette notation additive, la multiplication par un scalaire Q=k.P, c'est-à-dire P + P+ ...+ P k fois.
Soit k= SUM(kj * 2j, 0, t-1), avec k, appartenant à l'ensemble {0, 1}.
On a Q = SUM((kj * 2j).P, 0, t-1) = SUM (kj.Bj, 0, t-1) avec Bj = 2j.P ;
Soit alors Sj=SUM(ki.Bi, 0, j) et Tj=Bj+i - Sj ;
Avec ces notations, il vient : Sj = SUM(ki.Bi, 0, j) = kj.Bj + Sj-I = kj.CSj-i+Tj-i) + Sj-i = (1+kj).Sj.i + kj. Tj-I ;
De la même façon,
η = Bj + I-Sj = 2.Bj - (kj.Bj + Sj-i) = (2 - kj).Bj - SM = = (2 - kj).TH + (1 - kj).SH ,
Ainsi, pour tous les j supérieurs ou égaux à 0, on a :
Sj = Sj-i si kj=O
= 2.SH + Tj-I si kj = 1 ;
et
Tj = Sj-i + 2.Tj-I si kj = O
= Tj-I si kj=1 ;
Comme Q=k.P=St-i, ceci démontre que l'algorithme ALGORITHME 1 retourne bien la valeur de Q en sortie. On note également qu'à chaque itération de la boucle en j, les registres Ro et Ri contiennent respectivement les valeurs Sj et Tj.
L'algorithme ALGORITH ME 1 ci-dessus permet donc bien de calculer la multiplication Q=k.P, et ce en n'utilisant que des opérations de type 2.A + B en notation additive.
On décrit maintenant d'autres modes de réalisation particuliers de l'invention .
Selon un second mode de réalisation de l'invention , on fournit un algorithme ne réalisant toujours que des opérations de type 2.A + B, mais en n'utilisant que des additions, et en évitant le recours au calcul d'un doublement.
II en résulte un algorithme ALGORITHME 2 correspondant à une variante de l'algorithme 1 . Cet algorithme peut se décrire comme suit :
ALGORITHME 2
Entrées de l'algorithme: P, k=(kt-i, kt-2, ..., ko)2-
Sortie de l'algorithme: Q=k.P
Registres temporaires utilisés : Ro, Ri, R2 Initialisation: Ro<-P ; Ri<-P; R2<-2P
Pour j= 1 à t-1, faire: b= 1-kj ; Rb<- Rb+ R2
Fin pour
Retourner R0. Les étapes de cet algorithme ALGORITHME 2 sont illustrées schématiquement FIG. 3. Comme illustré sur cette figure, on initialise d'abord des registres Ro, Ri et R2 respectivement avec les valeurs P, P et 2.P. On réalise ensuite une itération sur la décomposition binaire de k pour k allant de 1 à t-1 . Les valeurs de la décomposition binaire, 0 ou 1 , sont stockées par exemple dans une variable temporaire b égale à 1 -ki pour chaque composante ki du scalaire k. Si b vaut 0, on calcule alors la valeur 2. R0 + Ri et on remplace Ro par cette valeur. Si b vaut 1 , on calcule alors la valeur 2.R1 + Ro et on remplace Ri par cette valeur. Ce calcul est réalisé par l'intermédiaire du registre R2 auquel on affecte une valeur valant Ro+Ri . Ainsi, en calculant Ro+R2 ou R1 + R2, seul le calcul des valeurs 2. Ro+Ri ou 2.Ri + Ro est réalisé, conformément à l'invention . Enfin, si k0 vaut 0, on remplace en fin de boucle la valeur de Ro par Ro-P.
On démontre maintenant que l'algorithme ALGORITHME 2 proposé ci-dessus permet bien de réaliser une multiplication d'un élément P d'un groupe par un scalaire k. Les notations précédentes sont également utilisées ci-dessous.
En utilisant ces notations, on sait que Bj+I = Sj + Tj Le registre R2 alors un registre intermédiaire servant à stocker une variable représentative de cette valeur Bj+i .
Pour prouver que l'algorithme ALGORITHME 2 réalise bien le calcul de Q=k.P, supposons que k est impair, c'est-à-dire que ko= 1 . On suppose également que k est strictement inférieur à l'ordre de P dans le groupe additif G.
Soit kμi le bit le plus élevé non nul dans la décomposition de k, c'est-à-dire kμi = 1 et kj=O pour j compris entre I et t-1 . Dans ce cas, comme k est impair, le registre Ro contient toujours des multiples impairs de P. De la même façon, comme Tj = 2j+ 1.P - Sj, le registre Ri contient toujours des multiples impairs de P pour j strictement inférieur à 1-1 . Enfin, le registre R2 contient toujours un multiple de P par une puissance de 2 pour j strictement inférieur à 1-1 .
Ainsi, dans le calcul de Rb<-Rb+ R2, on a toujours Rb différent de R2 pour j compris entre 1 et I-2.
De même, dans le calcul de R2<-Ro + Ri , on a toujours Ro différent de Ri pour j compris entre 1 et I-2.
Enfin, quand j est égal à 1-1 , le registre Ro prend la valeur k. P, et n'est plus modifié pour j compris entre I et t-1 .
L'algorithme ALGORITHME 2 permet donc bien de réaliser le calcul de la valeur Q=k.P.
On note enfin que l'évaluation initiale de la valeur 2P à stocker dans le registre R2 peut ne pas nécessiter de doublement. En effet, la valeur 2.P peut être précalculée ou évaluée à partir de la formule 2.P = (P + A) + (P-A) pour un élément A du groupe additif G.
De la sorte, on peut implémenter l'algorithme ALGORITHME 2 sans nécessiter de doublement en notation additive, ou d'élévation au carré en notation multiplicative.
Ceci permet notamment d'économiser l'implémentation du doublement dans un dispositif électronique, ou d'utiliser l'algorithme dans un dispositif électronique sur lequel ne serait pas implémenté le doublement, mais seulement l'addition .
On note par ailleurs que par construction, on a Bj+i = Sj + Tj = 2.Bj. Ceci permet donc d'implémenter l'algorithme ALGORITH ME 2 en se passant du registre R2 et en utilisant seulement les deux registres R0 et Ri comme dans l'algorithme ALGORITHME 1 .
Ceci fournit un algorithme ALGORITHME 3 défini comme suit :
ALGORITHME 3. Entrées de l'algorithme: P, k=(kt-i, kt-2,..., ko) 2.
Sortie de l'algorithme: Q=k.P
Registres temporaires utilisés : Ro, Ri
Initialisation: R0<-0 Ri<-P;
Pour j=0 à t-1, faire: b = 1-kj ; Rb<- 2. Rb Fin pour Retourner Ro.
On démontre facilement que cet algorithme permet le calcul de Q=k.P à l'aide des formules données pour l'algorithme ALGORITHME 1 et de la relation Bj+i = Sj + Tj = 2.Bj.
La description a été donnée dans le cadre d'un dispositif électronique de type carte à puce. I l est cependant clair que les enseignements se transposent à toutes autres applications, telles que dans les terminaux informatiques, de communication sur réseau ou autre, et dans tout autre dispositif électronique qui fait appel à des calculs de codage ou de décodage.

Claims

REVEN DICATIONS
1 . Procédé pour le calcul d'une multiplication d'un élément (P) d'u n groupe (G) noté additivement par un scalaire (k), ledit scalaire étant décomposé en une représentation ((kt-i , ... , k0); (kt-i , ... , ki )) comprenant une pluralité de composantes, chacune desdites composantes prenant une valeur de composante parmi au moi ns une première valeur de composante et une deuxième valeur de composante, ledit procédé étant destiné à être mis en œuvre dans un dispositif électronique, ledit dispositif électronique comprenant au moins une mémoire (8) comprenant au moins un premier registre (Ro) et un deuxième registre (Ri ), une ledit premier registre stockant une première valeur de registre, ledit deuxième registre stockant une deuxième valeur de registre caractérisé en ce que ledit procédé comprend des étapes consistant à :
- affecter audit premier registre (Ro) une première valeur de registre initiale (0) en tant que première valeur de registre, ladite première valeur de registre initiale dépendant dudit élément ; - affecter audit deuxième registre (Ri ) une deuxième valeur de registre initiale (P) en tant que deuxième valeur de registre, ladite deuxième valeur de registre initiale dépendant dudit élément ;
- réaliser une itération sur ladite pluralité de composantes de ladite représentation , ladite itération comprenant des étapes consistant à, pour chacune (ki) des composantes de ladite représentation : o lorsque ladite composante (ki) est égale à ladite première valeur de composante, • calculer une première valeur de calcul égale au double de ladite première valeur de registre additionné à ladite deuxième valeur de registre ; • affecter ladite première valeur de calcul audit premier registre en tant que première valeur de registre; o lorsque ladite composante (ki) est égale à ladite deuxième valeur de composante,
• calculer une deuxième valeur de calcul égale au double de ladite deuxième valeur de registre additionnée à ladite première valeur de registre ;
• affecter ladite deuxième valeur de calcul audit deuxième registre en tant que deuxième valeur de registre;
- suite à ladite itération , retourner au moins une valeur de registre parmi ladite première valeur de registre et ladite deuxième valeur de registre.
2. Procédé selon la revend ication 1 , dans lequel ladite mémoire comprend un troisième registre (R2), ledit troisième registre stockant une troisième valeur de registre, ledit procédé comprenant des étapes consistant à : - affecter audit troisième registre (R2) une troisième valeu r de registre initiale (P) en tant que troisième valeur de registre, ladite deuxième valeur de registre initiale dépendant de ladite première valeur de registre initiale et de ladite deuxième valeur de registre initiale; - ladite itération comprenant des étapes consistant à : o lorsque ladite composante (ki) est égale à ladite première valeur de composante,
• calculer une première valeur de calcu l (Ro+R2) égale à ladite première valeur de registre additionné à ladite troisième valeur de registre ; • affecter ladite première valeur de calcul audit premier registre en tant que première valeur de registre; o lorsque ladite composante (ki) est égale à ladite deuxième valeur de composante,
• calculer une deuxième valeur de calcul (R1 + R2) égale à ladite deuxième valeur de registre additionné à ladite troisième valeur de registre ;
• affecter ladite deuxième valeur de calcul audit deuxième registre en tant que deuxième valeur de registre; o calculer une troisième valeur de calcul (Ro+Ri ) égale à ladite première valeur de registre additionnée à ladite deuxième valeur de registre ; o affecter ladite troisième valeur de calcul audit troisième registre en tant que troisième valeur de registre.
3. Procédé selon la revendication 2, dans lequel ladite représentation comprend une composante initiale prenant une valeur de composante initiale parmi une première valeur de composante initiale et une deuxième valeur de composante initiale, et ledit procédé comprend , suite à ladite itération , des étapes consistant à :
- lorsque ladite composante initiale a une valeur de composante initiale égale à ladite première valeur de composante initiale ; o calculer une quatrième valeur de calcul égale à ladite première valeur de registre soustraite d'une valeur finale dépendant dudit élément ; o affecter ladite quatrième valeur de calcul audit premier registre en tant que première valeur de registre. 5
4. Procédé selon la revendication 1 , dans lequel ladite première valeur de registre initiale est égale à l'élément neutre et dans lequel ladite deuxième valeur de registre initiale est égale audit élément.
5. Procédé selon l'une des revendications 2 à 3, dans lequel ladite première valeur de registre initiale est égale audit élément et dans lequel ladite deuxième valeur de registre initiale est égale audit élément, et dans lequel ladite troisième valeur de registre initiale est égale au double dudit élément
6. Dispositif cryptographique pour le calcul d'une multiplication d'un élément (P) d'un groupe noté additivement, par un scalaire (k), ledit scalaire étant décomposé en une représentation comprenant une pluralité de composantes ((kt-i , ... , k0); (kt-i , ... , ki )), chacune desdites composantes prenant une valeur de composante parmi au moins une première valeur de composante et une deuxième valeur de composante, dans lequel ledit dispositif comprend des moyens de calcul (2, 4, 6) et au moins une mémoire (8), ladite mémoire (8) comprenant au moins: un premier registre (Ro); un deuxième registre (Ri ); et dans lequel lesdits moyens de calculs (2, 4, 6) sont aptes à réaliser les étapes de procédé selon la revendication 1 .
7. Dispositif selon la revendication 6, dans lequel ladite mémoire comprend un troisième registre et dans lequel lesdits moyens de calculs sont aptes à réaliser les étapes de procédé selon l'une des revendications 1 à 5.
8. Carte à puce comprenant un dispositif selon l'une des revendications 6 ou 7.
9. Système cryptographique basé sur un algorithme cryptographique faisant intervenir au moins un calcul d'une multiplication d'un élément (P) d'un groupe noté additivement, par un scalaire (k) ledit calcul étant réalisé par un dispositif selon l'une des revendications 6 ou 7.
EP07726722A 2006-03-16 2007-03-08 Procede de securisation d'un calcul d'une exponentiation ou d'une multiplication par un scalaire dans un dispositif electronique Withdrawn EP1994465A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0650884 2006-03-16
PCT/EP2007/052197 WO2007104706A1 (fr) 2006-03-16 2007-03-08 Procede de securisation d'un calcul d'une exponentiation ou d'une multiplication par un scalaire dans un dispositif electronique

Publications (1)

Publication Number Publication Date
EP1994465A1 true EP1994465A1 (fr) 2008-11-26

Family

ID=37232970

Family Applications (1)

Application Number Title Priority Date Filing Date
EP07726722A Withdrawn EP1994465A1 (fr) 2006-03-16 2007-03-08 Procede de securisation d'un calcul d'une exponentiation ou d'une multiplication par un scalaire dans un dispositif electronique

Country Status (3)

Country Link
US (1) US8065735B2 (fr)
EP (1) EP1994465A1 (fr)
WO (1) WO2007104706A1 (fr)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2972064B1 (fr) * 2011-02-25 2013-03-15 Inside Secure Procede de cryptographie comprenant une operation d'exponentiation
EP2523096A1 (fr) * 2011-05-11 2012-11-14 Thomson Licensing Mise à la puissance modulaire et dispositif résistants aux attaques par canaux cachés
US10148285B1 (en) 2012-07-25 2018-12-04 Erich Schmitt Abstraction and de-abstraction of a digital data stream
US10795858B1 (en) 2014-02-18 2020-10-06 Erich Schmitt Universal abstraction and de-abstraction of a digital data stream
FR3040512B1 (fr) * 2015-08-27 2017-09-08 Stmicroelectronics Rousset Protection d'un calcul d'exponentiation modulaire
FR3040511B1 (fr) * 2015-08-27 2017-09-08 Stmicroelectronics Rousset Verification de la sensibilite d'un circuit electronique executant un calcul d'exponentiation modulaire

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2252078C (fr) 1998-10-28 2009-02-17 Certicom Corp. Systeme cryptographique resistant aux attaques contre la signature de puissance
EP1548687B1 (fr) 2002-12-18 2013-01-09 Fujitsu Limited Chiffrement a courbe elliptique inviolable utilisant une cle secrete

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2007104706A1 *

Also Published As

Publication number Publication date
US20090175455A1 (en) 2009-07-09
US8065735B2 (en) 2011-11-22
WO2007104706A1 (fr) 2007-09-20

Similar Documents

Publication Publication Date Title
EP2946284B1 (fr) Procédé de cryptographie comprenant une opération de multiplication par un scalaire ou une exponentiation
CN107040362B (zh) 模乘设备和方法
WO2000059156A1 (fr) Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique
EP2005291A2 (fr) Procédé de déchiffrement
EP1239365A2 (fr) Méthode de traitement inviolable
WO2007104706A1 (fr) Procede de securisation d&#39;un calcul d&#39;une exponentiation ou d&#39;une multiplication par un scalaire dans un dispositif electronique
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
CA2732444C (fr) Circuit integre protege contre une analyse par canal auxiliaire horizontale
EP1421473B1 (fr) Procédé de calcul universel appliqué à des points d&#39;une courbe elliptique
WO2000059157A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique
FR2828608A1 (fr) Procede securise de realisation d&#39;une operation d&#39;exponentiation modulaire
EP1224765A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa
EP1839125A1 (fr) Procédé d&#39;exponentiation sécurisée et compacte pour la cryptographie
EP1254408B1 (fr) Procede de calcul d&#39;exponentation modulaire dans un composant electronique mettant en oeuvre un algorithme de chiffrement a cle publique
FR2848753A1 (fr) Procede de division entiere ou de reduction modulaire securise contre les attaques a canaux caches
EP1530753A2 (fr) Procede de calcul universel applique a des points d&#39;une courbe elliptique
Lee et al. A practical collision-based power analysis on RSA prime generation and its countermeasure
WO2002099624A1 (fr) Procede de securisation d&#39;un calcul d&#39;exponentiation dans un dispositif electronique
FR2856538A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme cryptographique du type a cle publique
FR3010562A1 (fr) Procede de traitement de donnees et dispositif associe
FR2818473A1 (fr) Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa
WO2002082257A1 (fr) Dispositif destine a realiser des calculs d&#39;exponentiation securisee et utilisation d&#39;un tel dispositif
WO2002093411A1 (fr) Dispositif destine a realiser des calculs d&#34;exponentiation appliques a des points d&#34;une courbe elliptique
EP1350161A1 (fr) Dispositif destine a realiser des calculs d&#39;exponentiation, et procede de programmation et d&#39;utilisation du dispositif
FR2854997A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme cryptographique du type a cle publique sur une courbe elliptique definie sur un corps de caracteristique deux

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20080812

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC MT NL PL PT RO SE SI SK TR

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: GEMALTO SA

17Q First examination report despatched

Effective date: 20100211

DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20130813