Простота эллиптической кривой - Elliptic curve primality
В математика, эллиптическая кривая проверка на простоту Методы доказательства простоты эллиптической кривой (ECPP) являются одними из самых быстрых и широко используемых методов доказательства простоты.[1] Это идея, выдвинутая Шафи Гольдвассер и Джо Килиан в 1986 году и превратился в алгоритм Аткин А.О. В том же году. Впоследствии алгоритм был изменен и улучшен несколькими сотрудниками, в частности, Аткином и Франсуа Морен , в 1993 году.[2] Концепция использования эллиптические кривые в факторизации был разработан Х. В. Ленстра в 1985 году, и вскоре последовали выводы для его использования в тестировании (и доказательстве) простоты.
Проверка на первичность это поле, которое существует со времен Ферма, в чье время большинство алгоритмов основывалось на факторинге, который стать громоздким с большим вводом; современные алгоритмы решают проблемы определения того, является ли число простым и каковы его множители по отдельности. Это приобрело практическое значение с появлением современной криптографии. Хотя многие текущие тесты приводят к вероятностному выходу (N либо показано составным, либо, вероятно, простым, например, с Тест на простоту Baillie – PSW или Тест Миллера – Рабина ), тест эллиптической кривой подтверждает простоту (или составность) с помощью быстро проверяемого сертификата.[3]
Доказательство простоты эллиптической кривой обеспечивает альтернативу (среди прочего) Тест на простоту поклингтона, что может быть сложно реализовать на практике.
Доказательство простоты эллиптической кривой
Это универсальный алгоритм, то есть он не зависит от номера особой формы. ECPP в настоящее время на практике является самым быстрым из известных алгоритмов проверки простоты общих чисел, но время исполнения в наихудшем случае не известно. ECPP эвристически работает во времени:
для некоторых .[4] Этот показатель можно уменьшить до для некоторых версий эвристическими аргументами. ECPP работает так же, как и большинство других тесты на простоту сделать, найти группа и показывающий его размер таков, что простое. Для ECPP группа - это эллиптическая кривая над конечным множеством квадратичных форм, такая что факторизовать по группе тривиально.
ECPP генерирует Аткин –Гольдвассер –Килиан – Морейн свидетельство первобытности рекурсия а затем пытается проверить сертификат. Шаг, требующий наибольшего ЦПУ время - генерация сертификата, потому что факторинг поле класса должен быть выполнен. Сертификат можно быстро проверить, поэтому проверка работоспособности займет очень мало времени.
По состоянию на февраль 2020 года наибольшее простое число, подтвержденное методом ECPP, состоит из 40000 цифр.[5] Сертификация Пола Андервуда с использованием программного обеспечения Primo Марселя Мартина заняла 21,5 месяца.
Предложение
Тесты простоты эллиптической кривой основаны на критериях, аналогичных критерию Поклингтона, на котором основан этот тест,[6] где группа заменяется на и E - правильно выбранная эллиптическая кривая. Теперь мы сформулируем предложение, на котором основывается наш тест, который аналогичен критерию Поклингтона и дает начало форме Голдвассера – Килиана – Аткина для проверки простоты эллиптической кривой.
Позволять N быть положительным целым числом, и E - множество, которое определяется уравнением Учитывать E над использовать обычный закон сложения на E, и напишите 0 для нейтрального элемента на E.
Позволять м быть целым числом. Если есть простое число q который разделяет м, и больше, чем и существует точка п на E такой, что
(1) mP = 0
(2) (м/q)п определено и не равно 0
потом N простое.
Доказательство
Если N составно, то существует простое число что разделяет N. Определять как эллиптическая кривая, определяемая тем же уравнением, что и E но оценивается по модулюп а не по модулюN. Определять как порядок группы . К Теорема Хассе об эллиптических кривых мы знаем
и поэтому и существует целое число ты со свойством, что
Позволять быть точкой п оценивается по модулю п. Таким образом, на у нас есть
согласно (1), поскольку рассчитывается тем же методом, что и mP, кроме по модулюп а не по модулюN (и ).
Это противоречит (2), поскольку если (м/q)п определено и не равно 0 (modN), то тем же методом вычисляется по модулюп вместо модуляN даст:[7]
Алгоритм Гольдвассера – Килиана
Из этого предложения можно построить алгоритм для доказательства целого числа, N, является простым. Это делается следующим образом:
Выберите наугад три целых числа, а, х, у и установить
Сейчас же п = (Икс,у) - точка на E, где у нас есть это E определяется . Далее нам нужен алгоритм для подсчета количества точек на E. Применительно к E, этот алгоритм (Коблиц и другие предлагают Алгоритм Шуфа ) производит число м что является количеством точек на кривой E над FN, при условии N простое. Если алгоритм подсчета точек останавливается на неопределенном выражении, это позволяет определить нетривиальный фактор N. Если это удается, мы применяем критерий для определения того, соответствует ли наша кривая E приемлемо.
Если мы можем написать м в виде куда - маленькое целое число и q вероятное простое число (прошло некоторые предыдущие вероятностные тест на простоту, например), то не отбрасываем E. В противном случае мы отбрасываем нашу кривую и случайным образом выбираем другую тройку (а, х, у) начать все сначала. Идея здесь в том, чтобы найти м который делится на большое простое число q. Это простое число будет примерно таким же величина в качестве м для достаточно большого м.
Предполагая, что мы нашли кривую, соответствующую критерию, приступим к вычислению mP и КП. Если любое из двух вычислений дает неопределенное выражение, мы можем получить нетривиальный множитель N. Если оба расчета успешны, мы исследуем результаты.
Если ясно, что N не является простым, потому что если N были тогда первыми E будет порядок м, и любой элемент E станет 0 при умножении на м. Если КП = 0, то алгоритм отбрасывает E и начинается с другого а, х, у тройной.
Сейчас если и то наше предыдущее предложение говорит нам, что N простое. Однако есть одна возможная проблема - примитивность q. Это проверяется с помощью того же алгоритма. Итак, мы описали рекурсивный алгоритм, где примитивность N зависит от примитивности q и действительно меньшие «вероятные простые числа», пока не будет достигнут некоторый порог, при котором q считается достаточно малым для применения нерекурсивного детерминированного алгоритма.[8][9]
Проблемы с алгоритмом
Аткин и Морейн заявляют, что «проблема с GK заключается в том, что алгоритм Шуфа кажется практически невозможным для реализации».[3] Подсчитывать все точки на E с использованием алгоритма Шуфа, который является предпочтительным алгоритмом для алгоритма Голдвассера – Килиана. Однако оригинальный алгоритм Шуфа недостаточно эффективен, чтобы обеспечить количество точек за короткое время.[10] Эти комментарии следует рассматривать в историческом контексте, до того, как Элкис и Аткин усовершенствовали метод Шуфа.
Вторая проблема, которую отмечает Коблиц, - это сложность нахождения кривой E чье количество баллов имеет вид kq, как указано выше. Нет известной теоремы, которая гарантирует, что мы сможем найти подходящую E в полиномиально много попыток. Распределение простых чисел на интервале Хассе,который содержит м, это не то же самое, что распределение простых чисел в порядках групп, считая кривые с кратностью. Однако на практике это не является серьезной проблемой.[7]
Тест простоты эллиптической кривой Аткина – Морана (ECPP)
В статье 1993 года Аткин и Морейн описали алгоритм ECPP, позволяющий избежать проблем, связанных с громоздким алгоритмом подсчета точек (Schoof's). Алгоритм по-прежнему основывается на утверждении, изложенном выше, а не на случайном генерировании эллиптических кривых и поиске подходящего м, их идея заключалась в том, чтобы построить кривую E где количество точек легко подсчитать. Комплексное умножение является ключевым в построении кривой.
Теперь, учитывая N для которых необходимо доказать примитивность, нам нужно найти подходящий м и q, как и в тесте Голдвассера-Килиана, который выполнит предложение и докажет простоту N. (Конечно, точка п и сама кривая, E, также необходимо найти.)
ECPP использует комплексное умножение для построения кривой E, делая это таким образом, чтобы м (количество баллов на E) легко вычислить. Теперь опишем этот метод:
Использование комплексного умножения требует отрицательного дискриминант, D, так что D можно записать как произведение двух элементов , или полностью эквивалентно, мы можем записать уравнение:
Для некоторых а, б. Если мы можем описать N в терминах любой из этих форм мы можем создать эллиптическую кривую E на с комплексным умножением (подробно описано ниже), а количество баллов определяется как:
За N для разделения на два элемента нам понадобится (куда обозначает Символ Лежандра ). Это необходимое условие, и мы добьемся достаточности, если номер класса час(D) порядка в равно 1. Это происходит только для 13 значений D, которые являются элементами {−3, −4, −7, −8, −11, −12, −16, −19, −27, −28, −43, −67, −163}
Тест
Выберите дискриминанты D в порядке увеличения час(D). Для каждого D проверить, если и будь 4N можно записать как:
Эта часть может быть проверена с помощью Алгоритм корнаккии. Когда-то приемлемо D и а были обнаружены, рассчитать . Сейчас если м имеет главный фактор q размера
используйте метод комплексного умножения для построения кривой E и точка п на нем. Тогда мы можем использовать наше предложение для проверки простоты N. Обратите внимание, что если м не имеет большого основного фактора или не может быть достаточно быстро разложен на множители, другой выбор D может быть изготовлен.[1]
Комплексный метод умножения
Для полноты картины предоставим обзор комплексное умножение, способ, которым может быть создана эллиптическая кривая, учитывая наши D (который можно записать как произведение двух элементов).
Предположим сначала, что и (эти случаи намного легче сделать). Необходимо вычислить эллиптическую j-инварианты из час(D) классы порядка дискриминанта D как комплексные числа. Для их расчета есть несколько формул.
Затем создайте монический многочлен , имеющая корни, соответствующие час(D) значения. Обратите внимание, что это многочлен класса. Из теории комплексного умножения мы знаем, что имеет целые коэффициенты, что позволяет нам достаточно точно оценить эти коэффициенты, чтобы определить их истинные значения.
Сейчас если N простое, CM сообщает нам, что разбивает по модулюN в продукт час(D) линейные коэффициенты, исходя из того, что D было выбрано так, что N расщепляется как продукт двух элементов. Сейчас если j один из час(D) корни по модулю N мы можем определить E в качестве:
c есть ли квадратичный невычет мод N, и р либо 0, либо 1.
Учитывая корень j есть только два возможных неизоморфных выбора E, по одному на каждый выбор р. Мощность этих кривых равна
Обсуждение
Как и в случае с тестом Голдвассера – Киллиана, этот приводит к процедуре спуска. Опять же, виноват q. Как только мы найдем q что работает, мы должны проверить его на простоту, поэтому фактически мы проводим весь тест сейчас для q. С другой стороны, нам, возможно, придется выполнить тест на факторы q. Это приводит к вложенному сертификату, где на каждом уровне у нас есть эллиптическая кривая. E, м и премьер под сомнением,q.
Пример ECPP Аткина – Морейна
Построим пример, чтобы доказать, что является первичным с использованием теста ECPP Аткина – Морейна. Сначала просмотрите набор из 13 возможных дискриминантов, проверяя, соответствует ли символ Лежандра , а если 4N можно записать как .
Для нашего примера выбран. Это потому что а также, используя Алгоритм корнаккии, мы знаем это и поэтому а = 25 и б = 1.
Следующим шагом будет вычисление м. Это легко сделать как что дает Далее нам нужно найти вероятный простой делитель числа м, который получил название q. Он должен удовлетворять условию, что
В этом случае, м = 143 = 11 × 13. Так что, к сожалению, мы не можем выбрать 11 или 13 в качестве наших q, так как не удовлетворяет необходимому неравенству. Однако нас спасает утверждение, аналогичное тому, которое мы сформулировали перед алгоритмом Голдвассера – Килиана, которое взято из статьи Морейна.[12] В нем говорится, что с учетом наших м, мы ищем s который разделяет м, , но не обязательно является простым, и проверьте, для каждого ли который разделяет s
в какой-то момент п на нашей еще не построенной кривой.
Если s удовлетворяет неравенству, а его простые множители удовлетворяют указанным выше, то N простое.
Итак, в нашем случае мы выбираем s = м = 143. Таким образом, наши возможные это 11 и 13. Во-первых, ясно, что , поэтому нам нужно только проверить значения
Но прежде чем мы сможем это сделать, мы должны построить нашу кривую и выбрать точку п. Чтобы построить кривую, мы используем комплексное умножение. В нашем случае мы вычисляем J-инвариантный
Далее мы вычисляем
и мы знаем, что наша эллиптическая кривая имеет вид:
- ,
куда k как описано ранее и c неквадрат в . Итак, мы можем начать с
что дает
Теперь, используя точку п = (6,6) на E можно проверить, что
Несложно проверить, что 13 (6, 6) = (12, 65) и 11п = (140, 147), а значит, по предложению Морейна N простое.
Сложность и время выполнения
Алгоритм доказательства простоты эллиптических кривых Голдвассера и Килиана завершается за ожидаемое полиномиальное время как минимум в течение
основных входов.
Гипотеза
Позволять быть числом простых чисел меньше, чем Икс
для достаточно большого Икс.
Если принять эту гипотезу, то алгоритм Голдвассера – Килиана завершается за ожидаемое полиномиальное время для каждого входа. Кроме того, если наши N имеет длину k, то алгоритм создает сертификат размера что можно проверить в .[13]
Теперь рассмотрим другую гипотезу, которая даст нам оценку общего времени алгоритма.
Гипотеза 2
Предположим, что существуют положительные постоянные и такое, что количество простых чисел в интервале
- больше чем
Тогда алгоритм Гольдвассера-Килиана доказывает простоту N в ожидаемое время
Для алгоритма Аткина – Морейна заявленное время работы составляет
- для некоторых [3]
Простые числа особой формы
Для некоторых форм чисел можно найти «короткие пути» к доказательству простоты. Так обстоит дело с Числа Мерсенна. Фактически, из-за их особой структуры, которая позволяет упростить проверку простоты, шесть наибольших известных простых чисел являются числами Мерсенна.[14] Некоторое время использовался метод проверки простоты чисел Мерсенна, известный как Тест Лукаса-Лемера. В этом тесте не используются эллиптические кривые. Однако мы представляем результат, в котором числа вида куда , п нечетное число может быть доказано простым (или составным) с помощью эллиптических кривых. Конечно, это также обеспечит метод доказательства простоты чисел Мерсенна, которые соответствуют случаю, когда п = 1. Существует метод проверки этой формы числа без эллиптических кривых (с ограничением размера k), известный как Тест Лукаса-Лемера-Ризеля. Следующий метод взят из статьи Тест на первичность для с использованием эллиптических кривых, Ю Цумура.[15]
Групповая структура
Мы принимаем E как наша эллиптическая кривая, где E имеет форму за куда простое, и с странный.
- Теорема 1.[6]
- Теорема 2. или же в зависимости от того, действительно ли м это квадратичный вычет по модулю p.
- Теорема 3. Позволять Q = (Икс,у) на E быть таким, чтобы Икс квадратичный невычет по модулю p. Тогда порядок Q делится на в циклической группе
Сначала мы представим случай, когда п относительно невелик по отношению к , а для этого потребуется еще одна теорема:
- Теорема 4. Выберите и предположим
- потом п является простым тогда и только тогда, когда существует Q = (Икс,у) на E, так что за я = 1, 2, ...,k - 1 и куда это последовательность с начальным значением
Алгоритм
Мы предлагаем следующий алгоритм, который в основном опирается на теоремы 3 и 4. Чтобы проверить простоту данного числа выполните следующие действия:
(1) выбирать такой, что , и найти такой, что .
Брать и .
потом на .
Рассчитать . Если тогда составно, иначе переходят к (2).
(2) Набор как последовательность с начальным значением . Рассчитать за .
Если для , куда тогда составной. В противном случае перейдите к (3).
(3) Если тогда простое. Иначе, составной. На этом тест завершен.
Обоснование алгоритма
В (1) эллиптическая кривая, E выбирается вместе с точкой Q на E, так что Икс-координата Q является квадратичным невычетом. Мы можем сказать
Таким образом, если N простое, Q ' имеет порядок, кратный , по теореме 3, а значит, порядок Q ' является d | п.
Это означает Q = nQ ' есть заказ . Следовательно, если (1) заключает, что N составной, он действительно составной. (2) и (3) проверяют, если Q есть заказ . Таким образом, если (2) или (3) заключают N составное, оно составное.
Теперь, если алгоритм заключает, что N простое число, то это означает удовлетворяет условию теоремы 4, поэтому N действительно главное.
Также есть алгоритм, когда п является большим, однако для этого мы ссылаемся на вышеупомянутую статью.[15]
Рекомендации
- ^ а б c Анри Коэн, Герхард Фрей, изд. (2006). Справочник по криптографии на эллиптических и гиперэллиптических кривых. Бока-Ратон: Чепмен и Холл / CRC.
- ^ Топ, Яап, Доказательство простоты эллиптической кривой, http://www.math.rug.nl/~top/atkin.pdf
- ^ а б c Аткин, А.О.Л., Морейн, Ф., Эллиптические кривые и доказательство простоты, https://www.ams.org/mcom/1993-61-203/S0025-5718-1993-1199989-X/S0025-5718-1993-1199989-X.pdf
- ^ Ленстра младший, А. К .; Ленстра, Х. В., младший (1990). «Алгоритмы в теории чисел». Справочник по теоретической информатике: алгоритмы и сложность. Амстердам и Нью-Йорк: MIT Press. А: 673–715.
- ^ Колдуэлл, Крис. Двадцатка лучших: доказательство простоты эллиптической кривой от Prime Pages.
- ^ а б Вашингтон, Лоуренс К., Эллиптические кривые: теория чисел и криптография, Чепмен и Холл / CRC, 2003 г.
- ^ а б Коблиц, Нил, Введение в теорию чисел и криптографию, 2-е изд., Springer, 1994.
- ^ http://www.mast.queensu.ca/~math418/m418oh/m418oh27.pdf
- ^ а б Блейк, Ян Ф., Серусси, Гадиэль, Смарт, Найджел Пол, Эллиптические кривые в криптографии, Cambridge University Press, 1999 г.
- ^ Ленстра, Хендрик В., Эффективные алгоритмы в теории чисел, https://openaccess.leidenuniv.nl/bitstream/1887/2141/1/346_081.pdf
- ^ http://algo.inria.fr/seminars/sem97-98/morain.html
- ^ а б Морейн, Франсуа, Реализация алгоритма проверки простоты Аткина – Гольдвассера – Килиана, https://hal.archives-ouvertes.fr/docs/00/07/56/45/PDF/RR-0911.pdf
- ^ Гольдвассер, Шафи, Килиан, Джо, Почти все простые числа могут быть быстро сертифицированы, http://www.iai.uni-bonn.de/~adrian/ecpp/p316-goldwasser.pdf В архиве 2011-07-18 на Wayback Machine
- ^ http://primes.utm.edu/notes/by_year.html
- ^ а б Цумура Ю, Тесты на первичность для Использование эллиптических кривых, arXiv:0912.5279v1
внешняя ссылка
- Эллиптические кривые и доказательство простоты к Аткин и Морейн.
- Вайсштейн, Эрик В. «Доказательство простоты эллиптической кривой». MathWorld.
- Крис Колдуэлл, «Доказательство первичности 4.2: Эллиптические кривые и тест ECPP» на Prime Pages.
- Франсуа Морен, "Домашняя страница ECPP" (включает старое программное обеспечение ECPP для некоторых архитектур).
- Марсель Мартин, "Примо" (бинарный для 64-битной Linux)
- PARI / GP, система компьютерной алгебры с функциями для создания сертификатов простоты Аткина-Морейна и Primo
- GMP-ECPP, бесплатная реализация ECPP
- LiDIA, Бесплатный C ++ библиотека для Linux с поддержкой ECPP