Подсчёт точек на эллиптических кривых
Подсчёт точек на эллиптических кривых — группа методов, которые позволяют эффективно вычислять точки на эллиптических кривых. Подсчёт точек на эллиптических кривых используется при изучении теории чисел, криптографии[1][2] и создании цифровых подписей (см. Эллиптическая криптография и ECDSA). Уровень безопасности криптосистемы, построенной на эллиптической кривой над конечным полем , где q = pk, а p — простое число, определяется сложностью задачи дискретного логарифмирования (DLP) для данной эллиптической кривой . Ниже будут рассмотрены алгоритмы подсчёта точек на эллиптических кривых над полями больших характеристик, в частности, p > 3. Для кривых над полями небольших характеристик существуют более эффективные алгоритмы, основанные на p-адических методах.
Подходы к подсчёту точек на эллиптических кривых
Основными подходами являются простейший метод подсчёта точек на эллиптических кривых, алгоритм больших и малых шагов, подход, предложенный Рене Шуфом[англ.], и улучшения алгоритма Шуфа, предложенные Н. Элкисом и А. О. Л. Аткином[англ.].
Некоторые алгоритмы используют тот факт, что к группам вида применима теорема Хассе, которая гласит, что если E является эллиптической кривой над конечным полем , то мощность удовлетворяет неравенству
Простейший подход
Простейший подход к подсчёту точек предполагает перебор всех элементов поля и проверку того, какие из них удовлетворяют уравнению Вейерштрасса эллиптической кривой
Пример
Пусть E будет кривой y2 = x3 + x + 1 над полем . Для подсчёта точек на E строится таблица из возможных значений x, квадратичных вычетов x mod 5 (только для поиска), x3 + x + 1 mod 5 и y (по x2 и x3 + x + 1 mod 5).
Points | ||||
---|---|---|---|---|
Последняя строка вычисляется следующим образом: в уравнение подставляется , что приводит к (3-й столбец). Такой же результат получается при (Квадратичные вычеты находятся во втором столбце). Так, для последней строки находятся точки .
Таким образом, имеет порядок 9: 8 вычисленных точек и точка на бесконечности.
Вычислительная сложность алгоритма O(q), поскольку должны быть рассмотрены все значения .
Алгоритм больших и маленьких шагов
Снижение вычислительной сложности алгоритма было получено путём применения другого подхода: перебором случайных значений , пока не будет квадратом на , выбирается элемент такой, что является квадратным корнем из . Теорема Хассе гласит, что принадлежит интервалу . Тогда по теореме Лагранжа задача нахождения мощности множества сводится к поиску уникального , принадлежащего этому интервалу и удовлетворяющего равенству . Алгоритм перестаёт работать, если существуют два таких и , принадлежащих интервалу и удовлетворяющих равенству . В таком случае достаточно повторить ход алгоритма с другим случайно подобранным .
Перебор всех значений с целью найти единственное, удовлетворяющее равенству , занимает около шагов.
Однако, применяя алгоритм больших и маленьких шагов к , можно ускорить поиск до шагов.
Алгоритм
1. choose integer, 2. FOR{ to } DO 3. 4. ENDFOR 5. 6. 7. REPEAT compute the points 8. UNTIL : \\the -coordinates are compared 9. \\note 10. Factor . Let be the distinct prime factors of . 11. WHILE DO 12. IF 13. THEN 14. ELSE 15. ENDIF 16. ENDWHILE 17. \\note is the order of the point 18. WHILE divides more than one integer in 19. DO choose a new point and go to 1. 20. ENDWHILE 21. RETURN \\it is the cardinality of
Пояснения к алгоритму
- в пункте 8. допускается существование такого совпадения. Следующая лемма гарантирует, что такое совпадение существует:
- Пусть — целое, . Существуют и такие, что
- Как только было подсчитано , для вычисления достаточно прибавить к вместо того, чтобы производить суммирование по всем элементам. Таким образом, полный цикл вычислений требует сложений. может быть получено удвоением . Вычисление требует удвоений и сложений, где число ненулевых элементов в бинарном представлении ; следует отметить, что знание и позволяет уменьшить число операций удвоения. Наконец, чтобы из получить , нужно просто прибавить вместо того, чтобы производить суммирование с начала.
- Предполагается, что можно факторизовать [3]. Если нет, то по крайней мере можно найти все маленькие простые факторы и проверить, что для них . Так, является хорошим кандидатом в порядок .
- Заключение шага 17 может быть доказано с использованием элементарной теории групп: поскольку , порядок делится на без остатка. Если нет подходящего делителя числа , для которого , то — порядок .
Одним из недостатков этого метода является то, что он требует много памяти, когда группа становится большой. В случае больших групп может быть эффективнее хранить только координаты точек (вместе с соответствующим ). Однако это приводит к дополнительным операциям умножения в случае выбора между и .
Существуют и другие алгоритмы вычисления порядка элемента группы, которые будут требовать меньше памяти, такие как ро-алгоритм Полларда и алгоритм «кенгуру» Полларда. Алгоритм «кенгуру» Полларда позволяет найти решение в предписанном интервале, снижая число шагов до и занимая места в памяти.
Алгоритм Шуфа
Теоретический прорыв в области вычисления порядка групп типа был достигнут Рене Шуфом[англ.], который в 1985 году опубликовал первый детерминированный полиномиальный алгоритм. В основе алгоритма лежат теорема Хассе об эллиптических кривых вместе с китайской теоремой об остатках и многочленами деления[англ.].
Шуф использует тот факт, что согласно теореме Хассе существует конечное число возможных значений . Таким образом, становится достаточным вычислить по модулю целого . Это можно сделать, вычисляя по модулю простых , произведение которых превосходит , и затем применить китайскую теорему об остатках. Важной составляющей алгоритма является использование многочленов деления для эффективного вычисления по модулю [4].
Временная сложность алгоритма Шуфа , тогда как асимптотическая сложность , где означает вычислительную сложность целочисленного умножения. Пространственная сложность алгоритма .
Алгоритм Шуфа — Элкиса — Аткина
В 1990-х годах Ноам Элкис, а затем Артур Аткин[англ.] придумали улучшения базового алгоритма Шуфа путём разделения множества рассматриваемых простых чисел . Простое число называется простым Элкиса, если характеристическое уравнение эндоморфизма Фробениуса разложимо над . Иначе, называется простым Аткина. С помощью простых Элкиса можно понизить асимптотическую сложность алгоритма Шуфа. Информация, полученная из простых Аткина, ведёт к дальнейшим улучшениям алгоритма, и несмотря на малость вносимого ими вклада в снижение асимптотической сложности алгоритма, простые Аткина важны на практике. Модификация алгоритма Шуфа, использующая простые Элкиса и Аткина, называется алгоритмом Шуфа — Элкиса — Аткина[англ.].
Вид простого зависит от эллиптической кривой и может быть определён с использованием модулярного полинома[англ.] . Если полином одной переменной имеет корень на , где означает j-invariant[англ.] на , тогда — простое Элкиса, а иначе простое Аткина. В случае простого Элкиса дальнейшее вычисление корней модулярного полинома используется для получения правильного фактора многочлена деления . Степень получаемого фактора , тогда как имеет степень [5].
Для эффективной имплементации алгоритма Шуфа — Элкиса — Аткина используются вероятностные алгоритмы поиска корней, что делает алгоритм алгоритмом Лас-Вегаса, а не детерминированным алгоритмом. Вычислительная сложность алгоритма определяется стоимостью вычислений модулярных полиномов , но поскольку они не зависят от , то могут быть вычислены однажды и затем использованы снова. При эвристическом предположении о существовании достаточно большого количества малых простых Элкиса и без учёта стоимости вычисления модулярных полиномов асимптотическая сложность алгоритма Шуфа — Элкиса — Аткина , где . Пространственная сложность , но в случае использования вычисленных заранее модулярных полиномов сложность возрастает до .
См. также
- Алгоритм Шуфа
- Эллиптическая криптография
- Алгоритм Гельфонда-Шенкса
- Криптосистема с открытым ключом
- Алгоритм Шуфа — Элкиса — Аткина[англ.]
- Ро-алгоритм Полларда
- Алгоритм «кенгуру» Полларда
Примечания
- ↑ Jeffrey Hoffstein, Jill Pipher, Joseph H. Silverman. An introduction to mathematical cryptography. — Springer, 2008. — 524 с. — (Undergraduate Texts in Mathematics). — ISBN 9780387779942.
- ↑ Чалкин Т. А. Жданов О. Н. Применение эллиптических кривых в криптографии.
- ↑ Ишмухаметов Ш. Т. Методы факторизации натуральных чисел.
- ↑ "Counting Points on Elliptic Curves over Finite Fields. J. Theor. Nombres Bordeaux 7:219-254, 1995" (PDF). p. 15. Архивировано (PDF) 27 января 2021. Дата обращения: 11 декабря 2019.
- ↑ «Remarks on the Schoof-Elkies-Atkin algorithm» . Дата обращения: 20 декабря 2019. Архивировано 1 декабря 2008 года.
Литература
- I. Blake, G. Seroussi, and N. Smart: Elliptic Curves in Cryptography, Cambridge University Press, 1999.
- A. Enge: Elliptic Curves and their Applications to Cryptography: An Introduction. Kluwer Academic Publishers, Dordrecht, 1999.
- G. Musiker: Schoof’s Algorithm for Counting Points on . Available at http://www.math.umn.edu/~musiker/schoof.pdf
- R. Schoof: Counting Points on Elliptic Curves over Finite Fields. J. Theor. Nombres Bordeaux 7:219-254, 1995. Available at http://www.mat.uniroma2.it/~schoof/ctg.pdf
- L. C. Washington: Elliptic Curves: Number Theory and Cryptography. Chapman \& Hall/CRC, New York, 2003.
На эту статью не ссылаются другие статьи Википедии. |