Факторизация с помощью эллиптических кривых (англ. elliptic curve factorization method, сокр. ECM) или Метод Ленстры факторизации с помощью эллиптических кривых (англ. Lenstra elliptic curve factorization) — алгоритм факторизации натурального числа с использованием эллиптических кривых. Данный алгоритм имеет субэкспоненциальную сложность[1]. ECM является третьим по скорости работы[2] после общего метода решета числового поля и метода квадратичного решета.
На практике лучше всего подходит для нахождения небольших простых делителей числа, и поэтому считается узкоспециализированным[3] алгоритмом.
Является лучшим алгоритмом[4] для поиска простых делителей длины 20-25 знаков (размером 64…83 бит), потому что его сложность в основном зависит от наименьшего простого делителя p, а не от факторизируемого числа.
Часто используется для выявления (отбрасывания) небольших простых делителей числа. Если полученное после работы алгоритма число все ещё является составным, то остальные сомножители — большие числа, и для дальнейшего разложения имеет смысл использовать более общие алгоритмы факторизации.
Самый большой делитель, найденный использованием этого алгоритма, имеет длину 83 знака и был найден Райаном Проппером (англ. Ryan Propper) 7 сентября 2013 г[5].
Алгоритм факторизации (нахождения нетривиального делителя) натурального числа [6]:
- Выбирается случайная эллиптическая кривая над , с уравнением вида : , на этой кривой выбирается нетривиальная точка . Это может быть сделано следующим образом:
- Случайным образом выбираются числа .
- Вычисляется .
- Выбирается целое число , являющиеся произведением большого количества малых чисел. Например, в качестве можно выбрать:
- Факториал некоторого небольшого числа .
- Произведение нескольких малых простых чисел в малых степенях. То есть выбираются простые числа (не превосходящие некоторое число ), и степени , такие, что результат возведения в соответствующую степень не превосходит некоторого числа :
- где — наибольший из возможных показателей, при котором .
- Вычисляется произведение на эллиптической кривой :
- , где — операция сложения, определённая по групповому закону.
- Операция сложения требует нахождения углового коэффициента отрезка, соединяющего суммируемые точки, и, следовательно, требует выполнения операции деления по модулю n. Операция деления по модулю осуществляется с помощью расширенного алгоритма Евклида. В частности, деление на некоторое число v (mod n) включает в себя нахождение НОД(v, n). В случае НОД(v, n) 1, НОД(v, n) n, -сложение не даст какой-то точки осмысленной на эллиптической кривой, из чего следует, что НОД(v, n) — нетривиальный делитель n. Исходя из этого, в процессе вычисления возможны следующие случаи:
- Если в процессе вычисления не встретились необратимые элементы (mod n), то необходимо выбрать другие эллиптическую кривую и точку и повторить алгоритм сначала.
- Если на каком-то этапе , где (), то необходимо выбрать другие эллиптическую кривую и точку и повторить алгоритм сначала, потому что точка останется неизменной после дальнейших операций сложения.
- Если на каком-то этапе вычислений НОД(v, n) 1 и НОД(v, n) n, то НОД(v, n) — искомый нетривиальный делитель n.
Уравнение , взятое по модулю числа n задаёт эллиптическую кривую . Если числа p и q — два простых делителя числа n, то вышеупомянутое уравнение будет верно и при взятии по модулю p или по модулю q. То есть : и : задают, соответственно, две эллиптические кривые (меньшие, чем ). Однако и с заданной операцией сложения — не только эллиптические кривые: они также являются группами. Пусть они содержат Np и Nq элементов, соответственно, тогда если:
- — любая точка исходной кривой
- — положительные числа, такие что: на
- — минимальное из
То по теореме Лагранжа верно, что
- — делитель
Аналогичное утверждение справедливо и для кривой по модулю q.
Порядок группы точек, лежащих на эллиптической кривой над Zp, согласно теореме Хассе ограничен:
p + 1 − 2√p p + 1 + 2√p
Для случайно выбранной эллиптической кривой порядки Np и Nq являются случайными числами, ограниченными по теореме Хассе (см. ниже). Маловероятно, что большинство простых делителей Np и Nq совпадают, и вероятно, что при вычислении eP встретится некоторый по модулю р, но не по модулю q, или наоборот. Если это так, то kP не существует на исходной кривой, а в вычислениях было найдено такое v, что либо НОД (v, p) = p, либо НОД (v, q) = q, но не одновременно. Тогда НОД (v, n) является нетривиальным делителем числа n.
ECM является доработкой более старого P-1 метода Полларда[7].
Алгоритм p − 1 находит такие простые делители p, что (p − 1) — B-гладкое для некоторого небольшого B. Для любого e, кратного (p − 1), и для любого a, взаимно простого с p по малой теорема Ферма верно, что ae ≡ 1 (mod p). Тогда НОД(ae − 1, n) с большой вероятностью будет делителем n. Однако, Алгоритм p − 1 не сработает[7], когда у p есть большие простые делители. ECM в этом случае сработает корректно, потому что вместо рассмотрения мультипликативной группы над Zp, порядок которой всегда равен p − 1, рассматривается группа случайной эллиптической кривой над конечным полем Zp.
Порядок группы точек, лежащих на эллиптической кривой над Zp, согласно теореме Хассе ограничен:
p + 1 − 2√p p + 1 + 2√p. Представляется важным исследовать [8] вероятность того, что в этом интервале может лежать некоторое гладкое число (в этом случае существуют кривые, порядок которых — гладкое число). Не существует доказательств того, что в интервале Хассе есть всегда некоторое гладкое число, однако использованием эвристических вероятностных методов, теоремы Канфилда-Эрдёша-Померанса(англ. Canfield–Erdős–Pomerance theorem)[9] и L-нотации получается оценка, что достаточно взять L[√2/2, √2] кривых до получения гладкого порядка группы. Это эвристическая оценка хорошо применима на практике.
Факторизация[10] числа n = 455839.
Выбирается эллиптическая кривая и точка, лежащая на этой кривой
Последовательно вычисляется 10!P:
1. Вычисляются координаты точки .
- Тангенс угла наклона касательной в точке P равен:
- Координаты точки :
- .
- Можно показать, что точка 2P действительно лежит на кривой:
2. Вычисляется .
- Тангенс угла наклона касательной в точке 2P составляет
- .
- Для вычисления 593 / 106 по модулю n можно воспользоваться расширенным алгоритмом Евклида: 455839 = 4300·106 + 39, далее 106 = 2·39 + 28, далее 39 = 28 + 11, далее 28 = 2·11 + 6, далее 11 = 6 + 5, далее 6 = 5 + 1. Следовательно, НОД(455839, 106) = 1, и в обратную сторону: 1 = 6 — 5 = 2·6 — 11 = 2·28 — 5·11 = 7·28 — 5·39 = 7·106 — 19·39 = 81707·106 — 19·455839. Откуда 1/106 = 81707 (mod 455839), таким образом, −593 / 106 = 322522 (mod 455839).
- С учётом вычисленного s, вычисляются координаты точки 2(2P), так же, как это было сделано выше: 4P = (259851, 116255). Можно показать, что точка действительно лежит на нашей эллиптической кривой.
- Суммированием 4P и 2P находится .
3. Аналогичным образом можно вычислить , , и так далее. В момент вычисления 640P можно заметить, что требуется вычисление обратного элемента к 599 (mod 455839). Так как 455839 делится на 599, искомое разложение найдено: 455839 = 599·761.
Прежде чем рассмотреть проективную плоскость над , стоит рассмотреть обычную проективную плоскость над ℝ: вместо точек рассматриваются прямые, проходящие через 0. Прямая может быть задана с помощью ненулевой точки следующим образом: для любой точки этой прямой ⇔ ∃ c ≠ 0, такие что x' = cx, y' = cy и z' = cz. В соответствии с этим отношением эквивалентности, пространство называется проективной плоскостью . Точки плоскости , соответствуют линиям трёхмерного пространства, проходящим через 0. Отметим, что точка не существует в этом пространстве, так она не задаёт прямой, проходящей через 0.
Алгоритм Ленстры не предполагает обязательного использования поля ℝ, конечное поле также обеспечивает структуру группу над эллиптической кривой. Однако та же кривая, но с операциями над , не образует группу, если не является простым числом. Метод факторизации с помощью эллиптических кривых использует особенности работы закона сложения в случаях, когда — не простое.
Алгоритм факторизации в проективных координатах[14]:.
Нейтральный элемент в этом случае задается точкой на бесконечности .
Пусть n — целое и положительное число, эллиптическая кривая .
- Выбираются (a ≠ 0).
- Вычисляется . Эллиптическая кривая E задаётся как (форма Вейерштрасса). С использованием проективных координат эллиптическую кривую можно записать в виде однородного уравнения . лежит на этой кривой.
- Выбирается верхняя граница . Примечание: факторы могут быть только в случае, когда порядок группы E над — B-гладкое число. Это означает, что все простые факторы, E над должны быть меньше или равны B.
- Вычисляется НОК.
- Вычисляется в кольце . Важно заметить, что если || - B-гладкое, и n — простое (в этом случае — поле), то . Однако в случае, если || - B-гладкое для некоторого числа p, являющегося делителем n, результат может быть не равен (0:1:0), потому что операции сложения и умножения могут не так хорошо работать, если n не является простым числом. Таким образом возможно найти нетривиальный делитель n.
- Если делитель не был найден, то алгоритм повторяется с шага 2.
В пункте 5 вычисление может быть невозможно, так как сложение двух точек над эллиптической кривой требует вычисления , что не всегда возможно, если n не является простым числом.
Возможно вычисление суммы двух точек следующим способом, не требующим простоты n (не требующим того, чтобы являлось полем):
- ,
- ,
- ,
- , координаты в дальнейшем максимально упрощаются (нетривиальный делитель n найден, если при упрощении возникает ошибка).
Использование кривых Эдвардса позволяет[15] снизить количество модульных операций и уменьшить время выполнения алгоритма по сравнению с эллиптическими кривыми в форме Вейерштрасса () и в форме Монтгомери ().
Определение:
Пусть — это поле, характеристикой которого не является число , и пусть . Тогда кривая Эдвардса определяется как
Существуют пять способов построить множество точек на кривой Эдварса: множество аффинных точек, множество проективных точек, множество инвертированных точек (англ. inverted points), множество расширенных точек (англ. extended points) и множество завершённых точек (англ. completed points).
Например, множество аффинных точек задаётся как: .
Операция сложения:
Закон сложения задаётся формулой .
Точка (0,1) — это нейтральный элемент, а обратная к точке это .
Другие формы получаются аналогично тому, как проективная кривая Вейерштрасса получается из аффинной кривой.
Пример сложения:
Можно продемонстрировать закон сложения на примере эллиптической кривой в форме Эдвардса с d=2: , и точки на ней. Предлагается проверить, что сумма P1 с нейтральным элементом (0,1) равна P1. Действительно:
У каждой эллиптической кривой в форме Эдварса существует точка порядка 4. Поэтому периодическая группа кривой Эдвардса над изоморфна или .
Для факторизации с помощью алгоритма Ленстры наиболее интересны[16] случаи и .
Пример кривой, которая содержит периодическую группу, изоморфную :
с точкой , лежащей на единичном круге с центром в точке (0,-1).
- и
- и
- Koblitz N. A. Course in number theory and cryptography (неопр.). — Springer-Verlag, 1987.
- Lenstra A. K., Lenstra H. W., Lovász L. Factoring polynomials with rational coefficients (неопр.) // Math. Ann.. — 1982. — Т. 261.
- Lenstra Jr., H. W. Factoring integers with elliptic curves (англ.) // Annals of Mathematics : journal. — 1987. — Vol. 126, no. 2. — P. 649—673.
- Trappe, W., Washington, L. C. Introduction to Cryptography with Coding Theory (англ.). — Second. — Pearson Prentice Hall, 2006. — ISBN 0-13-186239-1.
- Daniel J. Bernstein, Peter Birkner, Tanja Lange, Christiane Peters. ECM using Edwards curves (англ.) // Mathematics of Computation[англ.] : journal. — 2013. — Vol. 82. — P. 1139—1179. — doi:10.1090/S0025-5718-2012-02633-0.
- Ишмухаметов Ш. Т. Методы факторизации натуральных чисел. — Казань: Казан. ун.. — 2011. — 190 с.
- David Bressoud and Stan Wagon. A Course in Computational Number Theory. — Key College Publishing/Springer, 2000. — С. 168—169. — 366 с. — ISBN 978-1-930190-10-8.
- Steven Galbraith. Mathematics of Public Key Cryptography. — Cambridge University Press, 2012. — С. 330—332. — 630 с. — ISBN 9781139012843.
- О. Н. Василенко. Теоретико-числовые алгоритмы в криптографии. — М.: МЦНМО, 2006. — 335 с. — ISBN 5-94057-103-4.
- W. Trappe and L. C. Washington. Introduction to Cryptography with Coding Theory. — Second. — Pearson Prentice Hall, 2006. — ISBN 0-13-186239-1.
- Parker D. Elliptic curves and Lenstra’s factorization algorithm (англ.) // University of Chicago: REU 2014. — 2014.
- E. R. Canfield, Paul Erdős, Carl Pomerance. On a Problem of Oppenheim concerning "Factorisatio Numerorum" (англ.) // Journal of number theory. — 1983. — Вып. 17.
- Richard P. Brent. Some integer factorization algorithms using elliptic curves (англ.) // Australian Computer Science Communications 8, 149-163. — 1998.
- H. W. Lenstra, JR. Elliptic Curves and Number-Theoretic Algorithms (англ.) // Proceedings of the International Congress of Mathematicians. — 1986. Архивировано 29 марта 2017 года.
- Thorsten Kleinjung, Kazumaro Aoki, Jens Franke, Arjen Lenstra, Emmanuel Thomé, Joppe Bos, Pierrick Gaudry, Alexander Kruppa, Peter Montgomery, Dag Arne Osvik, Herman te Riele, Andrey Timofeev, Paul Zimmermann. Factorization of a 768-bit RSA modulus (англ.) // Cryptology ePrint Archive, Report 2010/006. — 2010.
- GMP-ECM, эффективная реализация ECM.
- ECMNet, простая реализация в виде сервер-клиент.
- pyecm, реализация ECM на Python 2.