WO2004111831A2 - Procede de contre-mesure par masquage de l'accumulateur - Google Patents

Procede de contre-mesure par masquage de l'accumulateur Download PDF

Info

Publication number
WO2004111831A2
WO2004111831A2 PCT/EP2004/051144 EP2004051144W WO2004111831A2 WO 2004111831 A2 WO2004111831 A2 WO 2004111831A2 EP 2004051144 W EP2004051144 W EP 2004051144W WO 2004111831 A2 WO2004111831 A2 WO 2004111831A2
Authority
WO
WIPO (PCT)
Prior art keywords
replace
accumulator
representation
integer
countermeasure method
Prior art date
Application number
PCT/EP2004/051144
Other languages
English (en)
Other versions
WO2004111831A3 (fr
Inventor
Marc Joye
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 US10/561,234 priority Critical patent/US20060282491A1/en
Priority to EP04766054A priority patent/EP1639451A2/fr
Publication of WO2004111831A2 publication Critical patent/WO2004111831A2/fr
Publication of WO2004111831A3 publication Critical patent/WO2004111831A3/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
    • 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/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7228Random curve mapping, e.g. mapping to an isomorphous or projective curve
    • 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/7247Modulo masking, e.g. A**e mod (n*r)
    • 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/7276Additional details of aspects covered by group G06F7/723
    • G06F2207/7285Additional details of aspects covered by group G06F7/723 using the window method, i.e. left-to-right k-ary exponentiation

Definitions

  • the present invention relates to a countermeasure method in an electronic component implementing a public key cryptographic algorithm.
  • the disadvantage 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 encrypted message be sent through the unsecured channel.
  • 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 produced by a cable connecting two terminals, owned by the two said people.
  • Public key cryptography solves the problem of distributing keys across an insecure channel. Public key cryptography is based on the difficulty of solving certain (supposedly) calculable infeasible problems.
  • the problem considered by Diffie and Hellman is the resolution of the discrete logarithm in the multiplicative group of a finite field. It is recalled that in a finite body, the number of elements of the body is always expressed in the form q A n, where q is a prime number called the characteristic of the body and n is an integer.
  • a finite field having q ⁇ n elements is noted GF (q A n).
  • the finite field is said to be prime.
  • a body has two groups: a multiplicative group and an additive group.
  • the multiplicative group the neutral element is noted 1 and the group law is noted multiplically by the symbol. and is called multiplication.
  • K K a A (ab).
  • Any elliptical curve on a body can be expressed in this form.
  • the set of points (x, y) and the point at infinity form an abelian group, in which the point at infinity is the neutral element and in which the group operation is the addition of points, denoted + and given by the well-known rule of the secant and the tangent (see for example “Elliptic Curve Public Key Cryptosystems” by Alfred Menezes, Kluwer, 1993).
  • the pair (x, y), where the abscissa x and the ordinate y are elements of the body GF (q ⁇ n) forms the affine coordinates of a point P of the elliptic curve.
  • the Jacobian representation of a point is not unique because the triplet (X, Y, Z) and the triplet ( ⁇ ⁇ 2.X, ⁇ ⁇ 3.Y , ⁇ .Z) represent the same point whatever the non-zero element ⁇ belonging to the finite field on which the elliptical curve is defined.
  • the homogeneous representation of a point is not unique because the triplet (X, Y, Z) and the triplet ( ⁇ .X, ⁇ .Y, ⁇ .Z) represent the same point regardless of the element not -nul ⁇ belonging to the finite field on which the elliptical curve is defined.
  • the exponentiation is also called scalar multiplication.
  • a common point with most cryptographic algorithms based on the problem of the discrete logarithm in a group G is that they include as an parameter an element g belonging to this group.
  • the private key is an integer d chosen randomly.
  • the number corresponding to m is the pair (h, c).
  • the left-right binary exponentiation algorithm takes as input an element g from a group G and an exponent d.
  • the left-right binary exponentiation algorithm has the following 3 steps:
  • the left-right k-ary exponentiation algorithm can be adapted to take as input a signed representation of the exponent d.
  • the exponent d is given by the representation (d (t), d (t-1), ..., d (0)) in which each digit d (i) is an integer between - (2 A kl) and 2 A kl for an integer k ⁇ l, with d (t) the most significant digit and d (0) the least significant digit.
  • This adaptation is particularly interesting when the inverse of the elements g i ⁇ denoted (gi) A (-l), is easy or inexpensive to calculate. This is for example the case in group G of the points of an elliptical curve. In the case where the inverse of the elements gi is not easy or too costly to calculate, their value is precalculated.
  • the multiplication of the accumulator A by g in the group G can be substantially faster than the multiplication of two elements arbitrary of G.
  • the group G is the multiplicative group of the prime field GF (q) and that g (respectively one of its powers g x ) is represented as an integer in single precision
  • the addition of the accumulator A by P can be substantially faster than the addition of two arbitrary points on an elliptical curve.
  • the DPA type attack therefore makes it possible to obtain additional information on the intermediate data manipulated by the microprocessor of the electronic component during the execution of a cryptographic algorithm . This additional information can in certain cases make it possible to reveal the private parameters of the cryptographic algorithm, making the cryptographic system vulnerable.
  • a countermeasure method consists in masking the point P of the group of points of an elliptic curve defined on the body GF (q A n) using projective coordinates of this point, defined in a random manner .
  • non-zero random number
  • P ( ⁇ A 2.x, ⁇ ⁇ 3.y, ⁇ ) in Jacobian representation
  • P ( ⁇ .x, ⁇ .y, ⁇ ) in homogeneous representation.
  • Another countermeasure method known to those skilled in the art for masking the element g of the multiplicative group G of a finite field GF (q ⁇ n) consists in representing this element in an extension of GF (q A n) , randomly.
  • R GF (q) [X] / (p. K) obtained by quoting the polynomial ring GF (q) [X] by the product of the polynomials p and k with k given.
  • We then draw a random polynomial ⁇ (X) in the ring GF [X] / (k) and we represent the element g by g * g + ⁇ .p.
  • An object of the present invention is a countermeasure method, in particular with respect to attacks of the DPA type.
  • Another object of the invention is a countermeasure method which is easy to implement.
  • the idea underlying the invention is to randomize the accumulator A in the left-right exponentiation algorithm used. This masking process can be done at the start of the algorithm or even deterministically or probabilistically during the execution of the algorithm.
  • This process applies in the same way if the group G is scored additively.
  • the accumulator of said exponentiation algorithm is randomly masked.
  • step 3c the multiplication is done with the integer g represented in simple precision.
  • the masking of the accumulator A in step 3a is done only at the start of the exponentiation.
  • the following countermeasure method is thus obtained:
  • step 3b the multiplication is done with the integer g represented in simple precision.
  • Another interesting application of the invention relates to the exponentation in group G of the points of an elliptic curve defined on a finite field GF (q A n).
  • group G additively noted, the inversion of a point P, noted -P, is an inexpensive operation so that it is interesting to replace the binary exponentiation algorithm left-right by its version signed as explained in an article by Institut Morain and Jorge Olivos (Theoretical Informatics and Applications, volume 24, pages 531-543, 1990).
  • the accumulator of said exponentiation algorithm is a triplet of values in GF (q A n) and is masked randomly.
  • the masking of the accumulator A in step 2a is done only at the start of the exponentiation.
  • This gives the following against-measuring method: 1) Draw a nonzero random element ⁇ in GF (q ⁇ n) and initialize the accumulator A (A x , Ay, A z ) with the triplet ( ⁇ ⁇ 2.x, ⁇ ⁇ 3.y, ⁇ )
  • the countermeasure method according to the invention applies to any exponentiation algorithm of the left-right type in a group G, denoted in a multiplicative or additive manner.

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Storage Device Security (AREA)

Abstract

La présente invention concerne un procédé de contremesure dans un composant électronique mettant en oeuvre un algorithme cryptographique à clé publique. Cette invention est remarquable en ce le procédé comprend un calcul d'exponentiation, avec un algorithme d'exponentiation de type gauche-droite, de type y=g^d où g et y sont des éléments du groupe déterminé G noté de façon multiplicative et d est un nombre prédéterminé, ledit procédé étant caractérisé en ce qu'il comprend une étape de tirage aléatoire, au début ou durant l'exécution dudit algorithme d'exponentiation de façon déterministe ou probabiliste, pour masquer l'accumulateur A.

Description

PROCEDE DE CONTRE-MESURE PAR MASQUAGE DE L'ACCUMULATEUR
DANS UN COMPOSANT ELECTRONIQUE METTANT EN OEUVRE UN
ALGORITHME DE CRYPTOGRAPHIE A CLE PUBLIQUE
La présente invention concerne un procédé de contre-mesure dans un composant électronique mettant en œuvre un algorithme cryptographique à clé publique.
Dans le modèle classique de la cryptographie à clé 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 clé 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 à clé publique fut inventé par Whitfield Diffie et Martin Hellman en 1976 (IEEE Transactions on Information Theory, volume 22, numéro 6, pages 644-654, 1976) . La cryptographie à clé publique permet de résoudre le problème de la distribution des clés à travers un canal non sécurisé. La cryptographie à clé publique est basée sur la difficulté de résoudre certains problèmes (supposés) calculatoirement infaisables. Le problème considéré par Diffie et Hellman est la résolution du logarithme discret dans le groupe multiplicatif d'un corps fini . On rappelle que dans un corps fini, le nombre d'éléments du corps s'exprime toujours sous la forme qAn, où q est un nombre premier appelé la caractéristique du corps et n est un nombre entier. Un corps fini possédant qΛn éléments est noté GF(qAn) . Dans le cas où le nombre entier n est égal à 1, le corps fini est dit premier. Un corps possède deux groupes : un groupe multiplicatif et un groupe additif. Dans le groupe multiplicatif, l'élément neutre est noté 1 et la loi de groupe est notée multiplicativement par le symbole . et est appelée multiplication. Cette loi définit l'opération d'exponentiation dans le groupe multiplicatif G: étant donné un élément g appartenant à G et un entier d, le résultat de l'exponentiation de g par d est l'élément y tel que y=gd=g.g.g g (d fois) dans le groupe G.
Le problème du logarithme discret dans le groupe multiplicatif G d'un corps fini consiste à trouver, s'il existe, un entier d tel y=gAd, étant donné deux éléments y et g appartenant à G.
Ainsi, il est possible pour deux personnes de construire une clé commune K. Une personne A choisit un nombre aléatoire a, calcule la demi-clé Ka=gAa dans G et envoie Ka à une personne B. De la même façon, B choisit un nombre aléatoire b, calcule la demi-clé Kb=gAb dans G et envoie Kb à A. Ensuite, A calcule K=Kb Aa et B calcule K=Ka Ab. De façon remarquable, seules les personnes A et B sont capables de construire la clé commune K=gA (ab) .
En plus de l'échange de clés, la cryptographie à clé publique permet le chiffrement des données, la signature numérique, 1 ' authentif ication ou l'identification. De nombreux systèmes cryptographiques basés sur le problème du logarithme discret sont présentés dans « Handbook of Applied Cryptography » par Alfred Menezes, Paul van Oorschot et Scott Vanstone, CRC Press, 1997. On note à titre d'exemple le chiffrement d'El Gamal ou la signature numérique DSA.
D'autres groupes ont été envisagés pour implémenter des analogues aux systèmes cryptographiques construits dans le groupe multiplicatif d'un corps fini. En 1985, Victor Miller et Neal Koblitz ont indépendamment proposé l'utilisation de courbes elliptiques dans des systèmes cryptographiques. L'avantage de systèmes cryptographiques à base des courbe elliptiques est qu'ils fournissent une sécurité équivalente aux autres systèmes cryptographiques mais avec des tailles de clé 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.
Pour mémoire, une courbe elliptique sur un corps fini GF(qAn) est l'ensemble des points (x,y) appartenant à GF(qΛn) vérifiant l'équation : yA2 + aixy + a3y = xA3 + a2XΛ2 + a4X + &β , avec a^ dans GF(qΛn) et du point à l'infini O. Toute courbe elliptique sur un corps peut s'exprimer sous cette forme.
L'ensemble des points (x,y) et le point à l'infini forment un groupe abélien, dans lequel le point à l'infini est l'élément neutre et dans lequel l'opération de groupe est l'addition de points, notée + et donnée par la règle bien connue de la sécante et de la tangente (voir par exemple « Elliptic Curve Public Key Cryptosystems » par Alfred Menezes, Kluwer, 1993) . Dans ce groupe, la paire (x,y), où l'abscisse x et l'ordonnée y sont des éléments du corps GF(qΛn) , forme les coordonnées affines d'un point P de la courbe elliptique. II existe 2 procédés pour représenter un point d'une courbe elliptique :
Premièrement, la représentation en coordonnées affines ; dans ce procédé, un point P de la courbe elliptique est représenté par ses coordonnées (x,y) ;
Deuxièment, la représentation en coordonnées proj ectives .
L'avantage de la représentation en coordonnées projectives est qu'elle permet d'éviter les divisions dans le corps fini, lesdites divisions étant les opérations les plus coûteuses en temps de calcul.
La représentation en coordonnés projectives la plus couramment utilisée, dite jacobienne, est celle consistant à représenter un point P de coordonnées affines (x, y) sur la courbe elliptique par les coordonnées (X, Y, Z), telles que x=X/ZA2 et y=Y/ZA3. La représentation jacobienne d'un point n'est pas unique parce que le triplet (X, Y, Z) et le triplet (λΛ2.X, λΛ3.Y, λ.Z) représentent le même point quel que soit l'élément non-nul λ appartenant au corps fini sur lequel est défini la courbe elliptique.
Une autre représentation en coordonnées projectives, dite homogène, consiste à représenter un point P de coordonnées affines (x,y) sur la courbe elliptique par les coordonnées (X, Y, Z), telles que x=X/Z et y=Y/Z. La représentation homogène d'un point n'est pas unique parce que le triplet (X, Y, Z) et le triplet (λ.X, λ.Y, λ.Z) représentent le même point quel que soit l'élément non-nul λ appartenant au corps fini sur lequel est défini la courbe elliptique. L'opération d'addition de points permet de définir une opération d'exponentiation sur courbe elliptique : étant donné un point P appartenant à une courbe elliptique et un entier d, le résultat de l'exponentiation de P par d est le point Q tel que Q=d*P=P+P+...+P (d fois) . Dans le cas des courbes elliptiques, afin d'insister sur la notation additive, l'exponentiation est encore appelée multiplication scalaire.
La sécurité des algorithmes de cryptographie sur courbes elliptiques est basée sur la difficulté du problème du logarithme discret dans le groupe G formé par les points d'une courbe elliptique, ledit problème consistant à partir de deux points Q et P appartenant à G, de trouver, s'il existe, un entier d tel que Q=d*P.
Il existe de nombreux algorithmes cryptographiques basés sur le problème du logarithme discret. Ainsi, il est possible de mettre en œuvre 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 le problème du logarithme discret dans un groupe G est qu'ils comprennent comme paramètre un élément g appartenant à ce groupe. La clé privée est un entier d choisi aléatoirement. La clé publique est un élément y tel que y=gAd. Ces algorithmes cryptographiques font généralement intervenir une exponentiation dans le calcul d'un élément z=hAd où d est la clé secrète et h est un élément du groupe G.
Dans le paragraphe ci-dessous, on décrit un algorithme de chiffrement basé sur le problème du logarithme discret dans un groupe G, noté multiplicativement . Ce schéma est analogue au schéma de chiffrement d'El Gamal . Soient un groupe G et un élément g dans G. La clé publique de chiffrement est y=gΛd et la clé privée de déchiffrement est d. Un message m est chiffré de la manière suivante.
Le chiffreur, ou personne désirant chiffrer un message, choisit un entier k aléatoirement et calcule les éléments h=gΛk et z=yAk dans le groupe G, et C=R ( z ) Θ m où R est une fonction appliquant les éléments de G sur l'ensemble des messages et Θ désigne l'opérateur du OU exclusif. Le chiffré correspondant à m est la paire (h,c) .
Le déchiffreur, ou personne désirant déchiffrer un message, qui possède la clé secrète d déchiffre m en calculant : z' =hΛd=gΛ (k.d) =yΛk et m=R(z')@ c.
Pour réaliser les exponentiations nécessaires dans les procédés de calcul décrits précédemment, plusieurs algorithmes existent : algorithme d'exponentiation binaire gauche-droite; algorithme d'exponentiation k-aire gauche-droite; algorithme d'exponentiation modifié k-aire gauche- droite ; - algorithme d'exponentiation avec fenêtres glissantes gauche-droite ; algorithme d'exponentiation en représentation signée de l'exposant.
Ces algorithmes sont détaillés dans le chapitre 14 de « Handbook of Applied Cryptography » par A. J. Menezes, P.C. van Oorschot et S.A. Vanstone, CRC Press, 1997. Cette liste n'est pas exhaustive. L'algorithme le plus simple et le plus utilisé est l'algorithme d'exponentiation binaire gauche-droite.
L'algorithme d'exponentiation binaire gauche-droite prend en entrée un élément g d'un groupe G et un exposant d.
L'exposant d est noté d= (d (t) , d (t-1 ),..., d ( 0 )), où (d(t),d(t-
1 ) , ... , d ( 0 ) ) est la représentation binaire de d, avec d(t) le bit le plus significatif et d(0) le bit le moins significatif. L'algorithme retourne en sortie l'élément y=gAd dans le groupe G.
L'algorithme d'exponentiation binaire gauche-droite comporte les 3 étapes suivantes :
1) Initialiser le registre A avec l'élément neutre de G 2) Pour i allant de t à 0 exécuter : 2a) Remplacer A par AA2 2b) Si d(i)=l remplacer A par A. g 3) Retourner A.
L'algorithme d'exponentiation k-aire gauche-droite prend en entrée un élément g d'un groupe G et un exposant d noté d= (d(t) ,d(t-l) , ..., d(0)), où (d(t) ,d(t-l) ,...,d(0) ) est la représentation k-aire de d, c'est-à-dire chaque chiffre d(i) de la représentation de d est un entier compris entre 0 et 2Λk-l pour un entier k≥l , avec d(t) le chiffre le plus significatif et d(0) le chiffre le moins significatif. L'algorithme retourne en sortie l'élément y=gAd dans le groupe G et comporte les 4 étapes suivantes :
1 ) Précalculs : la) Définir gi=g
Ib) Si k>2, pour i allant de 2 à (2Λk-l) : calculer gx=gΛi 2) Initialiser le registre A avec l'élément neutre de G 3) Pour i allant de t à 0 exécuter :
3a) Remplacer A par AA (2Λk)
3b) Si d(i) est non-nul, remplacer A par A.gi 4 ) Retourner A .
Dans le cas où k est égal à 1, on remarque que l'algorithme d'exponentiation k-aire gauche-droite n'est autre que l'algorithme d'exponentiation binaire gauche-droite.
L'algorithme d'exponentiation k-aire gauche-droite peut être adapté pour prendre en entrée une représentation signée de l'exposant d. L'exposant d est donné par la représentation ( d (t ), d ( t-1 ),..., d ( 0 )) dans laquelle chaque chiffre d(i) est un entier compris entre -(2Ak-l) et 2Ak-l pour un entier k≥l , avec d(t) le chiffre le plus significatif et d(0) le chiffre le moins significatif. L'étape 3b de l'algorithme précédent est alors remplacée par
3b') Si d(i) est strictement positif, remplacer A par A.gi ; et si d(i) est strictement négatif, remplacer A par A. (gi)Λ(-l)
Cette adaptation est particulièrement intéressante quand l'inverse des éléments g noté (gi)A(-l), est facile ou peu coûteux à calculer. Ceci est par exemple le cas dans le groupe G des points d'une courbe elliptique. Dans le cas où l'inverse des éléments gi n'est pas facile ou trop coûteux à calculer, leur valeur est précalculée.
L'algorithme d'exponentiation modifié k-aire gauche-droite réduit les précalculs de l'algorithme d'exponentiation k- aire gauche-droite en ne calculant que gA2 et les puissances impaires de g lorsque k>2. Il a les mêmes entrées que l'algorithme d'exponentiation k-aire gauche- droite et retourne en sortie l'élément y=gΛd dans le groupe G. Il comporte les 4 étapes suivantes :
1) Précalculs : la) Définir gx = g et calculer g2 =gA2
Ib) Pour i allant de 1 à (2Λ(k-l)-l) : calculer g2i+i=gΛ (2i+l) 2) Initialiser le registre A avec l'élément neutre de G 3) Pour i allant de t à 0 exécuter :
3a) Si d(i)=0, remplacer A par AΛ(2Λk)
3b) Si d(i) est non-nul, écrire d(i)=2Λv.u avec u impair et remplacer A par [AΛ ( 2 Λ ( k-v) ) . gu] Λ ( 2 Av) 4 ) Retourner A .
Tout comme l'algorithme d'exponentiation modifié k-aire gauche-droite, l'algorithme d'exponentiation avec fenêtres glissantes gauche-droite réduit non seulement les précalculs mais aussi le nombre moyen de multiplications dans le groupe G. Il prend en entrée un élément g d'un groupe G, un exposant d, noté d= (d ( t ) , d ( t- 1 ) , ... , d ( 0 ) ) , où (d ( t) , d (t-1 ),..., d ( 0 )) est la représentation binaire de d et un entier k>l appelé la largeur de la fenêtre. Il retourne en sortie l'élément y=gΛd dans le groupe G et comporte les 4 étapes suivantes :
1 ) Précalculs : la) Définir gx = g et calculer g2 =gA2 Ib) Pour i allant de 1 à (2Λ(k-l)-l) : calculer
Figure imgf000010_0001
2) Initialiser le registre A avec l'élément neutre de G et le compteur i avec la valeur t 3) Tant que i est positif ou nul exécuter : 3a) Si d(i)=0, remplacer A par AA2 et i par i-l 3b) Si d(i)=l, exécuter :
3b-l) Trouver la plus longue chaîne binaire d(i) , d(i-l) ,...,d( j) telle que i-j +l≤k et d(j)=l 3b-2) Définir u comme l'entier ayant pour représentation binaire (d (i ), d (i-l ),..., d (j )) 3b-3) Remplacer A par AΛ ( 2 Λ ( i-j +1 ) ) . gu et i par j-i
4 ) Retourner A .
Les algorithmes d'exponentiation pour le calcul de y=gΛd dans le groupe G décrits précédemment ainsi que leurs nombreuses variantes parcourt l'exposant d de la gauche vers la droite, c'est-à-dire de la position la plus significative vers la position la moins significative. De façon remarquable, on distingue deux types d'opérations :
Les multiplications du registre A, appelé accumulateur, par lui-même ;
Les multiplications du registre A par la valeur constante g ou une de ses puissances gx=gΛi .
Lorsque g (respectivement une des ses puissances g^.) présente une structure particulière, la multiplication de l'accumulateur A par g dans le groupe G (respectivement une de ses puissances gλ) peut être substantiellement plus rapide que la multiplication de deux éléments arbitraires de G.
Notamment, lorsque le groupe G est le groupe multiplicatif du corps premier GF (q) et que g (respectivement une de ses puissances gx ) est représenté comme un entier en simple précision, le calcul de A. g (respectivement A.gi) en multi- précision dans G peut se faire en un temps linéaire. Par exemple, si g est égal à 2, la multiplication de A par g=2 l'
revient à additionner A avec lui-même dans le groupe G : A.2=A+A.
Les algorithmes d'exponentiation décrits précédemment sont donnés en notation multiplicative ; en d'autres mots, la loi de groupe du groupe G est notée . (multiplication) . Ces algorithmes peuvent être données en notation additive en remplaçant les multiplications par des additions ; en d'autres mots, la loi de groupe du groupe G est notée + (addition) . Ceci est par exemple le cas du groupe des points d'une courbe elliptique qui est le plus souvent donné sous forme additive. Dans ce cas, le cas de Q=d*P sur une courbe elliptique peut se calculer par n'importe lequel des algorithmes décrits précédemment en remplaçant l'opération de multiplication par l'addition de points sur ladite courbe elliptique. Similairement et de façon remarquable, on distingue deux types d'opérations :
Les additions du registre A, appelé accumulateur, par lui-même ; - Les additions du registre A par la valeur constante P ou un de ses multiples Pi=i*P.
Lorsque le point P (respectivement une des ses multiples P1) a une structure particulière, l'addition de l'accumulateur A par P (respectivement un de ses multiples P1) peut être substantiellement plus rapide que l'addition de deux points arbitraires sur une courbe elliptique. Notamment, si le point P est représenté en coordonnées projectives (de façon jacobienne ou homogène) par P=(X, Y, Z) avec la coordonnée en Z égale à 1, le nombre d'opérations pour calculer l'addition des points A et P en coordonnées projectives est réduit.
Il est apparu que implémentation sur carte à puce d'un algorithme cryptographique à clé publique basé sur le logarithme discret était vulnérable à des attaques consistant en une analyse différentielle d'une grandeur physique permettant de retrouver la clé secrète. Ces attaques sont appelées attaques de type DPA, acronyme pour Differential Power Analysis et ont notamment été dévoilées par Paul Rocher (Advances in Cryptology - CRYPTO '99, volume 1966 de Lecture Notes in Computer Science, pages 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.
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 du composant électronique 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 cryptographique, rendant le système cryptographique vulnérable .
Une parade efficace aux attaques de type DPA est de rendre aléatoire les entrées de l'algorithme d'exponentiation utilisé pour calculer y=gΛd. En d'autres termes, il s'agit de rendre l'exposant d et/ou l'élément g aléatoire. En notation additive, dans le calcul de Q=d*P, il s'agit de rendre l'exposant d et/ou l'élément P aléatoire.
Des procédés de contre-mesure appliquant ce principe sont connus. De tels procédés de contre-mesure sont notamment décrits dans un article de Jean-Sébastien Coron (Cryptographie Hardware and Embedded Systems, volume 1717 de Lecture Notes in Computer
Science, pages 292-302, Springer-Verlag, 1999) .
Notamment, dans cet article, un procédé de contre-mesure consiste à masquer le point P du groupe des points d'une courbe elliptique définie sur le corps GF(qAn) en utilisant des coordonnées projectives de ce point, définies de façon aléatoire. Dans l'article précité, on tire ainsi un nombre aléatoire λ non-nul dans GF(qAn) et on représente le point P= (x, y) par des coordonnées projectives fonction de ce nombre aléatoire, par exemple sous la forme P=(λA2.x, λΛ3.y,λ) en représentation jacobienne, ou P=(λ.x, λ.y, λ) en représentation homogène. On applique l'algorithme d'exponentiation à ces coordonnées. On obtient une représentation du point Q en coordonnées projectives, desquelles on déduit (calcule) les coordonnées affines de ce point.
Un autre procédé de contre-mesure connu par l'homme du métier pour masquer l'élément g du groupe multiplicatif G d'un corps fini GF(qΛn) consiste à représenter cet élément dans une extension de GF(qAn), de façon aléatoire. Par exemple, dans le cas d'un corps premier GF (q), une extension de GF (q) est donnée par l'anneau R=Z/ (qk) obtenu en quotientant l'anneau des entiers Z par l'anneau qkZ pour un entier k donné. On tire alors un nombre aléatoire λ dans l'anneau Z/ (k) et on représente l'élément g par g*=g+λ.q. On applique l'algorithme d'exponentiation à l'élément g* dans R et on obtient une représentation de l'élément y*=(g*)Ad dans R, de laquelle on déduit (calcule) la valeur de y=gAd dans G en réduisant y* modulo q. Ce procédé de contre-mesure s'applique également dans le cas d'un élément g du groupe multiplicatif G d'un corps fini GF(qΛn) avec n>l . Si le corps GF(qΛn) est représenté comme le quotient de l'anneau polynomial GF (q) [X] par un polynôme irréductible p de degré n sur GF (q) , alors une extension de GF(qΛn) est donnée par l'anneau
R=GF(q) [X] / (p. k) obtenu en quotientant l'anneau polynomial GF(q) [X] par le produit des polynômes p et k avec k donné. On tire alors un polynôme aléatoire λ(X) dans l'anneau GF[X]/ (k) et on représente l'élément g par g* = g+λ.p. On applique l'algorithme d'exponentiation à l'élément g* dans R et on obtient une représentation de l'élément y*=(g*) Ad dans R, de laquelle on déduit (calcule) la valeur de y=gAd dans G en réduisant y* modulo p(X) .
L'inconvénient de l'ensemble de ces procédés rendant 'aléatoire g ou P décrits ci-dessus est que si l'élément g (respectivement P) du groupe G est rendu aléatoire dans le calcul de y=gΛd (respectivement Q=d*P) , alors la structure particulière de g (respectivement P) ne peut plus être exploitée pour accélérer ledit calcul.
Un objet de la présente invention est un procédé de contre- mesure, notamment vis à vis des attaques de type DPA.
Un autre objet de l'invention est un procédé de contre-mesure aisé à mettre en oeuvre.
Par rapport aux procédés de contre-mesure connus, le procédé proposé présente l'avantage d'être plus rapide pour protéger l'évaluation de y=gΛd dans un groupe G noté de façon multiplicative (respectivement l'évaluation de Q=d*P si le groupe est noté de façon additive) lorsque l'algorithme d'exponentiation utilisé pour ce calcul est de type gauche-droite et que g (respectivement P) a une structure particulière ; les algorithmes d'exponentiation gauche-droite ayant la propriété remarquable d'avoir des opérations de multiplication de l'accumulateur A par la valeur constante g ou une de ses puissances
Figure imgf000016_0001
(respectivement des opérations d'addition de l'accumulateur A par la valeur constante P ou un de ses multiples
Figure imgf000016_0002
.
L'idée à la base de l'invention est de rendre aléatoire l'accumulateur A dans l'algorithme d'exponentiation gauche-droite utilisé. Ce procédé de masquage peut se faire au début de l'algorithme ou encore de façon déterministe ou probabiliste durant l'exécution de l'algorithme. Ainsi le calcul de y=gAd dans le groupe G noté de façon multiplicative (respectivement Q=d*P si le groupe G est noté de façon multiplicative) est rendu aléatoire sans que la structure de l'élément g (respectivement P) ou une de ses puissances
Figure imgf000016_0003
ne soit altérée .
L'invention concerne donc un procédé de contre-mesure dans un composant électronique mettant en oeuvre un algorithme cryptographique à clé publique, comprenant un calcul d'exponentiation, avec un algorithme d'exponentiation de type gauche-droite, de type y=gAd où g et y sont des éléments du groupe déterminé G noté de façon multiplicative et d est un nombre prédéterminé, caractérisé en ce qu'il comprend une étape de tirage aléatoire, au début ou durant l'exécution dudit algorithme d'exponentiation, de façon déterministe ou probabiliste, pour masquer l'accumulateur A de sorte que la structure de l'élément g ou une de ses puissances gx=gAi ne soit pas altérée. Ce procédé s'applique de la même façon si le groupe G est noté de façon additive . D'autres caractéristiques et avantages de l'invention sont présentées dans les descriptions suivantes, faites en référence à des modes de réalisation particuliers.
On a vu que l'algorithme d'exponentiation le plus simple et le plus utilisé dans un groupe G est l'algorithme d'exponentiation binaire gauche-droite et que ce type d'algorithme est plus efficace lorsque l'élément de G en entrée a une structure particulière. Par ailleurs, la plupart des systèmes cryptographiques dont la sécurité est basée sur le problème du logarithme discret sont construits dans le groupe multiplicatif d'un corps fini GF (q) avec q premier ou dans le groupe des points d'une courbe elliptique définie sur un corps fini.
Soit donc G le groupe multiplicatif d'un corps fini GF (q) avec q premier et soit un algorithme d' exponentiation binaire gauche- droite prenant en entrée un élément g de G représenté comme un entier en simple précision et un exposant d donné par la représentation binaire (d (t) , d (t-1) ,..., d (0) ) , et retournant en sortie l'élément y=gAd dans le groupe G. Dans l'invention, l'accumulateur dudit algorithme d'exponentiation est masqué de façon aléatoire. Ainsi, un procédé de contre-mesure selon l'invention appliqué au groupe multiplicatif G d'un corps premier GF (q) peut s'écrire comme suit :
1) Déterminer un entier k définissant la sécurité du masquage
2) Initialiser l'accumulateur A avec l'entier 1
3) Pour i allant de t à 0, exécuter :
3a) Tirer un entier aléatoire λ compris entre 0 et k-1 et remplacer l'accumulateur A par A+λ.q (modulo k.q)
3b) Remplacer A par AA2 (modulo k.q)
3c) Si d(i)=l remplacer A par A. g (modulo k.q)
4) Retourner A (modulo q) . Typiquemment, le paramètre de sécurité k est fixé à 32 ou 64 bits. De façon remarquable à l'étape 3c, la multiplication se fait avec l'entier g représenté en simple précision.
De préférence, le masquage de l'accumulateur A à l'étape 3a ne se fait qu'au début de l'exponentiation. On obtient ainsi le procédé de contre-mesure suivant :
1) Déterminer un entier k définissant la sécurité du masquage 2) Tirer un entier aléatoire λ compris entre 0 et k-1 et initialiser l'accumulateur A avec l'entier 1+λ . q (modulo k.q)
3) Pour i allant de t-1 à 0, exécuter :
3a) Remplacer A par AΛ2 (modulo k.q) 3b) -Si d(i)=l remplacer A par A. g (modulo k.q)
4) Retourner A (modulo q) .
De façon remarquable à l'étape 3b, la multiplication se fait avec l'entier g représenté en simple précision.
Une autre application intéressante de l'invention concerne 1' exponentation dans le groupe G des points d'une courbe elliptique définie sur un corps fini GF(qAn). Dans ce groupe G, noté de façon additive, l'inversion d'un point P, notée -P, est une opération peu coûteuse de sorte qu'il est intéressant de remplacer l'algorithme d'exponentiation binaire gauche-droite par sa version signée comme expliqué dans un article de François Morain et de Jorge Olivos (Theoretical Informatics and Applications, volume 24, pages 531-543, 1990) . Soit donc G le groupe des points d'une courbe elliptique définie sur un corps fini GF(qAn) et soit un algorithme d'exponentiation binaire signé gauche-droite prenant en entrée un point P représenté en coordonnées affines par P= (x, y) et un exposant d donné par la représentation binaire signée (d (t+1) , d (t) , ..., d (0) ) avec d(i)=0, 1 ou -1 pour O≤i≤t et d(t+l)=l, et retournant en sortie le point Q=d*P dans le groupe G en coordonnées affines. Dans l'invention, l'accumulateur dudit algorithme d'exponentiation est un triplet de valeurs dans GF (qAn) et est masqué de façon aléatoire. Ainsi, un procédé de contre-mesure selon l'invention appliqué au groupe G des», points d'une courbe elliptique définie sur un corps fini GF(qΛn) peut s'écrire comme suit :
1) I Initialiser l'accumulateur A= (Ax, Aγ, A2) avec le triplet (x, y, D
2) Pour i allant de t à 0, exécuter :
2a) Tirer un élément non nul aléatoire λ dans GF(qΛn) et remplacer l'accumulateur A=(Ax, Aγ, A2) par
Λ2.AxΛ3.Aγ, λ.Az) 2b) Remplacer A=(Ax, Aγ, A2) par 2* (Ax, Aγ, A2) en représentation jacobienne, sur la courbe elliptique
2c) Si d(i) est non-nul remplacer A=(Ax, Aγ, A2) par
(Ax, Aγ, A2) +d (i) * (x, y, 1) en représentation jacobienne, sur la courbe elliptique
3) Si A2=O retourner le point à l'infini ; sinon retourner (Ax/ (A2) Λ2, Aγ/ (A2) Λ3) .
De façon remarquable à l'étape 2c, l'addition sur la courbe elliptique se fait avec le point P=(x,y,l) dont la coordonnée en Z est égale à 1.
De préférence, le masquage de l'accumulateur A à l'étape 2a ne se fait qu'au début de l'exponentiation. On obtient ainsi le procédé de contre-mesure suivant : 1) Tirer un élément non nul aléatoire λ dans GF(qΛn) et initialiser l'accumulateur A=(Ax, Ay, Az) avec le triplet (λΛ2.x,λΛ3.y, λ)
2) Pour i allant de t à 0, exécuter : 2a) Remplacer A=(Ax, AY,AZ) par 2* (Ax, Aγ, A2) en représentation jacobienne, sur la courbe elliptique
2b) Si d(i) est non-nul remplacer A=(AX,AY,AZ) par
(Ax, Aγ, A2) +d (i) * (x, y, 1) en représentation jacobienne, sur la courbe elliptique
3) Si Az = 0 retourner le point à l'infini ; sinon retourner (AX/(AZ)Λ2, Aγ/ (A2) Λ3) .
De façon remarquable à l'étape 2b, l'addition sur la courbe elliptique se fait avec le point P=(x,y,l) dont la coordonnée en Z est égale à 1.
Si les points de la courbe elliptique sont représentés de façon homogène, les deux procédés de contre-mesure décrits précédemment deviennent respectivement :
1) Initialiser l'accumulateur A=(AX,AY,AZ) avec le triplet (x,y,l)
2) Pour i allant de t à 0, exécuter :
2a) Tirer un élément non nul aléatoire λ dans GF(qAn) et remplacer l'accumulateur A=(Ax, Ay, A2) par (λ.Ax,λ.Aγ, λ.A2) 2b) Remplacer A=(Ax, AY,AZ) par 2*(AX,AY,AZ) en représentation homogène, sur la courbe elliptique 2c) Si d(i) est non-nul remplacer A=(Ax, Aγ, A2) par (Ax, Aγ, Az) +d (i) * (x, y, 1) en représentation homogène, sur la courbe elliptique
3) Si Az=0 retourner le point à l'infini ; sinon retourner (Ax/Az, AY/AZ) . De façon remarquable à l'étape 2c, l'addition sur la courbe elliptique se fait avec le point P=(x,y,l) dont la coordonnée en Z est égale à 1.
1) Tirer un élément non nul aléatoire λ dans GF(qAn) et initialiser l'accumulateur A=(Ax, AY,AZ) avec le triplet (λ . x, λ . y, λ)
2) Pour i allant de t à 0, exécuter : 2a) Remplacer A=(AX,AY,AZ) par 2* (AX,AY,AZ) en représentation homogène, sur la courbe elliptique 2b) Si d(i) est non-nul remplacer A=(Ax, AY,AZ) par
(Ax, Aγ, Az) +d (i) * (x, y, 1) en représentation homogène, sur la courbe elliptique 3) Si Az=0 retourner le point à l'infini ; sinon retourner
Figure imgf000021_0001
.
De façon remarquable à l'étape 2b, l'addition sur la courbe elliptique se fait avec le point P=(x,y,l) dont la coordonnée en Z est égale à 1.
De façon générale, le procédé de contre-mesure selon l'invention s'applique à tout algorithme d'exponentiation de type gauche-droite dans un groupe G, noté de façon multiplicative ou additive.

Claims

REVENDICATIONS
1. Procédé de contre-mesure dans un composant électronique mettant en oeuvre un algorithme cryptographique à clé publique, comprenant un calcul d'exponentiation, avec un algorithme d'exponentiation de type gauche-droite, de type y=gΛd où g et y sont des - éléments du groupe déterminé G noté de façon multiplicative et d est un nombre prédéterminé, caractérisé en ce qu'il comprend une étape de tirage aléatoire, au début ou durant l'exécution dudit algorithme d'exponentiation de façon déterministe ou probabiliste, pour masquer l'accumulateur A.
2. Procédé de contre-mesure selon la revendication 1, caractérisé en ce que le groupe déterminé G est noté de façon additive.
3. Procédé de contre-mesure selon la revendication 1 caractérisé en ce que le groupe G est le groupe multiplicatif d'un corps fini noté GF(qAn), n étant un entier .
4. Procédé de contre-mesure selon la revendication 3 caractérisé en ce que l'entier est n égal à 1 : n=l .
5. Procédé de contre-mesure selon la revendication 4 caractérisé en ce qu' il comprend les étapes suivantes :
1) Déterminer un entier k définissant la sécurité du masquage et donner d par la représentation binaire (d(t), d(t-l), ..., d(0)) ;
2) Initialiser l'accumulateur A avec l'entier 1
3) Pour i allant de t à 0, exécuter :
3a) Tirer un entier aléatoire λ compris entre 0 et k-1 et remplacer l'accumulateur A par A + λ.q (modulo k . q) 3b) Remplacer A par AΛ2 (modulo k.q)
3c) Si d(i)=l remplacer A par A. g (modulo k.q)
4) Retourner A (modulo q) .
6. Procédé de contre-mesure selon la revendication 4 caractérisé en ce qu'il comprend les étapes suivantes :
1) Déterminer un entier k définissant la sécurité du masquage et donner d par la représentation binaire (d(t), d(t-l), ..., d(0)) ; 2) Tirer un entier aléatoire λ compris entre 0 et k-1 et initialiser l'accumulateur A avec l'entier 1+λ.q (modulo k.q)
3) Pour i allant de t-1 à 0, exécuter :
3a) Remplacer A par AA2 (modulo k.q) 3b) Si d(i)=l remplacer A par A. g (modulo k.q)
4) Retourner A (modulo q) .
7. Procédé de contre-mesure selon la revendication 2 caractérisé en ce l'algorithme d'exponentiation s'applique au groupe G des points d'une courbe elliptique défini sur un corps fini GF(qAn) .
8. Procédé de contre-mesure selon la revendication 7 caractérisé en ce qu'il comprend les étapes suivantes : 1) Initialiser l'accumulateur A=(AX,AY,AZ) avec le triplet
(x,y,l) et donner d par la représentation binaire signée (d(t+l), d(t), ..., d(0)) avec d(t+l)=l; 2) Pour i allant de t à 0, exécuter :
2a) Tirer un élément non nul aléatoire λ dans GF(qAn) et remplacer l'accumulateur A=(Ax, AY,AZ) par
Λ2.AxΛ3.Aγ, λ.Az)
2b) Remplacer A=(Ax, AY,AZ) par 2* (AX,AY,AZ) en représentation jacobienne, sur la courbe elliptique 2c) Si d(i) est non-nul remplacer A=(Ax, AY,AZ) par (Ax, Aγ, A2) +d(i) * (x,y, 1) en représentation jacobienne, sur la courbe elliptique
3) Si A2 = O retourner le point à l'infini ; sinon retourner (Ax/ (A2) Λ2, Aγ/ (A2) Λ3) .
9. Procédé de contre-mesure selon la revendication 7 caractérisé en ce qu'il comprend les étapes suivantes :
1) Tirer un élément non nul aléatoire λ dans GF(qΛn) , . initialiser l'accumulateur A=(Ax, Ax, A2) avec le triplet (λA2. x, λA3. y, λ) et donner d par la représentation binaire signée (d(t+l), d(t), ..., d(0) ) avec d(t+l)=l ;
2) Pour i allant de t à 0, exécuter : 2a) Remplacer A=(Ax, AY,AZ) par 2* (Ax, Ax, A2) en représentation jacobienne, sur la courbe elliptique
2b) Si d(i) est non-nul remplacer A=(Ax, AY,AZ) par (Ax, Ax, A2) +d (i) * (x, y, 1) en représentation jacobienne, sur la courbe elliptique
3) Si A2=O retourner le point à l'infini ; sinon retourner (Ax/ (A2) Λ2, AY/(A2)Λ3) .
10. Procédé de contre-mesure selon la revendication 7 caractérisé en ce qu'il comprend les étapes suivantes :
1) Initialiser l'accumulateur A= (Ax, Ax, A2) avec le triplet (x,y,l) et donner d par la représentation binaire signée (d(t+l), d(t), ..., d(0) ) avec d(t+l)=l ;
2) Pour i allant de t à 0, exécuter : 2a) Tirer un élément non nul aléatoire λ dans
GF(qAn) et remplacer l'accumulateur A=(Ax, Ax, A2) par (λ.Ax,λ.Aγ, λ.Az)
2b) Remplacer A=(Ax, Ax, A2) par 2* (Ax, Ax, A2) en représentation homogène, sur la courbe elliptique 2c) Si d(i) est non-nul remplacer A=(Ax, AY,AZ) par (Ax, Ay, Az) +d(i) * (x,y, 1) en représentation homogène, sur la courbe elliptique
3) Si A2 = O retourner le point à l'infini ; sinon retourner (Ax/Az, Aγ/Az) .
11. Procédé de contre-mesure selon la revendication 7 caractérisé en ce qu'il comprend les étapes suivantes :
1) Tirer un élément non nul aléatoire λ dans GF(qAn) , initialiser l'accumulateur A=(Ax, AY,AZ) avec le triplet (λ.x,λ.y, λ) et donner d par la représentation binaire signée (d(t+l), d(t), ..., d(0) ) avec d(t+l)=l ;
2) Pour i allant de t à 0, exécuter : 2a) Remplacer A=(Ax, AY,AZ) par 2* (AX,AY,AZ) en représentation homogène, i sur la courbe elliptique
2b) Si d(i) est non-nul remplacer A=(Ax, Aγ, A2) par (Ax, Ay, AZ) +d (i) * (x, y, 1) en représentation homogène, sur la courbe elliptique 3) Si Az=0 retourner le point à l'infini ; sinon retourner (Ax/Az, Aγ/Az) .
12. Composant électronique utilisant le procédé de contre- mesure selon l'une quelconque des revendications précédentes.
PCT/EP2004/051144 2003-06-18 2004-06-17 Procede de contre-mesure par masquage de l'accumulateur WO2004111831A2 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/561,234 US20060282491A1 (en) 2003-06-18 2004-06-17 Method for countermeasuring by masking the accumulators in an electronic component while using a public key cryptographic algorithm
EP04766054A EP1639451A2 (fr) 2003-06-18 2004-06-17 Procédé de contre-mesure par masquage de l'accumulateur

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR03/07379 2003-06-18
FR0307379A FR2856537B1 (fr) 2003-06-18 2003-06-18 Procede de contre-mesure par masquage de l'accumulateur dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique

Publications (2)

Publication Number Publication Date
WO2004111831A2 true WO2004111831A2 (fr) 2004-12-23
WO2004111831A3 WO2004111831A3 (fr) 2005-12-22

Family

ID=33484551

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2004/051144 WO2004111831A2 (fr) 2003-06-18 2004-06-17 Procede de contre-mesure par masquage de l'accumulateur

Country Status (4)

Country Link
US (1) US20060282491A1 (fr)
EP (1) EP1639451A2 (fr)
FR (1) FR2856537B1 (fr)
WO (1) WO2004111831A2 (fr)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2897963A1 (fr) * 2006-02-28 2007-08-31 Atmel Corp Procede pour les conjectures de quotient rapide et une manip ulation de congruences
EP1889398A2 (fr) * 2005-05-12 2008-02-20 Atmel Corporation Methode de reduction polynomiale modulaire randomisee et materiel destine a la mise en oeuvre de ce procede
US7805480B2 (en) 2005-05-12 2010-09-28 Atmel Rousset S.A.S. Randomized modular polynomial reduction method and hardware therefor
US7809133B2 (en) 2003-11-18 2010-10-05 Atmel Rousset S.A.S. Randomized modular reduction method and hardware therefor

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101527867B1 (ko) * 2007-07-11 2015-06-10 삼성전자주식회사 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는방법
EP2169535A1 (fr) * 2008-09-22 2010-03-31 Thomson Licensing Procédé, appareil et support de programme informatique pour le recodage régulier d'un entier positif
EP2535804A1 (fr) * 2011-06-17 2012-12-19 Thomson Licensing Algorithme de mise à la puissance résistant contre des fautes
DE102017002153A1 (de) * 2017-03-06 2018-09-06 Giesecke+Devrient Mobile Security Gmbh Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002088934A1 (fr) * 2001-04-30 2002-11-07 Stmicroelectronics S.A. Brouillage d'un calcul mettant en oeuvre une fonction modulaire
EP1296224A1 (fr) * 2001-09-20 2003-03-26 Hitachi, Ltd. Système de multiplication elliptique scalaire
US20030079139A1 (en) * 1999-12-28 2003-04-24 Hermann Drexler Portable data carrier provide with access protection by rendering messages unfamiliar

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2784831B1 (fr) * 1998-10-16 2000-12-15 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
CA2369540C (fr) * 2001-12-31 2013-10-01 Certicom Corp. Methode et appareil pour calculer une cle secrete partagee

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030079139A1 (en) * 1999-12-28 2003-04-24 Hermann Drexler Portable data carrier provide with access protection by rendering messages unfamiliar
WO2002088934A1 (fr) * 2001-04-30 2002-11-07 Stmicroelectronics S.A. Brouillage d'un calcul mettant en oeuvre une fonction modulaire
EP1296224A1 (fr) * 2001-09-20 2003-03-26 Hitachi, Ltd. Système de multiplication elliptique scalaire

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LIARDET P-Y ET AL: "PREVENTING SPA/DPA IN ECC SYSTEMS USING THE JACOBI FORM" CRYPTOGRAPHIC HARDWARE AND EMBEDDED SYSTEMS. 3RD INTERNATIONAL WORKSHOP, CHES 2001, PARIS, FRANCCE, MAY 14 - 16, 2001 PROCEEDINGS, LECTURE NOTES IN COMPUTER SCIENCE, BERLIN : SPRINGER, DE, vol. VOL. 2162, 14 mai 2001 (2001-05-14), pages 391-401, XP001061177 ISBN: 3-540-42521-7 *
TRICHINA E ET AL: "IMPLEMENTATION OF ELLIPTIC CURVE CRYPTOGRAPHY WITH BUILT-IN COUNTER MEASURES AGAINST SIDE CHANNEL ATTACKS" CRYPTOGRAPHIC HARDWARE AND EMBEDDED SYSTEMS - CHES 2002. 4TH INTERNATIONAL WORKSHOP REVISED PAPERS, REDWOOD SHORES, CA, USA, 13-15 AUG. 2002, 13 août 2002 (2002-08-13), pages 98-113, XP001160524 BERLIN, GERMANY, SPRINGER VERLAG *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7809133B2 (en) 2003-11-18 2010-10-05 Atmel Rousset S.A.S. Randomized modular reduction method and hardware therefor
EP1889398A2 (fr) * 2005-05-12 2008-02-20 Atmel Corporation Methode de reduction polynomiale modulaire randomisee et materiel destine a la mise en oeuvre de ce procede
EP1889398A4 (fr) * 2005-05-12 2008-06-25 Atmel Corp Methode de reduction polynomiale modulaire randomisee et materiel destine a la mise en oeuvre de ce procede
US7805480B2 (en) 2005-05-12 2010-09-28 Atmel Rousset S.A.S. Randomized modular polynomial reduction method and hardware therefor
FR2897963A1 (fr) * 2006-02-28 2007-08-31 Atmel Corp Procede pour les conjectures de quotient rapide et une manip ulation de congruences
US7788311B2 (en) 2006-02-28 2010-08-31 Atmel Rousset S.A.S. Method for fast quotient guess and congruencies manipulation

Also Published As

Publication number Publication date
US20060282491A1 (en) 2006-12-14
EP1639451A2 (fr) 2006-03-29
FR2856537A1 (fr) 2004-12-24
WO2004111831A3 (fr) 2005-12-22
FR2856537B1 (fr) 2005-11-04

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
Liardet et al. Preventing SPA/DPA in ECC systems using the Jacobi form
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
EP1969459A1 (fr) Procédé cryptographique comprenant une exponentiation modulaire sécurisée contre les attaques à canaux cachés, cryptoprocesseur pour la mise en oeuvre du procédé et carte à puce associée
EP2162820A1 (fr) Mise a la puissance modulaire selon montgomery securisee contre les attaques a canaux caches
FR2809893A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique sur 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
EP1804161B1 (fr) Détection de perturbation dans un calcul cryptographique
EP1639451A2 (fr) Procédé de contre-mesure par masquage de l'accumulateur
EP1804160B1 (fr) Protection d'un calcul cryptographique effectué par un circuit intégré
EP1639450A1 (fr) Procede de contre-mesure dans un composant electronique
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
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
EP1222528B1 (fr) Procede d'amelioration de performance de l'operation de multiplication sur un corps fini de caracteristique 2
EP1695204A2 (fr) Procede d'exponentiation modulaire protege contre les attaques du type dpa
EP3929726A1 (fr) Procede de traitement cryptographique,dispositif electronique et programme d'ordinateur associes
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
EP3716044A1 (fr) Protection d'un calcul itératif
FR3010562A1 (fr) Procede de traitement de donnees et dispositif associe
WO2002050658A1 (fr) Procedes de contre-mesure dans un composant electronique mettant en ouvre un algorithme de cryptographie a cle publique de type rsa
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: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG 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 NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

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

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2004766054

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2004766054

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2006282491

Country of ref document: US

Ref document number: 10561234

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 10561234

Country of ref document: US

WWW Wipo information: withdrawn in national office

Ref document number: 2004766054

Country of ref document: EP