Baby-step giant-step
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.
- Siga , a on indica la funció sostre.
- Calcular . Armar i ordenar la llista .
- Calcular fins a trobar que siga igual a algun de la llista L.
- Si llavors l'eixida de l'algoritme serà .
Explicació
[editar | editar còdic]¿Per qué la resposta donada per l'algoritme és correcta? Si significa que , d'a on es deduïx que .
¿Per qué l'algoritme sempre dona una resposta? Siga . Dividim n entre m i obtenim n=qm+r, en (per definició del restant) i (perque ). O siga: , d'a on .
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 .
Referències
[editar | editar còdic]- ↑ 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]
- Este artícul conté una traducció derivada de «Baby-step giant-step» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.