Blum Blum Shub (BBS) est un algorithme capable de produire des nombres pseudo-aléatoires. Il fut proposé en 1986 par Lenore Blum, Manuel Blum et Michael Shub, d'où son nom.

Définition

On calcule la sortie de BBS en itérant la suite : x n 1 = ( x n ) 2 mod M {\displaystyle x_{n 1}=(x_{n})^{2}\!\mod M} où "mod" est l'opérateur reste (modulo) lors de la division euclidienne par M = p q {\displaystyle M=p\,q} , le produit de deux grands nombres premiers p {\displaystyle p} et q {\displaystyle q} . La sortie de l'algorithme est le bit le moins significatif ou les derniers bits de x n 1 {\displaystyle x_{n 1}} .

Les deux nombres premiers, p {\displaystyle p} et q {\displaystyle q} , devraient tous deux être congrus à 3 modulo 4 (cela garantit que chaque résidu quadratique possède une racine carrée qui soit également un résidu quadratique) et le PGCD de φ {\displaystyle \varphi } ( p 1 ) {\displaystyle (p-1)} et φ {\displaystyle \varphi } ( q 1 ) {\displaystyle (q-1)} doit être petit (ce qui fait que le cycle est long).

La graine aléatoire x 0 {\displaystyle x_{0}} et M {\displaystyle M} doivent être premiers entre eux (c'est-à-dire que p {\displaystyle p} et q {\displaystyle q} ne doivent pas être des facteurs de x 0 {\displaystyle x_{0}} ), et x 0 {\displaystyle x_{0}} ne doit pas être 0 ou 1.

Sécurité de l'algorithme

Le générateur n'est pas approprié aux simulations, mais plutôt à la cryptographie, car il est assez lent.

Cependant, il possède une sécurité inhabituelle, puisqu'il a été démontré, tout d'abord, qu'il était cryptographiquement sûr sous l'hypothèse qu'il soit difficile de déterminer si, modulo un entier composé, un nombre est un carré ou non (problème de la résiduosité quadratique). Par la suite, il a été prouvé qu'il était cryptographiquement sûr, sous l'hypothèse que le problème de la factorisation soit difficile, et qu'au plus log ( log ( M ) ) {\displaystyle \log(\log(M))} bits de poids faible de chaque x n {\displaystyle x_{n}} soient sortis à chaque itération. Dans ce cas, il n'est pas possible de différencier la suite produite d'une suite réellement aléatoire.

Générateur

Lavarand est un dispositif utilisant des lampes à lave afin d'obtenir la graine d'un algorithme BBS, et ainsi générer des nombres pseudo-aléatoires très sûrs et même des nombres réellement aléatoires,.

Notes et références

Annexes

Bibliographie

  • (en) Lenore Blum, Manuel Blum et Michael Shub, « A Simple Unpredictable Pseudo-Random Number Generator », SIAM Journal on Computing, vol. 15, no 2,‎ , p. 364–383 (DOI 10.1137/0215025).
  • Pascal Junod, "Cryptographic Secure Pseudo-Random Bits Generation: The Blum-Blum-Shub Generator", août 1999. PDF de 21 pages
  • Martin Geisler, Mikkel Krøigård, et Andreas Danielsen. "About Random Bits", décembre 2004. Disponible en PDF et Gzipped Postscript.
  • Umesh Vazirani, Vijay V. Vazirani. "Efficient and Secure Pseudo-Random Number Generation", Crypto'84, Lecture Notes in Computer Science Volume 196, p. 193--202, Springer-Verlag (1985)
  • Alfred Menezes, Paul C. van Oorschot et Scott Vanstone, "Handbook of Applied Cryptography", 5ième édition (août 2001), chapitre 5.5.2. PDF du chapitre 5

Liens externes

  • « GMPBBS » (version du sur Internet Archive) - une implémentation GNU de l'algorithme Blum Blum Shub.
  • Portail de la cryptologie

Standorte Blum

Blum, Blum y Shub by Ivan Munoz on Prezi

Kontakt Blum

Blum Blum Shub Generator cryptography Course Hero

(PDF) Blum Blum Shub in Generating Key in RC4