The sphinxmix
package implements the Sphinx mix packet format core cryptographic functions.
The paper describing sphinx may be found here:
George Danezis and Ian Goldberg. Sphinx: A Compact and Provably Secure Mix Format. IEEE Symposium on Security and Privacy 2009. http://www.cypherpunks.ca/~iang/pubs/Sphinx_Oakland09.pdf
Beyond the original proposal it allows for clients to communicate additional information to mix servers to implement arbitrary mixing strategies.
This fork makes some minor changes to the orignal python implementation to make it compatible with the JavaScript implementation.
The default curve used is now NISTP256. Points are encoded in uncompressed format. Also routing flags are now byte sized integers rather than byte arrays.
Sphinx v0.8-UCL README 2016-11-12 George Danezis g.danezis@ucl.ac.uk
# Copyright 2011 Ian Goldberg
# Copyright 2016 George Danezis (UCL InfoSec Group)
#
# This file is part of Sphinx.
#
# Sphinx is free software: you can redistribute it and/or modify
# it under the terms of version 3 of the GNU Lesser General Public
# License as published by the Free Software Foundation.
#
# Sphinx is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with Sphinx. If not, see
# <http://www.gnu.org/licenses/>.
This is a UCL branch and port of the original Sphinx software to using modern python libraries, including petlib for cryptography and msgpack for binary formats. It also decouples the message processing from other concerns to allow sphix to be embedded into other applications. It is based on the original software by Ian Goldberg (U. Waterloo) and retains both his copyright and the original LGPL licence.