Меню
Главная
Случайная статья
Настройки
|
Факторизация с помощью эллиптических кривых (англ. 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). В случае
- Если в процессе вычисления не встретились необратимые элементы
- Если на каком-то этапе , где (), то необходимо выбрать другие эллиптическую кривую и точку и повторить алгоритм сначала, потому что точка останется неизменной после дальнейших операций сложения.
- Если на каком-то этапе вычислений
Обоснование
Уравнение , взятое по модулю числа n задаёт эллиптическую кривую . Если числа p и q — два простых делителя числа n, то вышеупомянутое уравнение будет верно и при взятии по модулю p или по модулю q. То есть : и : задают, соответственно, две эллиптические кривые (меньшие, чем ). Однако и с заданной операцией сложения — не только эллиптические кривые: они также являются группами. Пусть они содержат Np и Nq элементов, соответственно, тогда если:
- — любая точка исходной кривой
- — положительные числа, такие что: на
- — минимальное из
То по теореме Лагранжа верно, что
- — делитель
Аналогичное утверждение справедливо и для кривой по модулю q.
Порядок группы точек, лежащих на эллиптической кривой над Zp, согласно теореме Хассе ограничен:
Для случайно выбранной эллиптической кривой порядки Np и Nq являются случайными числами, ограниченными по теореме Хассе (см. ниже). Маловероятно, что большинство простых делителей Np и Nq совпадают, и вероятно, что при вычислении eP встретится некоторый по модулю р, но не по модулю q, или наоборот. Если это так, то kP не существует на исходной кривой, а в вычислениях было найдено такое v, что либо НОД (v, p) = p, либо НОД (v, q) = q, но не одновременно. Тогда НОД (v, n) является нетривиальным делителем числа n.
ECM является доработкой более старого P-1 метода Полларда[7].
Алгоритм
Порядок группы точек, лежащих на эллиптической кривой над Zp, согласно теореме Хассе ограничен:
p + 1 2p p + 1 + 2p. Представляется важным исследовать [8] вероятность того, что в этом интервале может лежать некоторое гладкое число (в этом случае существуют кривые, порядок которых — гладкое число). Не существует доказательств того, что в интервале Хассе есть всегда некоторое гладкое число, однако использованием эвристических вероятностных методов, теоремы Канфилда-Эрдёша-Померанса(англ. Canfield–Erds–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.
Вычислительная сложность
Пусть наименьший делитель числа n равен p. Тогда количество выполняемых арифметических операций можно оценить величиной[11]:
(или в L-нотации).
Если заменить p на , то получим субэкспоненциальную оценку сложности: .
Если сравнивать метод эллиптических кривых с другими методами факторизации, то этот метод относится к классу субэкспоненциальных[1] методов факторизации, а, значит, работает быстрее любого экспоненциального метода. Если сравнивать его с методом квадратичного решета (QS) и методом решета числового поля (NFS), то все зависит от размера наименьшего делителя числа n[12]. Если число n выбрано как в RSA в виде произведения двух простых чисел примерно одинаковой длины, то метод эллиптических кривых имеет ту же оценку, что и метод квадратичного решета, но уступает методу решета числового поля[13].
Алгоритм с проективными координатами
Прежде чем рассмотреть проективную плоскость над , стоит рассмотреть обычную проективную плоскость над : вместо точек рассматриваются прямые, проходящие через 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).
- и
- и
См. также
Примечания
- 1 2 Bressoud, 2000, с. 331.
- Parker, 2014.
- Bressoud, 2000.
- Brent, 1998.
- 50 самых больших делителей найденных ECM . Дата обращения: 27 ноября 2016. Архивировано 20 февраля 2009 года.
- Lenstra, 1987, с. 16—20.
- 1 2 Lenstra, 1987.
- Lenstra, Number-Theoretic Algorithms, 1986, с. 16.
- Canfield, 1983.
- Introduction to Cryptography with Coding Theory, 2006.
- Василенко, 2006, с. 109.
- Lenstra, Number-Theoretic Algorithms, 1986, с. 331.
- Brent, 1998, с. 12.
- Василенко, 2006, с. 112.
- ECM using Edwards curves, 2013, с. 2—3.
- ECM using Edwards curves, 2013, с. 19.
Литература- Koblitz N. A. Course in number theory and cryptography (неопр.) . — Springer-Verlag, 1987.
- Lenstra A. K., Lenstra H. W., Lovsz 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 Erds, 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.
|
|