• Aucun résultat trouvé

Cryptanalyse des algorithmes de chiffrement par bloc

1.2 La cryptographie aujourd’hui

1.4.5 Cryptanalyse des algorithmes de chiffrement par bloc

Pour attaquer des schémas de chiffrement par bloc, il existe des méthodes désormais

clas-siques issues d’attaques spécifiques à certaines méthodes de chiffrement. Toutes ces méthodes

convergent vers un seul but : exhiber une propriété non triviale de l’algorithme de chiffrement,

et si possible l’utiliser pour récupérer la valeur secrète utilisée lors d’un (ou de plusieurs)

chiffrement(s). D’une manière générale, comme on l’a déjà mentionné, une attaque consiste

en un algorithme plus efficace que la recherche exhaustive (de la clef), à savoir une technique

moins coûteuse que la recherche des 2

k

clefs dekbits.

Dans cette thèse, nous nous intéressons exclusivement à des attaques sur des primitives

symétriques, et en particulier au standard de chiffrement actuel : l’AES. Nous détaillerons

beaucoup plus certaines des attaques classiques utilisées actuellement, mais on peut par

exemple citer l’attaque par le milieu qui a été découverte alors que l’on cherchait une manière

de renforcer la sécurité duDES. Celui-ci était le standard de chiffrement entre 1977 et 1999 et

permet de chiffrer avec des clefs de 56 bits. Suivant les cas, on peut vouloir utiliser plus que

56 bits de clefs, et il est alors naturel de se demander comment étendreDESà des clefs plus

grandes. Une première idée consiste à utiliser deux clefsK

1

etK

2

et d’appliquer deux fois le

DES à un messagem successivement avec les deux clefs pour le transformer en son chiffré

1.4. ALGORITHMES DE CHIFFREMENT PAR BLOC 21

ces deux clefs, or le mécanisme appeléDouble-DESest vulnérable à une technique triviale

d’attaque par le milieu (meet-in-the-middle).

1.4.5.1 Attaque par le milieu

Supposons qu’un adversaire ait obtenu un messagemet son chiffré c, et qu’il sache que

le Double-DESa été utilisé. Plutôt que de faire une recherche exhaustive sur les 2

112

clefs

(K

1

,K

2

)possibles, il va procéder en deux temps. Dans un premier temps, il énumère toutes les

2

56

clefsK

1

possibles, et stocke le chiffrement du messagemde 64 bits sous la clefK

1

parDES

dans une table T (voirFigure 1.15). Cette table contient des éléments de la forme(e,K

1

), où

T

m

K1

=

0 K1

=

1 K1

=

256

1

... c

K2

=

0 K2

=

1 K2

=

256

1

...

Figure 1.15: Attaque par le milieu. L’attaquant récupère les clefs K

1

et K

2

plus rapidement que la

recherche exhaustive en utilisant une mémoire de 2

|K1|

éléments.

e=DES

K1

(m)et est stockée en classant les élémentsepar ordre croissant. Notons au passage

que construire cette tableTdemande 2

56

évaluations duDESet une mémoire capable de stocker

les 2

56

éléments. Dans un deuxième temps maintenant, il va partir du message chiffré cde

64 bits et énumérer toutes les 2

56

valeurs possibles pour la deuxième clefK

2. Pour chacune

de ces valeurs, il calcule le déchiffrement de c par la clef K

2

et obtient DES

−1

K2

(c). Pour ces

valeurs obtenues en séquence pour chaque nouvelle tentative deK

2

, on obtient en moyenne

2

56

/2

64

=2

−8

élémentede la table T. En effet, nous stockons 2

56

valeurs dansT, vues comme

des variables aléatoires sur 64 bits suivant la loi uniforme, et nous sélectionnons un élément

par 56 bits deDES

K1

2

(c).

Ainsi, pour une valeur deK

2

et avec probabilité 2

−8

, la table Tsuggère un élément(e,K

1

)

qui peut correspondre à une valeur correcte pourK

1

. Cette suggestion construit une paire de clef

(K

1

,K

2

)qu’il faut tester sur une nouvelle paire clair/chiffré(m

,c

)que l’adversaire est supposé

avoir. L’information fournie par cette deuxième paire permet de supprimer toutes les

sugges-tions (K

1,

K

2)

sauf les valeurs correctes qui vont également vérifier c

= DES

K2

(DES

K1

(m

)).

Finalement, avec deux paires claire/chiffré, 2×2

56

évaluations du DES et en utilisant une

mémoire de 2

56

éléments, nous avons retrouvé les 112 bits de clef. Cette attaque classique

contredit l’intuition qui pousse à croire que doubler la taille des clefs double la sécurité de la

méthode de chiffrement. Pour répondre au problème intial, il est toutefois possible d’augmenter

la sécurité duDES, mais il faut alors considérer trois clefs(K

1

,K

2,

K

3)

et chiffrermen

c=DES

K3

(DES

K21

(DES

K1

(m

))).

On appelle cette primitive leTriple-DES. L’appel central consiste en un déchiffrement pour

des raisons de compatibilité avec le simpleDES : en effet, prendreK

1

= K

2

=K

3

revient à faire

un simpleDES, ce qui peut être utile dans certains cas.

1.4.5.2 Distance d’unicité

Dans l’attaque par le milieu présentée dans la section précédente, nous avons vu que

l’adver-saire a eu besoin de deux couples clair/chiffré pour mener à bien son attaque. D’une manière

générale, on parle dedistance d’unicitépour mesurer la quantité d’information nécessaire à cet

adversaire pour isoler théoriquement et sans ambiguité la seule clef secrète possible. Cette

information est mesurée en termes de paires clair/chiffré et rapporte un comportement en

moyenne.

Formellement, la distance d’unicitédse rapproche de l’entropie de Shannonhet peut se

définir de manière inconditionnelle par le nombre minimal de messages chiffrésc

i

à connaître

pour réduire l’entropie de la clef secrèteKà zéro :

d=min

t

hKc

1, . . . ,

c

t

=0.

1.4.5.3 Modèles d’attaquants

Lorsque l’on considère un attaquant face à un algorithme de chiffrement par bloc, il convient

de modéliser ses capacités afin de borner les requêtes qu’il peut faire. Nous avons déjà évoqué

le modèle à clairs connus, à clairs choisis ou encore à chiffrés choisis, qui sont des scénarios

précisant des contraintes sur l’une des deux entrées de l’algorithme de chiffrement, à savoir le

message. Cependant, il est également possible de préciser les capacités de l’adversaire vis-à-vis

de la seconde entrée de l’algorithme : la clef.

k ← K

$

Ek

m E

k

(m)

Adversaire k

(a)Modèle standard

k ← K

$

Ek

m,f E

f(k)

(m)

Adversaire k

(b)Modèle à clefs reliées.

Figure 1.16:Modèles d’attaques en clef secrète : le modèle standard(a)et le modèle en clefs reliées(b).

Il existe plusieurs modèles de ce point de vue, dont le plus pertinent en pratique est le

modèle standard (Figure 1.16a) dans lequel l’adversaire n’a aucune influence sur la clef secrète.

Celle-ci est choisie aléatoirement dans l’espace K de toutes les clefs possibles, et sert lors

1.4. ALGORITHMES DE CHIFFREMENT PAR BLOC 23

du chiffrement des messages reçus ou choisis par l’adversaire. Un deuxième modèle plus

souple et moins réaliste dans la pratique est le modèle en clefs reliées (Figure 1.16b). Dans

ce cas, l’adversaire ne connaît toujours pas la clef secrète utilisée, mais il peut demander le

chiffrement de messages aveckou avec n’importe quelle clef reliée à kpar une certaine relation

f. L’ensemble des clefs k

qui sont en relation avec la clef secrète k est également secret, i.e.

l’adversaire ne connait aucune clef k

, mais il peut cependant obtenir plus d’informations surk

dans ce modèle que dans le modèle standard. La relation f peut varier, et nous considérons un

cas particulier dans le chapitre 6.

k ← K

$

Ek

k m E

k

(m)

Adversaire

{m

i

}tel queP

k

{m

i

}vérifiée

(a)Modèle en clef connue.

k Ek

k m E

k

(m)

Adversaire

k,{m

i

}tel queP

k

{m

i

}vérifiée

(b)Modèle en clef choisie.

Figure 1.17:Modèles d’attaques en clef ouverte : le modèle en clef connue(a)et le modèle en clef choisie

(b). La propriétéP

K

dépend de la clefk, et prend en entrée un ensemble de un ou plusieurs messages.

Un autre ensemble de scénarios a été récemment proposé par Knudsen et Rijmen et consiste

en un modèle complètement ouvert où l’on donne la clef à l’adversaire. Son but n’est plus de la

retrouver comme dans les modèles précédents, mais d’exhiber une propriété non triviale P

k

sur la primitive lorsque tous les paramètres sont connus, y compris la clefk. On distingue plus

particulièrement deux cas : le modèle en clef connue (Figure 1.17a) où l’on donne explicitement

une valeur de k à l’adversaire, ce qui lui fixe totalement la permutation E

k

à attaquer. Un

deuxième modèle moins contraint consiste à lui laisser spécifier une valeur particulière de la

clefk(Figure 1.17b) pour lui faciliter la recherche de valeurs satisfaisantP

k

. Nous détaillons

ces deux modèles dans le chapitre 7. Dans le chapitre suivant, je détaille les contributions de

cette thèse, chapitre par chapitre.

CHAPITRE

2

Présentation des Travaux

Documents relatifs