Open Pipelao opened 3 years ago
Hola, no soy profe ni ayudante pero creo que en realidad deberia ser s = (k - (x*e)) mod (p-1)
el -1 en p-1 si no me equivoco es por el teorema pequeño de fermat.
Como fue comentado en clases, s = k - x*e
puede ser un número negativo. Si esto sucede no es un problema ya que la función de exponenciación modular sigue estando bien definida. De hecho, con las herramientas vistas en clases ustedes pueden deducir cómo se debe calcular (a**b) mod n
si b
es un número negativo.
Saludos!
Perfecto, gracias @Dunkan1 y @marceloarenassaavedra
Hola @mugartec y @marceloarenassaavedra,
Lo que pasa es que en la función de
firma_Schnorr
al calcular els = k - x*e
este queda negativo, por lo que al pasarlo a la función deexp_mod
no se puede porque es negativo, y al invertir el número para pasarle el exponente positivo, se obtiene unOverflowError
, ¿qué deberíamos hacer en este caso? Porque cuando lo ejecuto con el número negativo la funciónverificar_firma_Schnorr
retornaFalse
.