Calculadora de pontos de curva elíptica
Some pontos de curva elíptica y²=x³+ax+b mod p. Exemplo: a=2, p=17, P(5,1), Q(6,3) → (10,6). Ferramenta educativa.
Começar a usar
O que faz esta calculadora?
Esta ferramenta soma dois pontos afins sobre uma curva elíptica de forma curta de Weierstrass, definida por y² = x³ + ax + b módulo um número primo p. É uma operação fundamental em criptografia de curva elíptica, mas aqui é usada apenas para fins educativos e de verificação de exemplos pequenos.
Por exemplo, com os valores predefinidos a = 2, p = 17, P = (5,1) e Q = (6,3), a soma é P + Q = (10,6). Se usar P = (5,1) e Q = (5,16), o resultado é o ponto no infinito, porque têm a mesma coordenada x e coordenadas y opostas (inversos verticais).
Parâmetros e processamento
Os parâmetros aceites são: coeficiente a (inteiro), primo p (ímpar, entre 3 e 200000) e coordenadas inteiras para P e Q. Não existe campo direto para b; b é calculado a partir de P, e Q tem de estar na mesma curva. As coordenadas são normalizadas módulo p. Os inversos modulares são obtidos pelo algoritmo de Euclides estendido, não por pesquisa exaustiva.
Limitações importantes
Esta página efetua apenas uma adição de pontos. Não inclui multiplicação escalar, curvas com nome, chaves comprimidas, coordenadas projetivas, assinaturas ou validação de chaves criptográficas. O limite superior de p (200000) garante que a aritmética cúbica permanece dentro do intervalo seguro de inteiros em JavaScript e limita a verificação de primalidade. Módulos compostos ou pares, e pontos que não partilham a mesma curva, são rejeitados.
Perguntas frequentes
O que acontece se P e Q forem o mesmo ponto?
Se P = Q, a calculadora usa a fórmula de duplicação: inclinação = (3xP² + a) / (2yP) módulo p. O resultado é 2P. Se yP = 0, a tangente é vertical e o resultado é o ponto no infinito.
Porque é que o resultado às vezes é o ponto no infinito?
Quando dois pontos têm a mesma coordenada x e coordenadas y opostas (y e -y módulo p), a reta que os une é vertical e não interseta a curva num terceiro ponto afim. Nesse caso, a soma é definida como o ponto no infinito, representado aqui como uma mensagem especial.
Posso usar esta calculadora para gerar chaves criptográficas?
Não. Esta ferramenta é apenas para aprendizagem e verificação de exemplos pequenos. Não é adequada para criptografia de produção, pois não implementa multiplicação escalar, curvas seguras ou validação de chaves. Os cálculos são locais e os dados não saem do navegador, mas não devem ser usados para fins de segurança real.
Lista de verificação antes de calcular
- Confirme que p é um número primo ímpar entre 3 e 200000.
- Verifique que as coordenadas de P e Q são inteiros.
- Lembre-se de que b é derivado de P; Q tem de pertencer à mesma curva.
- Se P = Q e yP = 0, o resultado é o ponto no infinito.
- Interprete o resultado como coordenadas módulo p.
Introduza inteiros seguros separados por vírgulas ou espaços; não são permitidos decimais. -9007199254740991 ≤ a, xP, yP, xQ, yQ ≤ 9007199254740991
a: 2; p: 17; P: 5,1; Q: 6,3; P + Q = (10,6)
4a³ + 27b² ≡ 0 (mod p): A curva é singular; a adição de pontos elípticos não é suportada.
O processamento é feito localmente no navegador.