Сертификат первичности
В математике и информатике сертификат простоты или доказательство простоты — это краткое формальное доказательство того, что число простое. Сертификаты простоты позволяют быстро проверить простоту числа без необходимости запуска дорогостоящего или ненадежного теста на простоту . «Краткое» обычно означает, что доказательство должно быть не более чем полиномиально большим, чем количество цифр в самом числе (например, если число имеет b бит, доказательство может содержать примерно b). 2 биты).
Сертификаты простоты приводят непосредственно к доказательствам того, что такие проблемы, как проверка простоты и дополнение целочисленной факторизации, лежат в NP , классе проблем, проверяемых за полиномиальное время при наличии решения. Эти проблемы уже тривиально лежат в co-NP . Это было первое убедительное доказательство того, что эти проблемы не являются NP-полными , поскольку в противном случае это означало бы, что NP является подмножеством co-NP, а этот результат широко считается ложным; Фактически, это была первая демонстрация проблемы пересечения NP со-NP, о которой в то время не было известно, что она существует в P.
Получить сертификаты для задачи о дополнении, позволяющие установить, что число является составным, несложно: достаточно указать нетривиальный делитель. Стандартные вероятностные тесты на простоту, такие как тест на простоту Бейли-ПСВ , тест на простоту Ферма и тест на простоту Миллера-Рабина, также создают сертификаты составности в случае, если входные данные являются составными, но не создают сертификаты для простых входных данных.
Сертификаты Пратта
[ редактировать ]Концепция сертификатов первичности исторически была введена сертификатом Пратта , задуманным в 1975 году Воаном Праттом . [1] который описал его структуру и доказал, что он имеет полиномиальный размер и его можно проверить за полиномиальное время. Он основан на тесте простоты Люка , который по сути является маленькой обратной теоремой Ферма с добавленным условием, чтобы сделать ее истинной:
- Теорема Лукаса : предположим, что у нас есть целое число a такое, что:
- а п - 1 ≡ 1 (по модулю n ),
- для каждого простого множителя q числа n − 1 это не тот случай, когда a ( п - 1)/ q ≡ 1 (против n ).
- Тогда n простое.
Учитывая такой a (называемый свидетелем ) и разложение на простые множители n - 1, легко быстро проверить вышеуказанные условия: нам нужно всего лишь выполнить линейное количество модульных возведений в степень, поскольку каждое целое число имеет меньше простых множителей, чем битов, и каждое из этих действий можно выполнить путем возведения в степень путем возведения в квадрат умножения O(log n ) (см. обозначение big-O ). Даже при умножении целых чисел в начальной школе это всего лишь O((log n ) 4 ) время; используя алгоритм умножения с наиболее известным асимптотическим временем выполнения, созданным Дэвидом Харви и Йорисом ван дер Хувеном, мы можем снизить его до O((log n ) 3 (log log n )) время или с использованием обозначения soft-O Õ((log n ) 3 ).
Однако можно обманом заставить верификатор принять составное число, задав ему «простую факторизацию» n - 1, включающую составные числа. Например, предположим, что мы утверждаем, что n = 85 является простым, предоставляя a = 4 и n - 1 = 6 × 14 в качестве «простой факторизации». Тогда (используя q = 6 и q = 14):
- 4 взаимно просто с 85,
- 4 85−1 ≡ 1 (по модулю 85),
- 4 (85−1)/6 ≡ 16 (против 85), 4 (85−1)/14 ≡ 16 (против 85).
Мы могли бы ошибочно заключить, что 85 — простое число. Мы не хотим просто заставлять верификатор факторизовать число, поэтому лучший способ избежать этой проблемы — предоставить сертификаты простоты также для каждого из простых множителей n - 1, которые являются лишь меньшими экземплярами исходной проблемы. . Мы продолжаем рекурсивно таким образом, пока не достигнем числа, которое, как известно, является простым, например 2. В конечном итоге мы получаем дерево простых чисел, каждое из которых связано со свидетелем a . Например, вот полный сертификат Пратта на номер 229:
- 229 ( а = 6, 229 − 1 = 2 2 × 3 × 19),
- 2 (известное простое число),
- 3 ( а = 2, 3 − 1 = 2),
- 2 (известное простое число),
- 19 ( а = 2, 19 - 1 = 2 × 3 2 ),
- 2 (известное простое число),
- 3 ( а = 2, 3 − 1 = 2),
- 2 (известное простое число).
Можно показать, что это дерево доказательства содержит не более значения, отличные от 2, простым индуктивным доказательством (основанным на теореме 2 Пратта). Результат справедлив для 3; вообще, возьмите p > 3 и пусть его дочерними элементами в дереве будут p 1 , ..., p k . По индуктивному предположению дерево с корнем в точке содержит pi не более значений, поэтому все дерево содержит не более
поскольку k ≥ 2 и p 1 ... p k = p - 1. Поскольку каждое значение имеет не более log n бит, это также демонстрирует, что размер сертификата равен O((log n ) 2 ) биты.
Поскольку существуют значения O(log n ), отличные от 2, и каждое из них требует не более одного возведения в степень для проверки (а возведение в степень доминирует во времени выполнения), общее время равно O((log n ) 3 (log log n )(log log log n )), или Õ((log n ) 3 ), что вполне осуществимо для чисел в диапазоне, с которым обычно работают теоретики вычислительных чисел.
Однако, хотя это полезно в теории и легко проверить, на самом деле создание сертификата Пратта для n требует факторизации n - 1 и других потенциально больших чисел. Это просто для некоторых специальных чисел, таких как простые числа Ферма , но в настоящее время гораздо сложнее, чем простая проверка на простоту для больших простых чисел общего вида.
Сертификаты Аткина-Гольдвассера-Килиана-Морена
[ редактировать ]Чтобы решить проблему эффективной генерации сертификатов для большего числа пользователей, в 1986 году Шафи Голдвассер и Джо Килиан описали новый тип сертификатов, основанный на теории эллиптических кривых . [2] Это, в свою очередь, было использовано AOL Atkin и Франсуа Мораном в качестве основы для сертификатов Аткина-Голдвассера-Килиана-Морена, которые представляют собой тип сертификатов, создаваемых и проверяемых системами проверки простоты эллиптических кривых . [3] Так же, как сертификаты Пратта основаны на теореме Лукаса, сертификаты Аткина-Голдвассера-Килиана-Морена основаны на следующей теореме Гольдвассера и Килиана (лемма 2 из «Почти все простые числа могут быть быстро сертифицированы»):
- Теорема : Предположим, нам дано:
- целое положительное число n, не кратное 2 или 3;
- M x , My y , A, B в (целые числа по модулю n ), удовлетворяющие My y 2 = М х 3 +АМ х +В и с 4А 3 +27Б 2 взаимно прост с n ;
- простое число .
- Тогда M = (M x , My y ) — неединичная точка на эллиптической кривой y 2 = х 3 + Ax + B. Пусть k M — это M, добавленное к самому себе k раз с использованием стандартного сложения эллиптических кривых. Тогда, если q M — единичный элемент I, то n — простое число.
Технически эллиптическую кривую можно построить только над полем, и является полем только в том случае, если n простое, поэтому мы, похоже, предполагаем результат, который пытаемся доказать. Трудность возникает в алгоритме сложения эллиптических кривых, который принимает обратные значения в поле, которое может не существовать в . Однако можно показать (лемма 1 из «Почти все простые числа могут быть быстро сертифицированы»), что если мы просто выполняем вычисления так, как будто кривая четко определена, и ни в какой момент не пытаемся инвертировать элемент без обратного, результат все еще действителен; если мы встречаем элемент, не имеющий обратного, это устанавливает, что n является составным.
Чтобы получить сертификат из этой теоремы, мы сначала кодируем M x , My , A, B и q , затем рекурсивно кодируем доказательство простоты для q < n , продолжая до тех пор, пока не достигнем известного простого числа. Этот сертификат имеет размер O((log n ) 2 ) и может быть проверено за O((log n ) 4 ) время. Более того, можно показать, что алгоритм, генерирующий эти сертификаты, требует полиномиального времени для всех, кроме небольшой доли простых чисел, и эта доля экспоненциально уменьшается с размером простых чисел. Следовательно, он хорошо подходит для генерации сертифицированных больших случайных простых чисел, что важно в криптографических приложениях, таких как генерация доказуемо действительных ключей RSA .
Сертификаты Поклингтона
[ редактировать ]Доказуемая генерация простых чисел на основе вариантов теоремы Поклингтона (см. тест на простоту Поклингтона ) [4] могут быть эффективными методами генерации простых чисел (затраты обычно меньше, чем вероятностная генерация) с дополнительным преимуществом встроенных сертификатов простоты. Хотя это может показаться особым простым числом, обратите внимание, что каждое простое целое число может быть сгенерировано с помощью доказуемого алгоритма генерации, основанного на Поклингтоне.
Тесты на простоту Поклингтона
[ редактировать ]Позволять где где являются различными простыми числами с целое число больше нуля и свидетель такой, что:
1. | ( 1 ) |
2. для всех . | ( 2 ) |
Тогда P является простым, если выполняется одно из следующих условий:
а) (см. [5] ) или эквивалентно | ( а ) |
б) (см. [6] : Следствие 1 ) или эквивалентно и
| ( б ) |
Сертификат примата Поклингтона
[ редактировать ]Сертификат простоты Поклингтона состоит из простого числа P, набора простых чисел разделяющий , каждый со своим собственным сертификатом простого числа Поклингтона или достаточно маленьким, чтобы быть известным простым числом, и свидетелем .
Биты, необходимые для этого сертификата (и порядок вычислительных затрат), должны варьироваться примерно от для версии ( b ) до для версии ( а )
Небольшой пример
[ редактировать ]Позволять . Обратите внимание, что и , .
- Используя «свидетеля» 2, уравнение 1 удовлетворяется, а уравнение 2 — с использованием и .
- Для версии a сертификат нужен только .
- для версии b сертификат нужен только , но осталось еще немного поработать:
- и
- С использованием терпит неудачу:
- С использованием удается: , и является простым.
Влияние «ПРАЙМС находится в P»
[ редактировать ]«ПРАЙМС находится в P» [7] стал прорывом в теоретической информатике. Эта статья, опубликованная Маниндрой Агравалом , Нитином Саксеной и Нираджем Каялом в августе 2002 года, доказывает, что знаменитая проблема проверки простоты числа может быть решена детерминированно за полиномиальное время. авторы получили премию Гёделя 2006 г. и премию Фулкерсона За эту работу 2006 г.
Поскольку тестирование на простоту теперь можно проводить детерминированно за полиномиальное время с помощью теста на простоту AKS , простое число само по себе может рассматриваться как сертификат своей собственной простоты. Этот тест выполняется за Õ((log n ) 6 ) время. На практике этот метод проверки дороже, чем проверка сертификатов Пратта, но не требует каких-либо вычислений для определения самого сертификата.
Ссылки
[ редактировать ]- ^ Воан Пратт. «У каждого простого числа есть краткий сертификат». SIAM Journal on Computing , том. 4, стр. 214–220. 1975. Цитаты , Полный текст .
- ^ Гольдвассер С. и Килиан Дж. «Почти все простые числа можно быстро сертифицировать». Учеб. 18-й СТОК. С. 316–329, 1986. Полный текст .
- ^ Аткин, А.Л .; Морейн, Ф. (1993). «Эллиптические кривые и доказательство простоты» (PDF) . Математика вычислений . 61 (203): 29–68. Бибкод : 1993MaCom..61...29A . дои : 10.1090/s0025-5718-1993-1199989-x . JSTOR 2152935 . МР 1199989 .
- ^ Поклингтон, Генри К. (1914–1916). «Определение простой или составной природы больших чисел по теореме Ферма». Труды Кембриджского философского общества . 18 :29–30.
- ^ Крэндалл, Ричард; Померанс, Карл. «Простые числа: вычислительная перспектива» (2-е изд.). Спрингер-Верлаг, Пятая авеню, 175, Нью-Йорк, Нью-Йорк 10010, США, 2005 г.
- ^ Бриллхарт, Джон ; Лемер, ДХ ; Селфридж, Дж. Л. (апрель 1975 г.). «Новые критерии простоты и факторизация 2 м ± 1 дюйм (PDF) . Математика вычислений . 29 (130): 620–647. doi : 10.1090/S0025-5718-1975-0384673-1 . JSTOR 2005583 .
- ^ Агравал, Маниндра ; Каял, Нирадж ; Саксена, Нитин (сентябрь 2004 г.). «ПРАЙМС находится в P» (PDF) . Анналы математики . 160 (2): 781–793. дои : 10.4007/анналы.2004.160.781 . JSTOR 3597229 . МР 2123939 .
Внешние ссылки
[ редактировать ]- Mathworld: Сертификат первичности
- Mathworld: Сертификат Пратта
- Mathworld: Сертификат Аткина-Голдвассера-Килиана-Морена
- Главный глоссарий: Сертификат первичности
- Вашек Хватал . Конспект лекций по доказательствам простоты Пратта . Департамент компьютерных наук. Университет Рутгерса. PDF-версия в Университете Конкордия .