暗号 · angō — encryption for the next break

Fury

Post-quantum-only file encryption with no classical fallback, no plaintext private keys, and binaries for almost everywhere Go can reach.

Fury takes the clean, composable feel of age and rebuilds the key agreement around a conservative hybrid: FrodoKEM-640 plus ML-KEM-768. Files stay private unless both KEMs fail.

Default suite

FrodoKEM-640 + ML-KEM-768

Hybrid post-quantum key wrapping, a 256-bit file key, HKDF-SHA256 binding, and ChaCha20-Poly1305 STREAM payload encryption.

Post-quantum only

Built for secrets that need a longer horizon.

Fury is a command-line file encryption tool, file format and Go library for people who want post-quantum choices to be the default, not a flag they might forget.

It is deliberately small in shape: generate a key, encrypt to a public recipient, decrypt with your identity. Under the surface, the format removes classical public-key paths, stores private identities encrypted with Argon2id, and keeps old files decryptable as future suites are added.

守り · the protection
Hybrid PQ KEM

Two assumptions, one file key

FrodoKEM-640-SHAKE and ML-KEM-768 both wrap the file key. The design goal is simple: breaking one KEM is not enough.

No downgrade path

Post-quantum only

There are no X25519, SSH-key or plugin recipients in v1. Fury recipients carry a postquantum label and mixed-label encryption fails closed.

Private keys at rest

No plaintext identity files

A Fury identity can only be serialized under a passphrase. Argon2id parameters are stored with the file and capped on parse.

Payload encryption

age-style STREAM container

Fury keeps age's header MAC and ChaCha20-Poly1305 STREAM payload construction, with a larger 256-bit file key.

Key sharing

Short fingerprints, verified resolution

Large post-quantum public keys can be shared as files, while short furyfp1 fingerprints resolve through cache, files or HTTPS key servers and are verified before use.

Agility

Versioned suites

Suites are self-describing in encrypted files. New defaults can be added later without stranding data encrypted today.

型 · command shape

Small commands. Serious defaults.

The archive includes fury, fury-keygen and fury-inspect. Input defaults to stdin, output defaults to stdout, and binary ciphertext is kept out of the terminal unless you ask for armor or redirect it.

$ fury-keygen -o key.fury $ tar cvz ~/data | fury -R key.fury.pub > data.tar.gz.fury $ fury -d -i key.fury data.tar.gz.fury > data.tar.gz
検分 · inspect without decrypting

See what a Fury file is made of.

fury-inspect reports the file version, recipient suite, post-quantum status and size breakdown. Use --json when the result belongs in a script.

入手 · downloads

Choose your operating system and CPU architecture.

Each archive contains the command-line tools for that platform. Prefer building from source? Use go install github.com/andydixon/fury/cmd/...@latest.

macOS

Intel x86-645.2 MBDownload
Apple Silicon ARM644.7 MBDownload

Windows

32-bit x865.2 MBDownload
64-bit x86-645.3 MBDownload
ARM644.7 MBDownload

Linux

32-bit x865.0 MBDownload
64-bit x86-645.1 MBDownload
ARM4.9 MBDownload
ARM644.6 MBDownload
LoongArch 644.8 MBDownload
MIPS4.9 MBDownload
MIPS little-endian4.8 MBDownload
MIPS644.6 MBDownload
MIPS64 little-endian4.6 MBDownload
PowerPC 644.7 MBDownload
PowerPC 64 little-endian4.7 MBDownload
RISC-V 644.7 MBDownload
IBM s390x5.0 MBDownload

BSD family

FreeBSD 32-bit x865.0 MBDownload
FreeBSD x86-645.1 MBDownload
FreeBSD ARM4.9 MBDownload
FreeBSD ARM644.5 MBDownload
NetBSD 32-bit x864.9 MBDownload
NetBSD x86-645.0 MBDownload
NetBSD ARM4.9 MBDownload
NetBSD ARM644.5 MBDownload
OpenBSD 32-bit x865.0 MBDownload
OpenBSD x86-645.1 MBDownload
OpenBSD ARM4.9 MBDownload
OpenBSD ARM644.6 MBDownload
OpenBSD PowerPC 644.6 MBDownload
OpenBSD RISC-V 644.7 MBDownload
DragonFly BSD x86-645.0 MBDownload

Unix and WebAssembly

AIX PowerPC 645.1 MBDownload
illumos x86-645.1 MBDownload
Solaris x86-645.1 MBDownload
JavaScript WebAssembly5.3 MBDownload
WASI WebAssembly5.3 MBDownload

Plan 9

32-bit x864.8 MBDownload
64-bit x86-644.9 MBDownload
ARM4.7 MBDownload

Inspect it. Build it. Break the assumptions on purpose.

Fury is BSD 3-Clause and lives in the open. The age-derived container has valuable provenance; the post-quantum changes are Fury's own and should be reviewed against your threat model.