• Aucun résultat trouvé

3.2 Etat de l’art des attaques par observation ´

3.2.3 Attaques verticales

Les attaques verticales sont une cat´egorie d’attaques par canaux auxiliaires qui consistent `a effectuer une analyse statistique sur un ensemble de traces de consom-

mation ou de rayonnement ´electromagn´etique afin d’inf´erer de l’information sur la clef utilis´ee. La principale diff´erence avec les SSCA est que ces derni`eres utilisent une seule courbe pour trouver des bits de la clef, mˆeme s’il faut une trace de mesures physiques par bit de la clef. Les attaques verticales vont utiliser un ensemble de traces pour retrouver une partie des bits formant la clef secr`ete.

Certaines attaques comme la CSCA (Correlation Side Channel Attack ) ou la DSCA (Differential Side Channel Attack ) vont n´ecessiter un grand nombre de traces afin d’atteindre un taux de succ`es significatif. D’autres attaques, comme l’attaque par doublement, ont besoin d’un nombre fixe de traces pour ˆetre men´ees `a bien. Malgr´e tout, ces attaques font parties de la cat´egorie des attaques verticales, car elles n´ecessitent au minimum plusieurs traces pour inf´erer un bit de la clef utilis´ee. CSCA, DSCA : Les attaques dites Correlation Side Channel Attack (CSCA) [Cor99] et Differential Side Channel Attack (DSCA) [KJJ99] utilisent un grand nombre de traces afin de d´esigner la bonne clef parmi un ensemble d’hypoth`eses. Dans la suite de cette th`ese, nous concentrerons sur la CSCA. En effet, les auteurs de [LCC+06] ont montr´e que la CSCA est une forme sp´eciale de la DSCA normalis´ee

par l’´ecart type du signal mesur´e.

La strat´egie de cette attaque est de construire un ensemble d’hypoth`eses pour chaque clef possible en fonction d’un mod`ele de fuites. Ces hypoth`eses sont d´efinies pour un ensemble de points de base. Une fois ces hypoth`eses pos´ees, un attaquant pourra calculer la corr´elation entre les hypoth`eses et l’ensemble des traces de consom- mation ou EM mesur´ees pour chaque point pr´ec´edemment choisi. Ainsi, l’hypoth`ese avec la corr´elation la plus ´elev´ee a une forte probabilit´e d’ˆetre la clef.

Plusieurs param`etres vont influer sur l’efficacit´e d’une telle attaque :

• Mod`ele de fuites : un mod`ele de fuites nous permet de calculer les hypoth`eses pour chaque point consid´er´e. Ce mod`ele doit ˆetre choisi de telle sorte qu’il y ait une corr´elation entre l’hypoth`ese donn´ee par ce mod`ele et une trace d’une mesure physique correspondant au calcul cryptographique de la clef attaqu´ee. Il existe deux mod`eles de fuites g´en´eralement consid´er´es :

— Poids de Hamming : ce mod`ele de fuites correspond au nombre de bits `

a 1 pour une donn´ees de longueur de n bits.

— Distance de Hamming : ce mod`ele de fuites correspond au poids de Hamming de la diff´erence entre deux donn´ees de mˆeme longueur.

Comme nous l’avons vu en introduction de ce chapitre, ce sont les transistors qui vont induire une fuite. Ainsi, le poids de Hamming correspond au nombre de capacit´es Clcharg´ees, cf. 3.1, alors que la distance de Hamming correspond

au nombre de changements d’´etat de la capacit´e Cl entre deux donn´ees.

• Nombre d’hypoth`eses : dans le cas d’une attaque par corr´elation sur les ECC, la clef priv´ee k est bien trop grande pour ˆetre attaqu´ee en une seule CSCA. En effet, le nombre d’hypoth`eses est bien trop important pour pouvoir appliquer l’attaque. Ainsi, il est n´ecessaire de scinder l’attaque de la clef k en plusieurs attaques CSCA dont la taille des hypoth`eses va d´ependre du nombre t de bits qui sera attaqu´e en une seule fois. De plus, le calcul de kP est structur´e de fa¸con s´equentielle (cf section 2.3.2), i.e. les bits de poids forts (ou poids faibles) sont utilis´es en premier. Ainsi, pour attaquer les bits (ki+t−1...ki)2

Les hypoth`eses sont alors dispos´ees au sein de la matrice suivante : H =    h(0P1) · · · h((2t− 1)P1) .. . . .. ... h(0PN) · · · h((2t− 1)PN)    (3.2)

O`u N est le nombre de points consid´er´es, t le nombre de bits attaqu´es et h le mod`ele de fuites consid´er´e.

• Nombre de points : pour chaque point de base, nous devrons calculer les hypoth`eses pour toutes les clefs possibles et capturer une trace de consomma- tion ou de rayonnement EM pour kP o`u k est la clef attaqu´ee. La quantit´e de points consid´er´ee influera grandement pour r´ealiser avec succ`es l’attaque. En effet, un trop petit nombre de points ne permettra pas de discriminer par corr´elation une hypoth`ese correspondant `a la clef. Par contre, si ce nombre de points est suffisant, les corr´elations calcul´ees pour la bonne hypoth`ese seront significatives.

Chaque trace correspondant `a un point de base forme une ligne d’une matrice de traces S. Ainsi, la matrice S contiendra N lignes, correspondant au nombre de points consid´er´es, et s colonnes correspondant au nombre de mesures phy- siques effectu´ees pour un point P au cours du temps.

Une fois les matrices H et S construites, il suffit de calculer la corr´elation de Pearson entre ces deux matrices. Cette corr´elation est donn´ee par :

C = cov(S, H) σSσT

(3.3)

O`u cov est la covariance et σ l’´ecart type. Ainsi, les lignes de C correspondent `

a la probabilit´e de corr´elation `a chaque instant des traces captur´ees (s ´el´ements) et les colonnes aux diff´erentes clefs possibles. Afin de s´electionner la bonne clef, il suffit de s´electionner l’hypoth`ese de clef ayant le plus grand taux de corr´elation.

Une contremesure propos´ee par Coron [Cor99] est d’ajouter de l’al´eatoire dans la repr´esentation des points. Cet al´ea permet de d´ecorr´eler les hypoth`eses de H et les traces captur´ees pour chaque point de base. Une autre mani`ere de casser cette corr´elation est de cacher la clef k avec un nombre al´eatoire. Les d´etails de ces diff´erentes contremesures seront donn´es dans la section 3.4.

La force de ces attaques r´eside dans leur ind´ependance `a un mod`ele de courbes elliptiques ou `a une repr´esentation particuli`ere des points. Cette attaque permet de faire fuir une clef priv´ee utilis´ee par la cryptographie bas´ee sur les BEC par exemple. Bits d’adresse DSCA : Cette attaque, propos´ee par Itoh et al. [IIT02], peut ˆetre interpr´et´ee comme une variante d’une DSCA. En effet, un attaquant va effectuer une attaque diff´erentielle non pas sur les donn´ees manipul´ees, mais sur les adresses m´emoires manipul´ees.

Cette strat´egie repose sur l’observation suivante : une grande majorit´e des algo- rithmes de multiplication scalaire n’utilisent pas les mˆemes registres de donn´ees et donc d’adresses si le bit courant est 1 ou 0. Par exemple, l’algorithme 2.8 de l’´Echelle de Montgomery va effectuer un doublement de R1 si ki = 1. Ainsi, l’attaque consiste

`

a rep´erer si l’adresse du point doubl´e correspond `a la mˆeme adresse que le point dou- bl´e pour un bit de r´ef´erence que nous supposerons ˆetre ´egal `a 1. Si cette hypoth`ese s’av`ere fausse, il suffira alors de consid´erer le conjugu´e de la clef retrouv´ee.

Cette attaque peut ˆetre d´ejou´ee en utilisant des adresses al´eatoires pour les re- gistres de points utilis´es par le calcul de kP . Cette contremesure a ´et´e propos´ee par Itoh et al. [IIT03] puis am´elior´ee dans [IISO10] par Izumi et al..

Nous pouvons aussi prot´eger une impl´ementation du calcul de kP contre ce genre d’attaque en fixant les adresses utilis´ees `a chaque ´etape du calcul quel que soit le bit courant. Ainsi, le succ`es d’une telle attaque va principalement d´ependre de l’impl´ementation et non du mod`ele de courbes consid´er´ees ou du syst`eme de coordonn´ees utilis´ee.

Il existe une variante de cette attaque [KDKL17, KDKL18] qui compare les adresses des registres de points utilis´ees au sein d’un mˆeme calcul de kP . Une seule trace est donc n´ecessaire pour effectuer une telle attaque. Ce type d’attaque combine `

a la fois les attaques des bits d’adresse et les attaques horizontales. Cette version d’attaque permet de passer outre les contremesures ajoutant de l’al´eatoire dans les donn´ees et les adresses. Cependant, si les adresses utilis´ees lors d’une ´etape du calcul ne d´ependent pas du bit courant, alors cette attaque reste impossible.

Attaque par doublement : L’attaque par doublement introduite par Fouque et Valette [FV03] provoque des collisions entre deux calculs de kP en changeant le point de base. Le premier calcul dont nous r´ecup´erons la trace est kP et le second est k(2P ).

Les auteurs d´emontrent qu’entre ces deux multiplications scalaires des calculs interm´ediaires sont similaires si l’algorithme 2.5 de Double & Add est utilis´e. En effet, si ki = 0, alors l’´etape i de kP est identique `a l’´etape i − 1 du calcul k(2P ).

Ainsi, en identifiant les collisions au sein de ces deux calculs, nous pouvons retrouver les bits 0 de la clef k.

Une contremesure simple pour ´eviter ce genre de fuites est d’utiliser l’algorithme 2.8 de l’´Echelle de Montgomery. Il s’en suit que la cryptographie bas´ee sur les BEC utilisant l’algorithme 2.8 n’est pas sensible `a ce genre d’attaque.

Attaque relative par doublement : Il existe une variante de l’attaque par doublement propos´ee par Yen et al. [YKMH05] qui permet d’attaquer l’´Echelle de Montgomery.

La strat´egie reste la mˆeme : nous devons mesurer les traces pour le calcul de kP et k(2P ). Cette fois-ci, une collision apparaˆıt entre les ´etapes i et i − 1 des calculs kP et k(2P ) si les bits ki et ki−1sont identiques (ind´ependamment de 0 et 1). Il s’en

suit que l’attaque ne permet pas de retrouver directement les bits de la clef k mais seulement les s´eries de bits identiques. Ainsi, celle-ci permet de r´eduire l’espace des clefs possibles `a deux clefs.

Les auteurs appliquent cette attaque contre une impl´ementation RSA. Cepen- dant, dans les cas des ECC elle reste applicable `a une ´Echelle de Montgomery sur les courbes elliptiques.

Une contremesure `a l’attaque propos´ee par les auteurs [YKMH05] est l’utilisation d’un algorithme de multiplication scalaire alternatif ne permettant pas ce genre de collisions.

Attaque par propagation de la retenue : L’attaque par propagation de la retenue publi´ee par Fouque et al. [FRVD08] cible la contremesure consistant `a cacher le scalaire k avec un nombre al´eatoire r. G´en´eralement, nous rempla¸cons k par k0 = k + r|E|.

Cependant, la propagation de la retenue de cette op´eration d´epend des bits de poids forts de chaque mot formant k et r|E|. Ainsi, en moyennant la trace de la consommation du canal auxiliaire mesur´e (courant ou du rayonnement ´electroma- gn´etique) de l’addition k0 = k+r|E|, nous pouvons inf´erer s’il y a ou non propagation de la retenue entre les mots des op´erandes grˆace `a l’amplitude de la trace moyenn´ee. Cette attaque nous permet d’inf´erer quelques bits de la clef k, pour les bits restants nous pouvons r´esoudre l’ECDLP `a l’aide de l’algorithme BSBG.

Pour se prot´eger de ce genre d’attaque, nous pouvons utiliser la contremesure de Joye et al. [CJ01] qui consiste `a s´eparer le scalaire k de fa¸con al´eatoire. Cette contremesure sera pr´esent´ee dans la section 3.4. Cependant, elle double le temps de calcul de kP . Afin de pr´evenir ce genre d’attaque et de limiter le surcoˆut induit pour les contremesures ajout´ees, il est conseill´e de ne pas utiliser la contremesure qui cache la clef mais d’en privil´egier d’autres. Citons par exemple, l’ajout d’al´eatoire dans la repr´esentation du point de base.

Dugardin et al. [DPN+16b] montrent que la propagation de la retenue peut ˆetre

utilis´ee pour mener des attaques par profilage. En optant pour un mod`ele de courbes elliptiques sur un corps fini de caract´eristique 2, nous pr´evenons toute forme de fuite due `a la propagation de la retenue. Les auteurs de l’attaque pr´ecisent que l’on peut aussi s’en pr´emunir en ajoutant de l’al´eatoire dans les coordonn´ees du point de base.