Compartir vía


AesCryptoServiceProvider.IV Propiedad

Definición

Obtiene o establece el vector de inicialización (IV) del algoritmo simétrico.

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

Valor de propiedad

Byte[]

Vector de inicialización.

Excepciones

Se ha intentado establecer el vector de inicialización en null.

Se ha intentado establecer el vector de inicialización en un tamaño no válido.

Comentarios

La IV propiedad se establece automáticamente en un nuevo valor aleatorio cada vez que se crea una nueva instancia de una de las SymmetricAlgorithm clases o cuando se llama manualmente al GenerateIV método . El tamaño de la IV propiedad debe ser el mismo que la BlockSize propiedad dividida por 8.

Las clases que derivan de la SymmetricAlgorithm clase usan un modo de encadenamiento denominado encadenamiento de bloques de cifrado (CBC), que requiere una clave y un vector de inicialización para realizar transformaciones criptográficas en los datos. Para descifrar los datos cifrados mediante una de las SymmetricAlgorithm clases, debe establecer la propiedad y IV la Key propiedad en los mismos valores que se usaron para el cifrado.

Para una clave secreta determinada k, un cifrado de bloque simple que no usa un vector de inicialización cifrará el mismo bloque de entrada de texto sin formato en el mismo bloque de salida del texto cifrado. Si tiene bloques duplicados dentro de la secuencia de texto sin formato, tendrá bloques duplicados dentro de la secuencia de texto cifrado. Si los usuarios no autorizados saben algo sobre la estructura de un bloque de texto sin formato, pueden usar esa información para descifrar el bloque de texto cifrado conocido y, posiblemente, recuperar la clave. Para combatir este problema, la información del bloque anterior se mezcla en el proceso de cifrar el bloque siguiente. Por lo tanto, la salida de dos bloques de texto sin formato idénticos es diferente. Dado que esta técnica usa el bloque anterior para cifrar el bloque siguiente, se necesita un vector de inicialización para cifrar el primer bloque de datos.

Se aplica a