L'algoritmo Blum Blum Shub (BBS) è un generatore di numeri pseudo-casuali crittograficamente sicuro proposto nel 1986 da Lenore Blum, Manuel Blum e Michael Shub.

L'algoritmo è il seguente:

  1. Si generino due numeri primi casuali segreti p e q di molti bit, entrambi congruenti a 3 modulo 4 (cioè divisi per 4 danno resto 3) e si calcoli l'intero di Blum n =p·q
  2. Si generi un numero casuale s (detto seme) appartenente all'intervallo [1, n-1] e coprimo rispetto a n. Si calcoli x0s2 mod n
  3. Per i che va da 1 a l (con l pari al numero di bit casuali che si vogliono generare) si eseguano i seguenti passi:
    1. xixi -12 mod n
    2. zi ← bit meno significativo di xi
  4. Il risultato dell'algoritmo è la sequenza di bit z1, z2, ..., zl,

Il fatto che p e q siano congruenti a 3 modulo 4 garantisce che il MCD(φ(p -1), φ(q -1)) sia piccolo (il che rende più lungo il ciclo per cui xi torna ad essere uguale a x0).

Sicurezza

Questo algoritmo non è adatto alle simulazioni, ma solo alla crittografia a causa della sua lentezza. Ha però una dimostrazione della sua sicurezza legata alla difficoltà computazionale della fattorizzazione di grandi numeri interi. Quando i numeri p e q sono scelti appropriatamente, e O(log2(log2 n)) bit di ogni xi sono emessi in output, allora al crescere di n distinguere i bit di output dai bit generati da una fonte realmente casuale è difficile almeno quanto fattorizzare n.

Nonostante le sue proprietà teoriche dimostrabili matematicamente BBS è difficilmente usato in contesti pratici. Infatti le sue garanzie di sicurezza sono valide solo quando il modulo n è molto grande. Ad esempio, supponendo di voler generare 220 bit e voler proteggersi da un attaccante che eseguirà 2100 istruzioni è necessario che il modulo n sia di almeno 6800 bit, molto più grande di altri algoritmi crittografici che forniscono simili garanzie di sicurezza. In modo simile, se si utilizza un modulo n di 768 bit e si estraggono 9.58 bit per ogni iterazione e si generano 109 bit, è possibile dimostrare che si ha una garanzia che un possibile attaccante abbia al più il 1% di probabilità di predire l'output di BBS solo se l'attaccante compie 2−264 istruzioni (notare l'esponente negativo). In altre parole, le garanzie teoriche di BBS non necessariamente si traducono in vantaggi nelle applicazioni pratiche.

Note


Downloads Blum

Blum blum shub generator algorithm example lonestarnaxre

Kontakt Blum

Geschichte Blum

About Blum Blum