• Aucun résultat trouvé

fautes

Les attaques par injections de fautes sont actives. La strat´egie de ces attaques est de perturber le fonctionnement de l’unit´e de calcul durant une op´eration crypto- graphique. De cette erreur inject´ee au sein du calcul, l’attaquant pourra en d´eduire

de l’information sur la clef secr`ete utilis´ee. Les multiples mani`eres d’inf´erer de l’in- formation `a partir d’une faute d´eterminent les diff´erentes attaques par fautes.

La premi`ere attaque par injection de fautes contre les ECC fut introduite par Biehl et al. [BMM00] qui consiste `a effectuer une attaque diff´erentielle par injection de fautes. Depuis, les attaques se sont complexifi´ees et deviennent de plus en plus pertinentes dans un cas r´eel. D’elles d´ependent fortement les crit`eres de s´ecurit´e que doit v´erifier une courbe elliptique pour ˆetre utilis´ee `a des fins cryptographiques comme nous le verrons dans la section 4.2.

Dans cette section, nous verrons ´egalement les diff´erentes familles d’attaques par fautes existantes contre les impl´ementations cryptographiques sur les courbes elliptiques. Dans cette th`ese, nous n’effectuerons aucune attaque par faute, nous les consid´ererons uniquement d’un point de vue th´eorique. Dans le cadre d’une im- pl´ementation des ECC, il est important de consid´erer les attaques par fautes afin d’´eviter des erreurs d’impl´ementations qui les faciliteraient.

Il existe trois grandes cat´egories d’attaques par injection de fautes :

• la premi`ere vise `a injecter des erreurs qui n’auront aucune influence sur le calcul final, et dont le manque d’effet est une information permettant de d´eduire des bits de la clef secr`ete.

• la deuxi`eme vise `a affaiblir math´ematiquement les ECC en changeant les pa- ram`etres cryptographiques utilis´es.

• la troisi`eme consiste `a cumuler de l’information sur la clef via l’utilisation de plusieurs fautes inject´ees et du r´esultat modifi´e qu’elles induisent.

3.3.1

Attaques par fausses erreurs ou Safe-error

Cette cat´egorie d’attaques par fautes cherche `a identifier au sein d’un calcul de kP les op´erations qui ne participent pas au r´esultat final. Ces op´erations sont g´en´eralement ajout´ees afin de prot´eger un algorithme de multiplication scalaire tel que l’algorithme 2.5 de Double & Add face aux attaques SPA, cf. section 3.2.

C-safe Error : Cette cat´egorie introduite par Yen et al. [YKLM01] utilise les faiblesses de la contremesure prot´egeant l’algorithme 2.5 de Double & Add always face aux SSCA en ajoutant de fausses op´erations. En effet, en injectant une faute lors de l’addition effectu´ee par l’algorithme 2.7, nous pouvons en d´eduire si le bit courant est 0 ou 1, en v´erifiant si cette faute modifie le r´esultat kP .

Il est possible de se prot´eger contre ces attaques en utilisant un algorithme tel que l’´Echelle de Montgomery ou en v´erifiant si le r´esultat se trouve bien sur la courbe.

M-safe Error : La strat´egie adopt´ee par les M-safe Error introduite par Yen et Joye [YJ00], consiste `a injecter une erreur en m´emoire sur un vecteur de calculs. Si l’erreur persiste une fois le vecteur sauvegard´e, alors le bit courant peut ˆetre d´eduit. Un algorithme comme celui de l’´Echelle de Montgomery peut ˆetre affect´e par ce type d’attaque comme expliqu´e dans [YJ00].

Ainsi, dans le cas de la cryptographie sur les BEC, une contremesure simple `a ce genre d’attaque serait de v´erifier qu’une faute n’a pas ´et´e inject´ee sur les registres R0 et R1 de l’´Echelle de Montgomery avant de passer au traitement du bit suivant.

3.3.2

Attaques par courbes faibles

Cette famille d’attaque consiste `a changer la courbe sur laquelle est effectu´e le calcul de kP de mani`ere `a effectuer ce calcul sur une courbe faible ce qui permet de r´esoudre l’ECDLP pour retrouver k.

Attaque par point invalide : Cette attaque a ´et´e introduite par Bhiel et al. [BMM00] pour le mod`ele de Weierstrass. La strat´egie de l’attaque consiste `a injecter une faute dans le point de base de telle mani`ere qu’il corresponde `a un point sur une courbe faible d’´equation y2 = x3 + ax + ˜b. Cette attaque est rendue possible

car le param`etre b dans le mod`ele de Weierstrass n’est pas utilis´e par les formules d’addition et de doublement. Un attaquant peut alors r´esoudre l’ECDLP sur cette courbe faible afin de retrouver k.

Nous pouvons facilement nous pr´emunir de cette attaque en v´erifiant que le point de base se trouve sur la courbe avant d’effectuer le calcul de kP .

Dans le cas des BEC nous avons un seul param`etre d, si d1 = d2, qui est utilis´e

par les formules d’addition et de doublement de l’algorithme 2.15. Ainsi, une telle attaque est impossible sur ce mod`ele de courbe elliptique.

Attaque par courbe invalide : Cette attaque a ´et´e introduite par Ciet et Joye [CJ05] pour le mod`ele de Weierstrass et est bas´ee sur la mˆeme strat´egie que celle de l’attaque par point invalide. Toutefois, l’attaquant va directement injecter la faute dans le param`etre a de la courbe.

Attaque par la tordue : Cette attaque publi´ee par Fouque et al. [FLRV08b] va sp´ecifiquement adresser les impl´ementations de la multiplication scalaire utilisant l’´Echelle de Montgomery et l’utilisation de la seule la coordonn´ee x d’un point. Dans ce cas, la strat´egie de l’attaque consiste `a injecter une faute dans la coordonn´ee x du point de base la transformant ainsi en ˜x. Nous avons alors :

• ˜x3+ a˜x + b est un carr´e. Dans ce cas, la solution ˜y `a ˜y2 = ˜x3+ a˜x + b dans F p

donne le point ˜P sur la courbe E. Aucune autre d´eduction n’est alors possible et l’attaque ´echoue.

• ˜x3 + a˜x + b n’est pas un carr´e. Dans ce cas la solution ˜y `a ˜y2 = ˜x3+ a˜x + b

dans Fp2 donne le point ˜P sur la tordue Etw de E. Si l’ECDLP est r´esoluble

sur la tordue nous pouvons alors retrouver la clef k.

Ainsi, nous pouvons nous prot´eger de ce genre d’attaque en choisissant une courbe elliptique E dont la tordue Etwa le mˆeme niveau de s´ecurit´e. Cette contrainte

ajoute un crit`ere de s´ecurit´e `a la construction de nouvelles courbes elliptiques pour la cryptographie, cf. section 4.2.

3.3.3

Attaques diff´erentielles

Les attaques diff´erentielles ou Differential Fault Attack (DFA) vont retrouver de fa¸con r´ecursive la clef k en comparant le r´esultat Q = kP avec un r´esultat ˜Q sur lequel une faute a ´et´e inject´ee.

Attaque classique par fautes diff´erentielles : Cette attaque a ´et´e introduite par Bhiel et al. [BMM00]. Sa strat´egie est d’effectuer plusieurs calculs de Q = kP et d’injecter une faute sur une valeur interm´ediaire Qi pour certains calculs.

Nous avons Qi = (ki−1...k0)2P et ˜Qi qui est la valeur Qi avec quelques bits

faux. Ainsi, Q = Qi+ (2i(kn−1...ki)2)P et ˜Q = ˜Qi+ (2i(kn−1...ki)2)P , un attaquant

peut alors essayer toutes les possibilit´es pour (kn−1...ki)2 de telle sorte que Qi =

Q − (2i(k

n−1...ki)2)P et ˜Qi = ˜Q − (2i(kn−1...ki)2)P n’aient que quelques bits de

diff´erence. Cette attaque peut ˆetre alors effectu´ee de fa¸con r´ecursive afin de retrouver tous les bits de la clef k.

Il est possible de se prot´eger contre ce type d’attaque en utilisant les coordonn´ees projectives ou en ajoutant de l’al´eatoire dans la repr´esentation des points `a chaque calcul de kP . Dans ce cas, l’attaquant ne pourra pas calculer les valeurs interm´e- diaires Qi et ˜Qi. Nous pouvons aussi v´erifier que le point de sortie se trouve bien

sur la courbe.

Pour les BEC, nous utilisons les coordonn´ees projectives ce qui nous prot`egent de ce genre d’attaque.

Attaque par changement de signe : Cette attaque introduite par Bl¨omer et al. [BOS06] adopte la mˆeme strat´egie que l’attaque de Bhiel et al. [BMM00]. La diff´erence r´eside dans le type de fautes inject´ees. Pour cela, nous devons changer le signe d’un point interm´ediaire. En coordonn´ee projective classique, nous avons P = (X : Y : Z) et −P = (X : −Y : Z). Ainsi, un attaquant aura la possibilit´e de changer l’addition effectu´ee lors d’une ´etape du calcul de kP en une soustraction.

L’avantage de cette attaque contrairement `a la DFA classique est de pouvoir at- taquer des impl´ementations utilisant les coordonn´ees projectives. Cependant, dans le cas de la cryptographie sur les courbes elliptiques binaires, les vecteurs de co- ordonn´ees ne sont pas sign´es, il est ainsi impossible de changer le signe d’un vec- teur. De plus, dans le cas des BEC, nous savons que pour P = (X : Y : Z) : −P = (Y : X : Z). Il est ainsi, impossible de changer le signe d’un point sur le mo- d`ele de courbes binaires d’Edwards. `A cela s’ajoute le fait que l’on utilise ce mod`ele en coordonn´ees diff´erentielles, o`u w(P ) = w(−P ), nous ne pouvons donc pas mener une telle attaque sur ce mod`ele de courbes elliptiques.

Attaque sur la conversion du syst`eme de coordonn´ee : Cette cat´egorie pr´esent´ee dans [MMNT13] par Maimut et al. injecte une faute lors de la conver- sion des coordonn´ees jacobiennes aux coordonn´ees affines pour appliquer l’attaque math´ematique de Naccache et el. [NSS04].

Cependant, nous ne pouvons ´ecarter l’´eventualit´e d’une telle attaque dans notre impl´ementation de la cryptographie sur les BEC. Les contremesures envisag´ees par [MMNT13] est l’ajout d’al´eatoire dans la repr´esentation projective des points. Cette contremesure est identique `a celle envisag´ee pour prot´eger notre impl´ementation des attaques CSCA et DSCA.