AesCryptoServiceProvider.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 override byte[] IV { get; set; }
member this.IV : byte[] with get, set
Public Overrides 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 BlockSize alla proprietà divisa da 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 proprietà sullo stesso valore usato per la Key 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 del testo di crittografia. Se sono presenti blocchi duplicati all'interno del flusso di testo normale, saranno presenti blocchi duplicati all'interno del flusso di testo di crittografia. Se gli utenti non autorizzati sanno qualcosa sulla struttura di un blocco di testo normale, possono usare tali informazioni per decifrare il blocco di testo di crittografia noto e recuperare la chiave. Per combattere questo problema, le informazioni del blocco precedente sono miste al processo di crittografia del blocco successivo. Pertanto, l'output di due blocchi di testo normale identico è 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