Each piece of data is protected by a chain where each level encrypts the next:
1. The user enters the master password — it never leaves the device
2. PBKDF2 (SHA-256, 300,000 iterations) derives a 512-bit master key in the browser
3. The master key decrypts the user's private RSA key (2048 bits, OAEP/SHA-256), which is stored on the server in encrypted form
4. The private RSA key decrypts the vault key (256 bits), which is unique per vault and stored RSA-encrypted per user
5. The vault key decrypts the record key (256 bits), unique per record
6. The record key decrypts the password field, custom fields, TOTP secret, and attachment keys
7. Each attached file has its own unique attachment key (256 bits), encrypted with the record key
Compromising a single record key exposes only that one record. It does not expose other records, other vaults, or the user's RSA key.