Алгоритм Блум - Блум - Шуба

Алгоритм Блум - Блум - Шуба (англ. Algorithm Blum — Blum — Shub, BBS) - генератор псевдовипадкових чисел, запропонований в 1986 році Ленором Блумом, Мануелем Блумом і Майклом Шубом.

BBS має такий вигляд:

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

Два простих числа, і , повинні бути конгруентні з 3 по (це гарантує, що кожен квадратний залишок має один квадратний корінь, який також є квадратним залишком) і найбільший спільний дільник НСД має бути маленьким (це збільшує довжину циклу).

Цікавою особливістю цього алгоритму є те, що для отримання необов'язково обчислювати всі попередні числа, якщо відомо початковий стан генератора і числа і . - е значення може бути обчислено безпосередньо використовуючи формулу:

,

де - функція Кармайкла: в даному випадку - найменше спільне кратне чисел () і ().

Надійність ред.

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

Приклад ред.

Нехай  ,   та  . Ми можемо розраховувати отримати велику довжину циклу для таких малих чисел, тому що  . Генератор починає рахувати   за допомогою   і створює послідовність  ,  ,  ,     = 9, 81, 82, 36, 42, 92. У наступній таблиці показано вихідні дані (у бітах) для різних методів вибору бітів, що використовуються для визначення виходу.

Парний біт Непарний біт Найменш значущий біт
0 1 1 0 1 0 1 0 0 1 0 1 1 1 0 0 0 0

Посилання ред.

Література ред.

  • Lenore Blum, Manuel Blum, and Michael Shub. «A Simple Unpredictable Pseudo-Random Number Generator», SIAM Journal on Computing, volume 15, pages 364—383, May 1986.
  • Lenore Blum, Manuel Blum, and Michael Shub. «Comparison of two pseudo-random number generators», Advances in Cryptology: Proceedings of Crypto '82. Available as PDF.
  • Pascal Junod, «Cryptographic Secure Pseudo-Random Bits Generation: The Blum-Blum-Shub Generator», August 1999. 21 page PDF file [Архівовано 24 жовтня 2019 у Wayback Machine.]
  • Martin Geisler, Mikkel Krøigård, and Andreas Danielsen. «About Random Bits», December 2004. Available as PDF and Gzipped Postscript.
  • Randomness Recommendations for Security — RFC 1750 [Архівовано 22 березня 2019 у Wayback Machine.].