• Aucun résultat trouvé

Protection contre les analyses statistiques du courant

Dans le document The DART-Europe E-theses Portal (Page 164-167)

cryptosyst` emes sym´ etriques

7.3 Protection contre les analyses statistiques du courant

rivalise avec celle de “vrais” pics. Leur pr´esence rend l’identification de la vraie sous-cl´e difficile. Leur existence est en g´en´eral due aux erreurs de mod´elisation. Ces erreurs sont principalement li´ees `a deux causes. La premi`ere est la supposition que pour une cl´e incorrecte, la r´epartition de chaque courbe dans chaque ensemble est ind´ependante de la r´epartition correspondant au bon candidat. La deuxi`eme cause est due `a l’ignorance de la contribution

`a la consommation de courant des bits voisins du bit de s´election, mˆeme si ces derniers se trouvent dans le mˆeme mot machine. Une analyse vaste des causes de l’existence de pics fantˆomes peut ˆetre trouv´ee dans la th`ese de doctorat de Christophe Clavier [Cla07].

Pour ces raisons, une alternative `a la DPA a ´et´e pr´esent´ee par Eric Brier, Christophe Clavier et Francis Olivier dans [BCO04]. Il s’agit de l’analyse du courant par corr´elation ou CPA (abr´eviation deCorrelation Power Analysisen anglais). Pour cette m´ethode, un mod`ele de fuite doit ˆetre pr´ealablement choisi. Une diff´erence importance par rapport `a la DPA est que, au lieu d’analyser un seul bit, l’attaquant essaie de pr´edire l’int´egralit´e du mot machine qui est manipul´e `a un instant pr´ecis.

Alors, si la consommation de courant suit le mod`ele du poids de Hamming ou de la distance de Hamming (W =a·H+b), ce mod`ele lin´eaire implique certaines relations entre les variances de diff´erents termes consid´er´es comme des variables al´eatoires : σ2W = a2σH22b. Dans un micro-processeur `am bits, une donn´ee qui contient m bits a un poids de Hamming qui varie entre 0 etm. Si on suppose que ces bits sont ind´ependants et uniformement distibu´es, alors le mot complet a un poids de Hamming moyen m/2 et une variance ´egale `a m/4. Lecoefficient de corr´elation de Pearson ρW H entre la distance de Hamming et le courant mesur´e est donn´e par :

Dans la pratique, ce coefficient est calcul´e `a l’aide de N traces Wi correspondant `a N pr´edictions sur le poids de HammingHi `a un moment donn´e. Une estimation du coefficient de corr´elation est alors donn´e par l’expression suivante :

ρ= NPN

7.3 Protection contre les analyses statistiques du courant

Nous pr´esentons ici les contre-mesures les plus communes vis-`a-vis des attaques par analyse statistique du courant. La plupart de ces contre-mesures visent `a faire disparaˆıtre (ou au moins

`

a diminuer) la d´ependance entre la fuite observ´ee et les variables sensibles trait´ees. Cependant, il existe ´egalement une multitude de contre-mesures dont le but est de gˆener l’attaquant, en ajoutant par exemple du bruit.

Afin qu’une attaque statistique soit r´eussie, une condition n´ecessaire est que l’op´eration vis´ee par l’attaquant se produise au mˆeme instant pour chaque courbe g´en´er´ee. La premi`ere contre-mesure est alors lad´esynchronisationdes diff´erentes ex´ecutions.

7.3.1 D´esynchronisation

La d´esynchronisation des diff´erentes ex´ecutions d’un algorithme cryptographique peut ˆetre obtenue grˆace aux m´ecanismes mat´eriaux, `a l’aide d’horloges internes instables ou encore de d´elais au niveau logiciel. Une m´ethode consiste par exemple `a ins´erer des morceaux de code inutile `a des instants al´eatoires. Pour rendre la tache plus difficile, ces instructions peuvent elles-mˆemes ˆetre al´eatoires et avoir une dur´ee quelconque. Un exemple est d’utiliser des boucles o`u une valeur al´eatoire est g´en´er´ee et puis d´ecr´ement´ee jusqu’`a 0. De telles solutions ne n´ecessitent que tr`es peu de code suppl´ementaire. Quelques m´ethodes avanc´ees pour introduire des d´elais au niveau logiciel sont d´ecrites dans [TB07] ou [CK09].

Une autre m´ethode consiste `a ex´ecuter des processus ind´ependants dans un ordre al´eatoire.

Cette contre-mesure peut par exemple ˆetre appliqu´ee aux chiffrements dont la partie non-lin´eaire consiste en l’application en parall`ele des boˆıtes-S, afin d’ex´ecuter celles-ci dans un ordre quelconque.

L’effet de d´esynchronisation n’est pas une contre-mesure absolue, mais peut s´erieusement gˆener un attaquant, car une analyse statistique dans ces conditions est impossible ; les courbes doivent d’abord ˆetre synchronis´ees. Souvent, quelques milliers de traces doivent ˆetre trait´ees.

Ce processus devient alors tr`es dur.

7.3.2 Autres contre-mesures au niveau mat´eriel

Une contre-mesure classique au niveau mat´eriel consiste `a brouiller la consommation en ajoutant un bruit al´eatoire. Cela peut ˆetre fait `a l’aide d’un g´en´erateur de bruit. L’inconv´enient de cette m´ethode est qu’elle est accompagn´ee d’une augmentation significative du courant consomm´e. Elle ne s’applique alors que tr`es difficilement aux dispositifs de petite taille, comme c’est par exemple le cas d’un t´el´ephone portable. Une autre solution est d’utiliser un filtre afin d’aplatir la consommation de courant [CKN01,KK99,Mes00]. Cependant cette contre-mesure ne prot`ege pas contre les attaques par analyse des rayonnements ´electromagn´etiques.

Les contre-mesures d´ecrites ci-dessus peuvent consid´erablement gˆener l’attaquant, mais ne sont toutefois pas suffisantes contre des attaques pratiques. Afin de mieux prot´eger le dispositif, ces m´ethodes doivent ˆetre combin´ees avec des contre-mesures plus fondamentales que nous pr´esentons tout de suite.

7.3.3 Randomisation des donn´ees

La randomisation des donn´ees consiste `a rendre al´eatoires les valeurs cibles, pr´edites par l’attaquant. Ces techniques s’appliquent aussi bien au niveau logiciel que mat´eriel. Contraire-ment aux techniques d´ecrites auparavant, ces m´ethodes ne concernent pas le dispositif entier, mais visent seulement `a prot´eger les informations sensibles.

La m´ethode la plus utilis´ee pour prot´eger des primitives sym´etriques est le masquage al´eatoire des donn´ees interm´ediaires. Le principe du masquage consiste `a ajouter pendant le calcul une ou plusieurs valeurs al´eatoires `a chaque variable sensible. De cette mani`ere, la vraie valeur manipul´ee et donc la consommation correspondant, est ind´ependante de celle pr´edite.

En cons´equence, l’analyse statistique ´echoue. Cette approche est apparue tr`es rapidement apr`es la publication des premiers travaux sur l’analyse statistique du courant. L’id´ee ´etait ind´ependamment publi´ee par Suresh Chari, Charanjit Jutla, Josyula Rao, et Pankaj Rohatgi dans [CJRR99] et par Louis Goubin et Jacques Patarin dans [GP99].

7.3. PROTECTION CONTRE LES ANALYSES STATISTIQUES DU COURANT 149 De fa¸con g´en´erale, afin de prot´eger une valeur sensible z, on divise celle-ci en d+ 1parts (sharesen anglais),r0,. . . , rd, de fa¸con que

r0∗r1∗ · · · ∗rd=z,

o`u ∗ est une op´eration de groupe quelconque. Les valeurs r1, . . . , rd sont en g´en´eral ap-pel´ees masques, tandis que la valeur r0 est appel´ee variable masqu´ee. Selon la nature des op´erations, des versions diff´erentes sont utilis´ees. Cependant, deux familles se distinguent : le masquage bool´eenpour lequel l’op´eration∗co¨ıncide avec le ou-exclusif (XOR) et lemasquage arithm´etique pour lequel ∗ correspond `a l’addition modulaire. Lorsque d masques sont em-ploy´es afin de prot´eger la variablez le masquage est appel´ed’ordred. Dans la pratique,dest souvent fix´e `a 1.

Nous allons ensuite analyser les principaux sch´emas de masquage appliqu´es aux primitives sym´etriques (chiffrements par blocs ou codes d’authentification de message bas´es sur une fonc-tion de hachage). Une grande partie des chiffrements par blocs sont compos´es d’op´erafonc-tions lin´eaires, d’additions des sous-cl´es et de boˆıtes-S. Le probl`eme principal de la conception d’un sch´ema de masquage pour ce type de construction est le masquage des boˆıtes-S. Plusieurs solu-tions existent dans la litt´erature. Certaines d’entre elles sont assez g´en´eriques et s’appliquent sur une boˆıte-S quelconque, tandis que d’autres sont sp´ecifiques `a la boˆıte-S de l’AES, en exploitant en particulier sa structure math´ematique [AG01,BGK04,OMPR05,OS06,CB08, CG06].

Masquage des boˆıtes-S

Une m´ethode tr`es simple et efficace pour masquer une boˆıte-S quelconque, connue sous le nomrecalcul de table(table re-computationen anglais), a ´et´e propos´ee par Thomas Messerges dans [Mes01]. Elle consiste `a calculer une table de correspondance repr´esentant une version masqu´ee de la boˆıte-S. Afin de masquer une permutation non-lin´eaireSdansFn2 deux masques u, vde Fn2 doivent ˆetre g´en´er´es `a l’aide d’un g´en´erateur pseudo-al´eatoire. Une table masqu´ee T, allou´ee en RAM, peut alors ˆetre calcul´ee en fonction de S, u, et v de fa¸con d´ecrite par l’algorithme6.

Algorithme 6: La m´ethode “recalcul de table”pour masquer une boˆıte-S Donn´ees: Un masque d’entr´ee u, un masque de sortie v

R´esultat: La table masqu´ee T pour x de 0 `a 2n1 faire

T[x]←S(x⊕u)⊕v;

RenvoyerT ;

La simplicit´e et l’efficacit´e de cette m´ethode font d’elle l’outil le plus utilis´e en pratique pour masquer une boˆıte-S contre des attaques statistiques du premier ordre.

Cependant, cette m´ethode peut poser des probl`emes si la taille des tables `a masquer est grande. Pour pallier ce probl`eme, des solutions consistant `a effectuer des calculs `a la vol´ee, sans allocation de m´emoire RAM, ont ´et´e propos´ees. Une premi`ere m´ethode bas´ee sur la transformation de Fourier, propos´ee par Emmanuel Prouff et al. [PGA06] a ´et´e attaqu´ee et puis r´epar´ee par Jean-S´ebastien Coronet al.dans [CGPR06]. Une m´ethode alternative a ´et´e

´egalement propos´ee dans [PR08]. La th`ese de doctorat de Matthieu Rivain [Riv09] pr´esente une ´etude assez compl`ete sur les diff´erentes m´ethodes de masquage des boˆıtes-S.

Probl`eme de conversion des masques

Plusieurs chiffrements par blocs et fonctions de hachage sont bas´es sur des op´erations `a la fois arithm´etiques et bool´eennes. C’est le cas en particulier des fonctions ARX. Pour ce type de constructions, il est naturel d’utiliser en mˆeme temps des masques bool´eens ainsi qu’arithm´etiques pour prot´eger les donn´ees sensibles. Des m´ecanismes de conversion doivent alors ˆetre utilis´es pour transformer un masque arithm´etique en un masque bool´een et vice versa. La premi`ere m´ethode de ce type a ´et´e propos´ee par Thomas Messerges dans [Mes01], mais Jean-S´ebastien Coron et Louis Goubin ont montr´e qu’elle ´etait vuln´erable `a une attaque statistique du premier ordre [CG00].

Une autre m´ethode de conversion a ´et´e par la suite propos´ee par Louis Goubin [Gou01].

Il s’agit d’une m´ethode qui est aujourd’hui tr`es utilis´ee en pratique. Dans cette approche, la conversion bool´eenne vers arithm´etique est tr`es efficace, mais ceci n’est pas le cas pour la conversion inverse. Une version alternative a ´et´e ensuite propos´ee par Alexei Tchulkine et Jean-S´ebastien Coron [CT03]. Dans cette approche, la conversion probl´ematique, c’est-`a-dire la conversion arithm´etique vers bool´eenne est remplac´ee par l’utilisation de tables pr´e-calcul´ees. Le choix de l’utilisation d’une m´ethode ou de l’autre d´epend souvent du compromis souhait´e entre efficacit´e et m´emoire. Une m´ethode int´eressante qui combine les deux approches a ´et´e r´ecemment pr´esent´ee par Blandine Debraize [Deb12].

7.3.4 Contre-mesures au niveau protocole

R´ecemment, plusieurs travaux concernant des contre-mesures au niveau protocole sont apparus. La plupart de ces propositions consistent `a limiter l’usage d’une seule cl´e `a un certain nombre d’ex´ecutions et `a mettre r´eguli`erement `a jour les sous-cl´e utilis´ees [GM11,MSGR10].

Une autre id´ee est d’utiliser certains concepts des chiffrements par blocs avec un tweak, en utilisant le tweak pour mettre p´eriodiquement `a jour la configuration [GM11].

7.3.5 Cryptographie r´esistante aux fuites d’information

Une nouvelle direction consiste `a concevoir des primitives cryptographiques qui sont prouv´ees sˆures dans des mod`eles o`u la quantit´e d’information secr`ete qui fuit est born´ee [DP08, SPY+09]. Ce type de cryptographie s’appellecryptographie r´esistante aux fuites d’information ouleakage resilient cryptography en anglais.

Dans le document The DART-Europe E-theses Portal (Page 164-167)