Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/07/2011, 06:20
MiGoBi
 
Fecha de Ingreso: mayo-2011
Mensajes: 60
Antigüedad: 13 años
Puntos: 1
Duda con IV en método CreateEncryptor () para cifrar y descifrar datos

Hola, estoy intentando implementar seguridad en mi web. Hasta ahora he estado mirando que son las claves simétricas, asimétricas, los tipos de encriptación...Después de mirar muchísimas páginas he optado por utilizar AES, pero aún así tengo una duda.

Mirando este link he entendido muchas dudas que tenía (es un ejemplo buenísimo), pero no llego a entender el método SymmetricAlgorithm.CreateEncryptor. Cuando lo llamas debes poner la clave y su IV. En el ejemplo del link:

Código:
        Using aesAlg As New AesCryptoServiceProvider()

            aesAlg.Key = Key
            aesAlg.IV = IV
            ' Create a decrytor to perform the stream transform.
            Dim encryptor As ICryptoTransform = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV)
Utiliza la clave y el IV que recibe del procedimiento anterior:

Código:
            Using myAes As New AesCryptoServiceProvider()
                ' Encrypt the string to an array of bytes.
                Dim encrypted As Byte() = EncryptStringToBytes_Aes(original, myAes.Key, myAes.IV)
Mi pregunta es que sentido tiene este valor y para que existe. He leido que es un vector pero no entiendo por qué es necesario. Estas preguntas me las hago porqué si tengo algo insertado en mi BD y lo quiero recuperar necesito poner este parámetro. La clave es fácil porqué la se, pero el IV, ¿de dónde lo obtengo? ¿debo guardarlo en algún lado? ¿es automático? Espero que me puedan explicar esto.

Gracias por su tiempo.