Interested Article - Тест Соловея — Штрассена

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

История

В 17 веке Ферма доказал утверждение, названное позже малой теоремой Ферма , служащее основой теста Ферма на простоту:

Если n — простое и a не делится на n , то .

Эта проверка для заданного n не требует больших вычислений, однако утверждение, обратное этому, неверно. Так, существуют числа Кармайкла, являющиеся составными, для которых утверждение, приведенное в малой теореме Ферма, выполняется для всех целых чисел взаимнопростых с заданным числом. В 1994 году было показано, что таких чисел бесконечно много. В связи с обнаруженным недостатком теста Ферма, актуальность приобрела задача увеличения достоверности вероятностных тестов. Первым тест, отсеивающий числа Кармайкла как составные, предложил Леманн. Этот недостаток отсутствует также в тестах Соловея — Штрассена и Миллера — Рабина за счет более сильного критерия отсева, чем малая теорема Ферма. Независимо от друг друга Д. Лемер в 1976 году и Р. Соловей совместно с Ф. Штрассеном в 1977 году доказали, что аналога чисел Кармайкла, которые являются составными и одновременно эйлеровыми псевдопростыми, нет. На основе этого и был предложен тест Соловея — Штрассена на простоту, он был опубликован в 1977 году, дополнения к нему в 1978 году.

Обоснование

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

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

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

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

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

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

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

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

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

Пример применения алгоритма

Проверим число n = 19 на простоту. Выберем параметр точности k = 2.

 k = 1
 Выберем случайное число a = 11;  2 < a < n - 1
 Проверим условие НОД(a,n)>1
 НОД(11,19)=1; значит проверяем выполнение сравнения    
 
 
 Получили, что  поэтому переходим к следующей итерации
 k = 2
 Выберем случайное число a = 5;    2 < a < n - 1
 Проверим условие НОД(a,n)>1
 НОД(5,19)=1;  значит проверяем выполнение сравнения    
 
 
   и это была последняя итерация, отсюда делаем вывод, что 19 - простое число с вероятностью 

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

  • Точность по сравнению с другими вероятностными тестами на простоту (здесь k — число независимых раундов)
название теста вероятность( что число составное ) примечания
Ферма не распознает числа Кармайкла как составные
Леманна
Соловея — Штрассена
  • Теоретическая сложность вычислений всех приведенных в таблице тестов оценивается как .
  • Алгоритм требует операций над длинными целыми числами .
  • При реализации алгоритма, для снижения вычислительной сложности, числа a выбираются из интервала 0 < a < c < n , где c — константа равная максимально возможному значению натурального числа, помещающегося в одном регистре процессора.

Применение

Вероятностные тесты применяются в системах основанных на проблеме факторизации , например RSA или схема Рабина . Однако на практике степень достоверности теста Соловея — Штрассена не является достаточной, вместо него используется тест Миллера — Рабина . Более того, используются объединенные алгоритмы, например пробное деление и тест Миллера — Рабина, при правильном выборе параметров можно получить результаты лучше, чем при применении каждого теста по отдельности.

Улучшение теста

В 2005 году на Международной конференции Bit+ «Informational Technologies −2005» А. А. Балабанов, А. Ф. Агафонов, В. А. Рыку предложили модернизированный тест Соловея — Штрассена. Тест Соловея — Штрассена основан на вычислении символа Якоби, что занимает время эквивалентное . Идея улучшения состоит в том, чтобы в соответствии с теоремой квадратичной взаимности Гаусса , перейти к вычислению величины ,являющейся обратной символу Якоби, что является более простой процедурой. .

См. также

Примечания

  1. Solovay, Robert M. and Volker Strassen. A fast Monte-Carlo test for primality (англ.) // (англ.) : journal. — 1977, submitted in 1974. — Vol. 6 , no. 1 . — P. 84—85 . — doi : .
  2. W. R. Alford, A. Granville, C. Pomerance. (англ.) // Annals of Mathematics : journal. — 1994. — Vol. 139 . — P. 703—722 . — doi : . 4 мая 2012 года.
  3. , с. 48.
  4. , с. 82.
  5. Н.Ю. Золотых . Лекции по компьютерной алгебре. от 4 ноября 2014 на Wayback Machine
  6. , с. 84.
  7. Б. Шнайер Прикладная криптография — М. : ТРИУМФ, 2002 . — Глава 11.
  8. Балабанов А. А.,Агафонов А. Ф.,Рыку В. А. от 5 ноября 2014 на Wayback Machine — Вестник научно-технического развития, 2009 № 7(23). — С. 11.

Литература

  1. Коблиц Н. . — 2-ое. — М. : Научное издательство ТВП, 2001. — С. 149—160. — 254 с. — ISBN 5-94057-103-4 .
  2. Нестеренко А. . — 2011. — С. 79—90. — 190 с. — ISBN 978-5-94506-320-4 .
  3. Черемушкин А. В. . — М. : МЦНМО , 2001. — С. 42—59. — 104 с. — ISBN 5-94057-060-7 . от 31 мая 2013 на Wayback Machine
  4. Саломаа А. / Пер. с англ. И.А. Вихлянцева. — М. : Мир, 1995. — С. 176—184. — 318 с. — ISBN 5-03-001991-X . от 19 ноября 2011 на Wayback Machine


Источник —

Same as Тест Соловея — Штрассена