Я работаю над внедрением EC-расчетов (сначала) в C ++. Все имеет смысл для меня, но деление используется в умножении точек. Как я понимаю, использование целых чисел является обычным делом, но деление лямбда (https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication) сложение или удвоение точки дает некоторую неопределенность из-за приближения результата. Как это обычно обрабатывается, чтобы каждый получал одинаковые результаты, несмотря на использование разного количества чисел после точки?
(К сожалению, я не смог найти реализацию возврата функции EC_POINT_add openssl для сравнения их решения)
Ответ, кажется, модульное деление или лучшее умножение обратного элемента.
Других решений пока нет …