Jump to content

Сертификат первичности

(Перенаправлено из сертификата Пратта )

В математике и информатике сертификат простоты или доказательство простоты — это краткое формальное доказательство того, что число простое. Сертификаты простоты позволяют быстро проверить простоту числа без необходимости запуска дорогостоящего или ненадежного теста на простоту . «Краткое» обычно означает, что доказательство должно быть не более чем полиномиально большим, чем количество цифр в самом числе (например, если число имеет 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 ) время. На практике этот метод проверки дороже, чем проверка сертификатов Пратта, но не требует каких-либо вычислений для определения самого сертификата.

  1. ^ Воан Пратт. «У каждого простого числа есть краткий сертификат». SIAM Journal on Computing , том. 4, стр. 214–220. 1975. Цитаты , Полный текст .
  2. ^ Гольдвассер С. и Килиан Дж. «Почти все простые числа можно быстро сертифицировать». Учеб. 18-й СТОК. С. 316–329, 1986. Полный текст .
  3. ^ Аткин, А.Л .; Морейн, Ф. (1993). «Эллиптические кривые и доказательство простоты» (PDF) . Математика вычислений . 61 (203): 29–68. Бибкод : 1993MaCom..61...29A . дои : 10.1090/s0025-5718-1993-1199989-x . JSTOR   2152935 . МР   1199989 .
  4. ^ Поклингтон, Генри К. (1914–1916). «Определение простой или составной природы больших чисел по теореме Ферма». Труды Кембриджского философского общества . 18 :29–30.
  5. ^ Крэндалл, Ричард; Померанс, Карл. «Простые числа: вычислительная перспектива» (2-е изд.). Спрингер-Верлаг, Пятая авеню, 175, Нью-Йорк, Нью-Йорк 10010, США, 2005 г.
  6. ^ Бриллхарт, Джон ; Лемер, ДХ ; Селфридж, Дж. Л. (апрель 1975 г.). «Новые критерии простоты и факторизация 2 м ± 1 дюйм (PDF) . Математика вычислений . 29 (130): 620–647. doi : 10.1090/S0025-5718-1975-0384673-1 . JSTOR   2005583 .
  7. ^ Агравал, Маниндра ; Каял, Нирадж ; Саксена, Нитин (сентябрь 2004 г.). «ПРАЙМС находится в P» (PDF) . Анналы математики . 160 (2): 781–793. дои : 10.4007/анналы.2004.160.781 . JSTOR   3597229 . МР   2123939 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 515fe5bbccf8d9ef56d10e42cb5b492d__1714485120
URL1:https://arc.ask3.ru/arc/aa/51/2d/515fe5bbccf8d9ef56d10e42cb5b492d.html
Заголовок, (Title) документа по адресу, URL1:
Primality certificate - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)