Главная / Калькуляторы / Онлайн-инструмент операций с точками эллиптической кривой
Бесплатные онлайн-инструменты

Онлайн-инструмент операций с точками эллиптической кривой

Сложите две точки на эллиптической кривой по модулю p. Пример: p=17, a=2, P(5,1), Q(6,3) даёт (10,6). Учебный инструмент. Обработка выполняется локально в ва…

Начать работу

Возможности и ограничения

Инструмент складывает две точки на эллиптической кривой в форме Вейерштрасса y² = x³ + ax + b над полем F_p. Параметр b не вводится напрямую: он вычисляется из координат точки P, а точка Q должна лежать на той же кривой. Если точки имеют одинаковую x-координату и противоположные y-координаты, результатом будет точка на бесконечности (нейтральный элемент).

Проверенный пример

Для p=17, a=2, P=(5,1), Q=(6,3) сумма P+Q равна (10,6). Этот пример можно использовать для проверки работы калькулятора.

Алгоритм

Для различных точек наклон вычисляется как (yQ - yP) / (xQ - xP) по модулю p, для удвоения — как (3xP² + a) / (2yP). Обратные элементы находятся с помощью расширенного алгоритма Евклида. Координаты результата: x = slope² - xP - xQ, y = slope(xP - xR) - yP.

Ограничения

  • Поддерживается только сложение двух точек; нет скалярного умножения, именованных кривых или операций с ключами.
  • Модуль p должен быть простым и не превышать 200000, чтобы вычисления оставались в безопасном диапазоне целых чисел JavaScript.
  • Инструмент не предназначен для криптографических целей и не обеспечивает безопасность ключей.

Часто задаваемые вопросы

Что произойдёт, если точки P и Q не лежат на одной кривой?

Калькулятор проверит, что точка Q удовлетворяет уравнению кривой, заданной точкой P. Если это не так, будет выведено сообщение об ошибке.

Почему результат может быть точкой на бесконечности?

Если xP = xQ и yP = -yQ (по модулю p), то прямая, проходящая через точки, вертикальна, и сумма равна нейтральному элементу (точке на бесконечности).

Можно ли использовать составной модуль?

Нет, модуль должен быть простым числом. Составные модули не поддерживаются, так как алгоритм требует поля.

Обработка выполняется локально в вашем браузере.