Алгоритм Шуфа
Алгоритм Шуфа — эффективный алгоритм подсчета точек на эллиптических кривых над конечными полями . Алгоритм имеет приложения в криптографии эллиптических кривых , где важно знать количество точек, чтобы судить о сложности решения задачи дискретного логарифмирования в группе точек на эллиптической кривой.
Алгоритм был опубликован Рене Шуфом в 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 г.