Тест простоти Міллера — Рабіна
Тест простоти Міллера — Рабіна або тест Міллера – Рабіна — це тест простоти: алгоритм, який визначає чи є надане число простим. Його початкова версія, яку розробив професор Міллер, є детерміністичною, але детермінізм покладається на недоведену узагальнену гіпотезу Рімана;[1] Міхаель Рабін змінив її, щоб отримати безумовний імовірнісний алгоритм.[2]
Для багатьох застосувань, як-от криптографія, ми потребуємо великих випадкових простих чисел. На щастя, великі прості не такі вже й рідкісні, тому можливо перевіряти цілі потрібного розміру, щоб знайти серед них просте. Функція розподілу простих чисел визначає кількість простих чисел, які менші ніж . Наприклад, Відомо, що
Це досить якісне наближена оцінка для З цього ми маємо, що ймовірність того, що є простим дорівнює . Геометричний розподіл підказує нам, що очікувана кількість спроб для знаходження простого числа становить . Також ми, звісно, можемо опустити парні числа, що зменшує кількість спроб удвічі.
Наївним способом перевірки чи число просте був би повний перебір можливих дільників. Тобто для числа потрібно було б перебрати . Знов-таки, ми можемо пропускати парні числа більші ніж двійка. Якщо вважати, що кожне пробне ділення потребує однаково часу, то складність буде , така складність є експоненційною для . Алгоритми з такою складністю, зазвичай вважають повільними. Хоча у такого алгоритму є й перевага, він знаходить дільники , тобто розкладає число.
Найвідомішими ймовірнісними тестами простоти є тест Соловея — Штрассена і тест Міллера — Рабіна. В обох випадках базова процедура та сама: ми визначаємо множину свідків того, що є складеним. Якщо ми можемо знайти тоді і є складеним числом. У випадку тесту Міллера — Рабіна
Нехай буде непарним числом і нехай з непарним Припустимо, що просте. Тоді квадратними коренями з будуть лише тобто єдиними розв'язками за модулем 2. Більше того, для кожного яке просте з Отже,
- і і
- якщо тоді і
- якщо тоді
Ми бачимо: якщо є простим, тоді для кожного за умови, що або або існує з Зворотнє твердження також істинне, тобто, якщо є складеним, тоді існує з таке що і для І точніше:
Теорема: Нехай буде складеним непарним числом. Нехай з непарним Нехай
Тоді
Тест Міллера — Рабіна буде кращим вибором:
- Легше обчислити тестові умови.
- Свідок для тесту Соловея—Штрассена також свідок для тесту Міллера — Рабіна.
- У тесті Міллера — Рабіна ймовірність натрапити на свідка за одну випадкову спробу більша ніж 3/4, а у тесті Соловея—Штрассена 1/2.
МІЛЛЕР-РАБІН
|
Імовірність помилки
- ↑ Гарі Міллер (1976), Ріманова гіпотеза і тест на простоту, Journal of Computer and System Sciences, 13 (3): 300—317, doi:10.1145/800116.803773
- ↑ Міхаель Рабін (1980), Ймовірнісний алгоритм для перевірки простоти, Journal of Number Theory, 12 (1): 128—138, doi:10.1016/0022-314X(80)90084-0
- Т. Кормен; Ч. Лейзерсон; Р. Рівест; К. Стайн (2009) [1990]. 31 Теоретико-числові алгоритми. Вступ до алгоритмів (вид. 3rd). MIT Press і McGraw-Hill. ISBN 0-262-03384-4.
- Hans Delfs; Helmut Knebl. A.8 Primes and Primality Tests. Introduction to Cryptography. Principles and Applications (вид. 2). Springer. с. 319—324. ISBN 978-3-540-49243-6.