Тест Соловея — Штрассена: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Строка 3: Строка 3:
== Обоснование ==
== Обоснование ==
Тест Соловея — Штрассена опирается на [[малая теорема Ферма|малую теорему Ферма]] и свойства [[символ Якоби|символа Якоби]]:
Тест Соловея — Штрассена опирается на [[малая теорема Ферма|малую теорему Ферма]] и свойства [[символ Якоби|символа Якоби]]:
* Если ''m'' — нечетное [[составное число]], то количество целых чисел ''w'', взаимнопростых с ''m'' и меньших ''m'', удовлетворяющих [[сравнение по модулю натурального числа|сравнению]] <math>\textstyle w^{(m-1)/2} \equiv \left( \frac{w}{m} \right)\pmod{m}</math>, не превосходит <math>\frac{m}{2}</math>.
* Если ''m'' — нечетное [[составное число]], то количество целых чисел ''w'', взаимнопростых с ''m'' и меньших ''m'', удовлетворяющих [[сравнение по модулю натурального числа|сравнению]] <math>\textstyle w^{(m-1)/2} \pmod{m} \equiv \left( \frac{w}{m} \right)\pmod{m}</math>, не превосходит <math>\frac{m}{2}</math>.


Составные числа ''m'' удовлетворяющие этому сравнению называются [[псевдопростое число|псевдопростыми Эйлера-Якоби]] по основанию ''w''.
Составные числа ''m'' удовлетворяющие этому сравнению называются [[псевдопростое число|псевдопростыми Эйлера-Якоби]] по основанию ''w''.

Версия от 16:49, 31 марта 2012

Тест Соловея — Штрассена — вероятностный тест простоты, открытый в 1970-х годах Робертом Мартином Соловеем совместно с Фолькером Штрассеном.[1] Тест всегда корректно определяет, что простое число является простым, но для составных чисел с некоторой вероятностью он может дать неверный ответ. Основное преимущество теста заключается в том, что он, в отличие от теста Ферма, распознает числа Кармайкла как составные.

Обоснование

Тест Соловея — Штрассена опирается на малую теорему Ферма и свойства символа Якоби:

  • Если m — нечетное составное число, то количество целых чисел w, взаимнопростых с m и меньших m, удовлетворяющих сравнению , не превосходит .

Составные числа m удовлетворяющие этому сравнению называются псевдопростыми Эйлера-Якоби по основанию w.

Алгоритм Соловея — Штрассена

Алгоритм Соловея — Штрассена параметризуется количеством раундов k. В каждом раунде случайным образом выбирается число w < m. Если НОД(w,m) > 1, то выносится решение, что m составное. Иначе проверяется справедливость сравнения . Если оно не выполняется, то выносится решение, что m - составное. Если это сравнение выполняется, то w является свидетелем простоты числа m. Далее выбирается другое случайное w и процедура повторяется. После нахождения k свидетелей простоты в k раундах выносится заключение, что m вероятно является простым числом. Нетрудно видеть, что для проверки этого сравнения достаточно шаблон не поддерживает такой синтаксис.

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

Вход:  > 2, тестируемое нечётное натуральное число;
      , параметр, определяющий точность теста.
Выход: составное, означает, что  точно составное;
       вероятно простое, означает, что  вероятно является простым.

for i = 1, 2, ..., :
    = случайное целое от 2 до , включительно;
   если НОД(w, m) > 1, тогда:
       вывести, что  — составное, и остановиться.
   если
       
       и
       
   тогда: 
       вывести, что составное, и остановиться.

вывести, что вероятно простое, и остановиться.

Вычислительная сложность и точность

На каждом раунде алгоритма составное число может быть распознано с вероятностью не менее ½. После k независимых раундов, эта вероятность составляет , что хуже теста Миллера — Рабина имеющего вероятность ошибки не более .

Алгоритм требует операций над длинными целыми числами.[1]

См. также

Примечания

  1. 1 2 Solovay, Robert M. and Volker Strassen (1977, submitted in 1974). "A fast Monte-Carlo test for primality". SIAM Journal on Computing. 6 (1): 84—85. doi:10.1137/0206006. {{cite journal}}: Проверьте значение даты: |year= (справка)CS1 maint: year (ссылка)

Литература

  1. Н. Коблиц. Курс теории чисел и криптографии. — ISBN 5-94057-103-4.

Ссылки

  1. http://www.ssl.stu.neva.ru/psw/crypto/open_key_crypt.pdf
  2. http://gultyaeva.sdbe.ami.nstu.ru/fti&c/Materials/lr_fti&c.pdf