WO2002001343A1 - Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique de koblitz - Google Patents

Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique de koblitz Download PDF

Info

Publication number
WO2002001343A1
WO2002001343A1 PCT/FR2001/001943 FR0101943W WO0201343A1 WO 2002001343 A1 WO2002001343 A1 WO 2002001343A1 FR 0101943 W FR0101943 W FR 0101943W WO 0201343 A1 WO0201343 A1 WO 0201343A1
Authority
WO
WIPO (PCT)
Prior art keywords
integer
point
countermeasure
electronic component
represented
Prior art date
Application number
PCT/FR2001/001943
Other languages
English (en)
Inventor
Jean-Sébastien CORON
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 AU2001269216A priority Critical patent/AU2001269216A1/en
Publication of WO2002001343A1 publication Critical patent/WO2002001343A1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • 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
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory
    • G06K19/07309Means for preventing undesired reading or writing from or onto record carriers
    • G06K19/07363Means for preventing undesired reading or writing from or onto record carriers by preventing analysis of the circuit, e.g. dynamic or static power analysis or current analysis
    • 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/7252Randomisation as countermeasure against side channel attacks of operation order, e.g. starting to treat the exponent at a random place, or in a randomly chosen direction

Definitions

  • the present invention relates to a countermeasure method in an electronic component implementing a public key encryption algorithm of the Koblitz elliptical curve type.
  • a secret encryption key K In the classic model of secret key cryptography, two people wishing to communicate via an insecure channel must first agree on a secret encryption key K. The encryption function and the decryption function -use the same key K.
  • the disadvantage of the secret key encryption system is that said system requires the prior communication of the key K between the two people via a secure channel, before any encrypted message be sent through the unsecured channel. In practice, it is generally difficult to find a perfectly secure communication channel, especially if the distance between the two people is great.
  • the term “secure channel” is understood to mean a channel for which it is impossible to know or modify the information which passes through said channel. Such a secure channel can be achieved 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, 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 key of encryption of person B. Only person B has the private key associated with their public key. Only person B is therefore capable of deciphering the message addressed to him.
  • Another advantage of public key cryptography over secret key cryptography is that public key cryptography allows authentication by the use of electronic signature.
  • This encryption system is based on the difficulty of the problem of the sum of subsets.
  • 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.
  • the use of elliptic curves in cryptographic systems was proposed independently by Victor Miller and
  • This family of curves has the following property: if the point of coordinates (x, y) belongs to the curve, the point (x A 2, y A 2) also belongs to the curve.
  • the advantage of the representation in normal base is that the squaring of an element is very fast.
  • the advantage of the polynomial representation is that the multiplication and inversion operations are faster. It is possible to pass from a representation in polynomial base to a representation in normal base. Efficient conversion methods are described in the article "Storage efficient finite field basis conversion" by B.S. Kaliski Jr. And Y.L.Yin published at the conference "SAC 98".
  • cryptographic algorithms based on the problem of the discrete logarithm These algorithms are easily transposable to elliptical curves. Thus, it is possible to implement algorithms ensuring authentication, confidentiality, integrity control and key exchange.
  • a common point in most cryptographic algorithms based on elliptic curves is that they include as parameters a elliptic curve defined on a finite field and a point P belonging to this elliptic curve.
  • the private key is an integer d chosen randomly.
  • the number of m is the triplet (xl, yl, c).
  • the simplest and most used algorithm is the "double and add” algorithm.
  • the “double and add” algorithm takes as input a point P belonging to a given elliptical curve and an integer d.
  • the following algorithm is called the " ⁇ and substract" algorithm.
  • 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 elliptic 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 implementing 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 "double and add" algorithm described above for N distinct points P (1), ..., P (N).
  • the chip card microprocessor will perform N scalar multiplications d. P (1), ..., d. P (N).
  • the points P (l) to P (N) are grouped according to the value of the last bit of the abscissa of 4.P, where P designates one of the points P (l) to P (N).
  • the first group consists of points P such that the last bit of the abscissa of 4.P is equal to 1.
  • the second group consists of points P such that the last bit of the abscissa of 4.P is equal to 0.
  • the average of the current consumptions corresponding to each of the two groups is calculated, and the difference curve between these two averages is calculated.
  • the scalar multiplication algorithm previously described calculates and stores the value of 4. P.
  • the card microprocessor will effectively calculate 4. P.
  • the last bit of the data manipulated by the microprocessor is always al, and in the second message group the last bit of the manipulated data is always 0.
  • the average of the current consumptions corresponding to each group is therefore different. It therefore appears in the difference curve between the 2 averages a peak of current consumption differential.
  • the bit d (tl) of d is equal to 1, the exponentiation algorithm described above does not calculate point 4. P.
  • the microprocessor therefore never manipulates the data 4.
  • P. II does not therefore appear a consumption differential peak.
  • 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 previous algorithm. It is used 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 DPA-type attack described therefore makes it possible to find the private key d.
  • a similar attack is possible in the case of the use of an elliptical curve called "Koblitz curve".
  • the invention consists in the definition of 3 methods of countermeasures making it possible to guard against attacks by current measurement.
  • the method of the first countermeasure consists in making the execution of the " ⁇ and substract" algorithm described above random. This method makes it possible to execute a scalar multiplication operation. Thus the algorithm is executed according to different calculation steps for each new execution and the attack described above is no longer possible.
  • the modified " ⁇ and substract" algorithm consists of the following 4 steps.
  • the first method of countermeasures includes two variants.
  • the point P is represented in polynomial basis.
  • the point P is represented initially in normal base.
  • the calculation of di ⁇ 1 P is also carried out in normal base, which allows a faster calculation than in polynomial base.
  • the point di ⁇ 1 P is then converted to a polynomial base.
  • the method of the second countermeasure consists in protecting the operation of squaring an element against attacks by current measurement. This operation is used in particular in the application of the Frobenius operator as described above.
  • the method of the second countermeasure consists in replacing the operation of squaring an element x by the following method in 3 steps:
  • the element r being random
  • the element y is also, and the operation of squaring y and r in step 3 intervenes on random elements, which protects it against attacks by current measurement.
  • the method of the second countermeasure includes two variants. In the first variant, the elements x, y and r are represented in polynomial basis. In the second variant, the elements x, y and r are represented in normal base.
  • the method of the third countermeasure consists in masking the algorithm " ⁇ and substract" described above. The " ⁇ and substract" algorithm allows to calculate the point d.P given the point P and the integer d. It is assumed subsequently that the integer d is a fixed integer known in advance.
  • the method of the third countermeasure consists in pre-storing in memory couples of points of the form: (Si, Ri) with Si ⁇ d.Ri We note u the number of couples stored.
  • the method of the third countermeasure consists in replacing the algorithm " ⁇ and substract" described previously by the following method in 6 steps:
  • the method of the third countermeasure includes a first variant in which the points Ri and Si are represented in polynomial basis.
  • the points Ri and S are represented in normal base.
  • the calculation of ⁇ 1 Ri in step 3) and the calculation of ⁇ 3 Si are performed in normal basis.
  • the points ⁇ 3 Ri and ⁇ D Si are then converted into a polynomial base.
  • the three methods of countermeasures previously described make it possible to protect the execution of a scalar multiplication algorithm on an abnormal binary elliptic curve (known as Koblitz) against attacks by current measurement. Two or three of these countermeasures can be used simultaneously. These three methods can be used during the execution of any cryptographic protocol based on elliptical curves, in particular a key exchange protocol, an electronic signature protocol or an encryption protocol. These three methods are particularly intended for use in an electronic environment of the smart card type.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

Les algorithmes cryptographiques à base de courbes elliptiques binaires anormales sont des algorithmes à clef publique présentant sur RSA l'avantage de temps de calcul plus faible et de taille de clefs plus petites. Il est apparu que leur application dans le cadre d'un environnement de type carte à puce était vulnérable à des attaques de type DPA (Differential Power Analysis). La présente invention consiste en la description de procédés de contre-mesures permettant de se prémunir contre ce type d'attaque DPA. Cette contre-mesure ne diminue pas les performances et est facilement utilisable dans un composant de type carte à puce.

Description

PROCEDES DE CONTRE-MESURE DANS UN COMPOSANT
ELECTRONIQUE METTANT EN ŒUVRE UN ALGORITHME DE
CRYPTOGRAPHIE A CLE PUBLIQUE DE TYPE COURBE
ELLIPTIQUE DE KOBLITZ
La présente invention concerne un procédé de contre-mesure dans un composant électronique mettant en œuvre un algorithme de chiffrement à clé publique de type courbe elliptique de Koblitz. 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 chiffrement à 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, 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' authentification par l'utilisation de signature électronique.
La première réalisation de schéma de chiffrement à clef publique fut mis 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.
- ElGamal :
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 existant 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
Neal Koblitz en 1985. Les applications réelles des courbes elliptiques ont été envisagées au début des années 1990. L'avantage de crypto systèmes à base de courbe elliptique est qu'ils fournissent une sécurité équivalente aux autres crypto systè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(2An) (n étant un entier) est l'ensemble des points (x,y) avec x l'abscisse et y l'ordonnée appartenant à GF(2 n) solution de l'équation : y 2+x*y=xΛ3+a*x 2+b
On définit les opérations d'addition de point et de doublement de point . L'addition de point est l'opération qui étant donné deux points P et Q calcule la somme R=P+Q, R étant 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. Le doublement de point est l'opération qui, étant donné un point P, calcule le point R=2*P, R étant un point de la courbe dont les coordonnées s'expriment à l'aide des coordonnées du point P suivant des formules dont l'expression est donnée dans l'ouvrage w Elliptic curve public key cryptosystem " par Alfred J. Menezes.
Les opérations d'addition de point et de doublement de point permettent 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 d est le point Q tel que Q=d*P=P+P+...+P d fois.
Il existe une famille de courbes elliptiques dites courbes binaires anormales ou courbes de Koblitz. Cette famille de courbes est définie par l'équation : y 2+x.y=xA3+a.xA2+l où a est un entier égal à 0 ou 1.
Cette famille de courbe présente la propriété suivante : si le point de coordonnées (x,y) appartient à la courbe, le point (xA2,yA2) appartient aussi à la courbe. On définit en conséquence l'opérateur Frobenius noté τ qui à tout point de coordonnées (x,y) associe le point de coordonnées (xA2,y 2).
Selon une méthode décrite dans l'article " An improved Algorithm for Arithmetic on a Family of Elliptic Curves " de J.A. Solinas publié à la conférence " Crypto' 97 ", il est possible de représenter tout entier d sous la forme d'une somme de puissances de τ : d=∑ di τ i où l'entier di vaut -1, 0, ou 1. II existe deux représentations possibles d'un élément de l'ensemble GF(2An). La première est appelée représentation polynomiale et consiste à représenter un élément x sous la forme d'un polynôme en t : x=xn-ιtn"1+...+x0 La deuxième représentation est la représentation en base normale, qui consiste à représenter un élément x sous la forme : x=xn_ι .θA(2n"1)+...+ x0
L'avantage de la représentation en base normale est que la mise au carré d'un élément est très rapide. L'avantage de la représentation en base polynomiale est que les opérations de multiplication et d'inversion sont plus rapides. Il est possible de passer d'une représentation en base polynomiale à une représentation en base normale . Des méthodes de conversion efficaces sont décrites dans l'article " Storage efficient finite field basis conversion " par B.S. Kaliski Jr. And Y.L.Yin publié à la conférence " SAC 98 ".
La sécurité des algorithmes de cryptographie sur courbes elliptiques est basée sur la difficulté du problème 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. II 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 1' 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ètres 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 le paragraphe ci dessous, 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-soustraction " - 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 add ". L'algorithme " 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-1) , ..., 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 w double and add " comporte les 3 étapes suivantes :
1) Initialiser le point Q avec la valeur P 2) Pour i allant de t-1 à 0 exécuter : 2a) Remplacer Q par 2Q 2b) Si d(i)=l remplacer Q par Q+P 3) Retourner Q.
Dans le cas de l'utilisation d'une courbe elliptique binaire anormale (dite de Koblitz) , il est possible de remplacer l'algorithme précédent par l'algorithme suivant plus efficace comportant les 3 étapes suivantes. L'entier d est représenté selon : d=∑ di τ i où l'entier di vaut -1, 0, ou 1 et 0<i<t où t est un paramètre entier. L'algorithme suivant est appelé algorithme " τ and substract " .
1) Initialiser le point Q avec la valeur dt-ιP
2) Pour i allant de t-2 à 0 exécuter : 2a) Remplacer Q par τ.Q. 2b) Si di=l remplacer Q par Q+P. 2c) Si di=-l remplacer Q par Q-P.
3) Retourner Q. L'avantage de l'algorithme décrit précédemment sur l'algorithme " Double and Add " décrit précédemment est que l'opération de doublement de Q de l'étape 2a) est remplacée par l'opération du Frobenius plus rapide. II 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 1 ' 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 l'algorithme " double and add " décrit précédemment pour N points distincts P (1) ,..., 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 a l, 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 a 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. II 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édent. 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 similaire est possible dans le cas de l'utilisation de courbe elliptique dite " courbe de Koblitz " . L'invention consiste en la définition de 3 procédés de contre-mesures permettant de se prémunir contre les attaques par mesure de courant .
Le procédé de la première contre-mesure consiste à rendre aléatoire l'exécution de l'algorithme " τ and substract " décrit précédemment. Ce procédé permet d'exécuter une opération de multiplication scalaire. Ainsi l'algorithme s'exécute suivant des étapes de calculs différentes pour chaque nouvelle exécution et l'attaque décrite précédemment n'est plus possible. L'algorithme " τ and substract " modifié consiste en les 4 étapes suivantes. L'entier d est représenté selon : d=∑ d; τΛi où l'entier di vaut -1, 0, ou 1 et 0<i<t où t est un paramètre entier. Soit u le nombre d'entiers i tels que di soit différent de 0. 1) Tirer aléatoirement un entier i compris entre 0 et t-1, tel que di soit différent de 0. 2) Initialiser le point Q avec la valeur di τ1 P
1) Répéter u-1 fois :
3a) Tirer aléatoirement un entier i compris entre 0 et t-1, tel que di soit différent de 0, et qui n'ait pas été tiré auparavant. 3b) Remplacer Q par Q+di τ1 P
2 ) Retourner Q .
Le premier procédé de la contre-mesure comprend deux variantes. Dans la première variante, le point P est représenté en base polynomiale. Dans la deuxième variante, le point P est représenté initialement en base normale. Le calcul de di τ1 P s'effectue également en base normale, ce qui permet un calcul plus rapide qu'en base polynomiale. Le point di τ1 P est ensuite converti en base polynomiale.
Le procédé de la deuxième contre-mesure consiste à protéger l'opération de mise au carré d'un élément contre les attaques par mesure de courant. Cette opération est utilisée en particulier dans l'application de l'opérateur de Frobenius tel que décrit précédemment. L'opération de mise au carré d'un élément dans un corps de caractéristique 2 est une opération linéaire : (x+y) 2=xA2+yA2. Le procédé de la deuxième contre- mesure consiste à remplacer l'opération de mise au carré d'un élément x par le procédé suivant en 3 étapes :
1) Tirer aléatoirement un élément r de GF(2 n) .
2) Calculer y=x+r 3) Calculer yA2 et r 2 4) Retourner yA2+r 2
Ainsi, l'élément r étant aléatoire, l'élément y l'est aussi, et l'opération de mise au carré de y et de r de l'étape 3 intervient sur des éléments aléatoires, ce qui la protège contre des attaques par mesure de courant .
Le procédé de la deuxième contre-mesure comprend deux variantes. Dans la première variante, les éléments x,y et r sont représentés en base polynomiale. Dans la deuxième variante, les éléments x,y et r sont représentés en base normale. Le procédé de la troisième contremesure consiste à effectuer un masquage de 1 ' algorithme " τ and substract " décrit précédemment. L'algorithme " τ and substract " permet de calculer le point d.P étant donné le point P et l'entier d. On suppose par la suite que l'entier d est un entier fixe connu à l'avance. Le procédé de la troisième contre-mesure consiste à pré stocker en mémoire des couples de points de la forme : (Si , Ri) avec Si ≈d.Ri On note u le nombre de couples stockés .
Le procédé de la troisième contre-mesure consiste à remplacer l'algorithme " τ and substract " décrit précédemment par le procédé suivant en 6 étapes :
1) Tirer aléatoirement un entier i compris entre 1 et u.
2) Tirer aléatoirement un entier j compris entre 0 et n-1. 3) Calculer P'=P+τj Ri
4) Calculer Q'=d.P' en utilisant l'algorithme " τ and substract " décrit précédemment .
5) Calculer Q=Q' -τj Si 6) Retourner Q.
Le procédé de la troisième contre-mesure comprend une première variante dans laquelle les points Ri et Si sont représentés en base polynomiale. Dans une deuxième variante, les points Ri et S sont représentés en base normale. Le calcul de τ1 Ri à l'étape 3) et le calcul de τ3 Si s'effectuent en base normale. Les points τ3 Ri et τD Si sont ensuite convertis en base polynomiale.
Les trois procédés de contre-mesures précédemment décrits permettent de protéger l'exécution d'un algorithme de multiplication scalaire sur courbe elliptique binaire anormale (dite de Koblitz) contre les attaques par mesure de courant. Il est possible d'utiliser simultanément deux ou trois de ces contre-mesures. Ces trois procédés peuvent être utilisés lors de l'exécution de tout protocole cryptographique basé sur les courbes elliptiques, en particulier un protocole d'échange de clef, un protocole de signature électronique ou un protocole de chiffrement. Ces trois procédés sont particulièrement destinés à être utilisés dans un environnement électronique de type carte à puce .

Claims

REVENDICATIONS
1) Procédé de contre-mesure dans un composant électronique exécutant une opération de multiplication scalaire d'un point P appartenant à une courbe elliptique binaire anormale, par un entier d représenté sous la forme d=∑ di τAi l'entier di valant -1, 0, ou 1, l'entier i étant tel que 0<i<t, l'entier t étant un paramètre, l'entier u étant par définition le nombre d'entiers i tels que di soit différent de 0, le caractère τ désignant l'opérateur de Frobenius s' appliquant ladite courbe elliptique, ledit procédé étant caractérisé en ce qu'il comprend les 4 étapes suivantes :
1) Tirer aléatoirement un entier i compris entre 0 et t-1, tel que di soit différent de 0.
2) Initialiser le point Q avec la valeur di τ1 P
3) Répéter u-1 fois : 3a) Tirer aléatoirement un entier i compris entre 0 et t-1, tel que di soit différent de 0, et qui n'ait pas été tiré auparavant
3b) Remplacer Q par Q+di τ1 P
4) Retourner Q. 2) Procédé de contre-mesure dans un composant électronique exécutant une opération de multiplication scalaire d'un point P appartenant à une courbe elliptique binaire anormale, par un entier d selon la revendication 1, caractérisé en ce que le point P est représenté en base polynomiale . 3) Procédé de contre-mesure dans un composant électronique exécutant une opération de multiplication scalaire d'un point P appartenant à une courbe elliptique binaire anormale, par un entier d selon la revendication 1, caractérisé en ce que le point P est représenté en base normale, le calcul de di τ1 P s 'effectuant également en base normale, le point di τ1 P étant ensuite converti en base polynomiale. 4) Procédé de contre-mesure dans un composant électronique exécutant une opération de mise au carré d'un élément dans un corps de caractéristique 2 caractérisé en ce qu'il consiste à remplacer l'opération classique de mise au carré d'un élément x par le procédé comprenant les 4 étapes suivantes :
1) Tirer aléatoirement un élément r de GF(2 n) .
2) Calculer y=x+r
1) Calculer y 2 et r 2
2) Retourner y 2+rA2 5) Procédé de contre-mesure selon la revendication 4, caractérisé en ce que les éléments x,y et r sont représentés en base polynomiale.
6) Procédé de contre-mesure selon la revendication 4, caractérisé en ce que les éléments x,y et r sont représentés en base normale.
7) Procédé de contre-mesure dans un composant électronique exécutant une opération de multiplication scalaire modifiée d'un point P appartenant à une courbe elliptique binaire anormale, par un entier d, ledit procédé utilisant un ensemble de u couples de points de la forme
(Si ,Ri) avec Si =d.Rι stockés en mémoire, caractérisé en ce qu'il comprend les 6 étapes suivantes :
1) Tirer aléatoirement un entier i compris entre 1 et u.
1) Tirer aléatoirement un entier j compris entre 0 et n-1. 2) Calculer P'=P+τj Ri
3) Calculer Q'=d.P' en utilisant un algorithme de multiplication scalaire. Calculer Q=Q' -τj Si
4) Retourner Q.
8) Procédé de contre-mesure selon la revendication 7, caractérisé en ce que les points Ri et Si sont représentés en base polynomiale. 9) Procédé de contre-mesure selon la revendication 7, caractérisé en ce que les points Ri et Si sont représentés en base normale, le calcul de τ R et de τ1 Si s 'effectuant en coordonnées normales, les point x3 R et x1 S étant ensuite convertis en base polynomiale
10) Protocole cryptographique basé sur l'utilisation d'une courbe elliptique binaire anormale utilisant le procédé suivant l'une quelconque des revendications précédentes.
11) Composant électronique utilisant le procédé selon l'une quelconque des revendications précédentes caractérisé en ce qu'il peut être une carte à puce.
PCT/FR2001/001943 2000-06-26 2001-06-20 Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique de koblitz WO2002001343A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001269216A AU2001269216A1 (en) 2000-06-26 2001-06-20 Countermeasure methods in an electronic component using a koblitz elliptic curvepublic key cryptographic algorithm

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0008279A FR2810821B1 (fr) 2000-06-26 2000-06-26 Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique de koblitz
FR00/08279 2000-06-26

Publications (1)

Publication Number Publication Date
WO2002001343A1 true WO2002001343A1 (fr) 2002-01-03

Family

ID=8851774

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2001/001943 WO2002001343A1 (fr) 2000-06-26 2001-06-20 Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique de koblitz

Country Status (3)

Country Link
AU (1) AU2001269216A1 (fr)
FR (1) FR2810821B1 (fr)
WO (1) WO2002001343A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100723863B1 (ko) * 2005-11-12 2007-05-31 한국전자통신연구원 랜덤화한 프로베니우스 분해방법을 이용한 차분 공격 방지방법 및 그 장치
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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2840083A1 (fr) 2002-05-24 2003-11-28 St Microelectronics Sa Test d'un algorithme execute par un circuit integre
US7555122B2 (en) 2002-12-04 2009-06-30 Wired Communications LLC Method for elliptic curve point multiplication

Non-Patent Citations (4)

* 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 *
MESSERGES T S ET AL: "Power analysis attacks of modular exponentiation in smartcards", 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 144 - 157, XP000952221, ISBN: 3-540-66646-X *
SOLINAS J A: "An improved algorithm for arithmetic on a family of elliptic curves", PROCEEDINGS, ADVANCES IN CRYPTOLOGY - CRYPTO'97. 17TH ANNUAL INTERNATIONAL CRYPTOLOGY CONFERENCE, SANTA BARBARA, CA, USA, 17-21 AUG. 1997, 1997, 1997, Berlin, Germany, Springer-Verlag, pages 357 - 371, XP002136758, ISBN: 3-540-63384-7 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100723863B1 (ko) * 2005-11-12 2007-05-31 한국전자통신연구원 랜덤화한 프로베니우스 분해방법을 이용한 차분 공격 방지방법 및 그 장치
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
AU2001269216A1 (en) 2002-01-08
FR2810821B1 (fr) 2002-12-27
FR2810821A1 (fr) 2001-12-28

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
EP2946284B1 (fr) Procédé de cryptographie comprenant une opération de multiplication par un scalaire ou une exponentiation
FR2809893A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique sur courbe elliptique
FR2791496A1 (fr) Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique
FR2941798A1 (fr) Appareil pour calculer un resultat d&#39;une multiplication scalaire
EP2546737A1 (fr) Protection d&#39;un calcul d&#39;exponentiation modulaire par addition d&#39;une quantité aléatoire
EP1381936A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme cryptographique du type a cle publique sur une courbe elliptique
EP1224765B1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa
FR2888690A1 (fr) Procede cryptographique pour la mise en oeuvre securisee d&#39;une exponentiation et composant associe
EP1350357B1 (fr) Procede d&#39;amelioration de la securite de schemas de chiffrement a clef publique
EP2983083A1 (fr) Procede de cryptographie sur courbe elliptique comprenant une detection d&#39;erreur
EP1804160B1 (fr) Protection d&#39;un calcul cryptographique effectué par un circuit intégré
WO2002001343A1 (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
EP1639451A2 (fr) Procédé de contre-mesure par masquage de l&#39;accumulateur
EP1325584A1 (fr) Procede d&#39;encodage de messages longs pour schemas de signature electronique a base de rsa
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
EP3484093A1 (fr) Dispositif et procédé de calcul
US11973866B2 (en) Cryptographic processing method, related electronic device and computer program
EP1222528B1 (fr) Procede d&#39;amelioration de performance de l&#39;operation de multiplication sur un corps fini de caracteristique 2
WO2002050658A1 (fr) Procedes de contre-mesure dans un composant electronique mettant en ouvre un algorithme de cryptographie a cle publique de type rsa
EP3716044A1 (fr) Protection d&#39;un calcul itératif
FR3118510A1 (fr) Procede et module electronique de calcul d&#39;une quantite cryptographique avec multiplications sans retenue, procede et dispositif electronique de traitement d&#39;une donnee et programme d&#39;ordinateur associes
FR2864390A1 (fr) Procede cryptographique d&#39;exponentiation modulaire protege contre les attaques de type dpa.
WO2003021864A2 (fr) Procede de reduction de la taille d&#39;une signature rsa ou rabin

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 CR CU CZ DE DK DM DZ 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)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP