Una vez que el atacante tiene un mensaje de texto plano y el texto cifrado correspondiente (tal vez ella lo interceptó en otro lugar, como el destino), ella será una para saber cuándo se envían otros mensajes con la misma secuencia de inicio. Como puede aprender algo sobre el contenido de sus mensajes encriptados, esto no es seguro.
También permite al atacante realizar análisis de frecuencia. Por ejemplo, imagine que sus mensajes de texto plano son comandos para el back-end de una plataforma bursátil, por lo que todos comienzan con "COMMAND=BUY"
o "COMMAND=SELL"
. Esto significa que los mensajes cifrados comienzan con solo dos secuencias de texto cifrado diferentes. El atacante no puede descifrarlos directamente, pero si luego puede observar la cantidad de pedidos de VENTAS que ha realizado al observar los datos del mercado, podrá volver atrás y decidir cuál es cuál, y de ahora en adelante ella ' Sabré exactamente qué órdenes está haciendo cuando las coloca.
El análisis de frecuencia es la forma en que se dividen las cifras de sustitución simple, y esto no es una coincidencia: usar un IV fijo significa que la parte inicial de los mensajes está utilizando efectivamente la sustitución, un bloque a la vez.
Como nota al margen, si necesita hacer este tipo de preguntas, probablemente no debería usar criptoprimitives directamente. Considere usar una biblioteca de nivel superior en su lugar. –
@nick Estoy de acuerdo, hice una pregunta anterior sobre una biblioteca de nivel superior con la que podría hacer esto (http://stackoverflow.com/questions/2435479/aes-encryption-library). – Kyle
Si tiene algún tipo de caracteres aleatorios (es decir, una indicación de fecha y hora al azar) en el MUY primer bloque, entonces eso sustituiría la aleatoriedad que proporcionaría el IV. Pero también podrías usar una vía intravenosa porque, ¿qué pasa si termina siendo no aleatorio? Como si decidiera usar la hora actual. – Brain2000