1. Carrier
Any image format works — Palimpsest saves the vault as PNG.
2. Message
The message you want to protect.
3. Password
An optional second message, protected by its own password.
4. Create
Vault created.
Save the downloaded file — the vault exists only in it. Nothing is kept in this browser tab.
Inspect embedding
- Carrier capacity
- —
- Region capacity
- —
- Message size class
- Alternate message size class
- —
Least-significant-bit plane, before and after embedding.
Carrier
Password
How it works
Encryption
Messages are encrypted with AES-256-GCM before they're hidden. Your password is stretched through PBKDF2 (250,000 iterations) into a master key, and HKDF derives a separate encryption key and a separate position key from that master key — so the key that decides where a message sits is never the same key that protects its contents. Your password is never stored or transmitted — if it's lost, the message cannot be recovered.
Message placement
The bit positions used to store a message are derived from your password together with the carrier file's own content, rather than written to a fixed location. The same password produces a completely unrelated set of positions on two different carrier files. There is no header or marker indicating where a message is stored, or whether the file contains one at all.
Decoy layer
The interface calls this an alternate message, since it can be used as a decoy: a second, independent message under its own password. It's stored in a separate half of the carrier's available positions from the primary message — split by a fixed rule, even- and odd-indexed positions, that doesn't depend on either password — so the two layers can't overlap or overwrite each other, and each can be revealed independently using only its own password. This guarantees the two layers are structurally indistinguishable and independently recoverable; it can't guarantee deniability against an examiner who already understands how Palimpsest is built.
File compatibility
Creating an image vault accepts any format your browser can open — Palimpsest reads it into raw pixels and always saves the result as PNG, a lossless format where pixel data is stored exactly as written. Audio vaults require 16-bit PCM WAV going in and coming out; there's no in-browser conversion from a compressed format like MP3. Once a vault file exists, treat it as fixed: converting it to JPEG or MP3, or uploading it to a service that recompresses images (most social platforms do this automatically), discards the exact bits a hidden message depends on and destroys it.
Limitations
This is client-side software and has not been independently security-audited. It does not protect against a compromised device, a weak or reused password, or an adversary who already suspects a hidden message exists and can compel an explanation for its absence. PBKDF2 slows down password guessing; it does not turn a weak password into a strong one. Each message is padded to a fixed size before encryption so its length doesn't leak, but a carrier with a high percentage of modified bits may still be statistically detectable — keeping messages small relative to the carrier gives the least detectable result.