Anar al contingut

Baby-step giant-step

De L'Enciclopèdia, la wikipedia en valencià

Plantilla:Complicat En teoria de grups, l'algoritme baby-step giant-step (també conegut com a algoritme de Shanks[1]) és un método per a calcular el logaritmo discret d'un element en un grup. És un algoritme genèric, és dir que funciona per a qualsevol grup, sempre que conegam l'orde del mateix (o una bona cota per a ell).

El problema del logaritmo discret és de fonamental importància per a l'àrea de la criptografia asimètrica . Molts dels sistemes criptográficos més utilisats (per eixemple el sifrat ElGamal) es basen suponent que el logaritmo discret és extremadament difícil de calcular.

L'algoritme

[editar | editar còdic]

Siga un grup G en orde k, g un element de G, h en el subgrup generat per g. L'eixida de l'algoritme serà un x<k tal que gx=h.

  1. Siga m=(k1) , a on   indica la funció sostre.
  2. Calcular α0=eG, α1=gm, α2=g2m,,αm1=g(m1)m. Armar i ordenar la llista L={(1,0);(α1,1),(α2,2),(α3,3),}.
  3. Calcular β0=h,β1=hg1,β2=h(g1)2,... fins a trobar βi que siga igual a algun αj de la llista L.
  4. Si βi=αj llavors l'eixida de l'algoritme serà n=jm+i.

Explicació

[editar | editar còdic]

¿Per qué la resposta donada per l'algoritme és correcta? Si βi=αj significa que gjm=hgi, d'a on es deduïx que gjm+i=h.

¿Per qué l'algoritme sempre dona una resposta? Siga h=gn. Dividim n entre m i obtenim n=qm+r, en 0r<m (per definició del restant) i 0q<m (perque m2k>n). O siga: gqm+r=h, d'a on αq=gqm=grh=βr.

Este algoritme millora el método de "força bruta". Mentres que este últim du un temps d'orde O(k), el "baby-step giant-step" té un orde O(k).

Referències

[editar | editar còdic]
  1. Stinson, Douglas (2006). «Shanks' algorithm», Cryptography: theory and practice, tercera edició (en anglés), Chapman & Hall/ CRC, pp. 236-238. ISBN 978-1-58488-508-5.


Referències

[editar | editar còdic]