A network they can't read and can't join — but can see.
The safe radio + crypto design for a TOC box. Two goals get confused constantly, so we separate them up front: locking outsiders out is a solved problem; staying invisible is not, with any commercial hardware. Everything here buys the first and refuses to pretend at the second — because chasing invisibility costs reliability and buys almost nothing. Civilian, observation-and-reporting only; nothing here targets, jams, or fires.
01
The principle (read first)
Confidentiality — achievable. Modern crypto means nobody uninvited reads your traffic or joins your mesh. This is settled engineering.
Invisibility — not achievable. Encryption hides content, never the fact of transmission. A radio is a beacon: an SDR sees packets, node IDs and timing, and can direction-find the transmitter. Real RF concealment needs secret-sequence spread-spectrum, burst and low power — Meshtastic and Starlink do none of it.
Metadata is the leak. Who talks to whom, when, and how often — traffic analysis alone — is often more revealing than content. Design assumes you are watched.
The real failure is human. Almost every historical break — Enigma included — came from operational process, not broken maths. The cipher rarely fails; the people around it do. So this is 20% radios and 80% discipline.
02
The layered stack
Four layers, each doing exactly one job. Content is encrypted above every radio, so no single node or link is ever trusted.
Layer 0 — Content crypto above every radio
Never trust the transport. Everyday traffic: ChaCha20-Poly1305 + X25519, Signal-protocol style, with forward secrecy (a stolen key can't open old messages). Add Kyber for post-quantum. The crown-jewel command channel: a one-time pad — the only provably unbreakable system — pads pre-loaded per kit, truly random, used once, destroyed.
Layer 1 — Local mesh 915 MHz ISM · encryption legal
Haven / OpenMANET on Wi-Fi HaLow (802.11ah) is the IP backbone — self-healing, carries ATAK-over-multicast, PTT and video. Meshtastic LoRa is the always-on beacon floor for text and terse status. Both on ISM, where encryption is lawful in NZ.
Layer 2 — Resilient-open HF amateur bands · plaintext only
The last-ditch PACE "E" layer. On NZ amateur spectrum you may authenticate but not encrypt — encrypting to obscure meaning is unlawful. So HF stays open: check-ins and status with agreed brevity terms, never secrets. Anything confidential rides ISM or satellite instead.
Bridges mesh islands, carrying only ciphertext, inside WireGuard. Be honest about it: the provider geolocates the dish, the account carries your name, the uplink is a loud emitter, and the VPN is a new trust point, not an eraser. Opaque — not hidden. There is no anonymous satellite terminal.
03
Gematria Primus as the "language code"
You asked whether to use Gematria Primus — read in English — as the language code. Yes, in a specific role. Here's the honest placement.
It reads English. The 29 futhorc runes map to Latin letters, so a message written in Gematria Primus is simply English spelled in runes (Latin codewords optional for flavour). That's exactly how it's meant to be read.
Great as identity + brevity + checksum. Use it as the unit motif, as a small codebook of short agreed words (fast, low-bandwidth brevity — ideal on the open HF layer where you can't encrypt), and as a tamper-check: every rune is a prime, so a phrase has a numeric sum — a correct decode hitting the agreed number authenticates it.
Not the confidentiality layer. On its own it's a monoalphabetic substitution: the chart is one of the most-photographed on the internet (recognise → Google → decoded in a minute), and even unrecognised it falls to frequency analysis on a paragraph. This is obscurity, not security.
If it must actually hold, run a Vigenère over it with a shared keyword — the same move Cicada used in the Liber Primus, unbroken after twelve years. Same aesthetic, vastly stronger. But real secrecy still comes from Layer 0, not the runes.
Legal edge: brevity codes for efficiency are accepted on the open HF layer; a private code designed to hide meaning is not. Keep the runes for identity, speed and authentication — put genuine secrets on ISM or satellite. And remember the Enigma lesson: a written codebook is a capture liability. Treat it like key material.
04
What actually holds
Tool
Where
Strength
One-time pad
Command channel
provably unbreakable if truly random, key ≥ message, used once, destroyed. Whole difficulty is delivering the pad — solved by handing it over at muster.
ChaCha20 / AES-256
Everyday messages
unbreakable in practice — brute force exceeds available energy. Your weak point is the device or the operator, not the cipher.
X25519 · Kyber
Key exchange
strong — Kyber adds post-quantum cover.
Gematria Primus
Identity / brevity / checksum
obscurity only — great motif, weak secrecy. Vigenère it if it must hold.
Invented "secret language"
—
weak — a substitution cipher with a dictionary; falls to frequency analysis and to anyone who gets the dictionary.
05
Key management — the actual hard part
Pads at muster. Two people who meet once can do unbreakable crypto forever after. Pre-load one-time pads into each kit in person; that solves the only genuinely hard problem.
Keyless relays. Unattended nodes hold no private keys and relay only ciphertext they can't read — physical access to a relay must yield nothing. Meshtastic routers rebroadcast at the LoRa layer without the channel PSK, so this is native.
Rotate, and assume record-now-decrypt-later. Anything sent can be recorded today and opened if a key leaks — rotate PSKs on a schedule and after any suspected loss.
Device is the weak point. Full-disk encryption on every node, a kill/wipe path, tamper-evident enclosures. Destroy pads after use.
06
Because they can see you — emission discipline
Lowest power that closes the link, directional antennas, and burst/scheduled transmission with randomised timing. A node that lights up for twenty minutes every evening tells a story.
Position & telemetry broadcasts OFF by default. GPS is receive-only and safe — the leak is downstream: never auto-broadcast position, never drop raw coordinates into messages. Design for graceful failure on a jammed or spoofed fix.
Keep the net small and disciplined. Node-ID hygiene; assume traffic analysis; fewer emitters, fewer patterns.
07
NZ legal band plan
Layer
Band
Rule
Mesh + IP backbone
915 MHz ISM (ANZ)
General User Licence, no callsign, encryption allowed. Cap TX to the NZ GURL limit — HaLow's 27 dBm is a US figure.
Resilient-open
Amateur HF
Authenticate yes, encrypt no. Stays plaintext; brevity for efficiency only.
Confidential long-haul
—
Use licensed commercial HF or satellite, never amateur.
The rule of thumb: if it must be encrypted and legal, it stays on ISM or satellite. Amateur spectrum is the resilient-but-open layer, on purpose.
08
The safe defaults — shipped, not remembered
Every box built from the runbook ships hardened. One script applies the defaults so security doesn't depend on the operator remembering — the Enigma failure mode. Review it, then run it against each node.
meshtastic-safe-defaults.txtthe config checklist in plain text — for review and manual applicationTXT ↓
What it sets on every node:
Rotates off the default key. The stock primary channel key (AQ==) is public — out of the box, DMs are effectively unencrypted. Replaced with a real 256-bit PSK.
Position & telemetry broadcasts disabled. No auto-leaking where you are or how the box is doing.
PKC direct messages. Per-node X25519 keypairs (firmware ≥ 2.5), DMs signed as well as encrypted.
Relays carry no private keys. Unattended routers forward ciphertext they can't read.
Pads + WireGuard keys generated with a CSPRNG, ready to distribute at muster.
Before you transmit: cap TX power to the NZ GURL limit, and never load a private channel key onto a node you'll leave unattended. The script reminds you of both.
09
Rolling keys & where else the runes earn their keep
You asked about an automated daily / hourly / single-transmission key for the mesh, and where else Gematria could be used. Both are good ideas — done the right way, which is: rotate a key nobody ever transmits, and let the runes be the human verification on top.
The rolling key — derived, never sent
Every node holds one shared master secret (handed over in person at muster). The period key is derived from the master + the clock with a KDF (HKDF-SHA256), so every node computes the same key offline — nothing is transmitted. Rotate daily, hourly, or per-message (a ratchet that gives forward secrecy). This shrinks the record-now-decrypt-later window to a single period.
Where Gematria fits — and it's a real job: the derived key produces a short rune day-sign and a prime-sum checksum (KCV). Two ends say the day-sign word and answer the number to confirm they hold the same key without ever revealing it — pure authentication, legal even on amateur HF. The KDF is the strength; the runes are verification, never entropy.
Where else to use it:
Sign / countersign. The day-sign word as challenge, the prime-sum as the answer — a rotating daily authenticator for voice and HF.
Duress code. A pre-agreed rune-word or number that answers "correctly" but silently signals coercion.
Key-check values. Prime-sum any key or config to confirm two nodes match, or to detect tampering, without sending the thing itself.
Net identity. Rune callsigns and addressing — the unit's own script, doubling as a recognisable motif.
Brevity + checksum on the open layer, where you can't encrypt but can compress and authenticate.
keyschedule.mjsrolling day/hour/per-message key from master + clock, with the Gematria day-sign + KCVMJS ↓
wg-backhaul.shWireGuard hub-and-spoke generator for the satellite / internet backhaul (Layer 3)SH ↓
Time sync: rolling keys need agreed UTC — GPS is receive-only and safe for this. Accept the previous period for a short overlap so a clock skew never drops the net. And the master secret is the crown jewel: distribute in person, never transmit, rotate if a node is lost.
10
Verdict
Design for resilience, not concealment.
Confidentiality is yours — a network outsiders can't read and can't join. Modern crypto on the ISM layers, a one-time pad for the command channel, keyless relays, discipline on top.
Invisibility is not, and chasing it trades away reliability for almost nothing. Assume you are seen; make sure nothing seen can be read.
Gematria Primus earns its place as your identity, brevity and authentication layer — English in runes, with the prime-sum as a checksum — sitting on top of real crypto, never in place of it.