Jump to content

Solovay–Strassen primality test

Тест Соловея-Штрассена на простоту , разработанный Робертом М. Соловеем и Фолькером Штрассеном в 1977 году, представляет собой вероятностный тест, позволяющий определить, является ли число составным или, вероятно, простым . Идею теста открыл М.М. Артюхов в 1967 году. [ 1 ] (см. теорему E в статье). Этот тест был в значительной степени заменен тестом на простоту Бэйли-PSW и тестом простоты Миллера-Рабина , но он имеет большое историческое значение для демонстрации практической осуществимости RSA криптосистемы . Критерий Соловея-Штрассена по сути представляет собой тест Эйлера-Якоби на вероятность простых чисел .

Концепции

[ редактировать ]

Эйлер доказал [ 2 ] для любого нечетного простого числа p и любого целого числа a что

где — это символ Лежандра . Символ Якоби является обобщением символа Лежандра. , где n может быть любым нечетным целым числом. Символ Якоби можно вычислить за время O ((log n )²), используя обобщение Якоби закон квадратичной взаимности .

Учитывая нечетное число n, можно рассмотреть, выполняется ли сравнение

справедливо для различных значений «базы» a , учитывая, что a относительно простое с n . Если n простое, то это сравнение верно для всех a . Итак, если мы выберем значения a случайным образом и проверим соответствие, то как только мы находим a, которое не соответствует сравнению, мы знаем, что n не является простым (но это не говорит нам о нетривиальной факторизации n ). Эта база a называется свидетелем Эйлера для n ; это свидетель составности n . База a называется лжецом Эйлера для n, если сравнение истинно, пока n составное.

Для каждого составного нечетного n не менее половины всех оснований

являются свидетелями (Эйлера), поскольку множество лжецов Эйлера является собственной подгруппой . Например, для , множество лжецов Эйлера имеет порядок 8 и , и имеет порядок 48.

Это контрастирует с тестом на простоту Ферма , для которого доля свидетелей может быть намного меньше. Следовательно, не существует (нечетных) составных n без большого количества свидетелей, в отличие от случая чисел Кармайкла для теста Ферма.

Предположим, мы хотим определить, является ли n = 221 простым. Пишем ( n −1)/2=110.

Мы случайным образом выбираем a (больше 1 и меньше n ): 47. Используя эффективный метод возведения числа в степень (по модулю n ), например двоичное возведение в степень , мы вычисляем:

  • а ( п -1)/2 против n = 47 110 мод 221 = −1 мод 221
  • против n = мод 221 = −1 мод 221.

Это дает то, что либо 221 является простым, либо 47 является лжецом Эйлера для 221. Мы пробуем другое случайное a , на этот раз выбирая a = 2:

  • а ( п -1)/2 против n = 2 110 мод 221 = 30 мод 221
  • против n = мод 221 = −1 мод 221.

Следовательно, 2 является свидетельством Эйлера о составности числа 221, а число 47 на самом деле было лжецом Эйлера. Обратите внимание: это ничего не говорит нам о простых делителях числа 221, которыми на самом деле являются 13 и 17.

Алгоритм и время работы

[ редактировать ]

Алгоритм можно записать в псевдокоде следующим образом:

inputs: n, a value to test for primality
        k, a parameter that determines the accuracy of the test
output: composite if n is composite, otherwise probably prime

repeat k times:
    choose a randomly in the range [2,n − 1]
    
    if x = 0 or  then 
        return composite
return probably prime

При использовании быстрых алгоритмов модульного возведения в степень время работы этого алгоритма составляет O( k ·log 3 n ), где k — количество различных значений a, которые мы проверяем.

Точность теста

[ редактировать ]

Алгоритм может вернуть неправильный ответ. Если входное число n всегда будет действительно простое, то выходное значение , вероятно, простым . Однако, если входное число n является составным, то выходное значение может оказаться ошибочным, вероятно, простым числом . Число n тогда называется псевдопростым числом Эйлера – Якоби .

Когда n нечетное и составное, по крайней мере половина всех a с НОД( a , n ) = 1 являются свидетелями Эйлера. Мы можем доказать это следующим образом: пусть { a 1 , a 2 , ..., a m } — лжецы Эйлера, а a — свидетель Эйлера. Тогда для i = 1,2,..., m :

Потому что справедливо следующее:

теперь мы это знаем

Это означает, что каждое a i дает число a · a i , которое также является свидетелем Эйлера. Таким образом, каждый лжец Эйлера дает свидетеля Эйлера, и поэтому число свидетелей Эйлера больше или равно числу лжецов Эйлера. Следовательно, когда n составное, по крайней мере половина всех a с НОД( a , n ) = 1 является свидетелем Эйлера.

Следовательно, вероятность отказа не более 2. - к (сравните это с вероятностью неудачи теста простоты Миллера-Рабина , которая составляет не более 4 - к ).

Для целей криптографии, чем больше баз a мы проверяем, т. е. если мы выбираем достаточно большое значение k , тем выше точность теста. Следовательно, вероятность того, что алгоритм потерпит неудачу таким образом, настолько мала, что (псевдо) простое число используется на практике в криптографических приложениях, но для приложений, для которых важно иметь простое число, используются такие тесты, как ECPP или тест на простоту Поклингтона. [ 3 ] следует использовать, что доказывает простоту.

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

[ редактировать ]

Граница 1/2 вероятности ошибки в одном раунде теста Соловея-Штрассена справедлива для любых входных данных n , но те числа n, для которых граница (приблизительно) достигается, встречаются крайне редко. В среднем вероятность ошибки алгоритма существенно меньше: она меньше

для k раундов теста, применяемых к равномерно случайному n x . [ 4 ] [ 5 ] Та же оценка применима и к связанной с ней проблеме: какова условная вероятность того, что n является составным для случайного числа n x , которое было объявлено простым в k раундах теста.

Сложность

[ редактировать ]

Алгоритм Соловея–Штрассена показывает, что задача решения COMPOSITE относится к классу сложности RP . [ 6 ]

  1. ^ Артюхов, М.М. (1966–1967), «Некоторые критерии простоты чисел, связанные с малой теоремой Ферма», Acta Arithmetica , 12 : 355–364, MR   0213289
  2. ^ Критерий Эйлера
  3. ^ Тест Поклингтона на Mathworld
  4. ^ П. Эрдеш; К. Померанс (1986). «О числе лжесвидетелей для составного числа». Математика вычислений . 46 (173): 259–279. дои : 10.2307/2008231 . JSTOR   2008231 .
  5. ^ И. Дамгорд; П. Лэндрок; К. Померанс (1993). «Оценки средней ошибки для сильного вероятностного простого теста». Математика вычислений . 61 (203): 177–194. дои : 10.2307/2152945 . JSTOR   2152945 .
  6. ^ Р. Мотвани; П. Рагхаван (1995). Рандомизированные алгоритмы . Издательство Кембриджского университета. стр. 417–423. ISBN  978-0-521-47465-8 .

Дальнейшее чтение

[ редактировать ]
  • Соловей, Роберт М.; Штрассен, Волкер (1977). «Быстрый тест Монте-Карло на простоту». SIAM Journal по вычислительной технике . 6 (1): 84–85. дои : 10.1137/0206006 . См. также Соловей, Роберт М.; Штрассен, Волкер (1978). «Ошибка: быстрый тест Монте-Карло на простоту». SIAM Journal по вычислительной технике . 7 (1): 118. дои : 10.1137/0207009 .
  • Дитцфельбингер, Мартин (29 июня 2004 г.). «Тестирование простоты за полиномиальное время, от рандомизированных алгоритмов до «ПРАЙМСЫ находятся в P» ». Конспекты лекций по информатике . Том. 3000. Спрингер. ISBN  978-3-540-40344-9 .
[ редактировать ]
  • Maple Реализация теста Соловея-Штрассена на простоту в
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5b5ecb1bea07cd47578fd98c279caae8__1709166600
URL1:https://arc.ask3.ru/arc/aa/5b/e8/5b5ecb1bea07cd47578fd98c279caae8.html
Заголовок, (Title) документа по адресу, URL1:
Solovay–Strassen primality test - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)