SymmetricAlgorithm.IV Propriedade

Definição

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 de Propriedade

Byte[]

O vetor de inicialização.

Exceções

Foi feita uma tentativa de definir o vetor de inicialização para null.

Foi feita uma tentativa de definir o vetor de inicialização para um tamanho inválido.

Observações

A IV propriedade é automaticamente definida para um novo valor aleatório sempre que crias uma nova instância de uma das SymmetricAlgorithm classes ou quando chamas manualmente o GenerateIV método. O tamanho da IV propriedade deve ser igual ao BlockSize da propriedade dividida por 8.

As classes que derivam da SymmetricAlgorithm classe utilizam um modo de encadeamento chamado encadeamento de blocos de cifra (CBC), que requer uma chave e um vetor de inicialização para realizar transformações criptográficas nos dados. Para desencriptar dados que foram encriptados usando uma das SymmetricAlgorithm classes, deve definir a Key propriedade e IV a propriedade com os mesmos valores usados para encriptação.

Para uma dada chave secreta k, uma cifra de bloco simples que não utiliza um vetor de inicialização irá encriptar o mesmo bloco de entrada de texto simples no mesmo bloco de saída de texto cifrado. Se tiver blocos duplicados no seu fluxo de texto simples, terá blocos duplicados dentro do seu fluxo de texto cifrado. Se utilizadores não autorizados souberem alguma coisa sobre a estrutura de um bloco do seu texto simples, podem usar essa informação para decifrar o bloco de texto cifrado conhecido e, possivelmente, recuperar a sua chave. Para combater este problema, a informação do bloco anterior é misturada no processo de encriptação do bloco seguinte. Assim, a saída de dois blocos de texto simples idênticos é diferente. Como esta técnica utiliza o bloco anterior para encriptar o bloco seguinte, é necessário um vetor de inicialização para encriptar o primeiro bloco de dados.

Aplica-se a

Ver também