Calculadora de puntos de curva elíptica
Suma dos puntos en una curva elíptica y²=x³+ax+b módulo p. Ejemplo: P(5,1)+Q(6,3) con p=17 da (10,6). El procesamiento se realiza localmente en tu navegador.
Empezar a usar
Características y ejemplo verificado
Esta herramienta suma dos puntos afines sobre una curva de Weierstrass corta y² = x³ + ax + b módulo un primo p. No hay campo para b: se deriva del punto P, y Q debe pertenecer a la misma curva.
Ejemplo concreto
Con los valores predeterminados P(5,1), Q(6,3), a=2, p=17, la suma da P+Q = (10,6). Si ingresa P(5,1) y Q(5,16), el resultado es el punto en el infinito porque tienen la misma x y coordenadas y opuestas (inversos verticales).
Procesamiento
Las coordenadas se normalizan módulo p. Para puntos distintos se usa la pendiente m = (yQ - yP) / (xQ - xP) mod p; para duplicar un punto se usa m = (3xP² + a) / (2yP) mod p. Los inversos modulares se calculan con el algoritmo de Euclides extendido. La coordenada x del resultado es xR = m² - xP - xQ y la y es yR = m(xP - xR) - yP, todo módulo p.
Limitaciones
- El módulo debe ser primo; se rechazan compuestos o pares.
- Los puntos deben estar en la curva derivada de P; de lo contrario se rechaza la operación.
- El límite de p (200000) mantiene los cálculos dentro del rango seguro de enteros de JavaScript.
- Esta herramienta solo realiza una suma; no incluye multiplicación escalar, curvas nombradas, claves comprimidas, coordenadas proyectivas ni operaciones criptográficas.
Preguntas frecuentes
¿Qué pasa si ingreso un módulo que no es primo?
La calculadora rechaza el valor y le pide que ingrese un número primo. No se realizan cálculos con módulos compuestos.
¿Cómo sé si mis puntos están en la curva?
La herramienta deriva b a partir de P y verifica que Q satisfaga la misma ecuación. Si no es así, muestra un error indicando que Q no pertenece a la curva.
¿Puedo usar esta calculadora para criptografía real?
No. Esta es una herramienta educativa para campos finitos pequeños. No debe usarse para generar claves o firmas seguras.
El procesamiento se realiza localmente en tu navegador.