SymmetricAlgorithm.IV Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define o vetor de inicialização (IV) para o algoritmo simétrico.
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()
Valor da propriedade
O vetor de inicialização.
Exceções
Foi feita uma tentativa de definir o vetor de inicialização como null.
Foi feita uma tentativa de definir o vetor de inicialização para um tamanho inválido.
Comentários
A IV propriedade é definida automaticamente como um novo valor aleatório sempre que você cria uma nova instância de uma das SymmetricAlgorithm classes ou quando você chama o GenerateIV método manualmente. O tamanho da IV propriedade deve ser o mesmo que a BlockSize propriedade dividida por 8.
As classes derivadas da SymmetricAlgorithm classe usam um modo de encadeamento chamado CBC (encadeamento de blocos de criptografia), que requer uma chave e um vetor de inicialização para executar transformações criptográficas nos dados. Para descriptografar dados criptografados usando uma das SymmetricAlgorithm classes, você deve definir a Key propriedade e IV a propriedade para os mesmos valores que foram usados para criptografia.
Para uma determinada chave secreta k, uma criptografia de bloco simples que não usa um vetor de inicialização criptografará o mesmo bloco de entrada de texto sem formatação no mesmo bloco de saída de texto codificado. Se você tiver blocos duplicados no fluxo de texto sem formatação, terá blocos duplicados no fluxo de texto de criptografia. Se os usuários não autorizados souberem alguma coisa sobre a estrutura de um bloco de texto sem formatação, eles poderão usar essas informações para decifrar o bloco de texto de criptografia conhecido e possivelmente recuperar sua chave. Para combater esse problema, as informações do bloco anterior são misturadas ao processo de criptografia do próximo bloco. Assim, a saída de dois blocos de texto sem formatação idênticos é diferente. Como essa técnica usa o bloco anterior para criptografar o próximo bloco, um vetor de inicialização é necessário para criptografar o primeiro bloco de dados.