Documentos de Académico
Documentos de Profesional
Documentos de Cultura
VECTOR DE INICIALIZACION:
Un vector de inicialización (IV) o variable de inicialización (SV) es un bloque de
bits que es utilizado por varios modos de operación para hacer aleatorio el proceso de
encriptación y por lo tanto generar distintos textos cifrados incluso cuando el mismo
texto claro es encriptado varias veces, sin la necesidad de regenerar la clave, ya que
es un proceso lento.
El vector de inicialización tiene requerimientos de seguridad diferentes a los de
la clave, por lo que el IV no necesita mantenerse secreto. Sin embargo, en la mayoría
de los casos, es importante que el vector de inicialización no sea reutilizado con la
misma clave. En los modos CBC y CFB, volver a usar el IV permite conocer la
información contenida en el primer bloque del texto claro, y también prefijos comunes
compartidos por dos mensajes. Para los modos OFB y CTR, la reutilización del vector
de inicialización pone en riesgo la seguridad, dado que ambos crean un flujo de bits al
que se le aplica una función XOR con el texto claro, que es totalmente dependiente del
IV y de la clave ocupada. Reutilizar el flujo de bits también expone la seguridad. En el
modo CBC, el vector de inicialización además debe ser impredecible al momento de
realizar la encriptación; particularmente, una práctica muy común de encriptación
ocupaba el último bloque de texto cifrado de un mensaje como vector de inicialización
para el cifrado del próximo mensaje (este método fue usado por el protocolo SSL 2.0).
Si un atacante logra conocer el IV (o el bloque de texto cifrado previo) antes de
obtener el próximo texto claro, puede confirmar sus suposiciones sobre algún texto
simple o bloque que fue encriptado anteriormente con la misma clave (técnica
conocida como TLS CBC IV attack).
RELLENADO
El cifrador en bloque opera con bloques de tamaño fijo, pero las dimensiones
de los mensajes son variables. Por ello, en algunos modos de operación como ECB y
CBC el último bloque de texto debe ser rellenado antes del proceso de encriptación.
Hay muchos esquemas que para realizar esto. El más simple consiste en agregar null
bytes al texto claro hasta que la longitud sea múltiplo del tamaño del bloque definido.
Pero debe ser posible recuperar la longitud original del texto. Algo más complejo
presenta el método DES que añade un bit en estado 1 seguido de null bytes para
completar el tamaño de bloque. Otras técnicas más sofisticadas son los esquemas
CBC-specific como ciphertext stealing o residual block termination, que no genera
texto cifrado adicional, a expensas de cierta complejidad adicional en sus procesos.
Scheineier y Ferguson sugieren dos posibilidades para realizar el rellenado, ambas
simples: anexar un byte con valor 128 (hex 80) seguido por tantos ceros como sean
necesarios para completar el último bloque, o rellenar el último bloque con n bytes,
todos con valor n.
Modos como CFB, OFB y CTR no requieren métodos para manejar los mensajes que
no tienen longitudes que sea múltiplos del tamaño de bloque, dado que los modos de
operación trabajan realizando una operación XOR entre el texto plano con la salida
creada por el cifrador por bloques. Con el último segmento de texto llano se realiza
una operación XOR con los primeros bytes obtenidos del cifrador, por lo que el texto
cifrado resultante es del mismo tamaño del último texto plano. Esta característica de
los cifrados en flujo los hace más adecuados para aplicaciones que transmiten datos
en streaming donde no es conveniente aplicar relleno de bytes.
FUENTES
https://es.wikipedia.org/wiki/Modos_de_operaci%C3%B3n_de_una_unidad_de_cifrado_por_bloques