Випадкове просте числоУ криптографії під випадковим простим числом розуміється просте число, що містить у двійковому записі задану кількість бітів , на алгоритм генерування якого накладаються певні обмеження. Отримання випадкових простих чисел є невід'ємною частиною процедур вироблення ключів у багатьох криптографічних алгоритмах, зокрема в RSA і ElGamal. Зважаючи на те, що перевірка простоти великих чисел вимагає істотних часових витрат, вимогу простоти одержуваного числа часто послаблюють до сильної псевдопростоти за кількома різними випадковим основами. Існують алгоритми перевірки сильної псевдопростоти на порядки швидші від найкращих відомих алгоритмів перевірки простоти. Разом з тим, числа, які успішно пройшли тестування сильної псевдопростоти за кількома випадковими основами, з великою ймовірністю є простими, причому ця ймовірність зростає зі зростанням кількості основ, за якими проводиться перевірка. Вимоги до алгоритму і його реалізаціїВимоги до алгоритмів генерування випадкових простих чисел зводяться до таких двох:
Типові алгоритми генерування випадкових простих чиселСкрізь далі передбачається використання криптографічно стійкого ГПВЧ, проініціалізованого за допомогою секретного ключа (деталі залежать від використовуваного ГПВЧ і способу отримання та подання ключа). Тестування простотиПеревірити (ймовірну) простоту числа p, що містить k бітів, можна так:
Якщо число p не проходить хоча б однієї з перевірок — воно не є простим. В іншому випадку з великою ймовірністю (залежить від кількості раундів) число p є простим. Пряма побудова
Другий крок можна прискорити, якщо розглядати тільки непарні числа або числа, порівнянні з 1 і 5 за модулем 6 тощо. (n-1)-методи(n-1)-методи побудови простих чисел використовують знання про прості дільники числа n-1 для тестування простоти n за допомогою тесту простоти Люка.[1] Типового представника цього класу методів описано в книзі «Вступ до криптографії» під редакцією В. В. Ященко. Генерування простих чисел Софі ЖерменПрості числа Софі Жермен — такі прості p, що 2p + 1 теж просте. Примітки
|