Skip to content

This repository contains the software for the SPHINCS+C scheme

License

Notifications You must be signed in to change notification settings

eyalr0/sphincsplusc

Repository files navigation

SPHINCS+C

This repository contains the software for the SPHINCS+C scheme.

It is based on the SPHINCS+ submission repository that contains the software that accompanies the SPHINCS+ submission to NIST's Post-Quantum Cryptography project.

Currently, only the reference implementation for shake is supported.

Parameters

The SPHINCS+C scheme presents several novel methods for further compressing the signature size of SPHICS+ while requiring negligible added computational costs for the signer and faster verification time. Like SPHINCS+, we present named instances for specific hash functions and concrete parameters for the security level, tree dimensions, WOTS+C, and FORS+C. This reference implementation allows for more flexibility, as parameters can be specified in a params.h file. The proposed parameter sets have been predefined in ref/params/params-*.h, and the hash function can be varied by linking with the different implementations of hash.h, i.e., hash_haraka.c, hash_sha2.c and hash_shake.c, as well as different implementations of thash.h, i.e., *_robust.c and *_simple.c. This is demonstrated in the Makefile. Note that only variants based on the reference SHAKE implementation are currently supported. See the table below for a summary of the parameter sets. These parameters target the NIST security categories 1, 3, and 5; each category has a parameter set geared towards either small signatures or fast signature generation.

n h d log(t) k w log(t') bit security pk bytes sk bytes sig bytes
SPHINCS+-128s 16 66 11 13 9 128 18 128 32 64 6,304
SPHINCS+-128f 16 63 21 9 19 16 8 128 32 64 14,904
SPHINCS+-192s 24 66 11 15 13 128 12 192 48 96 13,776
SPHINCS+-192f 24 66 22 9 25 16 13 192 48 96 33,044
SPHINCS+-256s 32 66 11 14 19 64 19 256 64 128 26,096
SPHINCS+-256f 32 64 16 10 33 16 10 256 64 128 46,884

License

Following the original code from the SPHINCS+ submission repository, all included code is available under the CC0 1.0 Universal Public Domain Dedication, with the exception of rng.c, rng.h and PQCgenKAT_sign.c, which were provided by NIST.

Acknowledgments

We thank Ofek Bransky for his contribution to the implementation and benchmark of the code.

About

This repository contains the software for the SPHINCS+C scheme

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages