• Aucun résultat trouvé

Cryptanalyse diff´erentielle

Dans le document Cryptanalyse de chiffrements symétriques (Page 38-44)

2.3 Principales attaques sur les chiffrements par blocs

2.3.2 Cryptanalyse diff´erentielle

Cette section donne une description plus d´etaill´ee des attaques diff´erentielles sur les chif-frements par blocs it´eratifs. Dans toute la section nous raisonnons sur un chiffrement par blocs it´eratif E comptant r tours, agissant sur des blocs de n bits et utilisant une clef K

de k bits. Une description plus compl`ete de la th´eorie des attaques diff´erentielles et de leurs g´en´eralisations peut ˆetre trouv´ee dans la th`ese de C´eline Blondeau [Blo11].

Comme nous l’avons vu dans la section pr´ec´edente, la cryptanalyse diff´erentielle ´etudie la propagation des diff´erences et plus pr´ecis´ement cherche `a mettre en avant des comporte-ments du chiffrement qui s’´eloignent de ceux d’une permutation al´eatoire. La notion de base apparaissant dans cette analyse est celle de diff´erentielle.

D´efinition 2.2. (Diff´erentielle) Une diff´erentielle sur t tours d’un chiffrement it´eratif par blocs est un couple (δ0, δt)∈ Fn

2 × Fn

2 form´e d’une diff´erence en entr´ee et d’une diff´erence en sortie apr`es t tours.

On notera Et le chiffrement E r´eduit aux t premiers tours.

Pour les cryptanalyses diff´erentielles simples, l’objectif sera de trouver une diff´erentielle de probabilit´e ´elev´ee. La probabilit´e d’une diff´erentielle est d´efinie de la fa¸con suivante :

D´efinition 2.3. (Probabilit´e d’une diff´erentielle) La probabilit´e d’une diff´erentielle (δ0, δt), not´ee P (δ0 → δt) est d´efinie par :

P (δ0 → δt) = PX,K(Et

K(X)⊕ Et

K(X⊕ δ0) = δt),

o`u PX,K est la probabilit´e calcul´ee en moyenne sur tous les messages X ∈ Fn

2 en entr´ee et sur toutes les clefs K ∈ Fk

2 possibles.

Dans la pratique, il sera tr`es difficile de calculer la probabilit´e d’une diff´erentielle sur t tours du chiffrement lorsque t devient grand. On choisira plutˆot de s’int´eresser aux ca-ract´eristiques, c’est-`a-dire que l’on sp´ecifiera l’´evolution de la diff´erence, tour apr`es tour.

D´efinition 2.4. (Caract´eristique diff´erentielle) Une caract´eristique diff´erentielle sur t tours d’un chiffrement E est un t + 1-uplet (δ0, δ1,· · · , δt) ∈ (Fn

2)t+1 sp´ecifiant la diff´erence en entr´ee et les diff´erences `a la fin de chaque tour.

`

A clef secr`ete fix´ee, on parlera de bonne paire (ou de paire conforme) pour d´esigner deux messages d’entr´ee dont les diff´erences g´en´er´ees sont celles donn´ees par la caract´eristique et de mauvaise paire dans le cas contraire. Une caract´eristique diff´erentielle est parfois aussi appel´ee chemin diff´erentiel. Sa probabilit´e est d´efinie de la fa¸con suivante :

D´efinition 2.5. (Probabilit´e d’une caract´eristique diff´erentielle) La probabilit´e d’une ca-ract´eristique diff´erentielle (δ0, δ1,· · · , δt)∈ (Fn

2)t+1 est donn´ee par :

P (δ0, δ1,· · · , δt) = PX,K(EKi (X)⊕ EKi (X⊕ δ0) = δi,∀i ∈ [1, t])

Pour pouvoir calculer une probabilit´e th´eorique, on ´emet l’hypoth`ese que le chiffrement est de Markov [LMM91], ce qui implique que la probabilit´e en moyenne sur les clefs d’une caract´eristique est ´egale au produit des probabilit´es des diff´erentielles sur un tour.

D´efinition 2.6. (Chiffrement de Markov) Un chiffrement par blocs it´eratif E est dit de Markov relativement `a la cryptanalyse diff´erentielle si la probabilit´e d’observer une diff´erence en sortie connaissant la diff´erence en entr´ee est ind´ependante de la clef utilis´ee pour chiffrer.

2.3 Principales attaques sur les chiffrements par blocs 17

En admettant de plus que les clefs de tour sont ind´ependantes et uniform´ement distribu´ees dans l’espace des clefs, on obtient que la probabilit´e d’une caract´eristique vaut le produit des probabilit´es des diff´erentielles sur un tour qui la composent.

Ainsi, dans la pratique, un attaquant ´etudiera la fonction de tour du chiffrement pour en d´eduire des caract´eristiques de forte probabilit´e sur un tour, puis les combinera entre elles pour former une caract´eristique diff´erentielle. Il calculera sa probabilit´e en r´ealisant le produit des probabilit´es des caract´eristiques sur un tour.

Une diff´erentielle est bien entendu form´ee de nombreuses caract´eristiques. Dans la plupart des cas, l’une d’elles aura une probabilit´e beaucoup plus forte que les autres et donnera une bonne approximation de la probabilit´e de la diff´erentielle.

Recherche de caract´eristiques

Pour calculer la probabilit´e d’une diff´erentielle sur un tour, on ´etudie son ´evolution `a travers les diff´erentes op´erations de la fonction de tour F . Ce calcul est trivial pour toutes les op´erations lin´eaires L de F puisque pour celles-ci la diff´erence ´evolue toujours de δ `a L(δ). Au contraire, l’´evolution d’une diff´erence non nulle par passage dans une op´eration non-lin´eaire ne sera pas pr´edictible avec certitude si seule la diff´erence d’entr´ee et connue et non les valeurs.

L’attaquant va alors raisonner avec des probabilit´es. Un outil utile dans ce cas est la table de distribution des diff´erences (que l’on abr´egera en DDT pour Difference Distribution Table dans la suite de ce document).

D´efinition 2.7. (Table de distribution des diff´erences) La table de distribution des diff´erences d’une boˆıte-S S de η bits sur η est une matrice de taille 2η× 2η telle que

DDT[a, b] = #{X ∈ Fη2 | S(X ⊕ a) ⊕ S(X) = b}.

Cette table fournit `a la ligne a, colonne b le nombre de valeurs X ∈ Fη2 permettant la transition de la diff´erence a `a la diff´erence b par la boˆıte-S. Pour obtenir la probabilit´e correspondante, on divisera cette valeur par le nombre d’entr´ees X possibles :

P (a→Sb) = DDT[a, b] 2η

S S S · · · S · · · · · · · · · · · · ARK L δ S S S · · · S · · · · · · · · · · · · ARK L δ1 ∆1 δ2 ∆2 δ3 ∆3 δn ∆n

Figure 2.7 – Calcul de probabilit´e d’une caract´eristique sur un tour d’un SPN : le passage d’une diff´erence deδ`a∆ par l’op´eration lin´eaire L se fait avec probabilit´e 1 si∆= L(δ), avec probabilit´e nulle sinon. La probabilit´e d’une transition par l’´etape non-lin´eaire est donn´ee par le produit des transitions δiSi de chacune des boˆıtes-S. Pour d´eterminer celui-ci on se r´ef`ere `a la DDT de S.

Pour obtenir une caract´eristique de probabilit´e ´elev´ee, l’attaquant cherchera `a minimiser le nombre de boˆıtes-S ayant des diff´erences d’entr´ee non nulles10 et `a faire en sorte que leurs probabilit´es de transition soient le plus ´elev´e possible. Cette probabilit´e de transition maximale est d´eriv´ee de l’uniformit´e diff´erentielle de la boˆıte-S.

D´efinition 2.8. (Uniformit´e diff´erentielle) L’uniformit´e diff´erentielle d’une boˆıte-S S est le plus grand coefficient pr´esent dans la DDT priv´ee de sa premi`ere ligne et de sa premi`ere colonne.

Comme nous allons le voir dans la description de l’attaque sur le chiffrement KLEIN au chapitre 3, les attaques par diff´erentielle tronqu´ee ne s’int´eressent pas au d´etail pr´ecis des transitions effectu´ees par les boˆıtes-S mais seulement `a leur activit´e ou inactivit´e. Dans ce cas-ci, les ´etapes de diffusion du chiffrement auront un rˆole primordial.

Si un attaquant r´eussit `a trouver une diff´erentielle de forte probabilit´e, il sera en mesure de construire un distingueur :

D´efinition 2.9. (Distingueur) Un distingueur est un algorithme qui par un jeu de ques-tions/r´eponses `a une permutation arrive `a d´ecider avec probabilit´e sup´erieure `a 12 s’il s’agit d’une permutation al´eatoire ou s’il s’agit d’un chiffrement particulier.

Pour une permutation al´eatoire, toute diff´erence de sortie sur n bits a une probabilit´e d’ap-parition ´egale `a 2−n, quelle que soit la diff´erence d’entr´ee. Si on met en avant une diff´erentielle sur t tours (δ0, δt) de E apparaissant avec probabilit´e p significativement sup´erieure `a 2−n, on sera en mesure de les distinguer. Par exemple, on pourra demander le chiffrement d’un multiple de p−1 paires de messages de diff´erence δ0 et observer les diff´erences obtenues. Si le nombre de paires demand´ees est inf´erieur `a 2n, une permutation al´eatoire renverra tout au plus quelques fois la diff´erence δt, alors que le nombre d’apparition de δtsera environ ´egal au multiple choisit si les chiffr´es ont ´et´e produits par Et.

En plus d’indiquer une faiblesse du chiffrement, un distingueur peut ˆetre mis `a profit pour monter des attaques, par exemple avec la technique dite de l’attaque sur le dernier tour.

10. Ces boˆıtes-S sont dites actives en opposition aux boˆıtes-S inactives dont la diff´erence d’entr´ee et nulle et dont la transition est de probabilit´e 1.

2.3 Principales attaques sur les chiffrements par blocs 19

Exemple d’exploitation d’une diff´erentielle de forte probabilit´e : les attaques sur le dernier tour

Les attaques sur le dernier tour permettent d’utiliser un distingueur statistique pour retrouver la clef du chiffrement. Ce distingueur peut ˆetre de diff´erentes natures : ici, nous nous concentrons sur les attaques diff´erentielles, mais il faut garder `a l’esprit qu’il est aussi possible d’exploiter d’autres distingueurs, lin´eaires par exemple.

Le cas d’une attaque diff´erentielle sur le dernier tour est repr´esent´e figure2.8: l’attaquant poss`ede une diff´erentielle not´ee (δ, ∆) de forte probabilit´e p, positionn´ee entre le premier tour et l’avant-dernier tour. Il demande le chiffrement d’un nombre suffisant de paires de messages dont la diff´erence d’entr´ee vaut δ puis r´ealise une hypoth`ese sur la valeur de (certains bits de) la clef du dernier tour (not´ee kr−1 sur la figure) de sorte `a r´eussir `a d´echiffrer partiellement les paires de chiffr´es et `a observer la diff´erence en ce point, qu’il compare `a ∆. Si, lorsqu’il calcule la fr´equence d’apparition de ∆, il retrouve le biais, c’est-`a-dire si cette fr´equence est ´egale `a celle pr´edite, il conclura que son hypoth`ese sur kr−1 est correcte.

Cette attaque repose sur le principe dit de r´epartition al´eatoire par fausse clef, qui ´etablit qu’une mauvaise hypoth`ese n’am`enera pas de biais et au contraire renverra un comporte-ment tr`es proche du comportecomporte-ment al´eatoire. Nous le d´efinissons ici dans le cas des attaques diff´erentielles, avec les notations utilis´ees pr´ec´edemment et dans la figure2.8:

D´efinition 2.10. (Hypoth`ese de r´epartition al´eatoire par fausse clef ) Soit EK : Fn 2 → Fn

2

un chiffrement par blocs param´etr´e par la clef K et de fonction de tour F . On note kr−1 la clef de tour du dernier tour. L’hypoth`ese de r´epartition al´eatoire par fausse clef consiste `a supposer que : PX(F−1 kr−1(EK(X))⊕ Fk−1 r−1(EK(X⊕ δ)) = ∆) = ( p si kr−1= kr−1 1 2n−1 sinon X Cadencement de clef F k0 F k1 · · · K · · · F kr−2 F kr−1 Y δ F−1 kr−1(c0) F−1 kr−1(c) X0 Cadencement de clef F k0 F k1 · · · K · · · F kr−2 F kr−1 Y0

Chapitre 3

Cryptanalyse diff´erentielle tronqu´ee

de la famille de chiffrements KLEIN

Ce chapitre pr´esente le travail r´ealis´e avec Mar´ıa Naya-Plasencia sur la famille de chiffre-ments `a bas coˆut KLEIN [GNL11] qui donna lieu `a l’article Cryptanalysis of KLEIN paru `a FSE 2014 [LN14].

Alors que les meilleurs r´esultats des cryptanalyses pr´ec´edentes n’attaquaient que 10 tours sur les 12 que comprend la plus petite instance de cette famille, nos travaux exhibent la premi`ere cryptanalyse du chiffrement complet. Nous montrons aussi que nous pouvons ´etendre nos observations aux 2 autres instances de la famille (utilisant des clefs plus longues et it´erant plus de tours) ce qui nous permet d’obtenir les meilleures attaques sur ces versions.

Nos r´esultats sont appuy´es par plusieurs v´erifications exp´erimentales de l’attaque sur des versions r´eduites du chiffrement.

3.1 Description de KLEIN et cryptanalyses pr´ec´edentes

Dans le document Cryptanalyse de chiffrements symétriques (Page 38-44)