Chaˆınes d`additions euclidiennes et logarithme discret

publicité
Chaı̂nes d’additions euclidiennes et logarithme discret
F. Herbaut ([email protected])
IMATH, Université de Nice, France
N. Méloni ([email protected])
Department of Electrical and Computer Engineering, Université de Waterloo, Canada
P. Véron ([email protected])
IMATH, Université du Sud Toulon-Var, France
1. Introduction
En cryptographie, la principale opération sur une courbe elliptique est le calcul de kP où k
est un entier et P un point de la courbe. De nombreuses méthodes ont été développées pour
améliorer la vitesse de cette opération [3, 4, 5]. Cependant la plupart d’entre elles ne tiennent
pas compte des attaques de type SPA. Récemment, un nouvel algorithme efficace pour le calcul
de kP et résistant à ces attaques SPA a été développé [2]. Ce dernier repose sur l’existence d’une
chaı̂ne d’addition euclidienne suffisamment “courte” calculant l’entier k.
DEFINITION 1. Une chaı̂ne d’addition euclidienne (CAE) de longueur s est une suite (bi )i=1...s
avec bi ∈ {0, 1}. L’entier k associé à cette chaı̂ne est obtenu en considérant la suite (vi , ui )i=0..s
telle que v0 = 1, u0 = 2 et ∀i > 1, (vi , ui ) = (vi−1 , vi−1 + ui−1 ) si bi = 1 (petit pas), ou
(vi , ui ) = (ui−1 , vi−1 + ui−1 ) si bi = 0 (grand pas). L’entier k vaut vs + us .
Exemple : la suite (10110) calcule l’entier 23 de la façon suivante : (1, 2) → (1, 3) → (3, 4) →
(3, 7) → (3, 10) → (10, 13) → 23.
Cependant il subsiste essentiellement deux problèmes dans la méthode décrite dans [2] :
1. tout entier k de 160 bits n’admet pas forcément de CAE de taille voulue (environ 260 bits
pour que l’algorithme décrit dans [2] soit performant),
2. la recherche d’une CAE de petite taille nécessite de nombreux calculs ce qui pénalise les
performances générales de l’algorithme.
Dans ce papier nous abordons le problème sous un autre angle. Nous proposons de remplacer
dans tout protocole la génération d’un entier aléatoire k pour le calcul de kP par la génération
d’une CAE aléatoire ce qui permet d’utiliser directement l’algorithme proposé dans [2]. De ce
fait les points obtenus sont de la forme kP où k appartient à un certain sous-ensemble de Zp ce
qui nous amène à considérer le problème du logarithme discret restreint (CDLP) :
Données
: p un entier premier, g un générateur d’un groupe G, S ⊂ Zp , y ∈ G.
Problème : Trouver x ∈ S tel que y = gx .
p
D’après [1] la complexité de cette recherche nécessite Ω( |S|) opérations de groupe.
2. CAE et CDLP
L’idée d’utiliser des sous-ensembles d’entiers particuliers pour lesquels le calcul de l’exponentiation
est plus rapide en moyenne a également été proposée dans [6, 7]. Dans notre cas, nous considérons
les sous-ensembles d’entiers obtenus à partir de CAE devant satisfaire les contraintes suivantes :
1. Le nombre d’entiers générés doit être suffisamment grand (de l’ordre de 2160 ).
2. Les entiers obtenus doivent être bien distribués par rapport au tirage des CAE. En effet des
CAE distinctes peuvent engendrer un même point Q via l’algorithme [2] (exemple : 1000110,
1001001, 1011000, 1100100 aboutissent au même point 41P ).
2
3. La taille s des CAE utilisées doit permettre d’optimiser l’algorithme proposé dans [2] en
tenant compte du fait que ce dernier nécessite (5s − 8) multiplications et 2s calculs de carrés
dans Zp , soit 6.6s multiplications en considérant qu’un calcul de carré correspond à 0.8
multiplication.
Concernant le dernier point étant donné que l’algorithme classique double-and-add nécessite
(13.2ℓ − 7.2) multiplications (où ℓ est la taille de l’exposant), une estimation rapide impose
l’utilisation de chaı̂nes d’au plus 320 bits pour un meilleur temps d’exécution.
Pour la suite, on notera Cn l’ensemble des CAE de longueur n et χ l’application de Cn de N
qui à toute chaı̂ne c de longueur n calcule (via l’algorithme de la définition 1) l’entier associé
χ(c).
3. Une première famille de CAE
Si de façon générale, un entier k admet plusieurs antécédents par χ, la proposition suivante
permet d’assurer l’injectivité d’une restriction de χ.
∗ le sous-ensemble de C
PROPOSITION 1. Soit C2n
2n constitué des CAE dont les n premiers
∗ est injective.
éléments sont nuls. La restriction de χ à C2n
Etant donné que l’on souhaite utiliser des CAE d’au plus 320 bits et obtenir au moins 2160
∗ . Tirer aléatoirement une CAE
entiers distincts, il est alors naturel de considérer l’ensemble C320
dans cet ensemble revient à chosir une suite aléatoire de 160 bits à laquelle on concatènera 160
zéros.
PROPOSITION 2. Soit Fi le ième Fibonacci,
∗
χ(C2n
) ⊂ [(n + 1)Fn+2 + Fn+3 , F2n+4 ]
les deux extrémités étant respectivement atteintes en (0 . . . 01 . . . 1) et (0 . . . 0).
Pour n = 160, cette famille nous permet donc de calculer 2160 points distincts dans l’intervalle
]2118 , 2224 [ avec la même probabilité. Chaque point est de la forme kP avec k un entier de 224
bits. Cette méthode peut donc être utilisée dans les standards ANSI X9.63 ou NIST [8]. Le calcul
d’un point kP nécessite 2112 multiplications modulaires alors qu’avec la méthode standard on
obtient 2949 multiplications et de plus l’algorithme utilisé résiste aux attaques SPA.
Remarque : Toutes les chaı̂nes utilisées débutant par une série de 160 zéros, on peut en précalculant
les deux points F162 P et F163 P diviser par deux le nombre de multiplications nécessaires pour
le calcul de kP .
4. Une deuxième famille de CAE
Parmi les autres standards décrits dans [8] figure le cas où les entiers k sont de taille 160. Pour
∗ , ce qui ne
obtenir de tels entiers il faudrait se placer avec la méthode précédente dans C230
115
permet de calculer que 2
points distincts. Il faut donc considérer une autre famille. Notons
Cℓ,p les CAE de longueur ℓ et de poids de Hamming p < ℓ/2.
PROPOSITION 3. Soit Fi le ième Fibonacci, αp =
√
√
(1+ 2)p +(1− 2)p
,
2
βp =
√
√
(1+ 2)p −(1− 2)p
√
2 2
(i) χ(Cℓ,p ) ⊂ [Fℓ−p+4 + pFℓ−p+2 , Fℓ−2p+4 (αp + βp ) + βp Fℓ−2p+2 ],
(ii) la borne inférieure est atteinte uniquement en (1 . . . 10 . . . 0) et (0 . . . 01 . . . 1),
(iii) la borne supérieure est atteinte uniquement en (0101 . . . 010 . . . 0) et (0 . . . 010 . . . 10).
D’après cette proposition en choisissant p = 81 et ℓ = 243 les CAE générées correspondent
à des entiers de l’intervalle ]2119 , 2161 [. Le calcul d’un point kP nécessite 1604 multiplications
modulaires au lieu de 2105 avec la méthode standard. L’étude de la répartition des entiers u
obtenus semble être un problème difficile qui peut être reformulé de la façon suivante (pour
ℓ = 3p) :
3
Soit u un entier fixé et n un entier, combien existe-t-il d’entiers v < u tels que :
.
(u, v) = 1,
.
le développement en fraction continue de u/v comporte exactement 2p + 2 quotients qi tels
P
que q1 = 1 et 2p+2
i=2 qi = 3p + 2.
Les résultats numériques semblent montrer qu’on obtient rapidement plus de 22p entiers
distincts dans le cas où ℓ = 3p (cf. table ci-dessous).
ℓ
15
18
21
24
27
30
33
36
39
2ℓ
|χ(Cℓ,ℓ/3 )| |χ(Cℓ,ℓ/3 )|/2 3
807
0, 79
3843
0, 94
17834
1, 09
79217
1, 21
343175
1, 31
1448055
1, 38
6000793
1, 43
24519247
1, 46
99100995
1, 48
Bibliographie
1.
2.
3.
4.
5.
6.
7.
8.
I. Mironov, A. Mityagin, K. Nissim, Hard Instances of the Constrained Discrete Logarithm Problem, 7th
Algorithmic Number Theory Symposium, LNCS 4076, pp. 582–598, 2006,
N.Meloni, New Point Addition Formulae for ECC Applications, Arithmetic of Finite Fields, WAIFI 2007,
LNCS 4547, pp. 189–201,
V. Dimitrov and L. Imbert and P. K. Mishra, The Double-Base Number System and its Application to
Elliptic Curve Cryptography, Mathematics of Computations 77, 2008, pp. 10751104,
P. Montgomery, Speeding the Pollard and Elliptic Curve Methods of Factorization, Mathematics of
Computation 48, 1987, pp. 243–264,
D. J. Bernstein and T. Lange, Analysis and optimization of elliptic-curve single-scalar multiplication, Finite
fields and applications: proceedings of Fq8 2007, LNCS 4833, pp. 29–50,
Y. Yacobi, Fast exponentiation using data compression, SIAM J. Comput., 28(2):700–703, 1998,
J. Hoffstein and J. H. Silverman, Random small Hamming weight products with applications to cryptography,
Discrete Apllied Mathematics, 130(1):37–49, 2003,
Certicom Research, SEC 2: Recommended Elliptic Curve Domain Parameters, Standards for efficient
cryptography, Sep. 2000,
Téléchargement