a messaging system for the katzenpost mix network

In light of the current political climate and the amount of surveillance we are all under it’s a pity end to end encrypted messaging systems aren’t using mixnets for their transport. However, mixnets are not messaging systems. A mix network is a transport protocol that can be used to compose various types of messaging systems.

A few years ago I worked on an NLNet grant funding our work to make a messaging system for Katzenpost. Here’s the design and threat model document I wrote:


Catshadow ended up being a client library for katzenpost mixnet. And katzen is what we are calling the graphical user interface for catshadow.

Source code to catshadow: https://github.com/katzenpost/katzenpost/tree/main/catshadow

Source code to katzen: https://github.com/katzenpost/katzen

Source code to all the infrastructure components of katzenpost mix network:


We know of various ways to improve the design and implementation of Catshadow. However the above documents what we currently have that works.