• Aucun résultat trouvé

a partir d’un algorithme de traitement du signal dans la version parall`ele non prot´eg´ee ; nous pensons, en revanche, qu’il sera plus difficile d’y parvenir sur celle prot´eg´ee, sans pouvoir, toutefois, quantifier ni vraiment analyser ces hypoth`eses.

4.8.1 La g´en´eration des templates

Afin de mod´eliser le comportement de l’appareil sur lequel nous travaillons, il est, bien sˆur, n´ecessaire d’avoir acc`es au dispositif pour en extraire des donn´ees physiques (comme la consommation d’´energie, ou le rayonnement ´electromagn´etique) mais aussi, pour pouvoir lancer, `a volont´e, l’ensemble des calculs requis pour son profilage. Ce sont l`a des hypoth`eses fortes.

Une trace Tj est un vecteur de nombres r´eels d´ecrivant une quantit´e physique (disons la consommation d’´energie P ) en fonction du temps. Il s’agit d’un sous-´echantillonnage de la fonction P (t), la puissance dissip´ee par l’appareil en fonction du temps. Nous pourrions ´

repr´esentant la puissance dissip´ee `a l’instant h × ∆ o`u ∆ est le pas d’´echantillonnage exprim´e en ps. Nous nous servirons de ces traces pour cr´eer un template.

Notre but est de cr´eer un template (profil), de caract´eriser le comportement du circuit pour chaque hypoth`ese de clef. Il parait aberrant, `a premi`ere vue, de cr´eer autant de profils que de clefs possibles ; l’id´ee reste de travailler sur un nombre restreint de bits (sous-clefs). Nous pouvons, par exemple, cr´eer 8 profils correspondant aux trois premiers bits (23 = 8) de la clef K1. Si notre attaque permet v´eritablement de retrouver ces trois bits, il est possible de r´eit´erer l’attaque sur les trois bits suivants de K1. Ainsi, il n’est pas n´ecessaire de cr´eer 2l templates diff´erents (o`u l est la taille de la clef K1 en bits), mais 8 × dl/3e afin d’identifier tous les bits secrets de K1. Nous consid´ererons, quoi qu’il en soit, une attaque comme r´eussie si nous parvenons `a extraire correctement (et avec une quasi-certitude) un bit de la clef K1.

Un template peut ˆetre vu comme une signature physique et caract´eristique de l’appa-reil cryptographique. Nous extrayons pour chaque hypoth`ese sur des trois premiers bits de la clef K1 (000, 001, 010, 011, 100, 101, 110, 111) un nombre u de traces. Nous lan¸cons u calculs [k]P sur notre crypto-processeur (P variant d’une it´eration `a l’autre) avec les trois premiers bits de K1 valant 000 et r´ecup´erons les traces correspondantes puis, nous lan¸cons u calculs de [k]P sur notre crypto-processeur avec les trois premiers bits de K1 valant 001 et r´ecup´erons les traces correspondantes, etc. Nous avons donc pour chaque hypoth`ese de clef un ensemble de traces que nous noterons E000, E001, . . . , E111

o`u Exyz = {T0xyz, T1xyz, . . . , Tu−1xyz} (x, y, z ∈ {0, 1}). Cela signifie par exemple, que nous avons pour l’hypoth`ese de clef 000 un ensemble E000 qui regroupe u traces dis-tinctes (T0000, T1000, . . . , Tu−1000). En ayant ces donn´ees, il est possible de d´eterminer la trace moyenne Mxyz (dans chacune des hypoth`eses de clef de 000 `a 111) du dispositif en ´ ecrivant Mxyz = 1 u × u−1 X i=0 Tixyz

o`u l’addition de trace Tixyz et Tjxyz est une addition vectorielle, c’est `a dire une addition qui consiste `a sommer les composantes ind´ependamment les unes des autres. Une fois cette quantit´e calcul´ee, nous d´efinissons la matrice de corr´elations Cxyz d´efinie comme :

Cxyz = 1 u − 1

u−1

X

i=0

(Tixyz− Mxyz)(t)(Tixyz− Mxyz).

Un template est la donn´ee des valeurs Cxyz et Mxyz. Plus il y aura de traces, plus le template sera convenable et coh´erent. De plus, avoir un nombre important de traces

permet d’avoir une id´ee plus pr´ecise du bruit qui entoure chacune des mesures. Dans nos exp´erimentations, nous avons acc`es `a un mod`ele parfait. Laconsommationmesur´ee est faite via la switching activities, soit l’activit´e ´electrique cr´e´ee au sein du circuit quand un signal passe de 0 `a 1 ou inversement. Il y a effectivement une corr´elation entre la puissance dynamique de l’appareil et cette quantit´e [66]. En technologie CMOS, la puissance dynamique Pdyn est ´egale `a

Pdyn= τ × Cl× Vdd2 × f,

o`u Vdd est la tension d’alimentation, f est la fr´equence de fonctionnement du circuit, Cl est la charge et τ l’activit´e du circuit. Il y a un lien direct entre les communications des signaux internes du circuit et la puissance dynamique Pdyn. L’activit´e interne τ est en particulier attach´ee aux variations des poids de Hamming des diff´erents registres entre deux cycles d’horloge.

Figure 4.9: Un exemple de courbes obtenues `a partir d’un fichier .vcd. Nous pouvons remarquer, dans cet exemple, que les creux d’activit´es co¨ıncident avec la fin d’une

op´eration et le d´ebut d’une autre.

Dans notre approche, cette mesure (du poids de Hamming) est totalement th´eorique et se fait par l’interm´ediaire de ModelSim, un simulateur de circuit dans lequel il est possible de cr´eer un fichier .vcd (Value change dump) enregistrant `a chaque cycle d’horloge l’ensemble des signaux et, de fait, de pouvoir d´eterminer ceux qui ont chang´e. Nous avons en plus une simulation CABA (Cycle Accurate Bit Accurate) qui nous permet d’avoir la main sur tous les aspects de notre crypto-processeur. Un exemple de trace est donn´e en figure 4.9. Il s’agit l`a d’un mod`ele parfait puisqu’aucun bruit n’ira entacher nos diverses mesures. Nous ne pouvons nous assurer que le circuit effectif se comportera

comme nous le supposons ici. Tout d´ependra du placement/routage de l’architecture impl´ement´ee sur FPGA. Ce mod`ele th´eorique ne tient pas, non plus, compte du fan in/out. Pourtant, ce mod`ele est suffisamment coh´erent pour pouvoir y formuler des hypoth`eses.