2009-12-22 24 views
15

En AES, entiendo que sal es lo que hace que la frase de contraseña sea más segura y no se agregará al texto encriptado. Pero IV es el material utilizado para encriptar el primer bloque de mensajes y se agregará al texto encriptado.¿Funciona IV como sal?

¿Me sale algo mal?

Respuesta

24

AES no usa directamente una sal (o de hecho, una IV).

Una situación en la que puede usar una sal en combinación con AES es cuando usa cifrado basado en contraseña (PBE). En este esquema, se usa una contraseña que se puede memorizar en humanos, en combinación con una sal, para generar una clave AES. Se usa una sal para que la misma contraseña no siempre genere la misma clave; sin embargo, como el destinatario debe poder generar la clave correcta, la sal debe transmitirse junto con los datos cifrados.

Se requiere un IV si está utilizando AES en ciertos modos de cifrado de bloques, como CBC. En este caso, solía garantizar que los mismos datos de texto sin formato bajo la misma clave no siempre se encriptaran con el mismo texto cifrado. De nuevo, el destinatario requiere IV para descifrar correctamente los datos, por lo que debe transmitirse junto con los datos cifrados.

Por lo tanto, si está utilizando PBE con AES en modo CBC como el cifrado subyacente, esperaría tener que enviar tanto una sal de PBE como una CBC IV junto con los datos cifrados.

+3

Si sale sal y IV enviado con datos encriptados, ¿de qué sirve tenerlos? ¿Puede el atacante obtener sal y IV fácilmente de los datos, entonces el único trabajo es obtener la frase de contraseña, que no es lo mismo que el método sin sal y IV? – Kelvin

+12

Lee mi respuesta cuidadosamente otra vez.La sal se usa ** para que la misma contraseña no siempre genere la misma clave ** - esto significa, entre otras cosas, que un atacante no puede construir sin conexión un diccionario de contraseñas a claves. Una IV asegura de manera similar que ** el mismo texto sin formato no produce el mismo texto cifrado ** - esto significa que un atacante no puede crear un conjunto de pesebres. Estos no * detienen * los ataques de fuerza bruta (no se puede hacer), pero maximizan el tiempo/memoria requerido para un ataque de fuerza bruta, y previenen efectivamente algunas precomputaciones. – caf

+1

Gracias por su rápida respuesta. Mi comprensión es una criptación sin sal y IV será algo así como la ecuación f (datos) = x (frase de contraseña) Y la que tiene sal y IV será f (datos) = x + y (sal) + z (IV) Obtiene yyz, luego la segunda ecuación será la misma que la primera. ¿Algo que haya malinterpretado aquí? – Kelvin

2

No. El IV impide que los mensajes idénticos aparezcan de la misma manera. Esto perdería información, específicamente, el hecho de que está transmitiendo el mismo mensaje más de una vez.

+0

2 IV diferentes en el mismo texto plano producirán 2 cifras diferentes, al igual que 2 sales diferentes también lo harían. No creo que hayas respondido la pregunta bastante bien. – Murmel

9

No entiendo muy bien lo que dice, pero esta es una descripción general.

Las sales se utilizan en el hash criptográfico para eliminar el método de tabla arcoiris de agrietamiento. (Una tabla de arcoiris es una tabla de búsqueda inversa de hash para contraseñas)

Los IV se utilizan en el cifrado de archivos de mayor tamaño para evitar que secciones similares encripten a la misma cosa.

Son muy similares, pero aquí están las diferencias.

Las sales se suelen agregar antes o después de lo que están cifrando (que yo sepa). Esto significa que la encriptación también se realiza en la sal.

IVs siempre se XORed con el resultado de la encriptación. La razón por la que se hace afterwords es porque solo el primer fragmento usa el IV, el resto usa el fragmento anterior para este XORing.

La distinción es importante porque una sal que está XORed con la forma encriptada de una contraseña se rompe fácilmente, y los IV están diseñados para detener ataques de estilo de reconocimiento de patrones contra ataques de diccionario de archivos de contraseñas.

Cuestiones relacionadas