Jump to content

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

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

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

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

Введение

[ редактировать ]

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

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

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

[ редактировать ]

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

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

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

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

[ редактировать ]

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

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

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

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

где

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

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

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

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

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

[ редактировать ]

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

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

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

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

Случай 1:

[ редактировать ]

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

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

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

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

и иметь это

Тут вроде не правильно, выбрасываем ?

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

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

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

Случай 2:

[ редактировать ]

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

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

Дополнительный случай

[ редактировать ]

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

Алгоритм

[ редактировать ]
    Input:
        1. An elliptic curve .
        2. An integer q for a finite field  with .
    Output:
        The number of points of E over .
    Choose a set of odd primes S not containing p such that 
    Put  if , else .
    Compute the division polynomial . 
    All computations in the loop below are performed in the ring 
    For  do:
        Let  be the unique integer such that   and .
        Compute ,  and .   
        if  then
            Compute .
            for  do:
                if  then
                    if  then
                        ;
                    else
                        .
        else if q is a square modulo l then
            compute w with 
            compute 
            if  then
                
            else if  then
                
            else
                
        else
            
    Use the Chinese Remainder Theorem to compute t modulo N
        from the equations , where .
    Output .

Сложность

[ редактировать ]

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

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

[ редактировать ]

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

Реализации

[ редактировать ]

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

  • алгоритма Шуфа Реализация для с премьером .
  • алгоритма Шуфа Реализация для .

См. также

[ редактировать ]
  • Р. Шуф: Эллиптические кривые над конечными полями и вычисление квадратных корней мод. с. Математика. Comp., 44(170):483–494, 1985. Доступно по адресу http://www.mat.uniroma2.it/~schoof/ctpts.pdf.
  • Р. Шуф: Подсчет точек на эллиптических кривых над конечными полями. Дж. Теория. Nombres Bordeaux 7:219–254, 1995. Доступно по адресу http://www.mat.uniroma2.it/~schoof/ctg.pdf.
  • Г. Мюзикер: Алгоритм Шуфа для подсчета очков на . Доступно по адресу http://www.math.umn.edu/~musiker/schoof.pdf.
  • В. Мюллер: Вычисление количества точек эллиптических кривых над конечными простыми телами. Магистерская диссертация. Саарский университет, Саарбрюккен, 1991 г. Доступно по адресу http://lecturer.ukdw.ac.id/vmueller/publications.php.
  • А. Энге: Эллиптические кривые и их приложения в криптографии: Введение. Kluwer Academic Publishers, Дордрехт, 1999.
  • Л. К. Вашингтон: Эллиптические кривые: теория чисел и криптография. Чепмен и Холл/CRC, Нью-Йорк, 2003 г.
  • Н. Коблиц: Курс теории чисел и криптографии, Тексты для аспирантов по математике. № 114, Springer-Verlag, 1987. Второе издание, 1994 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e133e8abd18876bc1fe355eeea4ad1c1__1576981500
URL1:https://arc.ask3.ru/arc/aa/e1/c1/e133e8abd18876bc1fe355eeea4ad1c1.html
Заголовок, (Title) документа по адресу, URL1:
Schoof's algorithm - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)