Diferencia entre revisiones de «Implementación de algoritmos de teoría de números/Exponenciación modular»

Contenido eliminado Contenido añadido
Raulshc (discusión | contribs.)
+página, con contenido traído de eswiki https://es.wikipedia.org/w/index.php?title=Exponenciaci%C3%B3n_modular&oldid=118074299 bajo licencias CC BY-SA 3.0 y GFDL
 
Raulshc (discusión | contribs.)
+sección
Línea 12:
 
Por otro lado, el cálculo del [[Implementación de algoritmos de teoría de números/Logaritmo discreto|logaritmo discreto]] — es decir, la tarea de encontrar el exponente ''e'' si es dado un ''b'', ''c'', y ''m'' — es un problema de los considerados difíciles. Este comportamiento de función unidireccional hace a la exponenciación modular un candidato para su uso en algoritmos criptográficos.
 
== Método de memoria eficiente ==
 
Este requiere <math>O(e)</math> multiplicaciones para completarse. En pseudocódigo, este método puede realizarse de la siguiente manera:
 
'''function''' modular_pow(base, exponent, modulus) '''is'''
'''if''' modulus = 1 '''then''' '''return''' 0 '''then'''
c := 1
'''for''' e_prime = 0 '''to''' exponent-1 '''do'''
c := (c * base) '''mod''' modulus
'''return''' c
 
[[Categoría:Libro:Implementación de algoritmos de teoría de números]]