12-08-2023
Факторизация с помощью эллиптических кривых (англ. elliptic curve method, сокр. ECM) — алгоритм факторизации натурального числа с использованием эллиптических кривых. Данный алгоритм имеет субэкспоненциальное время выполнения. Является третьим по скорости работы после общего метода решета числового поля и метода квадратичного решета.
На практике часто используется для выявления (отбрасывания) небольших простых делителей числа. Если полученное после работы алгоритма число все еще является составным, то остальные сомножители — большие числа. При увеличении количества кривых шансы найти простой делитель возрастают, тем не менее зависимость ожидаемого количества эллиптических кривых от количество цифр в искомом делителе экспоненциальна.
Содержание |
Дано составное целое нечетное число . Нужно найти его нетривиальный делитель , .
Случайным образом выбирается эллиптическая кривая
где , и некоторая точка на ней. Если попытка разложения окажется неудачной, следует взять другие и и повторить алгоритм сначала.
1. Выбирается целое число , делящееся на степени малых простых чисел (не больших некоторого ), не превосходящих , то есть
где — наибольший из возможных показателей, при котором .
2. Вычисление (все действия производятся по модулю n)
где — операция сложения, определенная по групповому закону.
Вычисления проводятся до тех пор, пока при попытке найти число, обратное к (см. групповой закон) не появляется число, не взаимно простое с . Это произойдёт при таком , что , то есть порядок в группе по модулю n является делителем .
3. При применении алгоритма Евклида вместо обращения знаменателя по модулю n, получаем нетривиальный наибольший общий делитель этого знаменателя и n, то есть, собственный делитель числа n.
Если числа p и q — два простых делителя числа n, то эллиптическая кривая y2 = x3 + ax + b (mod n) соответствует двум эллиптическим кривым: по модулю p и по модулю q. Эти две кривые с заданной операцией сложения точек образуют группы, содержащие Np и Nq элементов, соответственно. По теореме Лагранжа для любой точки Р на исходной кривой по модулю p из равенства для минимального положительного числа k следует, что k делит Np (в частности, ). Аналогичное утверждение справедливо и для кривой по модулю q. Для случайно выбранной эллиптической кривой порядки Np и Nq являются случайными числами, близкими к p+1 и q + 1, соответственно (см. ниже). Поэтому маловероятно, что большинство простых делителей Np и Nq совпадают, и вполне вероятно, что при вычислении eP мы столкнёмся с некоторыми по модулю р, но не по модулю q, или наоборот. Если это так, то kP не существует на исходной кривой, а в вычислениях мы нашли такое v, что либо НОД (v, p) = p, либо НОД (v, q) = q, но не одновременно. Тогда НОД (v, n) является нетривиальным делителем числа n.
Допустим, нам нужно факторизовать число n = 455839.
Возьмем эллиптическую кривую и точку, лежащую на этой кривой
Попробуем вычислить 10!P:
1. Для начала вычислим координаты точки .
2. Теперь вычислим .
3. Аналогичным образом можно вычислить , , и так далее. Когда дойдем до 8!P заметим, что требуется вычисление обратного элемента к 599 (mod 455839). Так как 455839 делится на 599, то мы нашли искомое разложение: 455839 = 599·761.
Пусть наименьший делитель числа n равен p. Тогда время работы алгоритма можно оценить величиной
которая выполняется в случае, если граница B1 выбрана близко к величине
Поскольку значение делителя p неизвестно, то выбор значения B1 выполняется эмпирически, что несколько ухудшает практическую оценку сходимости. Отметим, что добавление в алгоритм второй стадии вычислений сохраняет общую асимптотическую оценку, хотя обеспечивает большой практический прирост скорости сходимости алгоритма.
Если сравнивать метод эллиптических кривых с другими методами факторизации, то этот метод относится к классу субэкспоненциальных методов факторизации, а, значит, работает быстрее любого экспоненциального метода. Если сравнивать его с методом квадратичного решета (QS) и методом решета числового поля (NFS), то все зависит от размера наименьшего делителя числа n. Если число n выбрано как в RSA в виде произведения двух простых чисел примерно одинаковой длины, то метод эллиптических кривых имеет ту же оценку, что и метод квадратичного решета, но уступает методу решета числового поля.
Однако если n имеет размерность, превышающую рекордные показателя для методов QS и NFS, (напомним, что последнее[когда?] рекордное разложение чисел RSA с использованием NFS относится к числу длины 768 битов), то единственная надежда найти делитель n может выполнена только с помощью метода эллиптических кривых.
Факторизация с помощью эллиптических кривых.