How your encryption works

You load the round. We just make the press.

A cartridge only performs if every component is right — the case, the primer, the powder charge, the projectile. Miss one and the rest does not matter. Your permits work the same way, and the component you control is the one that decides everything.

The Encryption Lab

Try to break it. See what it would take.

Loading the lab…

Time to break in

Everything depends on one thing, and it isn't the algorithm.

Assume the worst case: someone has stolen the encrypted file, they are grinding away offline where nothing can rate-limit them, and they know exactly how we derive keys. Here is how long each kind of password holds.

This page describes end-to-end accounts — the ones whose sign-up showed a recovery code. Older accounts work differently, and the note near the end of the page says how.

A password you reused somewhere else
the one from that forum in 2017 · — bits
Instantly

It is already in a cracking list. Nobody brute-forces it; they look it up.

A password that looks strong
Mustang!7 · ~28 bits
About 2 minutes

Capital, symbol, digit — it passes every strength meter and follows three patterns a cracker tries first.

Answers only you would know
birth city, first car, mother's maiden name · ~10 bits
Under a second

Against someone who knows you — an ex, a sibling, a roommate. The people most likely to want into your account already have most of the answers.

Four random words
hammer · lilac · copper · flint · ~44 bits
About 3.3 months

Random beats clever — four words already beats Mustang!7 by a factor of sixty thousand. It is still not enough, which is why our own generator will not hand you four.

Five random words
hammer · lilac · copper · flint · meadow · ~55 bits
About 570 years

One more word moved it from months to centuries. This is the floor the generator starts you above, not the target.

Seven random words
hammer · lilac · copper · flint · meadow · anvil · marble · ~77 bits
About 2.4 billion years

What the generator gives you by default, and still seven things you can picture in a row.

Your recovery code
generated on your device · 160 bits
10²⁴ × the age of the universe

This is why the recovery kit is the one thing we tell you to print and put somewhere physical. It is not slowed by the memory-hard key derivation that protects a passphrase; 160 random bits does not need it, and is out of reach at any guessing speed.

The permit key itself
AES-256 · 256 bits
Out of reach of physics

Not a big number — a different category. Counting to 2²⁵⁶ would take more energy than the sun will ever emit. This is never the part anyone attacks.

Priced at one million guesses per second — a rented cluster several hundred times faster than a high-end graphics card actually manages against our key derivation, which is memory-hard by design and lands around 2,000–3,000 guesses per second in practice. Times are expected-case, meaning the attacker finds it halfway through on average. We use the unfavorable number on purpose; a table like this is only worth reading if it errs against the people who published it. The recovery-code and key rows are not slowed by the key derivation at all; they need no help, because 160 and 256 random bits are out of reach at any speed.

Where the jump happens

Two more words is worth more than every clever trick combined.

Look again at the table and find where it stops being measured in months. It is not at a stronger algorithm. It is between word four and word six — the part nobody else can do for you.

Our key derivation buys you about twenty bits. Roughly two free words. It turns four words from minutes into months. It cannot rescue a bad password.

The lab above is the real thing, not a mock-up: the same 2,048-word list and the same arithmetic the generator inside your account uses, which is where the 11 bits per word above comes from. Nothing you type or roll is sent anywhere — the words are drawn by your own browser, and this page has no database to send them to. And a passphrase you did not choose yourself is the entire point: a word you picked because it means something to you is a word that someone who knows you can guess.

The components

Four parts, and you own the one that matters.

Handloaders already understand this page. You do not trust a round because the box says so — you trust it because you know what went into it and you measured the charge yourself.

The primer

Your passphrase

The component we never see, never store, and cannot reproduce. Everything downstream is ignited by it, and nothing downstream can compensate for a weak one.

The powder charge

Argon2id, 64 MiB

Measured deliberately heavy. Each guess an attacker makes has to allocate 64 MiB of memory and work through it — which is what drags a graphics card from ten billion guesses a second down to a few thousand.

The projectile

AES-256-GCM

The cipher that actually does the work, on your device, before a single byte leaves it. Nobody attacks this part. It is not the weak component in any real break-in, which is exactly why we spent this page on the primer instead.

The headstamp

Your recovery code

160 random bits your own device generates once and shows you once. It is the other way to unlock your permits if you forget your password. Keep it on paper in a safe, not in your email.

The honest part

What this protects, and what it plainly does not.

Encryption is a specific tool for a specific job. Any page that tells you it solves everything is selling something. Here is the actual boundary.

What it stops cold on an end-to-end account

  • Someone stealing our database. They get ciphertext for your permit details and the two wrapped copies of your key, and opening those means guessing your passphrase, which is what the table above prices.
  • An employee going looking. There is no internal tool that can read the contents of your permits, because the key was never on our side.
  • Training anything on your permits. The server cannot read them, so nothing can be trained on them.

What it does nothing about

  • Malware on your own device, reading your screen after you have unlocked.
  • A password you reused somewhere that has already been breached.
  • Someone watching you type it, or finding your recovery code in a drawer.
  • A court ordering you to unlock it. That fight is between you and your attorney, and courts genuinely disagree about it.
  • A backup you export. It is a plain spreadsheet, readable by anyone who holds it, so keep it somewhere you trust.
  • Tampered code. On the website your key is created and unlocked by code we serve you, so a compromised copy of that code could read what you type. A new account is always created on the website; the iPhone app, once released, is distributed through Apple's App Store instead.

If you take one operational thing from this page: the passphrase protecting your permits should be used for this and nothing else, and your recovery kit should live somewhere physical. Those two habits matter more than every technical decision listed above.

What we can actually see

We will not claim we know nothing about you.

Plenty of products say "zero knowledge" and mean it loosely. Here is the specific, checkable version, including the parts that are not encrypted.

Encrypted permit contents (end-to-end accounts)

  • The name you give a permit, the state that issued it, and its issue and expiration dates.
  • The first and last name printed on it, and any notes you attach.
  • Your password and unwrapped permit key (wrapped key copies are stored for unlock and recovery).

Visible on our side

  • Your email address, and your home state and your first and last name if you give them.
  • How many permits you hold, and when each was created or last changed. The app cannot list your permits without that much.
  • When you were last active.
  • For each sign-in: its time, the IP address, your browser or device details, and the country and region that address resolves to.
  • Anything you send to support — those are not encrypted, so please do not paste a permit number into one.

If a court orders us to hand over everything we have, on an end-to-end account we hand over what the Privacy Policy describes in Section 1 — your email address, your home state and name if you gave them, counts and dates of your permits, sign-in times and IP addresses with their country and region, any support correspondence — and a pile of ciphertext we cannot open. That is not a promise. It is the shape of the system.

Older CaliberBase Carry accounts — the ones whose sign-up did not show a recovery code — work differently. Their permits are encrypted on our servers under a key we hold, so we can read them, and each permit's issuing state and expiration date are stored unencrypted. Those accounts still work exactly as before. The Privacy Policy lists what we hold for both kinds.

Your permits, your ledger

A tracking tool that answers to you.

This is a record of the permits you hold, kept the way that kind of record ought to be kept: by you, readable by you, on terms you set. Not a registry. Not a database someone else queries. Not a product that studies your permits to sell you something. On an end-to-end account you hold the key, and the arithmetic on this page is what that sentence is worth.