Qual è la differenza tra una tabella hash e una tabella arcobaleno e come vengono utilizzati entrambi?

5

C'è molta differenza tra i due tavoli? Puoi prenderne uno dall'altro? (cioè hash - > arcobaleno) Come funzionano? Esistono diverse variabili (in riferimento a velocità, forza, risorse, dimensioni, ecc.) Da cui dipendono altre cose? Una spiegazione approfondita dei due, nonché un confronto e il contrasto sarebbe grandioso e forse alcuni esempi / scenari in cui i due possono essere utilizzati.

    
posta WMPR 01.07.2015 - 15:44
fonte

1 risposta

5

Sia le tabelle hash che le tabelle arcobaleno memorizzano i valori hash precalcolati. Le tabelle Rainbow sono una potenza di calcolo rispetto al compromesso di archiviazione rispetto alle tabelle hash. Vengono utilizzati perché le tabelle hash possono diventare molto grandi, specialmente in seguito al miglioramento della velocità di cracking dell'hardware. Puoi potenziare più combinazioni, ma ora devi archiviarne altre.

Di quanto spazio stiamo parlando? Ci sono elenchi di password comuni (presi da hack precedenti) con decine di milioni di password conosciute e che di solito avvengono nei cracker. Questo può essere integrato da centinaia di milioni di permutazioni di quelle password deboli (se qualcuno ha usato password1111, qualcun altro probabilmente ha usato password2222). Infine, per una buona misura, le lacune possono essere riempite con una ricerca esaustiva di tutte le possibili combinazioni di password fino ad una certa lunghezza. Prendi 1 miliardo di password, con una lunghezza media di 8 caratteri e un hash di 32 byte. Questo è 40 GB di spazio di archiviazione per memorizzare la tabella hash.

Una tabella arcobaleno è un modo per memorizzare le stesse informazioni utilizzando meno spazio. Non c'è il pranzo libero però in informatica puoi sempre scambiare spazio per la potenza di calcolo e questo è quello che stai facendo. Per costruire una tavola arcobaleno, viene prima costruita una tabella hash tradizionale. A partire da quei valori hash, una catena hash viene costruita usando funzioni di hashing e riduzione alternate. La funzione di riduzione riporta gli hash a diverse password nell'elenco. La lunghezza della catena determina la quantità di compromesso utilizzata (più lungo = più spazio risparmiato ma più lavoro per eseguire una ricerca).

Vengono salvati solo l'inizio e la fine della catena e il resto viene scartato, quindi il tavolo finale è molto più piccolo. Individuare una corrispondenza ora richiede più ricerche, il che significa che richiede più tempo di una tabella hash.

  • Sia le tabelle hash che le tabelle arcobaleno vengono utilizzate per salvare i risultati di un attacco precomputazione
  • Le ricerche in una tabella arcobaleno sono più lente *, ma richiedono meno spazio per archiviare i risultati precompilati di un determinato numero di password.
  • Le ricerche in una tabella hash sono più veloci *, ma richiedono più spazio per archiviare i risultati precalcolati di un determinato numero di password.
  • Sia le tabelle hash che le tabelle arcobaleno vengono ugualmente e totalmente sconfitte usando un sale pseudo-casuale per record.

* Questo presuppone un tempo di risposta hardware uguale che potrebbe non essere il caso (ad esempio, la tabella arcobaleno può essere inserita nella memoria principale ma hashtable richiede una lettura dal disco più lento perché è troppo grande per adattarsi alla memoria principale).

    
risposta data 01.07.2015 - 18:30
fonte

Leggi altre domande sui tag