E 'sicuro avere il sale uguale a IV?

3

Se sto utilizzando CBC AES-256 per crittografare, ottenendo la chiave da 32 byte utilizzando più iterazioni della funzione PBKDF2 con un intervallo di 16 byte, è sicuro per me lasciare che IV sia uguale al sale?

( Modifica: il sale viene generato in modo casuale ogni volta. Ovviamente questo farà anche generare casualmente l'IV ogni volta. )

Quanta sicurezza si perde quando si fa questo? Se faccio questo, il vantaggio è che dovrò solo memorizzare il sale nel file crittografato finale, non sia il sale e IV (rendendo il file più piccolo di 16 byte!)

    
posta user21203 26.02.2013 - 00:41
fonte

4 risposte

7

Non c'è alcun problema noto con il riutilizzo del sale usato in PBKDF2 per la crittografia IV di CBC e sarebbe leggermente sorprendente se avesse avuto un impatto perché il sale entra come input per le funzioni hash e l'output viene utilizzato come chiave per il codice a blocchi. Quindi, ci sono "due strati" tra il sale e la flebo. Tuttavia, a volte le sorprese accadono. Il riutilizzo di qualsiasi elemento di dati per due ruoli è, come regola di base, potenzialmente pericoloso.

Poiché PBKDF2 è una funzione di derivazione chiave che può produrre un output di lunghezza arbitraria, sembra più sicuro limitarsi a farlo genera la chiave e IV. Questo è ciò che viene solitamente fatto in queste materie.

In alternativa, se la chiave ottenuta dalla password e il sale verranno utilizzati solo per il file one , sarà possibile utilizzare un IV convenzionale (problema con IV in CBC inizia al secondo utilizzo della chiave, quindi tollera un IV tutto-zero se e solo se la chiave viene usata una sola volta). Sarebbe comunque preferibile sostituire CBC con una modalità di crittografia autenticata come EAX o GCM , che ha meno vincoli su IV (con EAX o GCM, è "ovvio" che un IV convenzionale non è un problema, purché la chiave sia utilizzata una sola volta) e vi garantisca l'integrità oltre alla riservatezza.

    
risposta data 26.02.2013 - 12:29
fonte
4

L'IV deve essere univoco per ogni chiamata di CBC. Il sale per generare la tua chiave tramite PBKDF2 sarà costante, altrimenti genereresti chiavi diverse.

Quindi, no.

    
risposta data 26.02.2013 - 00:50
fonte
1

Avrei eseguito PBKDF2 sulla password + salt per ottenere una chiave master. Quindi ottieni una chiave e una IV da quel masterkey. Grazie al sale ogni masterkey sarà usato una sola volta. In questo modo non è necessario memorizzare la IV accanto al ciphertet.

    
risposta data 26.02.2013 - 10:53
fonte
1

Sia l'IV che il sale devono essere unici e casuali. Quindi, finché mantengono questi criteri, non ho mai visto (né riesco a pensare) alcun motivo per cui non possano essere uguali.

Riferimento:

risposta data 26.02.2013 - 10:50
fonte

Leggi altre domande sui tag