¿El vector de inicialización utilizado para cifrar un bloque de datos siempre es estático o dinámico? Si es dinámico, debería enviar el IV junto con la clave al destinatario, ¿no? Esto normalmente no sucede.
En algoritmos de cifrado de bloque, el IV no es secreto. Sólo la clave es secreta. La mayoría de las veces, un IV es solo un bloque de datos aleatorios y se envía junto con el mensaje cifrado al destinatario. En realidad, el IV se puede considerar como un parámetro de algoritmo.
El IV no se utiliza realmente para cifrar los datos. Se utiliza como el bloque -1 en los modos de encadenamiento.
En ciertos modos de cifrado de bloques, p. ej. CBC , el cifrado alimenta la salida del bloque previamente encriptado, en el siguiente bloque, por lo general, mediante XOR con texto sin formato antes de cifrar el siguiente bloque. Esto permite una difusión adicional y evita el reconocimiento de bloques idénticos de texto sin formato.
Pero, ¿qué hacer con ese primer bloque, donde no hay una salida de "bloque anterior" que puedas XOR con el primer bloque?
Aquí es donde entra la IV: es básicamente datos únicos, aleatorios, no secretos , que puede introducir en el primer bloque.
Nuevamente, esto proporciona difusión, tanto en el primer bloque, como entre conjuntos de texto sin formato, p. Ej. Si encripta el mismo texto simple dos veces, no querrá que, por el texto cifrado, sea obvio que son idénticos.
De ahí la necesidad de que el IV sea único (al menos diferente) y aleatorio.
Y sí, la IV en sí misma no es secreta, y definitivamente es necesario transmitirla junto con el texto cifrado. No lo olvides, se supone que es aleatorio por uso.
El IV es dinámico. Se supone que es diferente para cada mensaje que cifres. (Para algunos modos, el IV puede ser aleatorio; para otros, puede ser predecible pero diferente para cada mensaje).
El destinatario necesita saber el IV para descifrar. Dependiendo de la biblioteca criptográfica que use, puede o no necesitar enviar el IV explícitamente al destinatario. Al cifrar un mensaje, muchas bibliotecas criptográficas incluyen el IV como parte del texto cifrado. En este caso, si llama a la biblioteca de cifrado para cifrar su mensaje y transmitir el texto cifrado resultante al destinatario, el destinatario ya obtendrá el IV. Por lo tanto, es posible que esté enviando el IV al destinatario sin darse cuenta de que lo está haciendo, porque la biblioteca criptográfica lo incluyó en el texto cifrado para facilitarle la vida.
En el modo CBC, esto hace que el texto de cifrado resultante sea mucho más predecible y susceptible a un ataque de diccionario. Si se utiliza para cifrar múltiples flujos de datos, los ataques de diccionario son posibles, dado que los flujos tienen una secuencia de inicio común.
Lea otras preguntas en las etiquetas cryptography encryption