• Aucun résultat trouvé

3.2 Etat de l’art des attaques par observation ´

3.2.2 Attaques simples

Les attaques simples ou Simple Side Channel Attack (SSCA) ont ´et´e intro- duites pour le cas des courbes elliptiques par Coron [Cor99]. Elles exploitent la non-homog´en´eit´e de certains algorithmes de multiplication scalaire comme l’algo- rithme 2.5 de Double and Add. Comme nous l’avons vu dans la section 2.3.2, cet algorithme ne va pas effectuer les mˆemes calculs si le bit courant est 0 ou 1. Ainsi, sur une trace de consommation de courant ou de rayonnement ´electromagn´etique nous pouvons directement lire la clef utilis´ee en distinguant les ´etapes o`u seul un doublement est effectu´e (bit 0) et les ´etapes o`u un doublement et une addition sont pr´esents (bit 1).

Afin de se pr´emunir de ce genre d’attaques, nous pouvons utiliser un algorithme de multiplication scalaire homog`ene comme l’algorithme 2.7 de Double and Add Al- ways qui va ex´ecuter une addition fictive afin d’effectuer les mˆemes calculs quel que soit le bit courant. Cependant, une telle contremesure ralentit grandement les per- formances du calcul cryptographique et l’impl´ementation devient alors sensible aux attaques par fautes, cf. section 3.3.1. Ainsi, il vaut mieux privil´egier un algorithme tel que l’´Echelle de Montgomery [JY02] qui a une arithm´etique homog`ene sans pour autant ajouter de fausses op´erations au sein du calcul.

RSCA : Cette cat´egorie d’attaque, dite Refinied Side Channel Attack (ZSCA), introduite par Goubin [Gou03] am´eliore les attaques SSCA en utilisant des points sp´eciaux au sein du calcul.

Cette attaque est aussi r´ecursive : un attaquant doit connaˆıtre les n − i − 1 bits pour attaquer le i-`eme bit. De plus, l’attaquant doit pouvoir soumettre un point sp´ecial Ps en entr´ee de la multiplication scalaire de telle sorte que le point

temporaire en entr´ee du calcul du bit ki soit P0 = (0, y). Dans ce cas l`a, si ki = 1,

alors P0 sera doubl´e `a l’´etape i − 1 ce qui sera visible sur une trace d’une mesure

physique, car la coordonn´ee x est nulle.

courbe utilis´ee. Dans le cas des BEC, l’´equation donn´ee par la d´efinition 2.22, le seul point existant P0 est le point donn´ee par les coordonn´ees (0, d2/d1) et (0, 0). En

effet, nous avons :

d1y + d2y2 = 0

y(d1+ d2y) = 0

Dans le cas o`u d1 = d2, nous avons pour solution les deux points (0, 0) qui est

l’´el´ement neutre et (0, 1) qui est un point d’ordre 4. De mˆeme : d1(y + y2) = 0

y = y2

Ainsi, ce type d’attaque est impossible sur ce mod`ele de courbes elliptiques si d1 = d2, car pour qu’au i-`eme bit du calcul nous ayons le point P0 = (0, 0) ceci

implique que Ps soit un point d’ordre (kn−1..ki+1)−12 . Ceci n’est g´en´eralement pas

possible dans le cas de courbes elliptiques pour des applications cryptographiques. En effet, le cardinal de la courbe E est choisi de telle sorte qu’il soit proche d’un nombre premier, i.e. |E| = hp o`u p est premier et le cofacteur h est petit, cf section 4.2. De plus, si au i-`eme bit nous avons P0 = (0, 1) alors Ps est un point d’ordre 4,

i.e. soit (0, 1), soit (1, 0), ainsi en v´erifiant que le point d’entr´ee de la multiplication scalaire n’est pas d’ordre 4 nous ´ecartons ce genre d’attaques. De plus, l’utilisation de points de petit ordre est exploit´ee par une attaque plus efficace comme nous le verrons ci-dessous.

ZSCA : Akishita et Takagi [AT03] ont am´elior´e la RSCA en Zero Side Channel Attack (ZSCA).

Cette variante suit la logique que la RSCA mais utilise des points P = (xp, yp)

afin qu’une valeur interm´ediaire lors du calcul du bit kis’annule. Les auteurs donnent

l’exemple du point P de telle sorte que 3xp + a = 0 sur le mod`ele de Weierstrass

donn´e par l’´equation de la d´efinition 2.15. Si ce point est utilis´e en coordonn´ees jacobiennes, alors la valeur interm´ediaire C = 3X2

p+ aZp4 s’annule pour Xp = xpZp2.

Ainsi, nous avons plus de points particuliers qui peuvent amener `a l’exploitation d’une telle attaque.

Par cons´equent, la faisabilit´e de cette attaque va d´ependre du syst`eme de co- ordonn´ees utilis´e. Dans le cas de notre impl´ementation des BEC, nous utilisons le syst`eme de coordonn´ees diff´erentielles mixtes avec la coordonn´ee Z commune. Comme nous l’avons vu `a la section 2.4.2 et r´esum´e dans le tableau 2.4, c’est le syst`eme le plus efficace. L’algorithme 2.15 pr´esente les diff´erentes ´etapes n´ecessaires pour le calcul calculer w(2P ) et w(P + Q) `a partir de w(P ), w(Q) et w(P − Q). Il nous faut alors ´etudier dans quelles conditions l’un de ces calculs interm´ediaires s’annule.

Nous savons que W4 et W5 ne peuvent pas ˆetre nuls sinon w(2P ) et w(P + Q)

seraient soit l’´el´ement neutre (0, 0), soit le point d’ordre 2 (1, 1). Ainsi les seules possibilit´es pour P et Q sont les points du sous-groupe de E d’ordre 4 form´e par (0, 0), (1, 1), (1, 0) et (0, 1). Ainsi, en v´erifiant que le point de base P du calcul kP n’est pas un point d’ordre 4, nous pouvons exclure cette possibilit´e.

Il s’en suit que pour W4 = U T et W5 = V S sont non-nuls et donc S, T , U et V

le sont ´egalement, car ce sont des ´el´ements du corps finis F2d. Ainsi, les seuls calculs

Or, C = (W2 + W3)2 et E = w−11 C ne peuvent pas ˆetre nuls car nous aurions

dans ce cas P = Q. Ceci est impossible dans le cas de l’utilisation de ce syst`eme de coordonn´ees diff´erentielles avec l’algorithme 2.8 de l’´Echelle de Montgomery. En effet, si nous avons P = Q, alors w(P − Q) = w((0, 0)) = 0 = w(P ). En v´erifiant que le point d’entr´ee du calcul de kP n’est pas l’´el´ement neutre (0, 0) nous nous assurons qu’`a chaque ´etape de l’algorithme 2.8, C et E sont non-nuls.

De plus, D = Z2 ne peut ˆetre nul sans quoi les points P et Q sont des points `

a l’infini qui n’appartiennent pas `a la courbe E. Ainsi, en v´erifiant que le point d’entr´ee du calcul kP est bien sur la courbe nous pouvons ´eviter ce cas.

Finalement, en v´erifiant que le point de d´epart de la multiplication scalaire n’est pas un point d’ordre 4, nous pouvons nous pr´emunir de ce genre d’attaque. Ceci est valable si E est choisi de telle sorte que son cardinale |E| = 4p, o`u p est un nombre premier, ce qui est toujours le cas si d1 = d2.

SVSCA : Cette attaque, dite Same Value Side Channel Attack, pr´esent´ee par Murdica et al. [MGD+12] est une variante des attaques RSCA et ZSCA qui consiste `

a utiliser des valeurs qui se r´ep`etent au sein d’un calcul de 2P ou P + Q.

La strat´egie est la mˆeme que pour les attaques RSCA et ZSCA. Nous cherchons `

a construire un point sp´ecial de sorte qu’`a la i-`eme ´etape du calcul kP nous ayons deux valeurs interm´ediaires identiques si ki = 1.

Dans le cas des BEC nous utilisons les coordonn´ees diff´erentielles mixtes dont l’addition et le doublement sont effectu´es via l’algorithme 2.15. De plus, nous utili- sons comme algorithme pour effectuer le calcul kP , l’´Echelle de Montgomery o`u `a chaque ´etape du calcul nous avons une relation entre P et Q, i.e. Q = ((kn−1...ki+1)2+

1)P . Ainsi, trouver des valeurs interm´ediaires entre le calcul de 2P et P +Q semblent difficile vu les conditions impos´ees `a ces deux points. Cependant, les calculs interm´e- diaires D = Z2 et S = (W

2(Z + W2))2 ne d´ependent que du point P . Nous pouvons

alors imposer une condition `a P de sorte que S = D : (W2(Z + W2))2 = Z2

W2(Z + W2) = Z

W2Z + W22 = Z

En effectuant le changement de variable W2 ← ZW2, nous obtenons la condition

suivante :

WP + WP2 =

1

Z (3.1)

Ainsi, pour un 1/Z de trace nulle donn´ee nous pouvons construire un point P en r´esolvant l’´equation pr´ec´edente.

Il s’en suit que si P est doubl´e alors S = D, donc dans le cas de l’´Echelle de Montgomery si le bit courant ki est 0 alors nous avons S = D sinon dans le cas

contraire, c’est le point Q qui est doubl´e. Une fois le point sp´ecial P construit nous pouvons construire un point G = ((kn−1...ki+1)−12 [|E|])P qui sera le point de base

du calcul kG.

Cette attaque n´ecessite autant de traces que le scalaire k a de bits. Une mani`ere simple de se pr´emunir contre ce genre d’attaque est de changer la repr´esentation

projective du point de base via un nombre al´eatoire. Ces m´ethodes sont pr´esent´ees dans la section 3.4. En effet, en changeant la repr´esentation du point de base nous changeons la repr´esentation du point P `a l’´etape i et donc l’´equation 3.1 n’est alors pas n´ecessairement valide.

SSCA et points de petit ordre : Nous pouvons affiner les attaques manipulant le point base pour effectuer une SSCA grˆace aux attaques utilisant les points d’une courbe elliptique ayant un petit ordre [FGV11, GVY17b, USK+18].

La strat´egie de ces attaques est de changer le point de base par un point de petit ordre qui va induire une trace de consommation de courant ou de rayonne- ment ´electromagn´etique particulier. Pour effectuer cela, la courbe utilis´ee doit alors admettre un point de petit ordre ce qui n’est pas toujours le cas. Par exemple, la courbe P256 du NIST [Gal13] n’admet pas de tels points et est donc insensible `a ce type d’attaque. La courbe d’Edwards Curve25519 [NJ16], quant `a elle, admet des points d’ordres 4 qui peuvent ˆetre utilis´es pour mener `a bien ce genre d’attaque [GVY17b, USK+18].

Dans [GVY17b], les auteurs attaquent une impl´ementation de la multiplication scalaire sur la Curve25519 utilisant l’´Echelle de Montgomery. L’attaque du bit ki se

fait `a partir la connaissance des n − i − 1 bits de points forts de la clef k. Ainsi, les auteurs expliquent que si ki et ki+1 sont identiques alors la r´eduction modulaire

employ´ee dans l’impl´ementation attaqu´ee va ˆetre plus courte. Nous pouvons alors extraire la clef k en contrˆolant la longueur de la r´eduction modulaire pour chaque bit de la clef. Ainsi, cette attaque exploite un d´efaut d’impl´ementation. En effet, la r´eduction modulaire employ´ee dans l’impl´ementation attaqu´ee n’est pas en temps constant, i.e. le temps de calcul de cette op´eration va directement d´ependre des donn´ees d’entr´ee.

L’attaque pr´esent´ee par les auteurs de [USK+18] utilise les points d’ordre 4 de la

courbe Curve25519 afin que certaines valeurs interm´ediaires du calcul d’une ´etape de l’´Echelle de Montgomery s’annulent si le bit courant est 1 ou 0. La force de cette attaque est de pouvoir ˆetre plus facilement transposable `a une autre impl´ementa- tion contrairement `a l’attaque pr´esent´ee dans [GVY17b]. Cependant, les auteurs de [USK+18] n’ont pu effectuer celle-ci en une seule trace de consommation de courant, mais en moyennant 80 traces.

Par cons´equent, la cryptographie sur les BEC est sensible `a ce genre d’attaque si d1 = d2. En effet, dans ce cas l`a, la courbe E admet deux points d’ordre 4 : (1, 0)

et (0, 1).

Une mani`ere simple de se pr´emunir contre ce genre d’attaque est de v´erifier, avant le calcul de kP , que le point de base n’est pas un point de petit ordre. De plus, choisir une courbe elliptique E dont le cardinal est de la forme |E| = hp avec p un nombre premier et h un petit cofacteur permet de limiter les v´erifications afin d’´eviter les points de petit ordre. Dans le cas des BEC, nous choisirons h = 4 et il nous suffira alors que le point de base ne soit pas l’un des points (0, 0), (1, 0), (0, 1), (1, 1) (cf. section 2.4.1).