Tengo curiosidad acerca de cómo funciona la recuperación de contraseña para archivos protegidos por contraseña. ¡Y quiero saber el flujo exacto del mecanismo de encriptación de 7-zip :)!
7-zip
usa el algoritmo de cifrado AES-256 en modo CBC para cifrar archivos o una carpeta. La clave se genera a partir de la frase de contraseña del usuario mediante la función hash SHA-256. La frase de contraseña se procesa usando SHA-256 2 ^ 19 (524288) veces, para aumentar el costo de la búsqueda exhaustiva. Además, para ayudar a reducir el riesgo de ataques de diccionario, se agrega una sal a la frase de contraseña antes de hacer hash.
Mi primera pregunta es: ¿cómo funciona la función key_derivation para generar una clave de 256 bits? ¿Cuál es la importancia de la IV para el modo AES CBC y cómo se genera?
Mi segunda y más importante pregunta es: ¿cómo se verifica la clave para descifrar el archivo 7-zip? ¿Cómo funciona su función de verificación de clave?