Skip to content
View david415's full-sized avatar
💭
♥️Ⓐλ😼
💭
♥️Ⓐλ😼

Organizations

@tahoe-lafs @TheTorProject @telekommunisten @applied-mixnetworks @katzenpost @sphinx-cryptography

Block or report david415

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
david415/README.md

David Stainton: a packet's route through the layers of a mix network

My website · My blog (older posts) · katzenpost.network · Echomix paper · namenlos mixnet status · Moral character · Chat Control

I'm David Stainton. I work on free software, mix networks and post-quantum cryptography.

I founded and lead Katzenpost, a free software, post-quantum mix network that protects metadata against a global passive adversary. With my coauthors I described its design in Echomix: a Strong Anonymity System with Messaging (Ewa, David, Leif and Threebit Hacker, 2025). For what it's worth, in the before times I wrote code by hand in Lean, Rust, Golang, Nim, Python after abandoning C, C++ and Perl many years ago. These days I'm getting more into formal methods.

💼 Available for consulting and contract work: mix networks, post-quantum cryptography, protocol design and formal verification in Lean. Get in touch via my website.

Since 2019, when its EU research grant ended, Katzenpost has run on volunteers and small foundation grants. If you value this work, sponsoring me keeps it going.

Sponsor me on GitHub

Currently

  • Pigeonhole on Reticulum: Pigeonhole replicas for Reticulum meshes, in Rust (Reticulum-rs) and Python (pigeonhole_rns), that bridge the mesh to the mixnet; on the mesh, the group chat client katzenrns shares groups with mixnet clients.
  • pigeonhole_reticulous: Pigeonhole apps, starting with group chat, for Reticulous devices such as the LilyGO T-Deck Plus, which share groups with mixnet clients through a bridge replica.
  • hushphone: group chat and push-to-talk voice for Linux and Android, in Rust and Slint, over the mixnet or a Reticulum mesh.
  • pigeonhole_protocols: group chat and mixnet services over Pigeonhole, in Go, Rust and Python, each protocol written as a sans-IO state machine.
  • hpqc: the hybrid post-quantum NIKEs, KEMs and signatures that Katzenpost uses, in Go, Python and Rust.
  • Cryptlib (GitHub): a Lean library whose primitives are types that carry their own proof obligations; it began as a model of hpqc and now also implements protocols beyond it, such as Katzenpost's Sphinx packet format, checked against Katzenpost's test vectors.
  • Formalizing Sphinx in Lean: how Cryptlib's Sphinx is written generically over its primitives and proved correct for any choice of them.
  • High assurance in Lean 4: Noise and PQ Noise (uproar), the TLS 1.3 handshake as QUIC carries it (lean_tls) and post-quantum QUIC (lean_quic), all built on Cryptlib.

Recent releases

Katzenpost Blog posts

Pinned Loading

  1. HoneyBadger HoneyBadger Public

    Quantum Insert detector/recorder

    Go 306 32

  2. cryptocomrade cryptocomrade Public

    Creative commons licensed cryptography code examples in Rust and Go.

    Go 6 1

  3. tor_partition_scanner tor_partition_scanner Public

    scanner for detecting partitions on the tor network

    Python 5 3

  4. reading_lists reading_lists Public

    reading lists

    32 3

  5. hpqc hpqc Public

    Forked from katzenpost/hpqc

    Hybrid Post Quantum Cryptography

    Go 1

  6. katzenpost katzenpost Public

    Forked from katzenpost/katzenpost

    Katzenpost is a free and open source software project dedicated to researching and developing mix network protocols

    Go 1