Vector de inicialización
# Vector de inicialización

En criptografía, un vector de inicialización (conocido por sus siglas en inglés IV) es un bloque de bits que es requerido para permitir un cifrado en flujo o un cifrado por bloques, en uno de los modos de cifrado, con un resultado independiente de otros cifrados producidos por la misma clave. El tamaño del IV dependen del algoritmo de cifrado y del protocolo criptográfico y a menudo es tan largo como el tamaño de bloque o como el tamaño de la clave.

Los vectores de inicialización son implementados en cifrados por bloques y cifrados en flujo. Por ejemplo, el modo Electronic Code Book (ECB), el cifrado del mismo texto con la misma clave da como resultado el mismo texto cifrado, lo cual es una considerable vulnerabilidad. El uso de un vector de inicialización añadido linealmente (mediante una operación XOR) o incluido delante del texto plano antes del cifrado resuelve este problema.

En los cifrados en flujo, los vectores de inicialización se cargan en estado interno en clave del cifrador, después del cual se ejecuta cierto número de rondas de cifrado antes de emitir el primer bit cifrado. Por razones de rendimiento, los diseñadores de los cifrados en flujo intentan mantener el número de rondas en las mínimas posibles, pero debido a que determinar el número de rondas para que sea seguro no es una tarea trivial, y considerando otros temas como la pérdida de entropía, dependiente del diseño del cifrador, ataques criptográficos relacionados con los IV son un problema de seguridad conocido para estos cifradores en flujo. Esto hace que el uso de IV en estos algoritmos un tema que debe ser aún desarrollado e investigado.

