Алгоритм Шуфа эффективный алгоритм подсчета очков на эллиптические кривые над конечные поля. Алгоритм имеет приложения в криптография на основе эллиптических кривых где важно знать количество баллов, чтобы судить о сложности решения задача дискретного логарифмирования в группа точек на эллиптической кривой.
Алгоритм был опубликован Рене Шуф в 1985 году, и это был теоретический прорыв, так как это был первый детерминированный алгоритм полиномиального времени для подсчет точек на эллиптических кривых. До алгоритма Шуфа подходы к подсчету точек на эллиптических кривых, такие как наивный и бэби-шаг гигантский шаг алгоритмы были по большей части утомительными и имели экспоненциальное время работы.
В этой статье объясняется подход Шуфа с акцентом на математические идеи, лежащие в основе структуры алгоритма.
Вступление
Позволять
быть эллиптическая кривая определен над конечным полем
, куда
за
прайм и
целое число
. Над полем характеристики
эллиптическая кривая может быть задана (коротким) уравнением Вейерштрасса

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

Этот убедительный результат, представленный Хассе в 1934 году, упрощает нашу задачу, сужая
к конечному (хотя и большому) набору возможностей. Определение
быть
, и, используя этот результат, мы теперь можем вычислить значение
по модулю
куда
, достаточно для определения
, и поэтому
. Пока нет эффективного способа вычислить
непосредственно для общего
, можно вычислить
за
небольшой прайм, довольно эффективно. Мы выбрали
быть набором различных простых чисел, таких что
. Данный
для всех
, то Китайская теорема об остатках позволяет нам вычислить
.
Чтобы вычислить
для прайма
, воспользуемся теорией эндоморфизма Фробениуса
и полиномы деления. Обратите внимание, что с учетом простых чисел
Это не потеря, так как мы всегда можем выбрать более крупное прайм-лист на его место, чтобы гарантировать, что продукт достаточно большой. В любом случае алгоритм Шуфа чаще всего используется при рассмотрении дела.
поскольку есть более эффективные, так называемые
адические алгоритмы для полей с малой характеристикой.
Эндоморфизм Фробениуса
Учитывая эллиптическую кривую
определяется по
мы рассматриваем вопросы
над
, то алгебраическое замыкание из
; т.е. мы допускаем точки с координатами в
. В Эндоморфизм Фробениуса из
над
продолжается до эллиптической кривой на
.
Эта карта - личность на
и можно продолжить его до бесконечно удаленной точки
, делая это групповой морфизм из
себе.
Эндоморфизм Фробениуса удовлетворяет квадратичному многочлену, связанному с мощностью
по следующей теореме:
Теорема: Эндоморфизм Фробениуса, задаваемый формулой
удовлетворяет характеристическому уравнению
куда 
Таким образом, у нас есть для всех
который
, где + обозначает сложение на эллиптической кривой, а
и
обозначают скалярное умножение
к
и из
к
.
Можно попытаться символически вычислить эти точки
,
и
как функции в координатное кольцо
из
а затем найдите значение
которое удовлетворяет уравнению. Однако степени становятся очень большими, и такой подход непрактичен.
Идея Шуфа заключалась в том, чтобы провести это вычисление, ограничиваясь порядком ведения.
для различных малых простых чисел
.Исправление нечетного простого числа
, перейдем к решению задачи определения
, определяется как
, для данного простого числа
. Если точка
находится в
-торсионная подгруппа
, тогда
куда
- единственное целое число такое, что
и
. Обратите внимание, что
и что для любого целого числа
у нас есть
. Таким образом
будет иметь тот же порядок, что и
. Таким образом, для
принадлежащий
, у нас также есть
если
. Таким образом, мы свели нашу задачу к решению уравнения

куда
и
иметь целые значения в
.
Вычисление по модулю простых чисел
В лth полином деления таков, что его корни в точности Икс координаты пунктов порядка л. Таким образом, чтобы ограничить вычисление
к л-Точки кручения означает вычисление этих выражений как функций в координатном кольце E и по модулю лмногочлен деления. Т.е. мы работаем в
. Это, в частности, означает, что степень Икс и Y определяется через
не больше 1 в у и самое большее
в Икс.
Скалярное умножение
можно сделать либо сложить и сложить методы или с помощью
многочлен деления. Последний подход дает:

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

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

и иметь это

Вот вроде не правильно, выбрасываем
?
Сейчас если
для одного
тогда
удовлетворяет

для всех л-точки кручения п.
Как упоминалось ранее, использование Y и
теперь мы можем определить, какое из двух значений
(
или же
) работает. Это дает значение
. Алгоритм Шуфа хранит значения
в переменной
для каждого прайма л считается.
Случай 2: 
Начнем с предположения, что
. С л нечетное простое число не может быть
и поэтому
. Характеристическое уравнение дает
. И, следовательно, что
. Отсюда следует, что q квадрат по модулю л. Позволять
. Вычислить
в
и проверьте, есть ли
. Если так,
является
в зависимости от координаты y.
Если q оказывается не квадрат по модулю л или если уравнение не выполняется ни для одного из ш и
, наше предположение, что
ложно, поэтому
. Характеристическое уравнение дает
.
Дополнительный случай 
Если вы помните, в наших первоначальных рассмотрениях случай
. Поскольку мы предполагаем q быть странным,
и, в частности,
если и только если
имеет элемент порядка 2. По определению добавления в группе любой элемент порядка 2 должен иметь вид
. Таким образом
тогда и только тогда, когда многочлен
имеет корень в
, если и только если
.
Алгоритм
Исходные данные: 1. Эллиптическая кривая.
. 2. Целое число q для конечного поля
с
. Выход: количество точек E над
. Выберите набор нечетных простых чисел S не содержащий п такой, что
Положить
если
, еще
. Вычислить полином деления
. Все вычисления в приведенном ниже цикле выполняются. в ринге
За
делать: Позволять
быть уникальным целым числом такой, что
и
. Вычислить
,
и
. если
тогда Вычислить
. за
делать: если
тогда если
тогда
; еще
. иначе если q квадрат по модулю л тогда вычислить ш с
вычислить
если
тогда
иначе если
тогда
еще
еще
Использовать Китайская теорема об остатках вычислить т по модулю N из уравнений
, куда
. Выход
.
Сложность
Большую часть вычислений занимает оценка
и
, для каждого простого числа
, то есть вычисление
,
,
,
для каждого прайма
. Это включает возведение в степень в кольце
и требует
умножения. Поскольку степень
является
, каждый элемент кольца является полиномом степени
. Посредством теорема о простых числах, есть вокруг
простые числа размера
, давая это
является
и получаем, что
. Таким образом, каждое умножение в кольце
требует
умножения в
что, в свою очередь, требует
битовые операции. Всего количество битовых операций для каждого простого числа
является
. Учитывая, что это вычисление необходимо выполнить для каждого из
простых чисел, общая сложность алгоритма Шуфа оказывается равной
. Использование быстрой полиномиальной и целочисленной арифметики сводит это к
.
Улучшения алгоритма Шуфа
В 1990-е годы Ноам Элкис, с последующим Аткин А.О., разработал улучшения основного алгоритма Шуфа, ограничив набор простых чисел
ранее считались простыми числами определенного вида.Их стали называть простыми числами Элкиса и простыми числами Аткина соответственно. Премьер
называется простым числом Элкиса, если характеристическое уравнение:
раскалывается
, в то время как простое число Аткина - это простое число, которое не является простым числом Элкиса. Аткин показал, как объединить информацию, полученную из простых чисел Аткина, с информацией, полученной из простых чисел Элкиса, для создания эффективного алгоритма, который стал известен как Алгоритм Шуфа – Элкиса – Аткина. Первая проблема, которую необходимо решить, - определить, является ли данное простое число Элкисом или Аткином. Для этого мы используем модульные многочлены, которые получены в результате изучения модульные формы и интерпретация эллиптические кривые над комплексными числами как решетки. Как только мы определили, в каком случае мы находимся, вместо использования полиномы деления, мы можем работать с многочленом, который имеет более низкую степень, чем соответствующий многочлен деления:
скорее, чем
. Для эффективной реализации используются вероятностные алгоритмы поиска корней, что делает это Алгоритм Лас-Вегаса а не детерминированный алгоритм. При эвристическом предположении, что примерно половина простых чисел до
являются простыми числами Элкиса, это дает алгоритм, более эффективный, чем у Шуфа, с ожидаемым временем работы
используя наивную арифметику, и
используя быструю арифметику. Хотя известно, что это эвристическое предположение справедливо для большинства эллиптических кривых, известно, что оно верно не во всех случаях, даже при GRH.
Реализации
Несколько алгоритмов были реализованы в C ++ Майк Скотт и доступны с исходный код. Реализации бесплатны (без условий, без условий) и используют МИРАКЛ библиотека, которая распространяется под AGPLv3.
- Алгоритм Шуфа выполнение за
с премьер
. - Алгоритм Шуфа выполнение за
.
Смотрите также
Рекомендации
- Р. Шоф: Эллиптические кривые над конечными полями и вычисление квадратного корня mod p. Математика. Comp., 44 (170): 483–494, 1985. Доступно на http://www.mat.uniroma2.it/~schoof/ctpts.pdf
- Р. Шоф: Подсчет точек на эллиптических кривых над конечными полями. J. Theor. Nombres Bordeaux 7: 219–254, 1995. Доступно на http://www.mat.uniroma2.it/~schoof/ctg.pdf
- Г. Мусикер: Алгоритм Шуфа для подсчета очков на
. Доступны на http://www.math.umn.edu/~musiker/schoof.pdf - В. Мюллер: Die Berechnung der Punktanzahl von elliptischen kurven über endlichen Primkörpern. Дипломная работа. Universität des Saarlandes, Saarbrücken, 1991. Доступно на http://lecturer.ukdw.ac.id/vmueller/publications.php
- А. Энге: Эллиптические кривые и их приложения в криптографии: Введение. Kluwer Academic Publishers, Дордрехт, 1999.
- Л. С. Вашингтон: Эллиптические кривые: теория чисел и криптография. Chapman & Hall / CRC, Нью-Йорк, 2003.
- Н. Коблиц: курс теории чисел и криптографии, выпускные тексты по математике. № 114, Springer-Verlag, 1987. Издание второе, 1994.