Введение
Пусть
— эллиптическая кривая, определённая над конечным полем
, где
для простого
и целого
. Над полем с характеристикой
эллиптическая кривая может быть задана (коротко) уравнением Вейерштрасса
с
. Множество точек, определённых над
, состоит из решений
, удовлетворяющих уравнению кривой, и бесконечно удалённой точки
. Если использовать групповой закон на эллиптических кривых на этом множестве, можно видеть, что это множество
образует абелеву группу, в которой
действует как нулевой элемент.
Чтобы посчитать точки на эллиптической кривой, мы подсчитываем мощность множества
.
В подходе Шуфа для подсчёта мощности
используется теорема Хассе об эллиптических кривых вместе с китайской теоремой об остатках и многочленами деления[en].
Теорема Хассе
Теорема Хассе утверждает, что если
является эллиптической кривой над конечным полем
, то
удовлетворяет неравенству
Этот сильный результат, полученный Хассе в 1934, упрощает нашу задачу путём сужения
к конечному (хотя и большому) множеству возможностей. Если определить
как
и использовать этот результат, мы получим, что вычисление мощности
по модулю
, где
, достаточно для вычисления
, а потому и для получения
. Хотя нет эффективного пути вычисления
прямо для чисел
общего вида, можно вычислить
для малого простого числа
довольно эффективно. Мы выбираем
в качестве множества различных простых чисел, таких, что
. Если задано
для всех
, китайская теорема об остатках позволяет вычислить
.
Чтобы вычислить
для простого
, мы используем теорию эндоморфизма Фробениуса
и многочлены деления[en]. Заметим, что рассмотрение простых чисел
не приводит к проблемам, поскольку мы всегда можем выбрать большее простое число, чтобы обеспечить, чтобы произведение было достаточно велико. В любом случае алгоритм Шуфа наиболее часто используется для случая
, поскольку имеются более эффективные, так называемые
-адичные алгоритмы, для полей с малой характеристикой.
Эндоморфизм Фробениуса
Если задана эллиптическая кривая
, определённая над
, мы рассматриваем точки на
над
, алгебраическим замыканием[en] поля
. То есть мы разрешаем точкам иметь координаты в
. Эндоморфизм Фробениуса
над
расширяет эллиптическую кривую отображением
.
Это отображение тождественно на
и можно расширить его точкой на бесконечности
, что делает его морфизмом группы из
на себя.
Эндоморфизм Фробениуса удовлетворяет квадратному уравнению, связанному с мощностью
по следующей теореме:
Теорема: Эндоморфизм Фробениуса, заданный отображением
, удовлетворяет характеристическому уравнению
, где
Тогда для всех
имеем
, где + означает сложение эллиптической кривой, а
и
означают скалярное произведение точки
на
и точки
на
[2].
Можно попытаться в символьном виде вычислить эти точки
,
и
как функции на координатном кольце[en]
на кривой
, а затем искать значение
, которое удовлетворяет уравнению. Однако степени получаются очень большими и такой подход практического значения не имеет.
Идея Шуфа заключалась в выполнении таких вычислений, ограничиваясь точками порядка
для различных малых простых чисел
.
Фиксируя нечётное простое число
мы переходим к решению задачи определения
, определённого как
, для заданного простого
.
Если точка
находится в подгруппе
-кручения
, то
, где
является единственным целым числом, таким, что
и
.
Заметим, что
и что для любого целого
мы имеем
. Таким образом,
имеет тот же порядок, что и
. Тогда для
, принадлежащего
, мы имеем также
, если
. Следовательно, мы свели нашу задачу к решению уравнения
где
и
лежат в интервале
.
Вычисления по простому модулю
Многочлен деления[en] с номером l — это такой многочлен, что его корни являются в точности x координатами точек порядка l. Тогда ограничение вычисления
на точки l-кручения означает вычисление этих выражений как функций координатного кольца E и модуля l-го многочлена деления. То есть мы работаем в
. Это, в частности, означает, что степень X и Y, определяемых через
не превышают 1 по переменной y и
по переменной x.
Скалярное произведение
может быть осуществлено методом удвоить-и-сложить, либо с помощью
-го многочлена деления. Второй подход даёт:
,
где
— n-й многочлен деления. Заметим, что
является функцией только от x, обозначим эту функцию через
.
Мы должны разбить задачу на два случая: случай, в котором
, и случай, в котором
.
Случай 1:
Используя формулу сложения для группы
, мы получим:
Заметим, что это вычисление невозможно, если предположение о неравенстве не выполняется.
Мы теперь можем сузить выбор координаты x для
до двух возможностей, а именно — положительного и отрицательного случаев. Используя координату y, определяем, который из двух случаев имеет место.
Сначала мы покажем, что X является функцией только от x. Рассмотрим
.
Поскольку
чётно, заменив
на
, мы переписываем выражение как
и имеем
Теперь, если
для
, то для
верно равенство
для всех точек P l-кручения.
Как было упомянуто ранее, используя Y и
, мы можем теперь определить, какое из двух значений
(
или
) работает. Это даёт значение
. Алгоритм Шуфа запоминает значения
в переменной
для каждого рассматриваемого простого l.
Случай 2:
Предположим, что
. Поскольку l является нечётным простым числом, невозможно, чтобы
, а следовательно,
. Из характеристического уравнения следует, что
, а следовательно, что
.
Из этого следует, что q является квадратом по модулю l. Пусть
. Вычислим
в
и проверим, выполняется ли
. Если так, то
является
, в зависимости от координаты y.
Если q окажется не равным квадрату по модулю l или если равенство не выполняется для некоторого w и
, наше предположение, что
неверно, так что
. Характеристическое уравнение даёт
.
Дополнительный случай
Если вспомнить, наши начальные соглашения не рассматривают случая
.
Поскольку мы предположили, что q нечётно,
и, в частности,
тогда и только тогда, когда
имеет элемент порядка 2. По определению сложения в группе любой элемент порядка 2 должен иметь вид
. Таким образом
тогда и только тогда, когда многочлен
имеет корень в
, тогда и только тогда, когда НОД
.
Алгоритм
Ввод:
1. Эллиптическая кривая
.
2. Целое число q для конечного поля
с
.
Вывод:
Число точек E над
.
Выбираем множество нечётных простых чисел S, не содержащее p, такое, что
Примем
, если НОД
, иначе принимаем
.
Вычисляем многочлен деления
.
Все вычисления в цикле ниже осуществляются в кольце
Для
выполняем:
Пусть
— единственное целое такое, что
и
.
Вычисляем
,
и
.
Если
то
Вычисляем
.
для
выполняем:
если
то
если
то
;
иначе
.
иначе если q является квадратом по модулю l то
вычисляем w с
вычисляем
если
то
иначе если
то
иначе
иначе
Используем китайскую теорему об остатках для вычисления t по модулю N из уравнения
, где
.
Выводим
.
Сложность
Большинство вычислений заключаются в вычислении
и
, для каждого простого числа
, то есть вычислении
,
,
,
для каждого простого числа
. Вычисления включают возведение в степень в кольце
и требуют
умножений. Поскольку степень
равна
, каждый элемент в кольце является многочленом степени
. По теореме о распределении простых чисел имеется около
простых чисел размера
, что даёт для
значение
, и мы получаем
. Таким образом, каждое умножение в кольце
требует
умножений в
, что, в свою очередь, требует,
битовых операций. В общей сложности число битовых операций для каждого простого числа
равно
. Если принять, что это вычисление требуется провести для каждого из
простых чисел, полная сложность алгоритма Шуфа становится
. Использование быстрых операций с многочленами и целочисленной арифметики сокращает это время до
.
Улучшения алгоритма Шуфа
В 1990-х годах Ноам Элкис[en], а затем А. О. Л. Аткин[en] придумали улучшения базового алгоритма Шуфа путём ограничения множества простых чисел
до чисел определённого вида. Эти числа стали называться простыми Элкиса и простыми Аткина соответственно. Простое число
называется простым Элкиса, если характеристическое равенство
разложим над
, а простые Аткина — это простые, не являющиеся простыми Элкиса. Аткин показал как комбинировать информацию, полученную из простых Аткина, с информацией, полученной из простых Элкиса, чтобы получить эффективный алгоритм, который получил название «Алгоритм Шуфа — Элкиса — Аткина[en]». Первая задача — определить, данное простое является простым Элкиса, или Аткина. Чтобы это получить, используем модулярные многочлены, которые возникают при изучении модулярных форм и интерпретации эллиптических кривых над полем комплексных чисел как решёток. Как только мы определим, какой случай мы имеем, вместо использования многочленов деления[en] мы можем работать с многочленами, имеющими меньшие степени по сравнению с многочленами деления:
вместо
. Для эффективной имплементации используются вероятностные алгоритмы поиска корней, что делает алгоритм алгоритмом Лас-Вегаса, а не детерминированным алгоритмом.
При эвристическом предположении, что примерно половина простых чисел, не превосходящих
, являются простыми Элкиса, это даёт алгоритм, который эффективнее алгоритма Шуфа, и ожидаемое время работы этого алгоритма равно
, если использовать обычную арифметику, и
, если использовать быструю арифметику. Следует заметить, что это эвристическое предположение верно для большинства эллиптических кривых, но не известно для общего случая, даже при верности обобщённой гипотезы Римана.
Примечания
- ↑ Хотя, в статье ECDSA написано следующее: Алгоритм Скоофа является достаточно неэффективным на практике для значений p, которые действительно представляют интерес, то есть p > 2160.
- ↑ Точку mP, равную m-кратному сложению точки P в аддитивной группе точек эллиптической кривой, называют скалярным произведением точки на число m, а сами точки mP – скалярными кратными точки (Рыболовлев 2004). В книге Тиборга (ван Тилборг 2006) то же понятие называется скалярным кратным.