A partir de la Oficial de Android Fuente:
Cuando arranque por primera vez, el dispositivo crea una generados al azar de 128 bits de la clave maestra y, a continuación, hash con una contraseña por defecto y se almacena la sal. (La contraseña predeterminada es: "default_password").
Sin embargo, el resultado de hash es también firmó a través de una CAMISETA (como TrustZone), que utiliza un hash de la firma para cifrar la clave maestra.
Cuando el usuario establece el PIN/contraseña o la contraseña en el dispositivo, sólo la clave de 128 bits es re-cifrados y almacenados. (es decir. PIN de usuario/pass/cambios en el patrón de NO causar re-encriptación de datos de usuario.)
Lo que esto significa es que, básicamente, existen dos claves para ser entendido:
- La clave maestra
- El user_encryption clave (o simplemente 'clave')
La clave maestra se genera durante el primer arranque solo, y nunca, nunca cambia (a menos que tal vez un restablecimiento de fábrica o borrar la partición userdata). Los datos en la partición de datos está cifrado o descifrado sólo el uso de la clave maestra. La clave maestra no puede ser almacenado como es (no es seguro hacerlo, ¿verdad?), así es cifrada utilizando otra de las claves dijo a continuación.
El user_encryption clave es la clave con la que el cifrado de la clave maestra se puede descifrar, porque sólo el uso de la clave maestra, el cifrado de datos puede ser descifrada. (Esta clave se calcula con base en el PIN/contraseña/lo que sea.)
Las personas a menudo tienden a pensar de estas teclas como uno y el mismo, que no es el caso aquí.
Cuando cambie su PIN de desbloqueo/contraseña, sólo el user_encryption cambios de clave, no la clave maestra, por lo que los datos no cifrados.