Подсчёт точек на эллиптических кривых

Материал из testwiki
Перейти к навигации Перейти к поиску

Подсчёт точек на эллиптических кривых — группа методов, которые позволяют эффективно вычислять точки на эллиптических кривых. Подсчёт точек на эллиптических кривых используется при изучении теории чисел, криптографии[1][2] и создании цифровых подписей (см. Эллиптическая криптография и ECDSA). Уровень безопасности криптосистемы, построенной на эллиптической кривой E(𝔽q) над конечным полем 𝔽q, где q = pk, а p — простое число, определяется сложностью задачи дискретного логарифмирования (DLP) для данной эллиптической кривой E(𝔽q). Ниже будут рассмотрены алгоритмы подсчёта точек на эллиптических кривых над полями больших характеристик, в частности, p > 3. Для кривых над полями небольших характеристик существуют более эффективные алгоритмы, основанные на p-адических методах.

Подходы к подсчёту точек на эллиптических кривых

Основными подходами являются простейший метод подсчёта точек на эллиптических кривых, алгоритм больших и малых шагов, подход, предложенный Шаблон:Не переведено 5, и улучшения алгоритма Шуфа, предложенные Н. Элкисом и Шаблон:Не переведено 5.

Некоторые алгоритмы используют тот факт, что к группам вида E(𝔽q) применима теорема Хассе, которая гласит, что если E является эллиптической кривой над конечным полем 𝔽q, то мощность E(𝔽q) удовлетворяет неравенству

||E(𝔽q)|(q+1)|2q.

Простейший подход

Простейший подход к подсчёту точек предполагает перебор всех элементов поля 𝔽q и проверку того, какие из них удовлетворяют уравнению Вейерштрасса эллиптической кривой

y2=x3+Ax+B.

Пример

Пусть E будет кривой y2 = x3 + x + 1 над полем 𝔽5. Для подсчёта точек на E строится таблица из возможных значений x, квадратичных вычетов x mod 5 (только для поиска), x3 + x + 1 mod 5 и y (по x2 и x3 + x + 1 mod 5).

x x2 x3+x+1 y Points
0 0 1 1,4 (0,1),(0,4)
1 1 3
2 4 1 1,4 (2,1),(2,4)
3 4 1 1,4 (3,1),(3,4)
4 1 4 2,3 (4,2),(4,3)

Последняя строка вычисляется следующим образом: в уравнение y2=x3+x+1 подставляется x=4, что приводит к y2=4 (3-й столбец). Такой же результат получается при y=2,3 (Квадратичные вычеты находятся во втором столбце). Так, для последней строки находятся точки (4,2),(4,3).

Таким образом, E(𝔽5) имеет порядок 9: 8 вычисленных точек и точка на бесконечности.

Вычислительная сложность алгоритма O(q), поскольку должны быть рассмотрены все значения x𝔽q.

Алгоритм больших и маленьких шагов

Снижение вычислительной сложности алгоритма было получено путём применения другого подхода: перебором случайных значений x, пока x3+Ax+B не будет квадратом на 𝔽q, выбирается элемент P=(x,y)E(𝔽q) такой, что y является квадратным корнем из x3+Ax+B. Теорема Хассе гласит, что |E(𝔽q)| принадлежит интервалу (q+12q,q+1+2q). Тогда по теореме Лагранжа задача нахождения мощности множества E(𝔽q) сводится к поиску уникального M, принадлежащего этому интервалу и удовлетворяющего равенству MP=O. Алгоритм перестаёт работать, если существуют два таких M и M, принадлежащих интервалу и удовлетворяющих равенству MP=MP=O. В таком случае достаточно повторить ход алгоритма с другим случайно подобранным P=(x,y)E(𝔽q).

Перебор всех значений M с целью найти единственное, удовлетворяющее равенству MP=O, занимает около 4q шагов.

Однако, применяя алгоритм больших и маленьких шагов к E(𝔽q), можно ускорить поиск до 4q4 шагов.

Алгоритм

1. choose m integer, m>q4
2. FOR{j=0 to m} DO 
3.    PjjP
4. ENDFOR
5. L1
6. Q(q+1)P
7. REPEAT compute the points Q+k(2mP)
8. UNTIL j: Q+k(2mP)=±Pj  \\the x-coordinates are compared
9. Mq+1+2mkj     \\note MP=O
10. Factor M. Let p1,,pr be the distinct prime factors of M.
11. WHILE ir DO
12.    IF MpiP=O
13.       THEN MMpi
14.       ELSE ii+1 
15.    ENDIF
16. ENDWHILE
17. Llcm(L,M)     \\note M is the order of the point P
18. WHILE L divides more than one integer N in (q+12q,q+1+2q)
19.    DO choose a new point P and go to 1.
20. ENDWHILE
21. RETURN N     \\it is the cardinality of E(𝔽q)

Пояснения к алгоритму

  • в пункте 8. допускается существование такого совпадения. Следующая лемма гарантирует, что такое совпадение существует:
Пусть a — целое, |a|2m2. Существуют a0 и a1 такие, что
m<a0m и ma1m т.ч. a=a0+2ma1.
  • Как только было подсчитано jP, для вычисления (j+1)P достаточно прибавить P к jP вместо того, чтобы производить суммирование по всем j+1 элементам. Таким образом, полный цикл вычислений требует m сложений. 2mP может быть получено удвоением mP. Вычисление Q требует log(q+1) удвоений и w сложений, где w число ненулевых элементов в бинарном представлении q+1; следует отметить, что знание jP и 2mP позволяет уменьшить число операций удвоения. Наконец, чтобы из Q+k(2mP) получить Q+(k+1)(2mP), нужно просто прибавить 2mP вместо того, чтобы производить суммирование с начала.
  • Предполагается, что можно факторизовать M[3]. Если нет, то по крайней мере можно найти все маленькие простые факторы pi и проверить, что для них MpiO. Так, M является хорошим кандидатом в порядок P.
  • Заключение шага 17 может быть доказано с использованием элементарной теории групп: поскольку MP=O, порядок P делится на M без остатка. Если нет подходящего делителя M¯ числа M, для которого M¯P=O, то M — порядок P.

Одним из недостатков этого метода является то, что он требует много памяти, когда группа становится большой. В случае больших групп может быть эффективнее хранить только координаты x точек jP (вместе с соответствующим j). Однако это приводит к дополнительным операциям умножения в случае выбора между j и +j.

Существуют и другие алгоритмы вычисления порядка элемента группы, которые будут требовать меньше памяти, такие как ро-алгоритм Полларда и алгоритм «кенгуру» Полларда. Алгоритм «кенгуру» Полларда позволяет найти решение в предписанном интервале, снижая число шагов до O(q4) и занимая O(log2q) места в памяти.

Алгоритм Шуфа

Шаблон:Main

Теоретический прорыв в области вычисления порядка групп типа E(𝔽q) был достигнут Шаблон:Не переведено 5, который в 1985 году опубликовал первый детерминированный полиномиальный алгоритм. В основе алгоритма лежат теорема Хассе об эллиптических кривых вместе с китайской теоремой об остатках и Шаблон:Не переведено 5.

Шуф использует тот факт, что согласно теореме Хассе существует конечное число возможных значений |E(𝔽q)|. Таким образом, становится достаточным вычислить |E(𝔽q)| по модулю целого N>4q. Это можно сделать, вычисляя |E(𝔽q)| по модулю простых 1,,s, произведение которых превосходит 4q, и затем применить китайскую теорему об остатках. Важной составляющей алгоритма является использование многочленов деления ψ для эффективного вычисления |E(𝔽q)| по модулю [4].

Временная сложность алгоритма Шуфа n=logq, тогда как асимптотическая сложность O(n2M(n3)/logn)=O(n5+o(1)), где M(n) означает вычислительную сложность целочисленного умножения. Пространственная сложность алгоритма O(n3).

Алгоритм Шуфа — Элкиса — Аткина

Шаблон:Main

В 1990-х годах Ноам Элкис, а затем Шаблон:Не переведено 5 придумали улучшения базового алгоритма Шуфа путём разделения множества рассматриваемых простых чисел S={l1,,ls}. Простое число называется простым Элкиса, если характеристическое уравнение эндоморфизма Фробениуса ϕ2tϕ+q=0 разложимо над 𝔽. Иначе, называется простым Аткина. С помощью простых Элкиса можно понизить асимптотическую сложность алгоритма Шуфа. Информация, полученная из простых Аткина, ведёт к дальнейшим улучшениям алгоритма, и несмотря на малость вносимого ими вклада в снижение асимптотической сложности алгоритма, простые Аткина важны на практике. Модификация алгоритма Шуфа, использующая простые Элкиса и Аткина, называется Шаблон:Не переведено 5.

Вид простого зависит от эллиптической кривой E(𝔽q) и может быть определён с использованием Шаблон:Не переведено 5 Ψ(X,Y). Если полином одной переменной Ψ(X,j(E)) имеет корень на 𝔽q, где j(E) означает Шаблон:Не переведено 5 на E, тогда  — простое Элкиса, а иначе простое Аткина. В случае простого Элкиса дальнейшее вычисление корней модулярного полинома используется для получения правильного фактора многочлена деления ψ. Степень получаемого фактора O(), тогда как ψ имеет степень O(2)[5].

Для эффективной имплементации алгоритма Шуфа — Элкиса — Аткина используются вероятностные алгоритмы поиска корней, что делает алгоритм алгоритмом Лас-Вегаса, а не детерминированным алгоритмом. Вычислительная сложность алгоритма определяется стоимостью вычислений модулярных полиномов Ψ(X,Y), но поскольку они не зависят от E, то могут быть вычислены однажды и затем использованы снова. При эвристическом предположении о существовании достаточно большого количества малых простых Элкиса и без учёта стоимости вычисления модулярных полиномов асимптотическая сложность алгоритма Шуфа — Элкиса — Аткина O(n2M(n2)/logn)=O(n4+o(1)), где n=logq. Пространственная сложность O(n3logn), но в случае использования вычисленных заранее модулярных полиномов сложность возрастает до O(n4).

См. также

Примечания

Шаблон:Примечания

Литература

  • 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 E(𝔽q). 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.

Шаблон:Изолированная статья

  1. Шаблон:Книга
  2. Чалкин Т. А. Жданов О. Н. Применение эллиптических кривых в криптографии.
  3. Ишмухаметов Ш. Т. Методы факторизации натуральных чисел.
  4. Шаблон:Cite news
  5. Шаблон:Cite web