• Aucun résultat trouvé

Application au chiffrement sym´etrique : Exemple de RC4

Dans le document The DART-Europe E-theses Portal (Page 51-54)

2.4 Attaques classiques et contre-mesures

2.4.1 Application au chiffrement sym´etrique : Exemple de RC4

a flot. Par ailleurs, la seconde attaque d´ecrite utilise un mod`ele de faute original, bas´e sur les caract´eristiques de RC4, qui pourra inspirer de futurs travaux dans ce domaine. Pour les algorithmes de chiffrement asym´etrique, nous avons pris l’exemple du c´el´ebrissime RSA car ces implantations font parties des premi`eres victimes des attaques par perturbations.

2.4.1 Application au chiffrement sym´etrique : Exemple de RC4 2.4.1.1 Perturbation classique de l’´etat interne

Depuis leur apparition `a la fin des ann´ees 90, les attaques par perturbation ont fait l’objet de multiples applications. Cependant, on d´enombre peu de travaux ayant attrait `a la s´ecurit´e des implantations d’algorithmes de chiffrement `a flot face aux perturbations. `A CHES 2004, J. J.

Hoch & A. Shamir ont combl´e ce vide en proposant une m´ethode g´en´erique pour analyser les per-turbations d’algorithmes de chiffrement `a flot bas´es sur des registres `a d´ecalage lin´eaire [HS04].

2.4. Attaques classiques et contre-mesures Afin d’illustrer leur attaque, ils ont propos´e diff´erentes applications contre des algorithmes de chiffrement `a flot parmi les plus utilis´es. En particulier, l’article pr´esente une m´ethode pour exploiter des perturbations affectant l’´etat interne de RC4. Depuis, les perturbations sur l’´etat interne sont consid´er´es comme un mod`ele classique pour ´evaluer la r´esistance d’implantations d’algorithmes de chiffrement `a flot.

Dans le cadre de leur application sur RC4, les auteurs ont consid´er´e un attaquant capable de modifier la valeur d’un octet de la permutation S et ce, juste apr`es la phase d’initialisation (cf.

Section 1.2.1.1). Or, les registres de S contiennent toutes les valeurs possibles que peut prendre un octet (i.e. de 0 `a 255). En modifiant la valeur d’un registre, on remplace donc une valeur possible par une autre, d´ej`a stock´ee dans la permutation S. Par cons´equent, la valeur retir´ee n’apparaˆıtra jamais dans la suite chiffrante alors que la valeur erron´ee apparaˆıtra, en moyenne, deux fois plus souvent que les autres. Les auteurs estiment qu’il faut analyser environ 10000 octets de suite chiffrante pour identifier la valeur ´ecras´ee et la valeur r´esultant de la perturba-tion. Ceci permet donc de d´eduire un octet de l’´etat interne apr`es l’initialisaperturba-tion. Pour retrouver le reste de l’´etat interne, concentrons nous sur la perturbation de l’octetS[1]. En comparant les suites chiffrantes correctes et erron´ees, on peut distinguer trois manifestations diff´erentes de la perturbation, correspondant respectivement `a trois cas distincts. Le cas le plus int´eressant est illustr´e par la figure 2.1. Il concerne le cas o`u S[1] est perturb´e de telle sorte que l’octet erron´e correspondant soit ˆS[1] = ε avec ε ∈ [[0; 255]]. Cette valeur perturb´ee se propage alors jusque dans la suite chiffrante. Comme nous le remarquions pr´ec´edemment, il faut analyser plusieurs

S ε

0 1 ε ε+S[ε] 253 254 255

S[ε+S[ε]] = δ i = 1 j = ε

Figure2.1 – Illustration de la perturbation de S[1] dans RC4

milliers d’octets de la suite chiffrante erron´ee pour identifier la valeur initiale de S[1] ainsi que la valeur perturb´ee ε. Par ailleurs, la lecture d’un octet erron´e de suite chiffrante δ permet de d´eduire directement un octet de l’´etat interne car : δ =S[ε+S[ε]]. Ainsi, chaque perturbation diff´erente de S[1] nous donnera une nouvelle relation qui sera utilis´ee pour retrouver un octet de la permutation S, apr`es initialisation. Nous laisserons le lecteur se r´ef´erer `a l’article origi-nal [HS04] pour les d´etails de l’aorigi-nalyse des autres cas d’erreurs.

Pour obtenir la totalit´e de l’´etat interne de RC4, apr`es l’initialisation, les auteurs ont es-tim´e qu’il fallait analyser pr`es de 226 octets de suite chiffrante r´esultant de 216 perturbations diff´erentes sur la permutation S.

Chapitre 2. Les attaques par perturbation

2.4.1.2 Analyse des ´etats ”impossibles” de RC4

A FSE 2005, E. Biham` et al. ont propos´e d’am´eliorer les attaques par perturbation sur RC4 [BGN05]. Parmi les deux m´ethodes propos´ees dans l’article, l’exploitation des´etats impos-sibles de RC4 a particuli`erement retenu notre attention. Le principe de cette attaque consiste `a perturber l’´etat interne de l’algorithme de fa¸con `a ce qu’il se mette dans un ´etat impossible `a at-teindre normalement. Bien que [BGN05] propose une attaque par perturbation encore meilleure, nous avons choisi de d´ecrire celle-ci car elle utilise un mod`ele de faute original et, qui plus est, bas´e sur des caract´eristiques propres `a RC4.

Les ´etats impossibles ont ´et´e initialement d´ecrits par H. Finney [Fin94] et sont aussi appel´es

´etats de Finney. Leur caract´erisation est d´ecrite dans la figure 2.2. Ces ´etats impossibles sont

S 1

0 1 i i+ 1 253 254 255

i j=i+ 1

Figure 2.2 – Perturbation ”impossible” de RC4

atteint lorsque j=i+ 1 et que simultan´ement S[j] = 1. Il est int´eressant de noter que lorsque l’´etat interne est dans un ´etat impossible, les ´etats suivants seront aussi des ´etats impossibles, l’octetS[j] = 1 ´etant ´echang´e avec l’octetS[j+ 1] et les registresietj ´etant incr´ement´es de 1.

Ces ´etats sont normalement impossible `a atteindre `a cause de la mise `a z´ero des pointeursi et j r´ealis´ee avant la g´en´eration de la suite chiffrante (cf.Section 1.2.1.2). Cependant, la pertur-bation des registres d’´etat interne de RC4 peut ”rendre l’impossible possible”[BGN05]. Aussi, les auteurs ont consid´er´e un attaquant capable de perturber al´eatoirement la valeur de chacun des pointeursietj. Sous ce mod`ele, la probabilit´e qu’une faute provoque un ´etat impossible est d’une chance sur 216 (i.e. j = i+ 1 avec une probabilit´e 2−8 et S[j] = 1 avec une probabilit´e 2−8 ´egalement pour une perturbation al´eatoire de j).

Le premier int´erˆet de ce mod`ele est qu’il est relativement simple de savoir si la perturbation a mis l’algorithme dans un ´etat impossible ou pas. Pour cela, il suffit d’analyser les octets de suite chiffrante post´erieurs `a l’injection de la faute. Les auteurs ont remarqu´e que, dans le cas o`u la faute n’a pas provoqu´e un ´etat de Finney, on peut s’attendre `a observer une collision, soit deux octets de mˆeme valeur, dans les 20 octets de suite chiffrante retourn´es apr`es la perturbation. Par cons´equent, si aucune collision n’est observ´ee sur les 30 octets de la suite chiffrante post´erieurs

`

a la perturbation, alors l’´etat interne est tr`es probablement dans un ´etat de Finney.

L’analyse de la suite chiffrante permet, non seulement, de savoir si la faute inject´ee est en accord avec le mod`ele mais, elle permet en outre de retrouver la valeur de l’´etat interne de RC4 juste avant la perturbation. Pour cela, il suffit de noter les registres de S qui subissent une permutation circulaire d’un octet toutes les 255 it´erations `a cause de l’injection de faute. De plus, comme l’indice de l’octet renvoy´e dans la suite chiffrante se r´ep`ete toutes les 255 it´erations

´egalement, alors, en observant 255·256 octets de suite chiffrante on obtient un entrelacement de tout l’´etat interne post´erieur `a la faute. Ainsi, en d´eduisant les valeurs correctes de i et j, il est possible remonter jusque l’´etat interne de RC4 juste avant la perturbation. Cette attaque n´ecessite de r´ealiser autant de perturbations que pour l’attaque de Hoch & Shamir [HS04] (i.e.

2.4. Attaques classiques et contre-mesures 216), en revanche, elle n´ecessite d’analyser 221octets de suite chiffrante erron´ee ce qui est moins que pour l’attaque pr´ec´edente.

2.4.2 Application au chiffrement asym´etrique : Exemple de RSA

Dans le document The DART-Europe E-theses Portal (Page 51-54)

Documents relatifs