Estoy trabajando en un proyecto para crear software para el cifrado de archivos con AES en Java, su funcionamiento es bastante simple, pero me preguntaba si es realmente seguro.
El programa solicita al usuario una frase de contraseña para cifrar el archivo seleccionado, después de ingresar la frase de contraseña, se asegura con una función de derivación de claves PBKDF2 Con Hmac-SHA256, salt es un generador de números pseudoaleatorios para 8-byte SHA1 PRNG
, las iteraciones son 100,000 y longitud de la clave es de 256 bits.
La clave segura generada se utiliza para cifrar el archivo.
El vector de inicialización para el AES es un generador de números pseudoaleatorios de 16 byte SHA1 PRNG
, el archivo ahora está cifrado.
Los primeros 16 bytes del archivo encriptado se guardan en el IV y durante los últimos 8 bytes para almacenar la sal de PBKDF2.
El salt y IV no se cifran junto con los archivos, pero se agregan más adelante. ¿Estas operaciones son seguras?