Тест Соловея — Штрассена — імовірнісний тест простоти, відкритий у 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» А. А. Балабанов, А. Ф. Агафонов, В. А. Рику запропонували модернізований тест Соловея — Штрассена. Тест Соловея — Штрассена заснований на обчисленні символу Якобі, що займає час, еквівалентний . Ідея поліпшення полягає в тому, щоб у відповідності з теоремою квадратичного закону взаємності Гаусса, перейти до обчислення величини ,що є оберненою символу Якобі, що є більш простою процедурою..
Див. також
Примітки
- 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.
- W. R. Alford, A. Granville, C. Pomerance (1994). There are Infinitely Many Carmichael Numbers (PDF). Annals of Mathematics. 139: 703—722. doi:10.2307/2118576.
- Черемушкин, 2001.
- Нестеренко, 2011.
- Нестеренко, 2011, с. 84.
- Б. Шнайер Прикладная криптография — М. : ТРИУМФ, 2002 . — Глава 11.
- Балабанов А. А.,Агафонов А. Ф.,Рыку В. А.Алгоритм быстрой генерации ключей в криптографической системе RSA. — Вестник научно-технического развития, 2009 № 7(23). — С. 11.
Література
- Коблиц Н. Курс теории чисел и криптографии. — М. : Научное издательство ТВП, 2001. — С. 149 - 160. — .
- Нестеренко А. Введение в современную криптографию. Теоретико-числовые алгоритмы. — 2011. — С. 79 - 90. — .
- Черемушкин А. В. Лекции по арифметическим алгоритмам в криптографии. — МЦНМО. — М., 2001. — С. 42 - 59. — .
- Саломаа А. Криптография с открытым ключом / Пер. з англ. І.А. Віхлянцева. — М. : Мир, 1995. — С. 176 - 184. — .
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Test Soloveya Shtrassena imovirnisnij test prostoti vidkritij u 1970 h rokah Robertom Martinom Soloveem spilno z Folkerom Shtrassenom Test zavzhdi korektno viznachaye sho proste chislo ye prostim ale dlya skladenih chisel z deyakoyu jmovirnistyu vin mozhe dati nepravilnu vidpovid Osnovna perevaga testu polyagaye v tomu sho vin na vidminu vid testu Ferma rozpiznaye chisla Karmajkla yak skladeni IstoriyaU 17 stolitti Ferma doviv tverdzhennya nazvane piznishe maloyu teoremoyu Ferma sho sluguye osnovoyu testu Ferma na prostotu Yaksho n proste i a ne dilitsya na n to a n 1 1 mod n displaystyle a n 1 equiv 1 pmod n Cya perevirka dlya zadanogo n ne vimagaye velikih obchislen odnak tverdzhennya protilezhne comu ye nevirnim Tak isnuyut chisla Karmajkla yaki ye skladenimi dlya yakih tverdzhennya navedene v malij teoremi Ferma vikonuyetsya dlya vsih cilih chisel vzayemnoprostih z zadanim chislom U 1994 roci bulo pokazano sho takih chisel neskinchenno bagato U zv yazku z viyavlenim nedolikom testu Ferma aktualnosti nabulo zavdannya zbilshennya dostovirnosti jmovirnisnih testiv Pershim test sho vidsiyuye chisla Karmajkla yak skladeni zaproponuvav Lemann Cej nedolik vidsutnij takozh u testah Soloveya Shtrassena i Millera Rabina za rahunok bilsh silnogo kriteriyu vidsivu nizh mala teorema Ferma Nezalezhno vid odin odnogo D Lemer v 1976 roci i R Solovej spilno z F Shtrassenom v 1977 roci doveli sho analoga chisel Karmajkla yaki ye skladenimi i odnochasno ejlerovimi psevdoprostimi nemaye Na osnovi cogo i buv zaproponovanij test Soloveya Shtrassena na prostotu vin buv opublikovanij v 1977 roci dopovnennya do nogo v 1978 roci ObgruntuvannyaTest Soloveya Shtrassena spirayetsya na malu teoremu Ferma i vlastivosti simvolu Yakobi Yaksho n neparne skladene chislo to kilkist cilih chisel a vzayemnoprostih z n i menshih n sho zadovolnyayut porivnyannyu a n 1 2 a n mod n displaystyle textstyle a n 1 2 equiv left frac a n right pmod n ne perevishuye n 2 displaystyle frac n 2 Skladeni chisla n sho zadovolnyayut comu porivnyannyu nazivayutsya psevdoprostimi Ejlera Yakobi za osnovoyu a Algoritm Soloveya ShtrassenaAlgoritm Soloveya Shtrassena parametrizuyetsya kilkistyu iteracij k U kozhnij iteraciyi vipadkovim chinom vibirayetsya chislo a lt n Yaksho NSD a n gt 1 to vinositsya rishennya sho n skladene Inakshe pereviryayetsya spravedlivist porivnyannya a n 1 2 a n mod n displaystyle textstyle a n 1 2 equiv left a over n right pmod n Yaksho vono ne vikonuyetsya to vinositsya rishennya sho n skladene Yaksho ce porivnyannya vikonuyetsya to a ye svidkom prostoti chisla n Dali vibirayetsya inshe vipadkove a i procedura povtoryuyetsya Pislya znahodzhennya k svidkiv prostoti v k iteraciyah vinositsya visnovok sho n ye prostim chislom z imovirnistyu 1 2 k displaystyle textstyle 1 2 k Na psevdokodi algoritm mozhe buti zapisanij nastupnim chinom Vvid n displaystyle n gt 2 neparne naturalne chislo sho testuyetsya k displaystyle k parametr sho viznachaye tochnist testu Vivid skladene oznachaye sho n displaystyle n tochno skladene jmovirno proste oznachaye sho n displaystyle n jmovirno ye prostim for i 1 2 k displaystyle k a displaystyle a vipadkove cile vid 2 do n 1 displaystyle n 1 vklyuchno yaksho NSD a n gt 1 todi vivesti sho n displaystyle n skladene i zupinitisya yaksho a n 1 2 a n mod n displaystyle a n 1 2 not equiv left a over n right pmod n todi vivesti sho n displaystyle n skladene i zupinitisya inakshe vivesti sho n displaystyle n proste zi jmovirnistyu 1 2 k displaystyle textstyle 1 2 k i zupinitisya Priklad zastosuvannya algoritmuPerevirimo chislo n 19 na prostotu Viberemo parametr tochnosti k 2 k 1 Viberemo dovilne chislo a 11 2 lt a lt n 1 Perevirimo umovu NSD a n gt 1 NSD 11 19 1 otzhe pereviryayemo vikonannya porivnyannya a n 1 2 a n mod n displaystyle textstyle a n 1 2 equiv left frac a n right pmod n r a n 11 19 1 displaystyle r left frac a n right left frac 11 19 right 1 s a n 1 2 11 19 1 2 mod 19 1 displaystyle textstyle s a n 1 2 11 19 1 2 pmod 19 1 Otrimali sho r s displaystyle textstyle r s tomu perehodimo do nastupnoyi iteraciyi k 2 Viberemo dovilne chislo a 5 2 lt a lt n 1 Perevirimo umovu NSD a n gt 1 NSD 5 19 1 otzhe pereviryayemo vikonannya porivnyannya a n 1 2 a n mod n displaystyle textstyle a n 1 2 equiv left frac a n right pmod n r a n 5 19 1 displaystyle r left frac a n right left frac 5 19 right 1 s a n 1 2 5 19 1 2 mod 19 1 displaystyle textstyle s a n 1 2 5 19 1 2 pmod 19 1 r s displaystyle textstyle r s i ce bula ostannya iteraciya zvidsi robimo visnovok sho 19 proste chislo z imovirnistyu 1 2 2 displaystyle 1 2 2 Obchislyuvalna skladnist i tochnistTochnist u porivnyanni z inshimi jmovirnisnimi testami na prostotu tut k chislo nezalezhnih iteracij nazva testu jmovirnist sho chislo skladene primitki Ferma 2 k textstyle 2 k ne rozpiznaye chisla Karmajkla yak skladeni Lemanna 2 k displaystyle 2 k Soloveya Shtrassena 2 k displaystyle 2 k Teoretichna skladnist obchislen vsih navedenih u tablici testiv ocinyuyetsya yak O log 3 n displaystyle O log 3 n Algoritm vimagaye O k log 2 m displaystyle O k log 2 m operacij nad dovgimi cilimi chislami Pri realizaciyi algoritmu dlya znizhennya obchislyuvalnoyi skladnosti chisla a vibirayutsya z intervalu 0 lt a lt c lt n de c konstanta rivna maksimalno mozhlivomu znachennyu naturalnogo chisla sho mistitsya v odnomu registri procesora ZastosuvannyaJmovirnisni testi zastosovuyutsya v sistemah zasnovanih na problemi faktorizaciyi napriklad RSA abo shema Rabina Odnak na praktici stupin dostovirnosti testu Soloveya Shtrassena ne ye dostatnoyu zamist nogo vikoristovuyetsya test Millera Rabina Bilsh togo vikoristovuyutsya ob yednani algoritmi napriklad probnij podil i test Millera Rabina pri pravilnomu vibori parametriv mozhna otrimati krashi rezultati nizh pri zastosuvanni kozhnogo testu okremo Polipshennya testuU 2005 roci na Mizhnarodnij konferenciyi Bit Informational Technologies 2005 A A Balabanov A F Agafonov V A Riku zaproponuvali modernizovanij test Soloveya Shtrassena Test Soloveya Shtrassena zasnovanij na obchislenni simvolu Yakobi sho zajmaye chas ekvivalentnij log 2 n displaystyle log 2 n Ideya polipshennya polyagaye v tomu shob u vidpovidnosti z teoremoyu kvadratichnogo zakonu vzayemnosti Gaussa perejti do obchislennya velichini n a displaystyle left frac n a right sho ye obernenoyu simvolu Yakobi sho ye bilsh prostoyu proceduroyu Div takozhPsevdoproste chisloPrimitkiSolovay 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 W R Alford A Granville C Pomerance 1994 There are Infinitely Many Carmichael Numbers PDF Annals of Mathematics 139 703 722 doi 10 2307 2118576 Cheremushkin 2001 Nesterenko 2011 Nesterenko 2011 s 84 B ShnajerPrikladnaya kriptografiya M TRIUMF 2002 Glava 11 Balabanov A A Agafonov A F Ryku V A Algoritm bystroj generacii klyuchej v kriptograficheskoj sisteme RSA Vestnik nauchno tehnicheskogo razvitiya 2009 7 23 S 11 LiteraturaKoblic N Kurs teorii chisel i kriptografii M Nauchnoe izdatelstvo TVP 2001 S 149 160 ISBN 5 94057 103 4 Nesterenko A Vvedenie v sovremennuyu kriptografiyu Teoretiko chislovye algoritmy 2011 S 79 90 ISBN 978 5 94506 320 4 Cheremushkin A V Lekcii po arifmeticheskim algoritmam v kriptografii MCNMO M 2001 S 42 59 ISBN 5 94057 060 7 Salomaa A Kriptografiya s otkrytym klyuchom Per z angl I A Vihlyanceva M Mir 1995 S 176 184 ISBN 5 03 001991 X