AesCryptoServiceProvider.IV Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 override byte[] IV { get; set; }
member this.IV : byte[] with get, set
Public Overrides 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
La IV propriété est automatiquement définie sur une nouvelle valeur aléatoire chaque fois que vous créez une instance d’une des SymmetricAlgorithm classes ou lorsque vous appelez manuellement la GenerateIV méthode. La taille de la IV propriété doit être identique à celle de la BlockSize propriété divisée par 8.
Les classes dérivées de la SymmetricAlgorithm classe utilisent un mode chaînage appelé chaînage de blocs de chiffrement (CBC), qui nécessite une clé et un vecteur d’initialisation pour effectuer des transformations de chiffrement sur des données. Pour déchiffrer les données chiffrées à l’aide de l’une SymmetricAlgorithm des classes, vous devez définir la propriété et IV la Key propriété sur les mêmes valeurs utilisées pour le chiffrement.
Pour une clé secrète donnée k, un chiffrement de bloc simple qui n’utilise pas de vecteur d’initialisation chiffre le même bloc d’entrée de texte brut dans le même bloc de sortie du 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 connaissent la structure d’un bloc de votre 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 lutter contre ce problème, les informations du bloc précédent sont mixtes 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.