Stima la dimensione di una tabella arcobaleno

14

Cosa sono i tavoli arcobaleno e come vengono utilizzati ? Fornisce una risposta molto precisa su cosa sono i tavoli arcobaleno e come vengono utilizzati. Avevo sempre confuso i tavoli hash e i tavoli arcobaleno. La mia domanda riguarda le dimensioni dei tavoli arcobaleno. Ora, per una tabella hash, la dimensione del file sarebbe:

lascia n = ( size of the input plain text file ) (presupponendo una riga per testo semplice)

quindi size(hash table) = n + (bytes in hash)*h + n ( for separation) Bytes

D'altra parte, esiste un meccanismo simile per stimare la dimensione di una tabella arcobaleno? Sono sicuro che esiste, dal momento che gli strumenti utilizzati per generare una tabella arcobaleno di solito hanno una stima della dimensione su di essi.

Come si calcola la dimensione di una tabella arcobaleno, data:

set di caratteri, lunghezza della catena, lunghezza minima e massima del testo normale.

Ciò consentirebbe una migliore comprensione di come e perché i tavoli arcobaleno sono migliori.

    
posta sudhacker 11.09.2012 - 17:49
fonte

2 risposte

7

RainbowCrack è probabilmente quello che utilizzeresti per generare tabelle arcobaleno. Le tabelle Rainbow sono sempre generate su uno spazio per le chiavi, ad esempio alfanumerico da 5 a 9 byte e la lunghezza e il conteggio della catena che influiscono sulla frequenza e sulla dimensione delle tabelle risultanti. Se hai un file di input, non è una tabella arcobaleno, è un'altra tabella di ricerca. Una tabella arcobaleno è un tipo di tabella di ricerca speical con proprietà pulite. Ad esempio la dimensione della funzione di hash ( sha256 rispetto a sha512 ) non influenza la dimensione della tabella arcobaleno.

Ci sono alcuni script MATLAB che fluttuano per calcolare la dimensione della tabella arcobaleno, tuttavia questo sito è più facile da usare .

    
risposta data 11.09.2012 - 21:53
fonte
3

Una tabella arcobaleno è caratterizzata dalla sua lunghezza media della catena . È un parametro scelto al momento della costruzione della tabella. Chiamiamolo t .

Se la tabella copre le password provvisorie N , allora avrà una dimensione di circa N / t "voci", dove una voce è una "fine catena" . La dimensione codificata di una catena dipende da molti dettagli, ma in genere sarà grande o leggermente più grande di un campo che può contenere il valore intero N . In altre parole, se N è vicino a 2 40 , ogni voce avrà bisogno di almeno 5 byte, ma probabilmente un po 'di più, diciamo 8 byte.

Per risparmiare sui costi di archiviazione, vorrai rendere t il più grande possibile. Tuttavia, non puoi renderlo grande come vuoi, perché solleva altri costi. In breve:

  • Il costo di costruzione della tabella riguarda le 1.7 * N valutazioni della funzione di hash.
  • Il costo di archiviazione è N / t termine della catena.
  • Il costo della CPU in fase di attacco riguarda le valutazioni t 2 della funzione di hash.
  • Il costo di ricerca in fase di attacco riguarda gli accessi casuali t nelle tabelle.

Un moderno disco rigido consente circa 100 ricerche al secondo, quindi se vuoi mantenere il tempo di attacco al di sotto di un minuto, non puoi avere t più alto di 6000. Puoi avere valori molto più alti per t se si utilizza SSD (che consente molte migliaia di accessi casuali al secondo), ma i costi di archiviazione aumentano perché gli SSD sono piuttosto costosi. Inoltre, se t diventa troppo alto, il costo della CPU quadratica può diventare proibitivo.

La differenza tra una tabella arcobaleno , ciò che esisteva prima (il trade-off della memoria temporale di Hellman) e le varianti moderne che mescolano idee di Hellman, Oechslin, Rivest, Biham e poche altre, è un fattore di massimo 2 in termini di costi di CPU e ricerca.

    
risposta data 29.10.2012 - 23:20
fonte

Leggi altre domande sui tag