A group is a shared key everyone in the group remembers (or holds in their app). Anyone with the group key can read messages encoded with it. Useful for families, teams, friend groups, project channels — your group is invisible to everyone outside it.
Plain text readable
🎭 Decoy mode · embed a fake message under a 2nd key
Add a decoy message that uses a different key. Anyone you give the DECOY key to reads the decoy; only people with the REAL key read what you actually wrote. The two payloads are bundled into one cipher blob.
Cipher text paste into WhatsApp / iMessage
🔗 Sharable encrypted link paste anywhere
Turn your message into a URL you can text, email, or post anywhere. Recipient opens the link and pastes it into their Sovren app — same key unlocks the message. URLs work in chat, email, social media, anywhere a link goes.
Decoded message readable result
Round-trip test
Verify the cipher works end-to-end. Click to encode a sample, then decode it.
How Messages works (in plain English)
Think of it as two people with the same dictionary. Your dictionary doesn't map word → meaning the normal way. Instead, it maps every English word to a different English word. "river" might become "kitchen." "meeting" might become "umbrella."
When you type a message, the app looks up each word in your dictionary and writes the coded word in its place. The result still reads like English — but it's about something completely different.
Your recipient holds the same dictionary, so they can flip the lookup and recover what you really wrote. Anyone else just sees a different message about kitchens and umbrellas. The cipher is invisible — it doesn't look encrypted at all.
🛡️ Vault · military-grade dual-sided encryption
Two layers, not one. The dictionary swap makes the message look like normal English. Then the same heavy encryption used by banks, governments, and Signal wraps the whole thing. Works on text messages AND any file type (PDF, image, doc, video). The shared secret is built jointly by both sides — neither one alone can read past or future traffic if they lose access. The key rolls forward on the clock, so even a captured key dies on schedule.
Step 1 · Set up encryption handshake
Click below to set up a fresh encrypted session. By default this runs a two-party simulation (Alice + Bob inside this browser) so you can test the round-trip without needing another device. For real use with someone else, open the Advanced section below.
Advanced · pair with another person (real two-device handshake)
Use this when the other party is on a different device. Click Generate to make your keypair. Share it via QR (easiest on mobile) or copy-paste. Then receive theirs the same way.
Point the other party's camera at this code
or paste below
🔍 Verify aloud with the other party
—
Both sides should see the same 6-character fingerprint. If they match, the handshake is real. If not, someone is in the middle.
Save this session to resume without re-handshaking next time:
📇 Your contacts resume past conversations
No contacts yet · save the first one after a handshake.
Saved contacts skip the handshake. Trade-off: anyone with access to your unlocked device can resume the conversation. Best for low-risk contacts (family, friends). Use the Forget button on the Sign-In tab to wipe all factors AND contacts.
Creates placeholder entries for Marinis / Knauf Shaw / HDR / PWGC / Mutual Growth / CPA Survey — you still complete the handshake with each (real public keys), the seed just removes the "type their name" step.
Entropy budget grows per message
—
Counter advances on every encrypt. Each message adds 96 bits of fresh randomness (the AES-GCM IV). After N messages, your session has accumulated N × 96 bits of unique entropy on top of the 256-bit shared secret.
🔄 Self-rolling ratchet no traffic needed
—
Both sides advance the key together on the clock — even when nobody is sending messages. Each tick advances three things together: the AES key, the shared dictionary, and the ratchet history. A key intercepted at minute N is useless at minute N+1 — AND the dictionary used at minute N is also gone by minute N+1.
No network traffic. No coordination message. Both devices advance independently based on UTC time — they stay in lockstep automatically. If they drift, the 5-key history covers neighbors.
Encrypt word swap → AES-GCM → optional time-lock
⏳ Time-lock · decryptable only after a future date/time
Encrypt now, but make the message undecryptable until a future moment. The recipient holds the ciphertext but cannot read it until the clock crosses the chosen time. Useful for embargoed announcements, deferred reveals, posthumous messages, scheduled releases.
Encrypted blob unreadable without the shared secret
Decrypted message readable result
🗂 Encrypt a file PDF · image · doc · any file type
Same heavy encryption as messages, applied to any file. Output is downloaded as a .gce file you can send through email, drive, dropbox, text — anywhere. Recipient with the matching shared secret opens it here and gets the original back.
File format: GCE1 (legacy SVRN also accepted) magic + version + filename + 16-byte ratchet nonce + 12-byte IV + AES-GCM-256 ciphertext.
How Vault works (the security stack)
1. Key exchange (ECDH P-256)
Each party generates a private/public keypair using elliptic-curve Diffie-Hellman on the NIST P-256 curve. Public keys exchanged in the clear; private halves never leave the device. Both sides independently derive the same 256-bit shared secret from their own private + the other's public. This is the mechanism TLS 1.3 uses to set up every HTTPS connection. Neither party alone could compute the shared key.
2. Layer 1 · word swap using your shared dictionary
The plain message first gets every word swapped using the dictionary that both sides built from the shared secret. This produces output that still reads like English but says something different. Even before the heavy encryption layer wraps it, the message doesn't look encrypted.
3. Layer 2 · AES-GCM-256 (NIST-approved)
The substitution output is then encrypted with AES-256 in GCM mode using the shared secret as the key. AES-GCM provides authenticated encryption — both confidentiality (no one without the key can read) and integrity (any tampering is detected). This is the same algorithm used to encrypt classified US government data at SECRET level (FIPS-validated).
4. Forward-secrecy ratchet
Every encrypt operation generates a fresh 96-bit IV (initialization vector). Future messages cannot be decrypted with past keys; past messages cannot be decrypted with future keys. This is the same property Signal Protocol gives you.
5. Entropy accumulation
As you exchange more messages, the cumulative entropy in the session grows linearly. A 10-message session has accumulated 10 × 96 = 960 bits of fresh IV entropy on top of the 256-bit shared secret — orders of magnitude beyond anything brute-forceable.
6. Self-rotating dictionary
Every key advance — whether from sending a message or from the auto-ratchet on the clock — also re-derives the word-swap dictionary. So even the inner layer (the part that makes the cipher look like ordinary English) changes shape on the same schedule. An attacker who somehow recovered yesterday's dictionary cannot read today's traffic — both layers moved.
Why "dual-sided": the key is derived from BOTH parties' contributions. Standard symmetric encryption uses one shared password — if one side is compromised, the key is compromised. Vault's ECDH means an attacker needs BOTH private keys to derive the session key. Compromising one device doesn't compromise the session.
How strong is it
Vault uses the same encryption building blocks (AES-GCM-256 + elliptic-curve key exchange) that protect:
· classified US government data at the SECRET level (NIST FIPS-validated)
· Signal and WhatsApp end-to-end messaging
· every HTTPS connection your bank and browser use
Anyone listening on the wire — your ISP, your employer's firewall, a coffee-shop wifi snooper, a chat-app server — sees a meaningless blob. They cannot read content, cannot replay messages, cannot decrypt past traffic even if they record everything you ever send.
Honest limit: a future large quantum computer could break the key-exchange step (not yet a real threat). For everything else from now until then, this is as strong as encryption gets in a browser.
🗂 Files · encrypt any document, share through any channel
Pick a passphrase · pick a file · download the encrypted version as a .gce file. Send it through email, drive, dropbox, text — the channel doesn't matter. Anyone with the same passphrase can decrypt it. Works on any file type · PDF, image, doc, video, anything.
Step 1 · Passphrase both sides type the same
Step 2 · Encrypt a file
📥
Drop one or more files here (or click to choose)
no file selected
🎤 Voice messages record then encrypt
Hit Record · talk · hit Stop. The recorded audio is encrypted with the passphrase you locked in, and you can share it as a .gce file (recipient decrypts and gets a regular audio file they can play).
not recording
📸 Camera photos snap then encrypt · never hits the gallery
Hit Open camera · point at what you want to capture · hit Snap. The photo is encrypted immediately and downloaded as a .gce file — it never lands in your Camera Roll, iCloud, or Photos app.
Step 3 · Decrypt a received .gce file
📤
Drop a .gce file here or click to choose
no file selected
How to share a .gce file
The encrypted .gce file is just a regular file. You can send it through:
· Email as an attachment
· Text / iMessage / WhatsApp / Signal as a file attachment
· Google Drive / Dropbox / iCloud as a stored file
· Slack / Teams / Discord as a file upload
· AirDrop or any wifi-direct transfer
Whoever runs the channel sees only the encrypted bytes. Only people with your passphrase can open the file back into its original form.
What files work
Any file type · PDFs, images, documents, video, audio, archives, code — the app treats every file as raw bytes. Multiple files at once are supported (drag-drop several or pick several). Recorded voice messages also encrypt and share the same way. Practical size limit ~100 MB per file (browser memory) — beyond that, split into smaller files.
How strong is the encryption
Same AES-GCM-256 used by banks, governments, and Signal. The passphrase passes through PBKDF2 with 100,000 SHA-256 rounds before becoming the encryption key, slowing down anyone trying to brute-force weak passphrases. A 4-word passphrase gives genuinely military-grade file protection.
🗒 Notes · an encrypted private notebook
A local encrypted notebook on your device. Write a note · lock it with a passphrase · saved in your browser, fully encrypted. Useful for medical info, ideas, drafts, anything you want to keep private and accessible only by you. Nothing leaves your device · the encrypted bytes live in browser storage, only readable with your passphrase.
Step 1 · Passphrase
New note encrypted on save
Saved notes
How encrypted notes work
Each note is encrypted with AES-GCM-256 using a key derived from your passphrase via PBKDF2 (100,000 iterations). The encrypted bytes sit in your browser's localStorage — only your device can read them, and only with the right passphrase. Forgetting the passphrase = losing the notes (we cannot recover them; that's the point).
Lock notes clears the in-memory key but leaves the encrypted notes in storage. Re-unlock with the same passphrase to read them again.
Clear all encrypted notes: use your browser's clear-site-data option. There is no server, no backup, no recovery.
🧾 Records · audit trail of every encryption event
Every time you encrypt, decrypt, sign in, or share, a tiny receipt is logged. Receipts contain timestamp + action + recipient + size + cipher fingerprint — never the message body.
⚙️ Settings
🔗 GCE substrate bridge (post events to substrate)
When enabled, every recorded event also POSTs to your GCE substrate at localhost:8787 /api/receipt — Merkle-rooted barcode proof in the substrate audit chain. Fire-and-forget · the Cipher app works fully even if GCE is unreachable.
🛡 Advanced · encrypt records with a passphrase
Lock with a separate passphrase. Events while locked buffer as plaintext until you unlock.
Never recorded: message body, file contents, keys, passphrases, factors.
🔑 Sign-In · four-factor · password you never have to remember
The app combines your PIN, your email, your voice, and your face or fingerprint to produce today's password — in whatever style you pick (words, digits, mixed). You choose how often it changes — every minute, every hour, every day, or only when you say so. You never memorize anything · the app re-derives it on the spot.
Step 1 · Your four factors
no recording yet
not verified
Step 2
⚠ Advanced · set up a duress PIN (for coercion scenarios)
A duress PIN is a 2nd code you can enter if someone forces you to unlock. It looks like a normal unlock but silently derives a parallel password chain. You decide how to wire it on the verifier side (decoy account, silent alert, separate vault, etc).
🛡 Advanced · high-security mode (re-record on every unlock)
By default, your voice recording and biometric verification carry across the tab session — so once captured, they're reused as factors until you reload or Forget. High-security mode forces a fresh recording and a fresh biometric prompt on EVERY unlock. Stronger proof-of-presence at the cost of a few extra seconds per unlock.
standard mode · captured factors persist for the session
Step 3 · Your identity share with sites
…
Step 4 · Your current rolling password rolls every 1 min
unlock first
—
Tip: passphrase formats (with spaces) are the easiest to say over the phone or read aloud. Dashes and hex characters are awkward to dictate.
Your password is fixed for the chosen interval, then rolls automatically. Choose manual only if you want it to stay the same until you explicitly roll it.
Step 5 · Test the verifier
This simulates a real site verifying a password. Paste the identity (shareable, like a username) + the current password (whatever style you have set in Step 4) → app re-derives and confirms a match. In production, your factors stay on your device — only the identity + derived password is sent to the verifier.
How this actually works (in plain English)
1. Your identity · derived from your email so any site can see it without learning anything secret.
2. Your secret recipe · your PIN + email + voice recording + face scan all combine into one secret value. To slow down anyone who steals your device and tries to guess your PIN, the combine step is intentionally slow (600,000 hash rounds · OWASP 2023 recommendation · ~100 ms-1 s for you depending on device · 30-50 hours per million guesses for an attacker).
3. Today's password · identity + secret recipe + current time period → today's password. Pick the format that fits where you're typing it (four words, a digit code, hex, etc.).
4. The clock · you choose how often it rolls. Every minute for high-security situations. Every day for normal use. Never (manual only) if you want it to feel like a real static password but still derived fresh on every unlock.
Bottom line: nothing about your password lives in your head or on paper. The app rebuilds it on demand from things you already have — your PIN, your email, your voice, your face.
What is Sovren
Six tools that share one idea: privacy without remembering. Send a message no one can read without the dictionary you both share · stack on heavy encryption when the content is genuinely sensitive · encrypt files for sharing through any channel · keep an encrypted personal notebook · audit every encryption event · sign in to anywhere without ever memorizing a password. Everything works offline · runs entirely on your device · nothing leaves your screen.
💬
Messages
You and a recipient share a private dictionary. You type a message · the app translates each word into the coded word from your dictionary · the result still reads like English. Send it through any chat app · text message · email. Only someone with the same dictionary can read what you actually wrote. Encryption that doesn't look like encryption.
🛡️
Vault
When the content is genuinely sensitive. Messages + the same heavy encryption banks, governments, and Signal use, stacked together. Both sides build the secret jointly — neither one alone can read your traffic if they lose their device. The key rolls forward on the clock, so even a captured key dies on schedule. Unreadable even to nation-state attackers.
🗂
Files
Encrypt any file — PDFs, photos, documents, videos — with a passphrase you share with the recipient. Output is a .gce file you can send through any channel (email, drive, dropbox, text). Drag-and-drop to encrypt, drag-and-drop to decrypt. The channel sees only encrypted bytes; the recipient with the passphrase gets the original back.
🗒
Notes
An encrypted private notebook. Type a note · pick a passphrase · the note is encrypted in your browser's local storage. Useful for personal info you want to write down but keep no one else able to read. Forgetting the passphrase loses the notes (no server backup — that's the point). Export any note as a .gce file to back it up or move it to another device.
🧾
Records
Audit trail of every encryption event. Receipts log when · what · to whom · how big · cipher fingerprint — never the message body. Auto-purge after a chosen number of days. Optional passphrase to encrypt the records themselves.
🔑
Sign-In
Four things you already have: your PIN, your email, your voice, and your face or fingerprint. The app combines them and produces today's password. The combination rolls forward on a schedule you pick. You never memorize a password, never write one down — the app re-derives it on the spot every time.
Install as an app
iPhone (Safari): tap the Share button → Add to Home Screen → opens fullscreen like a native app.
Android (Chrome): tap the menu (⋮) → Install app → same result.
macOS Safari: File → Add to Dock.
Once installed, works offline · no servers · no tracking · the entire dictionary is baked into this page.
Where this fits — works in any industry
Any time two or more people need to talk privately through a channel they don't control, this works. A few examples — the pattern is always the same:
Families & friends · your group has its own dictionary · texts in WhatsApp / iMessage / SMS read as normal English to outsiders but say something else to you.
Small businesses · price lists, contracts, deal terms exchanged with a partner over ordinary email · only people who hold the company dictionary read the real numbers.
Doctors / lawyers / accountants · client conversations through normal email or text · the dictionary protects content even when the channel is insecure.
Real estate / construction / trades · share bid numbers, supplier prices, schedule changes with subcontractors privately while still using the same group text everyone else does.
Schools, sports teams, community groups · coordination that stays private to the group without standing up new infrastructure.
Anyone tired of memorizing passwords · use Sign-In to derive your password fresh every time from things you already have.
The pattern across every example: two parties + one shared dictionary = private conversation through any public channel. No new app the other side has to install · no servers to maintain · no accounts.
Honest about limits
The Messages tab uses dictionary-based word swapping. It's strong against any human reading your chat history (a partner, an employer, a screenshot leak, a careless backup), and against the typical companies that scan messages for advertising. Against a determined attacker with months of your ciphertext and a powerful computer, the word-swap layer alone is breakable through statistical analysis.
The Vault tab stacks the same heavy encryption used by banks, governments, and Signal on top of the dictionary swap. Vault output is unreadable even to nation-state attackers without the shared secret.
Rule of thumb: Messages for everyday privacy through public channels (the 95% case). Vault when the content is genuinely sensitive and one or both parties might be targeted.
What stays on your device
Everything. No servers. No accounts. No tracking. The dictionary loads once when you open the page, then nothing leaves. Your keys, your identity, and your messages live only in your browser's local storage, which only you can access. Close the tab — it's still there next time. Clear your browser data — it's gone permanently. Sovren cannot see, receive, or log anything you do.