stringtranslate.com

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

Алгоритм Шуфа — эффективный алгоритм для подсчета точек на эллиптических кривых над конечными полями . Алгоритм имеет приложения в криптографии эллиптических кривых , где важно знать количество точек, чтобы оценить сложность решения задачи дискретного логарифмирования в группе точек на эллиптической кривой.

Алгоритм был опубликован Рене Шуфом в 1985 году и стал теоретическим прорывом, поскольку это был первый детерминированный полиномиальный алгоритм для подсчета точек на эллиптических кривых . До алгоритма Шуфа подходы к подсчету точек на эллиптических кривых, такие как наивный и алгоритмы baby-step giant-step , по большей части были утомительными и имели экспоненциальное время выполнения.

В этой статье объясняется подход Шуфа, при этом особое внимание уделяется математическим идеям, лежащим в основе структуры алгоритма.

Введение

Пусть будет эллиптическим кривым, определенным над конечным полем , где для простого и целого числа . Над полем характеристики эллиптическую кривую можно задать (коротким) уравнением Вейерштрасса

с . Множество точек, определенное над , состоит из решений, удовлетворяющих уравнению кривой, и точки на бесконечности . Используя групповой закон на эллиптических кривых, ограниченный этим множеством, можно увидеть, что это множество образует абелеву группу , причем действует как нулевой элемент. Чтобы подсчитать точки на эллиптической кривой, мы вычисляем мощность . Подход Шуфа к вычислению мощности использует теорему Хассе об эллиптических кривых вместе с китайской теоремой об остатках и многочленами деления .

Теорема Хассе

Теорема Хассе утверждает, что если — эллиптическая кривая над конечным полем , то удовлетворяет условию

Этот мощный результат, полученный Хассе в 1934 году, упрощает нашу проблему, сужая ее до конечного (хотя и большого) набора возможностей. Определяя как , и используя этот результат, мы теперь имеем, что вычисление значения по модулю , где , достаточно для определения , и, таким образом , . Хотя не существует эффективного способа непосредственного вычисления для общего , можно вычислить для небольшого простого числа довольно эффективно. Мы выбираем быть набором различных простых чисел, таким образом, что . Учитывая для всех , китайская теорема об остатках позволяет нам вычислить .

Для вычисления простого числа мы используем теорию эндоморфизма Фробениуса и многочленов деления . Обратите внимание, что рассмотрение простых чисел не является потерей, поскольку мы всегда можем выбрать большее простое число, чтобы занять его место и гарантировать, что произведение будет достаточно большим. В любом случае алгоритм Шуфа чаще всего используется для решения этого случая, поскольку существуют более эффективные, так называемые адические алгоритмы для полей с малыми характеристиками.

Эндоморфизм Фробениуса

Учитывая эллиптическую кривую, определенную над , мы рассматриваем точки над , алгебраическое замыкание ; т.е. мы допускаем точки с координатами в . Эндоморфизм Фробениуса над продолжается до эллиптической кривой с помощью .

Это отображение является тождественным на и его можно расширить до точки на бесконечности , сделав его групповым морфизмом из в себя.

Эндоморфизм Фробениуса удовлетворяет квадратичному многочлену, который связан с мощностью следующей теоремой:

Теорема: Эндоморфизм Фробениуса, заданный формулой, удовлетворяет характеристическому уравнению

где

Таким образом, при всем этом мы имеем , где + обозначает сложение на эллиптической кривой, а и обозначают скалярное умножение на и на .

Можно попытаться символически вычислить эти точки , и как функции в кольце координат и затем искать значение , которое удовлетворяет уравнению. Однако степени становятся очень большими, и этот подход непрактичен.

Идея Шуфа состояла в том, чтобы выполнить это вычисление, ограниченное точками порядка для различных малых простых чисел . Зафиксировав нечетное простое число , мы теперь переходим к решению задачи определения , определяемой как , для заданного простого числа . Если точка находится в подгруппе - кручения , то где есть единственное целое число такое, что и . Заметим, что и что для любого целого числа мы имеем . Таким образом, будет иметь тот же порядок, что и . Таким образом, для принадлежности к , мы также имеем , если . Следовательно, мы свели нашу задачу к решению уравнения

где и имеют целые значения в .

Вычисление по модулю простых чисел

Многочлен l -го деления таков, что его корни — это в точности x- координаты точек порядка l . Таким образом, ограничение вычисления l -точками кручения означает вычисление этих выражений как функций в кольце координат E и по модулю многочлена l -го деления. То есть мы работаем в . Это означает, в частности, что степень X и Y , определенная через , не превышает 1 по y и не превышает 1 по x .

Скалярное умножение можно выполнить либо с помощью методов удвоения и сложения , либо с помощью многочлена деления th. Последний подход дает:

где — полином n -го деления. Обратите внимание, что — это функция только от x , и обозначьте ее как .

Мы должны разбить задачу на два случая: случай, в котором , и случай, в котором . Обратите внимание, что эти равенства проверяются по модулю .

Случай 1: ( x q 2 , y q 2 ) ≠ ± q ¯ ( x , y ) {\displaystyle (x^{q^{2}},y^{q^{2}})\neq \pm {\bar {q}}(x,y)}

Используя формулу сложения для группы, получаем:

Обратите внимание, что это вычисление не выполняется, если предположение о неравенстве неверно.

Теперь мы можем использовать x -координату, чтобы сузить выбор до двух возможностей, а именно положительного и отрицательного случая. Используя y -координату, позже определяется, какой из двух случаев имеет место.

Сначала покажем, что X — это функция только от x . Рассмотрим . Поскольку четно, то, заменив на , перепишем выражение как

и иметь это

Здесь, кажется, не правильно, мы выбрасываем ?

Теперь, если для одного , то удовлетворяет

для всех l -точек кручения P .

Как упоминалось ранее, используя Y и мы теперь можем определить, какое из двух значений ( или ) работает. Это дает значение . Алгоритм Шуфа сохраняет значения в переменной для каждого рассматриваемого простого числа l .

Случай 2: ( x q 2 , y q 2 ) = ± q ¯ ( x , y ) {\displaystyle (x^{q^{2}},y^{q^{2}})=\pm {\bar {q}}(x,y)}

Начнем с предположения, что . Поскольку l — нечетное простое число, то оно не может быть таким, и, таким образом , . Характеристическое уравнение дает, что . И, следовательно, что . Это означает, что q — квадрат по модулю l . Пусть . Вычислим и проверим, является ли . Если да, то зависит от координаты y.

Если q не является квадратом по модулю l или если уравнение не выполняется ни для одного из w и , наше предположение ложно, таким образом . Характеристическое уравнение дает .

Дополнительный случай l = 2 {\displaystyle l=2}

Если вы помните, наши первоначальные соображения опускают случай . Поскольку мы предполагаем, что q нечетно, и, в частности, тогда и только тогда, когда имеет элемент порядка 2. По определению сложения в группе любой элемент порядка 2 должен иметь вид . Таким образом, тогда и только тогда, когда многочлен имеет корень в , тогда и только тогда, когда .

Алгоритм

 Вход: 1. Эллиптическая кривая . 2. Целое число q для конечного поля с . Выход: Число точек E над . Выберем множество нечетных простых чисел S, не содержащее p,  такое, что  Положим  if , else .     Вычислим многочлен деления . Все вычисления в цикле ниже выполняются в кольце  Для  do :   Пусть будет уникальным целым числом,  таким что и .  Вычислить , и .  если  то   Вычислить .  для  do :   если  то   если  то   ; иначе . иначе если q является квадратом по модулю l , то вычислить w с помощью compute если то иначе если то иначе иначе Используйте китайскую теорему об остатках , чтобы вычислить t по модулю N из уравнений , где .                    Выход .

Сложность

Большая часть вычислений выполняется путем оценки и для каждого простого числа , то есть вычисления , , , для каждого простого числа . Это включает возведение в степень в кольце и требует умножений. Поскольку степень равна , каждый элемент в кольце является многочленом степени . По теореме о простых числах существует около простых чисел размера , что дает , и мы получаем, что . Таким образом, каждое умножение в кольце требует умножений, в которых, в свою очередь, требуются битовые операции. В общей сложности количество битовых операций для каждого простого числа равно . Учитывая, что это вычисление необходимо выполнить для каждого из простых чисел, общая сложность алгоритма Шуфа оказывается равной . Использование быстрой полиномиальной и целочисленной арифметики сводит это к .

Улучшения алгоритма Шуфа

В 1990-х годах Ноам Элкис , а затем и А. О. Л. Аткин , разработали усовершенствования базового алгоритма Шуфа, ограничив набор рассмотренных ранее простых чисел простыми числами определенного вида. Они стали называться простыми числами Элкиса и простыми числами Аткина соответственно. Простое число называется простым числом Элкиса, если характеристическое уравнение: распадается на , в то время как простым числом Аткина является простое число, которое не является простым числом Элкиса. Аткин показал, как объединить информацию, полученную из простых чисел Аткина, с информацией, полученной из простых чисел Элкиса, чтобы создать эффективный алгоритм, который стал известен как алгоритм Шуфа–Элкиса–Аткина . Первая проблема, которую нужно решить, — это определить, является ли заданное простое число простым числом Элкиса или Аткина. Для этого мы используем модульные многочлены, которые получены из изучения модульных форм и интерпретации эллиптических кривых над комплексными числами как решетками. Как только мы определили, в каком случае мы находимся, вместо использования полиномов деления мы можем работать с полиномом, который имеет меньшую степень, чем соответствующий полином деления: вместо . Для эффективной реализации используются вероятностные алгоритмы поиска корней, что делает этот алгоритм Лас-Вегаса, а не детерминированным алгоритмом. При эвристическом предположении, что примерно половина простых чисел до границы являются простыми числами Элки, это дает алгоритм, который эффективнее алгоритма Шуфа, с ожидаемым временем выполнения с использованием наивной арифметики и использованием быстрой арифметики. Хотя известно, что это эвристическое предположение справедливо для большинства эллиптических кривых, известно, что оно справедливо не во всех случаях, даже при GRH .

Реализации

Несколько алгоритмов были реализованы на C++ Майком Скоттом и доступны с исходным кодом. Реализации бесплатны (без условий и положений) и используют библиотеку MIRACL, которая распространяется под лицензией AGPLv3 .

Смотрите также

Ссылки