Онлайн-инструмент операций с точками эллиптической кривой
Сложите две точки на эллиптической кривой по модулю 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), то прямая, проходящая через точки, вертикальна, и сумма равна нейтральному элементу (точке на бесконечности).
Можно ли использовать составной модуль?
Нет, модуль должен быть простым числом. Составные модули не поддерживаются, так как алгоритм требует поля.
Обработка выполняется локально в вашем браузере.