SymmetricAlgorithm.IV Proprietà

Definizione

Ottiene o imposta il vettore di inizializzazione (IV) per l'algoritmo simmetrico.

public:
 virtual property cli::array <System::Byte> ^ IV { cli::array <System::Byte> ^ get(); void set(cli::array <System::Byte> ^ value); };
public virtual byte[] IV { get; set; }
member this.IV : byte[] with get, set
Public Overridable Property IV As Byte()

Valore della proprietà

Byte[]

Vettore di inizializzazione.

Eccezioni

È stato effettuato un tentativo di impostare il vettore di inizializzazione su null.

È stato effettuato un tentativo di impostare il vettore di inizializzazione su una dimensione non valida.

Commenti

La IV proprietà viene impostata automaticamente su un nuovo valore casuale ogni volta che si crea una nuova istanza di una delle SymmetricAlgorithm classi o quando si chiama manualmente il GenerateIV metodo . Le dimensioni della IV proprietà devono essere uguali alla BlockSize proprietà divisa per 8.

Le classi che derivano dalla SymmetricAlgorithm classe usano una modalità di concatenamento denominata concatenamento a blocchi di crittografia (CBC), che richiede una chiave e un vettore di inizializzazione per eseguire trasformazioni crittografiche sui dati. Per decrittografare i dati crittografati usando una delle SymmetricAlgorithm classi, è necessario impostare la proprietà e IV la Key proprietà sullo stesso valore usato per la crittografia.

Per una determinata chiave privata k, una crittografia a blocchi semplice che non usa un vettore di inizializzazione crittograferà lo stesso blocco di input di testo normale nello stesso blocco di output di testo crittografato. Se sono presenti blocchi duplicati all'interno del flusso di testo normale, saranno presenti blocchi duplicati all'interno del flusso di testo crittografato. Se gli utenti non autorizzati conoscono qualcosa sulla struttura di un blocco di testo normale, possono usare tali informazioni per decifrare il blocco di testo crittografato noto ed eventualmente recuperare la chiave. Per combattere questo problema, le informazioni del blocco precedente vengono combinate nel processo di crittografia del blocco successivo. Di conseguenza, l'output di due blocchi di testo normale identici è diverso. Poiché questa tecnica usa il blocco precedente per crittografare il blocco successivo, è necessario un vettore di inizializzazione per crittografare il primo blocco di dati.

Si applica a

Vedi anche