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.
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
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
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