- Baby-step giant-step
-
En théorie des groupes, une branche des mathématiques, l'algorithme baby-step giant-step est une série d'étapes bien définies pour calculer le logarithme discret. Le problème du logarithme discret, sur lequel se basent la plupart des cryptosystèmes modernes, est fondamental dans le domaine de la cryptographie à clé publique.
Sommaire
Théorie
Soit G un groupe cyclique de générateur α d'ordre n. Le problème de logarithme discret revient à chercher, pour β dans G, un entier x tel que :
L'algorithme baby-step giant-step est basé sur la réécriture de x en le divisant sur m ainsi x = im + j, avec et et . Donc, on a:
L'algorithme
Entrée: un groupe cyclique G d'ordre n, ayant un générateur α et un élément β.
Sortie: la valeur x satisfait αx = β.
- m ← [√n]+1
- Pour tout j tel que 0 ≤ j < m: //Baby-Step
- Calculer αj et sauvegarder la paire (j, αj) dans une table de hashage.
- Calculer α−m.
- γ ← β. (Faire γ = β)
- Pour i = 0 à (m − 1): //Giant-Step
- Verifier si γ est le second composant (αj) d'une paire quelconque dans la table.
- Si oui, retourner im + j.
- Si non , γ ← γ • α−m.
Références
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Baby-step giant-step » (voir la liste des auteurs), dont les références étaient :
- (en) H. Cohen, A Course In Computational Algebraic Number Theory, Springer-Verlag, 1996 (ISBN 0-387-55640-0)
- (en) D. Shanks, « Class number, a theory of factorization and genera », dans Proc. Symp. Pure Math. 20, 1971, p. 415-440.
- (en) A. Stein et E. Teske, « Optimized baby step-giant step methods », dans Journal of the Ramanujan Mathematical Society 20 (2005), no. 1, 1–32.
- (en) A. V. Sutherland, Order computations in generic groups, PhD thesis, M.I.T., 2007.
- (en) D. C. Terr, « A modification of Shanks’ baby-step giant-step algorithm », dans Mathematics of Computation 69 (2000), 767–773.
Lien externe
La Naissance de la Cryptographie Asymétrique, cours de Guénaël Renault à l'UPMC
Wikimedia Foundation. 2010.