it-swarm.dev

"Sale reale" è lo stesso di "vettori di inizializzazione"?

Nella domanda su sale reale o falso , le risposte descrivono come il vero sale "perturba l'algoritmo di crittografia". So più o meno come funzionano i vettori di inizializzazione; è lo stesso concetto o qualcosa di completamente diverso?

38
Bryan Agee

Un salt e un vettore di inizializzazione sono per lo più la stessa cosa nei seguenti senso: sono dati pubblici, che dovrebbero essere generati di nuovo per ogni istanza (ogni password con hash, ogni messaggio crittografato). Un problema consiste nel poter usare la stessa password più volte senza aprire punti deboli; oppure, se si preferisce, impedire a un utente malintenzionato di condividere i costi di attacco della password nel caso in cui la stessa password potesse essere stata utilizzata su più istanze, il che è tutto ciò che riguarda tabelle precompilate (arcobaleno . Il punto di un IV nella crittografia simmetrica con CBC, ad esempio, è tollerare l'uso della stessa chiave per crittografare diversi messaggi distinti.

Il nome "vettore di inizializzazione" suggerisce un processo ripetitivo su un dato stato interno, essendo il IV ciò a cui lo stato è inizializzato. Ad esempio, la funzione di hash MD5 è definita come azione ripetuta di una funzione di compressione che accetta come input lo stato corrente (128 bit) e il successivo blocco di messaggi (512 bit) e genera il valore di stato successivo; all'inizio, lo stato viene inizializzato su un valore convenzionale chiamato "IV". In tal senso, la maggior parte dei "sali" utilizzati nell'elaborazione della password non sono "vettori di inizializzazione". Ma questa è una sorta di interpretazione eccessiva dell'espressione.

Tuttavia, nominare le cose è principalmente una questione di tradizione. Un "sale" è una specie di IV che:

  • è coinvolto nell'elaborazione di una password;
  • dovrebbe essere distinto per ogni istanza di elaborazione (non può essere un valore convenzionale fisso);
  • necessita solo di unicità ("non si ripete"), non di una selezione uniforme tra lo spazio dei possibili sali (sebbene la selezione casuale uniforme sia un metodo valido ed economico ottenere unicità con probabilità schiacciante, supponendo che i sali siano abbastanza lunghi).

I dettagli (come il sale/IV è esattamente inserito e in quale punto dell'algoritmo) sono un'aringa rossa.

46
Thomas Pornin

La risposta sopra è corretta quando si discute di "salt" nel contesto delle password. Tuttavia, il termine "sale" viene utilizzato anche per altri usi di valori casuali ma non segreti.

Per un trattamento molto rigoroso del sale, relativo agli estrattori di casualità, leggi Estrazione crittografica e derivazione chiave: lo schema HKDF . Vi è una certa teoria sul perché l'uso del sale sia obbligatorio per ottenere estrattori di casualità generici, sebbene ciò non sia terribilmente rilevante nel caso delle password.

3
Nakedible