Confronto tra bcrypt e scrypt

0

C'è qualche paragone tra bcrypt e scrypt? Sono particolarmente interessato a come bcrypt (10) bcrypt (20) o anche bcrypt (30) scala in confronto a scrypt (1)?

    
posta Max0999 22.01.2014 - 20:39
fonte

1 risposta

5

Il confronto è complesso perché scrypt e bcrypt non giocano sugli stessi parametri.

Per bcrypt, il calcolo richiede molte operazioni su una matrice di RAM da 4 kB. L'array è accessibile in modo pseudocasuale, quindi l'unico modo per farlo funzionare a una velocità decente è avere un effettivo blocco di RAM di almeno quella dimensione. Questo è vero per CPU normali, che hanno (in genere) circa 32 o 64 kB di RAM molto veloce (chiamata "cache di livello 1"). Questo è non vero di GPU, dove non c'è RAM veloce per core (c'è RAM in una GPU, ma è condivisa). Il buon FPGA ha incorporato blocchi veloci di RAM di alcuni kilobyte; quindi, un attaccante sofisticato che usa l'FPGA otterrà un vantaggio sul difensore (perché il difensore usa un PC, questo è l'assunto centrale).

Con scrypt, le operazioni sono alquanto diverse e, in particolare, c'è una matrice molto più grande di RAM (dimensione se configurabile ma una dimensione tipica userebbe diversi megabyte). Per una CPU, una RAM più grande richiede l'uso di cache di livello 2 o anche di RAM principale, che è più lenta della cache di livello 1. Tuttavia, un PC soffre molto meno di un FPGA quando si passa a grandi array RAM. Quindi la teoria è che la migliore architettura per attaccare lo scrypt è, in effetti, un PC, proprio come quello usato dal difensore. Ciò porta l'attaccante e il difensore a una rigorosa uguaglianza di mezzi, che è il meglio che possiamo sperare.

Ciò che conta non è la velocità effettiva dell'algoritmo, ma l' efficienza relativa di diverse architetture quando si implementa l'algoritmo. Una funzione di hashing della password è "ottimale" se la migliore architettura per decifrare le password (l'hardware che permetterà il maggior numero di password provate al secondo, per un dato budget) è ciò che il defender deve usare, cioè, fondamentalmente, un PC. Pertanto, confrontare bcrypt con scrypt significa provare a misurare quanto bene entrambi soddisfano quella caratteristica ideale. Ad esempio, con bcrypt, sappiamo che 10000 $ di FPGA consentono prestazioni di cracking superiori a 10000 $ di PC.

Possiamo mettere le cifre su questi, ma questi saranno estremamente sensibili a molti parametri architettonici ed economici. Ogni anno, la disponibilità di nuovo hardware e l'evoluzione dei prezzi dell'hardware, alterano considerevolmente qualsiasi cifra che potreste aver raccolto. Inoltre, la dimensione della RAM e il budget di tempo di scrypt modificano anche l'immagine. L'articolo scrypt originale utilizza ipotesi che non sono necessariamente realistiche (ad esempio, un utente normale accetta un ritardo di 5 secondi per l'accesso e che un server occupato non ha più di una dozzina di tentativi di accesso al minuto); inoltre, le stime sono state fatte per l'hardware del 2009 - che tipo di silex hanno usato in quel momento?

Riepilogo: non ho alcun riferimento a un confronto recente, ma per i motivi sopra illustrati, posso affermare che, con alta probabilità, qualsiasi confronto che potresti trovare sarà probabilmente abbastanza insignificante e inapplicabile alla tua situazione.

    
risposta data 22.01.2014 - 22:51
fonte

Leggi altre domande sui tag