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

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

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

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

Введение

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

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

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

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

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

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

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

Если задана эллиптическая кривая , определённая над , мы рассматриваем точки на над , поля . То есть мы разрешаем точкам иметь координаты в . Эндоморфизм Фробениуса над расширяет эллиптическую кривую отображением .

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

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

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

, где

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

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

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

где и лежат в интервале .

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

с номером 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-х годах Ноам Элкис , а затем придумали улучшения базового алгоритма Шуфа путём ограничения множества простых чисел до чисел определённого вида. Эти числа стали называться простыми Элкиса и простыми Аткина соответственно. Простое число называется простым Элкиса, если характеристическое равенство разложим над , а простые Аткина — это простые, не являющиеся простыми Элкиса. Аткин показал как комбинировать информацию, полученную из простых Аткина, с информацией, полученной из простых Элкиса, чтобы получить эффективный алгоритм, который получил название « ». Первая задача — определить, данное простое является простым Элкиса, или Аткина. Чтобы это получить, используем модулярные многочлены, которые возникают при изучении модулярных форм и интерпретации эллиптических кривых над полем комплексных чисел как решёток. Как только мы определим, какой случай мы имеем, вместо использования мы можем работать с многочленами, имеющими меньшие степени по сравнению с многочленами деления: вместо . Для эффективной имплементации используются вероятностные алгоритмы поиска корней, что делает алгоритм алгоритмом Лас-Вегаса , а не детерминированным алгоритмом. При эвристическом предположении, что примерно половина простых чисел, не превосходящих , являются простыми Элкиса, это даёт алгоритм, который эффективнее алгоритма Шуфа, и ожидаемое время работы этого алгоритма равно , если использовать обычную арифметику, и , если использовать быструю арифметику. Следует заметить, что это эвристическое предположение верно для большинства эллиптических кривых, но не известно для общего случая, даже при верности обобщённой гипотезы Римана .

Имплементации

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

  • Алгоритм Шуфа с для с простым .
  • Алгоритм Шуфа с для .

См. также

Примечания

  1. Хотя, в статье ECDSA написано следующее: Алгоритм Скоофа является достаточно неэффективным на практике для значений p , которые действительно представляют интерес, то есть p > 2 160 .
  2. Точку mP, равную m-кратному сложению точки P в аддитивной группе точек эллиптической кривой, называют скалярным произведением точки на число m , а сами точки mP — скалярными кратными точки ( ). В книге Тиборга ( ) то же понятие называется скалярным кратным.

Литература

  • R. Schoof. // Math. Comp.. — 1985. — Т. 44 , вып. 170 . — С. 483–494 .
  • R. Schoof. // J. Theor. Nombres Bordeaux. — 1995. — Вып. 7 . — С. 219–254 .
  • Gregg Musiker. . — 2005.
  • V. Müller. . — Saarbrücken: Universität des Saarlandes, 1991. — (Master's Thesis).
  • Andreas Enge. . — Dordrecht: Kluwer Academic Publishers, 1999.
  • Lawrence C. Washington. Elliptic Curves: Number Theory and Cryptography. — New York: Chapman & Hall/CRC, 2003. — Т. 50. — (Discrete Mathematics and its applications). — ISBN 978-1-4200-7146-7 .
  • Neal Koblitz. A Course in Number Theory and Cryptography. — Second edition. — Springer-Verlag, 1994. — Т. 114. — (Graduate Texts in Mathematics). — ISBN 0-387-94293-9 .
  • Х. К. А. ван Тилборг. Основы криптологии. — Москва: «Мир», 2006. — ISBN 5-03-003639-3 УДК 519.6.
  • Дмитрий Рыболовлев. . — 2004.


Источник —

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