Key derivation
PBKDF2-HMAC-SHA-256, 100,000 iterations, 16-byte random salt per user
01 · Key derivation
100,000 iterations from your encryption password plus a 16-byte random salt per user. The derived 256-bit key never leaves your device.
02 · Encryption
Authenticated encryption per record with a fresh 12-byte random nonce. Tampering breaks decryption — no silent corruption.
03 · Sync
Sealed records sync between your devices over TLS 1.2+. Ameleva servers store opaque ciphertext for the encrypted fields; we never see plaintext.
04 · Recovery
The key is on your device, not ours. We cannot reset it — store your encryption password in a password manager before enabling encryption.
05 · Threat model
We protect encrypted fields against server breach, insider read, and lawful demand for plaintext. We do not protect against malware on your device or a stolen encryption password.
06 · Open primitives
Standard, audited libraries. Parameters are public; the iteration count is upgradeable as compute gets cheaper.
Plain-English walk-through of the cryptography. PBKDF2, AES-256-GCM, the threat model, and the tradeoffs.
Key derivation
PBKDF2-HMAC-SHA-256, 100,000 iterations, 16-byte random salt per user
Key length
256 bits (32 bytes)
Symmetric cipher
AES-256-GCM (authenticated encryption with associated data)
Nonce
12-byte random nonce per encrypted record
Key storage
iOS Keychain (kSecAttrAccessibleWhenUnlockedThisDeviceOnly); Android Keystore (StrongBox-backed when available)
Salt + parameters
Stored with your account; PBKDF2 iteration count is upgradeable
We protect against: server-side data breach (attacker dumps the database), insider read (engineer tries to read encrypted fields), and lawful demand for the plaintext of encrypted fields. We do NOT protect against: device compromise (malware on your phone reading from RAM), encryption-password theft (user reuses a known password), or endpoint manipulation (a modified Ameleva client uploads cleartext).
We cannot recover it. The key isn't on our servers. You can reset encryption with a new password, but previously encrypted data remains unreadable. Store your encryption password in a password manager before enabling encryption — this is the most common operator error and we'd rather you not hit it.