• Aucun résultat trouvé

3.2 Etat de l’art des attaques par observation ´

3.2.5 Attaques par profilages

Les attaques par profilages ou Template Attack ont ´et´e introduite par Chari et al. [CRR02]. Les attaques de cette famille utilisent une strat´egie qui est organis´ee en deux phases :

1. Profilage : la premi`ere ´etape consiste `a construire un ensemble de profils (Template) caract´erisant la fuite induite pour des hypoth`eses de clefs. Cette construction se fait en collectant un grand nombre de traces de consommation ou de rayonnements ´electromagn´etiques pour chaque valeur de clef possible. La difficult´e de cette phase d’apprentissage est d’obtenir des templates qui seront efficaces, i.e. qui permettront de retrouver la clef secr`ete en un minimum de traces d’attaques, une trace dans le cas id´eal. Pour ce faire, nous employons des m´ethodes de r´eductions de dimensions permettant de s´electionner l’information pertinente au sein d’une trace d’une mesure physique. Nous verrons par la suite les diff´erentes m´ethodes de r´eduction de dimension que nous consid´ererons dans cette th`ese.

2. Attaques : la seconde ´etape consiste `a appliquer les templates `a un ensemble de traces dites d’attaque correspondant `a la mˆeme clef secr`ete `a trouver. Ainsi, nous pouvons inf´erer que le template le plus proche correspond `a la clef utilis´ee par les traces d’attaques. Pour trouver quel template est le plus proche nous utiliserons un mod`ele de gaussiennes multivari´ees, propos´e par Chari et al. [CRR02].

La force de cette attaque est son ind´ependance `a un mod`ele de courbes elliptiques particulier. Afin d’en augmenter son efficacit´e, il est opportun de cibler une sous- partie du calcul kP correspondant exactement `a l’op´eration qui va manipuler la donn´ee secr`ete k. Nous verrons au chapitre 6 quelle op´eration du calcul kP sera cibl´ee dans le cadre des BEC. Il est `a noter que cette attaque est ind´ependante du mod`ele BEC et qu’elle peut s’appliquer `a d’autres mod`eles.

Ces attaques imposent qu’un attaquant ait un acc`es complet `a une copie de l’impl´ementation cibl´ee et du syst`eme embarqu´e cible. Il nous faut donc une copie de tout le syst`eme sur lequel nous pouvons soumettre nos propres clefs en entr´ee. En effet, la phase d’apprentissage demande une grande quantit´e de donn´ees corres- pondant `a chaque clef possible. Pour que le template soit efficace, nous devons le construire sur un syst`eme identique `a celui attaqu´e.

Malgr´e tout, ce type d’attaque est tr`es peu portable, i.e. les traces de profi- lages et d’attaques sont g´en´eralement effectu´ees sur le mˆeme circuit. La difficult´e

de pouvoir appliquer un template entre diff´erents mat´eriels embarqu´es a ´et´e ´etudi´e par Choudary et al. [CK14]. L’id´ee des auteurs est d’utiliser diff´erents exemplaires d’un mˆeme syst`eme embarqu´e pour la construction du template. De plus, l’utilisa- tion de m´ethodes avanc´ees de construction des templates (cf. section 6.2.2) permet d’am´eliorer la portabilit´e des templates. Les auteurs ont confirm´e leurs travaux dans [CK18].

Dans le cadre de la cryptographie sur les courbes elliptiques la clef k est utilis´ee de fa¸con s´equentielle, bit `a bit, dans le cas de l’utilisation d’algorithmes de multi- plications scalaire tels que le Double & Add (algorithme 2.5), Double & Add always (algorithme 2.7) ou l’´Echelle de Montgomery (algorithme 2.8). Nous pouvons donc attaquer ind´ependamment chaque bit et donc les clefs possibles sont 0 et 1 dans le cas des attaques par profilages. Nous avons alors seulement deux template `a construire. Construction des profils : Pour cette premi`ere phase, l’attaquant doit pouvoir collecter un grand nombre de traces d’une mesure physique (consommation, rayonne- ment ´electromagn´etique) correspondant au calcul kP pour diff´erents P . Chacune de ces traces du calcul kP est s´epar´ee en sous-traces correspondant au traitement d’un bit du scalaire k. Il faut alors s´electionner les points d’int´erˆets de cet ensemble de traces. Ces points correspondent aux points temporels des traces qui vont d´ependre essentiellement de la clef. En effet, pour que le template soit le plus performant, il suffit de s´electionner les points comportant l’information relatives `a la clef.

Il existe diff´erentes m´ethodes de s´election de points d’int´erˆets (PoI). Dans le cas de la cryptographie sur les courbes elliptiques le t-test permet facilement de s´electionner les points d’int´erˆet. En effet, nous n’avons que deux clefs possibles : 0 ou 1. Ainsi, nous pouvons comparer la diff´erence des moyennes pour l’ensemble des traces correspondant au bit 0 et correspondant au bit 1. Nous supposons que les traces X0 pour le bit 0 sont ind´ependantes de celles X1 pour le bit 1. Nous pouvons

alors appliquer le t-test :

t = ¯ X0− ¯X1 qσ X0 n0 + σX1 X1 (3.4)

O`u n0 et n1 sont le nombre de points de X0 et X1, σX0 et σX1 est l’´ecart-type de X0

de X1.

Ce test nous permet de mesurer temporellement la diff´erence des moyennes. Cette diff´erence est importante, car elle d´esigne les points temporels dont la mesure physique acquise d´epend, a priori, de la clef. Il est courant de prendre une valeur de seuil de 4,5 [tte18]. Dans le cas des attaques par profilages, le r´esultat du t-test nous permet de s´electionner des PoI. Pour un nombre n de PoI, nous s´electionnons les n points maximums. Cet ensemble de PoI est alors utilis´e pour la construction du template pour une clef possible kb ∈ {0, 1}. Un template est alors construit de la

mani`ere suivante :

µkb =      µkb,1 µkb,2 µkb,3 .. .      , Σkb =      υ1 c1,2 c1,3 · · · c2,1 υ2 c2,3 · · · c3,1 c3,2 υ3 · · · .. . ... ... . ..      (3.5)

pour nkb traces pour la clef kb et si le i-`eme point d’int´erˆet, nous avons : µkb,i= 1 nkb nkb X j=1 tj,si (3.6)

De plus, pour construire Σkb, nous avons l’´ecart-type υi `a chaque point d’int´erˆet et

la covariance ci,i0 entre les points d’int´erˆets i et i0 :

υi = 1 nkb nkb X j=1 (tj,si − µkb,i) 2 (3.7) ci,i0 = 1 nkb nkb X j=1 (tj,si − µkb,i)(tj,si0 − µkb,i0) (3.8)

Ainsi, dans le cas de la cryptographie sur les courbes elliptiques nous avons seulement deux templates : (µ0, Σ0) et (µ1, Σ1).

Application des profils : Une fois tous les templates construits nous pouvons les appliquer `a un ensemble de traces d’attaques A form´e de nAtraces ai. Toutes ces

traces ont ´et´e obtenues avec la mˆeme clef kb. Pour appliquer les templates il suffit

d’extraire temporellement les mˆemes points d’int´erˆets qui ont servi `a construire les templates pour chaque trace ai. Nous avons alors un nouvel ensemble A0 de traces

d’attaques a0i qui sont la concat´enation des points d’int´erˆets.

Pour chaque template et chaque trace a0i, nous calculons la fonction de densit´e de probabilit´e (PDF) pkb,i = fkb(a 0 i), avec : fkb(a 0 i) = 1 p(2π)nsi kb| e−((a 0 i−µkb,i)TΣ−1kb(a 0 i−µkb,i)/2 (3.9)

Afin de s´electionner la clef kb avec la plus forte probabilit´e, nous pouvons appliquer

le principe de maximum de vraisemblance qui consiste `a calculer le logarithme de la probabilit´e Pkb pour chaque kb.

log Pkb =

nA

X

j=1

log pkb,j (3.10)

Pour lequel le plus grand logarithme log Pkb donne la clef de l’ensemble A des traces

d’attaques.

L’application des attaques par profilages `a la cryptographie sur les courbes el- liptiques a ´et´e introduite par Medwed et Oswald [MO08]. Les auteurs ciblent une impl´ementation du protocole ECDSA en effectuant au pr´ealable une DSCA sur le calcul kP pour s´electionner les points d’int´erˆets.

Il est commun de se prot´eger de cette attaque en ajoutant de l’al´eatoire dans le point de base ou la clef k utilis´ee.