WO2001093014A1 - Procede de contre-mesure dans un composant electronique mettant en oeuvre un alrogithme de cryptographie a cle publique sur courbe elliptique - Google Patents

Procede de contre-mesure dans un composant electronique mettant en oeuvre un alrogithme de cryptographie a cle publique sur courbe elliptique Download PDF

Info

Publication number
WO2001093014A1
WO2001093014A1 PCT/FR2001/001625 FR0101625W WO0193014A1 WO 2001093014 A1 WO2001093014 A1 WO 2001093014A1 FR 0101625 W FR0101625 W FR 0101625W WO 0193014 A1 WO0193014 A1 WO 0193014A1
Authority
WO
WIPO (PCT)
Prior art keywords
algorithm
curve
point
integer
decryption
Prior art date
Application number
PCT/FR2001/001625
Other languages
English (en)
Inventor
Héléna HANDSCHUH
Original Assignee
Gemplus
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 filed Critical Gemplus
Priority to AU2001264029A priority Critical patent/AU2001264029A1/en
Publication of WO2001093014A1 publication Critical patent/WO2001093014A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • 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/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • G06F2207/7242Exponent masking, i.e. key masking, e.g. A**(e+r) mod n; (k+r).P

Definitions

  • the present invention relates to a novel against-measuring method in an electronic component using 'implement a public key encryption algorithm on elliptic curve.
  • two people wishing to communicate via an insecure channel must first agree on a secret encryption key K.
  • the encryption function "and the decryption use the same key K.
  • the drawback of the secret key encryption system is that said system requires the prior communication of the key K between the two persons via a secure channel, before any message encrypted is not sent through the unsecured channel.
  • secure channel is meant a channel for which it is impossible to know or modify the information passing through said channel.
  • Such a secure channel can be realized by a cable connecting two terminals, owned by the two said people.
  • Public key cryptography solves the problem of distributing keys through an insecure channel.
  • the principle of public key cryptography consists in using a pair of keys, for example a public encryption key and a private decryption key. It must be computationally infeasible to find the private decryption key from the public encryption key.
  • a person .A wishing to communicate information to a person B uses the public encryption key of person B. Only person B has the private key associated with his public key. Only person B is therefore capable of deciphering the message addressed to him.
  • public key cryptography allows the authentication of a document or a person or the origin of a document through the use of signatures. digital.
  • This encryption system is based on the difficulty of the problem of the sum of subsets.
  • This encryption system is based - on the theory of algebraic codes. It is based on the problem of decoding linear codes. - ElGa al: This encryption system is based on the difficulty of the discrete logarithm in a finite body.
  • the elliptic curve encryption system constitutes a modification of existing cryptographic systems to apply them to the domain of elliptic curves.
  • An elliptic curve on a finite field GF (q being a prime number and n an integer) is the set of points (x, y) with x the abscissa and y the ordinate belonging to GF (q A n) having as equation:
  • a common point with most cryptographic algorithms based on elliptic curves is that they include a curve as a parameter. elliptical defined on a finite field and a point P belonging to this elliptical curve.
  • the private key is an integer d chosen randomly.
  • the number of m is the triplet (xl, yl, c).
  • the "double and add” algorithm takes as input a point P belonging to a given elliptic curve and an integer d.
  • the "double and add” algorithm has two variants, depending on whether one starts the calculations with the most significant or least significant bits of d.
  • the first variant has the following 3 steps:
  • the second variant has the following 3 steps:
  • DPA attacks acronym for Differential Power Analysis.
  • the principle of these DPA attacks is based on the fact that the current consumption of the microprocessor executing instructions varies according to the data manipulated. In particular, when an instruction manipulates data of which a particular bit is constant, the value of the other bits may vary, the analysis of the consumption of current associated with the instruction shows that the average consumption of the instruction does not is not the same next as the particular bit takes the value 0 or 1.
  • the DPA type attack therefore makes it possible to obtain additional information on the intermediate data manipulated by the microprocessor of the card during the execution of a cryptographic algorithm. This additional information can in certain cases make it possible to reveal the private parameters of the decryption algorithm, rendering the cryptographic system insecure.
  • a DPA attack method is described on an elliptical curve type algorithm performing an operation of the scalar multiplication type of a point P by an integer d, the integer d being the secret key. This attack directly reveals the secret key d. It therefore seriously compromises the security of the implementation of elliptical curves on a smart card.
  • the first step of the attack is the recording of the current consumption corresponding to the execution of the first variant of the algorithm ⁇ double and add "described above for N distinct points P (l), .., P (In an algorithm based on elliptic curves, the microprocessor of the smart card will perform N scalar multiplications d. P (1), .., d. P (N).
  • This method therefore makes it possible to determine the value of the bit d (t-l) of d.
  • the algorithm described in the following paragraph is a generalization of the preceding algorithm. It allows to determine the value of the secret key d:
  • the input is defined by N points denoted P (l) to P (N) corresponding to N calculations performed by the smart card and the output by an integer h.
  • the algorithm is carried out in the following manner in three stages.
  • the method of the invention consists in the development of a new countermeasure making it possible to guard against the DPA attack previously described.
  • This process consists in ⁇ masking "the secret key d by which we want to multiply a point P of the elliptic curve by a random value r of the same length.
  • the countermeasure method of the invention comprises three variants.
  • the first variant consists in that a counter is i 'ncrphié at each new execution of the deciphering algorithm.
  • the algorithm is executed according to the five-step process described above. As long as the counter has not reached the limit value T, steps 1 and 4 of the method described above are not executed, the point S keeping the value taken during the previous execution.
  • the third variant consists of a modification of the second variant, characterized in that a counter is incremented on each new execution of the decryption algorithm.
  • the algorithm is executed according to the five-step method of the second variant described above. As long as the counter has not reached a limit value T, steps l ′ and 4 ′ of the method described above are not executed, the point S keeping the value taken during the previous execution.
  • This countermeasure makes it possible to protect the entire cryptographic algorithm based on the elliptic curves against the DPA attack previously described.
  • This countermeasure supplements the three countermeasures presented by French patent 99.03920 and can be combined with any one of these three countermeasures to form a new one. It applies to any electronic component, of the electronic chip type for a smart card for example.

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)
  • Storage Device Security (AREA)

Abstract

La présente invention concerne un procédé de contre-mesure dans un composant électronique mettant en oeuvre un algorithme de cryptographie à clé publique basé sur l'utilisation des courbes elliptiques consistant à calculer, à partir de la clé privée (d) et du nombre de points (n) de ladite courbe elliptique, un nouvel entier de déchiffrement (d'). La présente invention s'applique particulièrement à tout composant électronique existant.

Description

PROCEDE DE CONTRE-MESURE DANS UN COMPOSANT
ELECTRONIQUE METTANT EN ŒUVRE UN ALGORITHME DE
CRYPTOGRAPHIE A CLE PUBLIQUE SUR COURBE ELLIPTIQUE
La présente invention concerne un nouveau procédé de contre-mesure dans un composant électronique mettant ' en oeuvre un algorithme de chiffrement à clé publique sur courbe elliptique. Dans le modèle classique de la cryptographie à clef secrète, deux personnes désirant communiquer par l'intermédiaire d'un canal non sécurisé doivent au préalable se mettre d' accord sur une clé secrète de chiffrement K. La fonction de chiffrement" et la fonction de déchiffrement utilisent la même clef K. L' inconvénient du système de chi frement à clé secrète est que ledit système requiert la communication préalable de la clé K entre les deux personnes par l'intermédiaire d'un canal sécurisé, avant qu'un quelconque message chiffré ne soit envoyé à travers le canal non sécurisé. Dans la pratique, il est généralement difficile de trouver un canal de communication parfaitement sécurisé, surtout si la distance séparant les deux personnes est importante. On entend par canal sécurisé un canal pour lequel il est impossible de connaître ou de modifier les informations qui transitent par ledit canal. Un tel canal sécurisé peut être réalisé par un câble reliant deux terminaux, possédés par les deux dites personnes.
Le concept de cryptographie à clef publique fut inventé par Whitfield DIFFIE et Martin HELLMAN en 1976. La cryptographie à clef publique permet de résoudre le problème de la distribution des clefs à travers un canal non sécurisé. Le principe de la cryptographie à clef publique consiste à utiliser une paire de clefs, par exemple une clef publique de chiffrement et une clef privée de déchiffrement. Il doit être calculatoirement infaisable de trouver la clef privée de déchiffrement à partir de la clef publique de chiffrement. Une personne .A désirant communiquer une information à une personne B utilise la clef publique de chiffrement de la personne B. Seule la personne B possède la clef privée associée à sa clef publique. Seule la personne B est donc capable de déchiffrer le message qui lui est adressé.
Un autre avantage de la cryptographie à clé publique sur la cryptographie à clé secrète est que la cryptographie à clef publique permet l' uthentification d'un document ou d'une personne ou de la provenance d'un document grâce à l'utilisation de signatures numériques.
La première réalisation de schéma de chiffrement à clef publique fut mise au point en 1977 par Rivest, Shamir et Adleman, qui ont inventé le système de chiffrement RSA. La sécurité de RSA repose sur la difficulté de factoriser un grand nombre qui est le produit de deux nombres premiers. Depuis, de nombreux systèmes de chiffrement à clef publique ont été proposés, dont la sécurité repose sur différents problèmes calculatoires : (cette liste n'est pas exhaustive) *.
- Sac à dos de Merckle-Hellman :
Ce système de chiffrement est basé sur la difficulté du problème de la somme de sous- ensembles.
- McEliece :
Ce système de chiffrement est basé - sur la théorie des codes algébriques. Il est basé sur le problème du décodage de codes linéaires. - ElGa al : Ce système de chiffrement est basé sur la difficulté du logarithme discret dans un corps fini.
- Courbes elliptiques : Le système de chiffrement à courbe elliptique constitue une modification de systèmes cryptographiques existants pour les appliquer au domaine des courbes elliptiques.
L'utilisation de -courbes elliptiques dans des systèmes cryptographiques fut proposé indépendamment par Victor Miller et Nea Koblitz en 1985. Les applications réelles des courbes elliptiques ont été envisagées au début des années 1990. L'avantage de cryptosystèmes à base de courbe elliptique est qu'ils fournissent une sécurité équivalente aux autres cryptosystèmes mais avec des tailles de clef moindres. Ce gain en taille de clé implique une diminution des besoins en mémoire et une réduction des temps de calcul, ce qui rend l'utilisation des courbes elliptiques particulièrement adaptées pour des applications de type carte à puce.
Une courbe elliptique sur un corps fini GF(qAn) (q étant un nombre premier et n un entier) est l'ensemble des points (x,y) avec x l'abscisse et y l'ordonnée appartenant à GF(qAn) ayant pour équation :
yA2=xA3+ax+b si q est supérieur ou égal à 3 et y 2+x*y=xA3+a*xA2+b si q=2.
Les deux classes de courbes elliptiques les plus utilisées en cryptographie .sont les classes suivantes : 1) Courbes définies sur le corps fini GF(p) (ensemble des entiers odulo p, p étant un nombre premier) ayant pour équation: yA2=xA3+ax+b 2) Courbes elliptiques sur le corps fini GF(2An) ayant pour équation yA2*xy=xA3+ax 2+b
Pour chacune de ces deux classes de courbes, on définit une opération d'addition de points: étant donné deux points P et Q, la somme R=P+Q est un point de la courbe, dont les coordonnées s'expriment à l'aide des coordonnées des points P et Q suivant des formules dont l'expression est donnée dans l'ouvrage " Elliptic Curve public key cryptosystem " par Alfred J. Menezes. Cette opération d'addition permet de définir une opération de multiplication scalaire: étant donné un point P appartenant à une courbe elliptique et un entier d, le résultat de la multiplication scalaire de P par un point d tel que Q=d.P=P+P+ ....+P d fois. La sécurité des algorithmes de cryptographie sur courbes elliptiques est basée sur la difficulté du logarithme discret sur courbes elliptiques, ledit problème consistant à partir de deux points Q et P appartenant à une courbe elliptique E, de trouver, s'il existe, un entier x tel que Q=x.P
Il existe de nombreux algorithmes cryptographiques basés sur le problème du logarithme discret. Ces algorithmes sont facilement transposables aux courbes elliptiques. Ainsi, il est possible de mettre en oeuvre des algorithmes assurant l'authentification, la confidentialité, le contrôle d'intégrité et l'échange de clé.
Un point commun à la plupart des algorithmes cryptographiques basés sur les courbes elliptiques est qu'ils comprennent comme paramètre une courbe elliptique définie sur un corps fini et un point P appartenant à cette courbe elliptique. La clé privée est un entier d choisi aléatoirement. La clef publique est un point de la courbe Q tel que Q=d.P. Ces algorithmes cryptographiques font généralement intervenir une multiplication scalaire dans le calcul d'un point R=d.T où d est la clef secrète.
Dans ce paragraphe, on décrit un algorithme de chiffrement à base de courbe elliptique. Ce schéma est analogue au schéma de chiffrement d'El Gamal. Un message m est chiffré de la manière suivante :
Le chiffreur choisit un entier k aléatoirement et calcule les points k.P=(xl,yl) et k.Q=(x2,y2) de la courbe, et l'entier c= x2 + m. Le chiffré de m est le triplet (xl,yl,c).
Le déchiffreur qui possède d déchiffre m en calculant : (x'2,y'2)=d(xl,yl) et m=c-x'2
Pour réaliser les multiplications scalaires nécessaires dans les procédés de calcul décrits précédemment, plusieurs algorithmes existent : Algorithme " double and add " ; Algorithme " addition-soustractio " Algorithme avec chaînes d' addition ; Algorithme avec fenêtre ;
Algorithme avec représentation signée ;
Cette liste n'est pas exhaustive. L'algorithme le plus simple et le plus utilisé est l'algorithme
" double and ad ". L'algorithm " double and add " prend en entrée un point P appartenant à une courbe elliptique donnée et un entier d. L'entier d est noté d=(d(t),d(t-l), .., d(0)), où (d(t),d(t-l), ..,d(0)) est la représentation binaire de d, avec d(t) le bit de poids fort et d(0) le bit de poids faible. L'algorithme retourne en sortie le point Q=d.P. L'algorithme " double and add " a deux variantes, selon que l'on commence les calculs par les bits de poids fort ou de poids faible de d.
La première variante comporte les 3 étapes suivantes :
1) Initialiser le point Q avec la valeur P
2) Pour i allant de t à 0 exécuter : 2a) Remplacer Q par 2Q
2b) Si d(i)=l remplacer Q par Q+P 3) Retourner Q.
La seconde variante comporte les 3 étapes suivantes :
1) Initialiser le point Q avec le point à l'infini 0 et un accumulateur A avec la valeur P. 2) Pour i allant de 0 à t exécuter : 2a) Si d(i)=l remplacer Q par Q+A 2b) Remplacer A par 2A
3) Retourner Q.
Il est apparu que l' implémentation sur carte à puce d'un algorithme de chiffrement à clé publique du type courbe elliptique était vulnérable à des attaques consistant en une analyse différentielle de consommation de courant permettant de retrouver la clé privée de déchiffrement. Ces attaques sont appelées attaques DPA, acronyme pour Differential Power Analysis. Le principe de ces attaques DPA repose sur le fait que la' consommation de courant du microprocesseur exécutant des instructions varie selon la donnée manipulée. En particulier, lorsqu'une instruction manipule une donnée dont un bit particulier est constant, la valeur des autres bits pouvant varier, l'analyse de la consommation de, courant liée à l'instruction montre que la consommation moyenne de l'instruction n'est pas la même suivant que le bit particulier prend la valeur 0 ou 1. L'attaque de type DPA permet donc d' obtenir des informations supplémentaires sur les données intermédiaires manipulées par le microprocesseur de la carte lors de l'exécution d'un algorithme cryptographique. Ces informations supplémentaires peuvent dans certain cas permettre de révéler les paramètres privés de l'algorithme de déchiffrement, rendant le système cryptographique non sûr. Dans la suite de ce document on décrit un procédé d' attaque DPA sur un algorithme de type courbe elliptique réalisant une opération du type multiplication scalaire d'un point P par un entier d, l'entier d étant la clé secrète. Cette attaque permet de révéler, directement la clé secrète d. Elle compromet donc gravement la sécurité de l' implémentation de courbes elliptiques sur une carte à puce.
La première étape de l'attaque est l'enregistrement de la consommation de courant correspondant à l'exécution de la première variante de l'algorithme λ double and add " décrit précédemment pour N points distincts P(l),.., P(N). Dans un algorithme à base de courbes elliptiques, le microprocesseur de. la carte à puce va effectuer N multiplications scalaires d. P (1) , .. , d. P (N) .
Pour la clarté de la description de l'attaque, on commence par décrire une méthode permettant d' obtenir la valeur du bit d(t-l) de la clé secrète d, où (d (t) , d (t-1) , .. , d(0)) est la représentation binaire de d, avec d(t) le bit de poids fort et d(0) le bit de poids faible. On donne ensuite la description d'un algorithme qui permet de retrouver la valeur de d.
On groupe les points P(l) à P(N) suivant la valeur du dernier bit de l'abscisse de 4.P, où P désigne un des points P(l) à P(N). Le premier groupe est constitué des points P tels que le dernier bit de l'abscisse de 4.P est égal à 1. Le second groupe est constitué des points P tels que le dernier bit de l'abscisse de 4.P est égal à 0. On calcule la moyenne des consommations de courant correspondant à chacun des deux groupes, et on calcule la courbe de différence entre ces deux moyennes.
Si le bit d(t-l) de d est égal à 0, alors l'algorithme* de multiplication scalaire précédemment décrit calcule et met en mémoire la valeur de 4. P. Cela signifie que lors de l'exécution de l'algorithme dans une carte à puce, le microprocesseur de la carte va effectivement calculer 4. P. Dans ce cas, dans le premier groupe de message le dernier bit de la donnée manipulée par le microprocesseur est .toujours à 1, et dans le deuxième groupe de message le dernier bit de la donnée manipulée est toujours à 0. La moyenne des consommations de courant correspondant à chaque groupe est donc différente. Il apparaît donc dans la courbe de différence entre les 2 moyennes un pic de différentiel de consommation de courant.
Si au contraire le bit d(t-l) de d est égal à 1, l'algorithme d'exponentiation décrit précédemment ne calcule pas le point 4. P. Lors de l'exécution de l'algorithme par la carte à puce, le microprocesseur ne manipule donc jamais la donnée 4. P. Il n'apparaît donc pas de pic de différentiel de consommation.
Cette méthode permet donc de déterminer la valeur du bit d(t-l) de d.
L'algorithme décrit dans le paragraphe suivant est une généralisation de l'algorithme précédant. Il permet de déterminer la valeur de la clé secrète d : On définit l'entrée par N points notés P(l) à P (N) correspondant à N calculs réalisés par la carte à puce et la sortie par un entier h.
Ledit algorithme s'effectue de la manière suivante en trois étapes.
1) Exécuter h=l ;
2) Pour i allant de t-1 à 1, exécuter :
2)1) Classer les .points P(l) à P(N) suivant la valeur du dernier bit de l'abscisse de (4*h) .P ;
2)2) Calculer la moyenne de consommation de courant pour chacun des deux groupes ; 2)3) Calculer la différence entre les 2 moyennes ; 2)4) Si la différence fait apparaître un pic de différentiel de consommation, faire h=h*2 ; sinon faire h=h*2+l ;
3) Retourner h.
L'algorithme précédent fournit un entier h tel que d=2*h ou d=2*h+l. Pour obtenir la valeur de d, il suffit ensuite de tester les deux hypothèses possibles. L'attaque de type DPA décrite permet donc de retrouver la clé privée d.
Une attaque équivalente s'applique à la seconde variante de l'algorithme de multiplication scalaire de type λλ double and add ", et plus généralement à tous les algorithmes de multiplication scalaire sur courbe elliptique.
Le procédé de l'invention consiste en l'élaboration d'une nouvelle contre-mesure permettant de se prémunir contre l'attaque DPA précédemment décrite.
Ce procédé consiste à λ masquer " la clé secrète d par laquelle on veut multiplier un point P de la courbe elliptique par une valeur aléatoire r de même longueur. Ledit procédé de contre-mesure de la présente invention dans un composant électronique mettant en oeuvre un algorithme de cryptographie à clé publique basé sur l'utilisation des courbes elliptiques consistant à calculer, à partir de la clé privée d et du nombre de points n de ladite courbe elliptique, un nouvel entier de déchiffrement d' tel que le déchiffrement d'un message quelconque, au moyen d'un algorithme de déchiffrement, avec d' permet d'obtenir le même résultat qu'avec d, en réalisant l'opération Q=d.P, P étant un point de la courbe sur lequel ' est appliqué l'algorithme de multiplication scalaire, est caractérisé en ce qu'il comprend les étapes suivantes : 1) Tirage d'une valeur aléatoire r de même taille que d;
2) Calcul de l'entier d' tel que : d'=d+r;
3) Opération de multiplication scalaire dont le résultat est le point Q' de la courbe tel que : Q'≈d' .P;
4) Opération de multiplication scalaire dont le résultat est le point S de la courbe tel que : S=r.P;
5) Calcul du point Q de la courbe tel que : Q=Q'- S.
L'avantage de ce procédé par rapport aux trois contre-mesures du brevet français 99.03920 est qu'il permet de prévoir une contre-mesure à la fois différente et mieux adaptée à certains types de courbes elliptiques. Plus précisément, lorsque l'algorithme de multiplication scalaire s'effectue selon ladite deuxième variante de l'algorithme
" double and add ", l'opération de doublement du point P est commune au calcul des points Q' *= d'.P et'
S = r.P. Le sur-coût en temps de calcul de cette contre-mesure est donc réduit aux opérations d'addition effectuées lors du calcul du point S = r.P. Ceci présente un avantage incontestable lorsque l'on utilise des courbes elliptiques pour lesquelles le doublement d'un point est une opération aussi coûteuse en temps de calcul que l'addition de deux points.
Le présent procédé se différencie par rapport aux contre-mesures du brevet français 99.03920 en ce que l'aléa r est un entier qui masque ledit entier de déchiffrement d et non un point aléatoire de la courbe qui masque le point P, et en ce que le calcul du résultat Q comporte une étape de calcul* du point S=r.P, ce qui n'est pas nécessaire dans ledit brevet français 99.03920 lorsque l'aléa r est un multiple du nombre n de points de la courbe. Le procédé de contre-mesure de l'invention comprend trois variantes.
La première variante consiste en ce qu'un compteur est i'ncrémenté à chaque nouvelle exécution de l'algorithme de déchiffrement. Lors de la première exécution de l'algorithme de déchiffrement, l'algorithme est exécuté suivant le procédé en cinq étapes décrit précédemment. Tant que le compteur n'a pas atteint la valeur limite T, les étapes 1 et 4 du procédé décrit précédemment ne sont pas exécutées, le point S gardant la valeur prise lors de l'exécution précédente. Lorsque le compteur atteint la valeur limite T, l'algorithme de déchiffrement s'effectue suivant le procédé décrit précédemment en cinq étapes, et le compteur est remis à zéro. Dans la pratique, on peut prendre T=16.
La deuxième variante consiste en ce que la carte possède initialement en mémoire un point de la courbe elliptique tel que S=r.P. Les étapes 1 et 4 de l'algorithme de déchiffrement précédent sont remplacées par les étapes l' et 4' suivantes: 1') Remplacer r par 2.r: 4') Remplacer S par 2. S.
La troisième variante consiste en une modification de la deuxième variante caractérisée en ce qu'un compteur est incrémenté à chaque nouvelle exécution de l'algorithme de déchiffrement. Lors de la première exécution de l'algorithme de déchiffrement, l'algorithme est exécuté suivant le procédé en cinq étapes de la deuxième variante décrit précédemment. Tant que le compteur n'a pas atteint une valeur limite T, les étapes l' et 4' du procédé décrit précédemment ne sont pas exécutées, le point S gardant la valeur prise lors de l'exécution précédente. Lorsque le compteur atteint une valeur limite T, l'algorithme de déchiffrement s'effectue suivant le procédé précédemment décrit en cinq étapes, et le compteur est remis à zéro. Dans la pratique, on peut prendre T=16.
L' application de ce procédé de contre-mesure permet de protéger tout l'algorithme cryptographique basé sur les courbes elliptiques contre l'attaque DPA précédemment décrite. La présente contre-mesure complète les trois contre-mesures présentées par le brevet français 99.03920 et peut être combinée avec l'une quelconque de ces trois contre-mesures pour en former une nouvelle. Elle s'applique à tout composant électronique, du type puce électronique pour carte à puce par exemple.

Claims

REVENDICATIONS
1- Procédé de contre-mesure dans un composant électronique mettant en oeuvre un algorithme de cryptographie à clé publique basé sur l'utilisation des courbes elliptiques consistant à calculer, à partir de la clé privée d et du nombre de points n de ladite courbe elliptique, un nouvel entier de déchiffrement d' tel que le déchiffrement d'un message quelconque, au moyen d'un algorithme de déchiffrement, avec d' permet d'obtenir le même résultat qu'avec d, en réalisant l'opération Q=d.P, P étant un point de la courbe sur lequel est appliqué l'algorithme de multiplication scalaire, procédé caractérisé en ce qu'il comprend les étapes suivantes :
1) Tirage d'une valeur aléatoire r de même taille que d;
2) Calcul de l'entier d' tel que : d'=d+r; 3) Opération de multiplication scalaire dont le résultat est le point Q' de la courbe tel que :
Q'=d' .P;
4) Opération de multiplication scalaire dont le résultat est le point S de la courbe tel que : S=r.P; 5) Calcul du point Q de la courbe tel que : Q=Q' -
S.
2- Procédé de contre-mesure selon la revendication 1 caractérisé en ce qu'un nouvel entier de déchiffrement d' est calculé à chaque nouvelle exécution de l'algorithme de déchiffrement.
3r Procédé de contre-mesure selon la revendication 1 caractérisé en ce qu'un compteur est incrémenté à chaque nouvelle exécution de l'algorithme de déchiffrement jusqu'à une valeur entière T. 4- Procédé de contre-mesure selon la revendication 3 caractérisé en ce qu'une fois la valeur T atteinte, un nouvel entier de déchiffrement d' est calculé selon le procédé de la revendication 1, le compteur étant remis à zéro et le point S=r.P étant stocké en mémoire.
5- Procédé de contre-mesure selon la revendication 3 ou la revendication 4 caractérisé en ce * que la valeur T est égale à seize.
6- Procédé de contre-mesure selon la revendication 1 caractérisé en ce que la courbe elliptique possède en mémoire un point S, tel que S=r.P, les étapes 1 et 4 étant alors remplacées par les étapes 1 ' et 4 ' : l') Remplacer r par 2.r:
4') Remplacer S par 2. S. 7- Procédé de contre-mesure selon la revendication 6 caractérisé en ce qu'un nouvel entier de déchiffrement d' est calculé à chaque nouvelle exécution de l'algorithme de déchiffrement.
8- Procédé de contre-mesure selon la revendication 6 caractérisé en ce qu'un compteur est incrémenté à chaque nouvelle exécution de l'algorithme de déchiffrement jusqu'à une valeur T.
9- Procédé de contre-mesure selon la revendication 8 caractérisé en ce qu'une fois la valeur T atteinte, un * nouvel entier de déchiffrement d' est calculé selon le procédé de la revendication 6, et le compteur est remis à zéro.
10- Procédé de contre-mesure selon la revendication 8 ou la revendication 9 caractérisé en ce que la valeur T est égale à seize.
11- Composant électronique mettant en oeuvre le procédé selon l'une quelconque des revendications 1 à 10.
PCT/FR2001/001625 2000-06-02 2001-05-25 Procede de contre-mesure dans un composant electronique mettant en oeuvre un alrogithme de cryptographie a cle publique sur courbe elliptique WO2001093014A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001264029A AU2001264029A1 (en) 2000-06-02 2001-05-25 Countermeasure method in an electronic component using a public key encryption algorithm on elliptic curve

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0007109A FR2809893B1 (fr) 2000-06-02 2000-06-02 Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique sur courbe elliptique
FR00/07109 2000-06-02

Publications (1)

Publication Number Publication Date
WO2001093014A1 true WO2001093014A1 (fr) 2001-12-06

Family

ID=8850922

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2001/001625 WO2001093014A1 (fr) 2000-06-02 2001-05-25 Procede de contre-mesure dans un composant electronique mettant en oeuvre un alrogithme de cryptographie a cle publique sur courbe elliptique

Country Status (4)

Country Link
US (1) US6914986B2 (fr)
AU (1) AU2001264029A1 (fr)
FR (1) FR2809893B1 (fr)
WO (1) WO2001093014A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991162B2 (en) 2007-09-14 2011-08-02 University Of Ottawa Accelerating scalar multiplication on elliptic curve cryptosystems over prime fields

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7599491B2 (en) * 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
FR2791496B1 (fr) * 1999-03-26 2001-10-19 Gemplus Card Int Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique
US9323955B2 (en) * 2000-12-21 2016-04-26 Gemalto Sa Method for protecting a logic or mathematical operator installed in an electronic module with a microprocessor as well as the associated embedded electronic module and the system
JP4596686B2 (ja) * 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
WO2003075506A1 (fr) * 2002-03-07 2003-09-12 Axalto Sa Procede permettant de securiser un ensemble electronique a cryptographie au moyen d'une cle secrete
DE10341096A1 (de) * 2003-09-05 2005-03-31 Giesecke & Devrient Gmbh Übergang zwischen maskierten Repräsentationen eines Wertes bei kryptographischen Berechnungen
US20050135605A1 (en) * 2003-12-17 2005-06-23 Dimitrov Vassil S. Cryptographic exponentiation methods
US7370202B2 (en) * 2004-11-02 2008-05-06 Voltage Security, Inc. Security device for cryptographic communications
US7478902B2 (en) * 2004-11-04 2009-01-20 Hewlett-Packard Development Company, L.P. Inkjet compositions
US7764785B2 (en) 2004-11-08 2010-07-27 King Fahd University Of Petroleum And Minerals Method for communicating securely over an insecure communication channel
GB2434234B (en) * 2005-03-19 2008-01-02 Samsung Electronics Co Ltd Scalar multiplication apparatus and method
KR100699836B1 (ko) * 2005-03-19 2007-03-27 삼성전자주식회사 스칼라 곱에서 dfa 대책을 위한 장치 및 방법
EP1946205B1 (fr) * 2005-10-18 2010-04-14 Telecom Italia S.p.A. Méthode de multiplication scalaire au sein de groupes de courbes elliptiques sur des champs premiers pour systèmes de codage résistant aux attaques par canal latéral
WO2007048430A1 (fr) * 2005-10-28 2007-05-03 Telecom Italia S.P.A. Procede pour la multiplication scalaire dans des groupes de courbes elliptiques sur des champs polynomiaux binaires pour des cryptosystemes resistants a l'attaque par canal lateral
US8656177B2 (en) * 2008-06-23 2014-02-18 Voltage Security, Inc. Identity-based-encryption system
JP5327380B2 (ja) * 2010-03-31 2013-10-30 富士通株式会社 暗号処理装置および暗号処理方法
WO2012090288A1 (fr) 2010-12-27 2012-07-05 富士通株式会社 Dispositif de traitement cryptographique, procédé de traitement cryptographique et programme associé
US8635467B2 (en) 2011-10-27 2014-01-21 Certicom Corp. Integrated circuit with logic circuitry and multiple concealing circuits
US8334705B1 (en) 2011-10-27 2012-12-18 Certicom Corp. Analog circuitry to conceal activity of logic circuitry
EP3220306B1 (fr) * 2016-02-22 2018-11-07 Eshard Procédé de test de la résistance d'un circuit à une analyse de canal latéral
WO2021126379A1 (fr) * 2019-12-17 2021-06-24 Microchip Technology Incorporated Obscurcissement de paramètres cryptographiques utilisés en cryptographie à courbes elliptiques, et systèmes et dispositifs associés

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3794457B2 (ja) * 1998-02-13 2006-07-05 株式会社ルネサステクノロジ データの暗号化復号化方法
DE69917356T2 (de) * 1998-02-13 2005-02-17 Hitachi, Ltd. Sicherheitstechnik an einem Computernetzwerk
FR2791496B1 (fr) * 1999-03-26 2001-10-19 Gemplus Card Int Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique
US6298135B1 (en) * 1999-04-29 2001-10-02 Motorola, Inc. Method of preventing power analysis attacks on microelectronic assemblies

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CORON J -S: "Resistance against differential power analysis for elliptic curve cryptosystems", PROCEEDINGS (LECTURE NOTES IN COMPUTER SCIENCE VOLUME 1717), CRYPTOGRAPHIC HARDWARE AND EMBEDDED SYSTEMS. FIRST INTERNATIONAL WORKSHOP, CHES'99, WORCESTER, MA, USA, 12-13 AUG. 1999, 1999, Berlin, Germany, Springer-Verlag, pages 292 - 302, XP000952243, ISBN: 3-540-66646-X *
GOUBIN L ET AL: "DES and differential power analysis. The "Duplication" method", PROCEEDINGS (LECTURE NOTES IN COMPUTER SCIENCE VOLUME 1717), CRYPTOGRAPHIC HARDWARE AND EMBEDDED SYSTEMS. FIRST INTERNATIONAL WORKSHOP, CHES'99, WORCESTER, MA, USA, 12-13 AUG. 1999, 1999, Berlin, Germany, Springer-Verlag, pages 158 - 172, XP000952192, ISBN: 3-540-66646-X *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991162B2 (en) 2007-09-14 2011-08-02 University Of Ottawa Accelerating scalar multiplication on elliptic curve cryptosystems over prime fields

Also Published As

Publication number Publication date
FR2809893B1 (fr) 2002-11-15
US6914986B2 (en) 2005-07-05
AU2001264029A1 (en) 2001-12-11
US20010048742A1 (en) 2001-12-06
FR2809893A1 (fr) 2001-12-07

Similar Documents

Publication Publication Date Title
EP1166494B1 (fr) Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique
WO2001093014A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un alrogithme de cryptographie a cle publique sur courbe elliptique
EP2946284B1 (fr) Procédé de cryptographie comprenant une opération de multiplication par un scalaire ou une exponentiation
WO2000059157A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique
FR2941798A1 (fr) Appareil pour calculer un resultat d'une multiplication scalaire
EP1224765B1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa
EP3300292A1 (fr) Procédé de chiffrement ou de déchiffrement protégé contre des attaques par canaux cachés
EP2983083B1 (fr) Procede de cryptographie sur courbe elliptique comprenant une detection d'erreur
US7903814B2 (en) Enhancing the security of public key cryptosystem implementations
EP1350357B1 (fr) Procede d'amelioration de la securite de schemas de chiffrement a clef publique
EP1325584A1 (fr) Procede d'encodage de messages longs pour schemas de signature electronique a base de rsa
EP1639451A2 (fr) Procédé de contre-mesure par masquage de l'accumulateur
FR2810821A1 (fr) Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique de koblitz
FR2856538A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme cryptographique du type a cle publique
FR2818846A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie
WO2002028011A1 (fr) Procede de transmission accelere de signature electronique
EP4024753B1 (fr) Procédé et module électronique de calcul d'une quantité cryptographique avec multiplications sans retenue, procédé et dispositif électronique de traitement d'une donnée et programme d'ordinateur associés
FR2818473A1 (fr) Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa
FR2864390A1 (fr) Procede cryptographique d'exponentiation modulaire protege contre les attaques de type dpa.
EP3716044A1 (fr) Protection d'un calcul itératif
FR2797126A1 (fr) Procede d'amelioration de performance de l'operation de multiplication sur corps fini de caracteristique 2
WO2003021864A2 (fr) Procede de reduction de la taille d'une signature rsa ou rabin
WO2002093411A1 (fr) Dispositif destine a realiser des calculs d"exponentiation appliques a des points d"une courbe elliptique

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP