Running python3 createAddRandom.py python3 createAddSign.py
will build the new test cases
For interoperability testing you will have to change between java and csharp in the files: ref/createSigned.c ref/checkSigned.c you will also have to swap between robust and simple in the following files: createSigned.py, checkSigned.py and ref/createSigned.c ref/checkSigned.c (add to output files basically making sure filenames are unique. currently createSigned has simple and checkSigned has robust so you can see examples there)
So you will end up running createSigned.py, checkSigned.py 4 times:
- java, simple
- java, robust
- csharp, simple
- csharp, robust
This repository contains the software that accompanies the SPHINCS+ submission to NIST's Post-Quantum Cryptography project.
The SPHINCS+ specification proposed a set of 36 named instances, specifying hash functions and concrete parameters for the security level, tree dimensions, WOTS+ and FORS. 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
. See the table below for a summary of the parameter sets. These parameters target the NIST security categories 1, 3 and 5; for each category, there is a parameter set geared towards either small signatures or fast signature generation.
n | h | d | log(t) | k | w | bit security | pk bytes | sk bytes | sig bytes | |
---|---|---|---|---|---|---|---|---|---|---|
SPHINCS+-128s | 16 | 63 | 7 | 12 | 14 | 16 | 133 | 32 | 64 | 7,856 |
SPHINCS+-128f | 16 | 66 | 22 | 6 | 33 | 16 | 128 | 32 | 64 | 17,088 |
SPHINCS+-192s | 24 | 63 | 7 | 14 | 17 | 16 | 193 | 48 | 96 | 16,224 |
SPHINCS+-192f | 24 | 66 | 22 | 8 | 33 | 16 | 194 | 48 | 96 | 35,664 |
SPHINCS+-256s | 32 | 64 | 8 | 14 | 22 | 16 | 255 | 64 | 128 | 29,792 |
SPHINCS+-256f | 32 | 68 | 17 | 9 | 35 | 16 | 255 | 64 | 128 | 49,856 |
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.