<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://hedgehogbits.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://hedgehogbits.com/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-11-07T07:18:29+00:00</updated><id>https://hedgehogbits.com/feed.xml</id><title type="html">Hedgehog Bits</title><subtitle>Hedgehog Bits is an encrypted, offline vault for iPhone that looks like a collection of quick brain games. Notes, photos, videos and files are encrypted on the device with Argon2id and AES-256-GCM. No servers, no accounts, no sync.</subtitle><author><name>Hedgehog Bits</name></author><entry><title type="html">What a disguise can and cannot do</title><link href="https://hedgehogbits.com/blog/2026/11/what-a-disguise-can-and-cannot-do/" rel="alternate" type="text/html" title="What a disguise can and cannot do" /><published>2026-11-02T00:00:00+00:00</published><updated>2026-11-02T00:00:00+00:00</updated><id>https://hedgehogbits.com/blog/2026/11/what-a-disguise-can-and-cannot-do</id><content type="html" xml:base="https://hedgehogbits.com/blog/2026/11/what-a-disguise-can-and-cannot-do/"><![CDATA[<p>Hedgehog Bits opens like a casual game. That is a useful feature, but it is easy to overstate. This post describes where the cover helps and where it doesn’t, so you can rely on the right things.</p>

<h2 id="what-the-cover-is-good-for">What the cover is good for</h2>

<p>Most privacy problems are not sophisticated attacks. They are a friend scrolling through your phone, a family member picking it up, or someone glancing over your shoulder at your home screen.</p>

<p>For these situations, the cover helps:</p>

<ul>
  <li><strong>The home screen looks ordinary.</strong> A calm app with a hedgehog doesn’t invite questions.</li>
  <li><strong>Opening the app shows games.</strong> Anyone who types a name sees a greeting and ten playable games with personal bests.</li>
  <li><strong>Nothing gives the vault away.</strong> The app never says “wrong password”, and a wrong answer takes about as long as a right one.</li>
  <li><strong>The app switcher shows only the hedgehog,</strong> and the vault locks the moment you leave the app.</li>
</ul>

<p>We also kept the look deliberately grown-up and plain: flat surfaces, system type, one muted accent colour. Bright, cartoonish design draws attention, which is the opposite of what we want.</p>

<h2 id="where-the-cover-stops">Where the cover stops</h2>

<p>A disguise is only a disguise. It is worth being clear about its limits:</p>

<ul>
  <li><strong>Someone who knows the app knows what it is.</strong> This website exists, and so does the App Store listing. If a person knows Hedgehog Bits, they know a vault may be inside.</li>
  <li><strong>Your password is visible as you type it.</strong> The start screen asks for a name, and a name field that hid its letters would look unusual. Be aware of who can see your screen. The field clears as soon as the app leaves the foreground.</li>
  <li><strong>It can’t help on a compromised phone.</strong> If someone controls your device through malware or a jailbreak, no app can keep data safe on it.</li>
  <li><strong>It doesn’t remove traces elsewhere.</strong> Photos you remove from your library after importing them stay in <em>Recently Deleted</em> for up to 30 days. Empty that album too.</li>
</ul>

<h2 id="what-actually-protects-your-data">What actually protects your data</h2>

<p>The protection comes from encryption and from your password:</p>

<ul>
  <li>Your password is stretched with <strong>Argon2id</strong> (256 MiB, 3 passes), so guessing is slow and expensive.</li>
  <li>Your files are encrypted with <strong>AES-256-GCM</strong>, each with its own key, and stored only on your iPhone.</li>
  <li>There are <strong>no servers and no recovery mechanism</strong>, so there is no second way in.</li>
</ul>

<p>This means the most important decision is your password. A few random words, such as <em>“copper lantern orbit meadow”</em>, is far stronger than a short word with a number, and still easy to remember. The app shows a strength estimate when you choose it.</p>

<h2 id="a-simple-way-to-think-about-it">A simple way to think about it</h2>

<p>The cover decides whether anyone <em>notices</em> the vault. The encryption decides whether anyone can <em>open</em> it. You should rely on the second and treat the first as a convenience.</p>

<p>For the full design and its limitations, see the <a href="/security/">security design</a>.</p>]]></content><author><name>Hedgehog Bits</name></author><category term="security" /><category term="threat model" /><category term="privacy" /><summary type="html"><![CDATA[Hedgehog Bits looks like a set of brain games. An honest look at what that cover protects against, where it stops, and what actually keeps your data safe.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://hedgehogbits.com/assets/images/og-image.png" /><media:content medium="image" url="https://hedgehogbits.com/assets/images/og-image.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Moving your vault to a new iPhone</title><link href="https://hedgehogbits.com/blog/2026/10/moving-your-vault-to-a-new-iphone/" rel="alternate" type="text/html" title="Moving your vault to a new iPhone" /><published>2026-10-28T00:00:00+00:00</published><updated>2026-10-28T00:00:00+00:00</updated><id>https://hedgehogbits.com/blog/2026/10/moving-your-vault-to-a-new-iphone</id><content type="html" xml:base="https://hedgehogbits.com/blog/2026/10/moving-your-vault-to-a-new-iphone/"><![CDATA[<p>A new iPhone usually copies everything across on its own. Hedgehog Bits is an exception, by design: the vault is left out of iCloud backups, computer backups and Quick Start transfer. That way, a copy of your vault only exists where you put one.</p>

<p>Moving it takes a couple of minutes.</p>

<h2 id="on-your-old-iphone">On your old iPhone</h2>

<ol>
  <li>Open the vault.</li>
  <li>Go to <strong>Settings → Export Backup…</strong></li>
  <li>Save the <code class="language-plaintext highlighter-rouge">.hhbits</code> file somewhere you can reach from the new phone: AirDrop it to your Mac, save it to Files, or copy it to a USB drive.</li>
</ol>

<p>Keep the app open until the export finishes. If the app locks during an export, the export is cancelled, so the key is never kept in the background.</p>

<h2 id="on-your-new-iphone">On your new iPhone</h2>

<ol>
  <li>Install Hedgehog Bits.</li>
  <li>On the first screen, tap <strong>Restore from Backup…</strong></li>
  <li>Choose the backup file and enter the vault password.</li>
</ol>

<p>Your folders, files and password come back exactly as they were. From then on, type your password where the app asks for your name.</p>

<h2 id="what-makes-the-backup-safe">What makes the backup safe</h2>

<p>The backup is the vault’s own ciphertext, packed into a single file. It is never decrypted or re-encrypted along the way, so it is as strong as the vault itself.</p>

<ul>
  <li><strong>It opens only with your password.</strong></li>
  <li><strong>It can’t be quietly modified.</strong> An HMAC keyed from your master key covers every entry. If anything is changed, removed, swapped or added, the restore is refused.</li>
  <li><strong>Restore is all-or-nothing.</strong> The password is checked before anything is written. The data is unpacked into a staging area, verified, flushed to disk and only then moved into place. A damaged file or an interrupted restore can’t leave you with half a vault.</li>
</ul>

<h2 id="things-to-keep-in-mind">Things to keep in mind</h2>

<ul>
  <li><strong>A backup is a snapshot.</strong> It contains what was in the vault when you exported it. Export again after adding important files.</li>
  <li><strong>It reveals size, not content.</strong> Someone with the file can see roughly how big the vault is and how many items it holds, but nothing inside it.</li>
  <li><strong>Where you keep it is your choice.</strong> A USB drive in a drawer, an encrypted disk, or a cloud folder you already trust. Each has trade-offs, and you are best placed to judge them.</li>
  <li><strong>Make one before you need it.</strong> If your phone is lost or erased and you have no backup, the vault is gone too.</li>
</ul>

<p>A regular backup is the simplest way to own your data without depending on anyone else’s infrastructure.</p>]]></content><author><name>Hedgehog Bits</name></author><category term="backup" /><category term="how-to" /><category term="data ownership" /><summary type="html"><![CDATA[Hedgehog Bits stays out of iCloud and phone-to-phone transfer on purpose. Here is how to move your vault yourself with an encrypted backup file.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://hedgehogbits.com/assets/images/og-image.png" /><media:content medium="image" url="https://hedgehogbits.com/assets/images/og-image.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">How Hedgehog Bits encrypts your files</title><link href="https://hedgehogbits.com/blog/2026/10/how-hedgehog-bits-encrypts-your-files/" rel="alternate" type="text/html" title="How Hedgehog Bits encrypts your files" /><published>2026-10-24T00:00:00+00:00</published><updated>2026-10-24T00:00:00+00:00</updated><id>https://hedgehogbits.com/blog/2026/10/how-hedgehog-bits-encrypts-your-files</id><content type="html" xml:base="https://hedgehogbits.com/blog/2026/10/how-hedgehog-bits-encrypts-your-files/"><![CDATA[<p>This post explains, step by step, what happens between typing your password and seeing your photos. It is written for readers who want to understand the design, not only hear that it is “encrypted”.</p>

<h2 id="1-your-password-becomes-a-key">1. Your password becomes a key</h2>

<p>When you type your password, the app first normalizes it (Unicode NFC), so the same text always produces the same key regardless of how the keyboard encoded it. Any characters are allowed, including spaces and emoji.</p>

<p>The password is then run through <strong>Argon2id</strong>, a password hashing function designed to resist guessing on specialised hardware. We use 3 passes over <strong>256 MiB</strong> of memory with a random salt. On an iPhone this takes about a second. For someone trying millions of guesses, it makes each one expensive.</p>

<h2 id="2-the-password-key-unlocks-a-master-key">2. The password key unlocks a master key</h2>

<p>The password-derived key does not encrypt your files directly. Instead, it unwraps a random <strong>256-bit master key</strong> that was generated when you created the vault. The master key is stored wrapped with AES-256-GCM.</p>

<p>This has a practical benefit: changing your password only re-wraps the master key. A vault with gigabytes of video can change its password in a moment.</p>

<h2 id="3-every-item-has-its-own-key">3. Every item has its own key</h2>

<p>From the master key, the app derives a separate key for each blob (each file, each thumbnail and the index that holds names and folders) using <strong>HKDF-SHA256</strong>. Keys are never reused across items.</p>

<p>Because names and folder structure live inside the encrypted index, someone looking at the app’s storage sees only opaque blobs.</p>

<h2 id="4-content-is-encrypted-in-authenticated-chunks">4. Content is encrypted in authenticated chunks</h2>

<p>Files are split into <strong>1 MiB chunks</strong>, each encrypted with <strong>AES-256-GCM</strong>. GCM authenticates as well as encrypts, so any change to the ciphertext is detected.</p>

<p>Each chunk’s authentication also covers its position and whether it is the final chunk. That closes off three quieter attacks:</p>

<ul>
  <li><strong>Tampering:</strong> changing bytes in a chunk.</li>
  <li><strong>Reordering:</strong> swapping chunks around.</li>
  <li><strong>Truncation:</strong> cutting off the end of a file.</li>
</ul>

<p>Chunking also lets the app play video and audio without decrypting a whole file. The player asks for a byte range, and only the chunks covering that range are decrypted, in memory.</p>

<h2 id="5-plaintext-stays-in-memory">5. Plaintext stays in memory</h2>

<p>Photos, notes, PDFs and text are decrypted in memory and shown directly. A few features, such as sharing a file to another app or previewing an unusual format with Quick Look, need a real file. In those cases the app writes a temporary copy and deletes it when you close the preview and whenever the vault locks.</p>

<h2 id="6-locking-means-locking">6. Locking means locking</h2>

<p>The vault locks the moment the app leaves the foreground. If an unlock, import or note save is still running at that point, it is cancelled or discarded. A closed session can never write to disk again. On top of this, the vault’s files use iOS <code class="language-plaintext highlighter-rouge">FileProtection.complete</code>, so the system also keeps them encrypted while the phone itself is locked.</p>

<h2 id="why-standard-building-blocks">Why standard building blocks</h2>

<p>None of these primitives are new. That is deliberate. Argon2id, HKDF and AES-GCM are widely reviewed, and we use them through Apple CryptoKit and libsodium rather than our own implementations. The work is in combining them carefully and being clear about what the result does and doesn’t protect.</p>

<p>For the full list, including known limitations, see the <a href="/security/">security design</a>.</p>]]></content><author><name>Hedgehog Bits</name></author><category term="security" /><category term="encryption" /><category term="engineering" /><summary type="html"><![CDATA[A walk through the vault's encryption: Argon2id key derivation, a wrapped master key, per-item HKDF keys and chunked AES-256-GCM, and why each choice was made.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://hedgehogbits.com/assets/images/og-image.png" /><media:content medium="image" url="https://hedgehogbits.com/assets/images/og-image.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Introducing Hedgehog Bits: a vault with no servers</title><link href="https://hedgehogbits.com/blog/2026/10/introducing-hedgehog-bits/" rel="alternate" type="text/html" title="Introducing Hedgehog Bits: a vault with no servers" /><published>2026-10-20T00:00:00+00:00</published><updated>2026-10-20T00:00:00+00:00</updated><id>https://hedgehogbits.com/blog/2026/10/introducing-hedgehog-bits</id><content type="html" xml:base="https://hedgehogbits.com/blog/2026/10/introducing-hedgehog-bits/"><![CDATA[<p>Most apps that store your private files ask you to trust them. You create an account, your data is uploaded, and from then on its safety depends on a company’s servers, staff and policies.</p>

<p>Hedgehog Bits takes a different approach. It is a vault for notes, photos, videos and documents that lives entirely on your iPhone. We don’t run servers for it, we don’t ask for an account, and we never receive your data. There is nothing on our side to breach, subpoena or misuse.</p>

<h2 id="owning-your-data-in-practice">Owning your data, in practice</h2>

<p>“You own your data” is easy to write in a privacy policy. We wanted it to be a property of the design instead:</p>

<ul>
  <li><strong>The key comes from your password.</strong> Your password is turned into an encryption key on the device. We never see either.</li>
  <li><strong>There is no copy elsewhere.</strong> The vault is excluded from iCloud backups, computer backups and phone-to-phone transfer.</li>
  <li><strong>You decide where backups go.</strong> When you want a copy, you export one encrypted file and put it wherever you trust: a Mac, a USB drive, a folder of your choice.</li>
  <li><strong>There is no recovery.</strong> This is the trade-off. If nobody else can open your vault, nobody else can reset its password either.</li>
</ul>

<p>We think that last point deserves to be said plainly. A recovery option means someone other than you holds a way in. We chose not to build one.</p>

<h2 id="why-it-looks-like-a-game">Why it looks like a game</h2>

<p>When you open Hedgehog Bits, you see a line-art hedgehog and a simple question: <em>“Who is playing?”</em> Type your vault password and the vault opens. Type anything else and the app greets you and offers ten short brain games.</p>

<p>The goal is discretion. An app called “Secret Vault” on a home screen invites questions. A calm game with a hedgehog does not. We wrote more about what this cover can and cannot do in <a href="/blog/2026/11/what-a-disguise-can-and-cannot-do/">a separate post</a>.</p>

<h2 id="built-on-standard-cryptography">Built on standard cryptography</h2>

<p>We use well-studied building blocks with conservative settings: Argon2id for the password, a random 256-bit master key, per-item keys derived with HKDF, and AES-256-GCM for content. The <a href="/security/">security design</a> page lists the details, including the limitations.</p>

<h2 id="whats-next">What’s next</h2>

<p>We’ll use this blog to explain how the app works and to share practical advice on keeping private data private. If you have questions, the <a href="/faq/">FAQ</a> is a good place to start.</p>]]></content><author><name>Hedgehog Bits</name></author><category term="announcement" /><category term="privacy" /><category term="data ownership" /><summary type="html"><![CDATA[Why we built a private iPhone vault that keeps everything on the device, with no accounts, no sync and no way for us to see your data.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://hedgehogbits.com/assets/images/og-image.png" /><media:content medium="image" url="https://hedgehogbits.com/assets/images/og-image.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>