For faster navigation, this Iframe is preloading the Wikiwand page for Випадкове просте число.

Випадкове просте число

Матеріал з Вікіпедії — вільної енциклопедії.

У криптографії під випадковим простим числом розуміється просте число, що містить у двійковому записі задану кількість бітів , на алгоритм генерування якого накладаються певні обмеження. Отримання випадкових простих чисел є невід'ємною частиною процедур вироблення ключів у багатьох криптографічних алгоритмах, зокрема в RSA і ElGamal.

Зважаючи на те, що перевірка простоти великих чисел вимагає істотних часових витрат, вимогу простоти одержуваного числа часто послаблюють до сильної псевдопростоти за кількома різними випадковим основами. Існують алгоритми перевірки сильної псевдопростоти на порядки швидші від найкращих відомих алгоритмів перевірки простоти. Разом з тим, числа, які успішно пройшли тестування сильної псевдопростоти за кількома випадковими основами, з великою ймовірністю є простими, причому ця ймовірність зростає зі зростанням кількості основ, за якими проводиться перевірка.

Вимоги до алгоритму і його реалізації

[ред. | ред. код]

Вимоги до алгоритмів генерування випадкових простих чисел зводяться до таких двох:

  • Розподіл одержуваних простих чисел має бути близьким до рівномірного на множині всіх k-бітових простих чисел. Існує кілька способів забезпечити виконання цієї вимоги.
  • Процес генерування конкретного випадкового простого числа неможливо відтворити, навіть знаючи деталі алгоритму та його реалізації. Зазвичай виконання цієї вимоги забезпечується використанням криптостійкого ГПВЧ, проініціалізованого деяким ключем, одержуваним ззовні (тобто, який не є частиною алгоритму або його реалізації). Ключем може виступати, наприклад, значення криптографічної геш-функції від секретної фрази, запитуваної в користувача.

Типові алгоритми генерування випадкових простих чисел

[ред. | ред. код]

Скрізь далі передбачається використання криптографічно стійкого ГПВЧ, проініціалізованого за допомогою секретного ключа (деталі залежать від використовуваного ГПВЧ і способу отримання та подання ключа).

Тестування простоти

[ред. | ред. код]

Перевірити (ймовірну) простоту числа p, що містить k бітів, можна так:

  1. Переконатися, що p не ділиться на невеликі прості числа 3, 5, 7, 11, і т. д. до деякої невеликої межі (наприклад, 256). Така перевірка дозволяє ефективно відсікти багато складених чисел, перш ніж перевіряти їх за допомогою трудомісткіших алгоритмів. Так, перевірка подільності p на прості числа 2, 3, 5 і 7 відсіває всі парні числа і 54 % непарних чисел, перевірка подільності p на всі прості числа до 100 відсіває 76 % непарних чисел, а перевірка подільності p на всі прості числа до 256 відсіває 80 % непарних чисел.
  2. Виконати тест Міллера — Рабіна з кількістю раундів не менше k.

Якщо число p не проходить хоча б однієї з перевірок — воно не є простим. В іншому випадку з великою ймовірністю (залежить від кількості раундів) число p є простим.

Пряма побудова

[ред. | ред. код]
  1. Згенерувати випадкових бітів і скласти з них k-бітове число p зі старшим бітом рівним 1.
  2. Збільшити p на 1 і перевірити його простоту. Повторювати цей крок доти, поки не буде знайдено просте число.

Другий крок можна прискорити, якщо розглядати тільки непарні числа або числа, порівнянні з 1 і 5 за модулем 6 тощо.

(n-1)-методи

[ред. | ред. код]

(n-1)-методи побудови простих чисел використовують знання про прості дільники числа n-1 для тестування простоти n за допомогою тесту простоти Люка.[1]

Типового представника цього класу методів описано в книзі «Вступ до криптографії» під редакцією В. В. Ященко.

Генерування простих чисел Софі Жермен

[ред. | ред. код]

Прості числа Софі Жермен — такі прості p, що 2p + 1 теж просте.

Примітки

[ред. | ред. код]
  1. Черёмушкин А. В. Лекции по арифметическим алгоритмам в криптографии. — М. : МЦНМО, 2002. — 104 с. — ISBN 5-94057-060-7.
{{bottomLinkPreText}} {{bottomLinkText}}
Випадкове просте число
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?