È richiesto un vettore di inizializzazione (IV) con dati univoci?

1

Se utilizzato per crittografare i dati che sono univoci, è ancora necessario un vettore di inizializzazione (IV)? Ad esempio, numeri di carta di credito o numeri di previdenza sociale.

Il punto finale di un IV è quello di assicurare che il CipherText di due identici messaggi di PlainText non sia lo stesso. Se PlainText è univoco c'è bisogno di IV?

    
posta webworm 23.02.2016 - 14:26
fonte

2 risposte

2

Il ruolo dell'IV dipende molto dal sistema di crittografia, ad es. se si tratta di un codice di flusso o di un codice a blocchi e, in quest'ultimo caso, della modalità di funzionamento .

IV significa Vettore di inizializzazione : questo è un termine generico per il valore iniziale di qualsiasi processo di looping. Nella crittografia, utilizziamo il termine IV per designare un parametro che viene utilizzato all'inizio di una computazione, cambia spesso, ma non è segreto (altrimenti lo chiameremmo un chiave ).

In generale, riutilizzare una flebo è un peccato mortale, ma la quantità di sofferenza implicata da un riutilizzo IV può variare. Nel caso di un cifrario a blocchi in modalità CBC, il riutilizzo IV rivela immediatamente se due messaggi iniziano con la stessa sequenza di blocchi; e, più in generale, l'IV per CBC deve essere generato casualmente, in modo uniforme e imprevedibile, altrimenti sei aperto a Chosen Plaintext Attacks, come è stato dimostrato nel caso di SSL / TLS (dove è stato reso popolare sotto il nome "attacco BEAST").

Se si utilizza un cifrario a blocchi in modalità CTR o OFB, il riutilizzo IV è mortale (diventa il famigerato "doppio blocco") che porta a un facile recupero dei dati crittografati. Lo stesso vale per i codici di flusso che usano un IV. In modalità CFB il riutilizzo IV è un po 'meno completo nella sua devastazione, ma è comunque terribile.

Come regole generali:

  • Un IV deve mai essere riutilizzato per una determinata chiave.
  • Puoi farcela usando una IV fissa se (e solo se) non riutilizzi mai una chiave. Se per ogni singolo messaggio viene mai utilizzato ciascun valore chiave, è possibile utilizzare un IV fisso. Tuttavia, poiché le chiavi sono segrete mentre IV non lo è, cambiare la IV per ogni messaggio è considerato più semplice della modifica della chiave per ogni messaggio (puoi trasmettere l'IV includendolo in un'intestazione di file non criptata, per esempio).
  • La maggior parte dei modelli di attacco che rendono desiderabile la crittografia consente anche alterazioni dannose, quindi è anche necessario verificare l'integrità. Combinare l'integrità e la crittografia non è così facile come sembra; il modo corretto consiste nell'utilizzare una modalità di crittografia che fa entrambe le cose, il che, in pratica, significa GCM . GCM ha i propri requisiti su IV, vale a dire che una IV non deve mai essere riutilizzata, e che è importante .
  • Tutto ciò che gestisce i numeri delle carte di credito è probabile che rientri nell'ambito PCI-DSS , e se poni la domanda hai chiesto, quindi è probabile che il tuo sistema non rispetti affatto PCI-DSS, a quel punto sarebbe più saggio togliere le mani dalla tastiera e ripensare alle tue scelte commerciali.
risposta data 23.02.2016 - 14:43
fonte
2

Questo non è l'unico punto di vettori di inizializzazione.

Lo scopo di IV è anche quello di garantire che l'uso ripetuto dello schema crittografico con la stessa chiave non perda informazioni sulla chiave stessa. Allo stesso modo, ciò vale internamente tra i blocchi nelle cifrature a blocchi.

    
risposta data 23.02.2016 - 14:33
fonte

Leggi altre domande sui tag