Loading [MathJax]/extensions/TeX/mathchoice.js

6 votos

Duplicación de puntos de curva elíptica

Entiendo que para doblar un punto en una curva elíptica y2=x3+ax+b se calcula primero la pendiente de la tangente en el punto (x,y) : λ=3x2+a2y y, a continuación, utilizando las fórmulas de suma de puntos x2=λ22x1 y y2=λ(x1x2)y1 puedes calcular la multiplicación por puntos.

Al intentar calcular 4P con el punto P(0,1) en la curva elíptica y^2 = x^3 + x + 1\mod(7919) una calculadora en línea ( https://andrea.corbellini.name/ecc/interactive/modk-mul.html ) da el valor (4860, 2511) . Reconozco que 4P = 2P + 2P = 2(2P) y así puedo señalar doble P dos veces para obtener 4P . Cuando doblo una vez obtengo el valor (1980, 6928) que es el mismo que el de la calculadora en línea. Sin embargo, cuando vuelvo a duplicar este punto obtengo el valor (7045, 5204) que está mal. Aquí están mis cálculos:

\lambda = \frac{3(1980^2)+1}{2(6928)} = 11761201 \cdot 4399 = 3739\mod(7919)

Dónde 4399 es la inversa modular multiplicativa de 2(6928)

x_2 = 3739^2 - 2(1980) = 7045\mod(7919)

y_2 = 3739(1980 - 7045)-6928 = 5204\mod(7919)

¿Por qué obtengo un valor incorrecto para el punto 4P ?

5voto

user30382 Puntos 48

Sus cálculos son totalmente correctos. La calculadora en línea es ciertamente incorrecta, ya que 2511^2\not\equiv4860^3+4860+1\pmod{7919}. Por qué la calculadora en línea da este resultado incorrecto, no te lo puedo decir. Sólo puedo sugerirle que utilice una herramienta informática más consolidada, como PARI/GP o Sage.

5voto

WhatsUp Puntos 118

Sus cálculos son correctos. Puedes verificarlo en Sage.

Pegue lo siguiente en esta página y haga clic en "Evaluar" para ver el resultado.

E = EllipticCurve(Integers(7919), [1, 1])
P = E([0, 1])

print(E)
print(P)

4*P

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X