SymmetricAlgorithm.IV Propriété

Définition

Obtient ou définit le vecteur d'initialisation (IV) pour l'algorithme symétrique.

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()

Valeur de propriété

Byte[]

Vecteur d'initialisation.

Exceptions

Une tentative d'affecter la valeur null au vecteur d'initialisation a été effectuée.

Une tentative d'affecter une taille non valide au vecteur d'initialisation a été effectuée.

Remarques

IVChaque fois que vous créez une nouvelle instance de l’une des SymmetricAlgorithm classes ou lorsque vous appelez manuellement la méthode, la propriété est automatiquement définie sur une nouvelle valeur aléatoire GenerateIV . La taille de la IV propriété doit être identique à celle de BlockSize la propriété divisée par 8.

Les classes qui dérivent de la SymmetricAlgorithm classe utilisent un mode de chaînage appelé chaînage de blocs de chiffrement (CBC), qui requiert une clé et un vecteur d’initialisation pour effectuer des transformations de chiffrement sur les données. Pour déchiffrer des données qui ont été chiffrées à l’aide de l’une des SymmetricAlgorithm classes, vous devez définir la Key propriété et IV la propriété sur les mêmes valeurs que celles utilisées pour le chiffrement.

Pour une clé secrète donnée k, un simple chiffrement par blocs qui n’utilise pas de vecteur d’initialisation chiffrera le même bloc d’entrée de texte brut dans le même bloc de sortie de texte de chiffrement. Si vous avez des blocs en double dans votre flux de texte brut, vous aurez des blocs en double dans votre flux de texte de chiffrement. Si des utilisateurs non autorisés savent tout à propos de la structure d’un bloc de texte brut, ils peuvent utiliser ces informations pour déchiffrer le bloc de texte de chiffrement connu et éventuellement récupérer votre clé. Pour combattre ce problème, les informations du bloc précédent sont mélangées dans le processus de chiffrement du bloc suivant. Ainsi, la sortie de deux blocs de texte brut identiques est différente. Étant donné que cette technique utilise le bloc précédent pour chiffrer le bloc suivant, un vecteur d’initialisation est nécessaire pour chiffrer le premier bloc de données.

S’applique à

Voir aussi