The short version
- Your pattern (or phrase) plus a device salt goes through Argon2id to derive a 256-bit vault key.
- Each file gets its own random 256-bit file key.
- Files are encrypted with AES-256-GCM, which gives both confidentiality and tamper detection.
- File keys are wrapped with the vault key and stored with the encrypted file.
- Names, dates, albums, and thumbnails are encrypted too. Nothing readable sits beside the ciphertext.
Key hierarchy
| Layer | What it protects | Where it lives |
|---|---|---|
| Pattern / phrase | Everything | Your memory and your paper backup |
| Vault key | File keys and vault metadata | Derived when you unlock, held in memory only |
| File key | One file | Wrapped by the vault key, stored with the file |
While the app is locked
When Veilbox locks, whether you press the lock button, switch apps, or the timer runs out, the vault key is wiped from memory. File keys exist only while a file is open. Thumbnails are decrypted into memory, not to disk.
What we can't protect against
Honesty matters here. Encryption doesn't help if:
- someone watches you draw your pattern,
- your phone is compromised by spyware while the vault is open,
- you export files to Photos or another app that doesn't encrypt them.
Read what zero-knowledge encryption really means for the bigger picture.
Questions about Security Architecture
Is the code open source?
Not currently. We publish this design document and plan to commission an independent audit.
Do you use Apple's Data Protection as well?
Yes. Veilbox files are also stored with iOS's strongest file protection class, as an extra layer under our own encryption.
Try Veilbox free
Encrypted on your iPhone. No account required.