• Aucun résultat trouvé

Quelques résultats relatifs à l'article

La première contribution de l'article est la loi admettant une expression unique pour tout point. Cependant, cette solution présente deux inconvénients majeurs. Le premier est que la représentation d'un point nécessite une coordonnée sup- plémentaire par rapport aux implémentations projectives classiques. La seconde réside dans la pénalité de temps de calcul qu'elle entraîne. Cependant, l'avantage d'une telle solution apparaît réellement vis-à-vis des solutions d'équilibrage lorsque l'on est confronté à la pratique. Le fait qu'il n'y ait pas de code inutilement exé- cuté (c'est strictement le même code qui s'exécute pour les deux opérations), et qu'aucune exception ne soit nécessaire pour traiter de cas particuliers rendent la tâche de l'attaquant bien plus ardue. Ainsi, à partir de la même idée, de considérer la courbe elliptique comme intersection de deux quadriques, Marc Joye et Olivier Billet ont amélioré notre résultat dans [18] en donnant une formule uniée plus rapide.

Ces dernières années de nombreux travaux ont fait progresser l'état de l'art en matière d'implémentation sécurisée des opérations sur les courbes elliptiques. La référence [19] comporte un chapitre complet sur ce sujet rédigé par Marc Joye l'un des plus grands contributeurs du domaine. Les grandes voies empruntées sont les suivantes :

 L'unication des formules d'addition et doublement [45, 44] ou la considéra- tion de paramétrisations alternatives [62], [14], [18],

 L'insertion de fausses instructions ou opérations [37], [33]

 L'utilisation d'algorithmes de conception régulière" [89, 81, 18, 60, 47]. Toutes ces approches ainsi que les multiples types d'attaques sur les courbes el- liptiques sont détaillées dans [19]. Nous encourageons fortement le lecteur attentif aux problèmes traités dans cette thèse à se procurer cet ouvrage de référence.

Une autre contribution de l'article est la méthode de produit scalaire par fenêtre aléatoire. Cette méthode utilisée hors du contexte de l'article avec une expression de loi non uniée, peut être attaquée par des méthodes de cryptanalyse comme celle via les chaînes de Markov cachées comme le montrent les articles [67, 116, 119]. Cependant, l'utilisation de cet algorithme dans le contexte de la formule unique, contrairement à ce qu'annonce Colin Walter dans [119], présente une excellente protection. C'est précisément ce que montre Nigel Smart dans [54] en le comparant à l'algorithme de randomisation de l'exposant proposé dans [90].

Un point important que n'aborde pas cet article, le nombre de page étant compté, est le nombre de représentations possibles de l'exposant avec ce découpage en fenêtres de taille aléatoire.

Ce problème revient à compter le nombre N`(k) de partitions de l'intervalle d'entiers [0, k[ (= {0, . . . , k − 1}) en sous-intervalles d'entiers non vides [x1, x2[, [x2, x3[, . . ., [xs, xs+1[ (1 ≤ s ≤ k, 0 = x1 < x2 < · · · < xs+1 = k) de longueur ≤ `. Puis à examiner la possibilité de randomiser ces partitions. L'entier ` étant xé, on notera simplement N(k) au lieu de N`(k).

Examinons les cas où 1 ≤ k ≤ `. Pour k = 1, il n'y a qu'une partition possible, à savoir l'intervalle d'entiers [0, 1[= {0}. Pour k = 2 et si 2 ≤ `, il y a 2 partitions

5.3. QUELQUES RÉSULTATS RELATIFS À L'ARTICLE 85 possibles, à savoir

[0, 2[, {[0, 1[, [1, 2[} .

Pour 3 ≤ k ≤ `, une partition quelconque de [0, k[ provient soit d'une partition de [0, k − s[ suivie de l'intervalle [k − s, k[ avec s = 1, . . . , k − 1, soit de la partition en un seul intervalle, d'où la relation

N (k) = N (k − 1) + N (k − 2) + · · · + N (1) + 1 (5.1) La solution de (5.1) est immédiate :

N (k) = 2k−1 pour tout 1 ≤ k ≤ `. (5.2)

Pour k > `, la partition en un seul intervalle n'est plus permise car l'intervalle à partitioner est trop long. En fait, la longueur des intervalles étant au plus `, le dernier intervalle à droite est au plus de longueur `, d'où la relation de récurrence suivante qui résulte de la même analyse précédente, mais en limitant à ` la longueur des intervalles formant les partitions :

N (k) = N (k − 1) + N (k − 2) + · · · + N (k − `), (k ≥ ` + 1). (5.3) Pour ` = 2, on reconnaît la suite de Fibonnacci classique 1, 2, 3, 5, 8, . . . . Dans le cas général, le polynôme caractéristique de la relation de récurrence (5.3) est

P`(X) = X`− X`−1− · · · − X − 1.

On sait(1) que ce polynôme est irréductible et admet pour racine un nombre de Pisot θ` = θ`,1 c'est-à-dire, θ` > 1 et toutes les autres racines θ`,j, j = 2, . . . , ` de P` sont de module |θ`,j|strictement inférieur à 1. La solution générale de (5.3) est de la forme f : k 7→ ` X j=1 ajθ`,jk (5.4)

les coecients aj étant des nombres complexes arbitraires. La solution f est déter- minée par les valeurs initiales f(1), . . . , f(`). Les coecients de (5.4) s'obtiennent par la résolution du système linéaire

f (k) = ` X j=1 ajθ`,jk , 1 ≤ k ≤ `. Pour ` = 2 on a explicitement θ2,1 = 1+ √ 5 2 = θ, θ2,2 = 1−√5 2 = θ 0 1 = a1θ + a2θ0 2 = a1θ2+ a2θ02 d'où N2(1) = 1 = 1 √ 5(θ 2− θ02 ), N2(2) = 2 = 1 √ 5(θ 3− θ03 ) 1de Bruijn

et de manière générale N2(k) = 1 √ 5(θ k+1− θ0k+1 ).

Dans le cas général, on a N(k) ' aθk (k → ∞) pour une constante (algébrique) a et N(k) ≤ 2k−1 pour tout entier k ≥ 0.

Construction aléatoire d'une partition

Fixons l'entier ` ≥ 2. Il y a donc N(k) partitions de l'intervalle d'entiers [0, k[ en intervalles de longueur au plus égale à `. Nous allons construire une bijection entre l'ensemble des entiers n de l'intervalle [0, N(k)[ et l'ensemble P(k) des partitions de l'intervalle d'entiers [0, k[ en intervalles d'entiers, de longueur au plus égale à `. Pour cela, nous écrivons n dans l'échelle de numération G0 = N (1), G1 = N (2), . . . , Gm = N (m+1). Il admet (algorithme glouton) un unique développement de la forme

n = n0G0+ n1G1+ · · · + nk−2Gk−2+ 0·Gk−1

avec 0 ≤ nj ≤ 1 pour tout 0 ≤ j ≤ k − 2 et nj· · · nj+`−1 6= 1 . . . 1 pour tout 0 ≤ j ≤ k − ` − 1 (k ≥ 3). Le mot binaire n0n1· · · nk−20 est de longueur k et se factorise de manière unique sous la forme

(1a10) · · · (1aj0) · · · (1as0)

avec 0 ≤ aj < `, le mot 10 désignant le mot vide. La partition associée à cette factorisation est alors la suite des intervalles d'entiers [xi, xi+1[ avec x1 = 0 et

xi+1 = X 1≤r≤i

(ar+ 1)

pour 1 ≤ i ≤ s. Notons que xs+1 = k. Soit Pn la partition {[x1, x2[, . . . , [xs, xs+1[} ainsi construite. On a démontré le résultat suivant :

Théorème L'application Π : n 7→ Pn réalise une bijection entre {0, 1, . . . , N (k) − 1} et P(k).

Maintenant, pour construire aléatoirement une partition de l'intervalle d'entiers [0, k[en sous-intervalles de longueur au plus `, il sut de construire un générateur aléatoire de nombres entiers entre 0 et N(k) − 1.

Lorsque l'implémentation n'est pas à des ns de cryptosystème, ou lorsque la multiplication par un scalaire est telle que la dissymétrie dans la loi de groupe ne peut être exploitée, la formule spécialisée du doublement établie dans l'article aboutit à des performances intéressantes grâce au faible nombre de produits sur le corps.

Même lorsque la multiplication de point est parfaitement protégée contre les attaques de type simple, et que les coordonnées sont randomisées, cette opération peut quand même être attaquée par une attaque diérentielle comme l'a montré Louis Goubin dans [52]. Cependant, en pratique cette attaque n'est pas réalisable sur les protocoles utilisés pour la signature car ces derniers imposent un point initial et le multiple du point est bien souvent un secret éphémère renouvelé à chaque exécution de la multiplication de point kP .