Количество точек на эллиптической кривой
Если у вас есть эллиптическая кривая в виде:
y^2 = x^3 + a*x + b (mod p)
есть ли хорошая программа для вычисления количества точек на этой кривой?
Я читал об алгоритме Schoof и Schoof-Elkies-Atkin (SEA), но я ищу реализации с открытым исходным кодом. Кто-нибудь знает хорошую программу, которая может это сделать?
также, если a равно 1, А b равно 0, алгоритм SEA не может быть использован, потому что J-инвариант равен 0. Заключаться в следующем правильно?
Edit: это в контексте криптографии эллиптической кривой
4 ответов
вы слышали о шалфей?
Sage включает Pari, который является пакетом с открытым исходным кодом для теории чисел. Пари имеет реализацию СЭО.
sage: k = GF(next_prime(10^20))
sage: E = EllipticCurve(k.random_element())
sage: E.cardinality() # less than a second
100000000005466254167
Я пробовал Sage. Мне потребовалось около 3-4 часов для компиляции в x64 ubuntu. Кажется, это хорошая программа. Но когда J-инвариант равен 0, алгоритм SEA не может быть использован, и тогда, похоже, возникают некоторые проблемы, если вы используете большие значения для p/k.
после поиска еще несколько я также нашел miracl:http://www.shamus.ie/index.php?page=elliptic-curves Они имеют реализации как для нормального алгоритма Schoof, так и для алгоритма SEA. Но эта программа также имеет некоторые проблемы, когда использование больших входных значений. После 3-4 часов работы он разбился :/. Я попытался исправить это, и в настоящее время он работает снова, так что, надеюсь, он будет работать.
Edit: теперь он работает. Программа в приведенной выше ссылке идентична той, которую дал Расмус Фабер.
Я также использую программу Mike Scotts (miracl) для этой цели. Просто любопытно, могу ли я спросить: насколько велики были домены с prime group order, которые вы могли бы произвести с помощью программного обеспечения? Я поднялся до 1024 бит и теперь ушел, потому что мне нужен мой офисный компьютер для чего-то другого, чем программное обеспечение для подсчета точек в течение нескольких недель. Вы производили более крупные Домены? Если да, я был бы рад получить параметры домена, и если у вас нет возражений, включите их в мой ECC-Software Academic Подпись.
мои домены можно найти здесь страница домена ECC. Программное обеспечение для их использования доступно отсюда руководство со ссылкой на страницу загрузки
с уважением Майкл Андерс!--1-->