Codage et Cryptanalyse linéaire - rocq.inria.fr · Codage et Cryptanalyse linéaire Application au...

26
Codage et Cryptanalyse linéaire Application au DES B. Gérard Le Bobinnec - J-P. Tillich C2 - 18 mars 2008 B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 1 / 24

Transcript of Codage et Cryptanalyse linéaire - rocq.inria.fr · Codage et Cryptanalyse linéaire Application au...

Codage et Cryptanalyse linéaireApplication au DES

B. Gérard Le Bobinnec - J-P. Tillich

C2 - 18 mars 2008

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 1 / 24

Plan

1 Cryptanalyse linéaire

2 Modélisation pour l’utilisation de plusieurs équations

3 Utilisation d’algorithmes de décodage

4 Conclusion

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 2 / 24

Plan

1 Cryptanalyse linéaire

2 Modélisation pour l’utilisation de plusieurs équations

3 Utilisation d’algorithmes de décodage

4 Conclusion

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 3 / 24

Rappels sur le DES

Entrées :Message de 64 bits : P = (L0||R0).

Clé de 56 bits K −→ (K1, . . . ,K16) sous clés de 48 bits.

Sorties :Chiffré de 64 bits : C = (L16||R16).

Schéma de FeistelPour 0 ≤ i ≤ 15 calculer :

Li+1 = Ri , Ri+1 = Li ⊕ F (Ri ,Ki+1).

Renvoyer C = (L16||R16).

RemarquePour déchiffrer C il suffit de lui appliquer le DES en inversant l’ordredes sous-clés.

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 4 / 24

Philosophie de l’attaque linéaire

Attaque à clairs connus.Exploite le manque de non-linéarité d’un chiffrement.

Equation

probabiliste

P (

〈P, π〉 ⊕ 〈C, γ〉 ⊕ c = 〈K , κ〉

) =12

+ ε.

〈A,B〉 =⊕

k

Ak .Bk .

π ∈ F642 : masque d’entrée.

γ ∈ F642 : masque de sortie.

κ ∈ F562 : masque de clé.

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 5 / 24

Philosophie de l’attaque linéaire

Attaque à clairs connus.Exploite le manque de non-linéarité d’un chiffrement.

Equation probabiliste

P (〈P, π〉 ⊕ 〈C, γ〉 ⊕ c = 〈K , κ〉) =12

+ ε.

〈A,B〉 =⊕

k

Ak .Bk .

π ∈ F642 : masque d’entrée.

γ ∈ F642 : masque de sortie.

κ ∈ F562 : masque de clé.

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 5 / 24

Attaque directe [Matsui EUROCRYPT’93]

P(〈P, π〉 ⊕ 〈C, γ〉 ⊕ c = 〈K , κ〉) =12

+ ε.

Récupérer N = O(1/ε2) couples de messages.Calculer T le nombre de couples pour lesquels la partie gauchede l’équation vaut 1.Si T > N/2 alors on devine que 〈K , κ〉 = 1, 0 sinon.

RemarqueNe permet de retrouver qu’un bit d’information sur la clé.

Une des motivations pour utiliser plusieurs équations.

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 6 / 24

Attaque par distingueur [Matsui EUROCRYPT’93]

P(〈P, π〉 ⊕ 〈C, γ〉 ⊕ 〈F (P,K1), γ′〉 ⊕ c = 〈K , κ〉) =

12

+ ε.

〈F (P,K1), γ′〉 est en fait une fonction de C et de K̃ , K̃ étant composée

de 6 bits de K .Pour chacune des 26 possibilités pour K̃ calculer T le nombre decouples pour lesquels la partie gauche de l’équation vaut 1.Parmi les T repérer celui qui maximise |T − N/2|.On devine que la clé partielle utilisée est le K̃ correspondant.De plus, si T > N/2 alors on devine que 〈K , κ〉 = 1, 0 sinon.

RemarquePermet de retrouver 7 bits d’information sur la clé.

Impose des contraintes sur l’équation utilisée.

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 7 / 24

Schéma général d’une cryptanalyse linéaire

Cryptanalyse en 3 étapes :Extraction de l’information.Analyse de l’information.Recherche exhaustive (sur les bits restants).

Attaque par distingueurCalcul des compteurs.Tri des compteurs (et donc des candidats pour K̃ ).Recherche des 56− 7 bits non devinés.

On va s’intéresser à la phase d’analyse de l’information en casd’utilisation de plusieurs équations.

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 8 / 24

Plan

1 Cryptanalyse linéaire

2 Modélisation pour l’utilisation de plusieurs équations

3 Utilisation d’algorithmes de décodage

4 Conclusion

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 9 / 24

Etat de l’art

Masques de supports disjoints [Matsui CRYPTO’94] .Plusieurs équations avec le même masque de clé[Kaliski, Robshaw CRYPTO’94] [Choi, Hong, Hong, Lee 2005] .Plusieurs équations avec un masque de clé quelconque[Biryukov, De Cannière, Quisquater CRYPTO’04] .

Problématique de la cryptanalyse linéaire multiple

K −→ (〈K , κj〉)1≤j≤n = K̃ extraction−→ (P(K̃j = 0))1≤j≤n

←−analyse

Notre point de vue : problème de décodage sur un canal gaussien.K̃ ∈ C, code de longueur n et dimension k .

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 10 / 24

Canal à Bruit Blanc Additif Gaussien

Modèle

(Xj)1≤j≤ncanal−→ (Yj)1≤j≤n

Xj = (−1)K̃j , Yj = Xj + Nj , Nj ∼ N (0,1

4Nε2j)

Les Nj sont indépendants.

Soit :Tj =

∑(P,C)

< πj ,P > ⊕ < γj ,C > ⊕bj .

Alors la cryptanalyse correspond à ce modèle si on considère :

Yj =N − 2Tj

2Nεj.

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 11 / 24

Etude du nombre de couples nécessaires

Etude du nombre de candidats plus vraisemblables que la bonne clé.

Junod : 21 attaques par distingueur [Junod SAC’01] :

‘We observe [...] a pessimistic rank expected value.’

Phénomène connu en théorie des codes correcteurs :Avec une probabilité exponentiellement faible la taille de l’ensembleest exponentiellement grande.

La taille de l’ensemble varie entre 1 et 2k alors que le logarithme de lataille varie entre 0 et k .

Il est donc préférable de calculer l’espérance du logarithme de la taille.

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 12 / 24

Solution : Entropie

X et Y deux variables aléatoires discrètes à valeurs dans X et Y.On note p(x)(resp. p(y)) loi de proba de X (resp. Y ).

L’entropie de X correspond au nombre de bits d’incertitude sur X :

H(X ) = −∑x∈X

p(x) log2(p(x))

H(X |Y ) = −∑

x∈X ,y∈Yp(x |y).p(y) log2(p(x |y))

I(X ; Y ) =∑

x∈X ,y∈Yp(x |y).p(y) log2

(p(x |y)

p(x)

)= H(X )−H(X |Y )

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 13 / 24

Borne sur l’entropie

Inégalité essentielle

Si p(K̃|Y) =n∏

j=1

p(K̃j |Yj) :

I(K̃; Y) ≤n∑

j=1

I(K̃j ; Yj) , H(K̃ | Y) ≥ H(K̃)−n∑

j=1

I(K̃j ; Yj).

Application à l’attaque directe

K̃ = (K̃)j =< K, κj > , H(K̃ | Y) ≥ k −n∑

j=1

Cap(σ2j ) , σ2

j =1

4Nε2j

Cap(σ2) =

∫ 1

−1

σ√2π(1− t2)

e−

(1− σ2tanh−1(t))2

2σ2 log2(1 + t)dt .

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 14 / 24

Domaine de pertinence de la borne

0

2

4

6

8

10

12

15 16 17 18 19 20 21

H(K

|Y)

log(N)

Entropie empiriqueBorne th.

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 15 / 24

Entropie et taille de liste

0

20

40

60

80

100

15 16 17 18 19 20

Tau

x de

réu

ssite

log(N)

l = 2^H

l = 1

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 16 / 24

Plan

1 Cryptanalyse linéaire

2 Modélisation pour l’utilisation de plusieurs équations

3 Utilisation d’algorithmes de décodage

4 Conclusion

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 17 / 24

Phase d’analyse

K −→ X =((−1)<K ,κj>

)j

canal−→ Y = (Xj + Nj)jdécodage−→ K ′

Décodage au maximum de vraisemblance

K ′ ∈ C qui maximise P(K = K ′ | Y = Y ).

Algorithme naïf :

Calculer les 2k mots de code.Calculer leurs vraisemblances.Renvoyer le mot le plus vraisemblable.

Algorithme naïf⇔ méthode actuelle de cryptanalyse.

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 18 / 24

Solution : algorithme de décodage

Algorithme de décodage par résonnance stochastique[Valembois 2000] .

AvantagesNe regarde que peu de mots de code ‘typiques’.Efficace (utilisation de tables de hachage).

DésavantagePas de résultat théorique sur sa complexité.

Pour retrouver 23 bits sur 8 tours :Algorithme naïf : 223 mots de codes.Résonnance stochastique : 212 mots de code.

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 19 / 24

Recherche d’approximations

‘Branch and bound Algorithm’.Décodage des Reed-Muller d’ordre 1 [Loidreau, Tavernier] .

Avantages des Reed-MullerFonctionne même en cas de Key Scheduling non linéaire.Pas de ’Hull Effect’.

DésavantagesNécessité d’avoir un bon masque de sortie (désavantage ?).Actuellement : trop long et volumineux pour des équations sur 16tours.

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 20 / 24

Approximations trouvées

0

500

1000

1500

2000

2500

0 1e-08 2e-08 3e-08 4e-08 5e-08 6e-08 7e-08 8e-08 9e-08 1e-07

Nom

bre

d’ap

prox

imat

ions

Biais

?

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 21 / 24

Potentiel de ce type d’attaque Vs distingeurs

0

10

20

30

40

50

40 41 42 43 44 45

Info

rmat

ion

mut

uelle

I(K

;Y)

log(N)

Attaque Matsui (distingueur)MK1 (3714 équations)

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 22 / 24

Plan

1 Cryptanalyse linéaire

2 Modélisation pour l’utilisation de plusieurs équations

3 Utilisation d’algorithmes de décodage

4 Conclusion

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 23 / 24

Conclusion

On a vu un moyen d’estimer la quantité d’information gagnée lorsd’une cryptanalyse.On peut diminuer la complexité de l’attaque directe en utilisantdes techniques de codage.

Perspectives :Pour utiliser cette borne il suffit de pouvoir calculer I(K̃j ; Yj).Regarder d’autres cryptanalyses (statistique, . . . ).Attaquer des formes réduites de candidats AES.Réussir à utiliser la technique des Reed-Muller pour des biais pluspetits.Etudier la complexité de l’algorithme de Valembois.

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 24 / 24

Conclusion

On a vu un moyen d’estimer la quantité d’information gagnée lorsd’une cryptanalyse.On peut diminuer la complexité de l’attaque directe en utilisantdes techniques de codage.

Perspectives :Pour utiliser cette borne il suffit de pouvoir calculer I(K̃j ; Yj).Regarder d’autres cryptanalyses (statistique, . . . ).Attaquer des formes réduites de candidats AES.Réussir à utiliser la technique des Reed-Muller pour des biais pluspetits.Etudier la complexité de l’algorithme de Valembois.

B. Gérard Le Bobinnec - J-P. Tillich (INRIA) Codage et Cryptanalyse linéaire 2008 24 / 24