Domanda di scrypt di base

3

Supponiamo di buttare una password normale in scrypt per generare alcuni dati. Scrypt ci consente di specificare la dimensione dei dati di output.

La mia domanda è, per fare un caso estremo, se chiediamo un 1 GB di dati da scrypt, sarebbe possibile in qualche modo rapidamente generare i byte finali di questo output dai primi byte?

In altre parole, esiste una soglia "x byte" in cui "probabilmente non dovrei chiedere lo scrypt per più di x byte"?

Aggiornamento: Consentitemi di metterlo in un altro modo: se dico a scrypt di produrre 1 GB di dati, rendere i primi x byte del risultato disponibili al pubblico e usare gli ultimi 48 byte (come chiave e IV) per crittografare i dati sensibili utilizzando AES-256-CBC, sono nei guai? Problemi, nel senso che ho sconfitto lo scopo di usare lo scrypt? La risposta dipende da x?

    
posta cryptonamus 03.07.2015 - 16:17
fonte

1 risposta

3

Non dovresti chiedere più output da scrypt di quanto hai bisogno. Il costo CPU / memoria dell'hash scrypt non è dominato dalla dimensione dell'output, ma dal processo di installazione (in la spiegazione di Wikipedia del algoritmo , i valori "N" (costo CPU / memoria) e "p" (parametro di parallelizzazione)). L'output è generato da una singola iterazione di PBKDF2 , utilizzando i valori della fase di configurazione di scrypt come salt.

Per lo stesso motivo, generare output parziale (ad esempio, gli ultimi pochi byte) è solo marginalmente più veloce di generare l'intero output: è possibile generare solo sottoinsiemi selezionati dell'output di PBKDF2 a basso costo, ma è necessario l'intero input per essere disponibile per farlo.

PBKDF2 genera il suo output come una serie di blocchi concatenando e eseguendo iterativamente la password, il seed e il numero di blocco a 32 bit. Per l'output inferiore a 2 ^ 32-1 blocchi (128 GB per PBKDF2 come utilizzato da scrypt ), la rivelazione di parte dell'output non ha alcun impatto sulla sicurezza del resto dell'output. Dopo quel punto, tuttavia, l'uscita inizia a ripetersi.

    
risposta data 08.07.2015 - 05:09
fonte

Leggi altre domande sui tag