Introduction
Phoenix is a stateless hash-based digital signature scheme built on the SPHINCS+ hypertree framework. It combines generalized WOTS+C (GWOTS+C) and transposed FORS (TFORS) to reduce signature size, with fast and small parameter variants using SHAKE or SM3.
Specification & software
Parameters
Classical security targets are given in bits; key and signature sizes are given in bytes. Signature sizes reproduce the specification's reference measurements and may differ from the supplied code; signatures have variable length and these values are not buffer-size bounds. The suffixes s and f denote small and fast variants.
| Instance | Classical security target | Public key | Secret key | Reported signature |
|---|---|---|---|---|
| Phoenix-SHAKE-128s | 128 | 32 | 64 | 6252 |
| Phoenix-SM3-128s | 128 | 32 | 64 | 6258 |
| Phoenix-SHAKE-128f | 128 | 32 | 64 | 13668 |
| Phoenix-SM3-128f | 128 | 32 | 64 | 13670 |
| Phoenix-SHAKE-192s | 192 | 48 | 96 | 13290 |
| Phoenix-SM3-192s | 192 | 48 | 96 | 13356 |
| Phoenix-SHAKE-192f | 192 | 48 | 96 | 30880 |
| Phoenix-SM3-192f | 192 | 48 | 96 | 30766 |
| Phoenix-SHAKE-256s | 256 | 64 | 128 | 26624 |
| Phoenix-SM3-256s | 256 | 64 | 128 | 24618 |
| Phoenix-SHAKE-256f | 256 | 64 | 128 | 47464 |
| Phoenix-SM3-256f | 256 | 64 | 128 | 44906 |
| Phoenix-SHAKE-384s | 384 | 96 | 192 | 54724 |
| Phoenix-SM3-384s | 384 | 96 | 192 | 54726 |
| Phoenix-SHAKE-384f | 384 | 96 | 192 | 88440 |
| Phoenix-SM3-384f | 384 | 96 | 192 | 88442 |
| Phoenix-SHAKE-512s | 512 | 128 | 256 | 98308 |
| Phoenix-SM3-512s | 512 | 128 | 256 | 98476 |
| Phoenix-SHAKE-512f | 512 | 128 | 256 | 121961 |
| Phoenix-SM3-512f | 512 | 128 | 256 | 138454 |