• Aucun résultat trouvé

La formule de la probabilité de succès

Complexité en données et probabilité de succès des attaques statistiques

5.4 Probabilité de succès

5.4.2 La formule de la probabilité de succès

En 2008, Selçuk dans [Sel08], a utilisé une approximation gaussienne de la loi bino-miale pour exhiber une formule pour la probabilité de succès d’une attaque statistique. Il s’est en particulier intéressé au cas de la cryptanalyse linéaire et de la cryptanalyse différentielle. L’approximation gaussienne étant bonne dans le cas de la cryptanalyse li-néaire, son approximation de la probabilité de succès est plutôt bonne dans ce cas. En revanche, dans le cas de la cryptanalyse différentielle, comme l’approximation normale de la loi binomiale n’est pas bonne, la formule exhibée pour la probabilité de succès n’est pas très bonne comme Ali Aydin Selçuk le dit lui même. Ici nous exhibons une formule générale de la probabilité de succès d’une cryptanalyse statistique, laquelle ne dépend pas d’une approximation de la loi binomiale. Nous utilisons une approximation seulement pour le calcul du terme d’erreur. Pour trouver sa formule de probabilité de succès, Selçuk suppose que la distribution de la ℓème statistique d’ordre (ℓ est la taille de la liste des clés gardées) tend vers une loi normale. Dans notre analyse, nous utilisons directement le fait que la ℓ-ème statistique d’ordre suit une loi bêta.

Le résultat que nous avons trouvé est basé sur le fait que la loi bêta est concentrée autour du point

t0 def= 2

n− ℓ − 1 2n− 2 .

Nous avons besoin de définir quelques notions avant de donner le résultat principal de cette section.

Définition 5.6. Soit G la fonction de répartition de la loi binomiale avec paramètre (N, p). Cette fonction est définie par la formule suivante

G(x) def= X i≤x N i  pi(1− p)N −i. Nous définissons l’inverse de cette fonction G−1 par

G−1(x) = min{t|G(t) ≥ x}.

Remarque 5.2. Comme la loi binomiale n’est pas continue il est facile de voir que G−1(G(x)) peut être différent de x. Soit g la densité de la loi binomiale de paramètre (N, p). La définition de G−1 implique que

G−1(x) X i=0 g(x)≥ x et G−1(x)−1 X i=0 g(x) < x. En conséquence, nous pouvons borner le terme d’erreur par

G(G−1(x))− x < g(G−1(x)). (5.21)

La preuve du théoreme suivant est donnée dans la section 5.4.3.

Théorème 5.3. Soit PS la probabilité de succès d’une attaque statistique qui garde ℓ clés sur un total de 2n. Soit N le nombre d’échantillons que nous avons à notre disposition.

96 5.4 Probabilité de succès La probabilité que le compteur correspondant à la bonne clé soit à la ième place dans la liste des clés gardées est notée par g(i) :

g(i) =N i



pi(1− p)N −i.

Soit G la fonction de répartition des compteurs correspondants aux autres clés. Nous notons par G−1 l’inverse de cette fonction définie dans la définition 5.6. Soit t0 def= 1− ℓ−1

2n−2, le point de concentration de la loi bêta. Et soit

B def= G−1(t0), (5.22) δ def= B−1 X i=0 g(i), (5.23) θ def= p p p(N + 1)− B B− p(N + 1). (5.24) Si t03 4 alors PS = 1− δ + O δ(1 + θ) r ln(ℓ/δ2) ℓ + 1 ℓ2 + 1 n ! .

Les hypothèses faites au début du théorème précédent sont nécessaires afin de prouver le théorème. Pour les cryptanalyses usuelles, ces conditions sont toujours respectées. Le paragraphe suivant explique plus en détail ce que signifie chacune de ces conditions. Discussion sur les conditions du théorème 5.3

Les valeurs prises par θ : Pour les tranches de paramètres que nous utilisons dans le cas des cryptanalyses statistiques, θ est petit. Il est difficile d’obtenir la vraie valeur de cette constante. Celle-ci dépend de l’ordre de grandeur des paramètres p et p. Nous avons calculé l’ordre de grandeur de cette valeur pour les cryptanalyses citées dans les chapitres 2 et 3. Nous avons remarqué que la valeur de θ est la plus grande quand on se place dans le cas de la cryptanalyse linéaire (p = 1/2 et p = p + ε). Nous détaillons donc rapidement le calcul permettant de nous donner l’ordre de grandeur de cette valeur.

Dans le cas de la cryptanalyse linéaire, l’approximation gaussienne de la loi binomiale est très bonne. Nous allons donc l’utiliser pour obtenir l’ordre de grandeur de θ. Soit Φ la fonction de répartition de la loi normale :

Φ(x)def= Z x e−u2/2 √ 2π du.

En utilisant les notations du théorème 5.3 et par l’équation (5.22) il peut être vérifié que

B ≈ pN + Φ−1(λ)pN p(1− p).

À partir de la définition de δ donnée dans l’équation (5.23), on a Φ−1(λ) ∼ λ→0+

p

−2 ln(λ). De la même façon

On a aussi Φ−1(δ) ∼ λ→0+

p

−2 ln(δ). En rassemblant toutes ces remarques nous obtenons θ ≈ p p ypN p(1− p) xpN p(1− p) s − ln(δ) − ln(λ).

Pour obtenir cette formule nous avons aussi utilisé le fait que p ≈ p ( ce qui est vrai dans le cas de la cryptanalyse linéaire).

À propos de δ : Nous pouvons remarquer que δ peut être vu comme une approximation de 1 − PS et donc que cette valeur est souvent de l’ordre de 0.05.

À propos de t0 : Pour ne pas avoir une complexité en temps trop grande nous avons besoin que 1 − t0

2n reste petit, par exemple 10−5. Dans le cas où 1 − t0 = 10−5 et δ = 0.05 on obtient alors θ ≈ 0.5.

Condition non restrictive : Dans le théorème 5.3 nous avons supposé que ℓ− 1

2n− 2 1

4. (5.25)

Cette inégalité signifie que nous gardons au plus 1/4 des clés. Dans la plupart des attaques statistiques connues on accepte mois d’un quart des clés donc cette condi-tion n’est pas restrictive.

Expression du terme d’erreur dans la formule de la probabilité de succès Dans le théorème 5.3 nous avons exhibé le terme d’erreur de notre formule par rapport à la vraie valeur de la probabilité de succès. Ce terme d’erreur est égal à

PS

N X i=G−1(1−2n−2ℓ−1 )

g(i).

Ce terme d’erreur décroît quand 2n et ℓ tendent vers l’infini mais est aussi décroissant avec δ. Rappelons que δ ≈ 1 − PS, donc, le terme d’erreur induit par notre formule décroît quand la probabilité de succès augmente.

Lien avec la complexité en données

Dans la section 5.3 nous avons utilisé une autre méthode pour calculer la complexité en données d’une attaque statistique. En utilisant des outils venant du modèle test d’hy-pothèses (voir section 5.3.1) nous avons extrait une formule de la complexité en données qui dépend de la probabilité de non-détection α et de la probabilité de fausse alarme β. Cette dernière correspond à la probabilité d’accepter un mauvais candidat dans la liste L des clés gardées. Dans ce cas il semble naturel de prendre β = ℓ/2n. D’autre part, α correspond à la probabilité de rejeter la bonne sous-clé et α peut être choisi de telle sorte que α = 1 −PS. Si nous utilisons l’équation (5.10) pour exprimer α en fonction de β, nous obtenons α = G−1(1−β)−1 X i=0 g(i).

98 5.4 Probabilité de succès En utilisant les valeurs suggérées pour les probabilités d’erreurs α et β, nous obtenons

PS = 1−

G−1(1−ℓ/n)−1 X

i=0

g(i) ce qui correspond au résultat donné par le théorème 5.3.