ANALYSE CPA DE GRØSTL ET SKEIN 153

Dans le document The DART-Europe E-theses Portal (Page 170-174)

cryptosyst` emes sym´ etriques

7.5. ANALYSE CPA DE GRØSTL ET SKEIN 153

m1 mk

Ki

CV0in h h h

K

h K

Figure7.3 – Les zones d’attaque contre une construction envelope MAC lors d’une analyse par canaux cach´es.

suffisante pour forger le MAC. Mais pour une attaque r´eussie contre envelope MAC cela ne suffit pas ; la cl´e secr`ete K doit ˆetre imp´erativement r´ecup´er´ee. Toutefois, l’effort fourni pour une attaque statistique efficace contre envelope MAC n’est pas diff´erente du cas de HMAC, puisque ici aussi deux ´etapes sont n´ecessaires. La valeur de Ki doit d’abord ˆetre r´ecup´er´ee, puis l’insertion de la cl´e au dernier appel de la fonction de compression doit ˆetre cibl´ee en traitant plusieurs messages diff´erents m.

7.5.2 Analyse de Grøstl

La fonction de hachage Grøstl est parmi les 5 finalistes du concours SHA-3. Sa description compl`ete se trouve `a la section4.5. Nous pr´esentons ici une analyse statistique de consomma-tion de courant pour la foncconsomma-tion Grøstl-256 lorsque celle-ci est utilis´ee dans un MAC. Pour des raisons expliqu´ees pr´ec´edemment nous avons seulement impl´ement´e la version HMAC pour cette fonction, que nous appellerons d´esormais HMAC-Grøstl-256. Une analyse th´eorique pour l’utilisation de Grøstl dans un envelope-MAC figure `a la fin de la section.

La premi`ere ´etape de notre ´etude consiste `a simplement identifier les op´erations qui sont sensibles vis-`a-vis d’une analyse statistique du courant et doivent alors ˆetre prot´eg´ees. Notre but est de r´ecup´erer les valeursKietKo. Pour cela nous commen¸cons par d´eterminer les fonc-tions de s´election potentielles (op´erafonc-tions o`u les donn´ees secr`etes et publiques sont m´elang´ees).

Trois op´erations simples de ce type ont pu ˆetre identifi´ees. Elles sont illustr´ees `a la fig-ure7.4. La premi`ere op´eration est le XOR entrehi1 etmi. Lors d’une configuration HMAC, quand le premier bloc de message est trait´e, hi1 est ´egal `a Ki. La deuxi`eme op´eration sen-sible est la premi`ere application de SubBytes. Ces deux fonctions de s´election ont ´egalement

´et´e identifi´ees dans [BP10]. Puisqu’une analyse par canaux cach´es est plus efficace quand l’op´eration cible est une fonction non-lin´eaire (en comparaison avec une fonction lin´eaire), les auteurs dans [BP10] avaient choisi d’attaquer seulement l’op´erationSubBytes. Dans notre

´etude, les deux fonctions ont ´et´e attaqu´ees, afin de comparer leur efficacit´e dans le cadre d’une vraie attaque.

Une troisi`eme op´eration qui peut potentiellement devenir une op´eration cible lors d’une attaque par canaux cach´es est le XOR entre hi1, Q(mi) et P(hi1 ⊕mi) pour calculer la valeur de chaˆınage hi. L’applicabilit´e d’une attaque sur cette op´eration d´epend de la fa¸con dont elle est impl´ement´ee en pratique ; trois fa¸cons diff´erentes existent. La premi`ere consiste

`

a calculer l’op´eration XOR entre Q(mi) et P(hi1⊕mi) et de XOR-er ce r´esultat avec hi1 :

tmp = Q(mi)⊕P(hi1⊕mi) hi = hi1⊕ tmp .

P Q

m/Hin

P

Ki/Ko hi1 mi

Figure7.4 – Un appel `a la fonction de hachage Grøstl-256 avec un bloc de message lors de son utilisation dans HMAC. Les trois op´erations sensibles identifi´ees sont entour´ees.

La deuxi`eme approche consiste `a calculer l’op´eration XOR entre P(hi1⊕mi) ethi1 et de XOR-er cela `a Q(mi) :

tmp = P(hi1⊕mi)⊕hi1

hi = Q(mi)⊕ tmp ,

tandis que la troisi`eme mani`ere combine d’abord hi1 avec Q(mi) et ajoute ensuiteP(hi1⊕ mi) :

tmp = Q(mi)⊕hi1

hi = P(hi1⊕mi)⊕ tmp .

Les deux premi`eres mani`eres d’impl´ementer cette op´eration ne pr´esentent aucune menace visible pour la fonction de hachage, puisqueP(hi1⊕mi) est une valeur inconnue et variable.

Lors d’une attaque statistique de courant, l’attaquant doit ˆetre en mesure de contrˆoler une de deux entr´ees de la fonction de s´election. Or,P(hi1⊕mi) ne peut pas ˆetre contrˆol´e puisque la variablehi1 est inconnue. Cependant, la premi`ere op´eration de la troisi`eme impl´ementation est similaire `a l’op´eration XOR entremiethi1, avec la seule diff´erence queQ(mi) est utilis´e `a la place demi. Elle est alors vuln´erable `a une attaque par canaux cach´es. Il faut souligner que dans le code source donn´e par les concepteurs, cette troisi`eme impl´ementation probl´ematique a ´et´e ´evit´ee.

Nous avons ensuite effectu´e une analyse de courant par corr´elation sur HMAC-Grøstl-256 en visant les deux op´erations identifi´ees. Mˆeme si l’attaque d’une impl´ementation non-prot´eg´ee doit en th´eorie ˆetre toujours r´eussie, nous avons malgr´e tout effectu´e cette attaque pour les deux raisons suivantes. La premi`ere raison est pour valider nos estimations th´eoriques et pour

7.5. ANALYSE CPA DE GRØSTL ET SKEIN 155 montrer qu’une fuite d’information peut en effet ˆetre observ´ee. La deuxi`eme raison consiste

`a voir `a quel point l’information secr`ete peut ˆetre r´ecup´er´ee, puisque la r´eussite d’une telle attaque d´epend souvent de l’architecture et de l’op´eration vis´ee.

Une remarque importante est que les deux op´erations sensibles, c’est-`a-dire le XOR initial et la premi`ere couche des boˆıtes-S, peuvent ˆetre captur´ees dans la mˆeme trace de courant avec une tr`es bonne r´esolution de signal. Ceci peut ˆetre observ´e `a la figure 7.5, o`u les deux zones d’attaque sont clairement visibles. Du point de vue de l’attaquant, cette observation est pr´ecieuse car un seul ensemble de courbes doit ˆetre g´en´er´e.

Figure 7.5 – Analyse simple de courant (SPA) des zones d’attaque dans HMAC-Grøstl : l’absorption du message et l’op´erationSubBytes

Nous avons captur´e 5000 courbes et les avons ensuite trait´ees en utilisant la m´ethode de l’analyse par corr´elation du courant (CPA). Des fuites visibles ont pu ˆetre observ´ees pour les deux op´erations et tous les octets de la cl´e ont pu ˆetre retrouv´es. Cependant, comme attendu, les pics de corr´elation pour la bonne valeur de sous-cl´e sont plus prononc´es pour l’op´eration SubBytesque pour l’op´eration XOR. Les r´esultats de notre analyse CPA contre la fonction SubBytessont illustr´es `a la figure7.6.

Figure7.6 – Analyse CPA sur l’op´erationSubBytesde HMAC-Grøstl (4 premiers octets de la valeur cible)

Cette analyse a confirm´e le besoin de prot´eger efficacement ces deux op´erations.

Les concepteurs de Grøstl ont propos´e l’utilisation de la construction envelopeMAC afin de transformer Grøstl en code d’authentification de message. Nous avons choisi d’impl´ementer sur la carte seulement la construction HMAC, mais il est facile de voir qu’en termes d’analyse

par canaux cach´es la proc´edure de l’attaque sur le HMAC est identique `a une attaque sur le envelopeMAC. La seule diff´erence consiste en la nature de l’information r´ecup´er´ee lors d’une attaque r´eussie. En effet, en attaquant envelope MAC, nous voyons que durant le dernier appel de la fonction de compression les rˆoles des valeurs secr`etes et publiques sont ´echang´es.

Puisque ces rˆoles sont enti`erement sym´etriques, le sc´enario de l’attaque reste le mˆeme, mais la valeur obtenue est cette fois-ci la cl´e secr`ete. Si la mˆeme cl´e secr`ete est aussi utilis´ee pour d’autres applications de la carte, l’attaque peut alors devenir tr`es d´evastatrice, contrairement au cas de HMAC, o`u la cl´e d’origine n’est pas r´ecup´er´ee.

Nous avons ensuite propos´e des contre-mesures pour masquer les op´erations sensibles de Grøstl. Ces contre-mesures s’appliquent ´evidement aussi bien dans le cas de HMAC que dans le cas de envelope MAC.

Contre-mesures pour Grøstl-256

Nous sommes arriv´es `a des contre-mesures tr`es simples pour Grøstl masquant les donn´ees sensibles tout au long du calcul du MAC. Ces contre-mesures devraient ˆetre suffisantes pour prot´eger la fonction contre toute analyse statistique du premier ordre. D’apr`es l’analyse pr´ec´edente, les op´erations critiques sont le XOR entre le nouveau bloc de message et la valeur de chaˆınage ainsi que l’op´eration SubBytes.

Afin de prot´eger l’op´eration XOR, un masque bool´een R de 512 bits est g´en´er´e une seule fois. Ce masque est XOR-´e `a la valeur de chaˆınage et le feed-forward la r´einjecte automatique-ment au d´ebut de chaque fonction de compression. Ce masque R, que nous appelonsmasque global doit ˆetre supprim´e en le re-XOR-ant simplement `a l’´etat, juste avant la troncation fi-nale. Sa propagation, tout comme le calcul non-prot´eg´e de la fonction, peuvent ˆetre observ´es

`

a la figure 7.7.

En revanche, afin de passer par la couche non-lin´eaire, le masque global doit ˆetre supprim´e au d´ebut de chaque permutationP. Par cons´equent, un autre type de protection est n´ecessaire afin de masquer le calcul des boˆıtes-S et le reste de la permutation. Pour cela, nous avons choisi de masquer la table en utilisant la m´ethode propos´ee dans [Mes01] et d´ecrite `a la section7.3.3. Nous avons alors g´en´er´e au d´ebut du calcul deux masques uetv, et nous avons construit la boˆıte-S masqu´ee S, `a partir de la boˆıte-SS de l’AES, en calculant pour chaque x∈F28

S(x+u) =S(x) +v.

La boˆıte-S S ainsi que les valeurs u et v sont stock´ees dans la RAM et r´eutilis´ees lors des calculs suivants.

Il faut noter que cette contre-mesure pour la partie non-lin´eaire n’est pas suffisante pour prot´eger la fonction contre les attaques statistiques d’ordre sup´erieur. Pour cela un masque d’ordre sup´erieur devrait ˆetre utilis´e.

Ce nouveau masque, que nous appelons local, doit ˆetre appliqu´e `a l’´etat avant que le masque global soit supprim´e, afin que les variables sensibles restent prot´eg´ees `a tout moment du calcul. `A la figure7.7, la permutationP repr´esente la permutationP `a laquelle les contre-mesures ci-dessus sont appliqu´ees.

Pour v´erifier l’efficacit´e de ces contre-mesures, nous les avons impl´ement´ees sur la carte `a puce et nous avons appliqu´e `a nouveau la mˆeme attaque que pour la version non-prot´eg´ee.

En effet, il est possible de v´erifier sur la figure 7.8qu’aucune fuite n’est d´esormais observable.

Dans le document The DART-Europe E-theses Portal (Page 170-174)