• Aucun résultat trouvé

3.4 Randomisation de la multiplication scalaire sur les courbes ellip-

3.4.3 Comparaison de différentes stratégies de randomisation

Réduction interne 2n2M + (4n2− n)A + nSk r Coût total de la 3n2M + (7n2− 2n)A + (n − 1)Si l+ nS1 l multiplication randomisée + nSk r + |ε| 3(n − 1)A + (n − 1)Sj l 

Table 3.7 – Coût théorique de la multiplication randomisée (alg. 33), avec le po-lynôme J = Z × M mod E en paramètre, pour E(X) = Xn− λ, où λ = ±2i+ ε2j, ε ∈ {−1, 0, 1} et φ = 2k.

3.4.3 Comparaison de différentes stratégies de

randomi-sation de l’ECSM sur un exemple de courbe

Le tableau3.6nous a permis de souligner l’importance d’une implémentation efficace de la fonction RandPoly pour la multiplication modulaire randomisée. Nous nous intéressons ici à l’impact de cette fonction dans une application plus concrète. L’objectif est d’étudier l’impact de la randomisation sur le temps d’exécution de la multiplication scalaire, selon différentes stratégies de randomi-sation. Nous avons utilisé une courbe de Weierstrass courte E(Z/pZ), telle que E(Z/pZ) : y2 = x3+ 5, avec p = 2256− 1539. C’est une courbe d’ordre h, où h un nombre premier de taille 256 bits. Les multiplications scalaires ont été faites avec un point de base P ∈ E(Z/pZ) et un scalaire k < h générés aléatoirement. Chaque calcul de kP a été effectué avec l’algorithme 39, qui fait appel aux méthodes DBLU, ZADDU et ZADDC (section 4.1.3.3). Pour les méthodes ZADDU et ZADDC, prendre δ = 3 suffit. Pour la méthode DBLU, on doit prendre δ = 12. Cependant, en effectuant une réduction exacte de coefficients (cf. algorithme

est un choix judicieux ici, car la méthode DBLU n’est appelée qu’une seule fois au début de l’algorithme 39. De plus, cela impose une borne inférieure moins grande sur φ. Avec ce choix, prendre δ = 5 suffit pour assurer la consistance de la séquence d’appels aux méthodes ZADDU, ZADDC et DBLU dans l’algorithme39. Les stratégies de randomisation considérées sont :

• S0 : Multiplication scalaire sans randomisation.

• S1 : Multiplication scalaire avec randomisation uniquement de la repré-sentation du point P , i.e. randomisation de la conversion uniquement. • S2 : Multiplication scalaire avec randomisation de la représentation du

point P ainsi que la randomisation des multiplications modulaires avec un polynôme de randomisation Z fixé durant toute la multiplication scalaire. Cependant, le calcul du polynôme J = Z × M mod E sera fait pendant chaque multiplication modulaire. Cette stratégie servira uniquement à re-lever l’impact de la fonction RandPoly sur les performances de l’ECSM. Elle n’a autrement aucun intérêt.

• S3 : Multiplication scalaire avec randomisation de la représentation du point P ainsi que la randomisation des multiplications modulaires. Pour cette stratégie, nous générons aléatoirement un polynôme de ran-domisation Z à chaque tour de boucle, puis calculons le polynôme J = Z ×M mod E. Ensuite, pour le tour de boucle concerné, ce polynôme J sera utilisé pour randomiser les multiplications, avec l’algorithme33. La stratégie S3 correspond à la seconde stratégie présentée dans la section

3.4.2, avec ici Z généré à chaque tour de boucle.

• S4 : Multiplication scalaire avec randomisation de la représentation du point P ainsi que la randomisation des multiplications modulaires, avec un polynôme de randomisation Z généré aléatoirement à chaque multipli-cation modulaire. En d’autres termes, c’est l’algorithme30qui sera utilisé pour toutes les multiplications modulaires. La stratégie S4 est la première stratégie présentée dans la section 3.4.2.

Afin de souligner l’importance du paramètre δ pour la multiplication scalaire, nous distinguons, en plus des stratégies de randomisation mentionnées plus haut, le cas δ = 0 et le cas δ = 5 pour le calcul de kP . Pour rappel, δ = 0 signifie qu’une réduction exacte de coefficients est toujours effectuée après une (ou plusieurs) addition(s) avant d’effectuer une multiplication et δ = 5 signifie qu’on a la possibilité d’effectuer 5 additions sans avoir à effectuer de réduction de coefficients avant une multiplication.

Les implémentations ont été faites en langage C, avec la machine utilisée pour les tests présentés dans la section2.5.3. Les paramètres des AMNS utilisés ici sont donnés dans l’annexeC.2. Selon la valeur de δ, nous avons, pour chacune des stratégies de randomisation, calculé une moyenne de 210 multiplications scalaires.

Le tableau3.8 donne les ratios entre les différentes stratégies de randomisa-tion, selon la valeur de δ. Les ratios S3/S2 et S2/S1 n’apparaissent pas, car ils n’ont aucune signification particulière. Dans ce tableau, on peut observer que,

pour chaque type de ratio, le ratio pour δ = 0 est plus petit que celui pour δ = 5. La raison est qu’il est nécessaire, lors du calcul de kP , d’effectuer un grand nombre de réductions exactes de coefficients dans chacune des méthodes ZADDU, ZADDC et DBLU, lorsque δ = 0. La réduction exacte de coefficients, qui n’est pas randomisée, est plus coûteuse qu’une multiplication modulaire non randomisée dans l’AMNS (voir section2.3.5). Ainsi, ces nombreuses réductions exactes de coefficients “cachent” le surcoût de la randomisation. Lorsque δ = 5, seulement deux réductions exactes de coefficients sont effectuées dans tout le calcul de kP afin de réduire la valeur de δ à 3 pour la méthode DBLU, comme expliqué plus haut. Ainsi, lorsque δ = 5, le surcoût de la randomisation est plus visible dans les ratios.

Considérons donc le cas δ = 5 qui est le mieux adapté pour relever l’effet des différentes stratégies de randomisation sur les performances de la multipli-cation scalaire. Dans le tableau3.8, deux ratios permettent d’estimer l’impact de la fonction RandPoly. Le premier est le ratio S2/S0 qui correspond au ratio entre le temps d’exécution de l’ECSM randomisée sans le coût des ap-pels à RandPoly (car Z fixé) et celui de l’ECSM non randomisée. Le second est le ratio S4/S2 qui donne l’impact des appels à RandPoly sur les perfor-mances de l’ECSM randomisée selon la première stratégie présentée dans la section 3.4.2. Il est intéressant de noter que les ratios S2/S0 et S4/S2 sont respectivement assez proches des ratios T1/T0 et T2/T1 du tableau 3.6; ce qui est assez logique. Car, une fois la conversion du point de base P effectuée, les opérations arithmétiques les plus coûteuses lors du calcul de kP (i.e. le carré et la multiplication modulaires) sont celles qui sont randomisées ici.

Les performances globales relatives des différentes stratégies de randomisa-tion peuvent être observées avec les autres ratios (ici également avec δ = 5). Le ratio S1/S0 compare l’ECSM avec randomisation de la conversion unique-ment à l’ECSM non randomisée. Le ratio S4/S3 est une comparaison des deux stratégies présentées dans la section 3.4.2. On peut observer que la première (qui conduit à une randomisation plus importante) est 88% plus lente que la seconde. Notons que les appels à la fonction RandPoly participent beaucoup à cette différence de performances. Une implémentation efficace de cette fonction devrait réduire l’écart. Le ratio S4/S0 compare l’ECSM randomisée selon la première stratégie de la section3.4.2à l’ECSM non randomisée. On peut noter que ce ratio est assez proche du ratio T2/T0 du tableau 3.6; ce qui est assez logique, pour les raisons mentionnées dans le paragraphe précédent. Le ratio S3/S0 compare l’ECSM randomisée selon la seconde stratégie de la section

3.4.2 à l’ECSM non randomisée. Pour chaque calcul de kP à effectuer, nous avons généré aléatoirement un scalaire k de taille 256 bits. Ainsi, pour la stra-tégie S3, 258 appels à la fonction RandPoly ont été faits (2 pour la conversion randomisée des coordonnées de P et 256 pour la multiplication scalaire). Donc, 258 calculs du polynôme J = Z × M mod E ont également été faits. Malgré ces opérations, on peut remarquer avec le ratio S3/S0 que l’ECSM selon la straté-gie S3 n’est pas exagérément plus lente que l’ECSM sans randomisation. Cela vient du fait que l’algorithme 33 (utilisé pour la stratégie S3) a un coût très proche de celui de l’algorithme19 (utilisé pour la stratégie S0) ; voir tableaux

2.1 et 3.7. Les ratios S3/S1 et S4/S1 s’interprètent facilement à partir des ratios S3/S0 et S4/S0 respectivement. Ils sont par ailleurs assez proches.

type de ratio S1/S0 S2/S0 S3/S0 S3/S1 ratio (pour δ = 0) 1.03 1.29 1.19 1.16 ratio (pour δ = 5) 1.04 1.54 1.30 1.24 type de ratio S4/S0 S4/S1 S4/S2 S4/S3 ratio (pour δ = 0) 1.61 1.56 1.25 1.35 ratio (pour δ = 5) 2.43 2.33 1.58 1.88

Table 3.8 – Exemple de ratios entre les temps d’exécution moyens des diffé-rentes stratégies de randomisation, selon la valeur de δ.

Rappelons que l’efficacité de l’AMNS dépend en grande partie de la valeur du paramètre n. Plus n est petit, mieux c’est (du moins théoriquement, voir tableaux 2.1, 3.3 et 3.4). Dans l’annexe C.2, on peut observer que pour δ = 0, les AMNS générés ont le paramètre n égal à 5, alors que pour δ = 5, les AMNS générés ont le paramètre n égal à 6. Cependant, le tableau3.9montre que, pour une même stratégie de randomisation, la multiplication scalaire avec l’AMNS ayant δ = 5 est beaucoup plus efficace que celle avec l’AMNS ayant δ = 0. Cela vient des nombreuses réductions exactes de coefficients effectuées lorsque δ = 0, comme expliqué plus haut.

type de ratio S0, avec δ=5S0, avec δ=0 S1, avec δ=5S1, avec δ=0 S2, avec δ=5S2, avec δ=0 S3, avec δ=5S3, avec δ=0 S4, avec δ=5S4, avec δ=0

ratio 0.44 0.45 0.52 0.48 0.67

Table 3.9 – Exemple de ratios entre les temps d’exécution moyens des multi-plications scalaires pour δ = 0 et δ = 5, par stratégie de randomisation.

3.4.4 Spécificité de l’AMNS pour la protection de l’ECSM