Perché la funzione di derivazione chiave è importante?

5

Consideriamo questo comando openssl :

openssl enc -aes-256-cbc -pass pass:PASSWORD

Perché è importante avere una buona funzione di derivazione della chiave? Questa risposta ad un'altra domanda suggerisce che GnuPG è preferibile a Openssl perché il KDF di Openssl è debole. Per quanto riguarda la mia comprensione, l'unica cosa importante da ottenere per decodificare un file crittografato è la chiave a 256 bit utilizzata da AES. Perché è così importante trasformare la password in quella chiave a 256 bit?

    
posta Gradient 31.12.2015 - 11:41
fonte

1 risposta

7

" l'unica cosa importante da ottenere per decrittografare un file crittografato ": penso che sia qui che ti sbagli nel tuo riflesso, se posso dirlo.

L'unica cosa importante non è decifrare il tuo file crittografato, ma impedire che altri lo decodifichino indovinando la tua password.

Pertanto, una buona funzione di derivazione della chiave renderà computazionalmente difficile e lento ricavare una chiave dalla tua password, quindi relativamente pochi candidati chiave differenti possono essere testati da un utente malintenzionato nel tempo. La risposta al tuo link indica che GPG implementa questo utilizzando un numero elevato di iterazioni per ricavare la chiave effettiva dalla password.

Se la funzione di derivazione della chiave non prende questa precauzione, un utente malintenzionato sarà in grado di testare rapidamente un numero molto elevato di candidati per le password molto (la risposta che colleghi afferma " diverse dozzine di milioni di potenziali password al secondo (centinaia di milioni saranno realizzabili con una GPU) ", a questa velocità ci si può aspettare di coprire tutte le 8 stringhe di caratteri alfanumerici in meno di un'ora , quindi la password non ha nemmeno bisogno di essere una parola di dizionario indovinabile per essere fendibile).

    
risposta data 31.12.2015 - 15:06
fonte

Leggi altre domande sui tag