Continuum-AI-Corp / scuttle
git clone https://github.com/Continuum-AI-Corp/scuttle.git
Tiny post-quantum encryption for sensitive data. Write-only by design. ML-KEM-768 + X25519 + AES-256-GCM. Please break it.
—
stars, 24h
—
stars, 7 days
+525
stars, 30 days · #531
525
★ total
2
forks · 4 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageGo
LicenseApache-2.0
Created2026-09-23 (27d ago)
Last push5d ago
Watchers0
OwnerOrganization
GitHub topics
orcarouterquantumquantum-algorithmsquantum-computingquantum-encryptionquantum-machine-learningquantum-safe-cryptographyquantum-safety
Links
- GitHub: github.com/Continuum-AI-Corp/scuttle
- Homepage: http://www.orcarouter.ai
- Releases · Issues · Hacker News mentions
README excerpt
# scuttle [code] English · 简体中文 · 日本語 · 한국어 · Deutsch · Français · Español `scuttle` is an open-source encryption layer for sensitive application logs. It is designed for systems where request and response payloads need to be temporarily observable, but copies may survive for years in databases, replicas, snapshots and backups. The normal application fleet receives **only a public capture key**. It can encrypt new logs, but cannot use that key to decrypt historical ones. Long-lived key material is protected with a **hybrid post-quantum construction using ML-KEM-768 + X25519**, while payloads are encrypted using **AES-256-GCM** with independently derived field keys. > **scuttle is the hybrid post-quantum encryption layer for sensitive log > payloads at OrcaRouter.** > > The open-source library is published so the construction can be inspected, > fuzzed, attacked and improved in public. --- ## Break it. **We want people to attack this.** Cryptography gets stronger when its assumptions are explicit and people are incentivized to find where they fail. `ATTACK.md` lists the security properties we believe the system provides, ordered by how expensive it would be for us to be wrong, together with fuzz targets aimed at those assumptions. Found something? → Read `SECURITY.md` → Reproduce it → Break an invariant → Tell us what we got wrong ## Status > **v0 — not independently audited.** > > The wire format is not stable. Do not use this yet for data you cannot > afford to lose or make permanently unreadable. --- # Why “scuttle”? To **scuttle** a ship is to deliberately make it unusable before an adversary can capture it. Scuttle applies the same idea to sensitive data. [code] --- # The problem AI infrastructure produces unusually sensitive logs. A single request can contain: - prompts - model responses - source code - API output - retrieved documents - PII - credentials accidentally included in context - agent tool calls - proprietary company data A normal logging architecture eventually looks like this: [code] Deleting a row after 30 days does not necessarily delete yesterday's backup, an oplog entry, a lagging replica or an old snapshot. Encryption only at the storage layer also means that whoever obtains the database's normal decryption path may obtain the plaintext. `scuttle` moves encryption **before storage**. --- # The architecture [code] The important boundary is: [code] A database credential is therefore not intended to be a historical prompt-decryption credential. --- # The cryptographic construction scuttle does **not** replace every primitive with a post-quantum primitive. It puts post-quantum cryptography where the long-term quantum threat actually matters. [code] ## Why AES-256? Payload encryption uses **AES-256-GCM**. A future cryptographically relevant quantum computer would change the security analysis of symmetric cryptography differently from public-key cryptography. Grover's algorithm gives a generic quadratic sea