SPHINCS+

Stateless hash-based signatures

Software

GitHub repository

The latest version of the SPHINCS+ software is available from our GitHub repository. To download the software, build binaries for all submitted parameter sets and implementations, and benchmark them, use the following steps:
git clone https://github.com/sphincs/sphincsplus.git
cd sphincsplus
python3 benchmark.py

Parameter Exploration Script

The SPHINCS+ parameter exploration SAGE script allows to do exhaustive search over the parameter space. It is described in the SPHINCS+ paper.

Third Party Implementations

The following are implementations of SPHINCS+ which are not maintained by the SPHINCS+ team; please contact the authors for any issues with those implementations.

  • SPHINCS+ is now integrated in release 3.0 of the Botan C++ crypto and TLS library.
  • Implementation in Go by Søren Birk Corfitsen and Kasper Daugaard Ilsøe.
  • SPHINCS+ in Java [link]
    An implementation of SPHINCS+ in Java by Lena Heimberger from IAIK Graz.
  • SPHINCS+-LMS hybrid scheme [link]
    A hybrid signature scheme by Scott Fluhrer combining SPHINCS+ with the stateful LMS signature scheme. This combination allows to achieve the speed of stateful hash-based signatures with short-term states. In general, this also allows for super-fast batch signing.
  • SPHINCS+ implementation in Bouncy Castle provider [github] [website]
    SPHINCS+ is now available in the Bouncy Castle BCPQC provider.
  • Low-RAM-SPHINCS+ [link]
    An implementation of SPHINCS+ that is designed to minimize the amount of RAM used; streaming the signatures as they are generated or verified. This can use as little as 1k of RAM for the SHA2-128F-SIMPLE parameter set.