codage et cryptanalyse linéaire - rocq.inria.fr · codage et cryptanalyse linéaire application au...
TRANSCRIPT
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