Факторизация эллиптической кривой Ленстры - Lenstra elliptic-curve factorization
В Факторизация эллиптической кривой Ленстры или метод факторизации эллиптической кривой (ECM) является быстрым, суб-экспоненциальное время работы, алгоритм для целочисленная факторизация, в котором работают эллиптические кривые. Для общее назначение Факторинг, ECM является третьим по скорости известным методом факторинга. Второй по скорости квадратное сито с множественными полиномами, а самый быстрый - это общее числовое поле сито. Факторизация эллиптической кривой Ленстры названа в честь Хендрик Ленстра.
На практике ECM считается алгоритмом факторинга специального назначения, так как он больше всего подходит для поиска небольших факторов. В настоящее время[Обновить], это по-прежнему лучший алгоритм для делители не более 50-60 цифры, так как время его работы зависит от размера наименьшего фактора п а не по размеру номера п подлежат учету. Часто ECM используется для удаления небольших множителей из очень большого целого числа с множеством множителей; если оставшееся целое число по-прежнему составное, то оно имеет только большие множители и факторизуется с использованием универсальных методов. Самый большой фактор, обнаруженный с помощью ECM, состоит из 83 десятичных цифр и был обнаружен 7 сентября 2013 года Р. Проппером.[1] Увеличение количества тестируемых кривых увеличивает шансы найти фактор, но это не так. линейный с увеличением количества цифр.
Алгоритм
Метод факторизации эллиптической кривой Ленстры для нахождения множителя заданного натурального числа работает следующим образом:
- Выберите случайный эллиптическая кривая над , с уравнением вида вместе с нетривиальным точка в теме.
- Это можно сделать, выбрав сначала случайный , а затем установив чтобы убедиться, что точка находится на кривой.
- Можно определить Дополнение двух точек на кривой, чтобы определить Группа. Законы сложения приведены в статья об эллиптических кривых.
- Мы можем формировать повторяющиеся кратные точки : . В формулах сложения берется модульный уклон хорды, соединяющей ее и , и, таким образом, деление между классами остатков по модулю , выполненный с использованием расширенный алгоритм Евклида. В частности, деление на некоторые включает расчет .
- Предполагая, что мы вычисляем наклон формы с участием , то если , результат прибавления будет , точка «на бесконечности», соответствующая пересечению «вертикальной» линии, соединяющей и кривая. Однако если , то добавление точек не приведет к появлению значимой точки на кривой; но, что более важно, является нетривиальным фактором .
- Вычислить на эллиптической кривой (), где представляет собой произведение множества малых чисел: скажем, произведение малых простых чисел в малых степенях, как в алгоритм p-1, или факториал для некоторых не слишком больших . Это можно сделать эффективно, по одному небольшому фактору за раз. Скажите, чтобы получить , сначала вычислить , тогда , тогда , и так далее. выбрано достаточно маленьким, чтобы разумное добавление точек может быть произведено в разумные сроки.
- Если мы закончим все вычисления выше, не встретив необратимых элементов (), это означает, что порядок эллиптических кривых (по модулю простых чисел) не является гладкий; плавный достаточно, поэтому нам нужно попробовать еще раз с другой кривой и начальной точкой.
- Если мы встретим мы сделали: это нетривиальный фактор .
Сложность времени зависит от размера наименьшего простого множителя числа и может быть представлена как ехр [(√2 + о (1)) √перп ln lnп], где п наименьший фактор п, или , в L-обозначение.
Почему алгоритм работает?
Если п и q два простых делителя п, тогда у2 = Икс3 + топор + б (модп) следует то же уравнение также по модулюп и по модулюq. Эти две меньшие эллиптические кривые с -дополнение теперь подлинное группы. Если эти группы имеют Nп и Nq элементов соответственно, то для любой точки п на исходной кривой по Теорема Лагранжа, k > 0 минимален такой, что на кривой по модулю п подразумевает, что k разделяет Nп; более того, . Аналогичное утверждение верно для кривой по модулю q. Когда эллиптическая кривая выбирается случайным образом, то Nп и Nq случайные числа, близкие к п + 1 и q + 1, соответственно (см. ниже). Следовательно, маловероятно, что большинство основных факторов Nп и Nq одинаковы, и вполне вероятно, что при вычислении eP, мы встретим некоторые кП то есть ∞ по модулюп но нет по модулюq, или наоборот. В этом случае кП не существует на исходной кривой, и в ходе вычислений мы обнаружили некоторые v либо с gcd (v,п) = п или gcd (v, q) = q, но не то и другое. Это, gcd (v, п) дал нетривиальный фактор изп.
ECM по своей сути является улучшением более старых п − 1 алгоритм. В п − 1 алгоритм находит простые множители п такой, что п − 1 является b-powersmooth для малых значений б. Для любого е, кратное п − 1, и любой а относительно простой к п, от Маленькая теорема Ферма у нас есть ае ≡ 1 (мод п). потом gcd (ае − 1, п) может произвести фактор п. Однако алгоритм не работает, когда п - 1 имеет большие простые множители, как и в случае чисел, содержащих сильные простые числа, Например.
ECM обходит это препятствие, учитывая группа случайного эллиптическая кривая над конечное поле Zп, а не рассматривать мультипликативная группа из Zп в котором всегда порядокп − 1.
Порядок группы эллиптической кривой над Zп варьируется (довольно случайно) между п + 1 − 2√п и п + 1 + 2√п от Теорема Хассе, и, вероятно, будет гладким для некоторых эллиптических кривых. Хотя нет никаких доказательств того, что гладкий групповой порядок будет найден в интервале Хассе, используя эвристический вероятностные методы, Теорема Кэнфилда – Эрдеша – Померанса с соответствующим образом оптимизированным выбором параметров, а L-обозначение, мы можем рассчитывать попробовать L[√2/2, √2] кривые до получения плавного группового порядка. Эта эвристическая оценка очень надежна на практике.
Пример
Следующий пример взят из Трапп и Вашингтон (2006), с добавлением некоторых деталей.
Мы хотим учитывать п = 455839. Выберем эллиптическую кривую у2 = Икс3 + 5Икс – 5, с точкой п = (1, 1) на нем, и давайте попробуем вычислить (10!)п.
Наклон касательной в некоторой точке А=(Икс, у) является s = (3Икс2 + 5)/(2у) (мод. n). С помощью s мы можем вычислить 2А. Если значение s имеет форму а / б где б > 1 и gcd (а,б) = 1, необходимо найти модульный обратный из б. Если его нет, gcd (п,б) - нетривиальный фактор п.
Сначала мы вычислить 2п. У нас есть s(п) = s(1,1) = 4, так что координаты 2п = (Икс', y ′) находятся Икс' = s2 – 2Икс = 14 и y ′ = s(Икс – Икс') – у = 4(1 – 14) – 1 = –53, все числа понятны (мод п). Просто чтобы проверить, что это 2п действительно на кривой: (–53)2 = 2809 = 143 + 5·14 – 5.
Затем вычисляем 3 (2п). У нас есть s(2п) = s(14, -53) = –593/106 (мод. п). С использованием Евклидов алгоритм: 455839 = 4300·106 + 39, тогда 106 = 2·39 + 28, тогда 39 = 28 + 11, тогда 28 = 2·11 + 6, тогда 11 = 6 + 5, тогда 6 = 5 + 1. Следовательно gcd (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. Следовательно 106−1 = 81707 (мод 455839), и –593/106 = –133317 (мод. 455839). Учитывая это s, мы можем вычислить координаты 2 (2п), как и выше: 4п = (259851, 116255). Просто чтобы убедиться, что это действительно точка на кривой: у2 = 54514 = Икс3 + 5Икс - 5 (обр. 455839). После этого мы можем вычислить .
Аналогичным образом мы можем вычислить 4!пи так далее, но 8!п требует инвертирования 599 (мод. 455839). Алгоритм Евклида дает, что 455839 делится на 599, и мы нашли факторизация 455839 = 599 · 761.
Причина, по которой это сработало, заключается в том, что кривая (мод. 599) имеет 640 = 27·5 очков, а (мод. 761) она имеет 777 = 3·7·37 точки. Более того, 640 и 777 - наименьшие положительные целые числа. k такой, что кП = ∞ на кривой (мод. 599) и (мод 761), соответственно. поскольку 8! кратно 640, но не 777, мы имеем 8!п = ∞ на кривой (мод. 599), но не на кривой (мод 761), следовательно, повторное сложение здесь прервалось, что привело к факторизации.
Алгоритм с проективными координатами
Прежде чем рассматривать проективную плоскость над сначала рассмотрим "нормальный" проективное пространство над ℝ: вместо точек изучаются прямые, проходящие через начало координат. Линия может быть представлена как ненулевая точка при соотношении эквивалентности ~, заданном формулой: ⇔ ∃ c ≠ 0 такое, что х '= cИкс, y '= cу и z '= cz. При этом отношении эквивалентности пространство называется проективная плоскость ; точки, обозначаемые , соответствуют линиям в трехмерном пространстве, проходящим через начало координат. Обратите внимание, что точка не существует в этом пространстве, так как для рисования линии в любом возможном направлении требуется по крайней мере один из x ', y' или z '≠ 0. Теперь заметьте, что почти все линии проходят через любую заданную базовую плоскость - например, (Икс,Y, 1) -плоскость, а прямые, точно параллельные этой плоскости, имеющие координаты (X, Y, 0), укажите направления однозначно, как «точки на бесконечности», которые используются в аффинном (X, Y) -плоскость лежит выше.
В алгоритме используется только групповая структура эллиптической кривой над полем. Поскольку нам не обязательно нужно поле, конечное поле также будет обеспечивать групповую структуру на эллиптической кривой. Однако, учитывая ту же кривую и работу над с участием п не прайм не дает группы. Метод эллиптических кривых использует случаи нарушения закона сложения.
Сформулируем алгоритм в проективных координатах. Тогда нейтральный элемент задается бесконечно удаленной точкой . Позволять п быть (положительным) целым числом и рассмотреть эллиптическую кривую (набор точек с некоторой структурой на ней) .
- Выбирать с участием а ≠ 0.
- Рассчитать . Эллиптическая кривая E тогда в форме Вейерштрасса, заданной формулой а с использованием проективных координат эллиптическая кривая задается однородным уравнением . Это имеет смысл .
- Выберите верхнюю границу для этой эллиптической кривой. Примечание: вы найдете только факторы п если групповой порядок эллиптической кривой E над (обозначается ) является B-гладкий, что означает, что все простые множители должно быть меньше или равно B.
- Рассчитать .
- Рассчитать (k раз) в ринге . Обратите внимание, что если является B-гладкий и п простое (и, следовательно, это поле), что . Однако если бы только B-гладко для некоторого дивизора п из п, произведение может не быть (0: 1: 0), потому что сложение и умножение не определены, если п не простое. В этом случае можно найти нетривиальный дивизор.
- Если нет, вернитесь к шагу 2. Если это произойдет, вы заметите это при упрощении продукта.
В пункте 5 сказано, что при определенных обстоятельствах может быть найден нетривиальный дивизор. Как указано в статье Ленстры (Факторинг целых чисел с эллиптическими кривыми), для добавления необходимо предположение . Если не и отличное (в остальном сложение работает аналогично, но немного отличается), то сложение работает следующим образом:
- Вычислять: ,
- ,
- ,
- ,
- .
Если сложение не удалось, это произойдет из-за ошибки при вычислении В частности, потому что не всегда можно рассчитать, если п не является простым (и, следовательно, это не поле). Без использования будучи полем, можно вычислить:
- ,
- ,
- ,
- , и, если возможно, упростите.
Этот расчет всегда допустим, и если НОД Z-координировать с п ≠ (1 или п), поэтому, когда упрощение не удается, нетривиальный делитель п найден.
Скрученные кривые Эдвардса
Использование Кривые Эдвардса требует меньше модульных умножений и меньше времени, чем использование Кривые Монтгомери или Кривые Вейерштрасса (другие используемые методы). Используя кривые Эдвардса, вы также можете найти больше простых чисел.
Определение. Позволять быть областью, в которой , и разреши с участием . Тогда закрученная кривая Эдвардса дан кем-то Кривая Эдвардса - это закрученная кривая Эдвардса, в которой .
Существует пять известных способов построения набора точек на кривой Эдвардса: набор аффинных точек, набор проективных точек, набор инвертированных точек, набор расширенных точек и набор завершенных точек.
Набор аффинных точек определяется выражением:
- .
Закон сложения дается формулой
Точка (0,1) - ее нейтральный элемент и обратный элемент является .
Остальные представления определяются аналогично тому, как проективная кривая Вейерштрасса следует из аффинности.
Любые эллиптическая кривая в форме Эдвардса - вопрос по порядку ведения заседания 4. Итак, торсионная группа кривой Эдвардса над изоморфен либо или .
Наиболее интересные кейсы для ECM: и , поскольку они заставляют групповые порядки кривой делиться по модулю простых чисел на 12 и 16 соответственно. Следующие кривые имеют группу кручения, изоморфную :
- с точкой где и
- с точкой где и
Каждую кривую Эдвардса с точкой порядка 3 можно записать способами, показанными выше. Кривые с группой кручения, изоморфной и может быть более эффективным при поиске простых чисел.[2]
2 этап
Приведенный выше текст касается первого этапа факторизации эллиптической кривой. Там надеются найти простой делитель п такой, что нейтральный элемент .На втором этапе надеются найти простой делитель q такой, что имеет небольшой первичный заказ в .
Мы надеемся, что порядок будет между и , где определяется на этапе 1 и - это новый параметр этапа 2. Проверка небольшого порядка , можно сделать, вычислив по модулю п для каждого прайма л.
GMP-ECM и EECM-MPFQ
Использование эллиптических кривых Twisted Edwards, а также другие методы были использованы Bernstein et al.[2] для обеспечения оптимизированной реализации ECM. Его единственный недостаток заключается в том, что он работает с меньшими составными числами, чем более универсальная реализация GMP-ECM Циммермана.
Метод гиперэллиптических кривых (HECM)
Недавние разработки в использовании гиперэллиптические кривые множить целые числа. Коссет показывает в своей статье (2010 г.), что можно построить гиперэллиптическую кривую с родом два (так что кривая с участием ж степени 5), что дает тот же результат, что и использование двух "нормальных" эллиптических кривых одновременно. Использование поверхности Куммера делает расчет более эффективным. Недостатки гиперэллиптической кривой (по сравнению с эллиптической кривой) компенсируются этим альтернативным способом расчета. Поэтому Коссет грубо заявляет, что использование гиперэллиптических кривых для факторизации не хуже, чем использование эллиптических кривых.
Квантовая версия (GEECM)
Бернштейн, Heninger, Лу и Валента предлагают GEECM, квантовую версию ECM с кривыми Эдвардса.[3] Оно использует Алгоритм Гровера примерно в два раза длиннее найденных простых чисел по сравнению со стандартным EECM, предполагая, что квантовый компьютер с достаточно большим количеством кубитов и сравнимой скоростью с классическим компьютером, на котором работает EECM.
Смотрите также
- UBASIC для практической программы (ECMX).
использованная литература
- ^ 50 важнейших факторов, обнаруженных ECM.
- ^ а б Berstein, Daniel J .; Биркнер, Питер; Ланге, Таня; Питерс, Кристиана (9 января 2008 г.). «ECM с использованием кривых Эдвардса» (PDF). Криптология ePrint Archive. (примеры таких кривых см. в верхней части страницы 30)
- ^ Бернштейн Д.Дж., Хенингер Н., Лу П., Валентина Л. (2017) Постквантовый RSA. В: Lange T., Takagi T. (ред.), Постквантовая криптография. PQCrypto 2017. Lecture Notes in Computer Science, vol 10346. Springer, Cham
- Бернштейн, Даниэль Дж .; Биркнер, Питер; Ланге, Таня; Питерс, Кристиана (2013). «ECM с использованием кривых Эдвардса». Математика вычислений. 82 (282): 1139–1179. Дои:10.1090 / S0025-5718-2012-02633-0. Г-Н 3008853.
- Bosma, W .; Хюльст, М. П. М. ван дер (1990). Доказательство первичности с помощью циклотомии. Кандидат наук. Диссертация, Universiteit van Amsterdam. OCLC 256778332.
- Брент, Ричард П. (1999). «Факторизация десятого числа Ферма». Математика вычислений. 68 (225): 429–451. Дои:10.1090 / S0025-5718-99-00992-8. Г-Н 1489968.
- Коэн, Анри (1993). Курс вычислительной алгебраической теории чисел. Тексты для выпускников по математике. 138. Берлин: Springer-Verlag. Дои:10.1007/978-3-662-02945-9. ISBN 978-0-387-55640-6. Г-Н 1228206.
- Коссет, Р. (2010). «Факторизация с кривыми рода 2». Математика вычислений. 79 (270): 1191–1208. arXiv:0905.2325. Bibcode:2010MaCom..79.1191C. Дои:10.1090 / S0025-5718-09-02295-9. Г-Н 2600562.
- Ленстра, А.К.; Ленстра младший, Х. У., ред. (1993). Развитие сита числового поля. Конспект лекций по математике. 1554. Берлин: Springer-Verlag. Дои:10.1007 / BFb0091534. ISBN 978-3-540-57013-4. Г-Н 1321216.
- Ленстра-младший, Х. В. (1987). «Факторинг целых чисел с эллиптическими кривыми» (PDF). Анналы математики. 126 (3): 649–673. Дои:10.2307/1971363. JSTOR 1971363. Г-Н 0916721.
- Померанс, Карл; Крэндалл, Ричард (2005). Простые числа: вычислительная перспектива (Второе изд.). Нью-Йорк: Спрингер. ISBN 978-0-387-25282-7. Г-Н 2156291.
- Померанс, Карл (1985). «Алгоритм факторинга квадратного сита». Достижения в криптологии, Proc. Еврокрипт '84. Конспект лекций по информатике. 209. Берлин: Springer-Verlag. С. 169–182. Дои:10.1007/3-540-39757-4_17. ISBN 978-3-540-16076-2. Г-Н 0825590.
- Померанс, Карл (1996). «Сказка о двух решетах» (PDF ). Уведомления Американского математического общества. 43 (12): 1473–1485. Г-Н 1416721.
- Сильверман, Роберт Д. (1987). «Квадратичное сито с множественными полиномами». Математика вычислений. 48 (177): 329–339. Дои:10.1090 / S0025-5718-1987-0866119-8. Г-Н 0866119.
- Трапп, Вт .; Вашингтон, Л. С. (2006). Введение в криптографию с теорией кодирования (Второе изд.). Река Сэдл, Нью-Джерси: Пирсон Прентис Холл. ISBN 978-0-13-186239-5. Г-Н 2372272.
- Сэмюэл С. Вагстафф-мл. (2013). Радость факторинга. Провиденс, Род-Айленд: Американское математическое общество. С. 173–190. ISBN 978-1-4704-1048-3.
- Ватрас, Марцин (2008). Криптография, числовой анализ и очень большие числа. Быдгощ: Войцеховский-Штайнхаген. PL: 5324564.
внешние ссылки
- Факторизация с использованием метода эллиптических кривых, Java-апплет, который использует ECM и переключается на Самоинициализирующееся квадратное сито когда быстрее.
- GMP-ECM, эффективная реализация ECM.
- ECMNet, простая реализация клиент-сервер, которая работает с несколькими проектами факторизации.
- пайсм, реализация ECM на языке Python. Гораздо быстрее с psyco и / или gmpy.
- Проект распределенных вычислений yoyo @ Home Подпроект ECM - это программа для факторизации эллиптических кривых, которая используется несколькими проектами для поиска факторов для различных типов чисел.
- Исходный код алгоритма факторизации эллиптической кривой Ленстры Исходный код простого алгоритма факторизации эллиптических кривых C и GMP.
- EECM-MPFQ Реализация ECM с использованием кривых Эдвардса, написанных с помощью библиотеки конечных полей MPFQ.