Timeline
Chat
Prospettiva

Blum Blum Shub

generatore di numeri pseudo-casuali crittograficamente sicuro Da Wikipedia, l'enciclopedia libera

Remove ads

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[1].

L'algoritmo è il seguente[2]:

  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. zibit 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).

Remove ads

Sicurezza

Riepilogo
Prospettiva

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[3]. 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)[4]. In altre parole, le garanzie teoriche di BBS non necessariamente si traducono in vantaggi nelle applicazioni pratiche.

Remove ads

Note

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads