• Aucun résultat trouvé

Introduction ` a la cryptologie TD n ◦ 5 : Cryptanalyse sym´ etrique

N/A
N/A
Protected

Academic year: 2022

Partager "Introduction ` a la cryptologie TD n ◦ 5 : Cryptanalyse sym´ etrique"

Copied!
3
0
0

Texte intégral

(1)

Ecole normale sup´ ´ erieure 2018-2019 D´ epartement d’informatique

Introduction ` a la cryptologie TD n 5 : Cryptanalyse sym´ etrique

Le syst` eme FEAL (pour Fast Data Encipherment Algorithm) est un algorithme de chiffrement par bloc qui utilise des cl´ es de 64 bits pour chiffrer des blocs de 64 bits. Il a ´ et´ e propos´ e par A. Shimizu et S. Miyaguchi en 1987 comme une alternative au syst` eme DES. Nous allons ´ etudier une attaque par cryptanalyse diff´ erentielle contre sa version originale (appel´ ee FEAL − 4) qui est un sch´ ema de Feistel ` a 4 tours avec pr´ e-blanchiment et post-blanchiment. Le syst` eme FEAL − 4 est d´ ecrit dans la figure 1.

F

K1

F

K2

F

K3

F

K4

K

L0

K

0R

K

L5

K

5R

S 0

S 1

S 0

S 1

K

1i

K

0i

Figure 1 – Description du syst` eme de chiffrement par bloc FEAL − 4

Apr` es une proc´ edure de diversification de cl´ e, la cl´ e K produit deux sous-cl´ es de 64 bits K 0 et K 5 et quatre sous-cl´ es de 16 bits K 1 , K 2 , K 3 et K 4 . La cl´ e K 0 est utilis´ ee pour le pr´ e-blanchiment (i.e. elle est ajout´ ee au texte clair avant d’appliquer le sch´ ema de Feistel) et la cl´ e K 5 est utilis´ ee pour le post-blanchiment (i.e. elle est ajout´ ee ` a la sortie du sch´ ema de Feistel pour produire le chiffr´ e).

La fonction de tour F utilise deux S-boˆıtes S 0 et S 1 d´ efinies par

S i (x, y) = (x + y + i mod 256) ≪ 2 pour i ∈ {0, 1}

o` u ≪ d´ enote une rotation circulaire sur 8 bits.

En utilisant une cl´ e de tour de 16 bits K i d´ ecompos´ ee en deux octets K i = (K i (0) , K i (1) ) pour i ∈ {1, 2, 3, 4}, la fonction F prenant en entr´ ee 32 bits d´ ecompos´ es en quatre octets X i = (x i 0 , x i 1 , x i 2 , x i 3 ) calcule

u i = S 1 (x i 0 ⊕ x i 1 ⊕ K i (0) , x i 2 ⊕ x i 3 ⊕ K i (1) ) et v i = S 0 (x i 2 ⊕ x i 3 ⊕ K i (1) , u i ) puis retourne

F K

i

(X ) = (S 0 (x i 0 , u i ), u i , v i , S 1 (x i 3 , v i )).

Exercice 1 (Cryptanalyse diff´ erentielle de FEAL − 4).

1. Montrer que pour tout couple d’octets (x, y) ∈ {0, . . . , 255} 2 , nous avons S 0 (x ⊕ 80, y) = S 0 (x, y) ⊕ 02 o` u les constantes 80, 02 sont en notation hexad´ ecimale.

2. Soient X 0 ∈ {0, 1} 64 et Y 0 = X 0 ⊕ (80 80 00 00, 00 00 00 00). En notant X 2 et Y 2 leurs images apr` es application de deux tours du chiffrement FEAL avec une cl´ e arbitraire, montrer que

X 2 ⊕ Y 2 = (80 80 00 00, 02 00 00 00).

1

(2)

3. En d´ eduire une relation liant les chiffr´ es de deux messages dont la diff´ erence est ´ egale ` a (80 80 00 00, 00 00 00 00)

qui ne d´ epend que de la valeur K 5 R ⊕ (0, K 4 0 , K 4 1 , 0).

4. Proposer une attaque contre le chiffrement FEAL − 4 utilisant seulement deux clairs choisis permettant de retrouver la valeur K 5 R ⊕ (0, K 4 0 , K 4 1 , 0) en 2 33 ´ evaluations de la fonction F .

5. En supposant connu K 5 R ⊕ (0, K 4 0 , K 4 1 , 0) et en utilisant une propri´ et´ e diff´ erentielle sur un tour, propo- ser une attaque ` a deux clairs choisis permettant de retrouver la valeur de K 5 L ⊕ (0, K 3 0 , K 3 1 , 0) en 2 33

´ evaluations de la fonction F.

6. Proposer une attaque ` a huit clairs choisis permettant de trouver une cl´ e ´ equivalente de FEAL − 4 en 2 35

´ evaluations de la fonction F.

Exercice 2 (Chiffrement DES avec blanchiment). Nous consid´ erons une variante de DES (dite avec blanchiment ) qui utilise une cl´ e de 120 bits de la forme K = (K 1 , K 2 ) ∈ {0, 1} 56 × {0, 1} 64 et qui chiffre un bloc m de 64 bits sous la forme

c = DES K

1

(m) ⊕ K 2 .

Montrer qu’il existe une attaque ` a deux clairs connus contre cette variante de DES qui demande 2 57 ´ evaluations de la fonction DES (i.e. que cette variante ne ralentit la recherche exhaustive que d’un facteur 2).

Exercice 3 (Multi-collisions pour les fonctions de hachage it´ er´ ees). Supposons que la fonction de hachage H : {0, 1} → {0, 1} n est construite ` a partir d’une fonction de compression f : {0, 1} n × {0, 1} ` → {0, 1} n par la m´ ethode de Merkle-Damg˚ ard (avec ` ≥ n/2). La construction de Merkle-Damg˚ ard est donn´ ee ci-dessous pour un message de longueur 4`. La valeur IV (initial vector) est fixe.

M = m 1 m 2 m 3 m 4

f

`

/

h 0 = IV

n

/

h 0 f

n

/

h 1 h 2 f h 3 f h

4 = H(M )

On suppose pour simplifier qu’il n’y a pas de bourrage (padding), et que la fonction est utilis´ ee uniquement pour des messages de longueur ´ egale ` a un multiple de `.

1. Soit M un message quelconque. ´ Evaluer (grossi` erement) le nombre d’op´ erations n´ ecessaires pour trouver de mani` ere g´ en´ erique deux blocs de message distincts m 6= m 0 tels que H(M k m) = H(M k m 0 ). Comme

op´ eration

de base on utilisera un appel ` a la fonction de compression.

2. Soit C le coˆ ut en nombre d’op´ erations de trouver une collision comme dans la question pr´ ec´ edente.

Montrer comment obtenir une 4-multi-collision pour H, c’est-` a-dire trouver 4 messages donnant le mˆ eme hach´ e, en temps 2C.

3. Montrer comment obtenir une 2 t -multi-collision pour H en temps tC.

Supposons que nous avons deux fonctions de hachage H et H 0 avec des sorties de 128 bits. Il est donc possible de trouver des collisions en 2 64 op´ erations. Pour ´ eviter cela, une id´ ee naturelle est de concat´ ener les sorties des deux fonctions, pour cr´ eer une fonction de hachage H super : M 7→ H(M ) k H 0 (M ), dont la sortie est de 256 bits (le symbole k d´ enote la concat´ enation de chaˆınes de carat` eres).

5. Supposons que H est construite suivant le sch´ ema de Merkle-Damg˚ ard comme pr´ ec´ edemment. Conclure quant ` a la s´ ecurite de H super : peut-on trouver des collisions en (substantiellement) moins que 2 128 op´ erations ?

2

(3)

Exercice 4 (Attaque alg´ ebrique sur SASAS). On consid` ere un chiffrement par bloc construit suivant le sch´ ema Substituton-Permutation Network (SPN), comme AES, avec 3 couches de boˆıtes S et deux couches affines interm´ ediaires. Pour fixer les id´ ees, prenons un taille de bloc de 128 bits, d´ ecoup´ es en 16 boˆıtes S de 8 bits chacune, comme ci-dessous.

S

k0,0

S

0,1k

S

k0,2

S

k0,3

S

k0,4

S

0,5k

S

k0,6

S

k0,7

S

0,8k

S

k0,9

S

k0,10

S

k0,11

S

k0,12

S

0,13k

S

k0,14

S

k0,15

A

0k

S

k1,0

S

1,1k

S

k1,2

S

k1,3

S

k1,4

S

1,5k

S

k1,6

S

k1,7

S

1,8k

S

k1,9

S

k1,10

S

k1,11

S

k1,12

S

1,13k

S

k1,14

S

k1,15

A

1k

S

k2,0

S

2,1k

S

k2,2

S

k2,3

S

k2,4

S

2,5k

S

k2,6

S

k2,7

S

2,8k

S

k2,9

S

k2,10

S

k2,11

S

k2,12

S

2,13k

S

k2,14

S

k2,15

On note cette fonction de chiffrement :

F SASAS = S 2 ◦ A 1 ◦ S 1 ◦ A 0 ◦ S 0

On suppose que tous les composants de ce sch´ ema sont param´ etr´ es par une clef, donc inconnus. De fait on va mod´ eliser toutes les boˆıtes S et couches affines comme uniform´ ement al´ eatoires. Supposons qu’en tant qu’atta- quant on peut demander des messages clairs choisis. Alors il est possible de retrouver tous les composants en temps pratique. Dans cet exercice, notre but va ˆ etre de retrouver la derni` ere couche de boˆıtes S.

Soit I n l’id´ eal de F 2 [X 1 , . . . , X n ] g´ en´ er´ e par {X i 2 − X i : 1 ≤ i ≤ n}. Soit F 2 (n) le quotient F 2 [X 1 , . . . , X n ]/I n . On identifie les ´ el´ ements de F 2 (n) avec l’unique repr´ esentant dans la classe d’´ equivalence qui ne contient pas de carr´ e, c’est-` a-dire dont tous les monˆ omes sont de la forme Q

i∈S X i pour un certain S ⊆ [1, n].

1. Soit P ∈ F 2 (n). Montrer que la fonction bool´ eenne f P : {0, 1} n → {0, 1} qui ` a (x 1 , . . . , x n ) associe P [X 1 = x 1 , . . . , X 2 = x 2 ] est bien d´ efinie, c’est-` a-dire ne d´ epend pas du choix du repr´ esentant.

2. Montrer que toute fonction {0, 1} n → {0, 1} est polynomiale. En d´ eduire qu’il y a un isomorphisme entre les fonctions bool´ eennes {0, 1} n → {0, 1} et les polynˆ omes de F 2 (n).

Dans la suite on identifie fonctions et polynˆ omes. Le degr´ e d’une fonction {0, 1} n → {0, 1} n est le max des degr´ es de chaque bit de sortie (en tant que polynˆ ome sans carr´ e).

3. Soit E un sous-espace affine de dimension k > 0 de {0, 1} n , et P un polynˆ ome de degr´ e k − 1. Montrer que P

x∈E P (x) = 0.

Indication. Par lin´ earit´ e il suffit de montrer cette propri´ et´ e sur les monˆ omes. Une mani` ere de proc´ eder est : la pr´ eimage de 1 par un monˆ ome de degr´ e k est une intersection I de k hyperplans affines ; la somme demand´ ee est ´ egale ` a la parit´ e de |E ∩ I|.

4. Montrer que le degr´ e d’une permutation sur n bits est au plus n − 1.

Indication. On pourra utiliser la question pr´ ec´ edente, et le fait que pour une permutation P , on a P

x∈{0,1}

n

P(x) = 0.

Soit M a = {a k x : x ∈ {0, 1} 8 } pour a ∈ {0, 1} 120 l’ensemble des messages dont les 120 premiers bits sont

´

egaux ` a a et dont les 8 derniers bits prennent toutes les 2 8 valeurs possibles.

5. Soit F ASAS = A 1 ◦ S 1 ◦ A 0 ◦ S 0 le chiffrement sans la derni` ere couche S. Montrer P

x∈M

a

F ASAS (x) = 0.

6. Fixons notre int´ erˆ et sur la boˆıte S 2,0 k de la derni` ere couche S. Soit T son inverse, et soit X i = T (i) pour i ∈ {0, 1} 8 . D´ eduire de la question pr´ ec´ edente une mani` ere d’obtenir une relation lin´ eaire entre les variables X i .

7. Conclure en donnant un algorithme permettant de retrouver toutes les boˆıtes S de la derni` ere couche.

8. Votre algorithme retrouve-t-il n´ ecessairement les boˆıtes S du chiffrement original ?

3

Références

Documents relatifs

On cherche ` a ´ etudier les propri´ et´ es de deux sch´ emas aux diff´ erences finis per- mettant de r´ esoudre num´ eriquement cette ´ equation, c.` a.d... 2.3 - On revient ` a

3.3 - Analyser l’erreur de troncature du sch´ ema de DuFort-Frankel et conclure (le sch´ ema n’est consis- tant que si ∆t/∆x tend

Dans ce m´emoire, on a d´etaill´e d’abord l’article Design of a Novel Pseudo-Random Ge- nerator Based on Vectorial FCSRs de Boufeldja Allailou, Abdelaziz Morjane et Abdellah

Schneier, "The MacGuffin Block Cipher Algorithm", Fast Software Encryption, Second International Workshop Proceedings, Springer-Verlag, 1995,

• Niveau de sécurité équivalent à la substitution monoalphabétique. Extension à la

Veuillez num´ eroter et indiquer votre num´ ero de candidat sur toutes les feuilles rendues. Justifier toutes vos

Il a donc ´ et´ e sugg´ er´ e pour rendre les protocoles cryptographiques plus efficaces d’utiliser des cl´ es secr` etes o` u ce nombre, le poids de Hamming de l’exposant,

I Avant la guerre, Marian Rejewski (services secrets polonais) réussit à déchiffrer les messages d’une première version d’Enigma grâce à des répétitions dans le